Phil Yang [Thu, 9 Jul 2020 08:34:35 +0000 (16:34 +0800)]
eal/linux: use C11 atomics for interrupt status
The event status is defined as a volatile variable and shared between
threads. Use C11 atomic built-ins with explicit ordering instead of
rte_atomic ops which enforce unnecessary barriers on aarch64.
The event status has been cleaned up by the compare-and-swap operation
when we free the event data, so there is no need to set it to invalid
after that.
Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Harman Kalra <hkalra@marvell.com>
Feifei Wang [Thu, 9 Jul 2020 06:12:12 +0000 (01:12 -0500)]
ring: use custom element for fixed size API
Use rte_ring_xxx_elem_xxx APIs to replace legacy API implementation.
This reduces code duplication and improves code maintenance.
Tests done on Arm, x86 [1] and PPC [2] do not indicate performance
degradation.
[1] https://mails.dpdk.org/archives/dev/2020-July/173780.html
[2] https://mails.dpdk.org/archives/dev/2020-July/173863.html
Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Tested-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Tested-by: David Christensen <drc@linux.vnet.ibm.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Feifei Wang [Thu, 9 Jul 2020 06:12:11 +0000 (01:12 -0500)]
ring: remove experimental flag from custom element API
Remove the experimental tag for rte_ring_xxx_elem APIs that have been
around for 2 releases.
Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Feifei Wang [Thu, 9 Jul 2020 06:12:10 +0000 (01:12 -0500)]
ring: remove experimental flag from reset API
Remove the experimental tag for rte_ring_reset API that have been around
for 4 releases.
Signed-off-by: Feifei Wang <feifei.wang2@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Levend Sayar [Thu, 9 Jul 2020 12:32:16 +0000 (15:32 +0300)]
service: fix C++ linkage
"extern C" define is added to rte_service_component.h file
to be able to use in C++ context
Fixes:
21698354c832 ("service: introduce service cores concept")
Cc: stable@dpdk.org
Signed-off-by: Levend Sayar <levendsayar@gmail.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
Ferruh Yigit [Thu, 2 Jul 2020 11:17:05 +0000 (12:17 +0100)]
ethdev: fix log type for some error messages
Some log macros was using 'EAL' logtype, convert them to 'ethdev'.
Also fix missing EOL and fix syntax for some logs.
Fixes:
214ed1acd125 ("ethdev: add iterator to match devargs input")
Fixes:
e489007a411c ("ethdev: add generic create/destroy ethdev APIs")
Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Lijun Ou [Sat, 4 Jul 2020 10:09:51 +0000 (18:09 +0800)]
doc: update feature list in hns3 guide
This patch updates the feature list for hns3 PMD driver document.
Signed-off-by: Lijun Ou <oulijun@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Wei Hu (Xavier) [Sat, 4 Jul 2020 10:09:50 +0000 (18:09 +0800)]
net/hns3: fix inserted VLAN tag position in Tx
Based on hns3 network engine, in order to configure hardware VLAN insert
offload in Tx direction, PMD driver reads the VLAN tags from the
vlan_tci_outer and vlan_tci of the structure rte_mbuf, fills them into
the Tx Buffer Descriptor and sets the related offload flag for every
packet.
Currently, there are two VLAN related problems in the 'tx_pkt_burst' ops
implementation function:
1) When setting the related offload flag, PMD driver inserts the VLAN
tag into the position that close to L3 header. So, when upper
application sends a packet with a VLAN tag in the data buffer, the
VLAN offloaded by hardware will be added to the wrong position. It is
supposed to add the VLAN tag from the rte_mbuf to the position close
to the MAC header in the packet when using VLAN insertion.
And when PF PVID is enabled by calling the API function named
rte_eth_dev_set_vlan_pvid or VF PVID is enabled by hns3 PF kernel
ether driver, the VLAN tag from the structure rte_mbuf to enable the
VLAN insertion should be filled into the position that close to L3
header to avoid to be overwritten by the PVID which will always be
inserted in the position that close to the MAC address.
2) When sending multiple segment packets, VLAN information is required
to be filled into the first Tx Buffer descriptor. However, currently
hns3 PMD driver incorrectly placed it in the last Tx Buffer
Descriptor. This results in VLAN insert offload failure when sending
multiple segment packets.
This patch fixed them by filling the VLAN information into the position
of the Tx Buffer Descriptor.
Fixes:
bba636698316 ("net/hns3: support Rx/Tx and related operations")
Cc: stable@dpdk.org
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Chengchang Tang [Sat, 4 Jul 2020 10:09:49 +0000 (18:09 +0800)]
net/hns3: cleanup duplicated code on processing TSO in Tx
This patch fixes up paylen calculation twice when processing TSO request
in the '.tx_pkt_burst' ops implementation function to avoid performance
loss.
Fixes:
6dca716c9e1d ("net/hns3: support TSO")
Cc: stable@dpdk.org
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Signed-off-by: Hongbo Zheng <zhenghongbo3@huawei.com>
Wei Hu (Xavier) [Sat, 4 Jul 2020 10:09:48 +0000 (18:09 +0800)]
net/hns3: check multi-process action register result
Currently, there is a coverity defect warning about hns3 PMD driver, the
detail information as blow:
CID 289969 (#1 of 1): Unchecked return value (CHECKED_RETURN)
1. check_return: Calling rte_mp_action_register without checking return
value (as is done elsewhere 11 out of 13 times).
The problem is that missing checking the return value of calling the API
rte_mp_action_register during initialization. If registering an action
function for primary and secondary communication failed, the secondary
process can't work properly.
This patch fixes it by adding check return value of the API function
named rte_mp_action_register in the '.dev_init' implementation function
of hns3 PMD driver.
Coverity issue: 289969
Fixes:
23d4b61fee5d ("net/hns3: support multiple process")
Cc: stable@dpdk.org
Signed-off-by: Lijun Ou <oulijun@huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Honnappa Nagarahalli [Mon, 6 Jul 2020 23:32:31 +0000 (18:32 -0500)]
app/testpmd: enable empty polls in burst stats
The number of empty polls provides information about available
CPU head room in the presence of continuous polling.
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Phil Yang <phil.yang@arm.com>
Tested-by: Ali Alnubani <alialnu@mellanox.com>
Honnappa Nagarahalli [Mon, 6 Jul 2020 23:32:30 +0000 (18:32 -0500)]
app/testpmd: fix burst percentage calculation
The burst % calculation can over flow due to multiplication.
Fix the multiplication and increase the size of variables to
64b.
Fixes:
af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Phil Yang <phil.yang@arm.com>
Tested-by: Ali Alnubani <alialnu@mellanox.com>
Honnappa Nagarahalli [Mon, 6 Jul 2020 23:32:29 +0000 (18:32 -0500)]
app/testpmd: use clock time in throughput calculation
The throughput calculation requires a counter that measures
passing of time. However, the kernel saves and restores the PMU
state when a thread is unscheduled and scheduled. This ensures
that the PMU cycles are not counted towards a thread that is
not scheduled. Hence, when RTE_ARM_EAL_RDTSC_USE_PMU is enabled,
the PMU cycles do not represent the passing of time.
This results in incorrect calculation of throughput numbers.
Use clock_gettime system call to calculate the time passed since
last call.
Bugzilla ID: 450
Fixes:
0e106980301d ("app/testpmd: show throughput in port stats")
Cc: stable@dpdk.org
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Tested-by: Phil Yang <phil.yang@arm.com>
Tested-by: Ali Alnubani <alialnu@mellanox.com>
Patrick Fu [Tue, 7 Jul 2020 05:07:09 +0000 (13:07 +0800)]
vhost: introduce async enqueue for split ring
This patch implements async enqueue data path for split ring. 2 new
async data path APIs are defined, by which applications can submit
and poll packets to/from async engines. The async engine is either
a physical DMA device or it could also be a software emulated backend.
The async enqueue data path leverages callback functions registered by
applications to work with the async engine.
Signed-off-by: Patrick Fu <patrick.fu@intel.com>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
Patrick Fu [Tue, 7 Jul 2020 05:07:08 +0000 (13:07 +0800)]
vhost: introduce async enqueue registration API
Performing large memory copies usually takes up a major part of CPU
cycles and becomes the hot spot in vhost-user enqueue operation. To
offload the large copies from CPU to the DMA devices, asynchronous
APIs are introduced, with which the CPU just submits copy jobs to
the DMA but without waiting for its copy completion. Thus, there is
no CPU intervention during data transfer. We can save precious CPU
cycles and improve the overall throughput for vhost-user based
applications. This patch introduces registration/un-registration
APIs for vhost async data enqueue operation. Together with the
registration APIs implementations, data structures and the prototype
of the async callback functions required for async enqueue data path
are also defined.
Signed-off-by: Patrick Fu <patrick.fu@intel.com>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
Jeff Guo [Tue, 7 Jul 2020 05:25:46 +0000 (13:25 +0800)]
app/testpmd: add GTPU to RSS hash commands
Add testpmd cmdline support for GTPU, it could be used to configure
gtpu teid hash. The commands as below:
testpmd> flow create 0 ingress pattern eth / ipv4 / udp / gtpu / \
ipv4 / end actions rss types gtpu end key_len 0 queues end / end
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Jeff Guo [Tue, 7 Jul 2020 05:25:45 +0000 (13:25 +0800)]
net/ice: enable additional input set for RSS hash
PF could add or delete a RSS rule base on the PF's hash capability.
Some new rss input set will be supported, the protocols as below:
eth/vlan/l2tpv3/esp/ah/pfcp.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Jeff Guo [Tue, 7 Jul 2020 05:25:44 +0000 (13:25 +0800)]
net/ice: support hash for GTPU protocols
Support hash flow for the new protocols of GTPU_EH UPLINK, GTPU_EH
DOWNLINK and GTPU_IP.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Jeff Guo [Tue, 7 Jul 2020 05:25:43 +0000 (13:25 +0800)]
net/ice: refactor PF hash flow
Refactor hash flow by change the action parser and clean some code.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Jeff Guo [Tue, 7 Jul 2020 05:14:06 +0000 (13:14 +0800)]
net/iavf: enable additional hash flow
Some new hash flow will be supported to expend the flow hash
capability, the input set are the session id for NAT-T ESP protocol,
the l3 src/dst and the teid for GTPU_IP protocol.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Jeff Guo [Tue, 7 Jul 2020 05:14:05 +0000 (13:14 +0800)]
net/iavf: enable 5 tuple RSS hash
Previous iavf not support 5 tuple hash, this patch aims to enable it
for regular ip pattern and also GTPU inner ip pattern, the 5 tuple
involves ip src and ip dst, tcp sport and tcp dport, udp sport and
udp dport and protocol id.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Jeff Guo [Tue, 7 Jul 2020 05:14:04 +0000 (13:14 +0800)]
net/iavf: refactor hash flow
Refactor hash flow by change the process of the pattern parser and the
action parser, and refine the lookup table for regular IP and GTPU_EH,
ETH, and also VLAN.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Simei Su [Tue, 7 Jul 2020 03:21:15 +0000 (11:21 +0800)]
net/ice: support ether type filter on flow director
This patch enables FDIR with input set ethertype.
Signed-off-by: Simei Su <simei.su@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:22 +0000 (08:12 +0000)]
net/e1000/base: update version
Update base code version in readme.
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:21 +0000 (08:12 +0000)]
net/e1000/base: modify copyright
Modify the copyright of the file header.
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:20 +0000 (08:12 +0000)]
net/e1000/base: cleanup pre-processor tags
The codes has been exposed correctly, so remove pre-processor tags.
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:19 +0000 (08:12 +0000)]
net/e1000/base: introduce DPGFR register
Defined DPGFR, Dynamic Power Gate Force Control Register.
Signed-off-by: Vitaly Lifshits <vitaly.lifshits@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:18 +0000 (08:12 +0000)]
net/e1000/base: add ADL device ID
Add new device ID for Alder Lake brand.
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:17 +0000 (08:12 +0000)]
net/e1000/base: support MAC type for Nahum10
Add support to a new MAC type (for Nahum10).
Signed-off-by: Roman Fridlyand <roman.fridlyand@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:16 +0000 (08:12 +0000)]
net/e1000/base: expose FEXTNVM registers and masks
Adding defines for FEXTNVM8 and FEXTNVM12 registers with new masks for
future use.
Signed-off-by: Nir Efrati <nir.efrati@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:15 +0000 (08:12 +0000)]
net/e1000/base: fix led blinking for i210
Added initialization of identification LED.
Signed-off-by: Maciej Hefczyc <maciej.hefczyc@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:14 +0000 (08:12 +0000)]
net/e1000/base: modify flow control setup
Customers had a problem with large pings after connected standby.
This is due to the requirement of maintaining link after CS - the driver
blocks resets during "AdapterStart" and skips flow control setup.
Added condition in e1000_setup_link_ich8lan.c function that always setup
flow control, and setup physical interface only when no need to block
resets.
Signed-off-by: Nir Efrati <nir.efrati@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:13 +0000 (08:12 +0000)]
net/e1000/base: add missed define for VFTA
VLAN filtering using the VFTA (VLAN Filter Table Array) and
should be initialized prior to setting rx mode.
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:12 +0000 (08:12 +0000)]
net/e1000/base: remove useless statement
As it stands now, this fix will not change the current functionality
of the code. In addition, we remove the comment that seemed to be
a copy/paste from a separate implementation.
Signed-off-by: Jeb Cramer <jeb.j.cramer@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:11 +0000 (08:12 +0000)]
net/e1000/base: expose more future extended NVM
Future extended NVM 5 (five) required for a Dynamic Power Gating
control in the MAC.
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:10 +0000 (08:12 +0000)]
net/e1000/base: add missing device ID
Adding Intel(R) I210 Gigabit Network Connection 15F6 device ID for SGMII
flashless automotive device.
Signed-off-by: Kamil Bednarczyk <kamil.bednarczyk@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:09 +0000 (08:12 +0000)]
net/e1000/base: increase timeout for ME ULP exit
Due timing issues in WHL and since recovery by host is
not always supported, increased timeout for Manageability Engine(ME)
to finish Ultra Low Power(ULP) exit flow for Nahum before timer expiration.
Signed-off-by: Nir Efrati <nir.efrati@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:08 +0000 (08:12 +0000)]
net/e1000/base: add missing register defines
Added defines for the EEC, SHADOWINF and FLFWUPDATE registers needed for
the nvmupd_validate_offset function to correctly validate the NVM update
offset.
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:07 +0000 (08:12 +0000)]
net/e1000/base: add PCIm function state
Added define to pcim function state.
Signed-off-by: Vitaly Lifshits <vitaly.lifshits@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:06 +0000 (08:12 +0000)]
net/e1000/base: expose MAC functions
Now the functions are being accessed outside of the file, we need
to properly expose them for silicon families to use.
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:05 +0000 (08:12 +0000)]
net/e1000/base: remove duplicated codes
Add two files base.c and base.h to reduce the redundancy
in the silicon family code.
Remove the code duplication from e1000_82575 files.
Clean family specific functions from base.
Fix up a stray and duplicate function declaration.
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:04 +0000 (08:12 +0000)]
net/e1000/base: modify HW level time sync mechanisms
Add additional configuration space access to allow HW
level time sync mechanism.
Signed-off-by: Evgeny Efimov <evgeny.efimov@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:03 +0000 (08:12 +0000)]
net/e1000/base: fix minor issues and improve code style
Fix typo in piece of code of NVM access for SPT.
And cleans up the remaining instances in the shared code
where it was not adhering to the Linux code standard.
Wrong description was found in the mentioned file, so fix them.
Remove shadowing variable declarations.
Relating to operands in bitwise operations having different sizes.
Unreachable code since *clock_in_i2c_* always return success.
Don't return unused s32 and don't check for constants.
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Signed-off-by: Vitaly Lifshits <vitaly.lifshits@intel.com>
Signed-off-by: Robert Konklewski <robertx.konklewski@intel.com>
Signed-off-by: Doug Dziggel <douglas.a.dziggel@intel.com>
Signed-off-by: Todd Fujinaka <todd.fujinaka@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:02 +0000 (08:12 +0000)]
net/e1000/base: add function parameter descriptions
Add function parameter descriptions to address gcc 7 warnings.
Signed-off-by: Todd Fujinaka <todd.fujinaka@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:01 +0000 (08:12 +0000)]
net/e1000/base: fall through explicitly
Found some inconsistent code comments when it came to when we "fall
through", so made them more consistent and non-repetitive.
This patch adds/changes fall through comments to address new warnings
produced by gcc 7.
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Todd Fujinaka <todd.fujinaka@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:12:00 +0000 (08:12 +0000)]
net/e1000/base: expose xMDIO methods
Move read and write xmdio methods to e1000_phy.
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:11:59 +0000 (08:11 +0000)]
net/e1000/base: support i211
Add support SF/FW synchronization.
Add support to print PBA when using flashless.
Signed-off-by: Todd Fujinaka <todd.fujinaka@intel.com>
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:11:58 +0000 (08:11 +0000)]
net/e1000/base: introduce flags for outstanding requests
Introduce flags to make flexible adjusting
number of outstanding requests.
Signed-off-by: Sasha Neftin <sasha.neftin@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:11:57 +0000 (08:11 +0000)]
net/e1000/base: add ICL device ID
This patch contains a preliminary support for new LAN device ID.
Signed-off-by: Lotem Leder <lotem.leder@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Guinan Sun [Mon, 6 Jul 2020 08:11:56 +0000 (08:11 +0000)]
net/e1000/base: update for i210 slow system clock
This code is required for the update for system clock.
Signed-off-by: Todd Fujinaka <todd.fujinaka@intel.com>
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Reviewed-by: Wei Zhao <wei.zhao1@intel.com>
Simei Su [Tue, 7 Jul 2020 01:38:18 +0000 (09:38 +0800)]
net/ice: fix GTPU/PPPoE packets with no hash value
When RSS init, because of profile overlap, the GTPU_IPV4 packets
don't hit GTPU_INNER_IPV4 profile which causes no hash value. Because
of no PPPoE profile, the PPPoE packets also has no hash value. This
patch solves this issue by pulling GTPU_IPV4 profile into inner ipv4
group and creating related PPPoE profile at the same time.
Fixes:
4717a12cfaf1 ("net/ice: initialize and update RSS based on user config")
Signed-off-by: Simei Su <simei.su@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Pavel Ivashchenko [Thu, 2 Jul 2020 12:37:17 +0000 (12:37 +0000)]
net/i40e: fix getting EEPROM information
Fixes:
50130a0c4440 ("net/i40e/base: change AQ command for PHY access")
Cc: stable@dpdk.org
Signed-off-by: Pavel Ivashchenko <pivashchenko@nfware.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Shougang Wang [Mon, 6 Jul 2020 09:37:05 +0000 (09:37 +0000)]
net/ice: fix error log in generic flow
When create a RSS rule with void action, the error log is "Invalid
input set". This patch fix the issue by adding check for the type of
first actions item.
Fixes:
7615a6895009 ("net/ice: rework for generic flow enabling")
Cc: stable@dpdk.org
Signed-off-by: Shougang Wang <shougangx.wang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Simei Su [Thu, 2 Jul 2020 05:11:50 +0000 (13:11 +0800)]
net/ice: support PPPoE RSS
This patch enables PPPoE control packets with src mac and session id
and PPPoE data packets with ip address and L4 port in rte_flow.
Signed-off-by: Simei Su <simei.su@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Simei Su [Thu, 2 Jul 2020 05:11:49 +0000 (13:11 +0800)]
app/testpmd: support extended RSS offload types
This patch adds testpmd cmdline support for PPPoE.
Signed-off-by: Simei Su <simei.su@intel.com>
Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Simei Su [Thu, 2 Jul 2020 05:11:48 +0000 (13:11 +0800)]
ethdev: add PPPoE RSS offload types
This patch defines new RSS offload types for PPPoE. Typically,
session id would be the RSS input set for a PPPoE packet, but
as a hint, each driver may have different default behaviors.
Signed-off-by: Simei Su <simei.su@intel.com>
Reviewed-by: Qi Zhang <qi.z.zhang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Ajit Khaparde [Thu, 2 Jul 2020 23:28:38 +0000 (16:28 -0700)]
doc: update release notes for bnxt
Update release notes with enhancements in Broadcom PMD.
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Somnath Kotur [Thu, 2 Jul 2020 23:28:37 +0000 (16:28 -0700)]
net/bnxt: support count action in flow query
Use the flow counter manager to fetch the accumulated stats for
a flow.
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Somnath Kotur [Thu, 2 Jul 2020 23:28:36 +0000 (16:28 -0700)]
net/bnxt: add ULP flow counter manager
The Flow counter manager allocates memory to hold the software view
of the counters where the on-chip counter data will be accumulated
along with another memory block that will be shadowing the on-chip
counter data i.e where the raw counter data will be DMAed into from
the chip.
It also keeps track of the first HW counter ID as that will be needed
to retrieve the counter data in bulk using a TF API. It issues this cmd
in an rte_alarm thread that keeps running every second.
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Venkat Duvvuru [Thu, 2 Jul 2020 23:28:35 +0000 (16:28 -0700)]
net/bnxt: fill cfa action in Tx descriptor
Currently, only vfrep transmit requires cfa_action to be filled
in the tx buffer descriptor. However with truflow, dpdk(non vfrep)
to port also requires cfa_action to be filled in the tx buffer
descriptor.
This patch uses the correct cfa_action pointer while transmitting
the packet. Based on whether the packet is transmitted on non-vfrep
or vfrep, tx_cfa_action or vfr_tx_cfa_action inside txq will be
filled in the tx buffer descriptor.
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Venkat Duvvuru [Thu, 2 Jul 2020 23:28:34 +0000 (16:28 -0700)]
net/bnxt: add port default rules for ingress and egress
ingress & egress port default rules are needed to send the packet
from port_to_dpdk & dpdk_to_port respectively.
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Somnath Kotur [Thu, 2 Jul 2020 23:28:33 +0000 (16:28 -0700)]
net/bnxt: create default flow rules for port reprentor
Invoked 3 new APIs for the default flow create/destroy and to get
the action ptr for a default flow.
Changed ulp_intf_update() to accept rte_eth_dev as input and invoke
the same from the VF rep start function.
ULP Mark Manager will indicate if the cfa_code returned in the
Rx completion descriptor was for one of the default flow rules
created for the VF representor conduit. The mark_id returned
in such a case would be the VF rep's DPDK Port id, which can be
used to get the corresponding rte_eth_dev struct in bnxt_vf_recv
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Kishore Padmanabha [Thu, 2 Jul 2020 23:28:32 +0000 (16:28 -0700)]
net/bnxt: add port representor and stat templates
The support for VF representor and counters is added to the
ulp templates.
Signed-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Venkat Duvvuru [Thu, 2 Jul 2020 23:28:31 +0000 (16:28 -0700)]
net/bnxt: fill mapper parameters with default rules
Default rules are needed for the packets to be punted between the
following entities in the non-offloaded path
1. Device PORT to DPDK App
2. DPDK App to Device PORT
3. VF Representor to VF
4. VF to VF Representor
This patch fills all the relevant information in the computed fields
& the act_prop fields for the flow mapper to create the necessary
tables in the hardware to enable the default rules.
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Somnath Kotur [Thu, 2 Jul 2020 23:28:30 +0000 (16:28 -0700)]
net/bnxt: parse representors along with other devargs
Representor dev-args need to be parsed during pci probe as they determine
subsequent probe of VF representor ports as well.
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Venkat Duvvuru [Thu, 2 Jul 2020 23:28:29 +0000 (16:28 -0700)]
net/bnxt: manage VF to VFR conduit
When VF-VFR conduits are created, a mark is added to the mark database.
mark_flag indicates whether the mark is valid and has VFR information
(VFR_ID bit in mark_flag). Rx path was checking for this VFR_ID bit.
However, while adding the mark to the mark database, VFR_ID bit is not
set in mark_flag.
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Venkat Duvvuru [Thu, 2 Jul 2020 23:28:28 +0000 (16:28 -0700)]
net/bnxt: enhance port DB
1. Add "enum bnxt_ulp_intf_type” as the second parameter for the
port & func helper functions
2. Return vfrep related port & func information in the helper functions
3. Allocate phy_port_list dynamically based on port count
4. Introduce ulp_func_id_tbl array for book keeping func related
information indexed by func_id
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Venkat Duvvuru [Thu, 2 Jul 2020 23:28:27 +0000 (16:28 -0700)]
net/bnxt: enable port MAC qcfg command for trusted VF
Issue HWRM_PORT_MAC_QCFG command on trusted vf to fetch the port count.
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Kishore Padmanabha [Thu, 2 Jul 2020 23:28:26 +0000 (16:28 -0700)]
net/bnxt: support conditional execution of mapper tables
Added support for conditional execution of the mapper tables so that
actions like count will have table processed only if action count
is configured.
Signed-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Kishore Padmanabha [Thu, 2 Jul 2020 23:28:25 +0000 (16:28 -0700)]
net/bnxt: support internal exact match entries
Added support for the internal exact match entries.
Signed-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Kishore Padmanabha [Thu, 2 Jul 2020 23:28:24 +0000 (16:28 -0700)]
net/bnxt: support global resource templates
Added support for the global resource templates, so that they
can be reused by the other regular templates.
Signed-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Kishore Padmanabha [Thu, 2 Jul 2020 23:28:23 +0000 (16:28 -0700)]
net/bnxt: add index opcode and operand to mapper table
Extended the regfile and computed field operations to a common
index opcode operation and added globlal resource operations are
also part of the index opcode operation.
Signed-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Kishore Padmanabha [Thu, 2 Jul 2020 23:28:22 +0000 (16:28 -0700)]
net/bnxt: disable Tx vector mode on TruFlow
The vector mode in the tx handler is disabled when truflow is
enabled since truflow now requires bd action record support.
Signed-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Kishore Padmanabha [Thu, 2 Jul 2020 23:28:21 +0000 (16:28 -0700)]
net/bnxt: support IF table processing
Added support for if table processing in the ulp mapper
layer. This enables support for the default partition action
record pointer interface table.
Signed-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Mike Baucom [Thu, 2 Jul 2020 23:28:20 +0000 (16:28 -0700)]
net/bnxt: support internal encap records
Modifications to allow internal encap records to be supported:
- Modified the mapper index table processing to handle encap without an
action record
- Modified the session open code to reserve some 64 Byte internal encap
records on tx
- Modified the blob encap swap to support encap without action record
Signed-off-by: Mike Baucom <michael.baucom@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Kishore Padmanabha [Thu, 2 Jul 2020 23:28:19 +0000 (16:28 -0700)]
net/bnxt: integrate with the latest TF core changes
ULP changes to integrate with the latest session open
interface in tf_core
Signed-off-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Peter Spreadborough [Thu, 2 Jul 2020 23:28:18 +0000 (16:28 -0700)]
net/bnxt: support EEM system memory
- Select EEM Host or System memory via config parameter
- Add EEM system memory support for kernel memory
- Dependent on DPDK changes that add support for the HWRM_OEM_CMD.
Signed-off-by: Peter Spreadborough <peter.spreadborough@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Jay Ding [Thu, 2 Jul 2020 23:28:17 +0000 (16:28 -0700)]
net/bnxt: add global config set and get functions
- Add support to update global configuration for ACT_TECT
and ACT_ABCR.
- Add support to allow Tunnel and Action global configuration.
- Remove register read and write operations.
- Remove the register read and write support.
Signed-off-by: Jay Ding <jay.ding@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Michael Wildt [Thu, 2 Jul 2020 23:28:16 +0000 (16:28 -0700)]
net/bnxt: add TF register and unregister
- Add TF register/unregister support. Session got session clients to
keep track of the ctrl-channels/function.
- Add support code to tfp layer
Signed-off-by: Michael Wildt <michael.wildt@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Jay Ding [Thu, 2 Jul 2020 23:28:15 +0000 (16:28 -0700)]
net/bnxt: implement IF tables set and get
- Implement set/get for PROF_SPIF_CTXT, LKUP_PF_DFLT_ARP,
PROF_PF_ERR_ARP with tunneled HWRM messages
- Add IF table for PROF_PARIF_DFLT_ARP
- Fix page size offset in the HCAPI code
- Fix Entry offset calculation
Signed-off-by: Jay Ding <jay.ding@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Randy Schacher [Thu, 2 Jul 2020 23:28:14 +0000 (16:28 -0700)]
net/bnxt: align CFA resources with RM
- HCAPI resources need to align for Resource Manager
- Clean up unnecessary debug messages
Signed-off-by: Randy Schacher <stuart.schacher@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Jay Ding [Thu, 2 Jul 2020 23:28:13 +0000 (16:28 -0700)]
net/bnxt: add external action allocate and free
- Link external action alloc and free to new hcapi interface
- Add parameter range checking
- Fix issues with index allocation check
Signed-off-by: Jay Ding <jay.ding@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Peter Spreadborough [Thu, 2 Jul 2020 23:28:12 +0000 (16:28 -0700)]
net/bnxt: remove table scope from session
- Remove table scope data from session. Added to EEM.
- Complete move to RM of table scope base and range.
- Fix some err messaging strings.
- Fix the tcam logging message.
Signed-off-by: Peter Spreadborough <peter.spreadborough@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Peter Spreadborough [Thu, 2 Jul 2020 23:28:11 +0000 (16:28 -0700)]
net/bnxt: update RM to support HCAPI only
- For the EM Module there is a need to only allocate the EM Records in
HCAPI RM but the storage control is requested to be outside of the RM
DB.
- Add TF_RM_ELEM_CFG_HCAPI_BA.
- Return error when the number of reserved entries for wc tcam is odd
number in tf_tcam_bind.
- Remove em_pool from session
- Use RM provided start offset and size
- HCAPI returns entry index instead of row index for WC TCAM.
- Move resource type conversion to hrwm set/free tcam functions.
Signed-off-by: Peter Spreadborough <peter.spreadborough@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Michael Wildt [Thu, 2 Jul 2020 23:28:10 +0000 (16:28 -0700)]
net/bnxt: update table get to use new design
- Move bulk table get implementation to new Tbl Module design.
- Update messages for bulk table get
- Retrieve specified table element using bulk mechanism
- Remove deprecated resource definitions
- Update device type configuration for P4.
- Update RM DB HCAPI count check and fix EM internal and host
code such that EM DBs can be created correctly.
- Update error logging to be info on unbind in the different modules.
- Move RTE RSVD out of tf_resources.h
Signed-off-by: Michael Wildt <michael.wildt@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Peter Spreadborough [Thu, 2 Jul 2020 23:28:09 +0000 (16:28 -0700)]
net/bnxt: support EM and TCAM lookup with table scope
- Support for table scope within the EM module
- Support for host and system memory
- Update TCAM set/free.
- Replace TF device type by HCAPI RM type.
- Update TCAM set and free for HCAPI RM type
Signed-off-by: Peter Spreadborough <peter.spreadborough@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Jay Ding [Thu, 2 Jul 2020 23:28:08 +0000 (16:28 -0700)]
net/bnxt: support two-level priority for TCAMs
Allow TCAM indexes to be allocated from top or bottom.
If the priority is set to 0, allocate from the
lowest tcam indexes i.e. from top. Any other value,
allocate it from the highest tcam indexes i.e. from
bottom.
Signed-off-by: Jay Ding <jay.ding@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Michael Wildt [Thu, 2 Jul 2020 23:28:07 +0000 (16:28 -0700)]
net/bnxt: update RM with residual checker
- Add residual checker to the TF Host RM as well as new RM APIs. On
close it will scan the DB and check of any remaining elements. If
found they will be logged and FW msg sent for FW to scrub that
specific type of resources.
- Update the module bind to be aware of the module type, for each of
the modules.
- Add additional type 2 string util functions.
- Fix the device naming to be in compliance with TF.
- Update the device unbind order as to assure TCAMs gets flushed
first.
- Update the close functionality such that the session gets
closed after the device is unbound.
Signed-off-by: Michael Wildt <michael.wildt@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Michael Wildt [Thu, 2 Jul 2020 23:28:06 +0000 (16:28 -0700)]
net/bnxt: update identifier with remap support
- Add Identifier L2 CTXT Remap to the P4 device and updated the
cfa_resource_types.h to get the type support.
Signed-off-by: Michael Wildt <michael.wildt@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Michael Wildt [Thu, 2 Jul 2020 23:28:05 +0000 (16:28 -0700)]
net/bnxt: support multiple device
Implement the Identifier, Table Type and the Resource Manager
modules.
Integrate Resource Manager with HCAPI.
Update open/close session.
Move to direct msgs for qcaps and resv messages.
Signed-off-by: Michael Wildt <michael.wildt@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Jay Ding [Thu, 2 Jul 2020 23:28:04 +0000 (16:28 -0700)]
net/bnxt: support TCAM access
Implement TCAM alloc, free, bind, and unbind functions
Update tf_core, tf_msg, etc.
Signed-off-by: Jay Ding <jay.ding@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Randy Schacher [Thu, 2 Jul 2020 23:28:03 +0000 (16:28 -0700)]
net/bnxt: add core changes for EM and EEM lookups
- Move External Exact and Exact Match to device module using HCAPI
to add and delete entries
- Make EM active through the device interface.
Signed-off-by: Randy Schacher <stuart.schacher@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Shahaji Bhosle <sbhosle@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Peter Spreadborough [Thu, 2 Jul 2020 23:28:02 +0000 (16:28 -0700)]
net/bnxt: support HCAPI interface
Add new hardware shim APIs to support multiple
device generations
Signed-off-by: Peter Spreadborough <peter.spreadborough@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Shahaji Bhosle [Thu, 2 Jul 2020 23:28:01 +0000 (16:28 -0700)]
net/bnxt: support two-level priority for TCAMs
Allow TCAM indexes to be allocated from top or bottom.
If the priority is set to 0, allocate from the
lowest tcam indexes i.e. from top. Any other value,
allocate it from the highest tcam indexes i.e. from
bottom.
Signed-off-by: Shahaji Bhosle <sbhosle@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Michael Wildt [Thu, 2 Jul 2020 23:28:00 +0000 (16:28 -0700)]
net/bnxt: update multi device design
- Implement the modules RM, Device (WH+), Identifier.
- Update Session module.
- Implement new HWRMs for RM direct messaging.
- Add new parameter check macro's and clean up the header includes for
i.e. tfp such that bnxt.h is not directly included in the new modules.
- Add cfa_resource_types, required for RM design.
Signed-off-by: Michael Wildt <michael.wildt@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Shahaji Bhosle [Thu, 2 Jul 2020 23:27:59 +0000 (16:27 -0700)]
net/bnxt: support bulk table get and mirror
- Add new bulk table type get using FW
to DMA the data back to host.
- Add flag to allow records to be cleared if possible
- Set mirror using tf_alloc_tbl_entry
Signed-off-by: Shahaji Bhosle <sbhosle@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Michael Wildt [Thu, 2 Jul 2020 23:27:58 +0000 (16:27 -0700)]
net/bnxt: support multi device
Introduce new modules for Device, Resource Manager, Identifier,
Table Types, and TCAM for multi device support.
Signed-off-by: Michael Wildt <michael.wildt@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Peter Spreadborough [Thu, 2 Jul 2020 23:27:57 +0000 (16:27 -0700)]
net/bnxt: use HWRM direct for exact match insert and delete
Modify Exact Match insert and delete to use the HWRM messages directly.
Remove tunneled EM insert and delete message types.
Signed-off-by: Peter Spreadborough <peter.spreadborough@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Peter Spreadborough [Thu, 2 Jul 2020 23:27:56 +0000 (16:27 -0700)]
net/bnxt: support exact match
- Add Exact Match support
- Create EM table pool of memory indices
- Insert exact match internal entry API
- Sends EM internal insert and delete request to firmware
Signed-off-by: Peter Spreadborough <peter.spreadborough@broadcom.com>
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Randy Schacher <stuart.schacher@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Venkat Duvvuru [Thu, 2 Jul 2020 23:27:55 +0000 (16:27 -0700)]
net/bnxt: modify port DB to handle more info
Apart from func_svif, func_id & vnic, port_db now stores and
retrieves func_spif, func_parif, phy_port_id, port_svif, port_spif,
port_parif, port_vport. New helper functions have been added to
support the same.
Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Kishore Padmanabha <kishore.padmanabha@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>