DPDK 26.07.0-rc3
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)
{
flow_attr.ingress = 1;
flow_attr.group = 1;
flow_attr.priority = 1;
}
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");
return;
}
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");
free(queue);
return;
}
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;
}
#define __rte_unused
Definition: rte_common.h:248
@ RTE_FLOW_MODIFY_SET
Definition: rte_flow.h:4124
@ RTE_FLOW_ACTION_TYPE_QUEUE
Definition: rte_flow.h:2653
@ RTE_FLOW_ACTION_TYPE_END
Definition: rte_flow.h:2597
@ RTE_FLOW_ACTION_TYPE_MODIFY_FIELD
Definition: rte_flow.h:3137
@ RTE_FLOW_ITEM_TYPE_IPV4
Definition: rte_flow.h:232
@ RTE_FLOW_ITEM_TYPE_END
Definition: rte_flow.h:162
@ RTE_FLOW_ITEM_TYPE_ETH
Definition: rte_flow.h:218
@ RTE_FLOW_FIELD_VALUE
Definition: rte_flow.h:2416
@ RTE_FLOW_FIELD_IPV4_ECN
Definition: rte_flow.h:2417
struct rte_flow_field_data dst
Definition: rte_flow.h:4141
struct rte_flow_field_data src
Definition: rte_flow.h:4142
enum rte_flow_modify_op operation
Definition: rte_flow.h:4140
const void * conf
Definition: rte_flow.h:4290
enum rte_flow_action_type type
Definition: rte_flow.h:4289
uint8_t value[16]
Definition: rte_flow.h:2527
enum rte_flow_field_id field
Definition: rte_flow.h:2450
enum rte_flow_item_type type
Definition: rte_flow.h:2128