goto exit_action_not_supported;
}
}
+ if (parser->drop && parser->mark)
+ parser->mark = 0;
if (!parser->queues_n && !parser->drop) {
rte_flow_error_set(error, ENOTSUP, RTE_FLOW_ERROR_TYPE_HANDLE,
NULL, "no valid action");
* Last step. Complete missing specification to reach the RSS
* configuration.
*/
- if (parser->queues_n > 1) {
+ if (parser->drop) {
+ /*
+ * Drop queue priority needs to be adjusted to
+ * their most specific layer priority.
+ */
+ parser->drop_q.ibv_attr->priority =
+ attr->priority +
+ hash_rxq_init[parser->layer].flow_priority;
+ } else if (parser->queues_n > 1) {
priv_flow_convert_finalise(priv, parser);
- } else if (!parser->drop) {
+ } else {
/*
* Action queue have their priority overridden with
* Ethernet priority, this priority needs to be adjusted to
attributes.actions,
&error);
if (flow) {
- TAILQ_INSERT_TAIL(&priv->flows, flow, next);
DEBUG("FDIR created %p", (void *)flow);
return 0;
}