netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch net-next 00/42] mlxsw: Implement IPV4 unicast routing
@ 2016-07-01 14:04 Jiri Pirko
  2016-07-01 14:04 ` [patch net-next 01/42] net: add dev arg to ndo_neigh_construct/destroy Jiri Pirko
                   ` (42 more replies)
  0 siblings, 43 replies; 53+ messages in thread
From: Jiri Pirko @ 2016-07-01 14:04 UTC (permalink / raw)
  To: netdev
  Cc: davem, idosch, yotamg, eladr, nogahf, ogerlitz, sfeldma, roopa,
	andy, dsa, tgraf, jhs, linville, ivecera

From: Jiri Pirko <jiri@mellanox.com>

This patchset enables IPv4 unicast routing in the Mellanox Spectrum ASIC
switch driver. The basic dependencies are already present in the kernel and
used by rocker.

Patches 1-3 add a couple of dependencies outside the driver. Namely, the
ability to propagate ndo_neigh_construct()/destroy() through stacked devices and
a notification whenever DELAY_PROBE_TIME changes. When propagated down, the
ndos allow drivers to add and remove neighbour entries from their private
neighbour table. The DELAY_PROBE_TIME notification gives drivers the ability to
correctly configure their polling interval for neighbour activity, so that
active neighbour won't be marked as STALE.

Patches 4-25 add missing infrastructure in the driver for the router,
initialize it and lay the groundwork for the introduction of router
interfaces. These are introduced in patches 26-29. At this point the router
still operates in slowpath, but that's needed in order not to introduce a
regression.

Patches 30-33 add the neighbour offloading infrastructure, where patch 33 uses
the DELAY_PROBE_TIME notification in order to correctly configure the device's
polling interval. Patch 34 finally programs neighbours to the device's table
based on NEIGH_UPDATE notifications, so that directly connected routes can
be used.

Patches 35-42 build upon the previous patches and extend the router with
remote routes (nexthop) support.

Ido Schimmel (17):
  neigh: Send a notification when DELAY_PROBE_TIME changes
  mlxsw: spectrum: Send untagged packets through a port netdev
  mlxsw: spectrum: Remove VLANs configuration via SELF flag
  mlxsw: spectrum: Sync PVID vPort LAG status
  mlxsw: spectrum: Remove RIF from PVID vPort when joining / leaving LAG
  mlxsw: reg: Add Router General Configuration Register
  mlxsw: spectrum: Initialize ports at the end of init sequence
  mlxsw: spectrum_router: Add basic ipv4 router initialization
  mlxsw: spectrum: Add router interface struct
  mlxsw: reg: Add FDB action to forward to router
  mlxsw: reg: Add Router Interface Table Register
  mlxsw: spectrum: Use action 'discard' when removing traps
  mlxsw: spectrum: Edit RIF properties based on netdev events
  mlxsw: spectrum: Introduce support for router interfaces
  mlxsw: spectrum: Unsplit the vFID range
  mlxsw: spectrum: Configure FIDs based on bridge events
  mlxsw: spectrum: Enable L3 interfaces on top of bridge devices

Jiri Pirko (18):
  net: add dev arg to ndo_neigh_construct/destroy
  net: introduce default neigh_construct/destroy ndo calls for L2 upper
    devices
  mlxsw: spectrum: Add traps needed for router implementation
  mlxsw: spectrum_router: Implement private fib
  mlxsw: reg: Add Router Algorithmic LPM Tree Allocation Register
    definition
  mlxsw: reg: Add Router Algorithmic LPM Structure Tree Register
    definition
  mlxsw: reg: Add Router Algorithmic LPM Tree Binding Register
    definition
  mlxsw: spectrum_router: Implement LPM trees management
  mlxsw: spectrum_router: Add virtual router management
  mlxsw: reg: Add Router Algorithmic LPM Unicast Entry Register
    definition
  mlxsw: spectrum_router: Implement fib4 add/del switchdev obj ops
  mlxsw: spectrum: Add couple of lower device helper functions
  mlxsw: spectrum_router: Add private neigh table
  mlxsw: Add KVD sizes configuration into profile
  mlxsw: spectrum: Define sizes of KVD areas
  mlxsw: Introduce simplistic KVD linear area manager
  mlxsw: reg: Add Router Algorithmic LPM ECMP Update Register
  mlxsw: spectrum_router: Implement next-hop routing

