LISP: re-fetch mapping before it expires
[vpp.git] / src / vnet / lisp-gpe / lisp_gpe_sub_interface.c
index 56f5263..b234d9d 100644 (file)
@@ -49,11 +49,11 @@ lisp_gpe_sub_interface_db_find (const ip_address_t * lrloc, u32 vni)
 {
   uword *p;
 
-  lisp_gpe_sub_interface_key_t key = {
-    .local_rloc = *lrloc,
-    .vni = clib_host_to_net_u32 (vni),
-  };
+  lisp_gpe_sub_interface_key_t key;
 
+  memset (&key, 0, sizeof (key));
+  ip_address_copy (&key.local_rloc, lrloc);
+  key.vni = vni;
   p = hash_get_mem (lisp_gpe_sub_interfaces, &key);
 
   if (NULL == p)
@@ -66,16 +66,16 @@ static void
 lisp_gpe_sub_interface_db_insert (const lisp_gpe_sub_interface_t * l3s)
 {
   hash_set_mem (lisp_gpe_sub_interfaces,
-               &l3s->key, l3s - lisp_gpe_sub_interface_pool);
+               l3s->key, l3s - lisp_gpe_sub_interface_pool);
   hash_set_mem (lisp_gpe_sub_interfaces_sw_if_index,
-               &l3s->key, l3s->sw_if_index);
+               l3s->key, l3s->sw_if_index);
 }
 
 static void
 lisp_gpe_sub_interface_db_remove (const lisp_gpe_sub_interface_t * l3s)
 {
-  hash_unset_mem (lisp_gpe_sub_interfaces, &l3s->key);
-  hash_unset_mem (lisp_gpe_sub_interfaces_sw_if_index, &l3s->key);
+  hash_unset_mem (lisp_gpe_sub_interfaces, l3s->key);
+  hash_unset_mem (lisp_gpe_sub_interfaces_sw_if_index, l3s->key);
 }
 
 lisp_gpe_sub_interface_t *
@@ -119,7 +119,7 @@ lisp_gpe_sub_interface_find_or_create_and_lock (const ip_address_t * lrloc,
   lisp_gpe_sub_interface_t *l3s;
   index_t l3si;
 
-  l3si = lisp_gpe_sub_interface_db_find (lrloc, clib_host_to_net_u32 (vni));
+  l3si = lisp_gpe_sub_interface_db_find (lrloc, vni);
 
   if (INDEX_INVALID == l3si)
     {
@@ -148,8 +148,8 @@ lisp_gpe_sub_interface_find_or_create_and_lock (const ip_address_t * lrloc,
       l3s->key = clib_mem_alloc (sizeof (*l3s->key));
       memset (l3s->key, 0, sizeof (*l3s->key));
 
-      l3s->key->local_rloc = *lrloc;
-      l3s->key->vni = clib_host_to_net_u32 (vni);
+      ip_address_copy (&l3s->key->local_rloc, lrloc);
+      l3s->key->vni = vni;
       l3s->main_sw_if_index = main_sw_if_index;
       l3s->sw_if_index = sub_sw_if_index;
       l3s->eid_table_id = overlay_table_id;
@@ -192,7 +192,7 @@ lisp_gpe_sub_interface_unlock (index_t l3si)
       lisp_gpe_sub_interface_unset_table (l3s->sw_if_index,
                                          l3s->eid_table_id);
 
-      lisp_gpe_tenant_l3_iface_unlock (clib_net_to_host_u32 (l3s->key->vni));
+      lisp_gpe_tenant_l3_iface_unlock (l3s->key->vni);
       vnet_sw_interface_set_flags (vnet_get_main (), l3s->sw_if_index, 0);
       vnet_delete_sub_interface (l3s->sw_if_index);
 
@@ -215,11 +215,11 @@ format_lisp_gpe_sub_interface (u8 * s, va_list ap)
   lisp_gpe_sub_interface_t *l3s = va_arg (ap, lisp_gpe_sub_interface_t *);
   vnet_main_t *vnm = vnet_get_main ();
 
-  s = format (s, "%=16U",
+  s = format (s, "%-16U",
              format_vnet_sw_interface_name,
              vnm, vnet_get_sw_interface (vnm, l3s->sw_if_index));
-  s = format (s, "%=10d", clib_net_to_host_u32 (l3s->key->vni));
-  s = format (s, "%=12d", l3s->sw_if_index);
+  s = format (s, "%=8d", l3s->key->vni);
+  s = format (s, "%=15d", l3s->sw_if_index);
   s = format (s, "%U", format_ip_address, &l3s->key->local_rloc);
 
   return (s);
@@ -233,7 +233,7 @@ lisp_gpe_sub_interface_show (vlib_main_t * vm,
 {
   lisp_gpe_sub_interface_t *l3s;
 
-  vlib_cli_output (vm, "%=16s%=10s%=12s%s", "Name", "VNI", "SW IF Index",
+  vlib_cli_output (vm, "%-16s%=8s%=15s%s", "Name", "VNI", "sw_if_index",
                   "local RLOC");
 
   /* *INDENT-OFF* */