[lkml]   [2011]   [Mar]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 1/2] Issue NETDEV_CHANGE notification when bridge changes state

    As background for these 2 patches, the current bridge code does not
    play very nicely with IPv6 autoconfiguration. What happens is,

    [ 35.117030] device eth0 entered promiscuous mode
    [ 35.120898] br0: port 1(eth0) entering learning state
    [ 35.120901] br0: port 1(eth0) entering learning state

    Here bridge is setup and both interface eth0 and br0 are indicated as
    up via NETDEV_UP notification. The IPv6 autoconfiguration code
    configures linklocal address and start to issue RS packets. These
    timeout because bridge is in learning state, not forwarding state.

    [ 45.168007] br0: no IPv6 routers present
    [ 45.312020] eth0: no IPv6 routers present

    RS timeouts and IPv6 is abandoned at this point.

    [ 50.144011] br0: port 1(eth0) entering forwarding state

    Now bridge entered forwarding state. Userland sets up IPv4 via DHCP or

    [ 50.144487] ADDRCONF(NETDEV_CHANGE): br0: link becomes ready

    With the patches, NETDEV_CHANGE is issued by the bridge once it
    changes state. The autoconfiguration code then checks that no RA
    packets are received and only linklocal interface is setup. It then
    retries soliciting router information.

    This is my first attempt at a kernel patch so please be gentle :) Part
    of the autoconf patch splits out the addrconf_rs_start() code from the
    addrconf_dad_completed() function.


    Adam Majer

     \ /
      Last update: 2011-03-06 12:03    [W:0.021 / U:43.856 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site