1ChangeLog discontinued, git history can be found here: 2https://github.com/thom311/libnl 3 4Summary of Changes from 1.0-pre6 to 1.0-pre7 5================================================ 6 Thomas Graf <tgraf@suug.ch> 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 42 NL_SKIP 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 receiving an ACK 46 o Fixed nl_recvmsgs() to not blindly discard remaining messages 47 if a NLMSG_DONE message is received. 48 49 Petr Gotthard <petr.gotthard@siemens.com> 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 55 56 Zilvinas Valinskas <zilvinas@wilibox.com> 57 o Fix wrong msg_namelen in nl_recv() 58 o Fix memory leak in flnl_request_put() 59 60 Helmut Schaa <hschaa@suse.de> 61 o Fix for using libnl from within C++ 62 63 Patrick McHardy <kaber@trash.net> 64 o *_alloc_cache(): Only refill cache if handle is provided 65 66 James Oakley <jfunk@funktronics.ca> 67 o Fix rtnl_link_set_arptype() typo 68 69 Philip Craig <philipc@snapgear.com> 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 76 77Summary of Changes from 1.0-pre5 to 1.0-pre6 78================================================ 79 Christopher Aillon <caillon@redhat.com> 80 o Use $(libdir) instead of $(prefix)/lib for 64bit awesomeness. 81 82 Thomas Graf <tgraf@suug.ch> 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 110 111 Petr Gotthard <petr.gotthard@siemens.com> 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 120 121 Patrick McHardy <kaber@trash.net> 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 141 142 Michael Biebl <biebl@teco.edu> 143 "Alex V. Myltsev" <avm@altlinux.ru> 144 o Makefile fixes 145 146 147Summary of Changes from 1.0-pre4 to 1.0-pre5 148================================================ 149 Thomas Graf <tgraf@suug.ch> 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. 154 155Summary of Changes from 1.0-pre3 to 1.0-pre4 156================================================ 157 Thomas Graf <tgraf@suug.ch> 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. 166 167Summary of Changes from 1.0-pre2 to 1.0-pre3 168================================================ 169 Thomas Graf <tgraf@suug.ch> 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. 194 195Summary of Changes from 1.0-pre1 to 1.0-pre2 196================================================ 197 Thomas Graf <tgraf@suug.ch> 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 Re-enabled 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() 214 215 Petr Gotthard <petr.gotthard@siemens.com>, 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 220 221 Simon Stelling <blubb@gentoo.org> 222 o Use LIBDIR instead of $(prefix)/lib for users to allow librariers 223 into $(prefix)/lib64. 224 225Summary of Changes from 0.5.0 to 1.0-pre1 226================================================ 227 Thomas Graf <tgraf@suug.ch> 228 o Uncountable number of changes, rewrite of certain modules, 229 several major API breakages 230 231 Petr Gotthard <petr.gotthard@siemens.com>, 232 Siemens AG Oesterreich 233 o added class_build, rtnl_class_build_add_request, rtnl_class_add 234 o added HTB (Hierarchical 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 243 244Summary of Changes from 0.4.4 to 0.5.0 245================================================ 246 Thomas Graf <tgraf@suug.ch> 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 Properly set address family when setting addresses 252 o debug flag and some rare messages, more to come 253 o make error message verboseness configurable 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) 258 259 Daniel Hottinger <hotti@hotti.ch> 260 o arch 64bit printf length modifier fixes 261 262 Baruch Even <baruch@ev-en.org>, 263 Mediatrix Telecom, inc. <ericb@mediatrix.com> 264 o address support 265 266Summary of changes from 0.4.3 to 0.4.4 267================================================ 268 Thomas Graf <tgraf@suug.ch>: 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. 285 286Summary of changes from 0.4.2 to 0.4.3 287================================================ 288 289 Thomas Graf <tgraf@suug.ch>: 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 295 296Summary of changes from 0.4.1 to 0.4.2 297================================================ 298 299 Baruch Even <baruch@ev-en.org>: 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 libnl.so.0 and libnl.so 305 306 Thomas Graf <tgraf@suug.ch>: 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. 334 335 Jamal Hadi Salim <hadi@cyberus.ca> 336 o Linux 2.4 compile fixes 337