DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Zhang, Helin" <helin.zhang@intel.com>
To: 'Olivier MATZ' <olivier.matz@6wind.com>, "'dev@dpdk.org'" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH 01/17] mbuf: add definitions of unified packet types
Date: Tue, 3 Feb 2015 06:37:28 +0000	[thread overview]
Message-ID: <F35DEAC7BCE34641BA9FAC6BCA4A12E70A803EC6@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <F35DEAC7BCE34641BA9FAC6BCA4A12E70A803C7C@SHSMSX104.ccr.corp.intel.com>



> -----Original Message-----
> From: Zhang, Helin
> Sent: Tuesday, February 3, 2015 11:19 AM
> To: Olivier MATZ; dev@dpdk.org
> Cc: Stephen Hemminger
> Subject: RE: [dpdk-dev] [PATCH 01/17] mbuf: add definitions of unified packet
> types
> 
> 
> 
> > -----Original Message-----
> > From: Olivier MATZ [mailto:olivier.matz@6wind.com]
> > Sent: Monday, February 2, 2015 7:18 PM
> > To: Zhang, Helin; dev@dpdk.org
> > Cc: Stephen Hemminger
> > Subject: Re: [dpdk-dev] [PATCH 01/17] mbuf: add definitions of unified
> > packet types
> >
> > Hi Helin,
> >
> > On 02/02/2015 02:43 AM, Zhang, Helin wrote:
> > >>> +/*
> > >>> + * Sixteen bits are divided into several fields to mark packet types.
> > >>> +Note that
> > >>> + * each field is indexical.
> > >>> + * - Bit 3:0 is for tunnel types.
> > >>> + * - Bit 7:4 is for L3 or outer L3 (for tunneling case) types.
> > >>> + * - Bit 10:8 is for L4 types. It can also be used for inner L4 types for
> > >>> + *   tunneling packets.
> > >>> + * - Bit 13:11 is for inner L3 types.
> > >>> + * - Bit 15:14 is reserved.
> > >>
> > >> Is there a reason why using this specific order?
> > > Yes, to support ixgbe Vector PMD, outer L3 types and L4 types need
> > > to be contiguous and in this order.
> >
> > When you say "need to be", do you mean it's impossible to do in
> > another manner or just that it would be slower?
> It was designed to be like this, otherwise, performance drop must be expected.
> 
> >
> > >> Also, there are 4 bits for outer L3 types and 3 bits for inner L3
> > >> types, but both of them have 6 different supported types. Is it intentional?
> > > Yes, it is to support ixgbe Vector PMD. Contiguous 7 bits are
> > > needed, though
> > 1 bit wasted.
> >
> > To be honnest, I'm always a surprised that in dpdk we prefer having a
> > strange API just because it's faster or easier to do on one specific
> > driver (usually i40e or ixgbe). Unfortunately, trying to optimize the
> > API for one driver may result in making the rest of the code
> > (application and other drivers) slower and more complex.
> Based on my understanding, 'faster' is most of DPDK customers wanted.
> Otherwise, they don't need DPDK. Different hardware must have different
> capabilities, I am trying to unify at least packet types to get things easier.
> 
> >
> > In your proposition, there is no inner l4_type. I consider it's as
> > useful as the other fields. From what I see, there are only 2 bits
> > left. What do you think about changing the packet type to 64 bits now?
> For tunneling cases, L4_type is for inner L4 type, outer L4 type is not needed, as
> it can be in tunnel type.
> I can expect 64 bits are needed in the future. But for now, I don't see any
> strong demand on that for currently supported hardware.
> In addition, there is no free bit in the first cache line of mbuf header, mbuf
> changes are needed to expand it. I'd prefer to do it later to make things easier.
Sorry, I misremember the usage of the first cache line of mbuf. It still has some
free space. Based on this, enlarging (to 32 or 64 bits) the packet type might be good.

> 
> >
> > From an API point of view, I think it would be good to have the same
> > structure for inner and outer types. For instance (this is just an example):
> >
> > union layer_pkt_type {
> > 	struct {
> > 		uint16_t l2_type:4;
> > 		uint16_t l3_type:4;
> > 		uint16_t l4_type:4;
> > 		uint16_t tun_type:4;
> > 	};
> > 	uint16_t u16;
> > };
> >
> > struct pkt_type {
> > 	union layer_pkt_type outer;
> > 	union layer_pkt_type inner;
> > };
> >
> > When your application decapsulates tunnels, you can just do outer =
> > inner and enter into the same code.
> Expanding packet_type is not easy, as there is no free bits in the first cache
> line.
> Is there any tunnel type in inner packet? Is it a waste?
> Is L2 type really needed? I don't know.
If it is now not short of space in mbuf, the definition as yours might be good.
But tun_type is not required for inner packet, I'd prefer to define it as needed
with taking into account the Vector PMD support. It seems 32 bits might be enough,
like below,
struct pkt_type {
	uint32_t l2_type:4;
	uint32_t l3_type:4;
	uint32_t l4_type:4;
	uint32_t tun_type:4;
	uint32_t inner_l2_type:4;
	uint32_t inner_l3_type:4;
	uint32_t inner_l4_type:4;
}

Regards,
Helin

> 
> >
> >
> > >>> + * RTE_PTYPE_L3_IPV6, RTE_PTYPE_L3_IPV6_EXT, RTE_PTYPE_L4_TCP,
> > >>> +RTE_PTYPE_L4_UDP
> > >>> + * and RTE_PTYPE_L4_SCTP should be kept as below in a contiguous
> > >>> +7
> > bits.
> > >>> + *
> > >>> + * Note that L3 types values are selected for checking IPV4/IPV6
> > >>> +header from
> > >>> + * performance point of view. Reading annotations of
> > >>> +RTE_ETH_IS_IPV4_HDR and
> > >>> + * RTE_ETH_IS_IPV6_HDR is needed for any future changes of L3
> > >>> +type
> > >> values.
> > >>> + */
> > >>> +#define RTE_PTYPE_UNKNOWN                   0x0000 /*
> > >> 0b0000000000000000 */
> > >>> +/* bit 3:0 for tunnel types */
> > >>> +#define RTE_PTYPE_TUNNEL_IP                 0x0001 /*
> > >> 0b0000000000000001 */
> > >>> +#define RTE_PTYPE_TUNNEL_TCP                0x0002 /*
> > >> 0b0000000000000010 */
> > >>> +#define RTE_PTYPE_TUNNEL_UDP                0x0003 /*
> > >> 0b0000000000000011 */
> > >>> +#define RTE_PTYPE_TUNNEL_GRE                0x0004 /*
> > >> 0b0000000000000100 */
> > >>> +#define RTE_PTYPE_TUNNEL_VXLAN              0x0005 /*
> > >> 0b0000000000000101 */
> > >>> +#define RTE_PTYPE_TUNNEL_NVGRE              0x0006 /*
> > >> 0b0000000000000110 */
> > >>> +#define RTE_PTYPE_TUNNEL_GENEVE             0x0007 /*
> > >> 0b0000000000000111 */
> > >>> +#define RTE_PTYPE_TUNNEL_GRENAT             0x0008 /*
> > >> 0b0000000000001000 */
> > >>> +#define RTE_PTYPE_TUNNEL_GRENAT_MAC         0x0009 /*
> > >> 0b0000000000001001 */
> > >>> +#define RTE_PTYPE_TUNNEL_GRENAT_MACVLAN     0x000a /*
> > >> 0b0000000000001010 */
> > >>> +#define RTE_PTYPE_TUNNEL_MASK               0x000f /*
> > >> 0b0000000000001111 */
> > >>> +/* bit 7:4 for L3 types */
> > >>> +#define RTE_PTYPE_L3_IPV4                   0x0010 /*
> > >> 0b0000000000010000 */
> > >>> +#define RTE_PTYPE_L3_IPV4_EXT               0x0030 /*
> > >> 0b0000000000110000 */
> > >>> +#define RTE_PTYPE_L3_IPV6                   0x0040 /*
> > >> 0b0000000001000000 */
> > >>> +#define RTE_PTYPE_L3_IPV4_EXT_UNKNOWN       0x0090 /*
> > >> 0b0000000010010000 */
> > >>> +#define RTE_PTYPE_L3_IPV6_EXT               0x00c0 /*
> > >> 0b0000000011000000 */
> > >>> +#define RTE_PTYPE_L3_IPV6_EXT_UNKNOWN       0x00e0 /*
> > >> 0b0000000011100000 */
> > >>> +#define RTE_PTYPE_L3_MASK                   0x00f0 /*
> > >> 0b0000000011110000 */
> > >>
> > >> can we expect that when RTE_PTYPE_L3_IPV4, RTE_PTYPE_L3_IPV4_EXT
> or
> > >> RTE_PTYPE_L3_IPV4_EXT_UNKNOWN is set, the hardware also verified
> > >> the
> > >> L3 checksum?
> > > RTE_PTYPE_L3_IPV4 means there is NONE-EXT. Each time only one of
> > > above 3
> > can be set.
> > > These bits don't indicate any checksum, checksum should be indicated
> > > by
> > other flags.
> > > They are just for packet types hardware can recognized.
> >
> > I think these 2 information are linked:
> >
> > - if the hardware cannot recognize packet, it cannot calculate the
> >   checksum because it does not know the packet type
> > - if the hardware can recognize the packet, it can verify that the
> >   checksum is good or wrong
> We cannot know how hardware works, we care about what hardware can
> report.
> 
> >
> > Today, we have:
> >
> > - PKT_RX_IPV4_HDR and PKT_RX_IPV4_HDR_EXT to tell if the packet is
> >   seen as IPv4 by the hw.
> >
> > - We can suppose that:
> >
> >   - PKT_RX_IPV4_HDR(_EXT)=0 -> no hw checksum information
> >   - PKT_RX_IPV4_HDR(_EXT)=1 and PKT_RX_IP_CKSUM_BAD=0 ->
> checksum
> >     is correct
> >   - PKT_RX_IPV4_HDR(_EXT)=1 and PKT_RX_IP_CKSUM_BAD=1 ->
> checksum
> >     is not correct
> >
> > - We cannot do the same with L4 because we have no L4 type info,
> >   but it would be good to be able to do the same.
> >
> > With your patch, you are removing the PKT_RX_IPV4_HDR and
> > PKT_RX_IPV4_HDR_EXT flags, but I think the above assumption about
> > checksum should be kept. As you are adding a L4 type info, the same
> > method could be applied to L4 checksums.
> >
> > I think this would definitely solve the problem described by Stephen.
> I think packet type and checksum are different things. They are reported by
> different fields.
> PKT_RX_IPV4_HDR and PKT_RX_IPV4_HDR_EXT mean packet type only,
> nothing about checksum. Checksum GOOD/BAD can be reported by other flags
> in ol_flags.
> 
> >
> >
> > >> My understanding is:
> > >>
> > >> - if packet_type is IPv4* and PKT_RX_IP_CKSUM_BAD is 0
> > >>    -> checksum was checked by hw and is good
> > >> - if packet_type is IPv4* and PKT_RX_IP_CKSUM_BAD is 1
> > >>    -> checksum was checked by hw and is bad
> > >> - if packet_type is not IPv4*
> > >>    -> checksum was not checked by hw
> > >>
> > >> I think it would solve the problem asked by Stephen
> > >> http://dpdk.org/ml/archives/dev/2015-January/011550.html
> > >>
> > >>> +/* bit 10:8 for L4 types */
> > >>> +#define RTE_PTYPE_L4_TCP                    0x0100 /*
> > >> 0b0000000100000000 */
> > >>> +#define RTE_PTYPE_L4_UDP                    0x0200 /*
> > >> 0b0000001000000000 */
> > >>> +#define RTE_PTYPE_L4_FRAG                   0x0300 /*
> > >> 0b0000001100000000 */
> > >>> +#define RTE_PTYPE_L4_SCTP                   0x0400 /*
> > >> 0b0000010000000000 */
> > >>> +#define RTE_PTYPE_L4_ICMP                   0x0500 /*
> > >> 0b0000010100000000 */
> > >>> +#define RTE_PTYPE_L4_NONFRAG                0x0600 /*
> > >> 0b0000011000000000 */
> > >>> +#define RTE_PTYPE_L4_MASK                   0x0700 /*
> > >> 0b0000011100000000 */
> > >>
> > >> Same question for L4.
> > >>
> > >> Note: it would means that if a hardware is able to recognize a TCP
> > >> packet but not to verify the checksum, it has to set RTE_PTYPE_L4
> > >> to
> > unknown.
> > >>
> > >>> +/* bit 13:11 for inner L3 types */
> > >>> +#define RTE_PTYPE_INNER_L3_IPV4             0x0800 /*
> > >> 0b0000100000000000 */
> > >>> +#define RTE_PTYPE_INNER_L3_IPV4_EXT         0x1000 /*
> > >> 0b0001000000000000 */
> > >>> +#define RTE_PTYPE_INNER_L3_IPV6             0x1800 /*
> > >> 0b0001100000000000 */
> > >>> +#define RTE_PTYPE_INNER_L3_IPV6_EXT         0x2000 /*
> > >> 0b0010000000000000 */
> > >>> +#define RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN 0x2800 /*
> > >>> +0b0010100000000000 */ #define
> > >> RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN 0x3000 /*
> > 0b0011000000000000 */
> > > We cannot define the hardware behaviors, it just reports the
> > > hardware recognized packet information directly to the mbuf.
> > > Based on my experiment on i40e hardware, if a IPV4 packet with wrong
> > > checksum, by default, the PMD driver cannot see the packet at all.
> > > So we don't need to care about it too much!
> >
> > I agree that the hardware reports some info that can be different
> > depending on the hw. But the role of the driver is to convert these
> > info into a common API with a well-defined behavior.
> Yes, driver should report the received packet information to a well-defined
> behavior, but not the same behavior, even for the same packet.
> Capability can be queried for each port, and then the application can know the
> port capability well, and know what the hardware can report, and what the
> hardware cannot report.
> Driver should enable the hardware with its advanced capabilities as most as
> possible.
> 
> >
> > Regards,
> > Olivier

  reply	other threads:[~2015-02-03  6:38 UTC|newest]

