libnl 3.2.8

Scott Bonar sbonar at cradlepoint.com
Wed May 2 19:40:02 EDT 2012


I'm having issues with this release, specifically around the fact that 
nl.c::nl_recvmsgs() now returns a positive number on successful reads 
indicating the number of messages that were actually recv'd.  The issue 
is that I have run across several instances where the caller of 
nl.c::nl_recvmsgs() "assumes" that a return of 0 is a successful read 
instead of >0 and therefore does not take the same paths as 3.2.7.  A 
good example is that when I call link.c::rtnl_link_get_kernel() the code 
should wait for an ACK if an object is returned, but is does not because 
the return of nl.c::nl_pickup() is now >0 instead of 0.  Now we are out 
of order/sequence with our ACK packets and things go downhill from there.

There are probably other situations, but that was the one I tracked 
down.  What was the reason for this API change to nl_recvmsgs() and what 
will I break if I remove the nrecv counter in recvmsgs()?

Scott Bonar

On 04/26/2012 03:35 AM, Thomas Graf wrote:
> Hello everyone
>
> I'm pleased to announce the release of libnl 3.2.8. It contains
> various fixes and several new API additions.
>
> Thanks to everyone who contributed to this release.
>
> Brett Ciphery (1):
>        add new function to provide neighbour event parsing
>
> Nicolas CARRIER (1):
>        Memory leak in classid.c
>
> Romary Sonrier (1):
>        missing extended Table attribute for lib/route/
>
> Shriram Rajagopalan (1):
>        Support plug qdisc - queue traffic until explicit release
>
> Thierry Reding (1):
>        Add new nl_cache_clone() function.
>
> Thomas Graf (25):
>        doc: Fix typos in autoconf example
>        doc: Fix incorrect nl_socket_add_memberships() example
>        genl-ctrl-list: Introduce -d|--details as a shortcut for --format=details
>        genl-ctrl-list: Provide manual page
>        genl-ctrl-list: fix copyright and summary
>        genl-ctrl-list: Mark for installation
>        cache_mngr: document uncommon error codes
>        tests: Convert tests/Makefile to use automake
>        tests: fix test programs to compile again
>        cache_mngr: Don't modify callback setup of socket
>        cache_manager: Move documentation to doc/core.txt
>        cache_mngr: Automatically allocate socket if needed
>        test-cache-mngr: Let the cache manager allocate the socket
>        cache_mngr: Fix memory corruption after resizing
>        nl: Make nl_recvmsgs() return the number of netlink messages processed
>        cache_mngr: Let nl_cache_mngr_data_ready() read multiple messages
>        cache_mngr: API doc updates
>        cache_mngr: Provide nl_cache_mngr_info() to pring cache manager details
>        test-cache-mngr: Allow for management of arbitary caches via argument string
>        cache_mngr: Make providing the result pointer to nl_cache_mngr_add() optional
>        genl: Make genl_unregister() a NOP if NULL pointer is passed
>        cache: improve documentation of co_event_filter
>        cache: Add co_include_event allowing caches to provide their own nl_cache_include() implementation
>        object: Add functions to access the object type, cache and object ops
>        3.2.8 release
>
> The source tarball can be found at the usual location:
> http://www.infradead.org/~tgr/libnl/
>
>
> Thomas
>
> _______________________________________________
> libnl mailing list
> libnl at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/libnl
>
> !SIG:4f99175a29451982320748!
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/libnl/attachments/20120502/dded9195/attachment.html>


More information about the libnl mailing list