From 810086d8fd08445919ae03bf36161037e53a712a Mon Sep 17 00:00:00 2001 From: Neale Ranns Date: Sun, 5 Nov 2017 16:26:46 -0800 Subject: 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 --- src/vnet/ip/lookup.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/vnet/ip/lookup.c') diff --git a/src/vnet/ip/lookup.c b/src/vnet/ip/lookup.c index 3d5dc36c9a0..a376e51d789 100644 --- a/src/vnet/ip/lookup.c +++ b/src/vnet/ip/lookup.c @@ -368,11 +368,11 @@ vnet_ip_route_cmd (vlib_main_t * vm, unformat_input_t _line_input, *line_input = &_line_input; fib_route_path_t *rpaths = NULL, rpath; dpo_id_t dpo = DPO_INVALID, *dpos = NULL; + u32 table_id, is_del, udp_encap_id; fib_prefix_t *prefixs = NULL, pfx; mpls_label_t out_label, via_label; clib_error_t *error = NULL; u32 weight, preference; - u32 table_id, is_del; vnet_main_t *vnm; u32 fib_index; f64 count; @@ -527,6 +527,13 @@ vnet_ip_route_cmd (vlib_main_t * vm, rpath.frp_proto = DPO_PROTO_IP6; vec_add1 (rpaths, rpath); } + else if (unformat (line_input, "via udp-encap %d", &udp_encap_id)) + { + rpath.frp_udp_encap_id = udp_encap_id; + rpath.frp_flags |= FIB_ROUTE_PATH_UDP_ENCAP; + rpath.frp_proto = fib_proto_to_dpo (pfx.fp_proto); + vec_add1 (rpaths, rpath); + } else if (unformat (line_input, "lookup in table %d", &rpath.frp_fib_index)) { -- cgit 1.2.3-korg