X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fl3fwd%2Fl3fwd_event_internal_port.c;h=32cf65714802161da492cbd84cecc3d31dea1e86;hb=c811e6a492affd55a1c02b13e93591214be2dd1f;hp=03ac581d634aa36c1494476eea3ec913d01413b8;hpb=d52e042850147c861f31adb04ad8a65820971117;p=dpdk.git diff --git a/examples/l3fwd/l3fwd_event_internal_port.c b/examples/l3fwd/l3fwd_event_internal_port.c index 03ac581d63..32cf657148 100644 --- a/examples/l3fwd/l3fwd_event_internal_port.c +++ b/examples/l3fwd/l3fwd_event_internal_port.c @@ -113,8 +113,12 @@ l3fwd_event_port_setup_internal_port(void) if (def_p_conf.enqueue_depth < event_p_conf.enqueue_depth) event_p_conf.enqueue_depth = def_p_conf.enqueue_depth; - event_p_conf.disable_implicit_release = - evt_rsrc->disable_implicit_release; + event_p_conf.event_port_cfg = 0; + if (evt_rsrc->disable_implicit_release) + event_p_conf.event_port_cfg |= + RTE_EVENT_PORT_CFG_DISABLE_IMPL_REL; + + evt_rsrc->deq_depth = def_p_conf.dequeue_depth; for (event_p_id = 0; event_p_id < evt_rsrc->evp.nb_ports; event_p_id++) { @@ -213,12 +217,36 @@ l3fwd_rx_tx_adapter_setup_internal_port(void) rte_panic("Failed to allocate memory for Rx adapter\n"); } - RTE_ETH_FOREACH_DEV(port_id) { if ((evt_rsrc->port_mask & (1 << port_id)) == 0) continue; + + if (evt_rsrc->vector_enabled) { + uint32_t cap; + + if (rte_event_eth_rx_adapter_caps_get(event_d_id, + port_id, &cap)) + rte_panic( + "Failed to get event rx adapter capability"); + + if (cap & RTE_EVENT_ETH_RX_ADAPTER_CAP_EVENT_VECTOR) { + eth_q_conf.vector_sz = evt_rsrc->vector_size; + eth_q_conf.vector_timeout_ns = + evt_rsrc->vector_tmo_ns; + eth_q_conf.vector_mp = + evt_rsrc->per_port_pool ? + evt_rsrc->vec_pool[port_id] : + evt_rsrc->vec_pool[0]; + eth_q_conf.rx_queue_flags |= + RTE_EVENT_ETH_RX_ADAPTER_QUEUE_EVENT_VECTOR; + } else { + rte_panic( + "Rx adapter doesn't support event vector"); + } + } + ret = rte_event_eth_rx_adapter_create(adapter_id, event_d_id, - &evt_rsrc->def_p_conf); + &evt_rsrc->def_p_conf); if (ret) rte_panic("Failed to create rx adapter[%d]\n", adapter_id);