summaryrefslogtreecommitdiffstats
path: root/src/vnet/mpls/mpls_output.c
diff options
context:
space:
mode:
authorNeale Ranns <nranns@cisco.com>2017-03-16 07:34:55 -0400
committerFlorin Coras <florin.coras@gmail.com>2017-03-17 16:08:56 +0000
commit696e88da9799056036f329676213f3c0c0a1db9c (patch)
tree750943198b82e1c57e8a0b00fafd91848a8b3e91 /src/vnet/mpls/mpls_output.c
parent4b919a56642ccd0a44920feace872aeb5b7a62cf (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.c10
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)
{