summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ring.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/ring.h b/ring.h
index c8562b8..56c305d 100644
--- a/ring.h
+++ b/ring.h
@@ -58,7 +58,7 @@ static inline uint16_t tpacket_uhdr_vlan_tci(union tpacket_uhdr *hdr, bool v3)
static inline uint16_t tpacket_uhdr_vlan_proto(union tpacket_uhdr *hdr, bool v3)
{
-#ifdef HAVE_TPACKET3
+#if defined(HAVE_TPACKET3) && defined(TP_STATUS_VLAN_TPID_VALID)
if (v3)
return hdr->h3->hv1.tp_vlan_tpid;
#endif
@@ -67,8 +67,14 @@ static inline uint16_t tpacket_uhdr_vlan_proto(union tpacket_uhdr *hdr, bool v3)
static inline bool tpacket_has_vlan_info(union tpacket_uhdr *hdr)
{
+ uint32_t valid = 0;
+
+#ifdef TP_STATUS_VLAN_TPID_VALID
+ valid = TP_STATUS_VLAN_VALID;
+#endif
+
return tpacket_uhdr(*hdr, tp_status, true) &
- (TP_STATUS_VLAN_VALID | TP_STATUS_VLAN_TPID_VALID);
+ (TP_STATUS_VLAN_VALID | valid);
}
struct frame_map {