> -----Original Message----- > From: Zhang, Helin > Sent: Tuesday, February 17, 2015 6:59 AM > To: dev at dpdk.org > Cc: Cao, Waterman; Liang, Cunming; Liu, Jijiang; Ananyev, Konstantin; > Richardson, Bruce; Zhang, Helin > Subject: [PATCH v3 00/16] unified packet type > > Currently only 6 bits which are stored in ol_flags are used to indicate the > packet types. This is not enough, as some NIC hardware can recognize quite > a lot of packet types, e.g i40e hardware can recognize more than 150 packet > types. Hiding those packet types hides hardware offload capabilities which > could be quite useful for improving performance and for end users. So an > unified packet types are needed to support all possible PMDs. A 16 bits > packet_type in mbuf structure can be changed to 32 bits and used for this > purpose. In addition, all packet types stored in ol_flag field should be > deleted at all, and 6 bits of ol_flags can be save as the benifit. > > Initially, 32 bits of packet_type can be divided into several sub fields to > indicate different packet type information of a packet. The initial design > is to divide those bits into fields for L2 types, L3 types, L4 types, tunnel > types, inner L2 types, inner L3 types and inner L4 types. All PMDs should > translate the offloaded packet types into these 7 fields of information, for > user applications. > > v2 changes: > * Enlarged the packet_type field from 16 bits to 32 bits. > * Redefined the packet type sub-fields. > * Updated the 'struct rte_kni_mbuf' for KNI according to the mbuf changes. > * Used redefined packet types and enlarged packet_type field for all PMDs > and corresponding applications. > * Removed changes in bond and its relevant application, as there is no need > at all according to the recent bond changes. > > v3 changes: > * Put the mbuf layout changes into a single patch. > * Put vector ixgbe changes right after mbuf changes. > * Disabled vector ixgbe PMD by default, as mbuf layout changed, and then > re-enabled it after vector ixgbe PMD updated. > * Put the definitions of unified packet type into a single patch. > * Minor bug fixes and enhancements in l3fwd example. > > Helin Zhang (16): > mbuf: redefinition of packet_type in rte_mbuf > ixgbe: support of unified packet type for vector > mbuf: add definitions of unified packet types > e1000: support of unified packet type > ixgbe: support of unified packet type > i40e: support of unified packet type > enic: support of unified packet type > vmxnet3: support of unified packet type > app/test-pipeline: support of unified packet type > app/testpmd: support of unified packet type > examples/ip_fragmentation: support of unified packet type > examples/ip_reassembly: support of unified packet type > examples/l3fwd-acl: support of unified packet type > examples/l3fwd-power: support of unified packet type > examples/l3fwd: support of unified packet type > mbuf: remove old packet type bit masks > > app/test-pipeline/pipeline_hash.c | 7 +- > app/test-pmd/csumonly.c | 10 +- > app/test-pmd/rxonly.c | 9 +- > examples/ip_fragmentation/main.c | 7 +- > examples/ip_reassembly/main.c | 7 +- > examples/l3fwd-acl/main.c | 19 +- > examples/l3fwd-power/main.c | 5 +- > examples/l3fwd/main.c | 71 +- > .../linuxapp/eal/include/exec-env/rte_kni_common.h | 4 +- > lib/librte_mbuf/rte_mbuf.c | 6 - > lib/librte_mbuf/rte_mbuf.h | 127 +++- > lib/librte_pmd_e1000/igb_rxtx.c | 98 ++- > lib/librte_pmd_enic/enic_main.c | 14 +- > lib/librte_pmd_i40e/i40e_rxtx.c | 786 > ++++++++++++++------- > lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 146 +++- > lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c | 49 +- > lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c | 4 +- > 17 files changed, 921 insertions(+), 448 deletions(-) >
Acked-by: Konstantin Ananyev <konstantin.ananyev at intel.com> > -- > 1.9.3