Nipun Gupta [Fri, 12 Oct 2018 10:04:12 +0000 (15:34 +0530)]
net/dpaa2: fix IOVA conversion for congestion memory
The code was incorrectly using the Virtual mode, whent
the IOVA mode was set as Physical.
Fixes:
5ae1edff6895 ("dpaa2: prepare for 32-bit build")
Cc: stable@dpdk.org
Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com>
Shreyansh Jain [Mon, 15 Oct 2018 12:01:56 +0000 (17:31 +0530)]
fslmc: enable dpaax library
With this patch, fslmc bus and ethernet devices on this bus
would start using the physical-virtual library interfaces.
This patch impacts mempool/dpaa2, event/dpaa2, net/dpaa2,
raw/dpaa2_cmdif and raw/dpaa2_qdma as they are dependent
on the bus/fslmc and thus impact linkage of libraries.
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Shreyansh Jain [Mon, 15 Oct 2018 12:01:55 +0000 (17:31 +0530)]
dpaa: enable dpaax library
With this patch, dpaa bus and ethernet devices on this bus
would start using the physical-virtual library interfaces.
This patch impacts mempool/dpaa, event/dpaa and net/dpaa as
they are dependent on the bus/dpaa and thus impact linkage of
libraries.
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Shreyansh Jain [Mon, 15 Oct 2018 12:01:54 +0000 (17:31 +0530)]
common/dpaax: add library for PA/VA translation table
A common library, valid for dpaaX drivers, which is used to maintain
a local copy of PA->VA translations.
In case of physical addressing mode (one of the option for FSLMC, and
only option for DPAA bus), the addresses of descriptors Rx'd are
physical. These need to be converted into equivalent VA for rte_mbuf
and other similar calls.
Using the rte_mem_virt2iova or rte_mem_virt2phy is expensive. This
library is an attempt to reduce the overall cost associated with
this translation.
A small table is maintained, containing continuous entries
representing a continguous physical range. Each of these entries
stores the equivalent VA, which is fed during mempool creation, or
memory allocation/deallocation callbacks.
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Shreyansh Jain [Mon, 15 Oct 2018 12:01:53 +0000 (17:31 +0530)]
drivers: add common as dependency for bus
Prior to this patch, bus and common compiled parallel. But, post this
dependency is created.
This is especially important for the DPAA/FSLMC buses which are going
to use the common/dpaax library.
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Shreyansh Jain [Mon, 15 Oct 2018 12:01:52 +0000 (17:31 +0530)]
bus/fslmc: fix physical addressing check
In case RTE_LIBRTE_DPAA2_USE_PHYS_IOVA is enabled, only supported
class is RTE_IOVA_PA.
Fixes:
f7768afac101 ("bus/fslmc: support dynamic IOVA")
Cc: stable@dpdk.org
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
Jeff Guo [Tue, 16 Oct 2018 11:41:00 +0000 (19:41 +0800)]
eal/bsd: fix build
When compiling on FreeBSD, a warning/error is thrown for
unused parameter. This patch aim to fix the issue by delete
the useless func definition.
Fixes:
89ecd110524d ("eal: modify device event process function")
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Jeff Guo [Tue, 16 Oct 2018 11:42:33 +0000 (19:42 +0800)]
vfio: fix build with Linux < 4.0
Since the older kernel version do not implement the device request
interface for vfio, so when build on the kernel < v4.0.0, which is
the version begin to add the device request interface, it will
throw the error to show “VFIO_PCI_REQ_IRQ_INDEX” is undeclared.
This patch aim to fix this compile issue by add the macro
“HAVE_VFIO_DEV_REQ_INTERFACE” after checking the kernel version.
Fixes:
0eb8a1c4c786 ("vfio: add request notifier interrupt")
Fixes:
c115fd000c32 ("vfio: handle hotplug request notifier")
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Jeff Guo [Thu, 4 Oct 2018 06:44:43 +0000 (14:44 +0800)]
vfio: handle hotplug request notifier
When device is be hot-unplugged, the vfio kernel module will sent req
notifier to request user space to release the allocated resources at
first. After that, vfio kernel module will detect the device disappear,
and then delete the device in kernel.
This patch aim to add req notifier processing to enable hotplug for vfio.
By enable the req notifier monitoring and register the notifier callback,
when device be hot-unplugged, the hot-unplug handler will be called to
process hotplug for vfio.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Jeff Guo [Thu, 4 Oct 2018 06:44:42 +0000 (14:44 +0800)]
bus/pci: add VFIO request interrupt handle to device
There are some extended interrupt types in vfio pci device except from the
existing interrupts, such as err and req notifier, they could be useful for
device error monitoring. And these corresponding interrupt handler is
different from the other interrupt handler that register in PMDs, so a new
interrupt handler should be added. This patch will add specific req handler
in generic pci device.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Jeff Guo [Thu, 4 Oct 2018 06:44:41 +0000 (14:44 +0800)]
eal: modify device event process function
This patch modify the device event callback process function name to be
more explicit, change the variable to be const. And more, because not only
eal device helper will use the callback, but also vfio bus will use the
callback to handle hot-unplug, so exposure the API out from private eal.
The bus drivers and eal device would directly use this API to process
device event callback.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Jeff Guo [Thu, 4 Oct 2018 06:44:40 +0000 (14:44 +0800)]
vfio: add request notifier interrupt
Add a new req notifier in eal interrupt for enable vfio hotplug.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Jeff Guo [Mon, 15 Oct 2018 11:27:27 +0000 (19:27 +0800)]
app/testpmd: use hotplug failure handler
This patch use testpmd for example, to show how an app smoothly handle
failure when device be hot-unplug. Except that app should enabled the
device event monitor and register the hotplug event’s callback, it also
need enable hotplug handle mechanism before running. Once app detect the
removal event, the hot-unplug callback would be called. It will first stop
the packet forwarding, then stop the port, close the port, and finally
detach the port to clean the device and release the resources.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Jeff Guo [Mon, 15 Oct 2018 11:27:26 +0000 (19:27 +0800)]
eal: add failure handling for hot-unplug
The mechanism can initially register the sigbus handler after the device
event monitor is enabled. When a sigbus event is captured, it will check
the failure address and accordingly handle the memory failure of the
corresponding device by invoke the hot-unplug handler. It could prevent
the application from crashing when a device is hot-unplugged.
By this patch, users could call below new added APIs to enable/disable
the device hotplug handle mechanism. Note that it just implement the
hot-unplug handler in these functions, the other handler of hotplug, such
as handler for hotplug binding, could be add in the future if need:
- rte_dev_hotplug_handle_enable
- rte_dev_hotplug_handle_disable
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Jeff Guo [Mon, 15 Oct 2018 11:27:25 +0000 (19:27 +0800)]
bus: add helper to handle sigbus
This patch aims to add a helper to iterate over all buses to find the
relevant bus to handle the sigbus error.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Shaopeng He <shaopeng.he@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Jeff Guo [Mon, 15 Oct 2018 11:27:24 +0000 (19:27 +0800)]
bus/pci: support sigbus handler
This patch implements the ops for the PCI bus sigbus handler. It finds the
PCI device that is being hot-unplugged and calls the relevant ops of the
hot-unplug handler to handle the hot-unplug failure of the device.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Shaopeng He <shaopeng.he@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Jeff Guo [Mon, 15 Oct 2018 11:27:23 +0000 (19:27 +0800)]
bus: add sigbus handler
When a device is hot-unplugged, a sigbus error will occur of the datapath
can still read/write to the device. A handler is required here to capture
the sigbus signal and handle it appropriately.
This patch introduces a bus ops to handle sigbus errors. Each bus can
implement its own case-dependent logic to handle the sigbus errors.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Shaopeng He <shaopeng.he@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Jeff Guo [Mon, 15 Oct 2018 11:27:22 +0000 (19:27 +0800)]
bus/pci: support hot-unplug handler
This patch implements the ops to handle hot-unplug on the PCI bus.
For UIO PCI, it could avoids BARs read/write errors by creating a
new dummy memory to remap the memory where the failure is. For VFIO
or other kernel driver, it could specific implement function to handle
hot-unplug case by case.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Shaopeng He <shaopeng.he@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Jeff Guo [Mon, 15 Oct 2018 11:27:21 +0000 (19:27 +0800)]
bus: add hot-unplug handler
A hot-unplug failure and app crash can be caused, when a device is
hot-unplugged but the application still try to access the device
by reading or writing from the BARs, which is already invalid but
still not timely be unmap or released.
This patch introduces bus ops to handle hot-unplug failures. Each
bus can implement its own case-dependent logic to handle the failures.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Cristian Dumitrescu [Wed, 10 Oct 2018 14:24:36 +0000 (15:24 +0100)]
net/softnic: support VXLAN flow decap action
Add support for ethdev flow API VXLAN decap action.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Cristian Dumitrescu [Wed, 10 Oct 2018 14:12:05 +0000 (15:12 +0100)]
net/softnic: support packet decap action
Add support for packet decap table action.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Cristian Dumitrescu [Wed, 10 Oct 2018 13:15:23 +0000 (14:15 +0100)]
examples/ip_pipeline: support packet decap action
Add support for packet decap table action.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Cristian Dumitrescu [Wed, 10 Oct 2018 10:28:06 +0000 (11:28 +0100)]
pipeline: add table action for packet decap
This patch introduces a new table action for packet decapsulation
which removes n bytes from the start of the input packet. The n
is read from the current table entry. The following mbuf fields
are updated by the action: data_off, data_len, pkt_len.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Cristian Dumitrescu [Tue, 9 Oct 2018 15:41:52 +0000 (16:41 +0100)]
net/softnic: support flow mark action
Add support for ethdev flow API mark action.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Cristian Dumitrescu [Tue, 9 Oct 2018 13:44:15 +0000 (14:44 +0100)]
net/softnic: support packet tag action
Add support for packet tag table action.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Cristian Dumitrescu [Tue, 9 Oct 2018 13:17:01 +0000 (14:17 +0100)]
examples/ip_pipeline: support packet tag action
Add support for the packet tag table action.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Cristian Dumitrescu [Tue, 9 Oct 2018 13:00:36 +0000 (14:00 +0100)]
pipeline: add table action for packet tag
This patch introduces the packet tag table action which attaches
a 32-bit value (the tag) to the current input packet. The tag is
read from the current table entry. The tag is written into the
mbuf->hash.fdir.hi and the flags PKT_RX_FDIR and PKT_RX_FDIR_ID
are set into mbuf->ol_flags.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Reshma Pattan [Mon, 8 Oct 2018 11:19:11 +0000 (12:19 +0100)]
net/softnic: support flow flush
Add rte flow flush api for flushing
all the flows of the port.
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Reshma Pattan [Fri, 28 Sep 2018 16:18:54 +0000 (17:18 +0100)]
net/softnic: fix IPv6 endianness
Fix IPv6 endianness from big endian to CPU order.
Fixes:
ee19326a4b ("net/softnic: add command for pipeline table entries")
Cc: stable@dpdk.org
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Reshma Pattan [Fri, 28 Sep 2018 16:18:55 +0000 (17:18 +0100)]
examples/ip_pipeline: fix IPv6 endianness
Fix IPv6 endianness from big endian to CPU order.
Fixes:
a3a95b7d58 ("examples/ip_pipeline: add table entry commands")
Cc: stable@dpdk.org
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Fan Zhang [Fri, 28 Sep 2018 12:26:14 +0000 (13:26 +0100)]
examples/ip_pipeline: add symmetric crypto example
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Fan Zhang [Fri, 28 Sep 2018 12:26:13 +0000 (13:26 +0100)]
examples/ip_pipeline: add CLI for symmetric crypto
This patch updates the cli parsing of ip_pipeline application
with extra symmetric crypto, port, session, and action support.
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Fan Zhang [Fri, 28 Sep 2018 12:26:12 +0000 (13:26 +0100)]
examples/ip_pipeline: support symmetric crypto action
This patch adds symmetric crypto action support to ip_pipeline
application.
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Fan Zhang [Fri, 28 Sep 2018 12:26:11 +0000 (13:26 +0100)]
examples/ip_pipeline: configure crypto port
This patch adds symmetric crypto port configuration to ip_pipeline
sample application.
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Fan Zhang [Fri, 28 Sep 2018 12:26:10 +0000 (13:26 +0100)]
examples/ip_pipeline: add cryptodev
This patch adds symmetric crypto device abstraction to ip_pipeline
sameple application.
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Fan Zhang [Fri, 28 Sep 2018 12:26:09 +0000 (13:26 +0100)]
pipeline: add symmetric crypto table action
This patch adds the symmetric crypto action support to pipeline
library. The symmetric crypto action works as the shim layer
between pipeline and DPDK cryptodev and is able to interact with
cryptodev with the control path requests such as session
creation/deletion and data path work to assemble the crypto
operations for received packets.
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Fan Zhang [Mon, 1 Oct 2018 10:02:23 +0000 (11:02 +0100)]
port: add symmetric crypto
This patch adds the symmetric crypto support to port library.
The crypto port acts as a shim layer to DPDK cryptodev library and
supports in-place crypto workload processing.
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Jasvinder Singh [Wed, 26 Sep 2018 13:08:54 +0000 (14:08 +0100)]
net/softnic: support flow meter action
Implement flow rules with meter action.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Wed, 26 Sep 2018 13:08:53 +0000 (14:08 +0100)]
net/softnic: read meter statistics
Implement meter object stats read function.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Wed, 26 Sep 2018 13:08:52 +0000 (14:08 +0100)]
net/softnic: update policer actions
Implement meter object policer actions function.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Wed, 26 Sep 2018 13:08:51 +0000 (14:08 +0100)]
net/softnic: update DSCP table
Implement meter object dscp table update.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Wed, 26 Sep 2018 13:08:50 +0000 (14:08 +0100)]
net/softnic: update meter profile
Implement meter profile update function
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Wed, 26 Sep 2018 13:08:49 +0000 (14:08 +0100)]
net/softnic: destroy meter object
Implement meter object destroy function.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Wed, 26 Sep 2018 13:08:48 +0000 (14:08 +0100)]
net/softnic: create meter object
implement meter object create function.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Wed, 26 Sep 2018 13:08:47 +0000 (14:08 +0100)]
net/softnic: delete meter profile
Implement meter profile delete function.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Wed, 26 Sep 2018 13:08:46 +0000 (14:08 +0100)]
net/softnic: add meter profile
Implement meter profile add function.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Jasvinder Singh [Wed, 26 Sep 2018 13:08:45 +0000 (14:08 +0100)]
net/softnic: support metering and policing
Enable metering and policing support for softnic.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:45 +0000 (15:20 +0100)]
net/softnic: parse raw flow item
Added support for parsing raw flow item.
flow_item_raw_preprocess() is added for the same.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:44 +0000 (15:20 +0100)]
net/softnic: support flow query
Added pmd_flow_query() API, for flow query
support.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:43 +0000 (15:20 +0100)]
net/softnic: support flow destroy
pmd_flow_destroy() API is added to destroy the
created flow.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:42 +0000 (15:20 +0100)]
net/softnic: support flow create
pmd_flow_create API is added to support
rte flow create.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:41 +0000 (15:20 +0100)]
net/softnic: map flow action to table action
Added validation and mapping of flow rule action
with table action profile.
Added flow_rule_action_get() to do the same.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:40 +0000 (15:20 +0100)]
net/softnic: map flow match to hash table
Support for validating and mapping flow rule with HASH
table match is added.
As part of this, below helper functions are added.
flow_rule_match_hash_get()
hash_key_mask_is_same()
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:39 +0000 (15:20 +0100)]
net/softnic: parse flow match for ACL table
Added flow protocol parsing for IPV4/IPV6 and
TCP/UDP/SCTP for ACL table rule match.
Added below helper functions for doing the same.
port_mask_to_range()
ipv6_mask_to_depth()
ipv4_mask_to_depth()
mask_to_depth()
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:38 +0000 (15:20 +0100)]
net/softnic: map flow match to ACL table
Support for validating and mapping rte flow rule with
ACL table match is added.
As part of this support below utility functions
been added
flow_rule_match_get()
flow_rule_match_acl_get()
flow_item_skip_disabled_protos()
flow_item_proto_preprocess()
flow_item_is_proto()
flow_item_raw_preprocess()
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:37 +0000 (15:20 +0100)]
net/softnic: support flow validate
Start adding flow api operations.
Started with flow validate api support by adding
below basic infrastructure.
flow_pipeline_table_get()
pmd_flow_validate()
Additional flow validate changes will be
added in next patches.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:36 +0000 (15:20 +0100)]
net/softnic: get eth device
Add utility function to get the rte_eth_dev from
a given softnic.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:35 +0000 (15:20 +0100)]
net/softnic: add table and port helper functions
Added utility function to freeup the
pipeline tables.
Added utility functions to find the pipeline
output port.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:34 +0000 (15:20 +0100)]
net/softnic: replace pointers with arrays
Change dev_name, action_profile_name and key_mask
from char* type to arary type of structures
softnic_port_in_params, softnic_port_out_params
and softnic_table_hash_params.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:33 +0000 (15:20 +0100)]
net/softnic: add flow attribute option
Added new cli by which user can specify to softnic
which rte flow group and direction has to mapped to
which pipeline and table.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:32 +0000 (15:20 +0100)]
net/softnic: map flow attribute to pipeline table
Added mapping support from rte_flow attributes
to softnic pipeline and table.
So added flow attribute map set and get functions
definition to new file rte_eth_sofnic_flow.c.
Added pmd flow internals with ingress and egress
flow attribute maps.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Reshma Pattan [Tue, 11 Sep 2018 14:20:31 +0000 (15:20 +0100)]
net/softnic: add flow API
Add rte_flow infra structure for flow api support.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Kevin Laatz [Tue, 25 Sep 2018 15:32:30 +0000 (16:32 +0100)]
net/softnic: use table library headers
This commit modifies SoftNIC to make use of the new header files in
librte_table.
As we are now using the new header files in librte_table in SoftNIC, we no
longer need the old header files so they can be removed.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Kevin Laatz [Tue, 25 Sep 2018 15:32:29 +0000 (16:32 +0100)]
examples/ip_pipeline: use table library headers
This commit modifies the IP Pipeline application to use the new header
files in librte_table.
As we are now using the new header files, we can remove the old ones from
the application directory.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Kevin Laatz [Tue, 25 Sep 2018 15:32:28 +0000 (16:32 +0100)]
lib/librte_table: add hash function headers
This commit adds rte_table_hash_func.h and rte_table_hash_func_arm64.h to
librte_table. This reduces code duplication by removing duplicate header
files within two folders and consolidating them into a single one. This
also adds a scalar implementation of the x86_64 intrinsic for crc32 as a
generic fallback.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
Acked-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Cristian Dumitrescu [Fri, 7 Sep 2018 15:58:51 +0000 (16:58 +0100)]
examples/ip_pipeline: support VXLAN encap
Add CLI support for VXLAN encap.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Cristian Dumitrescu [Fri, 7 Sep 2018 15:58:50 +0000 (16:58 +0100)]
pipeline: add VXLAN encap table action
Add support for VXLAN as part of the encap table action.
Signed-off-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Krzysztof Kanas [Fri, 17 Aug 2018 11:39:19 +0000 (13:39 +0200)]
app/testpmd: add TM commands to mark packets
Add following testpmd run-time commands to support test of TM packet
marking:
set port tm mark ip_ecn <port_id> <green> <yellow> <red>
set port tm mark ip_dscp <port_id> <green> <yellow> <red>
set port tm mark vlan_dei <port_id> <green> <yellow> <red>
Signed-off-by: Krzysztof Kanas <krzysztof.kanas@caviumnetworks.com>
Jasvinder Singh [Mon, 1 Oct 2018 10:46:04 +0000 (11:46 +0100)]
app/testpmd: fix metering and policing commands
Fixes bad arguments error for cli commands related to adding meter
profile for srtcm_rfc2697, trtcm_rfc2698 and trtcm_rfc4115.
error log:
testpmd> add port meter profile trtcm_rfc2698 2 0
3125000000
3125000000 2500000 2500000
Bad arguments
Fixes:
30ffb4e67ee3 ("app/testpmd: add commands traffic metering and policing")
Cc: stable@dpdk.org
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Jasvinder Singh [Thu, 27 Sep 2018 17:10:45 +0000 (18:10 +0100)]
sched: allocate memory on the given socket id
Replace rte_zmalloc() with rte_zmalloc_socket() to allocate
memory on the socket id provided by the application.
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Rosen Xu [Thu, 16 Aug 2018 01:14:16 +0000 (09:14 +0800)]
ethdev: expand queue threshold size of RED parameters
There's very commonly that more than 4G DDR memory in NIC for HQoS,
so right now the queue threshold size of RED needs to expand to
uint64_t. This patch fixes it.
Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Vivek Sharma [Tue, 25 Sep 2018 09:53:06 +0000 (09:53 +0000)]
eal: use correct data type for bitmap slab operations
Currently, slab operations use unsigned long data type for 64-bit slab
related operations. On target 'i686-native-linuxapp-gcc', unsigned long
is 32-bit and thus, slab operations breaks on this target. Changing slab
operations to use unsigned long long for correct functioning on
all targets.
Fixes:
de3cfa2c9823 ("sched: initial import")
Fixes:
693f715da45c ("remove extra parentheses in return statement")
Cc: stable@dpdk.org
Signed-off-by: Vivek Sharma <vivek.sharma@caviumnetworks.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
Ivan Malov [Thu, 11 Oct 2018 14:51:13 +0000 (15:51 +0100)]
net/sfc: allow to query RSS key and HF when RSS is disabled
If global RSS is not enabled in the multiqueue mode setting,
it will not be possible to change RSS configuration. However,
querying default RSS settings should be possible in any case since
it may be needed by RTE flow API users to find out what RSS settings
will be used by default for a flow rule with RSS action if custom
RSS key and hash function choice are not specified.
Fixes:
63ab5e0c8fda ("net/sfc: use zero RSS channels as disabled RSS indicator")
Cc: stable@dpdk.org
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Ivan Malov [Thu, 11 Oct 2018 14:51:12 +0000 (15:51 +0100)]
net/sfc: allow to query RSS key and HF in isolated mode
Isolated mode prevents global RSS from being enabled and configured.
However, an application may need to query default RSS key and hash
functions when a flow rule with RSS action is added which does not
contain custom RSS key or hash function choice. In this case
global RSS key and hash functions will be used to handle the rule,
and there should be some way for the application to query these
global default settings to clarify expectations on the traffic
distribution.
Fixes:
84a9b48128c1 ("net/sfc: support flow API isolated mode")
Cc: stable@dpdk.org
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Ivan Malov [Thu, 11 Oct 2018 14:49:30 +0000 (15:49 +0100)]
net/sfc: do not skip RSS configuration step on reconfigure
Earlier a patch was made to support change of Rx queue
number. That patch added goto label in wrong place
because reconfiguration with the same number of queues
results in skipping not only queue init but also RSS
settings. If a user configures device with RSS multiqueue
mode and then wants to stop it and reconfigure without RSS,
this change will be ignored and RSS will continue working.
Move the label in the right place and rename it to describe it.
Fixes:
55a539003f1a ("net/sfc: support changing the number of receive queues")
Cc: stable@dpdk.org
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Xiaolong Ye [Wed, 10 Oct 2018 13:22:35 +0000 (21:22 +0800)]
net/ifc: invoke ifcvf HW init function in probe
As ifcvf_init_hw is independent with ifcvf_vfio_setup, it's better to
invoke it directly in probe func.
Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Xiao Wang <xiao.w.wang@intel.com>
Xiao Wang [Tue, 25 Sep 2018 03:10:01 +0000 (11:10 +0800)]
net/ifc: fix address translation function name
The address translation from user virtual address to guest physical
address should not be named as qva_to_gpa.
Fixes:
a3f8150eac6d ("net/ifcvf: add ifcvf vDPA driver")
Cc: stable@dpdk.org
Signed-off-by: Xiao Wang <xiao.w.wang@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
Luca Boccassi [Fri, 27 Jul 2018 18:13:17 +0000 (19:13 +0100)]
net/e1000: enable MSI-x for linkup and other events in 82574
Linux supports 82574 MSI-x interrupt for linkup and other link
conditions. Enable the same feature in the e1000 PMD in order to
allow this card to work properly, as it requires interrupt
handling for link negotiations among other things.
Signed-off-by: Luca Boccassi <bluca@debian.org>
Acked-by: Wei Zhao <wei.zhao1@intel.com>
Luca Boccassi [Fri, 27 Jul 2018 17:26:07 +0000 (18:26 +0100)]
net/e1000: do not error out if Rx drop enable is set
rx_drop_en is an optimization that does nothing on single-queue
devices like e1000. Do not force applications that do not care to
select per-devices optimizations flags by returning an error, just
log it and carry on.
Fixes:
805803445a02 ("e1000: support EM devices (also known as e1000/e1000e)")
Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <bluca@debian.org>
Acked-by: Wei Zhao <wei.zhao1@intel.com>
Xiaoyu Min [Thu, 11 Oct 2018 13:22:06 +0000 (13:22 +0000)]
net/mlx5: rewrite IP address UDP/TCP port by E-Switch
Offload the following rte_flow actions by inserting accordingly
E-Switch rules via TC Flower driver
- RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC
- RTE_FLOW_ACTION_TYPE_SET_IPV4_DST
- RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC
- RTE_FLOW_ACTION_TYPE_SET_IPV6_DST
- RTE_FLOW_ACTION_TYPE_SET_TP_SRC
- RTE_FLOW_ACTION_TYPE_SET_TP_DST
The example testpmd command is:
flow create 0 transfer ingress
pattern eth / ipv4 / udp dst is 7000 / end
actions set_ipv4_src ipv4_addr 172.168.0.1 /
set_ipv4_dst ipv4_addr 172.168.10.1 /
set_tp_dst port 9000 /
set_tp_src port 700 /
port_id id 1 / end
Signed-off-by: Xiaoyu Min <jackmin@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
Moti Haimovsky [Thu, 11 Oct 2018 10:48:39 +0000 (10:48 +0000)]
net/mlx5: support e-switch TCP-flags flow filter
This patch adds support for offloading flow rules with TCP-flags
filter to mlx5 eswitch Hardwrae.
With mlx5 it is possible to offload a limited set of flow rules to
the mlxsw (or e-switch) using the DPDK flow commands using the
"transfer" attribute. This set of flow rules also supports filtering
according to the values found in the TCP flags.
This patch implements this offload capability in the mlx5 PMD under
transfer attribute.
Signed-off-by: Moti Haimovsky <motih@mellanox.com>
Dekel Peled [Sun, 7 Oct 2018 14:01:05 +0000 (17:01 +0300)]
net/mlx5: allow flow rule with attribute egress
This patch complements [1], adding to MLX5 PMD the option to set
flow rule for egress traffic.
[1] "net/mlx5: support metadata as flow rule criteria"
http://mails.dpdk.org/archives/dev/2018-September/113275.html
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
Shahaf Shuler [Mon, 8 Oct 2018 06:28:17 +0000 (09:28 +0300)]
net/mlx5: always use representor ifindex for ioctl
In the current code, on some cases the representor ethdev is using the
PF interface to query some link status information or pause parameters.
It was done because in previous kernel versions there was no support
from the kernel for the representor info.
Using the PF i/f for such ioctl is error prone and not always working
because:
* On some cases there is no PF at all, only representors (e.g Bluefield
with host representors)
* Query the up/down status from representor and link status from PF
is in-consist
* PF link is down doesn't necessarily means representor is down.
* setting different pause configuration for the PF and the
representors will result on undefined behaviour
Making the code cleaner and more robust by using only the representor
i/f for the ioctl. whatever the kernel will provide on this query will
be used. No need to do W.A. for kernel missing functionality.
Note:
1. Setting pause parameters will obviously won't work on representors
2. Old kernel will not report all the possible representor info
Fixes:
2b7302638898 ("net/mlx5: probe all port representors")
Cc: stable@dpdk.org
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Shahaf Shuler [Sun, 7 Oct 2018 12:55:25 +0000 (15:55 +0300)]
net/mlx5: add representor specific statistics
Representor ports has a different set of extended statistics (as those are
logical ports which cannot count all that the PF can).
Cc: stable@dpdk.org
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Shahaf Shuler [Mon, 17 Sep 2018 09:46:34 +0000 (12:46 +0300)]
net/mlx5: support missing counter in extended statistics
The current code would fail if one of the counters DPDK counters was not
found on the device counters.
As representors and PF port has different counters the both cannot work
together.
Addressing this issue by making the counter init more flexible to
contain all the counter found and skipping the error.
Cc: stable@dpdk.org
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Jens Freimann [Wed, 3 Oct 2018 18:57:11 +0000 (20:57 +0200)]
app/testpmd: add noisy neighbour forwarding mode
This adds a new forwarding mode to testpmd to simulate
more realistic behavior of a guest machine engaged in receiving
and sending packets performing Virtual Network Function (VNF).
The goal is to enable a simple way of measuring performance impact on
cache and memory footprint utilization from various VNF co-located on
the same host machine. For this it does:
* Buffer packets in a FIFO:
Create a fifo to buffer received packets. Once it flows over put
those packets into the actual tx queue. The fifo is created per tx
queue and its size can be set with the --noisy-tx-sw-buffer-flushtime
commandline parameter.
A second commandline parameter is used to set a timeout in
milliseconds after which the fifo is flushed.
--noisy-tx-sw-buffer-size [packet numbers]
Keep the mbuf in a FIFO and forward the over flooding packets from the
FIFO. This queue is per TX-queue (after all other packet processing).
--noisy-tx-sw-buffer-flushtime [delay]
Flush the packet queue if no packets have been seen during
[delay]. As long as packets are seen, the timer is reset.
Add several options to simulate route lookups (memory reads) in tables
that can be quite large, as well as route hit statistics update.
These options simulates the while stack traversal and
will trash the cache. Memory access is random.
* simulate route lookups:
Allocate a buffer and perform reads and writes on it as specified by
commandline options:
--noisy-lkup-memory [size]
Size of the VNF internal memory (MB), in which the random
read/write will be done, allocated by rte_malloc (hugepages).
--noisy-lkup-num-writes [num]
Number of random writes in memory per packet should be
performed, simulating hit-flags update. 64 bits per write,
all write in different cache lines.
--noisy-lkup-num-reads [num]
Number of random reads in memory per packet should be
performed, simulating FIB/table lookups. 64 bits per read,
all write in different cache lines.
--noisy-lkup-num-reads-writes [num]
Number of random reads and writes in memory per packet should
be performed, simulating stats update. 64 bits per read-write, all
reads and writes in different cache lines.
Signed-off-by: Jens Freimann <jfreimann@redhat.com>
Acked-by: Kevin Traynor <ktraynor@redhat.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Brian Archbold [Wed, 22 Aug 2018 06:05:06 +0000 (07:05 +0100)]
app/testpmd: fix duplicate exit
In interactive mode, when the "quit" command is issued, pmd_test_exit()
is being called twice, once through the "quit" command and the other
after termination of prompt.
Remove duplicated exit routine by removing call from "quit" command.
Steps to reproduce:
- Run testpmd in interactive mode.
- type "quit".
Fixes:
af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Brian Archbold <brian.archbold@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Emma Finn [Tue, 25 Sep 2018 10:32:45 +0000 (11:32 +0100)]
app/testpmd: add new command for show port info
existing testpmd command "show port info" is too verbose.
Added a new summary command to print brief information on ports.
console output:
testpmd> show port summary all
Number of available ports: 2
Port MAC Address Name Driver Status Link
0 11:22:33:44:55:66 0000:07:00.0 net_i40e up 40000Mbps
1 66:55:44:33:22:11 0000:07:00.1 net_i40e up 40000Mbps
Signed-off-by: Emma Finn <emma.finn@intel.com>
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Herakliusz Lipiec [Tue, 25 Sep 2018 11:23:00 +0000 (12:23 +0100)]
app/testpmd: fix printf format in event callback
change PRIu8 -> PRIu16 for port_id in eth_event_callback
(portid_t is uint16_t)
Fixes:
76ad4a2d82d4 ("app/testpmd: add generic event handler")
Cc: stable@dpdk.org
Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Ferruh Yigit [Wed, 10 Oct 2018 11:42:22 +0000 (12:42 +0100)]
app/testpmd: display devargs in port info output
Devargs may affect how device works but currently we don't have a
way to observe provided devargs.
Add ability to print device argument as part of port info,
For example, for "--vdev net_pcap0,iface=lo" output will be
"
********************* Infos for port 1 *********************
MAC address: 02:70:63:61:70:00
Device name: net_pcap0
Driver name: net_pcap
Devargs: iface=lo
....
"
or for "-w0000:86:00.1,queue-num-per-vf=8",
"
********************* Infos for port 0 *********************
MAC address: 3C:FD:FE:AB:B4:41
Device name: 0000:86:00.1
Driver name: net_i40e
Devargs: queue-num-per-vf=8
....
"
`Devargs` line may not be printed at all if devargs is not provided for
that device.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Ferruh Yigit [Tue, 9 Oct 2018 17:38:37 +0000 (18:38 +0100)]
drivers/net: fix log type string
Syntax for log type string is "pmd.<subsystem>.<driver>[.<pmd_local>]"
Fixes:
3e92fd4e4ec0 ("net/bnxt: use dynamic log type")
Fixes:
d7f4562ab10a ("net/bonding: convert to dynamic logging")
Fixes:
6086ab3bb3d2 ("net/vdev_netvsc: introduce Hyper-V platform driver")
Fixes:
7db274b9ada2 ("doc: describe dynamic logging format")
Fixes:
a10a988a0ba6 ("net/dpaa2: support dynamic logging")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Rafal Kozik [Wed, 10 Oct 2018 12:08:15 +0000 (14:08 +0200)]
doc: add VFIO in ENA guide
Add instruction how to bind ENA to VFIO-PCI driver.
Fixes:
cf8a122c296a ("ena: introduce documentation")
Cc: stable@dpdk.org
Signed-off-by: Zorik Machulsky <zorik@amazon.com>
Signed-off-by: Rafal Kozik <rk@semihalf.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
Yongseok Koh [Mon, 8 Oct 2018 18:02:19 +0000 (18:02 +0000)]
net/mlx5: fix errno values for flow engine
Fixes:
af689f1f04c2 ("net/mlx5: support flow Ethernet item along with drop action")
Fixes:
919d53ad78d2 ("net/mlx5: fix count query when flow has not counter")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
Yongseok Koh [Mon, 8 Oct 2018 18:02:17 +0000 (18:02 +0000)]
net/mlx5: add missing VLAN action constraints
1) VLAN modify isn't supported by driver.
2) FW syndrome (0xA9C090):
set_flow_table_entry: push vlan action fte in fdb can ONLY be
forward to the uplink.
3) FW syndrome (0x294609):
set_flow_table_entry: modify/pop/push actions in fdb flow table are
supported only while forwarding to vport.
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
Jerin Jacob [Tue, 9 Oct 2018 14:18:18 +0000 (14:18 +0000)]
app/testpmd: collect bad outer L4 checksum for csum engine
Collect and prints the statistics for PKT_RX_EL4_CKSUM_BAD
errors.
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Jerin Jacob [Tue, 9 Oct 2018 14:18:14 +0000 (14:18 +0000)]
app/testpmd: support outer UDP HW checksum
Added outer-udp Tx HW checksum support for csum forward engine
if device supports DEV_TX_OFFLOAD_OUTER_UDP_CKSUM.
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
Jerin Jacob [Tue, 9 Oct 2018 14:18:09 +0000 (14:18 +0000)]
ethdev: add Tx offload outer UDP checksum definition
Introduced DEV_TX_OFFLOAD_OUTER_UDP_CKSUM offload flags and
PKT_TX_OUTER_UDP_CKSUM mbuf ol_flags to enable Tx outer UDP
checksum offload.
To use hardware Tx outer UDP checksum offload, the user needs to,
- enable following in mbuf:
a) fill outer_l2_len and outer_l3_len in mbuf
b) set the PKT_TX_OUTER_UDP_CKSUM flag
c) set the flag PKT_TX_OUTER_IPV4 or PKT_TX_OUTER_IPV6
- configure DEV_TX_OFFLOAD_OUTER_UDP_CKSUM offload flags in slow path
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Jerin Jacob [Tue, 9 Oct 2018 14:18:04 +0000 (14:18 +0000)]
ethdev: add Rx offload outer UDP checksum definition
Introduced DEV_RX_OFFLOAD_OUTER_UDP_CKSUM Rx offload flag and
PKT_RX_OUTER_L4_CKSUM_* mbuf ol_flags to detect outer UDP checksum
status.
- To use hardware Rx outer UDP checksum offload, the user needs to
configure DEV_RX_OFFLOAD_OUTER_UDP_CKSUM offload flags in slowpath.
- Driver updates checksum status in mbuf ol_flag as
PKT_RX_OUTER_L4_CKSUM_* flags.
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Stephen Hemminger [Mon, 8 Oct 2018 22:31:40 +0000 (15:31 -0700)]
net/failsafe: use prefix for function
All other visible functions in failsafe driver have 'failsafe_'
prefix.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Rahul Lakkireddy [Sat, 6 Oct 2018 15:45:34 +0000 (21:15 +0530)]
ethdev: add flow action to swap MAC addresses
This action is useful for offloading loopback mode, where the hardware
will swap source and destination MAC addresses in the outermost Ethernet
header before looping back the packet. This action can be used in
conjunction with other rewrite actions to achieve MAC layer transparent
NAT where the MAC addresses are swapped before either the source or
destination MAC address is rewritten and NAT is performed.
Must be used with a valid RTE_FLOW_ITEM_TYPE_ETH flow pattern item.
Otherwise, RTE_FLOW_ERROR_TYPE_ACTION error should be returned by the
PMDs.
Original work by Shagun Agrawal
Signed-off-by: Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>