From: David Ahern <dsa@cumulusnetworks.com>
To: netdev@vger.kernel.org
Cc: roopa@cumulusnetworks.com, rshearma@brocade.com,
ebiederm@xmission.com, David Ahern <dsa@cumulusnetworks.com>
Subject: [PATCH net-next v3 0/6] net: mpls: Allow users to configure more labels per route
Date: Fri, 31 Mar 2017 07:13:58 -0700 [thread overview]
Message-ID: <1490969644-15499-1-git-send-email-dsa@cumulusnetworks.com> (raw)
Increase the maximum number of new labels for MPLS routes from 2 to 30.
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.
mpls_route allocation size is limited to 4096 bytes allowing on the
order of 30 nexthops with 30 labels (or more nexthops with fewer
labels). LWT encap shares same maximum number of labels as mpls routing.
v3
- initialize n_labels to 0 in case RTA_NEWDST is not defined; detected
by the kbuild test robot
v2
- updates per Eric's comments
+ added patch to ensure all reads of rt_nhn_alive and nh_flags in
the packet path use READ_ONCE and all writes via event handlers
use WRITE_ONCE
+ limit mpls_route size to 4096 (PAGE_SIZE for most arch)
+ mostly killed use of MAX_NEW_LABELS; it exists only for common
limit between lwt and routing paths
David Ahern (6):
net: mpls: rt_nhn_alive and nh_flags should be accessed using
READ_ONCE
net: mpls: Convert number of nexthops to u8
net: mpls: change mpls_route layout
net:mpls: Limit memory allocation for mpls_route
net: mpls: bump maximum number of labels
net: mpls: Increase max number of labels for lwt encap
include/net/mpls_iptunnel.h | 5 +-
net/mpls/af_mpls.c | 210 +++++++++++++++++++++++++++++---------------
net/mpls/internal.h | 61 +++++++++----
net/mpls/mpls_iptunnel.c | 13 ++-
4 files changed, 196 insertions(+), 93 deletions(-)
--
2.1.4
next reply other threads:[~2017-03-31 14:14 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-31 14:13 David Ahern [this message]
2017-03-31 14:13 ` [PATCH net-next v3 1/6] net: mpls: rt_nhn_alive and nh_flags should be accessed using READ_ONCE David Ahern
2017-03-31 14:14 ` [PATCH net-next v3 2/6] net: mpls: Convert number of nexthops to u8 David Ahern
2017-03-31 14:14 ` [PATCH net-next v3 3/6] net: mpls: change mpls_route layout David Ahern
2017-03-31 14:14 ` [PATCH net-next v3 4/6] net: mpls: Limit memory allocation for mpls_route David Ahern
2017-03-31 14:14 ` [PATCH net-next v3 5/6] net: mpls: bump maximum number of labels David Ahern
2017-03-31 14:14 ` [PATCH net-next v3 6/6] net: mpls: Increase max number of labels for lwt encap David Ahern
2017-04-03 8:14 ` [PATCH net-next v3 0/6] net: mpls: Allow users to configure more labels per route Robert Shearman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1490969644-15499-1-git-send-email-dsa@cumulusnetworks.com \
--to=dsa@cumulusnetworks.com \
--cc=ebiederm@xmission.com \
--cc=netdev@vger.kernel.org \
--cc=roopa@cumulusnetworks.com \
--cc=rshearma@brocade.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).