ChangeLog 14 KB

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