Yotam Gigi (7):
  mlxsw: reg: Add Router Algorithmic LPM Unicast Host Table register
  mlxsw: reg: Add Router Algorithmic LPM Unicast Host Table Dump
    register
  mlxsw: spectrum_router: Periodically update the kernel's neigh table
  mlxsw: spectrum_router: Offload neighbours based on NUD state change
  mlxsw: reg: Add Router Adjacency Table register
  mlxsw: spectrum_router: Add the nexthop neigh activity update
  mlxsw: Add the unresolved next-hops probes

 drivers/net/bonding/bond_main.c                    |    2 +
 drivers/net/ethernet/mellanox/mlxsw/Makefile       |    3 +-
 drivers/net/ethernet/mellanox/mlxsw/cmd.h          |   43 +
 drivers/net/ethernet/mellanox/mlxsw/core.h         |    6 +-
 drivers/net/ethernet/mellanox/mlxsw/pci.c          |   14 +
 drivers/net/ethernet/mellanox/mlxsw/reg.h          | 1206 ++++++++++++-
 drivers/net/ethernet/mellanox/mlxsw/spectrum.c     | 1164 +++++++++----
 drivers/net/ethernet/mellanox/mlxsw/spectrum.h     |  164 +-
 .../net/ethernet/mellanox/mlxsw/spectrum_kvdl.c    |   91 +
 .../net/ethernet/mellanox/mlxsw/spectrum_router.c  | 1814 ++++++++++++++++++++
 .../ethernet/mellanox/mlxsw/spectrum_switchdev.c   |  116 +-
 drivers/net/ethernet/mellanox/mlxsw/trap.h         |    5 +
 drivers/net/ethernet/rocker/rocker_main.c          |    3 +-
 drivers/net/team/team.c                            |    2 +
 include/linux/netdevice.h                          |   28 +-
 include/net/netevent.h                             |    1 +
 net/8021q/vlan_dev.c                               |    2 +
 net/atm/clip.c                                     |    2 +-
 net/bridge/br_device.c                             |    2 +
 net/core/dev.c                                     |   78 +
 net/core/neighbour.c                               |    6 +-
 net/ieee802154/6lowpan/core.c                      |    2 +-
 22 files changed, 4330 insertions(+), 424 deletions(-)
 create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum_kvdl.c
 create mode 100644 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c

-- 
2.5.5

^ permalink raw reply	[flat|nested] 53+ messages in thread