Thread overview: 257+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1421637666-16872-1-git-send-email-helin.zhang@intel.com>
2015-01-29  3:15 ` [dpdk-dev] [PATCH 00/17] unified packet type Helin Zhang
2015-01-29  3:15   ` [dpdk-dev] [PATCH 01/17] mbuf: add definitions of unified packet types Helin Zhang
2015-01-30 13:56     ` Olivier MATZ
2015-02-02  1:43       ` Zhang, Helin
     [not found]         ` <54CF5CF8.2090605@6wind.com>
2015-02-03  3:18           ` Zhang, Helin
2015-02-03  6:37             ` Zhang, Helin [this message]
2015-02-03  9:12               ` Olivier MATZ
2015-01-29  3:15   ` [dpdk-dev] [PATCH 02/17] e1000: support of unified packet type Helin Zhang
2015-01-29  3:15   ` [dpdk-dev] [PATCH 03/17] ixgbe: " Helin Zhang
2015-01-29  3:15   ` [dpdk-dev] [PATCH 04/17] " Helin Zhang
2015-01-29 23:30     ` Bruce Richardson
2015-01-29 23:52       ` Liang, Cunming
2015-01-30  3:39         ` Bruce Richardson
2015-01-30  6:09       ` Zhang, Helin
2015-01-29  3:15   ` [dpdk-dev] [PATCH 05/17] i40e: " Helin Zhang
2015-01-29  3:15   ` [dpdk-dev] [PATCH 06/17] bond: " Helin Zhang
2015-02-11 15:01     ` Declan Doherty
2015-02-13  0:36       ` Zhang, Helin
2015-01-29  3:15   ` [dpdk-dev] [PATCH 07/17] enic: " Helin Zhang
2015-01-29  3:15   ` [dpdk-dev] [PATCH 08/17] vmxnet3: " Helin Zhang
2015-01-29  3:15   ` [dpdk-dev] [PATCH 09/17] app/test-pipeline: " Helin Zhang
2015-01-29  3:15   ` [dpdk-dev] [PATCH 10/17] app/test-pmd: " Helin Zhang
2015-01-29  3:15   ` [dpdk-dev] [PATCH 11/17] app/test: " Helin Zhang
2015-01-29  3:16   ` [dpdk-dev] [PATCH 12/17] examples/ip_fragmentation: " Helin Zhang
2015-01-29  3:16   ` [dpdk-dev] [PATCH 13/17] examples/ip_reassembly: " Helin Zhang
2015-01-29  3:16   ` [dpdk-dev] [PATCH 14/17] examples/l3fwd-acl: " Helin Zhang
2015-01-29  3:16   ` [dpdk-dev] [PATCH 15/17] examples/l3fwd-power: " Helin Zhang
2015-01-29  3:16   ` [dpdk-dev] [PATCH 16/17] examples/l3fwd: " Helin Zhang
2015-01-29  3:16   ` [dpdk-dev] [PATCH 17/17] mbuf: remove old packet type bit masks for ol_flags Helin Zhang
2015-01-30 13:37     ` Olivier MATZ
2015-02-02  1:53       ` Zhang, Helin
2015-01-30 13:31   ` [dpdk-dev] [PATCH 00/17] unified packet type Olivier MATZ
2015-02-02  2:44     ` Zhang, Helin
     [not found]       ` <54CF617B.5010009@6wind.com>
     [not found]         ` <2601191342CEEE43887BDE71AB977258213E28EC@irsmsx105.ger.corp.intel.com>
