dpdk: preserve kernel fallback for dynamic rx flows#204
Conversation
|
| Filename | Overview |
|---|---|
| src/engines/dpdk/daqiri_dpdk_engine.cpp | Adds ensure_dynamic_flow_isolation_fallback_locked to install the send-to-kernel fallback and ETH jump rule before the first dynamic RX flow is programmed; deduplicates via send_to_kernel_fallback_installed_ and clears tracking on destroy_programmed_flows. Logic is correct: conflict detection, ordering, deduplication, and the clear-on-destroy symmetry with eth_jump_installed_ all hold. |
| src/engines/dpdk/daqiri_dpdk_engine.h | Adds send_to_kernel_fallback_installed_ member set and declares ensure_dynamic_flow_isolation_fallback_locked; straightforward additions that mirror the existing eth_jump_installed_ pattern. |
| docs/api-reference/configuration.md | Updates the flow_isolation description to reflect that the first dynamic RX flow now installs the send-to-kernel fallback, and adds a note that mixing standard and flex-item flow classes is not supported within a dynamic batch. Change is accurate and consistent with the implementation. |
Reviews (3): Last reviewed commit: "#205 - Support dynamic flex-item isolati..." | Re-trigger Greptile
Install the flow-isolation send-to-kernel fallback before programming
dynamic RX flows so control-plane traffic (ARP, SSH, application control
planes) keeps reaching the Linux kernel. Previously the fallback was
installed only for static startup flows, so a queues-only config with
flow_isolation: true black-holed all unmatched/kernel traffic once the
first dynamic flow was added.
- ensure_dynamic_flow_isolation_fallback_locked() installs the ETH jump
rule and send-to-kernel fallback under flow_lock_ in add_rx_flow_async
and add_rx_flows_async.
- Track fallback installation per {port, group} so repeated dynamic flow
updates do not duplicate the rule.
- Clear fallback tracking when programmed flows are destroyed.
- Document the dynamic-flow fallback behavior in configuration.md.
Signed-off-by: Denis Leshchev <dleshchev@nvidia.com>
995a7c7 to
cc4109e
Compare
Signed-off-by: Denis Leshchev <dleshchev@nvidia.com>
Summary
{port, group}so repeated dynamic flow updates do not duplicate the ruleFixes #205.
Validation
git diff --check origin/main...HEADIMAGE_TAG=daqiri:dynamic-rx-kernel-fallback BASE_TARGET=dpdk DAQIRI_ENGINE="dpdk ibverbs" scripts/build-container.sh