end of thread, other threads:[~2016-07-02  7:28 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-01 14:04 [patch net-next 00/42] mlxsw: Implement IPV4 unicast routing Jiri Pirko
2016-07-01 14:04 ` [patch net-next 01/42] net: add dev arg to ndo_neigh_construct/destroy Jiri Pirko
2016-07-01 14:04 ` [patch net-next 02/42] net: introduce default neigh_construct/destroy ndo calls for L2 upper devices Jiri Pirko
2016-07-01 14:24   ` David Ahern
2016-07-02  7:28     ` Jiri Pirko
2016-07-01 14:04 ` [patch net-next 03/42] neigh: Send a notification when DELAY_PROBE_TIME changes Jiri Pirko
2016-07-01 14:04 ` [patch net-next 04/42] mlxsw: spectrum: Send untagged packets through a port netdev Jiri Pirko
2016-07-01 14:04 ` [patch net-next 05/42] mlxsw: spectrum: Remove VLANs configuration via SELF flag Jiri Pirko
2016-07-01 14:04 ` [patch net-next 06/42] mlxsw: spectrum: Sync PVID vPort LAG status Jiri Pirko
2016-07-01 14:04 ` [patch net-next 07/42] mlxsw: spectrum: Remove RIF from PVID vPort when joining / leaving LAG Jiri Pirko
2016-07-01 14:04 ` [patch net-next 08/42] mlxsw: reg: Add Router General Configuration Register Jiri Pirko
2016-07-01 14:04 ` [patch net-next 09/42] mlxsw: spectrum: Initialize ports at the end of init sequence Jiri Pirko
2016-07-01 14:04 ` [patch net-next 10/42] mlxsw: spectrum_router: Add basic ipv4 router initialization Jiri Pirko
2016-07-01 14:39   ` David Ahern
2016-07-01 17:58     ` Ido Schimmel
2016-07-01 14:04 ` [patch net-next 11/42] mlxsw: spectrum: Add router interface struct Jiri Pirko
2016-07-01 16:16   ` David Ahern
2016-07-01 18:37     ` Ido Schimmel
2016-07-01 14:04 ` [patch net-next 12/42] mlxsw: reg: Add FDB action to forward to router Jiri Pirko
2016-07-01 14:04 ` [patch net-next 13/42] mlxsw: reg: Add Router Interface Table Register Jiri Pirko
2016-07-01 14:04 ` [patch net-next 14/42] mlxsw: spectrum: Use action 'discard' when removing traps Jiri Pirko
2016-07-01 14:04 ` [patch net-next 15/42] mlxsw: spectrum: Add traps needed for router implementation Jiri Pirko
2016-07-01 14:04 ` [patch net-next 16/42] mlxsw: spectrum_router: Implement private fib Jiri Pirko
2016-07-01 14:04 ` [patch net-next 17/42] mlxsw: reg: Add Router Algorithmic LPM Tree Allocation Register definition Jiri Pirko
2016-07-01 14:04 ` [patch net-next 18/42] mlxsw: reg: Add Router Algorithmic LPM Structure Tree " Jiri Pirko
2016-07-01 14:04 ` [patch net-next 19/42] mlxsw: reg: Add Router Algorithmic LPM Tree Binding " Jiri Pirko
2016-07-01 14:04 ` [patch net-next 20/42] mlxsw: spectrum_router: Implement LPM trees management Jiri Pirko
2016-07-01 14:04 ` [patch net-next 21/42] mlxsw: spectrum_router: Add virtual router management Jiri Pirko
2016-07-01 14:04 ` [patch net-next 22/42] mlxsw: reg: Add Router Algorithmic LPM Unicast Entry Register definition Jiri Pirko
2016-07-01 14:04 ` [patch net-next 23/42] mlxsw: spectrum_router: Implement fib4 add/del switchdev obj ops Jiri Pirko
2016-07-01 16:10   ` David Ahern
2016-07-02  6:30     ` Jiri Pirko
2016-07-01 14:04 ` [patch net-next 24/42] mlxsw: spectrum: Add couple of lower device helper functions Jiri Pirko
2016-07-01 14:04 ` [patch net-next 25/42] mlxsw: spectrum: Edit RIF properties based on netdev events Jiri Pirko
2016-07-01 14:04 ` [patch net-next 26/42] mlxsw: spectrum: Introduce support for router interfaces Jiri Pirko
2016-07-01 14:04 ` [patch net-next 27/42] mlxsw: spectrum: Unsplit the vFID range Jiri Pirko
2016-07-01 14:04 ` [patch net-next 28/42] mlxsw: spectrum: Configure FIDs based on bridge events Jiri Pirko
2016-07-01 14:04 ` [patch net-next 29/42] mlxsw: spectrum: Enable L3 interfaces on top of bridge devices Jiri Pirko
2016-07-01 14:04 ` [patch net-next 30/42] mlxsw: spectrum_router: Add private neigh table Jiri Pirko
2016-07-01 14:04 ` [patch net-next 31/42] mlxsw: reg: Add Router Algorithmic LPM Unicast Host Table register Jiri Pirko
2016-07-01 14:05 ` [patch net-next 32/42] mlxsw: reg: Add Router Algorithmic LPM Unicast Host Table Dump register Jiri Pirko
2016-07-01 14:05 ` [patch net-next 33/42] mlxsw: spectrum_router: Periodically update the kernel's neigh table Jiri Pirko
2016-07-01 14:05 ` [patch net-next 34/42] mlxsw: spectrum_router: Offload neighbours based on NUD state change Jiri Pirko
2016-07-01 14:05 ` [patch net-next 35/42] mlxsw: Add KVD sizes configuration into profile Jiri Pirko
2016-07-01 14:05 ` [patch net-next 36/42] mlxsw: spectrum: Define sizes of KVD areas Jiri Pirko
2016-07-01 14:05 ` [patch net-next 37/42] mlxsw: Introduce simplistic KVD linear area manager Jiri Pirko
2016-07-01 14:05 ` [patch net-next 38/42] mlxsw: reg: Add Router Adjacency Table register Jiri Pirko
2016-07-01 14:05 ` [patch net-next 39/42] mlxsw: reg: Add Router Algorithmic LPM ECMP Update Register Jiri Pirko
2016-07-01 14:05 ` [patch net-next 40/42] mlxsw: spectrum_router: Implement next-hop routing Jiri Pirko
2016-07-01 14:05 ` [patch net-next 41/42] mlxsw: spectrum_router: Add the nexthop neigh activity update Jiri Pirko
2016-07-01 14:05 ` [patch net-next 42/42] mlxsw: Add the unresolved next-hops probes Jiri Pirko
2016-07-01 19:27 ` [patch net-next 00/42] mlxsw: Implement IPV4 unicast routing David Miller
2016-07-02  6:31   ` Jiri Pirko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).