diff options
author | Neale Ranns <nranns@cisco.com> | 2017-03-16 07:34:55 -0400 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2017-03-17 16:08:56 +0000 |
commit | 696e88da9799056036f329676213f3c0c0a1db9c (patch) | |
tree | 750943198b82e1c57e8a0b00fafd91848a8b3e91 /src/vnet/mpls/mpls_output.c | |
parent | 4b919a56642ccd0a44920feace872aeb5b7a62cf (diff) |
MPLS performance improvments.
1 - Quad loop lookup and label imposition.
2 - optimise imposition for the 1 label case
3 - input gets TTL from header directly (no byte swap)
Change-Id: I59204c9e5d134b0df75d7afa43e360f946d1ffe7
Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vnet/mpls/mpls_output.c')
-rw-r--r-- | src/vnet/mpls/mpls_output.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/vnet/mpls/mpls_output.c b/src/vnet/mpls/mpls_output.c index cf3540067cc..2d8bd0c961f 100644 --- a/src/vnet/mpls/mpls_output.c +++ b/src/vnet/mpls/mpls_output.c @@ -29,6 +29,16 @@ typedef struct { u8 packet_data[64 - 1*sizeof(u32)]; } mpls_output_trace_t; +#define foreach_mpls_output_next \ +_(DROP, "error-drop") + +typedef enum { +#define _(s,n) MPLS_OUTPUT_NEXT_##s, + foreach_mpls_output_next +#undef _ + MPLS_OUTPUT_N_NEXT, +} mpls_output_next_t; + static u8 * format_mpls_output_trace (u8 * s, va_list * args) { |