[dpdk-dev] [PATCH 00/17] unified packet type
Helin Zhang
helin.zhang at intel.com
Thu Jan 29 04:15:48 CET 2015
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. Recently
a 16 bits packet_type field has been added in mbuf header which can be 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, 16 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 4 fields for L3 types, tunnel types, inner L3
types and L4 types. All PMDs should translate the offloaded packet types
into this 4 fields of information, for user applications.
Helin Zhang (17):
mbuf: add definitions of unified packet types
e1000: support of unified packet type
ixgbe: support of unified packet type
ixgbe: support of unified packet type
i40e: support of unified packet type
bond: 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/test-pmd: support of unified packet type
app/test: 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 for ol_flags
app/test-pipeline/pipeline_hash.c | 4 +-
app/test-pmd/csumonly.c | 6 +-
app/test-pmd/rxonly.c | 9 +-
app/test/packet_burst_generator.c | 10 +-
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 | 64 +--
lib/librte_mbuf/rte_mbuf.c | 6 -
lib/librte_mbuf/rte_mbuf.h | 84 +++-
lib/librte_pmd_bond/rte_eth_bond_pmd.c | 9 +-
lib/librte_pmd_e1000/igb_rxtx.c | 95 +++-
lib/librte_pmd_enic/enic_main.c | 14 +-
lib/librte_pmd_i40e/i40e_rxtx.c | 778 +++++++++++++++++++++------------
lib/librte_pmd_ixgbe/ixgbe_rxtx.c | 141 ++++--
lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c | 39 +-
lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c | 4 +-
18 files changed, 865 insertions(+), 436 deletions(-)
--
1.8.1.4
More information about the dev
mailing list