14418919fSjohnjiang /* SPDX-License-Identifier: BSD-3-Clause 24418919fSjohnjiang * Copyright(c) 2018 Intel Corporation 34418919fSjohnjiang */ 44418919fSjohnjiang 54418919fSjohnjiang /* 64418919fSjohnjiang * eBPF program sample. 74418919fSjohnjiang * Accepts pointer to struct rte_mbuf as an input parameter. 84418919fSjohnjiang * cleanup mbuf's vlan_tci and all related RX flags 94418919fSjohnjiang * (PKT_RX_VLAN_PKT | PKT_RX_VLAN_STRIPPED). 104418919fSjohnjiang * Doesn't touch contents of packet data. 114418919fSjohnjiang * To compile: 12*2d9fd380Sjfb8856606 * clang -O2 -target bpf -Wno-int-to-void-pointer-cast -c t2.c 13*2d9fd380Sjfb8856606 * 14*2d9fd380Sjfb8856606 * NOTE: if DPDK is not installed system-wide, add compiler flag with path 15*2d9fd380Sjfb8856606 * to DPDK rte_mbuf.h file, e.g. "clang -I/path/to/dpdk/headers -O2 ..." 164418919fSjohnjiang */ 174418919fSjohnjiang 184418919fSjohnjiang #include <stdint.h> 194418919fSjohnjiang #include <stddef.h> 204418919fSjohnjiang #include <rte_config.h> 214418919fSjohnjiang #include <rte_mbuf_core.h> 224418919fSjohnjiang 234418919fSjohnjiang uint64_t entry(void * pkt)244418919fSjohnjiangentry(void *pkt) 254418919fSjohnjiang { 264418919fSjohnjiang struct rte_mbuf *mb; 274418919fSjohnjiang 284418919fSjohnjiang mb = pkt; 294418919fSjohnjiang mb->vlan_tci = 0; 304418919fSjohnjiang mb->ol_flags &= ~(PKT_RX_VLAN | PKT_RX_VLAN_STRIPPED); 314418919fSjohnjiang 324418919fSjohnjiang return 1; 334418919fSjohnjiang } 34