l2_output_config_t *config = 0;
vnet_hw_interface_t *hi;
- hi = vnet_get_sup_hw_interface (vnet_main, sw_if_index);
+ hi = vnet_get_sup_hw_interface_api_visible_or_null (vnet_main, sw_if_index);
if (!hi)
{
}
else if (vtr_op == L2_VTR_PUSH_2)
{
- clib_memcpy (in_config->macs_tags.b_dst_address, b_dmac,
- sizeof (in_config->macs_tags.b_dst_address));
- clib_memcpy (in_config->macs_tags.b_src_address, b_smac,
- sizeof (in_config->macs_tags.b_src_address));
+ clib_memcpy_fast (in_config->macs_tags.b_dst_address, b_dmac,
+ sizeof (in_config->macs_tags.b_dst_address));
+ clib_memcpy_fast (in_config->macs_tags.b_src_address, b_smac,
+ sizeof (in_config->macs_tags.b_src_address));
in_config->macs_tags.b_type =
clib_net_to_host_u16 (ETHERNET_TYPE_DOT1AD);
in_config->macs_tags.priority_dei_id =
u32 push_outer_et;
u32 cfg_tags;
- hi = vnet_get_sup_hw_interface (vnet_main, sw_if_index);
+ hi = vnet_get_sup_hw_interface_api_visible_or_null (vnet_main, sw_if_index);
if (!hi || (hi->hw_class_index != ethernet_hw_interface_class.index))
{
error = VNET_API_ERROR_INVALID_INTERFACE; /* non-ethernet interface */
vtr_tag1 = clib_net_to_host_u16 (vtr_tag1);
vtr_tag2 = clib_net_to_host_u16 (vtr_tag2);
- /* Determine number of vlan tags with explictly configured values */
+ /* Determine number of vlan tags with explicitly configured values */
cfg_tags = 0;
if (hw_no_tags || si->sub.eth.flags.no_tags)
{
}
in_config->pop_bytes = 8;
in_config->push_bytes = 0;
-
- out_config->push_bytes = in_config->pop_bytes;
- out_config->pop_bytes = in_config->push_bytes;
break;
case L2_VTR_PUSH_1:
*vtr_tag2 = 0;
*push_dot1q = 0;
- hi = vnet_get_sup_hw_interface (vnet_main, sw_if_index);
+ hi = vnet_get_sup_hw_interface_api_visible_or_null (vnet_main, sw_if_index);
if (!hi || (hi->hw_class_index != ethernet_hw_interface_class.index))
{
/* non-ethernet interface */
else if (in_config->push_bytes)
*vtr_op = L2_VTR_PUSH_2;
- clib_memcpy (ð_hdr->dst_address, in_config->macs_tags.b_dst_address,
- sizeof (eth_hdr->dst_address));
- clib_memcpy (ð_hdr->src_address, in_config->macs_tags.b_src_address,
- sizeof (eth_hdr->src_address));
+ clib_memcpy_fast (ð_hdr->dst_address,
+ in_config->macs_tags.b_dst_address,
+ sizeof (eth_hdr->dst_address));
+ clib_memcpy_fast (ð_hdr->src_address,
+ in_config->macs_tags.b_src_address,
+ sizeof (eth_hdr->src_address));
*b_vlanid =
clib_host_to_net_u16 (in_config->macs_tags.priority_dei_id) & 0xFFF;