From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <konstantin.ananyev@intel.com>
Received: from mga14.intel.com (mga14.intel.com [192.55.52.115])
 by dpdk.org (Postfix) with ESMTP id 9DF8BC4EC
 for <dev@dpdk.org>; Fri, 23 Oct 2015 12:53:23 +0200 (CEST)
Received: from fmsmga002.fm.intel.com ([10.253.24.26])
 by fmsmga103.fm.intel.com with ESMTP; 23 Oct 2015 03:53:23 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.20,186,1444719600"; d="scan'208";a="833774824"
Received: from irsmsx154.ger.corp.intel.com ([163.33.192.96])
 by fmsmga002.fm.intel.com with ESMTP; 23 Oct 2015 03:53:21 -0700
Received: from irsmsx105.ger.corp.intel.com ([169.254.7.75]) by
 IRSMSX154.ger.corp.intel.com ([169.254.12.252]) with mapi id 14.03.0248.002;
 Fri, 23 Oct 2015 11:53:05 +0100
From: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>
To: "Chilikin, Andrey" <andrey.chilikin@intel.com>, "Lu, Wenzhuo"
 <wenzhuo.lu@intel.com>, "dev@dpdk.org" <dev@dpdk.org>
Thread-Topic: [dpdk-dev] [PATCH v4 1/7] lib/librte_ether: modify the
 structures	for fdir new modes
Thread-Index: AQHRDTkm0rizyIxzbkKqOBYnqbhLqJ540u6AgAAUXYA=
Date: Fri, 23 Oct 2015 10:53:04 +0000
Message-ID: <2601191342CEEE43887BDE71AB97725836AB45BF@irsmsx105.ger.corp.intel.com>
References: <1443161125-1035-1-git-send-email-wenzhuo.lu@intel.com>
 <1445566690-15767-1-git-send-email-wenzhuo.lu@intel.com>
 <1445566690-15767-2-git-send-email-wenzhuo.lu@intel.com>
 <AAC06825A3B29643AF5372F5E0DDF05364334F91@IRSMSX106.ger.corp.intel.com>
In-Reply-To: <AAC06825A3B29643AF5372F5E0DDF05364334F91@IRSMSX106.ger.corp.intel.com>
Accept-Language: en-IE, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [163.33.239.181]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [dpdk-dev] [PATCH v4 1/7] lib/librte_ether: modify the
 structures	for fdir new modes
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Fri, 23 Oct 2015 10:53:24 -0000



> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Chilikin, Andrey
> Sent: Friday, October 23, 2015 11:39 AM
> To: Lu, Wenzhuo; dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v4 1/7] lib/librte_ether: modify the struc=
tures for fdir new modes
>=20
> I would suggest rearranging members of rte_eth_fdir_tunnel_type to set RT=
E_FDIR_TUNNEL_TYPE_UNKNOWN=3D0 so any global/static
> variables or variables after memset(0) would have unknown type.

Yes, that's good point.
Konstantin

