Thomas Graf | e166565 | 2007-11-21 18:24:11 +0100 | [diff] [blame] | 1 | ChangeLog discontinued, git history can be found here: |
Thomas Haller | cc87ad2 | 2022-07-06 14:00:38 +0200 | [diff] [blame] | 2 | https://github.com/thom311/libnl |
Thomas Graf | e166565 | 2007-11-21 18:24:11 +0100 | [diff] [blame] | 3 | |
| 4 | Summary of Changes from 1.0-pre6 to 1.0-pre7 |
Thomas Graf | 44d3624 | 2007-09-15 01:28:01 +0200 | [diff] [blame] | 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. |
Christian Clauss | bde0b4c | 2022-06-30 12:26:27 +0200 | [diff] [blame] | 45 | o Fixed nl_recvmsgs() to not stop after receiving an ACK |
Thomas Graf | 44d3624 | 2007-09-15 01:28:01 +0200 | [diff] [blame] | 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 | |
| 77 | Summary 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 | |
| 147 | Summary 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 | |
| 155 | Summary 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 | |
| 167 | Summary 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 | |
| 195 | Summary 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. |
Christian Clauss | bde0b4c | 2022-06-30 12:26:27 +0200 | [diff] [blame] | 208 | o Re-enabled unfinished policer module. |
Thomas Graf | 44d3624 | 2007-09-15 01:28:01 +0200 | [diff] [blame] | 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> |
Christian Clauss | bde0b4c | 2022-06-30 12:26:27 +0200 | [diff] [blame] | 222 | o Use LIBDIR instead of $(prefix)/lib for users to allow librariers |
Thomas Graf | 44d3624 | 2007-09-15 01:28:01 +0200 | [diff] [blame] | 223 | into $(prefix)/lib64. |
| 224 | |
| 225 | Summary 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 |
Christian Clauss | bde0b4c | 2022-06-30 12:26:27 +0200 | [diff] [blame] | 234 | o added HTB (Hierarchical Token Bucket) class support |
Thomas Graf | 44d3624 | 2007-09-15 01:28:01 +0200 | [diff] [blame] | 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 | |
| 244 | Summary 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 |
Christian Clauss | bde0b4c | 2022-06-30 12:26:27 +0200 | [diff] [blame] | 251 | o Properly set address family when setting addresses |
Thomas Graf | 44d3624 | 2007-09-15 01:28:01 +0200 | [diff] [blame] | 252 | o debug flag and some rare messages, more to come |
Christian Clauss | bde0b4c | 2022-06-30 12:26:27 +0200 | [diff] [blame] | 253 | o make error message verboseness configurable |
Thomas Graf | 44d3624 | 2007-09-15 01:28:01 +0200 | [diff] [blame] | 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 | |
| 266 | Summary 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 | |
| 286 | Summary 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 | |
| 296 | Summary 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 |