[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 */
};