link cache fails to get updated when interface added to/removed from bridge

David Mosberger davidm at egauge.net
Mon Apr 14 13:40:13 PDT 2014


Thomas,

Is it possible you have a newer version of libnl installed?  If so, I
think you'd have to run the program with:

  LD_LIBRARY_PATH=lib/.libs ./a.out

to ensure the test-library gets used.

For what it's worth: I tried on an x86-64 system using the GIT tree:
with v3.2.11, I see the same broken behavior.  With the latest GIT
tree (version.h is 3.2.24), my test program works fine.

Perhaps I should just upgrade the embedded system to 3.2.24.

  --david

On Mon, Apr 14, 2014 at 12:25 PM, David Mosberger <davidm at egauge.net> wrote:
> Thomas,
>
> Thanks for your response.
> Your output is what I'd love to see.  Did you use brctl addif/delif to
> add/remove devices from the bridge?
>   --david
>
> On Mon, Apr 14, 2014 at 11:11 AM, Thomas Haller <thaller at redhat.com> wrote:
>> On Thu, 2014-04-03 at 23:04 -0600, David Mosberger wrote:
>>> I'm trying to use libnl-3 v3.2.11 to track the interfaces that are
>>> part of a bridge.
>>> I can read the initial state fine but updates don't seem to get reflected in the
>>> cache.  I attached a short test-program.
>>>
>>> The test-program assumes a bridge called br0 exists.  show_bridge() is
>>> supposed to list all the interfaces part of the bridge.  On startup, the correct
>>> list is printed.  However, when I add/remove an interface to/from the bridge
>>> with brctl addif br0 eth0/brctl delif br0 eth0, respectively, the cache doesn't
>>> get updated, even though I do see route/link::new and route/link:del
>>> messages coming from the kernel.
>>>
>>> Is there a bug in my program?
>>
>>
>> Hi David,
>>
>>
>> sorry for the late reply.
>>
>> Your program seems to work for me:
>>
>>
>> ~/libnl ((libnl3_2_11) +)$ gcc -Iinclude/ -Llib/.libs/ -lnl-route-3 -lnl-3 a.c
>> ~/libnl ((libnl3_2_11) +)$ ./a.out
>> Failed to read classid file: Object not found
>> br0: dummy0 dummy1
>> cache manager got update
>> br0: dummy0 dummy1
>> cache manager got update
>> br0: dummy0
>> cache manager got update
>> br0: dummy0
>> cache manager got update
>> br0:
>> cache manager got update
>> br0:
>> cache manager got update
>> br0: dummy0
>> cache manager got update
>> br0: dummy0
>> cache manager got update
>> br0: dummy0 dummy1
>> cache manager got update
>> br0: dummy0 dummy1
>>
>>
>>
>>
>> I am not sure, what you expect to see.
>>
>> Thomas
>
>
>
> --
> eGauge Systems LLC, http://egauge.net/, 1.877-EGAUGE1, fax 720.545.9768



-- 
eGauge Systems LLC, http://egauge.net/, 1.877-EGAUGE1, fax 720.545.9768



More information about the libnl mailing list