1. 20 4月, 2012 7 次提交
  2. 19 4月, 2012 1 次提交
  3. 18 4月, 2012 15 次提交
  4. 17 4月, 2012 7 次提交
  5. 16 4月, 2012 9 次提交
    • J
      net: rtnetlink notify events for FDB NTF_SELF adds and deletes · 3ff661c3
      John Fastabend 提交于
      It is useful to be able to monitor for FDB events in user space.
      This patch adds support to generate netlink events when a change
      is made to a device supporting the FDB ops.
      
      This brings embedded switches inline with the SW net/bridge which
      triggers events on FDB updates as well.
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3ff661c3
    • J
      net: add fdb generic dump routine · d83b0603
      John Fastabend 提交于
      This adds a generic dump routine drivers can call. It
      should be sufficient to handle any bridging model that
      uses the unicast address list. This should be most SR-IOV
      enabled NICs.
      
      v2: return error on nlmsg_put and use -EMSGSIZE instead
          of -ENOMEM this is inline other usages
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d83b0603
    • J
      net: addr_list: add exclusive dev_uc_add and dev_mc_add · 12a94634
      John Fastabend 提交于
      This adds a dev_uc_add_excl() and dev_mc_add_excl() calls
      similar to the original dev_{uc|mc}_add() except it sets
      the global bit and returns -EEXIST for duplicat entires.
      
      This is useful for drivers that support SR-IOV, macvlan
      devices and any other devices that need to manage the
      unicast and multicast lists.
      
      v2: fix typo UNICAST should be MULTICAST in dev_mc_add_excl()
      
      CC: Ben Hutchings <bhutchings@solarflare.com>
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      12a94634
    • J
      net: add generic PF_BRIDGE:RTM_ FDB hooks · 77162022
      John Fastabend 提交于
      This adds two new flags NTF_MASTER and NTF_SELF that can
      now be used to specify where PF_BRIDGE netlink commands should
      be sent. NTF_MASTER sends the commands to the 'dev->master'
      device for parsing. Typically this will be the linux net/bridge,
      or open-vswitch devices. Also without any flags set the command
      will be handled by the master device as well so that current user
      space tools continue to work as expected.
      
      The NTF_SELF flag will push the PF_BRIDGE commands to the
      device. In the basic example below the commands are then parsed
      and programmed in the embedded bridge.
      
      Note if both NTF_SELF and NTF_MASTER bits are set then the
      command will be sent to both 'dev->master' and 'dev' this allows
      user space to easily keep the embedded bridge and software bridge
      in sync.
      
      There is a slight complication in the case with both flags set
      when an error occurs. To resolve this the rtnl handler clears
      the NTF_ flag in the netlink ack to indicate which sets completed
      successfully. The add/del handlers will abort as soon as any
      error occurs.
      
      To support this new net device ops were added to call into
      the device and the existing bridging code was refactored
      to use these. There should be no required changes in user space
      to support the current bridge behavior.
      
      A basic setup with a SR-IOV enabled NIC looks like this,
      
                veth0  veth2
                  |      |
                ------------
                |  bridge0 |   <---- software bridging
                ------------
                     /
                     /
        ethx.y      ethx
          VF         PF
           \         \          <---- propagate FDB entries to HW
           \         \
        --------------------
        |  Embedded Bridge |    <---- hardware offloaded switching
        --------------------
      
      In this case the embedded bridge must be managed to allow 'veth0'
      to communicate with 'ethx.y' correctly. At present drivers managing
      the embedded bridge either send frames onto the network which
      then get dropped by the switch OR the embedded bridge will flood
      these frames. With this patch we have a mechanism to manage the
      embedded bridge correctly from user space. This example is specific
      to SR-IOV but replacing the VF with another PF or dropping this
      into the DSA framework generates similar management issues.
      
      Examples session using the 'br'[1] tool to add, dump and then
      delete a mac address with a new "embedded" option and enabled
      ixgbe driver:
      
      # br fdb add 22:35:19:ac:60:59 dev eth3
      # br fdb
      port    mac addr                flags
      veth0   22:35:19:ac:60:58       static
      veth0   9a:5f:81:f7:f6:ec       local
      eth3    00:1b:21:55:23:59       local
      eth3    22:35:19:ac:60:59       static
      veth0   22:35:19:ac:60:57       static
      #br fdb add 22:35:19:ac:60:59 embedded dev eth3
      #br fdb
      port    mac addr                flags
      veth0   22:35:19:ac:60:58       static
      veth0   9a:5f:81:f7:f6:ec       local
      eth3    00:1b:21:55:23:59       local
      eth3    22:35:19:ac:60:59       static
      veth0   22:35:19:ac:60:57       static
      eth3    22:35:19:ac:60:59       local embedded
      #br fdb del 22:35:19:ac:60:59 embedded dev eth3
      
      I added a couple lines to 'br' to set the flags correctly is all. It
      is my opinion that the merit of this patch is now embedded and SW
      bridges can both be modeled correctly in user space using very nearly
      the same message passing.
      
      [1] 'br' tool was published as an RFC here and will be renamed 'bridge'
          http://patchwork.ozlabs.org/patch/117664/
      
      Thanks to Jamal Hadi Salim, Stephen Hemminger and Ben Hutchings for
      valuable feedback, suggestions, and review.
      
      v2: fixed api descriptions and error case with both NTF_SELF and
          NTF_MASTER set plus updated patch description.
      Signed-off-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      77162022
    • H
      bridge: Add multicast_querier toggle and disable queries by default · c5c23260
      Herbert Xu 提交于
      Sending general queries was implemented as an optimisation to speed
      up convergence on start-up.  In order to prevent interference with
      multicast routers a zero source address has to be used.
      
      Unfortunately these packets appear to cause some multicast-aware
      switches to misbehave, e.g., by disrupting multicast packets to us.
      
      Since the multicast snooping feature still functions without sending
      our own queries, this patch will change the default to not send
      queries.
      
      For those that need queries in order to speed up convergence on start-up,
      a toggle is provided to restore the previous behaviour.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c5c23260
    • H
      bridge: Restart queries when last querier expires · c83b8fab
      Herbert Xu 提交于
      As it stands when we discover that a real querier (one that queries
      with a non-zero source address) we stop querying.  However, even
      after said querier has fallen off the edge of the earth, we will
      never restart querying (unless the bridge itself is restarted).
      
      This patch fixes this by kicking our own querier into gear when
      the timer for other queriers expire.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c83b8fab
    • H
      bridge: Add br_multicast_start_querier · 74857216
      Herbert Xu 提交于
      This patch adds the helper br_multicast_start_querier so that
      the code which starts the queriers in br_multicast_toggle can
      be reused elsewhere.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      74857216
    • E
      net: cleanup unsigned to unsigned int · 95c96174
      Eric Dumazet 提交于
      Use of "unsigned int" is preferred to bare "unsigned" in net tree.
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      95c96174
    • D
      ipv4: fix checkpatch errors · 5e73ea1a
      Daniel Baluta 提交于
      Fix checkpatch errors of the following type:
      	* ERROR: "foo * bar" should be "foo *bar"
      	* ERROR: "(foo*)" should be "(foo *)"
      Signed-off-by: NDaniel Baluta <dbaluta@ixiacom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5e73ea1a
  6. 15 4月, 2012 1 次提交