Search code examples
c++dpdk

DPDK how to use rte_flow


I'm new to dpdk, please tell me if it's possible to bind multiple data_sender to a physical port?

At the moment I can process traffic and send it to a remote server via data_sender on one physical port (ip=192.168.2.1; listen_port = 7001;). But so i can handle 7gb/s, and it's not enough.

Is it possible to configure a network card so that it balances traffic internally and forwards traffic to one physical port, but to different sockets? (ip=192.168.2.1; listen_port1 = 7001;listen_port2 = 7002;)

  1. Is it possible to use rte_flow for these purposes?
  2. little example how to configure device?

Solution

  • You can use multiple tx_queues and cores. Try reading the rte_eth_dev_configure, rte_eth_tx_queue_setup, and rte_eal_mp_remote_launch. Also go through dpdk-l2fwd

    Yes, you can use rte_flow. You need to specify some matching pattern of your traffic and then apply the RTE_FLOW_ACTION_TYPE_SET_TP_DST action.

    You can have a look at the dpdk-flow_filtering application to learn how to use rte_flow.