DPDK_TX_FUNC_N_ERROR,
} dpdk_tx_func_error_t;
-#ifndef CLIB_MULTIARCH_VARIANT
+#ifndef CLIB_MARCH_VARIANT
static char *dpdk_tx_func_error_strings[] = {
#define _(n,s) s,
foreach_dpdk_tx_func_error
dpdk_main_t *dm = &dpdk_main;
dpdk_device_t *xd = vec_elt_at_index (dm->devices, hi->dev_instance);
- error = rte_eth_dev_default_mac_addr_set (xd->device_index,
+ error = rte_eth_dev_default_mac_addr_set (xd->port_id,
(struct ether_addr *) address);
if (error)
else if (PREDICT_TRUE (xd->flags & DPDK_DEVICE_FLAG_PMD))
{
/* no wrap, transmit in one burst */
- n_sent = rte_eth_tx_burst (xd->device_index, queue_id, mb, n_left);
+ n_sent = rte_eth_tx_burst (xd->port_id, queue_id, mb, n_left);
}
else
{
xd->hw_if_index)->tx_node_index;
vlib_error_count (vm, node_index, DPDK_TX_FUNC_ERROR_BAD_RETVAL, 1);
- clib_warning ("rte_eth_tx_burst[%d]: error %d", xd->device_index,
- n_sent);
+ clib_warning ("rte_eth_tx_burst[%d]: error %d",
+ xd->port_id, n_sent);
return n_left; // untransmitted packets
}
n_left -= n_sent;
thread_index);
struct rte_mbuf **mb;
vlib_buffer_t *b[4];
-#ifdef CLIB_HAVE_VEC256
- u64x4 off4 = u64x4_splat (buffer_main.buffer_mem_start -
- sizeof (struct rte_mbuf));
- u32x8 permute_mask = { 0, 4, 1, 5, 2, 6, 3, 7 };
- u32x8 zero = { 0 };
-#endif
from = vlib_frame_vector_args (f);
ASSERT (n_packets <= VLIB_FRAME_SIZE);
/* TX PCAP tracing */
- if (PREDICT_FALSE (dm->tx_pcap_enable))
+ if (PREDICT_FALSE (dm->pcap[VLIB_TX].pcap_enable))
{
n_left = n_packets;
while (n_left > 0)
{
u32 bi0 = from[0];
vlib_buffer_t *b0 = vlib_get_buffer (vm, bi0);
- if (dm->pcap_sw_if_index == 0 ||
- dm->pcap_sw_if_index == vnet_buffer (b0)->sw_if_index[VLIB_TX])
- pcap_add_buffer (&dm->pcap_main, vm, bi0, 512);
+ if (dm->pcap[VLIB_TX].pcap_sw_if_index == 0 ||
+ dm->pcap[VLIB_TX].pcap_sw_if_index
+ == vnet_buffer (b0)->sw_if_index[VLIB_TX])
+ pcap_add_buffer (&dm->pcap[VLIB_TX].pcap_main, vm, bi0, 512);
from++;
n_left--;
}
}
/* calculate rte_mbuf pointers out of buffer indices */
- from = vlib_frame_vector_args (f);
- n_left = n_packets;
- mb = ptd->mbufs;
- while (n_left >= 8)
- {
-#ifdef CLIB_HAVE_VEC256
- u32x8 bi0, bi1;
- u64x4 mb0, mb1;
- /* load 4 bufer indices into lower part of 256-bit register */
- bi0 = u32x8_insert_lo (zero, u32x4_load_unaligned (from));
- bi1 = u32x8_insert_lo (zero, u32x4_load_unaligned (from + 4));
- /* permute 256-bit register so each buffer index is in own u64 */
- mb0 = (u64x4) u32x8_permute (bi0, permute_mask);
- mb1 = (u64x4) u32x8_permute (bi1, permute_mask);
- /* shift and add to get rte_mbuf pointer */
- mb0 <<= CLIB_LOG2_CACHE_LINE_BYTES;
- mb1 <<= CLIB_LOG2_CACHE_LINE_BYTES;
- u64x4_store_unaligned (mb0 + off4, mb);
- u64x4_store_unaligned (mb1 + off4, mb + 4);
-#else
- mb[0] = rte_mbuf_from_vlib_buffer (vlib_get_buffer (vm, from[0]));
- mb[1] = rte_mbuf_from_vlib_buffer (vlib_get_buffer (vm, from[1]));
- mb[2] = rte_mbuf_from_vlib_buffer (vlib_get_buffer (vm, from[2]));
- mb[3] = rte_mbuf_from_vlib_buffer (vlib_get_buffer (vm, from[3]));
- mb[4] = rte_mbuf_from_vlib_buffer (vlib_get_buffer (vm, from[4]));
- mb[5] = rte_mbuf_from_vlib_buffer (vlib_get_buffer (vm, from[5]));
- mb[6] = rte_mbuf_from_vlib_buffer (vlib_get_buffer (vm, from[6]));
- mb[7] = rte_mbuf_from_vlib_buffer (vlib_get_buffer (vm, from[7]));
-#endif
- from += 8;
- mb += 8;
- n_left -= 8;
- }
- while (n_left)
- {
- mb[0] = rte_mbuf_from_vlib_buffer (vlib_get_buffer (vm, from[0]));
- from++;
- mb++;
- n_left--;
- }
+ vlib_get_buffers_with_offset (vm, vlib_frame_vector_args (f),
+ (void **) ptd->mbufs, n_packets,
+ -(i32) sizeof (struct rte_mbuf));
+
from = vlib_frame_vector_args (f);
n_left = n_packets;
mb = ptd->mbufs;
return tx_pkts;
}
-#ifndef CLIB_MULTIARCH_VARIANT
+#ifndef CLIB_MARCH_VARIANT
static void
dpdk_clear_hw_interface_counters (u32 instance)
{
goto done;
}
- vlan_offload = rte_eth_dev_get_vlan_offload (xd->device_index);
+ vlan_offload = rte_eth_dev_get_vlan_offload (xd->port_id);
vlan_offload |= ETH_VLAN_FILTER_OFFLOAD;
- if ((r = rte_eth_dev_set_vlan_offload (xd->device_index, vlan_offload)))
+ if ((r = rte_eth_dev_set_vlan_offload (xd->port_id, vlan_offload)))
{
xd->num_subifs = prev_subifs;
err = clib_error_return (0, "rte_eth_dev_set_vlan_offload[%d]: err %d",
- xd->device_index, r);
+ xd->port_id, r);
goto done;
}
if ((r =
- rte_eth_dev_vlan_filter (xd->device_index, t->sub.eth.outer_vlan_id,
- is_add)))
+ rte_eth_dev_vlan_filter (xd->port_id,
+ t->sub.eth.outer_vlan_id, is_add)))
{
xd->num_subifs = prev_subifs;
err = clib_error_return (0, "rte_eth_dev_vlan_filter[%d]: err %d",
- xd->device_index, r);
+ xd->port_id, r);
goto done;
}
#define UP_DOWN_FLAG_EVENT 1
-#ifndef CLIB_MULTIARCH_VARIANT
+#ifndef CLIB_MARCH_VARIANT
uword
admin_up_down_process (vlib_main_t * vm,
vlib_node_runtime_t * rt, vlib_frame_t * f)