ConnectX-6 E-switch control API


I’m trying to use the E-switch for traffic steering.
I used rte_flow() in DPDK with dv_flow_en = 1 option, but it seems to be an indirect way to control e-switch.
Is there any way to control e-switch APIs?

For example, I want to steer some incoming packets to outside without DMA.
I know hairpin can achieve this, but it seems not on e-switch level.
(Table 40.3 Minimal SW/HW versions for rte_flow offloads in shows that the hairpin is available in NIC level, but not in e-switch level.)

Also, I think using hairpin is too heavy for simple packet switching.

Is there any other method than hairpin for L2 packet switching?

Thank you.

Not 100% sure your requirement.

But e-switch offload rule can easy use by rte_flow,

struct rte_flow *
rte_flow_create(uint16_t port_id,
const struct rte_flow_attr *attr,
const struct rte_flow_item pattern,
const struct rte_flow_action *actions,
struct rte_flow_error *error);


This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.