09 Mar, 2013

1 commit


22 Jan, 2013

19 commits


21 Jan, 2013

2 commits


19 Jan, 2013

2 commits


07 Jan, 2013

1 commit


05 Jan, 2013

1 commit

  • Currently, the size of skb allocated for NDISC is MAX_HEADER +
    LL_RESERVED_SPACE(dev) + packet length + dev->needed_tailroom,
    but only LL_RESERVED_SPACE(dev) bytes is "reserved" for headers.
    As a result, the skb looks like this (after construction of the
    message):

    head data tail end
    +--------------------------------------------------------------+
    + | | | |
    +--------------------------------------------------------------+
    |||||
    =LL_ = dev
    RESERVED_ ->needed_
    SPACE(dev) tailroom

    As the name implies, "MAX_HEADER" is used for headers, and should
    be "reserved" in prior to packet construction. Or, if some space
    is really required at the tail of ther skb, it should be
    explicitly documented.

    We have several option after construction of NDISC message:

    Option 1:

    head data tail end
    +---------------------------------------------+
    + | | |
    +---------------------------------------------+
    ||||
    =LL_ = dev
    RESERVED_ ->needed_
    SPACE(dev) tailroom

    Option 2:

    head data tail end
    +--------------------------------------------------+
    + | | |
    +--------------------------------------------------+
    ||||
    = dev
    ->needed_
    tailroom

    Option 3:

    head data tail end
    +--------------------------------------------------------------+
    + | | | |
    +--------------------------------------------------------------+
    |||||
    =LL_ = dev
    RESERVED_ ->needed_
    SPACE(dev) tailroom

    Our tunnel drivers try expanding headroom and the space for tunnel
    encapsulation was not a mandatory space -- so we are not seeing
    bugs here --, but just for optimization for performance critial
    situations.

    Since NDISC messages are not performance critical unlike TCP,
    and as we know outgoing device, LL_RESERVED_SPACE(dev) should be
    just enough for the device in most (if not all) cases:
    LL_RESERVED_SPACE(dev)
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    YOSHIFUJI Hideaki / 吉藤英明
     

15 Dec, 2012

1 commit

  • In function ndisc_redirect_rcv(), the skb->data points to the transport
    header, but function icmpv6_notify() need the skb->data points to the
    inner IP packet. So before using icmpv6_notify() to propagate redirect,
    change skb->data to point the inner IP packet that triggered the sending
    of the Redirect, and introduce struct rd_msg to make it easy.

    Signed-off-by: Duan Jiong
    Signed-off-by: David S. Miller

    Duan Jiong
     

14 Dec, 2012

1 commit

  • If a natural number n exists where 2 + data_len < 2 + data_len + pad,
    post padding is not initialized correctly.

    (Un)fortunately, the only type that requires pad is Infiniband,
    whose pad is 2 and data_len is 20, and this logical error has not
    become obvious, but it is better to fix.

    Note that ndisc_opt_addr_space() handles the situation described
    above correctly.

    Signed-off-by: YOSHIFUJI Hideaki
    Signed-off-by: David S. Miller

    YOSHIFUJI Hideaki / 吉藤英明
     

13 Dec, 2012

1 commit

  • These symbols were exported for bonding device by commit 305d552a
    ("bonding: send IPv6 neighbor advertisement on failover").

    It bacame obsolete by commit 7c899432 ("bonding, ipv4, ipv6, vlan: Handle
    NETDEV_BONDING_FAILOVER like NETDEV_NOTIFY_PEERS") and removed by
    commit 4f5762ec ("bonding: Remove obsolete source file 'bond_ipv6.c'").

    Signed-off-by: YOSHIFUJI Hideaki
    Signed-off-by: David S. Miller

    YOSHIFUJI Hideaki
     

02 Dec, 2012

1 commit

  • As of 026359b [ipv6: Send ICMPv6 RSes only when RAs are accepted], the
    logic determining whether to send Router Solicitations is identical
    to the logic determining whether kernel accepts Router Advertisements.

    However the condition itself is repeated in several code locations.

    Unify it by introducing 'ipv6_accept_ra()' accessor.

    Also, simplify the condition expression, making it more readable.
    No semantic change.

    Signed-off-by: Shmulik Ladkani
    Signed-off-by: David S. Miller

    Shmulik Ladkani
     

14 Nov, 2012

1 commit


13 Nov, 2012

1 commit


11 Nov, 2012

1 commit


10 Nov, 2012

1 commit


08 Nov, 2012

1 commit


04 Nov, 2012

1 commit

  • As suggested by Eric, we could introduce a helper function
    for ipv6 too, to avoid checking if rt is NULL before
    dst_release().

    Cc: Eric Dumazet
    Cc: David S. Miller
    Signed-off-by: Cong Wang
    Signed-off-by: David S. Miller

    Amerigo Wang
     

12 Jul, 2012

3 commits


11 Jul, 2012

1 commit