if (xd->flags & DPDK_DEVICE_FLAG_ADMIN_UP)
{
if (xd->flags & DPDK_DEVICE_FLAG_PROMISC)
- rte_eth_promiscuous_enable (xd->device_index);
+ rte_eth_promiscuous_enable (xd->port_id);
else
- rte_eth_promiscuous_disable (xd->device_index);
+ rte_eth_promiscuous_disable (xd->port_id);
}
}
else if (ETHERNET_INTERFACE_FLAG_CONFIG_MTU (flags))
}
static struct rte_mempool_ops *
-get_ops_by_name (i8 * ops_name)
+get_ops_by_name (char *ops_name)
{
u32 i;
{
u32 rg_flags = 0, count;
i32 ret;
- i8 rg_name[RTE_RING_NAMESIZE];
+ char rg_name[RTE_RING_NAMESIZE];
struct rte_ring *r;
ret = snprintf (rg_name, sizeof (rg_name), RTE_MEMPOOL_MZ_FORMAT, mp->name);
uword *p_hqos;
u32 next_hqos_cpu = 0;
- u8 af_packet_port_id = 0;
- u8 bond_ether_port_id = 0;
+ u8 af_packet_instance_num = 0;
+ u8 bond_ether_instance_num = 0;
last_pci_addr.as_u32 = ~0;
dm->hqos_cpu_first_index = 0;
vnet_buffer (&ptd->buffer_template)->sw_if_index[VLIB_TX] = (u32) ~ 0;
}
- for (i = 0; i < nports; i++)
+ /* *INDENT-OFF* */
+ RTE_ETH_FOREACH_DEV(i)
{
u8 addr[6];
u8 vlan_strip = 0;
case VNET_DPDK_PMD_AF_PACKET:
xd->port_type = VNET_DPDK_PORT_TYPE_AF_PACKET;
- xd->port_id = af_packet_port_id++;
+ xd->af_packet_instance_num = af_packet_instance_num++;
break;
case VNET_DPDK_PMD_BOND:
xd->port_type = VNET_DPDK_PORT_TYPE_ETH_BOND;
- xd->port_id = bond_ether_port_id++;
+ xd->bond_instance_num = bond_ether_instance_num++;
break;
case VNET_DPDK_PMD_VIRTIO_USER:
if (xd->tx_q_used < tm->n_vlib_mains)
dpdk_device_lock_init (xd);
+ xd->port_id = i;
xd->device_index = xd - dm->devices;
- ASSERT (i == xd->device_index);
xd->per_interface_next_index = ~0;
/* assign interface to input thread */
{
int i;
q = 0;
- /* *INDENT-OFF* */
clib_bitmap_foreach (i, devconf->workers, ({
vnet_hw_interface_assign_rx_thread (dm->vnet_main, xd->hw_if_index, q++,
vdm->first_worker_thread_index + i);
}));
- /* *INDENT-ON* */
}
else
for (q = 0; q < xd->rx_q_used; q++)
if (vlan_strip)
{
int vlan_off;
- vlan_off = rte_eth_dev_get_vlan_offload (xd->device_index);
+ vlan_off = rte_eth_dev_get_vlan_offload (xd->port_id);
vlan_off |= ETH_VLAN_STRIP_OFFLOAD;
xd->port_conf.rxmode.hw_vlan_strip = vlan_off;
- if (rte_eth_dev_set_vlan_offload (xd->device_index, vlan_off) == 0)
+ if (rte_eth_dev_set_vlan_offload (xd->port_id, vlan_off) == 0)
dpdk_log_info ("VLAN strip enabled for interface\n");
else
dpdk_log_warn ("VLAN strip cannot be supported by interface\n");
if (dm->conf->no_multi_seg)
mtu = mtu > ETHER_MAX_LEN ? ETHER_MAX_LEN : mtu;
- rte_eth_dev_set_mtu (xd->device_index, mtu);
+ rte_eth_dev_set_mtu (xd->port_id, mtu);
}
+ /* *INDENT-ON* */
if (nb_desc > dm->conf->num_mbufs)
dpdk_log_err ("%d mbufs allocated but total rx/tx ring size is %d\n",
xd->time_last_link_update = now ? now : xd->time_last_link_update;
memset (&xd->link, 0, sizeof (xd->link));
- rte_eth_link_get_nowait (xd->device_index, &xd->link);
+ rte_eth_link_get_nowait (xd->port_id, &xd->link);
if (LINK_STATE_ELOGS)
{
dpdk_device_t *xd;
vlib_thread_main_t *tm = vlib_get_thread_main ();
int i;
+ int j;
error = dpdk_lib_init (dm);
int nports = rte_eth_dev_count ();
if (nports > 0)
{
- for (i = 0; i < nports; i++)
+ /* *INDENT-OFF* */
+ RTE_ETH_FOREACH_DEV(i)
{
- xd = &dm->devices[i];
- ASSERT (i == xd->device_index);
+ xd = NULL;
+ for (j = 0; j < nports; j++)
+ {
+ if (dm->devices[j].port_id == i)
+ {
+ xd = &dm->devices[j];
+ }
+ }
+ ASSERT (xd != NULL);
+
if (xd->pmd == VNET_DPDK_PMD_BOND)
{
u8 addr[6];
/* Set MAC of bounded interface to that of 1st slave link */
dpdk_log_info ("Set MAC for bond port %d BondEthernet%d",
- i, xd->port_id);
+ i, xd->bond_instance_num);
rv = rte_eth_bond_mac_address_set
(i, (struct ether_addr *) addr);
if (rv)
}
}
}
+ /* *INDENT-ON* */
}
}
"Data in cache line 0 is bigger than cache line size");
STATIC_ASSERT (offsetof (frame_queue_trace_t, cacheline0) == 0,
"Cache line marker must be 1st element in frame_queue_trace_t");
+ STATIC_ASSERT (RTE_CACHE_LINE_SIZE == 1 << CLIB_LOG2_CACHE_LINE_BYTES,
+ "DPDK RTE CACHE LINE SIZE does not match with 1<<CLIB_LOG2_CACHE_LINE_BYTES");
dm->vlib_main = vm;
dm->vnet_main = vnet_get_main ();