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 <shaw.l...@gmail.com>
> ---
>  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
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to