examples/ipsec-secgw: add event config display
[dpdk.git] / examples / l3fwd / l3fwd_event.c
index b58f9b7..43c47ea 100644 (file)
@@ -211,7 +211,20 @@ void
 l3fwd_event_resource_setup(struct rte_eth_conf *port_conf)
 {
        struct l3fwd_event_resources *evt_rsrc = l3fwd_get_eventdev_rsrc();
+       const event_loop_cb lpm_event_loop[2][2] = {
+               [0][0] = lpm_event_main_loop_tx_d,
+               [0][1] = lpm_event_main_loop_tx_d_burst,
+               [1][0] = lpm_event_main_loop_tx_q,
+               [1][1] = lpm_event_main_loop_tx_q_burst,
+       };
+       const event_loop_cb em_event_loop[2][2] = {
+               [0][0] = em_event_main_loop_tx_d,
+               [0][1] = em_event_main_loop_tx_d_burst,
+               [1][0] = em_event_main_loop_tx_q,
+               [1][1] = em_event_main_loop_tx_q_burst,
+       };
        uint32_t event_queue_cfg;
+       int ret;
 
        if (!evt_rsrc->enabled)
                return;
@@ -233,4 +246,18 @@ l3fwd_event_resource_setup(struct rte_eth_conf *port_conf)
 
        /* Event port configuration */
        evt_rsrc->ops.event_port_setup();
+
+       /* Rx/Tx adapters configuration */
+       evt_rsrc->ops.adapter_setup();
+
+       /* Start event device */
+       ret = rte_event_dev_start(evt_rsrc->event_d_id);
+       if (ret < 0)
+               rte_exit(EXIT_FAILURE, "Error in starting eventdev");
+
+       evt_rsrc->ops.lpm_event_loop = lpm_event_loop[evt_rsrc->tx_mode_q]
+                                                      [evt_rsrc->has_burst];
+
+       evt_rsrc->ops.em_event_loop = em_event_loop[evt_rsrc->tx_mode_q]
+                                                      [evt_rsrc->has_burst];
 }