2015-02-03  3:25           ` Zhang, Helin
2015-02-03  8:55           ` Olivier MATZ
2015-02-09  6:40   ` [dpdk-dev] [PATCH v2 00/15] " Helin Zhang
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 01/15] mbuf: add definitions of unified packet types Helin Zhang
2015-02-09 10:27       ` Bruce Richardson
2015-02-10  0:53         ` Zhang, Helin
2015-02-10 10:12           ` Bruce Richardson
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 02/15] e1000: support of unified packet type Helin Zhang
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 03/15] ixgbe: " Helin Zhang
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 04/15] ixgbe: support of unified packet type for vector Helin Zhang
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 05/15] i40e: support of unified packet type Helin Zhang
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 06/15] enic: " Helin Zhang
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 07/15] vmxnet3: " Helin Zhang
2015-02-11  1:46       ` Yong Wang
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 08/15] app/test-pipeline: " Helin Zhang
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 09/15] app/test: " Helin Zhang
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 10/15] examples/ip_fragmentation: " Helin Zhang
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 11/15] examples/ip_reassembly: " Helin Zhang
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 12/15] examples/l3fwd-acl: " Helin Zhang
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 13/15] examples/l3fwd-power: " Helin Zhang
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 14/15] examples/l3fwd: " Helin Zhang
2015-02-16 17:04       ` Ananyev, Konstantin
2015-02-17  2:57         ` Zhang, Helin
2015-02-09  6:40     ` [dpdk-dev] [PATCH v2 15/15] mbuf: remove old packet type bit masks Helin Zhang
2015-02-17  6:59   ` [dpdk-dev] [PATCH v3 00/16] unified packet type Helin Zhang
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 01/16] mbuf: redefinition of packet_type in rte_mbuf Helin Zhang
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 02/16] ixgbe: support of unified packet type for vector Helin Zhang
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 03/16] mbuf: add definitions of unified packet types Helin Zhang
2015-02-17  9:01       ` Olivier MATZ
2015-02-20 14:26         ` Zhang, Helin
2015-02-24  9:09           ` Olivier MATZ
2015-02-24 13:38             ` Zhang, Helin
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 04/16] e1000: support of unified packet type Helin Zhang
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 05/16] ixgbe: " Helin Zhang
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 06/16] i40e: " Helin Zhang
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 07/16] enic: " Helin Zhang
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 08/16] vmxnet3: " Helin Zhang
2015-02-27 11:25       ` Thomas Monjalon
2015-02-27 12:26         ` Zhang, Helin
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 09/16] app/test-pipeline: " Helin Zhang
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 10/16] app/testpmd: " Helin Zhang
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 11/16] examples/ip_fragmentation: " Helin Zhang
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 12/16] examples/ip_reassembly: " Helin Zhang
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 13/16] examples/l3fwd-acl: " Helin Zhang
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 14/16] examples/l3fwd-power: " Helin Zhang
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 15/16] examples/l3fwd: " Helin Zhang
2015-02-17  6:59     ` [dpdk-dev] [PATCH v3 16/16] mbuf: remove old packet type bit masks Helin Zhang
2015-02-17  7:03     ` [dpdk-dev] [PATCH v3 00/16] unified packet type Liang, Cunming
2015-02-17  9:46     ` Ananyev, Konstantin
2015-02-27 13:11     ` [dpdk-dev] [PATCH v4 00/18] " Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 01/18] mbuf: redefinition of packet_type in rte_mbuf Helin Zhang
2015-03-02 11:47         ` Chilikin, Andrey
2015-03-04  8:34           ` Zhang, Helin
2015-03-04 10:58             ` Chilikin, Andrey
2015-03-05  0:55               ` Zhang, Helin
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 02/18] ixgbe: support of unified packet type for vector Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 03/18] mbuf: add definitions of unified packet types Helin Zhang
2015-02-27 15:02         ` Olivier MATZ
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 04/18] e1000: support of unified packet type Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 05/18] ixgbe: " Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 06/18] i40e: " Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 07/18] enic: " Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 08/18] vmxnet3: " Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 09/18] fm10k: " Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 10/18] app/test-pipeline: " Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 11/18] app/testpmd: " Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 12/18] app/test: Remove useless code Helin Zhang
2015-02-27 16:01         ` Gajdzica, MaciejX T
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 13/18] examples/ip_fragmentation: support of unified packet type Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 14/18] examples/ip_reassembly: " Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 15/18] examples/l3fwd-acl: " Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 16/18] examples/l3fwd-power: " Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 17/18] examples/l3fwd: " Helin Zhang
2015-02-27 13:11       ` [dpdk-dev] [PATCH v4 18/18] mbuf: remove old packet type bit masks Helin Zhang
2015-05-22  8:44       ` [dpdk-dev] [PATCH v5 00/18] unified packet type Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 01/18] mbuf: redefine packet_type in rte_mbuf Helin Zhang
2015-05-22 10:09           ` Neil Horman
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 02/18] ixgbe: support unified packet type in vectorized PMD Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 03/18] mbuf: add definitions of unified packet types Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 04/18] e1000: replace bit mask based packet type with unified packet type Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 05/18] ixgbe: " Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 06/18] i40e: " Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 07/18] enic: " Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 08/18] vmxnet3: " Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 09/18] fm10k: " Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 10/18] app/test-pipeline: " Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 11/18] app/testpmd: " Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 12/18] app/test: Remove useless code Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 13/18] examples/ip_fragmentation: replace bit mask based packet type with unified packet type Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 14/18] examples/ip_reassembly: " Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 15/18] examples/l3fwd-acl: " Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 16/18] examples/l3fwd-power: " Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 17/18] examples/l3fwd: " Helin Zhang
2015-05-22  8:44         ` [dpdk-dev] [PATCH v5 18/18] mbuf: remove old packet type bit masks Helin Zhang
2015-06-01  7:33         ` [dpdk-dev] [PATCH v6 00/18] unified packet type Helin Zhang
2015-06-01  7:33           ` [dpdk-dev] [PATCH v6 01/18] mbuf: redefine packet_type in rte_mbuf Helin Zhang
2015-06-01  8:14             ` Olivier MATZ
2015-06-02 13:27               ` O'Driscoll, Tim
2015-06-10 14:32                 ` Olivier MATZ
2015-06-10 14:51                   ` Zhang, Helin
2015-06-10 15:39                   ` Ananyev, Konstantin
2015-06-12  3:22                     ` Zhang, Helin
2015-06-10 16:14                   ` Thomas Monjalon
2015-06-12  7:24                     ` Panu Matilainen
2015-06-12  7:43                       ` Zhang, Helin
2015-06-12  8:15                         ` Panu Matilainen
2015-06-12  8:28                           ` Zhang, Helin
2015-06-12  9:00                             ` Panu Matilainen
2015-06-12  9:07                             ` Bruce Richardson
2015-06-01  7:33           ` [dpdk-dev] [PATCH v6 02/18] ixgbe: support unified packet type in vectorized PMD Helin Zhang
2015-06-01  7:33           ` [dpdk-dev] [PATCH v6 03/18] mbuf: add definitions of unified packet types Helin Zhang
2015-06-01  7:33           ` [dpdk-dev] [PATCH v6 04/18] e1000: replace bit mask based packet type with unified packet type Helin Zhang
2015-06-01  7:33           ` [dpdk-dev] [PATCH v6 05/18] ixgbe: " Helin Zhang
2015-06-01  7:33           ` [dpdk-dev] [PATCH v6 06/18] i40e: " Helin Zhang
2015-06-01  7:33           ` [dpdk-dev] [PATCH v6 07/18] enic: " Helin Zhang
2015-06-01  7:33           ` [dpdk-dev] [PATCH v6 08/18] vmxnet3: " Helin Zhang
2015-06-01  7:33           ` [dpdk-dev] [PATCH v6 09/18] fm10k: " Helin Zhang
2015-06-01  7:33           ` [dpdk-dev] [PATCH v6 10/18] app/test-pipeline: " Helin Zhang
2015-06-01  7:33           ` [dpdk-dev] [PATCH v6 11/18] app/testpmd: " Helin Zhang
2015-06-01  7:33           ` [dpdk-dev] [PATCH v6 12/18] app/test: Remove useless code Helin Zhang
2015-06-01  7:34           ` [dpdk-dev] [PATCH v6 13/18] examples/ip_fragmentation: replace bit mask based packet type with unified packet type Helin Zhang
2015-06-01  7:34           ` [dpdk-dev] [PATCH v6 14/18] examples/ip_reassembly: " Helin Zhang
2015-06-01  7:34           ` [dpdk-dev] [PATCH v6 15/18] examples/l3fwd-acl: " Helin Zhang
2015-06-01  7:34           ` [dpdk-dev] [PATCH v6 16/18] examples/l3fwd-power: " Helin Zhang
2015-06-01  7:34           ` [dpdk-dev] [PATCH v6 17/18] examples/l3fwd: " Helin Zhang
2015-06-01  7:34           ` [dpdk-dev] [PATCH v6 18/18] mbuf: remove old packet type bit masks Helin Zhang
2015-06-19  8:14           ` [dpdk-dev] [PATCH v7 00/18] unified packet type Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 01/18] mbuf: redefine packet_type in rte_mbuf Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 02/18] ixgbe: support unified packet type in vectorized PMD Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 03/18] mbuf: add definitions of unified packet types Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 04/18] e1000: replace bit mask based packet type with unified packet type Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 05/18] ixgbe: " Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 06/18] i40e: " Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 07/18] enic: " Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 08/18] vmxnet3: " Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 09/18] fm10k: " Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 10/18] app/test-pipeline: " Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 11/18] app/testpmd: " Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 12/18] app/test: Remove useless code Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 13/18] examples/ip_fragmentation: replace bit mask based packet type with unified packet type Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 14/18] examples/ip_reassembly: " Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 15/18] examples/l3fwd-acl: " Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 16/18] examples/l3fwd-power: " Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 17/18] examples/l3fwd: " Helin Zhang
2015-06-19  8:14             ` [dpdk-dev] [PATCH v7 18/18] mbuf: remove old packet type bit masks Helin Zhang
2015-06-23  1:50             ` [dpdk-dev] [PATCH v8 00/18] unified packet type Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 01/18] mbuf: redefine packet_type in rte_mbuf Helin Zhang
2015-07-02  9:03                 ` Thomas Monjalon
2015-07-03  1:11                   ` Zhang, Helin
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 02/18] ixgbe: support unified packet type in vectorized PMD Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 03/18] mbuf: add definitions of unified packet types Helin Zhang
2015-06-30  8:43                 ` Olivier MATZ
2015-07-02  1:30                   ` Zhang, Helin
2015-07-02  9:31                     ` Olivier MATZ
2015-07-03  1:30                       ` Zhang, Helin
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 04/18] e1000: replace bit mask based packet type with unified packet type Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 05/18] ixgbe: " Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 06/18] i40e: " Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 07/18] enic: " Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 08/18] vmxnet3: " Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 09/18] fm10k: " Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 10/18] app/test-pipeline: " Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 11/18] app/testpmd: " Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 12/18] app/test: Remove useless code Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 13/18] examples/ip_fragmentation: replace bit mask based packet type with unified packet type Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 14/18] examples/ip_reassembly: " Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 15/18] examples/l3fwd-acl: " Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 16/18] examples/l3fwd-power: " Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 17/18] examples/l3fwd: " Helin Zhang
2015-06-23  1:50               ` [dpdk-dev] [PATCH v8 18/18] mbuf: remove old packet type bit masks Helin Zhang
2015-06-23 16:13               ` [dpdk-dev] [PATCH v8 00/18] unified packet type Ananyev, Konstantin
2015-07-02  8:45                 ` Liu, Yong
2015-07-03  8:32               ` [dpdk-dev] [PATCH v9 00/19] " Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 01/19] mbuf: redefine packet_type in rte_mbuf Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 02/19] mbuf: add definitions of unified packet types Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 03/19] e1000: replace bit mask based packet type with unified packet type Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 04/19] ixgbe: " Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 05/19] i40e: " Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 06/19] enic: " Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 07/19] vmxnet3: " Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 08/19] fm10k: " Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 09/19] cxgbe: " Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 10/19] app/test-pipeline: " Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 11/19] app/testpmd: " Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 12/19] app/test: Remove useless code Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 13/19] examples/ip_fragmentation: replace bit mask based packet type with unified packet type Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 14/19] examples/ip_reassembly: " Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 15/19] examples/l3fwd-acl: " Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 16/19] examples/l3fwd-power: " Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 17/19] examples/l3fwd: " Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 18/19] examples/tep_termination: " Helin Zhang
2015-07-03  8:32                 ` [dpdk-dev] [PATCH v9 19/19] mbuf: remove old packet type bit masks Helin Zhang
2015-07-09 16:31                 ` [dpdk-dev] [PATCH v10 00/19] unified packet type Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 01/19] mbuf: redefine packet_type in rte_mbuf Helin Zhang
2015-07-13 15:53                     ` Thomas Monjalon
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 02/19] mbuf: add definitions of unified packet types Helin Zhang
2015-07-15 10:19                     ` Olivier MATZ
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 03/19] e1000: replace bit mask based packet type with unified packet type Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 04/19] ixgbe: " Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 05/19] i40e: " Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 06/19] enic: " Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 07/19] vmxnet3: " Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 08/19] fm10k: " Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 09/19] cxgbe: " Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 10/19] app/test-pipeline: " Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 11/19] app/testpmd: " Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 12/19] app/test: Remove useless code Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 13/19] examples/ip_fragmentation: replace bit mask based packet type with unified packet type Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 14/19] examples/ip_reassembly: " Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 15/19] examples/l3fwd-acl: " Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 16/19] examples/l3fwd-power: " Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 17/19] examples/l3fwd: " Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 18/19] examples/tep_termination: " Helin Zhang
2015-07-09 16:31                   ` [dpdk-dev] [PATCH v10 19/19] mbuf: remove old packet type bit masks Helin Zhang
2015-07-13 16:13                     ` Thomas Monjalon
2015-07-13 16:25                       ` Zhang, Helin
2015-07-13 16:27                         ` Thomas Monjalon
2015-07-13 16:32                           ` Zhang, Helin
2015-07-13 17:58                       ` Zhang, Helin
2015-07-15 17:32                       ` [dpdk-dev] [PATCH] mlx4: replace some offload flags with packet type Thomas Monjalon
2015-07-15 18:06                         ` Zhang, Helin
2015-07-15 23:05                           ` Thomas Monjalon
2015-07-15 23:00                   ` [dpdk-dev] [PATCH v10 00/19] unified " Thomas Monjalon
2015-07-15 23:51                     ` Zhang, Helin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=F35DEAC7BCE34641BA9FAC6BCA4A12E70A803EC6@SHSMSX104.ccr.corp.intel.com \
    --to=helin.zhang@intel.com \
    --cc=dev@dpdk.org \
    --cc=olivier.matz@6wind.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).