diff options
author | Neale Ranns <nranns@cisco.com> | 2017-11-05 16:26:46 -0800 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2017-11-07 16:13:42 +0000 |
commit | 810086d8fd08445919ae03bf36161037e53a712a (patch) | |
tree | 76a91d3ed49759ef3adae32066f9dcedd75df889 /src/vnet/ip/ip_api.c | |
parent | 595992c5c3b5abbdb7e90e61acbee212f25ad59f (diff) |
UDP Encapsulation.
A UDP-encap object that particiapates in the FIB graph and contributes
DPO to teh output chain. It thereofre resembles a tunnel but without the
interface. FIB paths (and henace routes) can then be created to egress
through the UDP-encap. Said routes can have MPLS labels, hence this also
allows MPLSoUPD.
Encap is uni-directional. For decap, one still registers with the UDP port
dispatcher.
Change-Id: I23bd345523b20789a1de1b02022ea1148ca50797
Signed-off-by: Neale Ranns <nranns@cisco.com>
Diffstat (limited to 'src/vnet/ip/ip_api.c')
-rw-r--r-- | src/vnet/ip/ip_api.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/vnet/ip/ip_api.c b/src/vnet/ip/ip_api.c index fad518f18a5..20e19205756 100644 --- a/src/vnet/ip/ip_api.c +++ b/src/vnet/ip/ip_api.c @@ -832,10 +832,12 @@ add_del_route_t_handler (u8 is_multipath, u8 is_rpf_id, u8 is_l2_bridged, u8 is_source_lookup, + u8 is_udp_encap, u32 fib_index, const fib_prefix_t * prefix, dpo_proto_t next_hop_proto, const ip46_address_t * next_hop, + u32 next_hop_id, u32 next_hop_sw_if_index, u8 next_hop_fib_index, u16 next_hop_weight, @@ -883,6 +885,11 @@ add_del_route_t_handler (u8 is_multipath, path_flags |= FIB_ROUTE_PATH_SOURCE_LOOKUP; if (is_multicast) entry_flags |= FIB_ENTRY_FLAG_MULTICAST; + if (is_udp_encap) + { + path_flags |= FIB_ROUTE_PATH_UDP_ENCAP; + path.frp_udp_encap_id = next_hop_id; + } path.frp_flags = path_flags; @@ -1112,8 +1119,10 @@ ip4_add_del_route_t_handler (vl_api_ip_add_del_route_t * mp) mp->is_resolve_attached, 0, 0, mp->is_l2_bridged, mp->is_source_lookup, + mp->is_udp_encap, fib_index, &pfx, DPO_PROTO_IP4, &nh, + ntohl (mp->next_hop_id), ntohl (mp->next_hop_sw_if_index), next_hop_fib_index, mp->next_hop_weight, @@ -1173,8 +1182,10 @@ ip6_add_del_route_t_handler (vl_api_ip_add_del_route_t * mp) mp->is_resolve_attached, 0, 0, mp->is_l2_bridged, mp->is_source_lookup, + mp->is_udp_encap, fib_index, &pfx, DPO_PROTO_IP6, - &nh, ntohl (mp->next_hop_sw_if_index), + &nh, ntohl (mp->next_hop_id), + ntohl (mp->next_hop_sw_if_index), next_hop_fib_index, mp->next_hop_weight, mp->next_hop_preference, |