[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1490461408-9551-1-git-send-email-dsa@cumulusnetworks.com>
Date: Sat, 25 Mar 2017 10:03:24 -0700
From: David Ahern <dsa@...ulusnetworks.com>
To: netdev@...r.kernel.org
Cc: roopa@...ulusnetworks.com, rshearma@...cade.com,
ebiederm@...ssion.com, David Ahern <dsa@...ulusnetworks.com>
Subject: [PATCH net-next 0/4] net: mpls: Allow users to configure more labels per route
Bump the maximum number of labels for MPLS routes from 2 to 12. To keep
memory consumption in check the labels array is moved to the end of mpls_nh
and mpls_iptunnel_encap structs as a 0-sized array. Allocations use the
maximum number of labels across all nexthops in a route for LSR and the
number of labels configured for LWT.
The mpls_route layout is changed to:
+----------------------+
| mpls_route |
+----------------------+
| mpls_nh 0 |
+----------------------+
| alignment padding | 4 bytes for odd number of labels; 0 for even
+----------------------+
| via[rt_max_alen] 0 |
+----------------------+
| alignment padding | via's aligned on sizeof(unsigned long)
+----------------------+
| ... |
Meaning the via follows its mpls_nh providing better locality as the
number of labels increases. UDP_RR tests with namespaces shows no impact
to a modest performance increase with this layout for 1 or 2 labels and
1 or 2 nexthops.
The new limit is set to 12 to cover all currently known segment
routing use cases.
David Ahern (4):
mpls: Convert number of nexthops to u8
net: mpls: change mpls_route layout
net: mpls: bump maximum number of labels
net: mpls: Increase max number of labels for lwt encap
include/net/mpls_iptunnel.h | 4 +-
net/mpls/af_mpls.c | 108 ++++++++++++++++++++++++++------------------
net/mpls/internal.h | 52 ++++++++++++++-------
net/mpls/mpls_iptunnel.c | 13 ++++--
4 files changed, 112 insertions(+), 65 deletions(-)
--
2.1.4
Powered by blists - more mailing lists