From ed9b67429e6c8e0b37c98ba37e876565f1d8e13e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Beno=C3=AEt=20Ganne?= Date: Fri, 9 Sep 2022 17:02:31 +0200 Subject: [PATCH] fib: add cli support for explicit link type MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit This adds the ability to specify we want an IPv4 route via an IPv6 adj and vice-versa. Type: improvement Change-Id: I5f7f1ab89fc60244d31c26155bbd9b0db690257c Signed-off-by: Benoît Ganne --- src/vnet/fib/fib_types.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/vnet/fib/fib_types.c b/src/vnet/fib/fib_types.c index 15e795a72c9..7eeb79fffa5 100644 --- a/src/vnet/fib/fib_types.c +++ b/src/vnet/fib/fib_types.c @@ -541,6 +541,7 @@ unformat_fib_route_path (unformat_input_t * input, va_list * args) { fib_route_path_t *rpath = va_arg (*args, fib_route_path_t *); dpo_proto_t *payload_proto = va_arg (*args, void*); + dpo_proto_t explicit_proto = DPO_PROTO_NONE; u32 weight, preference, udp_encap_id, fi; mpls_label_t out_label; vnet_main_t *vnm; @@ -726,6 +727,14 @@ unformat_fib_route_path (unformat_input_t * input, va_list * args) vec_add1(rpath->frp_label_stack, fml); } } + else if (unformat (input, "ip4")) + { + explicit_proto = DPO_PROTO_IP4; + } + else if (unformat (input, "ip6")) + { + explicit_proto = DPO_PROTO_IP6; + } else if (unformat (input, "%U", unformat_vnet_sw_interface, vnm, &rpath->frp_sw_if_index)) @@ -750,6 +759,9 @@ unformat_fib_route_path (unformat_input_t * input, va_list * args) } } + if (DPO_PROTO_NONE != explicit_proto) + *payload_proto = rpath->frp_proto = explicit_proto; + return (1); } -- 2.16.6