netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch net-next 0/8] mlxsw: Add support for non-equal-cost multi-path
@ 2017-10-22 21:11 Jiri Pirko
  2017-10-22 21:11 ` [patch net-next 1/8] mlxsw: spectrum_dpipe: Add adjacency group size Jiri Pirko
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: Jiri Pirko @ 2017-10-22 21:11 UTC (permalink / raw)
  To: netdev; +Cc: davem, idosch, mlxsw

From: Jiri Pirko <jiri@mellanox.com>

Ido says:

In the device, nexthops are stored as adjacency entries in an array
called the KVD linear (KVDL). When a multi-path route is hit the
packet's headers are hashed and then converted to an index into KVDL
based on the adjacency group's size and base index.

Up until now the driver ignored the `weight` parameter for multi-path
routes and allocated only one adjacency entry for each nexthop with a
limit of 32 nexthops in a group. This set makes the driver take the
`weight` parameter into account when allocating adjacency entries.

First patch teaches dpipe to show the size of the adjacency group, so
that users will be able to determine the actual weight of each nexthop.
The second patch refactors the KVDL allocator, making it more receptive
towards the addition of another partition later in the set.

Patches 3-5 introduce small changes towards the actual change in the
sixth patch that populates the adjacency entries according to their
relative weight.

Last two patches finally add another partition to the KVDL, which allows
us to allocate more than 32 entries per-group and thus support more
nexthops and also provide higher accuracy with regards to the requested
weights.

Ido Schimmel (8):
  mlxsw: spectrum_dpipe: Add adjacency group size
  mlxsw: spectrum: Better represent KVDL partitions
  mlxsw: spectrum: Add ability to query KVDL allocation size
  mlxsw: spectrum_router: Store weight in nexthop struct
  mlxsw: spectrum_router: Prepare for large adjacency groups
  mlxsw: spectrum_router: Populate adjacency entries according to
    weights
  mlxsw: spectrum: Increase number of linear entries
  mlxsw: spectrum: Add another partition to KVD linear

 drivers/net/ethernet/mellanox/mlxsw/spectrum.c     |  15 +-
 drivers/net/ethernet/mellanox/mlxsw/spectrum.h     |  12 +-
 .../net/ethernet/mellanox/mlxsw/spectrum_dpipe.c   |  46 +++-
 .../net/ethernet/mellanox/mlxsw/spectrum_kvdl.c    | 291 ++++++++++++++++++---
 .../net/ethernet/mellanox/mlxsw/spectrum_router.c  | 179 ++++++++++++-
 .../net/ethernet/mellanox/mlxsw/spectrum_router.h  |   2 +-
 6 files changed, 484 insertions(+), 61 deletions(-)

-- 
2.9.5

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

end of thread, other threads:[~2017-10-23  4:27 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-22 21:11 [patch net-next 0/8] mlxsw: Add support for non-equal-cost multi-path Jiri Pirko
2017-10-22 21:11 ` [patch net-next 1/8] mlxsw: spectrum_dpipe: Add adjacency group size Jiri Pirko
2017-10-22 21:11 ` [patch net-next 2/8] mlxsw: spectrum: Better represent KVDL partitions Jiri Pirko
2017-10-22 21:11 ` [patch net-next 3/8] mlxsw: spectrum: Add ability to query KVDL allocation size Jiri Pirko
2017-10-22 21:11 ` [patch net-next 4/8] mlxsw: spectrum_router: Store weight in nexthop struct Jiri Pirko
2017-10-22 21:11 ` [patch net-next 5/8] mlxsw: spectrum_router: Prepare for large adjacency groups Jiri Pirko
2017-10-22 21:11 ` [patch net-next 6/8] mlxsw: spectrum_router: Populate adjacency entries according to weights Jiri Pirko
2017-10-22 21:11 ` [patch net-next 7/8] mlxsw: spectrum: Increase number of linear entries Jiri Pirko
2017-10-22 21:11 ` [patch net-next 8/8] mlxsw: spectrum: Add another partition to KVD linear Jiri Pirko
2017-10-23  4:27 ` [patch net-next 0/8] mlxsw: Add support for non-equal-cost multi-path David Miller

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).