Blob Blame History Raw
From 7a1862a392038407371d6889e49b06848efa637f Mon Sep 17 00:00:00 2001
From: Jiri Popelka <jpopelka@redhat.com>
Date: Thu, 3 Sep 2015 18:25:42 +0200
Subject: [PATCH] VLAN ID is only bottom 12-bits of TCI

The upper 4 bits contain metadata used for quality of service
management.

TCI(16b) = PCP(3b) + DEI(1b) + VID(12b)

TCI = Tag control information
PCP = Priority code point
DEI = Drop eligible indicator
VID = VLAN identifier
---
 common/lpf.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/common/lpf.c b/common/lpf.c
index 7889b6b..4c835e6 100644
--- a/common/lpf.c
+++ b/common/lpf.c
@@ -425,7 +425,8 @@ ssize_t receive_packet (interface, buf, len, from, hfrom)
 			/* Discard packets with stripped vlan id */
 
 #ifdef VLAN_TCI_PRESENT
-			if (aux->tp_vlan_tci != 0)
+			/* VLAN ID is only bottom 12-bits of TCI */
+			if (aux->tp_vlan_tci & 0x0fff)
 				return 0;
 #endif
 
-- 
2.5.0