1. 11 8月, 2015 1 次提交
  2. 10 8月, 2015 1 次提交
  3. 04 8月, 2015 3 次提交
  4. 30 7月, 2015 5 次提交
    • B
      netfilter: bridge: do not initialize statics to 0 or NULL · f4b3eee7
      Bernhard Thaler 提交于
      Fix checkpatch.pl "ERROR: do not initialise statics to 0 or NULL" for
      all statics explicitly initialized to 0.
      Signed-off-by: NBernhard Thaler <bernhard.thaler@wvnet.at>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      f4b3eee7
    • F
      netfilter: bridge: reduce nf_bridge_info to 32 bytes again · 72b1e5e4
      Florian Westphal 提交于
      We can use union for most of the temporary cruft (original ipv4/ipv6
      address, source mac, physoutdev) since they're used during different
      stages of br netfilter traversal.
      
      Also get rid of the last two ->mask users.
      
      Shrinks struct from 48 to 32 on 64bit arch.
      Signed-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      72b1e5e4
    • N
      bridge: mdb: fix delmdb state in the notification · 7ae90a4f
      Nikolay Aleksandrov 提交于
      Since mdb states were introduced when deleting an entry the state was
      left as it was set in the delete request from the user which leads to
      the following output when doing a monitor (for example):
      $ bridge mdb add dev br0 port eth3 grp 239.0.0.1 permanent
      (monitor) dev br0 port eth3 grp 239.0.0.1 permanent
      $ bridge mdb del dev br0 port eth3 grp 239.0.0.1 permanent
      (monitor) dev br0 port eth3 grp 239.0.0.1 temp
      ^^^
      Note the "temp" state in the delete notification which is wrong since
      the entry was permanent, the state in a delete is always reported as
      "temp" regardless of the real state of the entry.
      
      After this patch:
      $ bridge mdb add dev br0 port eth3 grp 239.0.0.1 permanent
      (monitor) dev br0 port eth3 grp 239.0.0.1 permanent
      $ bridge mdb del dev br0 port eth3 grp 239.0.0.1 permanent
      (monitor) dev br0 port eth3 grp 239.0.0.1 permanent
      
      There's one important note to make here that the state is actually not
      matched when doing a delete, so one can delete a permanent entry by
      stating "temp" in the end of the command, I've chosen this fix in order
      not to break user-space tools which rely on this (incorrect) behaviour.
      
      So to give an example after this patch and using the wrong state:
      $ bridge mdb add dev br0 port eth3 grp 239.0.0.1 permanent
      (monitor) dev br0 port eth3 grp 239.0.0.1 permanent
      $ bridge mdb del dev br0 port eth3 grp 239.0.0.1 temp
      (monitor) dev br0 port eth3 grp 239.0.0.1 permanent
      
      Note the state of the entry that got deleted is correct in the
      notification.
      Signed-off-by: NNikolay Aleksandrov <nikolay@cumulusnetworks.com>
      Fixes: ccb1c31a ("bridge: add flags to distinguish permanent mdb entires")
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7ae90a4f
    • S
      bridge: mcast: give fast leave precedence over multicast router and querier · 544586f7
      Satish Ashok 提交于
      When fast leave is configured on a bridge port and an IGMP leave is
      received for a group, the group is not deleted immediately if there is
      a router detected or if multicast querier is configured.
      Ideally the group should be deleted immediately when fast leave is
      configured.
      Signed-off-by: NSatish Ashok <sashok@cumulusnetworks.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      544586f7
    • T
      bridge: Fix network header pointer for vlan tagged packets · df356d5e
      Toshiaki Makita 提交于
      There are several devices that can receive vlan tagged packets with
      CHECKSUM_PARTIAL like tap, possibly veth and xennet.
      When (multiple) vlan tagged packets with CHECKSUM_PARTIAL are forwarded
      by bridge to a device with the IP_CSUM feature, they end up with checksum
      error because before entering bridge, the network header is set to
      ETH_HLEN (not including vlan header length) in __netif_receive_skb_core(),
      get_rps_cpu(), or drivers' rx functions, and nobody fixes the pointer later.
      
      Since the network header is exepected to be ETH_HLEN in flow-dissection
      and hash-calculation in RPS in rx path, and since the header pointer fix
      is needed only in tx path, set the appropriate network header on forwarding
      packets.
      Signed-off-by: NToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      df356d5e
  5. 29 7月, 2015 1 次提交
  6. 27 7月, 2015 2 次提交
  7. 25 7月, 2015 1 次提交
  8. 21 7月, 2015 3 次提交
  9. 16 7月, 2015 2 次提交
  10. 14 7月, 2015 1 次提交
  11. 11 7月, 2015 1 次提交
  12. 10 7月, 2015 2 次提交
  13. 09 7月, 2015 2 次提交
  14. 08 7月, 2015 1 次提交
    • J
      netfilter: bridge: Use __in6_dev_get rather than in6_dev_get in br_validate_ipv6 · 86e89718
      Julien Grall 提交于
      The commit efb6de9b "netfilter: bridge:
      forward IPv6 fragmented packets" introduced a new function
      br_validate_ipv6 which take a reference on the inet6 device. Although,
      the reference is not released at the end.
      
      This will result to the impossibility to destroy any netdevice using
      ipv6 and bridge.
      
      It's possible to directly retrieve the inet6 device without taking a
      reference as all netfilter hooks are protected by rcu_read_lock via
      nf_hook_slow.
      
      Spotted while trying to destroy a Xen guest on the upstream Linux:
      "unregister_netdevice: waiting for vif1.0 to become free. Usage count = 1"
      Signed-off-by: NJulien Grall <julien.grall@citrix.com>
      Cc: Bernhard Thaler <bernhard.thaler@wvnet.at>
      Cc: Pablo Neira Ayuso <pablo@netfilter.org>
      Cc: fw@strlen.de
      Cc: ian.campbell@citrix.com
      Cc: wei.liu2@citrix.com
      Cc: Bob Liu <bob.liu@oracle.com>
      Acked-by: NStephen Hemminger <stephen@networkplumber.org>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      86e89718
  15. 03 7月, 2015 1 次提交
  16. 02 7月, 2015 2 次提交
  17. 24 6月, 2015 2 次提交
  18. 23 6月, 2015 3 次提交
  19. 19 6月, 2015 1 次提交
  20. 18 6月, 2015 2 次提交
  21. 16 6月, 2015 2 次提交
    • S
      bridge: del external_learned fdbs from device on flush or ageout · b4ad7baa
      Scott Feldman 提交于
      We need to delete from offload the device externally learnded fdbs when any
      one of these events happen:
      
      1) Bridge ages out fdb.  (When bridge is doing ageing vs. device doing
      ageing.  If device is doing ageing, it would send SWITCHDEV_FDB_DEL
      directly).
      
      2) STP state change flushes fdbs on port.
      
      3) User uses sysfs interface to flush fdbs from bridge or bridge port:
      
      	echo 1 >/sys/class/net/BR_DEV/bridge/flush
      	echo 1 >/sys/class/net/BR_PORT/brport/flush
      
      4) Offload driver send event SWITCHDEV_FDB_DEL to delete fdb entry.
      
      For rocker, we can now get called to delete fdb entry in wait and nowait
      contexts, so set NOWAIT flag when deleting fdb entry.
      Signed-off-by: NScott Feldman <sfeldma@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b4ad7baa
    • S
      bridge: use either ndo VLAN ops or switchdev VLAN ops to install MASTER vlans · 7f109539
      Scott Feldman 提交于
      v2:
      
      Move struct switchdev_obj automatics to inner scope where there used.
      
      v1:
      
      To maintain backward compatibility with the existing iproute2 "bridge vlan"
      command, let bridge's setlink/dellink handler call into either the port
      driver's 8021q ndo ops or the port driver's bridge_setlink/dellink ops.
      
      This allows port driver to choose 8021q ops or the newer
      bridge_setlink/dellink ops when implementing VLAN add/del filtering on the
      device.  The iproute "bridge vlan" command does not need to be modified.
      
      To summarize using the "bridge vlan" command examples, we have:
      
      1) bridge vlan add|del vid VID dev DEV
      
      Here iproute2 sets MASTER flag.  Bridge's bridge_setlink/dellink is called.
      Vlan is set on bridge for port.  If port driver implements ndo 8021q ops,
      call those to port driver can install vlan filter on device.  Otherwise, if
      port driver implements bridge_setlink/dellink ops, call those to install
      vlan filter to device.  This option only works if port is bridged.
      
      2) bridge vlan add|del vid VID dev DEV master
      
      Same as 1)
      
      3) bridge vlan add|del vid VID dev DEV self
      
      Bridge's bridge_setlink/dellink isn't called.  Port driver's
      bridge_setlink/dellink is called, if implemented.  This option works if
      port is bridged or not.  If port is not bridged, a VLAN can still be
      added/deleted to device filter using this variant.
      
      4) bridge vlan add|del vid VID dev DEV master self
      
      This is a combination of 1) and 3), but will only work if port is bridged.
      Signed-off-by: NScott Feldman <sfeldma@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7f109539
  22. 12 6月, 2015 1 次提交
    • F
      netfilter: bridge: restore vlan tag when refragmenting · d7b59742
      Florian Westphal 提交于
      If bridge netfilter is used with both
      bridge-nf-call-iptables and bridge-nf-filter-vlan-tagged enabled
      then ip fragments in VLAN frames are sent without the vlan header.
      
      This has never worked reliably.  Turns out this relied on pre-3.5
      behaviour where skb frag_list was used to store ip fragments;
      ip_fragment() then re-used these skbs.
      
      But since commit 3cc49492
      ("ipv4: use skb coalescing in defragmentation") this is no longer
      the case.  ip_do_fragment now needs to allocate new skbs, but these
      don't contain the vlan tag information anymore.
      
      Fix it by storing vlan information of the ressembled skb in the
      br netfilter percpu frag area, and restore them for each of the
      fragments.
      
      Fixes: 3cc49492 ("ipv4: use skb coalescing in defragmentation")
      Signed-off-by: NFlorian Westphal <fw@strlen.de>
      Signed-off-by: NPablo Neira Ayuso <pablo@netfilter.org>
      d7b59742