Fix CLI path parsing for via interface only 98/9598/2
authorNeale Ranns <nranns@cisco.com>
Tue, 28 Nov 2017 12:36:37 +0000 (04:36 -0800)
committerDamjan Marion <dmarion.lists@gmail.com>
Thu, 30 Nov 2017 09:39:12 +0000 (09:39 +0000)
before:
DBGvpp# ip route add 1.1.1.1/32 via mpls-tunnel0
ip route add 1.1.1.1/32 via mpls-tunnel0
ip route: parse error `via mpls-tunnel0'
DBGvpp# ip route add 1.1.1.1/32 via via mpls-tunnel0
ip route add 1.1.1.1/32 via via mpls-tunnel0

after:
DBGvpp# ip route add 1.1.1.1/32 via via mpls-tunnel1
ip route add 1.1.1.1/32 via via mpls-tunnel1

Change-Id: I2185a82fcf0799d59de9cb16e09b7f297faffab9
Signed-off-by: Neale Ranns <nranns@cisco.com>
src/vnet/fib/fib_types.c

index 5c70d6c..48f2bd1 100644 (file)
@@ -417,12 +417,6 @@ unformat_fib_route_path (unformat_input_t * input, va_list * args)
             rpath->frp_proto = *payload_proto;
             rpath->frp_sw_if_index = ~0;
         }
-        else if (unformat (input, "via %U",
-                           unformat_vnet_sw_interface, vnm,
-                           &rpath->frp_sw_if_index))
-        {
-            rpath->frp_proto = *payload_proto;
-        }
         else if (unformat (input, "resolve-via-host"))
         {
             rpath->frp_flags |= FIB_ROUTE_PATH_RESOLVE_VIA_HOST;
@@ -483,6 +477,12 @@ unformat_fib_route_path (unformat_input_t * input, va_list * args)
                 vec_add1(rpath->frp_label_stack, out_label);
             }
         }
+        else if (unformat (input, "%U",
+                           unformat_vnet_sw_interface, vnm,
+                           &rpath->frp_sw_if_index))
+        {
+            rpath->frp_proto = *payload_proto;
+        }
         else
         {
             return (0);