Re: [PATCH v3 06/19] net/ixgbe: reimplement syn parser
From: Medvedkin, Vladimir <hidden>
Date: 2026-09-19 16:10:48
On 9/16/2026 1:18 PM, Anatoly Burakov wrote:
Use the new flow graph API and the common parsing framework to implement flow parser for SYN. As a result of this migration, queue index validation has changed: - queue is now validated at parse time against the configured number of Rx queues (nb_rx_queues), rather than at install time against the hardware maximum (IXGBE_MAX_RX_QUEUE_NUM) - the per-function queue bound check in ixgbe_syn_filter_set() has been removed as it is no longer needed The syn filter tracking infrastructure is moved completely inside the new engine and is removed from the rest of the driver. Signed-off-by: Anatoly Burakov<redacted> ---
<snip>
-
- /* Support 2 priorities, the lowest or highest. */
- if (!attr->priority) {
- filter->hig_pri = 0;
- } else if (attr->priority == (uint32_t)~0U) {
- filter->hig_pri = 1;
- } else {
- memset(filter, 0, sizeof(struct rte_eth_syn_filter));
- rte_flow_error_set(error, EINVAL,
- RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY,
- attr, "Priority can be 0 or 0xFFFFFFFF");
- return -rte_errno;
- }
-
- return 0;
-}<snip>
+
+ /* check priority */
+ if (attr->priority != 0 && attr->priority != (uint32_t)~0U) {
+ return rte_flow_error_set(error, EINVAL,
+ RTE_FLOW_ERROR_TYPE_ATTR_PRIORITY,
+ attr, "Priority can be 0 or 0xFFFFFFFF");
+ }
+
+ /* parse requested actions */
+ ret = ci_flow_check_actions(actions, &ap_param, &parsed_actions, error);
+ if (ret)
+ return ret;
+
+ q_act = parsed_actions.actions[0]->conf;
+
+ syn_ctx->syn.queue = q_act->index;
+
+ /* Support 2 priorities. rte_flow priority 0 is highest */
+ syn_ctx->syn.hig_pri = attr->priority == 0;seems like inverting priority with the previous implementation
+ + return 0; +}
<snip> -- Regards, Vladimir