1. Add fm10k_recv_pkts and fm10k_xmit_pkts functions.
2. Link app function pointer to actual fm10k recv/xmit
functions.
3. Change Makefile to compile new file fm10k_rxtx.c
Signed-off-by: Jeff Shaw <jeffrey.b.shaw@intel.com>
Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
1. Add function to initialize RX queues.
2. Add function to initialize TX queues.
3. Add fm10k_dev_start, fm10k_dev_stop and fm10k_dev_close
functions.
4. Add function to close mailbox service.
Signed-off-by: Jeff Shaw <jeffrey.b.shaw@intel.com>
Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
1. Add 4 functions fm10k_dev_rx_queue_start,
fm10k_dev_rx_queue_stop, fm10k_dev_tx_queue_start,
and fm10k_dev_tx_queue_stop.
2. verify Rx packet buffer alignment is valid.
Hardware requires specific alignment for Rx packet buffers. At
least one of the following two conditions must be satisfied.
1) Address is 512B aligned
2) Address is 8B aligned and buffer does not cross 4K boundary.
Alignment is checked by the driver when the Rx queue is reset. It
is assumed that if an entire descriptor ring can be filled with
buffers containing valid alignment, then all buffers in that mempool
have valid address alignment. It is the responsibility of the user
to ensure all buffers have valid alignment, as it is the user who
creates the mempool.
It is assumed the buffer needs only to store a maximum size Ethernet
frame.
Signed-off-by: Jeff Shaw <jeffrey.b.shaw@intel.com>
Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
1. Add init function to scan and initialize fm10k PF device.
2. Add implementation to register fm10k pmd PF driver.
3. Add 3 functions fm10k_dev_configure, fm10k_stats_get and
fm10k_stats_get.
4. Add fm10k.h to define macros and basic data structure.
5. Add fm10k_logs.h to control log message output.
6. Change config/common_bsdapp and config/common_linuxapp, add
macros to control fm10k pmd driver compile for linux and bsd.
7. Add Makefile.
8. Change lib/Makefile to add fm10k driver into compile list.
9. Change mk/rte.app.mk to add fm10k lib into link.
10. Add ABI version of librte_pmd_fm10k
Signed-off-by: Jeff Shaw <jeffrey.b.shaw@intel.com>
Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Signed-off-by: Michael Qiu <michael.qiu@intel.com>
Add fm10k device ID list into rte_pci_dev_ids.h.
Signed-off-by: Jeff Shaw <jeffrey.b.shaw@intel.com>
Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
Base driver is developed and maintained by Intel ND team, includes
basic functional service to Intel Ethernet Switch FM10000 Series
of silicons.
Any suggestion on bug fix and improvement within this directory is
welcome, but need this team to change and update.
Signed-off-by: Chen Jing D(Mark) <jing.d.chen@intel.com>
This could be useful to have this values for debug purposes.
Suggested-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
When offloading the checksums of ipip tunnels, m->l2_len is set to 0
as there is no tunnel or inner l2 header. Since this is a valid value
remove the test.
By the way, also remove the same test with l3_len because at this
point, it is expected that the software provides proper values in the
mbuf. It should avoid a test in dataplane processing and therefore
slightly increase performance.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
The l4_len has also to be copied in mbuf in case we are offloading outer
IP checksum. Currently, TSO + outer checksum is not supported by any
driver but it will soon be supported by i40e.
Reported-by: Jijiang Liu <jijiang.liu@intel.com>
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Advertise the DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM flag in the PMD
features. It means that the i40e PMD supports the offload of outer IP
checksum when transmitting tunneling packet.
Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
If the flag is advertised by a PMD, the NIC supports the outer IP
checksum TX offload of tunneling packets, therefore an application can
set the PKT_TX_OUTER_IP_CKSUM flag in mbufs when transmitting on this
port.
Signed-off-by: Jijiang Liu <jijiang.liu@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Add support for Ethernet over GRE and IP over GRE tunnels.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Move code parsing vxlan into a function. It will ease the support
of GRE tunnels and IPIP tunnels in next commits.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
To simplify the API of parse_* functions, store all the offload
information for the current packet in a structure.
No functional change.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
These functions may be used to parse encapsulated layers
when we will support IP over GRE tunnels.
No functional change.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
The tx_checksum command concerns outer IP checksum, not VxLAN checksum.
Actually there is no checkum in VxLAN header, there is one checksum in
outer IP header, and one checksum in outer UDP header. This option only
controls the outer IP checksum.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Add a new command related to csum forward engine:
csum parse-tunnel (on|off) (tx_port_id)
If enabled, the tunnel packets received by the csum forward engine are
parsed and seen as "outer-headers/inner-headers/data".
If disabled, the parsing of the csum forward engine stops at the first
l4 layer. A tunnel packet is seens as "headers/data" (inner headers are
included in payload).
Note: the port argument is the tx_port. It's more coherent compared
to all other testpmd csum flags.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
No functional changes in this commit, we just move the code
that displays the csum forward engine configuration in a
function.
This makes the next commit easier to read as it will also
use this function.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
Replace the "tx_checksum" command by "csum". It has several
advantages:
- it's more coherent with the forward engine name
- it's shorter
- the next commit will introduce a command that is related to
the csum forward engine, but about rx side.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Since previous commit, the flag PKT_TX_UDP_TUNNEL_PKT is not used by any PMD,
remove it from mbuf API and from csumonly (testpmd). In csumonly, the
PKT_TX_OUTER_IP_CKSUM flag is already set for vxlan checksum, providing
enough information to the underlying driver.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
The definition of the flag PKT_TX_UDP_TUNNEL_PKT in rte_mbuf.h was:
TX packet is an UDP tunneled packet. It must be specified when using
outer checksum offload (PKT_TX_OUTER_IP_CKSUM)
This flag was used to tell the NIC that the offload type is UDP
(I40E_TXD_CTX_UDP_TUNNELING flag). In the datasheet, it says it's
required to specify the tunnel type in the register. However, some tests
(see [1]) showed that it also works without this flag.
Moreover, it is not explained how the hardware use this
information. From a network perspective, this information is useless for
calculating the outer IP checksum as it does not depend on the payload.
Having this flag in the API would force the application to specify the
tunnel type for something that looks only useful for this PMD. It will
limit the number of possible tunnel types (we would need a flag for each
tunnel type) and therefore prevent to support outer IP checksum for
proprietary tunnels.
Finally, if a hardware advertises "I support outer IP checksum", it must
be supported for any payload types.
This has been validated by [2], knowing that the ipip test case was fixed
after this test report [3].
[1] http://dpdk.org/ml/archives/dev/2015-January/011380.html
[2] http://dpdk.org/ml/archives/dev/2015-January/011475.html
[3] http://dpdk.org/ml/archives/dev/2015-January/011610.html
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
From i40e datasheet:
The IP header type and its offload. In case of tunneling, the IIPT
relates to the inner IP header. See also EIPT field for the outer
(External) IP header offload.
00 - non IP packet or packet type is not defined by software
01 - IPv6 packet
10 - IPv4 packet with no IP checksum offload
11 - IPv4 packet with IP checksum offload
Therefore it is not needed to fill the IIPT field if no offload is
requested (we can keep the value to 00). For instance, the linux driver
code does not set it when (skb->ip_summed != CHECKSUM_PARTIAL). We can
do the same in the dpdk driver.
The function i40e_txd_enable_checksum() that fills the offload registers
can only be called for packets requiring an offload.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
The alias PKT_TX_IPV4_CSUM is only used in one place of i40e driver.
Remove it and only keep the legacy flag PKT_TX_IP_CSUM.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Jijiang Liu <jijiang.liu@intel.com>
In loopback mode, it's expected force link up even when there's no cable connect.
But in codes, setup_sfp() rewrites the related register.
It causes in the case 'multispeed_fiber', it can't link up without cable connect.
Signed-off-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Patrick Lu <patrick.lu@intel.com>
Function to get rx/tx port configuration from the PMDs
was added in previous release to simplify the port configuration
in all sample apps, but testpmd was not modified.
This patch makes testpmd get the default rx/tx port configuration,
but still uses the parameters passed by the command line.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
Testpmd has the capability of changing the forwarding cores and ports in runtime.
If these are changed when forwarding, two issues may be encountered:
- If "show config fwd" is used, changes made in the core list are applied.
Therefore, trying to stop forwarding may hang testpmd,
since it could be waiting for cores to stop that are not actually running anything
- If the port list is changed, when stopping forwarding,
it may miss the stats of some of the ports that were actually being used.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Ring threshold parameters an RX/TX queue (pthresh, wthresh and hthresh)
had an incorrect range of values shown in help command line.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Several parameters were being parsed twice in testpmd,
so this patch gets rid of the second parsing.
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
The port number type should be consistent with librte_cmdline,
else there is potential endian issue.
Signed-off-by: Xuelin Shi <xuelin.shi@freescale.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
max_vfs will only be created by igb_uio driver, for other
drivers like vfio or pci_uio_generic, max_vfs will miss.
But sriov_numvfs is not driver related, just get the vf numbers
from that field.
Signed-off-by: Michael Qiu <michael.qiu@intel.com>
Acked-by: David Marchand <david.marchand@6wind.com>
librte_vhost is not a plugin but a library, move it to proper section
to fix sample app build in shared, non-combined library setup.
Signed-off-by: Panu Matilainen <pmatilai@redhat.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
I will be a volunteer of reviewing the following files:
lib/librte_pmd_virtio/
doc/guides/prog_guide/poll_mode_drv_emulated_virtio_nic.rst
lib/librte_vhost/
doc/guides/prog_guide/vhost_lib.rst
examples/vhost/
doc/guides/sample_app_ug/vhost.rst
Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
As discussed with Thomas, I would like to take care of the common eal and linux
implementation.
Signed-off-by: David Marchand <david.marchand@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
As original author of these DPDK components, I am volunteering to maintain
them going forward:
- Traffic Metering
- Hierarchical Scheduler
- Packet Framework
- Configuration File
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
The section titles are filtered to print only those which
are not associated with an email address.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Each F or X pattern is checked and printed if there is no match
with a file in the repository.
The wildcard must be temporarily replaced to prevent from shell expansion.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Documentation of build system, EAL and ring lib should be covered by
the maintainers of the respective areas.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Reference the new framework and policy for ABI versioning,
in the MAINTAINERS file.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>