Hi, Xiao.
You did a good job.
Unfortunately, this patch breaks dpdk build because of redeclaration of
structure with same name:
include/openvswitch/packets.h:
----------------------------------
struct vlan_hdr {
ovs_be16 tpid; /* ETH_TYPE_VLAN_DOT1Q or ETH_TYPE_DOT1AD */
ovs_be16 tci;
};
DPDK:lib/librte_ether/rte_ether.h :
----------------------------------
/**
* Ethernet VLAN Header.
* Contains the 16-bit VLAN Tag Control Identifier and the Ethernet type
* of the encapsulated frame.
*/
struct vlan_hdr {
uint16_t vlan_tci; /**< Priority (3) + CFI (1) + Identifier Code (12) */
uint16_t eth_proto;/**< Ethernet type of encapsulated frame. */
} __attribute__((__packed__));
Actually, this structures are logically equal. This collision should be fixed
somehow.
Best regards, Ilya Maximets.
On 03.07.2016 03:47, Xiao Liang wrote:
> Flow key handleing changes:
> - Add VLAN header array in struct flow, to record multiple 802.1q VLAN
> headers.
> - Add dpif multi-VLAN capability probing. If datapath supports multi-VLAN,
> increase the maximum depth of nested OVS_KEY_ATTR_ENCAP.
>
> Refacter VLAN handling in dpif-xlate:
> - Introduce 'xvlan' to track VLAN stack during flow processing.
> - Input and output VLAN translation according to the xbundle type.
>
> Push VLAN action support:
> - Allow ethertype 0x88a8 in VLAN headers and push_vlan action.
> - Support push_vlan on dot1q packets.
>
> Add new port VLAN mode "dot1q-tunnel":
> - Example:
> ovs-vsctl set Port p1 vlan_mode=dot1q-tunnel tag=100
> Pushes another VLAN 100 header on packets (tagged and untagged) on ingress,
> and pops it on egress.
> - Customer VLAN check:
> ovs-vsctl set Port p1 vlan_mode=dot1q-tunnel tag=100 cvlans=10,20
> Only customer VLAN of 10 and 20 are allowed.
>
> Signed-off-by: Xiao Liang <[email protected]>
> ---
> include/openvswitch/flow.h | 13 +-
> include/openvswitch/ofp-actions.h | 10 +-
> include/openvswitch/packets.h | 5 +
> lib/dpctl.c | 29 ++-
> lib/dpif-netdev.c | 7 +-
> lib/flow.c | 109 ++++++----
> lib/flow.h | 6 +-
> lib/match.c | 47 ++--
> lib/meta-flow.c | 22 +-
> lib/nx-match.c | 14 +-
> lib/odp-util.c | 227 ++++++++++++--------
> lib/odp-util.h | 4 +-
> lib/ofp-actions.c | 61 +++---
> lib/ofp-util.c | 56 ++---
> lib/tnl-ports.c | 2 +-
> ofproto/bond.c | 2 +-
> ofproto/ofproto-dpif-ipfix.c | 6 +-
> ofproto/ofproto-dpif-rid.h | 2 +-
> ofproto/ofproto-dpif-sflow.c | 4 +-
> ofproto/ofproto-dpif-xlate.c | 436
> ++++++++++++++++++++++++++------------
> ofproto/ofproto-dpif-xlate.h | 6 +-
> ofproto/ofproto-dpif.c | 74 ++++++-
> ofproto/ofproto.h | 8 +-
> ovn/controller/pinctrl.c | 5 +-
> tests/test-classifier.c | 15 +-
> utilities/ovs-ofctl.c | 29 +--
> vswitchd/bridge.c | 27 ++-
> vswitchd/vswitch.ovsschema | 16 +-
> vswitchd/vswitch.xml | 31 +++
> 29 files changed, 866 insertions(+), 407 deletions(-)
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev