numam-dpdk/lib
Olivier Matz b37b528d95 mbuf: add new Rx flags for stripped VLAN
The behavior of PKT_RX_VLAN_PKT was not very well defined, resulting in
PMDs not advertising the same flags in similar conditions.

Following discussion in [1], introduce 2 new flags PKT_RX_VLAN_STRIPPED
and PKT_RX_QINQ_STRIPPED that are better defined:

  PKT_RX_VLAN_STRIPPED: a vlan has been stripped by the hardware and its
  tci is saved in mbuf->vlan_tci. This can only happen if vlan stripping
  is enabled in the RX configuration of the PMD.

For now, the old flag PKT_RX_VLAN_PKT is kept but marked as deprecated.
It should be removed from applications and PMDs in a future revision.

This patch also updates the drivers. For PKT_RX_VLAN_PKT:

- e1000, enic, i40e, mlx5, nfp, vmxnet3: done, PKT_RX_VLAN_PKT already
  had the same meaning than PKT_RX_VLAN_STRIPPED, minor update is
  required.
- fm10k: done, PKT_RX_VLAN_PKT already had the same meaning than
  PKT_RX_VLAN_STRIPPED, and vlan stripping is always enabled on fm10k.
- ixgbe: modification done (vector and normal), the old flag was set
  when a vlan was recognized, even if vlan stripping was disabled.
- the other drivers do not support vlan stripping.

For PKT_RX_QINQ_PKT, it was only supported on i40e, and the behavior was
already correct, so we can reuse the same bit value for
PKT_RX_QINQ_STRIPPED.

[1] http://dpdk.org/ml/archives/dev/2016-April/037837.html,

Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
2016-06-15 17:18:57 +02:00
..
librte_acl mk: fix cross-compilation 2016-06-07 10:02:39 +02:00
librte_cfgfile cfgfile: fix uninitialized variable on load error 2016-05-02 15:15:46 +02:00
librte_cmdline cmdline: check initialization error 2016-05-19 14:40:12 +02:00
librte_compat compat: remove unneeded macro 2015-06-29 16:41:23 +02:00
librte_cryptodev qat: fix physical address of content descriptor 2016-06-07 18:59:56 +02:00
librte_distributor distributor: remove inclusion of mbuf header 2015-05-11 15:36:37 +02:00
librte_eal eal/x86: improve memcpy performance 2016-06-15 16:20:04 +02:00
librte_ether ethdev: clarify the origin of mbufs 2016-06-15 16:54:20 +02:00
librte_hash hash: remove aliases for bulk lookup 2016-04-20 13:49:36 +02:00
librte_ip_frag mk: fix missing internal dependencies 2016-06-13 16:17:56 +02:00
librte_ivshmem eal: remove useless includes of mempool and ring 2016-06-10 15:09:04 +02:00
librte_jobstats jobstats: add abort function 2016-02-29 11:22:53 +01:00
librte_kni kni: describe mempool capacity requirement 2016-06-14 17:15:01 +02:00
librte_kvargs remove unneeded tests for NULL when freeing 2016-01-27 15:34:48 +01:00
librte_lpm lpm6: fix possible garbage in lookup 2016-05-02 15:15:45 +02:00
librte_mbuf mbuf: add new Rx flags for stripped VLAN 2016-06-15 17:18:57 +02:00
librte_mempool mempool: fix local cache initialization 2016-06-15 15:58:34 +02:00
librte_meter mk: fix missing libm dependencies 2016-03-22 20:42:47 +01:00
librte_net net: fix build with gcc 4.4.7 and strict aliasing 2015-11-25 22:11:37 +01:00
librte_pipeline mk: fix missing internal dependencies 2016-06-13 16:17:56 +02:00
librte_port mk: fix missing internal dependencies 2016-06-13 16:17:56 +02:00
librte_power power: fix error messages 2016-05-16 14:17:41 +02:00
librte_reorder reorder: allow random number as starting point 2015-06-22 22:20:12 +02:00
librte_ring mem: avoid memzone/mempool/ring name truncation 2016-05-19 14:40:14 +02:00
librte_sched sched: fix build without red 2016-06-14 17:24:15 +02:00
librte_table table: remove unnecessary acl dump 2016-06-07 22:58:18 +02:00
librte_timer timer: fix race condition 2015-08-03 12:43:01 +02:00
librte_vhost vhost: fix name not null terminated 2016-05-10 20:25:30 +02:00
Makefile mbuf_offload: remove library 2016-03-10 21:08:28 +01:00