DPDK  26.03.0
examples/flow_filtering/snippets/snippet_modify_ecn.c
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright (c) 2022 NVIDIA Corporation & Affiliates
*/
#include <stdlib.h>
#include <rte_flow.h>
#include "../common.h"
#include "snippet_modify_ecn.h"
void
snippet_init_modify_ecn(void)
{
}
void
snippet_match_modify_ecn_create_actions(__rte_unused uint16_t port_id,
struct rte_flow_action *action)
{
/* Create one action that moves the packet to the selected queue. */
struct rte_flow_action_queue *queue = calloc(1, sizeof(struct rte_flow_action_queue));
if (queue == NULL)
fprintf(stderr, "Failed to allocate memory for queue\n");
struct rte_flow_action_modify_field *modify_field =
calloc(1, sizeof(struct rte_flow_action_modify_field));
if (modify_field == NULL)
fprintf(stderr, "Failed to allocate memory for modify_field\n");
queue->index = 1;
modify_field->operation = RTE_FLOW_MODIFY_SET;
modify_field->src.field = RTE_FLOW_FIELD_VALUE;
modify_field->src.value[0] = 3;
modify_field->width = 2;
action[0].conf = modify_field;
action[1].conf = queue;
}
void
snippet_match_modify_ecn_create_patterns(struct rte_flow_item *pattern)
{
}
struct rte_flow_template_table *
snippet_match_modify_ecn_create_table(__rte_unused uint16_t port_id,
{
return NULL;
}