X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fgtpu%2Fgtpu.h;h=dc36308d8a89cd028c012079a37d958e17db1219;hb=55636cb623d3161da34120c01a666e36f3be7302;hp=86861974a34203647c3b109b40a44c78dee6e14f;hpb=ef486b1545d892f9f0e0d35e7e57cb0ca04d7ff7;p=vpp.git diff --git a/src/plugins/gtpu/gtpu.h b/src/plugins/gtpu/gtpu.h index 86861974a34..dc36308d8a8 100644 --- a/src/plugins/gtpu/gtpu.h +++ b/src/plugins/gtpu/gtpu.h @@ -1,6 +1,6 @@ /* *------------------------------------------------------------------ - * Copyright (c) 2016 Intel and/or its affiliates. + * Copyright (c) 2017 Intel and/or its affiliates. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: @@ -55,13 +55,15 @@ typedef struct { u8 ver_flags; u8 type; - u16 length; /* length in octets of the payload */ + u16 length; /* length in octets of the data following the fixed part of the header */ u32 teid; u16 sequence; u8 pdu_number; u8 next_ext_type; } gtpu_header_t; +#define GTPU_V1_HDR_LEN 8 + #define GTPU_VER_MASK (7<<5) #define GTPU_PT_BIT (1<<4) #define GTPU_E_BIT (1<<2) @@ -123,6 +125,9 @@ typedef CLIB_PACKED typedef struct { + /* Required for pool_get_aligned */ + CLIB_CACHE_LINE_ALIGN_MARK (cacheline0); + /* Rewrite string */ u8 *rewrite; @@ -172,7 +177,9 @@ typedef struct #define foreach_gtpu_input_next \ _(DROP, "error-drop") \ -_(L2_INPUT, "l2-input") +_(L2_INPUT, "l2-input") \ +_(IP4_INPUT, "ip4-input") \ +_(IP6_INPUT, "ip6-input" ) typedef enum { @@ -226,7 +233,7 @@ typedef struct vnet_main_t *vnet_main; } gtpu_main_t; -gtpu_main_t gtpu_main; +extern gtpu_main_t gtpu_main; extern vlib_node_registration_t gtpu4_input_node; extern vlib_node_registration_t gtpu6_input_node; @@ -238,7 +245,6 @@ u8 *format_gtpu_encap_trace (u8 * s, va_list * args); typedef struct { u8 is_add; - u8 is_ip6; ip46_address_t src, dst; u32 mcast_sw_if_index; u32 encap_fib_index; @@ -249,6 +255,12 @@ typedef struct int vnet_gtpu_add_del_tunnel (vnet_gtpu_add_del_tunnel_args_t * a, u32 * sw_if_indexp); +typedef struct +{ + u32 tunnel_index; + u32 teid; +} gtpu_encap_trace_t; + void vnet_int_gtpu_bypass_mode (u32 sw_if_index, u8 is_ip6, u8 is_enable); #endif /* included_vnet_gtpu_h */