06 Mar, 2015

1 commit

  • This extends the design in commit 958501163ddd ("bridge: Add support for
    IEEE 802.11 Proxy ARP") with optional set of rules that are needed to
    meet the IEEE 802.11 and Hotspot 2.0 requirements for ProxyARP. The
    previously added BR_PROXYARP behavior is left as-is and a new
    BR_PROXYARP_WIFI alternative is added so that this behavior can be
    configured from user space when required.

    In addition, this enables proxyarp functionality for unicast ARP
    requests for both BR_PROXYARP and BR_PROXYARP_WIFI since it is possible
    to use unicast as well as broadcast for these frames.

    The key differences in functionality:

    BR_PROXYARP:
    - uses the flag on the bridge port on which the request frame was
    received to determine whether to reply
    - block bridge port flooding completely on ports that enable proxy ARP

    BR_PROXYARP_WIFI:
    - uses the flag on the bridge port to which the target device of the
    request belongs
    - block bridge port flooding selectively based on whether the proxyarp
    functionality replied

    Signed-off-by: Jouni Malinen
    Signed-off-by: David S. Miller

    Jouni Malinen
     

18 Jan, 2015

1 commit


03 Dec, 2014

3 commits

  • This policy flag controls syncing of learned FDB entries to bridge's FDB. If
    on, FDB entries learned on bridge port device will be synced. If off, device
    may still learn new FDB entries but they will not be synced with bridge's FDB.

    Signed-off-by: Scott Feldman
    Signed-off-by: Jiri Pirko
    Acked-by: Roopa Prabhu
    Acked-by: Jamal Hadi Salim
    Acked-by: Andy Gospodarek
    Signed-off-by: David S. Miller

    Scott Feldman
     
  • Signed-off-by: Scott Feldman
    Signed-off-by: Jiri Pirko
    Acked-by: Jamal Hadi Salim
    Acked-by: Andy Gospodarek
    Acked-by: Florian Fainelli

    Scott Feldman
     
  • When the swdev device learns a new mac/vlan on a port, it sends some async
    notification to the driver and the driver installs an FDB in the device.
    To give a holistic system view, the learned mac/vlan should be reflected
    in the bridge's FBD table, so the user, using normal iproute2 cmds, can view
    what is currently learned by the device. This API on the bridge driver gives
    a way for the swdev driver to install an FBD entry in the bridge FBD table.
    (And remove one).

    This is equivalent to the device running these cmds:

    bridge fdb [add|del] dev vid master

    This patch needs some extra eyeballs for review, in paricular around the
    locking and contexts.

    Signed-off-by: Scott Feldman
    Signed-off-by: Jiri Pirko
    Acked-by: Jamal Hadi Salim
    Signed-off-by: David S. Miller

    Scott Feldman
     

09 Jul, 2014

2 commits

  • With this patch other modules are able to ask the bridge whether an
    IGMP or MLD querier exists on the according, bridged link layer.

    Multicast snooping can only be performed if a valid, selected querier
    exists on a link.

    Just like the bridge only enables its multicast snooping if a querier
    exists, e.g. batman-adv too can only activate its multicast
    snooping in bridged scenarios if a querier is present.

    For instance this export avoids having to reimplement IGMP/MLD
    querier message snooping and parsing in e.g. batman-adv, when
    multicast optimizations for bridged scenarios are added in the
    future.

    Signed-off-by: Linus Lüssing
    Signed-off-by: David S. Miller

    Linus Lüssing
     
  • To make users (e.g. batman-adv soon) load- and runnable even if the
    bridge was compiled without snooping capabilities - or even if the
    kernel was compiled without any bridge code at all.

    Signed-off-by: Linus Lüssing
    Signed-off-by: David S. Miller

    Linus Lüssing
     

11 Jun, 2014

2 commits

  • Adding bridge support to the batman-adv multicast optimization requires
    batman-adv knowing about the existence of bridged-in IGMP/MLD queriers
    to be able to reliably serve any multicast listener behind this same
    bridge.

    Signed-off-by: Linus Lüssing
    Signed-off-by: David S. Miller

    Linus Lüssing
     
  • With this new, exported function br_multicast_list_adjacent(net_dev) a
    list of IPv4/6 addresses is returned. This list contains all multicast
    addresses sensed by the bridge multicast snooping feature on all bridge
    ports of the bridge interface of net_dev, excluding addresses from the
    specified net_device itself.

    Adding bridge support to the batman-adv multicast optimization requires
    batman-adv knowing about the existence of bridged-in multicast
    listeners to be able to reliably serve them with multicast packets.

    Signed-off-by: Linus Lüssing
    Signed-off-by: David S. Miller

    Linus Lüssing
     

13 Oct, 2012

1 commit


12 Jan, 2011

1 commit

  • broute table init hook sets up the "br_should_route_hook" pointer,
    which then gets called from br_input.

    commit a386f99025f13b32502fe5dedf223c20d7283826
    (bridge: add proper RCU annotation to should_route_hook)
    introduced a typedef, and then changed this to:

    br_should_route_hook_t *rhook;
    [..]
    rhook = rcu_dereference(br_should_route_hook);
    if (*rhook(skb))

    problem is that "br_should_route_hook" contains the address of the function,
    so calling *rhook() results in kernel panic.

    Signed-off-by: Florian Westphal
    Acked-by: Eric Dumazet
    Signed-off-by: Pablo Neira Ayuso

    Florian Westphal
     

16 Nov, 2010

1 commit


02 Jun, 2010

1 commit

  • What this patch does is it removes two receive frame hooks (for bridge and for
    macvlan) from __netif_receive_skb. These are replaced them with a single
    hook for both. It only supports one hook per device because it makes no
    sense to do bridging and macvlan on the same device.

    Then a network driver (of virtual netdev like macvlan or bridge) can register
    an rx_handler for needed net device.

    Signed-off-by: Jiri Pirko
    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Jiri Pirko
     

05 Nov, 2009

1 commit

  • This cleanup patch puts struct/union/enum opening braces,
    in first line to ease grep games.

    struct something
    {

    becomes :

    struct something {

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     

12 Jun, 2008

1 commit


03 May, 2008

1 commit

  • The forwarding table binary interface (my bad choice), only exposes
    the port number of the first 8 bits. The bridge code was limited to
    256 ports at the time, but now the kernel supports up 1024 ports, so
    the upper bits are lost when doing:

    brctl showmacs

    The fix is to squeeze the extra bits into small hole left in data
    structure, to maintain binary compatiablity.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Stephen Hemminger
     

16 Oct, 2007

1 commit


11 Oct, 2007

1 commit

  • This patch makes most of the generic device layer network
    namespace safe. This patch makes dev_base_head a
    network namespace variable, and then it picks up
    a few associated variables. The functions:
    dev_getbyhwaddr
    dev_getfirsthwbytype
    dev_get_by_flags
    dev_get_by_name
    __dev_get_by_name
    dev_get_by_index
    __dev_get_by_index
    dev_ioctl
    dev_ethtool
    dev_load
    wireless_process_ioctl

    were modified to take a network namespace argument, and
    deal with it.

    vlan_ioctl_set and brioctl_set were modified so their
    hooks will receive a network namespace argument.

    So basically anthing in the core of the network stack that was
    affected to by the change of dev_base was modified to handle
    multiple network namespaces. The rest of the network stack was
    simply modified to explicitly use &init_net the initial network
    namespace. This can be fixed when those components of the network
    stack are modified to handle multiple network namespaces.

    For now the ifindex generator is left global.

    Fundametally ifindex numbers are per namespace, or else
    we will have corner case problems with migration when
    we get that far.

    At the same time there are assumptions in the network stack
    that the ifindex of a network device won't change. Making
    the ifindex number global seems a good compromise until
    the network stack can cope with ifindex changes when
    you change namespaces, and the like.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     

26 Apr, 2007

1 commit


17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds