1. 18 8月, 2016 3 次提交
  2. 15 8月, 2016 1 次提交
  3. 09 8月, 2016 3 次提交
  4. 26 7月, 2016 1 次提交
  5. 25 7月, 2016 6 次提交
  6. 21 7月, 2016 2 次提交
  7. 16 7月, 2016 5 次提交
  8. 15 7月, 2016 1 次提交
  9. 13 7月, 2016 1 次提交
  10. 06 7月, 2016 13 次提交
  11. 05 7月, 2016 4 次提交
    • I
      mlxsw: spectrum: Enable L3 interfaces on top of bridge devices · 99f44bb3
      Ido Schimmel 提交于
      As with the previously introduced L3 interfaces, listen to 'inetaddr'
      notifications sent for bridges devices configured on top of the port
      netdevs and create / destroy router interfaces (RIFs) accordingly.
      This also includes VLAN devices configured on top of the VLAN-aware
      bridge.
      
      The RIFs will be destroyed either when the last IP address is removed or
      when the underlying FID is is destroyed.
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      99f44bb3
    • I
      mlxsw: spectrum: Configure FIDs based on bridge events · 701b186e
      Ido Schimmel 提交于
      Before introducing support for L3 interfaces on top of the VLAN-aware
      bridge we need to add some missing infrastructure.
      
      Such an interface can either be the bridge device itself or a VLAN
      device on top of it. In the first case the router interface (RIF) is
      associated with FID 1, which is created whenever the first port netdev
      joins the bridge. We currently assume the default PVID is 1 and that
      it's already created, as it seems reasonable. This can be extended in
      the future.
      
      However, in the second case it's entirely possible we've yet to create a
      matching FID. This can happen if the VLAN device was configured before
      making any bridge port member in the VLAN.
      
      Prevent such ordering problems by using the VLAN device's CHANGEUPPER
      event to configure the FID. Make the VLAN device hold a reference to the
      FID and prevent it from being destroyed even if none of the port netdevs
      is using it.
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      701b186e
    • I
      mlxsw: spectrum: Unsplit the vFID range · 3ba2ebf4
      Ido Schimmel 提交于
      Previous commit deprecated the vFIDs used to get traffic to the CPU
      ('port_vfids'). Thus, we now use the vFIDs as god intended and the
      artificial split is no longer needed.
      
      Rename functions and variables to reflect that.
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3ba2ebf4
    • I
      mlxsw: spectrum: Introduce support for router interfaces · 99724c18
      Ido Schimmel 提交于
      Up until now we only supported bridged interfaces. Packets ingressing
      through the switch ports were either classified to FIDs (in the case of
      the VLAN-aware bridge) or vFIDs (in the case of VLAN-unaware bridges).
      The packets were then forwarded according to the FDB. Routing was done
      entirely in slowpath, by splitting the vFID range in two and using the
      lower 0.5K vFIDs as dummy bridges that simply flooded all incoming
      traffic to the CPU.
      
      Instead, allow packets to be routed in the device by creating router
      interfaces (RIFs) that will direct them to the router block.
      Specifically, the RIFs introduced here are Sub-port RIFs used for VLAN
      devices and port netdevs. Packets ingressing from the {Port / LAG ID, VID}
      with which the RIF was programmed with will be assigned to a special
      kind of FIDs called rFIDs and from there directed to the router.
      
      Create a RIF whenever the first IPv4 address was programmed on a VLAN /
      LAG / port netdev. Destroy it upon removal of the last IPv4 address.
      Receive these notifications by registering for the 'inetaddr'
      notification chain. A non-zero (10) priority is used for the
      notification block, so that RIFs will be created before routes are
      offloaded via FIB code.
      
      Note that another trigger for RIF destruction are CHANGEUPPER
      notifications causing the underlying FID's reference count to go down to
      zero. This can happen, for example, when a VLAN netdev with an IP address
      is put under bridge. While this configuration doesn't make sense it does
      cause the device and the kernel to get out of sync when the netdev is
      unbridged. We intend to address this in the future, hopefully in current
      cycle.
      
      Finally, Remove the lower 0.5K vFIDs, as they are deprecated by the RIFs,
      which will trap packets according to their DIP.
      Signed-off-by: NIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      99724c18