[qca-nss-sfe] 802.1Q/802.1ad VLAN support in SFE

Change-Id: I8007484b229b0dac0aff6dc284641b94090539db
Signed-off-by: Wayne Tan <quic_wtan@quicinc.com>
diff --git a/sfe.h b/sfe.h
index 87dba90..f4b96b6 100644
--- a/sfe.h
+++ b/sfe.h
@@ -53,6 +53,14 @@
 } sfe_sync_reason_t;
 
 /*
+ * VLAN header (aka VLAN tag)
+ */
+struct sfe_vlan_hdr {
+	u16 tpid;               /* Tag Protocol Identifier */
+	u16 tci;                /* Tag Control Information */
+};
+
+/*
  * Structure used to store L2 information
  */
 struct sfe_l2_info {
@@ -61,6 +69,9 @@
 	u16 l2_hdr_size;	/* L2 header size */
 	u16 pppoe_hdr_offset;	/* PPPOE header offset */
 	u16 protocol;		/* L3 Protocol */
+	struct sfe_vlan_hdr vlan_hdr[SFE_MAX_VLAN_DEPTH];
+				/* VLAN tag(s) of ingress packet */
+	u8 vlan_hdr_cnt;        /* Number of VLAN tags in the ingress packet */
 };
 
 /*
@@ -96,7 +107,7 @@
 	u64 dest_byte_count;
 	u32 dest_new_packet_count;
 	u32 dest_new_byte_count;
-	u32 reason;		/* reason for stats sync message, i.e. destroy, flush, period sync */
+	u32 reason;                     /* reason for stats sync message, i.e. destroy, flush, period sync */
 	u64 delta_jiffies;		/* Time to be added to the current timeout to keep the connection alive */
 };