VPP-356: Fix wrong byte order in LISP API 12/2512/2
authorFilip Tehlar <ftehlar@cisco.com>
Fri, 26 Aug 2016 10:44:38 +0000 (12:44 +0200)
committerDamjan Marion <dmarion.lists@gmail.com>
Fri, 26 Aug 2016 12:40:16 +0000 (12:40 +0000)
Change-Id: Ib2284025b8394a87f1d5765713adb7070b450cba
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
vpp-api-test/vat/api_format.c
vpp/vpp-api/api.c
vpp/vpp-api/custom_dump.c

index 7369714..3d90cae 100644 (file)
@@ -11714,7 +11714,7 @@ api_lisp_add_del_locator_set (vat_main_t * vam)
               vec_len (locator_set_name));
   vec_free (locator_set_name);
 
-  mp->locator_num = vec_len (locators);
+  mp->locator_num = clib_host_to_net_u32 (vec_len (locators));
   if (locators)
     clib_memcpy (mp->locators, locators,
                 (sizeof (ls_locator_t) * vec_len (locators)));
@@ -12458,7 +12458,7 @@ api_lisp_add_del_remote_mapping (vat_main_t * vam)
   mp->eid_type = eid->type;
   lisp_eid_put_vat (mp->eid, eid->addr, eid->type);
 
-  mp->rloc_num = vec_len (rlocs);
+  mp->rloc_num = clib_host_to_net_u32 (vec_len (rlocs));
   clib_memcpy (mp->rlocs, rlocs, (sizeof (rloc_t) * vec_len (rlocs)));
   vec_free (rlocs);
 
index f4f0851..8bf6d30 100644 (file)
@@ -5126,7 +5126,7 @@ vl_api_lisp_add_del_locator_set_t_handler (vl_api_lisp_add_del_locator_set_t *
   vnet_lisp_add_del_locator_set_args_t _a, *a = &_a;
   locator_t locator;
   ls_locator_t *ls_loc;
-  u32 ls_index = ~0;
+  u32 ls_index = ~0, locator_num;
   u8 *locator_name = NULL;
   int i;
 
@@ -5137,9 +5137,10 @@ vl_api_lisp_add_del_locator_set_t_handler (vl_api_lisp_add_del_locator_set_t *
   a->name = locator_name;
   a->is_add = mp->is_add;
   a->local = 1;
+  locator_num = clib_net_to_host_u32 (mp->locator_num);
 
   memset (&locator, 0, sizeof (locator));
-  for (i = 0; i < mp->locator_num; i++)
+  for (i = 0; i < locator_num; i++)
     {
       ls_loc = &((ls_locator_t *) mp->locators)[i];
       VALIDATE_SW_IF_INDEX (ls_loc);
@@ -5487,7 +5488,7 @@ static void
   if (rv)
     goto send_reply;
 
-  rlocs = unformat_lisp_locs (mp->rlocs, mp->rloc_num);
+  rlocs = unformat_lisp_locs (mp->rlocs, clib_net_to_host_u32 (mp->rloc_num));
   if (0 == rlocs)
     goto send_reply;
 
index d1098d3..375535f 100644 (file)
@@ -2318,7 +2318,7 @@ static void *vl_api_lisp_add_del_remote_mapping_t_print
              mp->eid_type, mp->eid, mp->eid_len, mp->seid, mp->seid_len,
              mp->is_src_dst);
 
-  rloc_num = mp->rloc_num;
+  rloc_num = clib_net_to_host_u32 (mp->rloc_num);
 
   if (0 == rloc_num)
     s = format (s, "action %d", mp->action);
@@ -2470,7 +2470,7 @@ static void *vl_api_lisp_add_del_locator_set_t_print
 
   s = format (s, "locator-set %s ", mp->locator_set_name);
 
-  loc_num = mp->locator_num;
+  loc_num = clib_net_to_host_u32 (mp->locator_num);
   locs = (ls_locator_t *) mp->locators;
 
   for (i = 0; i < loc_num; i++)