Skip to content
This repository
100644 337 lines (305 sloc) 13.888 kb
e1665651 »
2007-11-21 Pushed to pre8 due to wrong version string in pre7
1 ChangeLog discontinued, git history can be found here:
405d1682 »
2012-06-06 libnl 3.2.10
e1665651 »
2007-11-21 Pushed to pre8 due to wrong version string in pre7
4 Summary of Changes from 1.0-pre6 to 1.0-pre7
44d36240 »
2007-09-15 Initial import
5 ================================================
6 Thomas Graf <>
7 o Generic netlink support
8 o Route Addition/Deletion
9 o Added nl_cache_subset()
10 o Have nl_object_clone() make real clones without
11 sharing any data.
12 o Remove old nl_object_alloc() not based on a object
13 operations to avoid bugs due to missing init.
14 o Added nl-list-caches utility
15 o Removed nlmsg_build_no_hdr(), duplicate
16 o Reworked message interface
17 o Fixed nlmsg_put() and genlmsg_put() to correctly reserve
18 tail room for user specific headers.
19 o Added nl_cache_move()
20 o Renamed nl_cache_delete() to nl_cache_remove() (no API break)
21 o Fixed reference counting while objects stay in caches.
22 o Object marking
23 o Moved attribute mask for objects into generic structure
24 o nl-list-caches: List available dump procedures
25 o Use PAGE_SIZE as initial buffer size when reading from
26 netlink socket
27 o Double buffer size when recv() returns MSG_TRUNC
28 o Replaced filter object operation with new compare operation
29 capable of listing differences between two objects
30 o Added nl_object_identical() to check if two objects are
31 identical from a uniqueness point of view
32 o Added nl_object_diff() returning a bitmask of differences in
33 attributes
34 o Added nl_object_attr_list() generating a list of attribute
35 name the object has assigned
36 o Cache updates based on event notifications, code based on
37 Patrick McHardy's patches
38 o Cache Manager
39 o Added NL_AUTO_PID, NL_AUTO_SEQ for convenience
40 o Disable MSG_PEEK by default and provide nl_socket_enable_msg_peek()
41 o Fixed nl_recvmsgs() to return 0 when interrupted via NL_STOP or
43 o Fixed nl_recvmsgs() to stop reading after parsing if not in the
44 middle of a multipart message.
45 o Fixed nl_recvmsgs() to not stop after receving an ACK
46 o Fixed nl_recvmsgs() to not blindly discard remaining messages
47 if a NLMSG_DONE message is received.
49 Petr Gotthard <>
50 Siemens AG Oesterreich
51 o Fix u32 to properly handle multiple keys
52 o rtnl_htb_set_(r|c)buffer()
53 o Fixed MTU handling in HTB class, problem pointed out
54 by Edouard Thuleau
56 Zilvinas Valinskas <>
57 o Fix wrong msg_namelen in nl_recv()
58 o Fix memory leak in flnl_request_put()
60 Helmut Schaa <>
61 o Fix for using libnl from within C++
63 Patrick McHardy <>
64 o *_alloc_cache(): Only refill cache if handle is provided
66 James Oakley <>
67 o Fix rtnl_link_set_arptype() typo
69 Philip Craig <>
70 o Change address family type from char to int
71 o Fix the error handling when the build fails.
72 o add nl_cache_mngr_get_fd()
73 o add netfilter support
74 o add netfilter conntrack support
75 o add netfilter log support
77 Summary of Changes from 1.0-pre5 to 1.0-pre6
78 ================================================
79 Christopher Aillon <>
80 o Use $(libdir) instead of $(prefix)/lib for 64bit awesomeness.
82 Thomas Graf <>
83 o Extend nl_msg to include source address, destination address
84 and the protocol being used.
85 o Make nl_send*() take a nl_msg instead of a nlmsghdr (API BREAK)
86 o Change callbacks to take a nl_msg instead of source address
87 and nlmsghdr (API BREAK)
88 o caches must specify the protocol they're hooked up from now on
89 if they intend to be associated with message types.
90 o cache_mngt_associate now takes the protocol besides the message
91 type to allow for multiple protocols to be supported (API BREAK)
92 o overwrite destination address in nl_send() when specified in the
93 message itself, allows for unbound addressing.
94 o Support for netlink based fib_lookup()
95 o Documentation fixes
96 o Fix double nlmsg_free() in nl_recvmsgs() while receiving
97 a multipart message and the read was interrupted.
98 o Change cache operations to store names for message types.
99 o Provide interface to convert message type to character string.
100 o Add dp_dump_msgtype to prefix each dumped element with a
101 pretty printed message type.
102 o netlink fib lookup support
103 o nl_recvmsgs() debugging
104 o use nl_cachemngt_type2name() when pretty printing netlink header
105 o Routing protocol translations.
106 o Routing metric translations.
107 o Revised route dumping
108 o Nexthop flag translations.
109 o Add support for IFF_DORMANT
111 Petr Gotthard <>
112 Siemens AG Oesterreich
113 o Fix access to obj after freeing it
114 o Fix u32 selector access after realloc()
115 o Fix missing out-of-memory error handling in various places
116 o Enhance nl-monitor to have group selection selectable and
117 demonstrate usage of select()
118 o Don't ignore IFF_RUNNING any longer
119 o fw classifier support
121 Patrick McHardy <>
122 o Fix conflicting types for __u64
123 o Fix printf format string warnings
124 o Fix object cloning
125 o Deal with structure padding in nl_object_clone
126 o Fix nl_addr leak
127 o Set ce_msgtype in all parsed objects
128 o Fix addr flag filter
129 o Fix RTNLGRP definitions (was based on broken kernel version)
130 o Export nl_get_errno()
131 o Add function to get/set peer pid
132 o Add IFF_LOWER_UP
133 o Add/export some missing accessor functions
134 o print /0 prefix in nl_addr2str()
135 o Fix invalid free in nl_addr_parse for AF_UNSPEC addresses
136 o Use __str2flags instead of __str2type in rtnl_link_str2flags()
137 o Make sure object and filter types match in nl_object_match()
138 o Add support for credential passing over netlink sockets (API BREAK)
139 o Add support for custom dump callbacks
140 o Add NL_DUMP_ENV format
142 Michael Biebl <>
143 "Alex V. Myltsev" <>
144 o Makefile fixes
147 Summary of Changes from 1.0-pre4 to 1.0-pre5
148 ================================================
149 Thomas Graf <>
150 o Use minimized local copies for <linux/if.h>, <linux/if_arp.h>,
151 and <linux/if_ether.h> to avoid compile troubles with
152 applications including <net/if*.h>
153 Reported by Christopher Aillon.
155 Summary of Changes from 1.0-pre3 to 1.0-pre4
156 ================================================
157 Thomas Graf <>
158 o Fix wrong rtnl_addr_set_prefixlen() external declaration,
159 reported by Dan Williams.
160 o Fix nl_addr_parse() to not change the original string
161 for prefixes.
162 o Do not build documentation per default, but have the user
163 issue 'make gendoc'
164 o Assume neighbours to be permanent, set NUD_PERMANENT if not
165 specified otherwise.
167 Summary of Changes from 1.0-pre2 to 1.0-pre3
168 ================================================
169 Thomas Graf <>
170 o Fix SFQ parser to allocate qdisc options.
171 o Fix rule statistics dumping to not call itself.
172 o Complete Netem qdisc interface.
173 o Add rtnl_*_put() and rtnl_*_free() to increase readability.
174 o Cleanup of nl-* tools
175 o Fix inclusion guards of route/neightbl.h
176 o Fix nl_connect() to only modify rx/tx socket buffers if not
177 already modified by the user.
178 o Fix wrong nl_handle_alloc() prototype.
179 o Fix typo in route/addr.c causing label to be marked as
180 local address.
181 o Use ~0UL as default prefix length instead of 0.
182 o Fix neighbour message parser to correctly store core.
183 attributes and provide them again.
184 o Fix neighbour message parser to correctly guess address family.
185 to make it compatible with nl_addr_parse() and ether llc
186 addresses.
187 o Add rtnl_route_table2str(), rtnl_route_str2table().
188 o Add nl_cache_nitems_filter() to find out if a filter produces
189 any matches.
190 o Remove rtnl_rule_set_(dst|src)_str() (obsolete).
191 o Remove scope and protocol field of routing rule.
192 o Complete routing rules module.
193 o Move realms translations from route to rtnl module.
195 Summary of Changes from 1.0-pre1 to 1.0-pre2
196 ================================================
197 Thomas Graf <>
198 o More API documentation
199 o Added flags argument to rtnl_addr_(add|build_add_request)().
200 o Added rtnl_addr_(set|get)_multicast().
201 o Moved scope translations routines from route/route.c to
202 route/rtnl.c, required by other modules as well.
203 o Removed old rtattr bits from rtnetlink-kernel.h
204 o Customized libnl.css for doxygen documentation
205 o Removed non-reentrant translation routines, only bloating
206 the code and too risky.
207 o Fixed wrong version number from 1.0-pre1.
208 o Reenabled unfinished policer module.
209 o Reworked TBF module, automatic caluclation of transmit times,
210 limit setable via latency, automatic cell size calculation,
211 options TLV generation. (untested)
212 o Renamed nl_xmittime() to rtnl_tc_calc_txtime().
213 o Renamde nl_build_rtable() to rtnl_tc_build_rate_table()
215 Petr Gotthard <>,
216 Siemens AG Oesterreich
217 o Fix symlinks to libnl library files to be moveable
218 o Fix extern struct prototypes meant to be static.
219 o Add empty install target to src/Makefile
221 Simon Stelling <>
222 o Use LIBDIR instead of $(prefix)/lib for users to alllow librariers
223 into $(prefix)/lib64.
225 Summary of Changes from 0.5.0 to 1.0-pre1
226 ================================================
227 Thomas Graf <>
228 o Uncountable number of changes, rewrite of certain modules,
229 several major API breakages
231 Petr Gotthard <>,
232 Siemens AG Oesterreich
233 o added class_build, rtnl_class_build_add_request, rtnl_class_add
234 o added HTB (Hierachical Token Bucket) class support
235 o added nl_xmittime, nl_build_rtable
236 o added nl_data_append to realloc a nl_data structure
237 o added rtnl_rcopy_ratespec as reverse to rtnl_copy_ratespec
238 o fixed byte order conversion of rtnl_filter.protocol
239 o SuSE and Fedora Linux compile fixes
240 o fixed u32 classifier support
241 o added rtnl_u32_set_handle, rtnl_u32_set_classid, rtnl_u32_set_flags
242 and several rtnl_u32_add_key_... operations to u32 classifier
244 Summary of Changes from 0.4.4 to 0.5.0
245 ================================================
246 Thomas Graf <>
247 o API documentation
248 o nl_cache_filter to manually filter on a object
249 o partial routing support
250 o routing rules support
251 o Propely set address family when setting addresses
252 o debug flag and some rare messages, more to come
253 o make error mesage verboseness configureable
254 o tc fixes to wait for ack
255 o cleanup and adaption of address code to latest internal API
256 o various cleanups
257 o dozens of API breakages (better now than later)
259 Daniel Hottinger <>
260 o arch 64bit printf length modifier fixes
262 Baruch Even <>,
263 Mediatrix Telecom, inc. <>
264 o address support
266 Summary of changes from 0.4.3 to 0.4.4
267 ================================================
268 Thomas Graf <>:
269 o overall cleanups for better code quality
270 o replace dump_(brief|full|with_stats) ops with
271 dump[NL_DUMP_MAX] array to allow further additions without
272 breaking the ABI.
273 o add of send_ack callback, called whenever when oppenent
274 asks for an ACK.
275 o make nl_parse_rtattr initialize the tb buffer like in the
276 kernel, caller must no longer take care of it.
277 o remove nl_addrnattr (obsolete)
278 o fixed nl_msg_append_raw to correctly calculate length
279 for raw data not aligned to NLMSG_ALIGN
280 o fix memory leak in nl_recv in case of errors
281 o correctly check sequence numbers if more than one message
282 was sent out before the answer is being received.
283 o add workaround for buggy netlink applications not properly
284 setting NLM_F_MULTI.
286 Summary of changes from 0.4.2 to 0.4.3
287 ================================================
289 Thomas Graf <>:
290 o use parser_param in nl_cache_parse
291 o EGP: dump nfilters attribute
292 o allow retrieving of filters attached to classes via
293 FILTER_CACHE_PARENT(C) cache argument
294 o filter message building API
296 Summary of changes from 0.4.1 to 0.4.2
297 ================================================
299 Baruch Even <>:
300 o memory leak fix in nl_parse_rtattr
301 o reset padding to 0 when appending raw data to a nl_msg
302 o avoid overwriting nlmsg ptr when buffer extending fails
303 o typo fixes
304 o create symlinks and
306 Thomas Graf <>:
307 o EGP classifier support
308 o avoid null pointer in printf call
309 o added nl_cache_parse to put nl_msg's into a cache
310 o added rtnl_filter_build to build a nl_msg filter message
311 o correctly install header files
312 o nl_msg_payload/nl_msg_payloadlen to access nl_msg payload
313 o nl_parse_nested macro to simplify nested TLV parsing
314 o NL_ERROR_ASSERT compile flag to assert(0) on errors
315 o rta alignment fix in nl_msg_append_tlv
316 o added nl_msg_parse_rtattr as shortcut for nl_parse_rtattr
317 for nl_msg API
318 o added nl_parse_nested for nested TLVs
319 o added RTA_ARRAY_ELEMS macro to calculate array length
320 for array TLVs
321 o added nl_wait_for_ack to wait for the next ack
322 o added rtnl_link_build_change_request(...)
323 o added rtnl_neigh_build_*_request
324 o converted neighbour code to use nl_wait_for_ack
325 o cb_recvmsgs_ow callback to overwrite internal calls to
326 nl_recvmsgs_def
327 o cb_seq_check callback to overwrite default sequence checking
328 o added nl_parser_param as argument for message parsers including
329 a callback to be called upon successful parsing of a message.
330 Removes the requirement of having all parsed messages to be added
331 to a cache.
332 o added cb_recv_ow and nl_send_ow callbacks to overwrite internal
333 calls to nl_recv and nl_send.
335 Jamal Hadi Salim <>
336 o Linux 2.4 compile fixes
Something went wrong with that request. Please try again.