From: Jianbo Liu <jian...@mellanox.com> Date: Fri, 6 Jul 2018 05:38:11 +0000
> Currently TC flower supports only one vlan tag, it doesn't match on both outer > and inner vlan headers for QinQ. To do this, we add support to get both outer > and inner vlan headers for flow dissector, and then TC flower do matching on > those information. > > We also plan to extend TC command to support this feature. We add new > cvlan_id/cvlan_prio/cvlan_ethtype keywords for inner vlan header. The existing > vlan_id/vlan_prio/vlan_ethtype are for outer vlan header, and vlan_ethtype > must > be 802.1q or 802.1ad. > > The examples for command and output are as the following. > # tc filter add dev ens1f1 parent ffff: protocol 802.1ad pref 33 \ > flower vlan_id 1000 vlan_ethtype 802.1q \ > cvlan_id 100 cvlan_ethtype ipv4 \ > action vlan pop \ > action vlan pop \ > action mirred egress redirect dev ens1f1_0 > > # tc filter show dev ens1f1 ingress > filter protocol 802.1ad pref 33 flower chain 0 > filter protocol 802.1ad pref 33 flower chain 0 handle 0x1 > vlan_id 1000 > vlan_ethtype 802.1Q > cvlan_id 100 > cvlan_ethtype ip > eth_type ipv4 > in_hw > ... > > v2: > fix sparse warning. Series applied, thank you.