path: root/drivers/net/ethernet/ti/cpsw_ale.h
diff options
authorGrygorii Strashko <grygorii.strashko@ti.com>2019-11-20 00:19:14 +0200
committerDavid S. Miller <davem@davemloft.net>2019-11-20 11:25:23 -0800
commit4b41d34367960e8b582cf3c51b954c07e0e3a1aa (patch)
tree6c765279bcd91fc81d28fdb3cfa8354fa0729182 /drivers/net/ethernet/ti/cpsw_ale.h
parentnet: ethernet: ti: ale: clean ale tbl on init and intf restart (diff)
net: ethernet: ti: cpsw: allow untagged traffic on host port
Now untagged vlan traffic is not support on Host P0 port. This patch adds in ALE context bitmap of VLANs for which Host P0 port bit set in Force Untagged Packet Egress bitmask in VLANs ALE entries, and adds corresponding check in VLAN incapsulation header parsing function cpsw_rx_vlan_encap(). Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/ti/cpsw_ale.h b/drivers/net/ethernet/ti/cpsw_ale.h
index 370df254eb12..93d6d56d12f4 100644
--- a/drivers/net/ethernet/ti/cpsw_ale.h
+++ b/drivers/net/ethernet/ti/cpsw_ale.h
@@ -35,6 +35,7 @@ struct cpsw_ale {
u32 port_mask_bits;
u32 port_num_bits;
u32 vlan_field_bits;
+ unsigned long *p0_untag_vid_mask;
enum cpsw_ale_control {
@@ -115,4 +116,8 @@ int cpsw_ale_control_set(struct cpsw_ale *ale, int port,
int control, int value);
void cpsw_ale_dump(struct cpsw_ale *ale, u32 *data);
+static inline int cpsw_ale_get_vlan_p0_untag(struct cpsw_ale *ale, u16 vid)
+ return test_bit(vid, ale->p0_untag_vid_mask);