Add packaging directory
[platform/upstream/libnl3.git] / ChangeLog
1 ChangeLog discontinued, git history can be found here:
2 http://git.infradead.org/users/tgr/libnl.git
3
4 Summary 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 receving 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
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.
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()
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 alllow librariers
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
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
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
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)
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