FIB path weight incorrect in dump (VPP-922) 67/7867/3
authorNeale Ranns <nranns@cisco.com>
Tue, 1 Aug 2017 18:40:03 +0000 (11:40 -0700)
committerFlorin Coras <florin.coras@gmail.com>
Tue, 1 Aug 2017 21:50:15 +0000 (21:50 +0000)
Change-Id: I655f41878ca3595681d0255782b0faba01c9824b
Signed-off-by: Neale Ranns <nranns@cisco.com>
src/vnet/fib/fib_path.c
src/vnet/fib/fib_test.c
src/vnet/fib/fib_types.h
src/vnet/ip/ip_api.c
src/vnet/mpls/mpls.api
src/vnet/mpls/mpls_api.c

index 00a3fa6..3a67a54 100644 (file)
@@ -198,13 +198,14 @@ typedef struct fib_path_t_ {
     /**
      * UCMP [unnormalised] weigth
      */
-    u16 fp_weight;
+    u8 fp_weight;
+
     /**
      * A path preference. 0 is the best.
      * Only paths of the best preference, that are 'up', are considered
      * for forwarding.
      */
-    u16 fp_preference;
+    u8 fp_preference;
 
     /**
      * per-type union of the data required to resolve the path
index 720f54e..4c89166 100644 (file)
@@ -5919,7 +5919,7 @@ fib_test_pref (void)
         .frp_sw_if_index = ~0,
         .frp_fib_index = 0,
         .frp_weight = 1,
-        .frp_preference = 1000,
+        .frp_preference = 255,
         .frp_flags = FIB_ROUTE_PATH_RESOLVE_VIA_HOST,
         .frp_addr = pfx_1_1_1_3_s_32.fp_addr,
     };
index a7a23d7..a209ff3 100644 (file)
@@ -380,13 +380,13 @@ typedef struct fib_route_path_t_ {
     /**
      * [un]equal cost path weight
      */
-    u16 frp_weight;
+    u8 frp_weight;
     /**
      * A path preference. 0 is the best.
      * Only paths of the best preference, that are 'up', are considered
      * for forwarding.
      */
-    u16 frp_preference;
+    u8 frp_preference;
     /**
      * flags on the path
      */
index d00ae76..4cbf75a 100644 (file)
@@ -231,7 +231,8 @@ send_ip_fib_details (vpe_api_main_t * am,
       default:
        break;
       }
-    fp->weight = htonl (api_rpath->rpath.frp_weight);
+    fp->weight = api_rpath->rpath.frp_weight;
+    fp->preference = api_rpath->rpath.frp_preference;
     fp->sw_if_index = htonl (api_rpath->rpath.frp_sw_if_index);
     copy_fib_next_hop (api_rpath, fp);
     fp++;
@@ -357,8 +358,9 @@ send_ip6_fib_details (vpe_api_main_t * am,
       default:
        break;
       }
-    fp->weight = htonl (api_rpath->rpath.frp_weight);
-    fp->sw_if_index = htonl (api_rpath->rpath.frp_sw_if_index);
+    fp->weight = api_rpath->rpath.frp_weight;
+    fp->preference = api_rpath->rpath.frp_preference;
+    fp->sw_if_index = api_rpath->rpath.frp_sw_if_index;
     copy_fib_next_hop (api_rpath, fp);
     fp++;
   }
index 61d7fe6..67f1045 100644 (file)
@@ -112,7 +112,8 @@ define mpls_tunnel_dump
 typeonly manual_print manual_endian define fib_path2
 {
   u32 sw_if_index;
-  u32 weight;
+  u8 weight;
+  u8 preference;
   u8 is_local;
   u8 is_drop;
   u8 is_unreach;
index 22fb7d4..92fb24a 100644 (file)
@@ -334,7 +334,8 @@ send_mpls_tunnel_entry (u32 mti, void *arg)
   {
     memset (fp, 0, sizeof (*fp));
 
-    fp->weight = htonl (api_rpath->rpath.frp_weight);
+    fp->weight = api_rpath->rpath.frp_weight;
+    fp->preference = api_rpath->rpath.frp_preference;
     fp->sw_if_index = htonl (api_rpath->rpath.frp_sw_if_index);
     copy_fib_next_hop (api_rpath, fp);
     fp++;
@@ -393,7 +394,8 @@ send_mpls_fib_details (vpe_api_main_t * am,
   vec_foreach (api_rpath, api_rpaths)
   {
     memset (fp, 0, sizeof (*fp));
-    fp->weight = htonl (api_rpath->rpath.frp_weight);
+    fp->weight = api_rpath->rpath.frp_weight;
+    fp->preference = api_rpath->rpath.frp_preference;
     fp->sw_if_index = htonl (api_rpath->rpath.frp_sw_if_index);
     copy_fib_next_hop (api_rpath, fp);
     fp++;