[PATCH v7 1/2] lib/net: fix parsing of VLAN metadata
Alan Elder
alan.elder at microsoft.com
Mon Feb 19 10:31:25 CET 2024
Add common macros for extracting parts of VLAN tag.
Fixes: 4e9c73e96e83 ("net/netvsc: add Hyper-V network device")
Cc: sthemmin at microsoft.com
Cc: stable at dpdk.org
Signed-off-by: Alan Elder <alan.elder at microsoft.com>
---
v7:
* Split patches for lib and driver
v6:
* Line length can be 100 - un-split lines
v5:
* Move the VLAN parsing macros to rte_ether.h
v4:
* Make consistent with FreeBSD code
---
.mailmap | 1 +
lib/net/rte_ether.h | 14 ++++++++++++++
2 files changed, 15 insertions(+)
diff --git a/.mailmap b/.mailmap
index de339562f4..08fce0c472 100644
--- a/.mailmap
+++ b/.mailmap
@@ -33,6 +33,7 @@ Alain Leon <xerebz at gmail.com>
Alan Brady <alan.brady at intel.com>
Alan Carew <alan.carew at intel.com>
Alan Dewar <alan.dewar at att.com> <adewar at brocade.com>
+Alan Elder <alan.elder at microsoft.com>
Alan Liu <zaoxingliu at gmail.com>
Alan Winkowski <walan at marvell.com>
Alejandro Lucero <alejandro.lucero at netronome.com>
diff --git a/lib/net/rte_ether.h b/lib/net/rte_ether.h
index ce073ea818..75285bdd12 100644
--- a/lib/net/rte_ether.h
+++ b/lib/net/rte_ether.h
@@ -46,6 +46,20 @@ extern "C" {
#define RTE_ETHER_MIN_MTU 68 /**< Minimum MTU for IPv4 packets, see RFC 791. */
+/* VLAN header fields */
+#define RTE_VLAN_DEI_SHIFT 12
+#define RTE_VLAN_PRI_SHIFT 13
+#define RTE_VLAN_PRI_MASK 0xe000 /* Priority Code Point */
+#define RTE_VLAN_DEI_MASK 0x1000 /* Drop Eligible Indicator */
+#define RTE_VLAN_ID_MASK 0x0fff /* VLAN Identifier */
+
+#define RTE_VLAN_TCI_ID(vlan_tci) ((vlan_tci) & RTE_VLAN_ID_MASK)
+#define RTE_VLAN_TCI_PRI(vlan_tci) (((vlan_tci) & RTE_VLAN_PRI_MASK) >> RTE_VLAN_PRI_SHIFT)
+#define RTE_VLAN_TCI_DEI(vlan_tci) (((vlan_tci) & RTE_VLAN_DEI_MASK) >> RTE_VLAN_DEI_SHIFT)
+#define RTE_VLAN_TCI_MAKE(id, pri, dei) ((id) | \
+ ((pri) << RTE_VLAN_PRI_SHIFT) | \
+ ((dei) << RTE_VLAN_DEI_SHIFT))
+
/**
* Ethernet address:
* A universally administered address is uniquely assigned to a device by its
--
2.25.1
More information about the dev
mailing list