hash_unset_mem_free (&vxlan_gpe_main.mcast_shared, remote);
}
-static inline fib_protocol_t
-fib_ip_proto (bool is_ip6)
-{
- return (is_ip6) ? FIB_PROTOCOL_IP6 : FIB_PROTOCOL_IP4;
-}
-
/**
* @brief Add or Del a VXLAN GPE tunnel
*
return VNET_API_ERROR_TUNNEL_EXIST;
pool_get_aligned (ngm->tunnels, t, CLIB_CACHE_LINE_BYTES);
- memset (t, 0, sizeof (*t));
+ clib_memset (t, 0, sizeof (*t));
/* copy from arg structure */
/* *INDENT-OFF* */
if (!is_ip6)
{
key4_copy = clib_mem_alloc (sizeof (*key4_copy));
- clib_memcpy (key4_copy, &key4, sizeof (*key4_copy));
+ clib_memcpy_fast (key4_copy, &key4, sizeof (*key4_copy));
hash_set_mem (ngm->vxlan4_gpe_tunnel_by_key, key4_copy,
t - ngm->tunnels);
}
else
{
key6_copy = clib_mem_alloc (sizeof (*key6_copy));
- clib_memcpy (key6_copy, &key6, sizeof (*key6_copy));
+ clib_memcpy_fast (key6_copy, &key6, sizeof (*key6_copy));
hash_set_mem (ngm->vxlan6_gpe_tunnel_by_key, key6_copy,
t - ngm->tunnels);
}
else
{
/* Multicast tunnel -
- * as the same mcast group can be used for mutiple mcast tunnels
- * with different VNIs, create the output fib adjecency only if
+ * as the same mcast group can be used for multiple mcast tunnels
+ * with different VNIs, create the output fib adjacency only if
* it does not already exist
*/
fib_protocol_t fp = fib_ip_proto (is_ip6);
vnet_sw_interface_set_flags (vnm, t->sw_if_index, 0 /* down */ );
vnet_sw_interface_t *si = vnet_get_sw_interface (vnm, t->sw_if_index);
si->flags |= VNET_SW_INTERFACE_FLAG_HIDDEN;
- set_int_l2_mode (ngm->vlib_main, vnm, MODE_L3, t->sw_if_index, 0, 0, 0,
- 0);
+ set_int_l2_mode (ngm->vlib_main, vnm, MODE_L3, t->sw_if_index, 0,
+ L2_BD_PORT_TYPE_NORMAL, 0, 0);
vec_add1 (ngm->free_vxlan_gpe_tunnel_hw_if_indices, t->hw_if_index);
ngm->tunnel_index_by_sw_if_index[t->sw_if_index] = ~0;
goto done;
}
- memset (a, 0, sizeof (*a));
+ clib_memset (a, 0, sizeof (*a));
a->is_add = is_add;
a->is_ip6 = ipv6_set;
* center or be separated geographically as long as they are reachable
* through the underlay L3 network.
*
- * You can refer to this kind of L2 overlay bridge domain as a VXLAN-GPE sengment.
+ * You can refer to this kind of L2 overlay bridge domain as a VXLAN-GPE segment.
*
* @cliexpar
* Example of how to create a VXLAN-GPE Tunnel:
* ip4-lookup [2]
* @cliexend
*
- * Example of how to display the feature enabed on an interface:
+ * Example of how to display the feature enabled on an interface:
* @cliexstart{show ip interface features GigabitEthernet2/0/0}
* IP feature paths configured on GigabitEthernet2/0/0...
* ...
* ip6-lookup [2]
* @cliexend
*
- * Example of how to display the feature enabed on an interface:
+ * Example of how to display the feature enabled on an interface:
* @cliexstart{show ip interface features GigabitEthernet2/0/0}
* IP feature paths configured on GigabitEthernet2/0/0...
* ...