if (tm->is_ether && (!tm->have_normal_interface))
{
vlib_buffer_reset (b);
- clib_memcpy (vlib_buffer_get_current (b), tm->ether_dst_mac, 6);
+ clib_memcpy_fast (vlib_buffer_get_current (b), tm->ether_dst_mac,
+ 6);
}
/* Re-set iovecs if present. */
tuntap_main_t *tm = &tuntap_main;
vlib_buffer_t *b;
u32 bi;
- const uword buffer_size = VLIB_BUFFER_DATA_SIZE;
+ const uword buffer_size = vlib_buffer_get_default_data_size (vm);
u16 thread_index = vm->thread_index;
/** Make sure we have some RX buffers. */
/* *INDENT-OFF* */
VLIB_REGISTER_NODE (tuntap_rx_node,static) = {
.function = tuntap_rx,
+ .flags = VLIB_NODE_FLAG_TRACE_SUPPORTED,
.name = "tuntap-rx",
.sibling_of = "device-input",
.type = VLIB_NODE_TYPE_INPUT,
u8 *name;
int flags = IFF_TUN | IFF_NO_PI;
int is_enabled = 0, is_ether = 0, have_normal_interface = 0;
- const uword buffer_size = VLIB_BUFFER_DATA_SIZE;
+ const uword buffer_size = vlib_buffer_get_default_data_size (vm);
while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
{
goto done;
}
else
- clib_memcpy (tm->ether_dst_mac, ifr.ifr_hwaddr.sa_data, 6);
+ clib_memcpy_fast (tm->ether_dst_mac, ifr.ifr_hwaddr.sa_data, 6);
}
if (have_normal_interface)
/** See if we already know about this subif */
clib_memset (&subif_addr, 0, sizeof (subif_addr));
subif_addr.sw_if_index = sw_if_index;
- clib_memcpy (&subif_addr.addr, address, sizeof (*address));
+ clib_memcpy_fast (&subif_addr.addr, address, sizeof (*address));
p = mhash_get (&tm->subif_mhash, &subif_addr);
/* Set ipv4 address, netmask. */
sin->sin_family = AF_INET;
- clib_memcpy (&sin->sin_addr.s_addr, address, 4);
+ clib_memcpy_fast (&sin->sin_addr.s_addr, address, 4);
if (ioctl (tm->dev_tap_fd, SIOCSIFADDR, &ifr) < 0)
clib_unix_warning ("ioctl SIOCSIFADDR");
clib_memset (&subif_addr, 0, sizeof (subif_addr));
subif_addr.sw_if_index = sw_if_index;
subif_addr.is_v6 = 1;
- clib_memcpy (&subif_addr.addr, address, sizeof (*address));
+ clib_memcpy_fast (&subif_addr.addr, address, sizeof (*address));
p = mhash_get (&tm->subif_mhash, &subif_addr);
ifr6.ifr6_ifindex = ifr.ifr_ifindex;
ifr6.ifr6_prefixlen = address_length;
- clib_memcpy (&ifr6.ifr6_addr, address, 16);
+ clib_memcpy_fast (&ifr6.ifr6_addr, address, 16);
if (ioctl (sockfd, SIOCSIFADDR, &ifr6) < 0)
clib_unix_warning ("set address");
ifr6.ifr6_ifindex = ifr.ifr_ifindex;
ifr6.ifr6_prefixlen = address_length;
- clib_memcpy (&ifr6.ifr6_addr, address, 16);
+ clib_memcpy_fast (&ifr6.ifr6_addr, address, 16);
if (ioctl (sockfd, SIOCDIFADDR, &ifr6) < 0)
clib_unix_warning ("del address");
static clib_error_t *
tuntap_init (vlib_main_t * vm)
{
- clib_error_t *error;
ip4_main_t *im4 = &ip4_main;
ip6_main_t *im6 = &ip6_main;
ip4_add_del_interface_address_callback_t cb4;
tuntap_main_t *tm = &tuntap_main;
vlib_thread_main_t *m = vlib_get_thread_main ();
- error = vlib_call_init_function (vm, ip4_init);
- if (error)
- return error;
-
mhash_init (&tm->subif_mhash, sizeof (u32), sizeof (subif_address_t));
cb4.function = tuntap_ip4_add_del_interface_address;
return 0;
}
-VLIB_INIT_FUNCTION (tuntap_init);
+/* *INDENT-OFF* */
+VLIB_INIT_FUNCTION (tuntap_init) =
+{
+ .runs_after = VLIB_INITS("ip4_init"),
+};
+/* *INDENT-ON* */
/*
* fd.io coding-style-patch-verification: ON