Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
337 lines (305 sloc) 13.6 KB
ChangeLog discontinued, git history can be found here:
Summary of Changes from 1.0-pre6 to 1.0-pre7
Thomas Graf <>
o Generic netlink support
o Route Addition/Deletion
o Added nl_cache_subset()
o Have nl_object_clone() make real clones without
sharing any data.
o Remove old nl_object_alloc() not based on a object
operations to avoid bugs due to missing init.
o Added nl-list-caches utility
o Removed nlmsg_build_no_hdr(), duplicate
o Reworked message interface
o Fixed nlmsg_put() and genlmsg_put() to correctly reserve
tail room for user specific headers.
o Added nl_cache_move()
o Renamed nl_cache_delete() to nl_cache_remove() (no API break)
o Fixed reference counting while objects stay in caches.
o Object marking
o Moved attribute mask for objects into generic structure
o nl-list-caches: List available dump procedures
o Use PAGE_SIZE as initial buffer size when reading from
netlink socket
o Double buffer size when recv() returns MSG_TRUNC
o Replaced filter object operation with new compare operation
capable of listing differences between two objects
o Added nl_object_identical() to check if two objects are
identical from a uniqueness point of view
o Added nl_object_diff() returning a bitmask of differences in
o Added nl_object_attr_list() generating a list of attribute
name the object has assigned
o Cache updates based on event notifications, code based on
Patrick McHardy's patches
o Cache Manager
o Added NL_AUTO_PID, NL_AUTO_SEQ for convenience
o Disable MSG_PEEK by default and provide nl_socket_enable_msg_peek()
o Fixed nl_recvmsgs() to return 0 when interrupted via NL_STOP or
o Fixed nl_recvmsgs() to stop reading after parsing if not in the
middle of a multipart message.
o Fixed nl_recvmsgs() to not stop after receving an ACK
o Fixed nl_recvmsgs() to not blindly discard remaining messages
if a NLMSG_DONE message is received.
Petr Gotthard <>
Siemens AG Oesterreich
o Fix u32 to properly handle multiple keys
o rtnl_htb_set_(r|c)buffer()
o Fixed MTU handling in HTB class, problem pointed out
by Edouard Thuleau
Zilvinas Valinskas <>
o Fix wrong msg_namelen in nl_recv()
o Fix memory leak in flnl_request_put()
Helmut Schaa <>
o Fix for using libnl from within C++
Patrick McHardy <>
o *_alloc_cache(): Only refill cache if handle is provided
James Oakley <>
o Fix rtnl_link_set_arptype() typo
Philip Craig <>
o Change address family type from char to int
o Fix the error handling when the build fails.
o add nl_cache_mngr_get_fd()
o add netfilter support
o add netfilter conntrack support
o add netfilter log support
Summary of Changes from 1.0-pre5 to 1.0-pre6
Christopher Aillon <>
o Use $(libdir) instead of $(prefix)/lib for 64bit awesomeness.
Thomas Graf <>
o Extend nl_msg to include source address, destination address
and the protocol being used.
o Make nl_send*() take a nl_msg instead of a nlmsghdr (API BREAK)
o Change callbacks to take a nl_msg instead of source address
and nlmsghdr (API BREAK)
o caches must specify the protocol they're hooked up from now on
if they intend to be associated with message types.
o cache_mngt_associate now takes the protocol besides the message
type to allow for multiple protocols to be supported (API BREAK)
o overwrite destination address in nl_send() when specified in the
message itself, allows for unbound addressing.
o Support for netlink based fib_lookup()
o Documentation fixes
o Fix double nlmsg_free() in nl_recvmsgs() while receiving
a multipart message and the read was interrupted.
o Change cache operations to store names for message types.
o Provide interface to convert message type to character string.
o Add dp_dump_msgtype to prefix each dumped element with a
pretty printed message type.
o netlink fib lookup support
o nl_recvmsgs() debugging
o use nl_cachemngt_type2name() when pretty printing netlink header
o Routing protocol translations.
o Routing metric translations.
o Revised route dumping
o Nexthop flag translations.
o Add support for IFF_DORMANT
Petr Gotthard <>
Siemens AG Oesterreich
o Fix access to obj after freeing it
o Fix u32 selector access after realloc()
o Fix missing out-of-memory error handling in various places
o Enhance nl-monitor to have group selection selectable and
demonstrate usage of select()
o Don't ignore IFF_RUNNING any longer
o fw classifier support
Patrick McHardy <>
o Fix conflicting types for __u64
o Fix printf format string warnings
o Fix object cloning
o Deal with structure padding in nl_object_clone
o Fix nl_addr leak
o Set ce_msgtype in all parsed objects
o Fix addr flag filter
o Fix RTNLGRP definitions (was based on broken kernel version)
o Export nl_get_errno()
o Add function to get/set peer pid
o Add/export some missing accessor functions
o print /0 prefix in nl_addr2str()
o Fix invalid free in nl_addr_parse for AF_UNSPEC addresses
o Use __str2flags instead of __str2type in rtnl_link_str2flags()
o Make sure object and filter types match in nl_object_match()
o Add support for credential passing over netlink sockets (API BREAK)
o Add support for custom dump callbacks
o Add NL_DUMP_ENV format
Michael Biebl <>
"Alex V. Myltsev" <>
o Makefile fixes
Summary of Changes from 1.0-pre4 to 1.0-pre5
Thomas Graf <>
o Use minimized local copies for <linux/if.h>, <linux/if_arp.h>,
and <linux/if_ether.h> to avoid compile troubles with
applications including <net/if*.h>
Reported by Christopher Aillon.
Summary of Changes from 1.0-pre3 to 1.0-pre4
Thomas Graf <>
o Fix wrong rtnl_addr_set_prefixlen() external declaration,
reported by Dan Williams.
o Fix nl_addr_parse() to not change the original string
for prefixes.
o Do not build documentation per default, but have the user
issue 'make gendoc'
o Assume neighbours to be permanent, set NUD_PERMANENT if not
specified otherwise.
Summary of Changes from 1.0-pre2 to 1.0-pre3
Thomas Graf <>
o Fix SFQ parser to allocate qdisc options.
o Fix rule statistics dumping to not call itself.
o Complete Netem qdisc interface.
o Add rtnl_*_put() and rtnl_*_free() to increase readability.
o Cleanup of nl-* tools
o Fix inclusion guards of route/neightbl.h
o Fix nl_connect() to only modify rx/tx socket buffers if not
already modified by the user.
o Fix wrong nl_handle_alloc() prototype.
o Fix typo in route/addr.c causing label to be marked as
local address.
o Use ~0UL as default prefix length instead of 0.
o Fix neighbour message parser to correctly store core.
attributes and provide them again.
o Fix neighbour message parser to correctly guess address family.
to make it compatible with nl_addr_parse() and ether llc
o Add rtnl_route_table2str(), rtnl_route_str2table().
o Add nl_cache_nitems_filter() to find out if a filter produces
any matches.
o Remove rtnl_rule_set_(dst|src)_str() (obsolete).
o Remove scope and protocol field of routing rule.
o Complete routing rules module.
o Move realms translations from route to rtnl module.
Summary of Changes from 1.0-pre1 to 1.0-pre2
Thomas Graf <>
o More API documentation
o Added flags argument to rtnl_addr_(add|build_add_request)().
o Added rtnl_addr_(set|get)_multicast().
o Moved scope translations routines from route/route.c to
route/rtnl.c, required by other modules as well.
o Removed old rtattr bits from rtnetlink-kernel.h
o Customized libnl.css for doxygen documentation
o Removed non-reentrant translation routines, only bloating
the code and too risky.
o Fixed wrong version number from 1.0-pre1.
o Reenabled unfinished policer module.
o Reworked TBF module, automatic caluclation of transmit times,
limit setable via latency, automatic cell size calculation,
options TLV generation. (untested)
o Renamed nl_xmittime() to rtnl_tc_calc_txtime().
o Renamde nl_build_rtable() to rtnl_tc_build_rate_table()
Petr Gotthard <>,
Siemens AG Oesterreich
o Fix symlinks to libnl library files to be moveable
o Fix extern struct prototypes meant to be static.
o Add empty install target to src/Makefile
Simon Stelling <>
o Use LIBDIR instead of $(prefix)/lib for users to alllow librariers
into $(prefix)/lib64.
Summary of Changes from 0.5.0 to 1.0-pre1
Thomas Graf <>
o Uncountable number of changes, rewrite of certain modules,
several major API breakages
Petr Gotthard <>,
Siemens AG Oesterreich
o added class_build, rtnl_class_build_add_request, rtnl_class_add
o added HTB (Hierachical Token Bucket) class support
o added nl_xmittime, nl_build_rtable
o added nl_data_append to realloc a nl_data structure
o added rtnl_rcopy_ratespec as reverse to rtnl_copy_ratespec
o fixed byte order conversion of rtnl_filter.protocol
o SuSE and Fedora Linux compile fixes
o fixed u32 classifier support
o added rtnl_u32_set_handle, rtnl_u32_set_classid, rtnl_u32_set_flags
and several rtnl_u32_add_key_... operations to u32 classifier
Summary of Changes from 0.4.4 to 0.5.0
Thomas Graf <>
o API documentation
o nl_cache_filter to manually filter on a object
o partial routing support
o routing rules support
o Propely set address family when setting addresses
o debug flag and some rare messages, more to come
o make error mesage verboseness configureable
o tc fixes to wait for ack
o cleanup and adaption of address code to latest internal API
o various cleanups
o dozens of API breakages (better now than later)
Daniel Hottinger <>
o arch 64bit printf length modifier fixes
Baruch Even <>,
Mediatrix Telecom, inc. <>
o address support
Summary of changes from 0.4.3 to 0.4.4
Thomas Graf <>:
o overall cleanups for better code quality
o replace dump_(brief|full|with_stats) ops with
dump[NL_DUMP_MAX] array to allow further additions without
breaking the ABI.
o add of send_ack callback, called whenever when oppenent
asks for an ACK.
o make nl_parse_rtattr initialize the tb buffer like in the
kernel, caller must no longer take care of it.
o remove nl_addrnattr (obsolete)
o fixed nl_msg_append_raw to correctly calculate length
for raw data not aligned to NLMSG_ALIGN
o fix memory leak in nl_recv in case of errors
o correctly check sequence numbers if more than one message
was sent out before the answer is being received.
o add workaround for buggy netlink applications not properly
setting NLM_F_MULTI.
Summary of changes from 0.4.2 to 0.4.3
Thomas Graf <>:
o use parser_param in nl_cache_parse
o EGP: dump nfilters attribute
o allow retrieving of filters attached to classes via
FILTER_CACHE_PARENT(C) cache argument
o filter message building API
Summary of changes from 0.4.1 to 0.4.2
Baruch Even <>:
o memory leak fix in nl_parse_rtattr
o reset padding to 0 when appending raw data to a nl_msg
o avoid overwriting nlmsg ptr when buffer extending fails
o typo fixes
o create symlinks and
Thomas Graf <>:
o EGP classifier support
o avoid null pointer in printf call
o added nl_cache_parse to put nl_msg's into a cache
o added rtnl_filter_build to build a nl_msg filter message
o correctly install header files
o nl_msg_payload/nl_msg_payloadlen to access nl_msg payload
o nl_parse_nested macro to simplify nested TLV parsing
o NL_ERROR_ASSERT compile flag to assert(0) on errors
o rta alignment fix in nl_msg_append_tlv
o added nl_msg_parse_rtattr as shortcut for nl_parse_rtattr
for nl_msg API
o added nl_parse_nested for nested TLVs
o added RTA_ARRAY_ELEMS macro to calculate array length
for array TLVs
o added nl_wait_for_ack to wait for the next ack
o added rtnl_link_build_change_request(...)
o added rtnl_neigh_build_*_request
o converted neighbour code to use nl_wait_for_ack
o cb_recvmsgs_ow callback to overwrite internal calls to
o cb_seq_check callback to overwrite default sequence checking
o added nl_parser_param as argument for message parsers including
a callback to be called upon successful parsing of a message.
Removes the requirement of having all parsed messages to be added
to a cache.
o added cb_recv_ow and nl_send_ow callbacks to overwrite internal
calls to nl_recv and nl_send.
Jamal Hadi Salim <>
o Linux 2.4 compile fixes
Jump to Line
Something went wrong with that request. Please try again.