X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvnet%2Ffib%2Ffib_types.c;h=542cf1d7faf3b7888e7aa5e787ba321ebcb7f2d2;hb=d0df49f2;hp=8b1faf5fa861e0b3bffe6229b18a1dd8d39bb6bf;hpb=31ed74407643595fdce206e9d7487108fb8b33ab;p=vpp.git diff --git a/src/vnet/fib/fib_types.c b/src/vnet/fib/fib_types.c index 8b1faf5fa86..542cf1d7faf 100644 --- a/src/vnet/fib/fib_types.c +++ b/src/vnet/fib/fib_types.c @@ -282,6 +282,40 @@ fib_proto_to_link (fib_protocol_t proto) return (0); } +ip46_type_t +fib_proto_to_ip46 (fib_protocol_t fproto) +{ + switch (fproto) + { + case FIB_PROTOCOL_IP4: + return (IP46_TYPE_IP4); + case FIB_PROTOCOL_IP6: + return (IP46_TYPE_IP6); + case FIB_PROTOCOL_MPLS: + return (IP46_TYPE_ANY); + } + ASSERT(0); + return (IP46_TYPE_ANY); +} + +fib_protocol_t +fib_proto_from_ip46 (ip46_type_t iproto) +{ + switch (iproto) + { + case IP46_TYPE_IP4: + return FIB_PROTOCOL_IP4; + case IP46_TYPE_IP6: + return FIB_PROTOCOL_IP6; + case IP46_TYPE_ANY: + ASSERT(0); + return FIB_PROTOCOL_IP4; + } + + ASSERT(0); + return FIB_PROTOCOL_IP4; +} + fib_forward_chain_type_t fib_forw_chain_type_from_dpo_proto (dpo_proto_t proto) { @@ -495,6 +529,10 @@ unformat_fib_route_path (unformat_input_t * input, va_list * args) rpath->frp_proto = DPO_PROTO_MPLS; *payload_proto = DPO_PROTO_MPLS; } + else if (unformat (input, "src-lookup")) + { + rpath->frp_flags |= FIB_ROUTE_PATH_SOURCE_LOOKUP; + } else if (unformat (input, "l2-input-on %U", unformat_vnet_sw_interface, vnm, @@ -502,6 +540,7 @@ unformat_fib_route_path (unformat_input_t * input, va_list * args) { rpath->frp_proto = DPO_PROTO_ETHERNET; *payload_proto = DPO_PROTO_ETHERNET; + rpath->frp_flags |= FIB_ROUTE_PATH_INTF_RX; } else if (unformat (input, "via-label %U", unformat_mpls_unicast_label,