1. 25 Feb, 2015 2 commits
    • Florian Fainelli's avatar
      net: dsa: integrate with SWITCHDEV for HW bridging · b73adef6
      Florian Fainelli authored
      In order to support bridging offloads in DSA switch drivers, select
      NET_SWITCHDEV to get access to the port_stp_update and parent_get_id
      NDOs that we are required to implement.
      To facilitate the integratation at the DSA driver level, we implement 3
      types of operations:
      - port_join_bridge
      - port_leave_bridge
      - port_stp_update
      DSA will resolve which switch ports that are currently bridge port
      members as some Switch hardware/drivers need to know about that to limit
      the register programming to just the relevant registers (especially for
      slow MDIO buses).
      We also take care of setting the correct STP state when slave network
      devices are brought up/down while being bridge members.
      Finally, when a port is leaving the bridge, we make sure we set in
      BR_STATE_FORWARDING state, otherwise the bridge layer would leave it
      disabled as a result of having left the bridge.
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • Guenter Roeck's avatar
      net: dsa: Ensure that port array elements are initialized before being used · d87d6f44
      Guenter Roeck authored
      A network device notifier can be called for one or more of the created
      slave devices before all slave devices have been registered. This can
      result in a mismatch between ds->phys_port_mask and the registered devices
      by the time the call is made, and it can result in a slave device being
      added to a bridge before its entry in ds->ports[] has been initialized.
      Rework the initialization code to initialize entries in ds->ports[] in
      dsa_slave_create. With this change, dsa_slave_create no longer needs
      to return slave_dev but can return an error code instead.
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
  2. 24 Feb, 2015 11 commits
    • Tino Reichardt's avatar
      net: via-rhine: add BQL support · 92bf2008
      Tino Reichardt authored
      Add Byte Queue Limits (BQL) support to via-rhine driver.
      [edumazet] tweaked patch and changed TX_RING_SIZE from 16 to 64
      Signed-off-by: default avatarTino Reichardt <milky-kernel@mcmilk.de>
      Tested-by: default avatarJamie Gloudon <jamie.gloudon@gmail.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • Ian Morris's avatar
      ipv6: remove dead debug code from ip6_tunnel.c · 49e64dcd
      Ian Morris authored
      The IP6_TNL_TRACE macro is no longer used anywhere in the code so remove definition.
      Signed-off-by: default avatarIan Morris <ipm@chirality.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • David S. Miller's avatar
      Merge branch 'bonding-next' · 8ff3ac06
      David S. Miller authored
      Mahesh Bandewar says:
      (Shortened) Bonding patch series
      I'm shortening the earlier patch series to just two patches at this moment.
      Andy is going to integrate remaining 3 patches with his netlink changes
      and post the completed patches.
      These two patches are the same one from the previous patch series with
      some styling changes (Dave Miller's suggestions) for the churn-machine patch.
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • Mahesh Bandewar's avatar
      bonding: Implement port churn-machine (AD standard 43.4.17). · 14c9551a
      Mahesh Bandewar authored
      The Churn Detection machines detect the situation where a port is operable,
      but the Actor and Partner have not attached the link to an Aggregator and
      brought the link into operation within a bound time period. Under normal
      operation of the LACP, agreement between Actor and Partner should be reached
      very rapidly. Continued failure to reach agreement can be symptomatic of
      device failure.
      Actor-churn-detection state-machine
      Reviewed-by: default avatarNikolay Aleksandrov <nikolay@redhat.com>
      BEGIN=True + PortEnable=False
       +------------------------+   ActorPort.Sync=True  +------------------+
       |   ACTOR_CHURN_MONITOR  | ---------------------> |  NO_ACTOR_CHURN  |
       |========================|                        |==================|
       |    ActorChurn=False    |  ActorPort.Sync=False  | ActorChurn=False |
       | ActorChurn.Timer=Start | <--------------------- |                  |
       +------------------------+                        +------------------+
                 |                                                ^
                 |                                                |
        ActorChurn.Timer=Expired                                  |
                 |                                       ActorPort.Sync=True
                 |                                                |
                 |                +-----------------+             |
                 |                |   ACTOR_CHURN   |             |
                 |                |=================|             |
                 +--------------> | ActorChurn=True | ------------+
                                  |                 |
      Similar for the Partner-churn-detection.
      Signed-off-by: default avatarMahesh Bandewar <maheshb@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • Mahesh Bandewar's avatar
      bonding: Verify RX LACPDU has proper dest mac-addr · bb54e589
      Mahesh Bandewar authored
      The 802.1AX standard states:
      "The DA in LACPDUs is the Slow_Protocols_Multicast address."
      This patch enforces that and drops LACPDUs with destination MAC
      addresses other than Slow_Protocols_Multicast address
      Signed-off-by: default avatarMahesh Bandewar <maheshb@google.com>
      Reviewed-by: default avatarNikolay Aleksandrov <nikolay@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • David S. Miller's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next · 2a12d6cf
      David S. Miller authored
      Jeff Kirsher says:
      Intel Wired LAN Driver Updates 2015-02-23
      This series contains updates to e1000e, igbvf, i40e and i40evf.
      David adds support for i219 devices to the e1000e driver.
      Jeff (me) provides two patches to cleanup igbvf, first cleans up the
      whitespace issues found and the second cleans up the usage of msleep(),
      min() and max() with usleep_range(), min_t() and max_t() respectively.
      Kamil updates the shadow RAM read/write functions by refactoring them
      to prepare for future work.
      Shannon renames the debugfs command "clear_stats pf" to clear_stats port"
      to clarify what the function really does.
      Mitch refactors the receive routine, by splitting the receive hot path
      code into two, one for packet split and one for single buffer, which
      improves receive performance.  Disables NAPI polling sooner when closing
      the interface to fix an occasional panic during close which was
      caused by the driver trying to delete and clean rings at the same time.
      Also refactors reset for i40evf, since a recent change to the shutdown
      flow messed up the reset flow.  Since i40evf_down() now holds the
      critical section lock, we cannot call it from the reset handler, which
      also holds the lock.
      Nicholas restricts the virtual channel opcodes should remain consistent
      between updates to the opcode enum.
      Neerav converts the VSI connection type to use a #define instead of
      using a magic number.
      Anjali updates the registers file to remove registers no longer available.
      Also fixes the EMPR interrupt handling, so that we won't trigger another
      EMPR when we receive an EMPR event.
      Catherine cleans up the variable an_enable since it was set and never
      Greg fixes the netdev op that allows the operator to turn MAC/VLAN
      spoof checking on and off so that it includes the flag for VLAN spoof
      v2: Updated patch #10 in the series to use test_and_clear_bit() as
          suggested by Sergei Shtylyov
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • David S. Miller's avatar
      Merge branch 'bcmgenet-next' · 1e0629d3
      David S. Miller authored
      Petri Gynther says:
      net: bcmgenet: Tx init improvements
      Four small patches to improve bcmgenet Tx init:
      1. bcmgenet_init_tx_ring() cleanup
      2. rework Tx queue init
      3. precalculate TxCB->bd_addr
      4. rename bcmgenet_hw_params->bds_cnt and GENET_DEFAULT_BD_CNT
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • Petri Gynther's avatar
      net: bcmgenet: rename bcmgenet_hw_params->bds_cnt and GENET_DEFAULT_BD_CNT · 51a966a7
      Petri Gynther authored
      bcmgenet_hw_params->bds_cnt and GENET_DEFAULT_BD_CNT are used only in Tx init.
      Rename them accordingly:
      - bcmgenet_hw_params->bds_cnt => bcmgenet_hw_params->tx_bds_per_q
      Signed-off-by: default avatarPetri Gynther <pgynther@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • Petri Gynther's avatar
      net: bcmgenet: precalculate TxCB->bd_addr · 014012a4
      Petri Gynther authored
      There is 1-to-1 mapping between TxCBs and TxBDs. Precalculate TxCB->bd_addr
      once in bcmgenet_init_dma() instead of doing it over and over needlessly in
      Signed-off-by: default avatarPetri Gynther <pgynther@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • Petri Gynther's avatar
      net: bcmgenet: rework Tx queue init · 16c6d667
      Petri Gynther authored
      1. Rename bcmgenet_init_multiq() to bcmgenet_init_tx_queues()
      2. Fix bcmgenet_init_tx_queues() function description
      3. Move Tx default queue init inside bcmgenet_init_tx_queues()
      4. Modify bcmgenet_init_dma() to call bcmgenet_init_tx_queues()
      Signed-off-by: default avatarPetri Gynther <pgynther@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    • Petri Gynther's avatar
      net: bcmgenet: bcmgenet_init_tx_ring() cleanup · 4f8b2d7d
      Petri Gynther authored
      1. Simplify function description
      2. Rename function parameter write_ptr to start_ptr to better indicate use
      3. Remove unnecessary local variable first_bd
      4. Remove out-of-place comment "Unclassified traffic goes to ring 16"
      5. Fix TDMA_WRITE_PTR register init
      Signed-off-by: default avatarPetri Gynther <pgynther@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
  3. 23 Feb, 2015 27 commits