openvswitch: 802.1AD Flow handling, actions, vlan parsing, netlink attributes
Add support for 802.1ad including the ability to push and pop double tagged vlans. Add support for 802.1ad to netlink parsing and flow conversion. Uses double nested encap attributes to represent double tagged vlan. Inner TPID encoded along with ctci in nested attributes. This is based on Thomas F Herbert's original v20 patch. I made some small clean ups and bug fixes. Signed-off-by: Thomas F Herbert <thomasfherbert@gmail.com> Signed-off-by: Eric Garver <e@erig.me> Acked-by: Pravin B Shelar <pshelar@ovn.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
fe19c4f971
commit
018c1dda5f
@@ -50,6 +50,11 @@ struct ovs_tunnel_info {
|
||||
struct metadata_dst *tun_dst;
|
||||
};
|
||||
|
||||
struct vlan_head {
|
||||
__be16 tpid; /* Vlan type. Generally 802.1q or 802.1ad.*/
|
||||
__be16 tci; /* 0 if no VLAN, VLAN_TAG_PRESENT set otherwise. */
|
||||
};
|
||||
|
||||
#define OVS_SW_FLOW_KEY_METADATA_SIZE \
|
||||
(offsetof(struct sw_flow_key, recirc_id) + \
|
||||
FIELD_SIZEOF(struct sw_flow_key, recirc_id))
|
||||
@@ -69,7 +74,8 @@ struct sw_flow_key {
|
||||
struct {
|
||||
u8 src[ETH_ALEN]; /* Ethernet source address. */
|
||||
u8 dst[ETH_ALEN]; /* Ethernet destination address. */
|
||||
__be16 tci; /* 0 if no VLAN, VLAN_TAG_PRESENT set otherwise. */
|
||||
struct vlan_head vlan;
|
||||
struct vlan_head cvlan;
|
||||
__be16 type; /* Ethernet frame type. */
|
||||
} eth;
|
||||
union {
|
||||
|
Reference in New Issue
Block a user