DPDK 24.11.2
 
Loading...
Searching...
No Matches
examples/flow_filtering/snippets/snippet_match_gre.c
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright (c) 2022 NVIDIA Corporation & Affiliates
*/
#include <stdlib.h>
#include <rte_flow.h>
#include "snippet_match_gre.h"
static void
snippet_match_gre_create_actions(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");
/* Set the selected queue. */
queue->index = 1;
/* Set the action move packet to the selected queue. */
action[0].type = RTE_FLOW_ACTION_TYPE_QUEUE;
action[0].conf = queue;
action[1].type = RTE_FLOW_ACTION_TYPE_END;
}
static void
snippet_match_gre_create_patterns(struct rte_flow_item *pattern)
{
struct rte_flow_item_gre *gre_spec;
struct rte_flow_item_gre_opt *gre_opt_spec;
gre_spec = calloc(1, sizeof(struct rte_flow_item_gre));
if (gre_spec == NULL)
fprintf(stderr, "Failed to allocate memory for gre_spec\n");
gre_opt_spec = calloc(1, sizeof(struct rte_flow_item_gre_opt));
if (gre_opt_spec == NULL)
fprintf(stderr, "Failed to allocate memory for gre_opt_spec\n");
/* Set the Checksum GRE option. */
gre_spec->c_rsvd0_ver = RTE_BE16(0x8000);
gre_opt_spec->checksum_rsvd.checksum = RTE_BE16(0x11);
/* Set the patterns. */
pattern[2].spec = gre_spec;
pattern[3].spec = gre_opt_spec;
pattern[3].mask = gre_opt_spec;
}
@ RTE_FLOW_ACTION_TYPE_QUEUE
Definition rte_flow.h:2653
@ RTE_FLOW_ACTION_TYPE_END
Definition rte_flow.h:2597
@ RTE_FLOW_ITEM_TYPE_IPV4
Definition rte_flow.h:232
@ RTE_FLOW_ITEM_TYPE_END
Definition rte_flow.h:162
@ RTE_FLOW_ITEM_TYPE_GRE_OPTION
Definition rte_flow.h:632
@ RTE_FLOW_ITEM_TYPE_GRE
Definition rte_flow.h:302
@ RTE_FLOW_ITEM_TYPE_ETH
Definition rte_flow.h:218
rte_be16_t c_rsvd0_ver
Definition rte_flow.h:1218
const void * spec
Definition rte_flow.h:2129
const void * mask
Definition rte_flow.h:2131
enum rte_flow_item_type type
Definition rte_flow.h:2128