From bf85a98fbf7622dc177ce3901f5b3cfd954b015a Mon Sep 17 00:00:00 2001 From: Chenmin Sun Date: Fri, 18 Oct 2019 07:35:16 +0800 Subject: flow: Add GTP support Type: feature Adding: VNET_FLOW_TYPE_IP4_GTPC VNET_FLOW_TYPE_IP4_GTPU VNET_FLOW_TYPE_IP4_GTPU_IP4 VNET_FLOW_TYPE_IP4_GTPU_IP6 VNET_FLOW_TYPE_IP6_GTPC VNET_FLOW_TYPE_IP6_GTPU VNET_FLOW_TYPE_IP6_GTPU_IP4 VNET_FLOW_TYPE_IP6_GTPU_IP6 in this patch Signed-off-by: Chenmin Sun Change-Id: I4ad53895b5ac0771432bb039b8c79e48e3c19f25 --- src/vnet/flow/flow.h | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) (limited to 'src/vnet/flow/flow.h') diff --git a/src/vnet/flow/flow.h b/src/vnet/flow/flow.h index de09d340dc4..c0aa9119ce1 100644 --- a/src/vnet/flow/flow.h +++ b/src/vnet/flow/flow.h @@ -26,7 +26,15 @@ _(IP4_N_TUPLE, ip4_n_tuple, "ipv4-n-tuple") \ _(IP6_N_TUPLE, ip6_n_tuple, "ipv6-n-tuple") \ _(IP4_VXLAN, ip4_vxlan, "ipv4-vxlan") \ - _(IP6_VXLAN, ip6_vxlan, "ipv6-vxlan") + _(IP6_VXLAN, ip6_vxlan, "ipv6-vxlan") \ + _(IP4_GTPC, ip4_gtpc, "ipv4-gtpc") \ + _(IP4_GTPU, ip4_gtpu, "ipv4-gtpu") \ + _(IP4_GTPU_IP4, ip4_gtpu_ip4, "ipv4-gtpu-ipv4") \ + _(IP4_GTPU_IP6, ip4_gtpu_ip6, "ipv4-gtpu-ipv6") \ + _(IP6_GTPC, ip6_gtpc, "ipv6-gtpc") \ + _(IP6_GTPU, ip6_gtpu, "ipv6-gtpu") \ + _(IP6_GTPU_IP4, ip6_gtpu_ip4, "ipv6-gtpu-ipv4") \ + _(IP6_GTPU_IP6, ip6_gtpu_ip6, "ipv6-gtpu-ipv6") #define foreach_flow_entry_ip4_n_tuple \ _fe(ip4_address_and_mask_t, src_addr) \ @@ -54,6 +62,42 @@ _fe(u16, dst_port) \ _fe(u16, vni) +#define foreach_flow_entry_ip4_gtpc \ + foreach_flow_entry_ip4_n_tuple \ + _fe(u32, teid) + +#define foreach_flow_entry_ip4_gtpu \ + foreach_flow_entry_ip4_n_tuple \ + _fe(u32, teid) + +#define foreach_flow_entry_ip4_gtpu_ip4 \ + foreach_flow_entry_ip4_gtpu \ + _fe(ip4_address_and_mask_t, inner_src_addr) \ + _fe(ip4_address_and_mask_t, inner_dst_addr) + +#define foreach_flow_entry_ip4_gtpu_ip6 \ + foreach_flow_entry_ip4_gtpu \ + _fe(ip6_address_and_mask_t, inner_src_addr) \ + _fe(ip6_address_and_mask_t, inner_dst_addr) + +#define foreach_flow_entry_ip6_gtpc \ + foreach_flow_entry_ip6_n_tuple \ + _fe(u32, teid) + +#define foreach_flow_entry_ip6_gtpu \ + foreach_flow_entry_ip6_n_tuple \ + _fe(u32, teid) + +#define foreach_flow_entry_ip6_gtpu_ip4 \ + foreach_flow_entry_ip6_gtpu \ + _fe(ip4_address_and_mask_t, inner_src_addr) \ + _fe(ip4_address_and_mask_t, inner_dst_addr) + +#define foreach_flow_entry_ip6_gtpu_ip6 \ + foreach_flow_entry_ip6_gtpu \ + _fe(ip6_address_and_mask_t, inner_src_addr) \ + _fe(ip6_address_and_mask_t, inner_dst_addr) + #define foreach_flow_action \ _(0, COUNT, "count") \ _(1, MARK, "mark") \ -- cgit 1.2.3-korg