>=20
> Regards,
> Andrey
>=20
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Wenzhuo Lu
> > Sent: Friday, October 23, 2015 3:18 AM
> > To: dev@dpdk.org
> > Subject: [dpdk-dev] [PATCH v4 1/7] lib/librte_ether: modify the structu=
res for
> > fdir new modes
> >
> > Define the new modes and modify the filter and mask structures for the =
mac
> > vlan and tunnel modes.
> >
> > Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
> > ---
> >  lib/librte_ether/rte_eth_ctrl.h | 51 +++++++++++++++++++++++++++++++++=
----
> > ----
> >  1 file changed, 42 insertions(+), 9 deletions(-)
> >
> > diff --git a/lib/librte_ether/rte_eth_ctrl.h b/lib/librte_ether/rte_eth=
_ctrl.h
> > index 26b7b33..cf32814 100644
> > --- a/lib/librte_ether/rte_eth_ctrl.h
> > +++ b/lib/librte_ether/rte_eth_ctrl.h
> > @@ -377,18 +377,46 @@ struct rte_eth_sctpv6_flow {  };
> >
> >  /**
> > + * A structure used to define the input for MAC VLAN flow  */ struct
> > +rte_eth_mac_vlan_flow {
> > +	struct ether_addr mac_addr;  /**< Mac address to match. */ };
> > +
> > +/**
> > + * Tunnel type for flow director.
> > + */
> > +enum rte_eth_fdir_tunnel_type {
> > +	RTE_FDIR_TUNNEL_TYPE_NVGRE =3D 0,
> > +	RTE_FDIR_TUNNEL_TYPE_VXLAN,
> > +	RTE_FDIR_TUNNEL_TYPE_UNKNOWN,
> > +};
> > +
> > +/**
> > + * A structure used to define the input for tunnel flow, now it's VxLA=
N
> > +or
> > + * NVGRE
> > + */
> > +struct rte_eth_tunnel_flow {
> > +	enum rte_eth_fdir_tunnel_type tunnel_type; /**< Tunnel type to
> > match. */
> > +	uint32_t tunnel_id;                        /**< Tunnel ID to match. T=
NI, VNI...
> > */
> > +	struct ether_addr mac_addr;                /**< Mac address to match.=
 */
> > +};
> > +
> > +/**
> >   * An union contains the inputs for all types of flow
> >   */
> >  union rte_eth_fdir_flow {
> > -	struct rte_eth_l2_flow     l2_flow;
> > -	struct rte_eth_udpv4_flow  udp4_flow;
> > -	struct rte_eth_tcpv4_flow  tcp4_flow;
> > -	struct rte_eth_sctpv4_flow sctp4_flow;
> > -	struct rte_eth_ipv4_flow   ip4_flow;
> > -	struct rte_eth_udpv6_flow  udp6_flow;
> > -	struct rte_eth_tcpv6_flow  tcp6_flow;
> > -	struct rte_eth_sctpv6_flow sctp6_flow;
> > -	struct rte_eth_ipv6_flow   ipv6_flow;
> > +	struct rte_eth_l2_flow         l2_flow;
> > +	struct rte_eth_udpv4_flow      udp4_flow;
> > +	struct rte_eth_tcpv4_flow      tcp4_flow;
> > +	struct rte_eth_sctpv4_flow     sctp4_flow;
> > +	struct rte_eth_ipv4_flow       ip4_flow;
> > +	struct rte_eth_udpv6_flow      udp6_flow;
> > +	struct rte_eth_tcpv6_flow      tcp6_flow;
> > +	struct rte_eth_sctpv6_flow     sctp6_flow;
> > +	struct rte_eth_ipv6_flow       ipv6_flow;
> > +	struct rte_eth_mac_vlan_flow   mac_vlan_flow;
> > +	struct rte_eth_tunnel_flow     tunnel_flow;
> >  };
> >
> >  /**
> > @@ -465,6 +493,9 @@ struct rte_eth_fdir_masks {
> >  	struct rte_eth_ipv6_flow   ipv6_mask;
> >  	uint16_t src_port_mask;
> >  	uint16_t dst_port_mask;
> > +	uint8_t mac_addr_byte_mask;  /** Per byte MAC address mask */
> > +	uint32_t tunnel_id_mask;  /** tunnel ID mask */
> > +	uint8_t tunnel_type_mask;
> >  };
> >
> >  /**
> > @@ -522,6 +553,8 @@ enum rte_fdir_mode {
> >  	RTE_FDIR_MODE_NONE      =3D 0, /**< Disable FDIR support. */
> >  	RTE_FDIR_MODE_SIGNATURE,     /**< Enable FDIR signature filter
> > mode. */
> >  	RTE_FDIR_MODE_PERFECT,       /**< Enable FDIR perfect filter mode.
> > */
> > +	RTE_FDIR_MODE_PERFECT_MAC_VLAN, /**< Enable FDIR filter mode
> > - MAC VLAN. */
> > +	RTE_FDIR_MODE_PERFECT_TUNNEL,   /**< Enable FDIR filter mode -
> > tunnel. */
> >  };
> >
> >  #define UINT32_BIT (CHAR_BIT * sizeof(uint32_t))
> > --
> > 1.9.3