| 18ca4a4e | 12-May-2022 |
Raja Zidane <[email protected]> |
net/mlx5: support ESP SPI match and RSS hash
In packets with ESP header, the inner IP will be encrypted, and its fields cannot be used for RSS hashing. So, ESP packets can be hashed only by the oute
net/mlx5: support ESP SPI match and RSS hash
In packets with ESP header, the inner IP will be encrypted, and its fields cannot be used for RSS hashing. So, ESP packets can be hashed only by the outer IP layer. So, when using RSS on ESP packets, hashing may not be efficient, because the fields used by the hash functions are only the outer IPs, causing all traffic belonging to all tunnels between a given pair of GWs to land on one core. Adding the SPI hash field can extend the spreading of IPsec packets.
Signed-off-by: Raja Zidane <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| cb91f12f | 10-Apr-2022 |
Adham Masarwah <[email protected]> |
net/mlx5: support MTU settings on Windows
Mlx5Devx library has new API's for setting and getting MTU. Added new glue functions that wrap the new mlx5devx lib API's. Implemented the os_ethdev callbac
net/mlx5: support MTU settings on Windows
Mlx5Devx library has new API's for setting and getting MTU. Added new glue functions that wrap the new mlx5devx lib API's. Implemented the os_ethdev callbacks to use the new glue functions in Windows.
Signed-off-by: Adham Masarwah <[email protected]> Tested-by: Idan Hackmon <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| 3014718f | 10-Apr-2022 |
Adham Masarwah <[email protected]> |
net/mlx5: support promiscuous modes on Windows
Support of the set promiscuous modes by calling the new API In Mlx5DevX Lib. Added new glue API for Windows which will be used to communicate with Wind
net/mlx5: support promiscuous modes on Windows
Support of the set promiscuous modes by calling the new API In Mlx5DevX Lib. Added new glue API for Windows which will be used to communicate with Windows driver to enable/disable PROMISC or ALLMC.
Signed-off-by: Adham Masarwah <[email protected]> Tested-by: Idan Hackmon <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| f956d3d4 | 06-Apr-2022 |
Rongwei Liu <[email protected]> |
net/mlx5: fix probing with secondary bonding member
Users can probe primary or secondary PCIe id when bonding is configured. 1. -a 0a:00.0,representor=pf[0-1]vf[0-1], PMD probes 5 ports totally: bon
net/mlx5: fix probing with secondary bonding member
Users can probe primary or secondary PCIe id when bonding is configured. 1. -a 0a:00.0,representor=pf[0-1]vf[0-1], PMD probes 5 ports totally: bonding device plus 4 representor ports. 2. -a 0a:00.1,representor=pf[0-1]vf[0-1], PMD only probes 2 representor ports.
Under the 2nd condition, bonding IB device doesn't have the same PCIe id and PMD needs to check bonding relationship otherwise probe failure.
Fixes: 6856efa54eea ("net/mlx5: fix PF leak on PCI probing failure") Cc: [email protected]
Signed-off-by: Rongwei Liu <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| 81132518 | 31-Mar-2022 |
Dmitry Kozlyuk <[email protected]> |
common/mlx5: fix memory region range calculation
MR end for a mempool chunk may be calculated incorrectly. For example, for chunk with addr=1.5M and len=1M with 2M page size the range would be [0, 2
common/mlx5: fix memory region range calculation
MR end for a mempool chunk may be calculated incorrectly. For example, for chunk with addr=1.5M and len=1M with 2M page size the range would be [0, 2M), while the proper result is [0, 4M). Fix the calculation.
Fixes: 690b2a88c2f7 ("common/mlx5: add mempool registration facilities") Cc: [email protected]
Signed-off-by: Dmitry Kozlyuk <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| 71adf25d | 02-Mar-2022 |
Gregory Etelson <[email protected]> |
net/mlx5: fix flex item availability
Flex item availability is restricted to BlueField-2 and BlueField-3 PF ports.
The patch validates port type compliance before proceeding to flex item creation.
net/mlx5: fix flex item availability
Flex item availability is restricted to BlueField-2 and BlueField-3 PF ports.
The patch validates port type compliance before proceeding to flex item creation.
Fixes: db25cadc0887 ("net/mlx5: add flex item operations") Cc: [email protected]
Signed-off-by: Gregory Etelson <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| 2c75b9bc | 01-Mar-2022 |
Michael Baum <[email protected]> |
common/mlx5: fix default devargs initialization
Device arguments list is provided along with its identifier as part of EAL arguments. The arguments specified in the list are taken from it, and the r
common/mlx5: fix default devargs initialization
Device arguments list is provided along with its identifier as part of EAL arguments. The arguments specified in the list are taken from it, and the rest is initialized to the default values.
When no list is provided at all, all arguments should have been initialized to their default values. However, they are mistakenly initialized to zero which may be a valid value for some.
This patch initializes the default values before checking whether arguments have been specified.
Bugzilla ID: 945 Fixes: a729d2f093e9 ("common/mlx5: refactor devargs management")
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| be66461c | 01-Mar-2022 |
Dmitry Kozlyuk <[email protected]> |
common/mlx5: add Netlink event helpers
Introduce mlx5_nl_read_events() to read Netlink events (technically, messages) from a socket that was configured to listen for them via a new mlx5_nl_init() pa
common/mlx5: add Netlink event helpers
Introduce mlx5_nl_read_events() to read Netlink events (technically, messages) from a socket that was configured to listen for them via a new mlx5_nl_init() parameter. Add mlx5_nl_parse_link_status_update() helper to extract information from link-related events. This patch is a shared base for later fixes.
Cc: [email protected]
Signed-off-by: Dmitry Kozlyuk <[email protected]> Reviewed-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| d2781de6 | 27-Feb-2022 |
Raja Zidane <[email protected]> |
compress/mlx5: support out-of-space status
When trying to dequeue, an OP may fail due to insufficient space for the OP output, the compressdev API defines out-of-space for OP status. The driver can
compress/mlx5: support out-of-space status
When trying to dequeue, an OP may fail due to insufficient space for the OP output, the compressdev API defines out-of-space for OP status. The driver can detect out-of-space errors and report them to the user. Check if hw_error_syndrome specifies out-of-space and set the OP status accordingly. Also added an error message for a case of missing B-final flag.
Fixes: f8c97babc9f4 ("compress/mlx5: add data-path functions") Cc: [email protected]
Signed-off-by: Raja Zidane <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| 68eb9a19 | 25-Feb-2022 |
Stephen Hemminger <[email protected]> |
remove extra blank line at EOF
These source files all had unnecessary blank line at end of file.
Signed-off-by: Stephen Hemminger <[email protected]> |
| 9d936f4f | 24-Feb-2022 |
Michael Baum <[email protected]> |
common/mlx5: support remote PD and CTX
Add option to probe common device using import CTX/PD functions instead of create functions. This option requires accepting the context FD and the PD handle as
common/mlx5: support remote PD and CTX
Add option to probe common device using import CTX/PD functions instead of create functions. This option requires accepting the context FD and the PD handle as devargs.
This sharing can be useful for applications that use PMD for only some operations. For example, an app that generates queues itself and uses PMD just to configure flow rules.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| 0777921a | 24-Feb-2022 |
Michael Baum <[email protected]> |
common/mlx5: glue device and PD import
Add support for rdma-core API to import device. The API gets ibv_context file descriptor and returns an ibv_context pointer that is associated with the given f
common/mlx5: glue device and PD import
Add support for rdma-core API to import device. The API gets ibv_context file descriptor and returns an ibv_context pointer that is associated with the given file descriptor. Add also support for rdma-core API to import PD. The API gets ibv_context and PD handle and returns a protection domain (PD) that is associated with the given handle in the given context.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| c2e3059a | 24-Feb-2022 |
Michael Baum <[email protected]> |
common/mlx5: consider local functions as internal
The functions which are not explicitly marked as internal were exported because the local catch-all rule was missing in the version script. After ad
common/mlx5: consider local functions as internal
The functions which are not explicitly marked as internal were exported because the local catch-all rule was missing in the version script. After adding the missing rule, all local functions are hidden. The function mlx5_get_device_guid is used in another library, so it needs to be exported (as internal).
Because the local functions were exported as non-internal in DPDK 21.11, any change in these functions would break the ABI. An ABI exception is added for this library, considering that all functions are either local or internal.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| 5c4d4917 | 25-Feb-2022 |
Sean Zhang <[email protected]> |
net/mlx5: support matching GRE optional fields
This patch adds matching on the optional fields (checksum/key/sequence) of GRE header. The matching on checksum and sequence fields requests support fr
net/mlx5: support matching GRE optional fields
This patch adds matching on the optional fields (checksum/key/sequence) of GRE header. The matching on checksum and sequence fields requests support from rdma-core with the capability of misc5 and tunnel_header 0-3.
For patterns without checksum and sequence specified, keep using misc for matching as before, but for patterns with checksum or sequence, validate capability first and then use misc5 for the matching.
Signed-off-by: Sean Zhang <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| 7dac7abe | 24-Feb-2022 |
Viacheslav Ovsiienko <[email protected]> |
common/mlx5: check send on time capability
The patch provides check for send scheduling on time hardware capability. With this capability enabled hardware is able to handle Wait WQEs with directly s
common/mlx5: check send on time capability
The patch provides check for send scheduling on time hardware capability. With this capability enabled hardware is able to handle Wait WQEs with directly specified timestamp values. No Clock Queue is needed anymore to handle send scheduling.
Signed-off-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| a6b9d5a5 | 23-Feb-2022 |
Michael Baum <[email protected]> |
common/mlx5: update doorbell mapping parameter name
The "tx_db_nc" devarg forces doorbell register mapping to non-cached region eliminating the extra write memory barrier. This argument was used in
common/mlx5: update doorbell mapping parameter name
The "tx_db_nc" devarg forces doorbell register mapping to non-cached region eliminating the extra write memory barrier. This argument was used in creating the UAR for Tx and thus affected its performance.
Recently [1] its use has been extended to all UAR creation in all mlx5 drivers, and now its name is no longer so accurate.
This patch changes its name to "sq_db_nc" to suit any send queue that uses it. The old name will still work for backward compatibility.
[1] commit 5dfa003db53f ("common/mlx5: fix post doorbell barrier")
Signed-off-by: Michael Baum <[email protected]> Reviewed-by: Raslan Darawsheh <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| 38eb5c9f | 22-Feb-2022 |
Shun Hao <[email protected]> |
net/mlx5: fix E-Switch manager vport ID
One of the E-Switch vports plays the special role - it is assigned as "E-Switch manager" and has some special exclusive rights and duties - it maintains all t
net/mlx5: fix E-Switch manager vport ID
One of the E-Switch vports plays the special role - it is assigned as "E-Switch manager" and has some special exclusive rights and duties - it maintains all the representors, manages FDB domain flows, etc. By default, the E-Switch vport index was supposed to be zero on standalone NICs (regular ConnectX) and 0xFFFE SmartNIC (BlueField), but that was not always correct - this index can be assigned with any value by kernel/hypervisor.
Currently the E-Switch manager vport id is supposed to be default - 0 for standalone NICs, and 0xFFFE for the SmartNICs, and is deduced from the device PCI id.
To handle this and do not suggest any default values, can use DevX API to query E-Switch manager vport ID directly from the firmware during initialization, and use that value by default. If the new method is not provided (legacy firmware), fallback to use the PCI id approach.
Fixes: a564038699f9 ("net/mlx5: support E-Switch manager egress traffic match") Cc: [email protected]
Signed-off-by: Shun Hao <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|
| 05b54bf0 | 14-Feb-2022 |
Yajun Wu <[email protected]> |
common/mlx5: fix queue pair ack timeout configuration
VDPA driver creates two QPs(1 queue pair include 1 send queue and 1 receive queue) per virtio queue to get traffic events from NIC to SW. Two QP
common/mlx5: fix queue pair ack timeout configuration
VDPA driver creates two QPs(1 queue pair include 1 send queue and 1 receive queue) per virtio queue to get traffic events from NIC to SW. Two QPs(called FW QP and SW QP) are created as loopback QP and FW QP'SQ is connected to SW QP'RQ internally.
When packet receive or send out, HW will send WQE by FW QP'SQ, then SW will get CQE from the CQ of SW QP.
With large scale and heavy traffic, the SQ's request may fail to get ACK from RQ HW, because HW is busy. SQ will retry the request with qpc.retry_count times and each time wait for 4.096 uS *2^(ack_timeout) for the response. If still can’t get RQ’s HW response, SQ will go to an error state.
16 is experienced value. It should not be too high or too low. Too high will make QP waits too long in case it’s packet drop. Too low will cause QP to go to an error state(retry-exceeded) easily.
Fixes: 15c3807e86ab ("common/mlx5: support DevX QP operations") Cc: [email protected]
Signed-off-by: Yajun Wu <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| a729d2f0 | 14-Feb-2022 |
Michael Baum <[email protected]> |
common/mlx5: refactor devargs management
Improve the devargs handling in two aspects: - Parse the devargs string only once. - Return error and report for unknown keys.
The common driver parses on
common/mlx5: refactor devargs management
Improve the devargs handling in two aspects: - Parse the devargs string only once. - Return error and report for unknown keys.
The common driver parses once the devargs string into a dictionary, then provides it to all the drivers' probe. Each driver updates within it which keys it has used, then common driver receives the updated dictionary and reports about unknown devargs.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| c089eb93 | 14-Feb-2022 |
Michael Baum <[email protected]> |
common/mlx5: check common devargs in probing again
MLX5 common driver supports probing again in two scenarios: - Add new driver under existing device. common probe function gets it in devargs, t
common/mlx5: check common devargs in probing again
MLX5 common driver supports probing again in two scenarios: - Add new driver under existing device. common probe function gets it in devargs, then calls the requested driver's probe function (regardless of the driver's own support in probing again) with the existing device as parameter. - Transfer the probing again support of the drivers themselves (currently only net). In this scenario, the existing device is sent as a parameter to the existing driver's probe too.
In both cases it gets a new set of arguments that do not necessarily match the configured arguments in the existing device. Some of the arguments belong to the configuration of the existing device, so they can't be updated in the probing again. On the other hand, there are arguments that belong to a specific driver or specific port and might get a new value in the probing again. The user might generate any argument he wants in probing again, but when he generates arguments belonging to the common device configuration, it does not affect.
This patch adds an explicit check for the devargs belonging to the common device configuration. If there is no match to the existing configuration, it returns an error.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| c4c3e8af | 14-Feb-2022 |
Michael Baum <[email protected]> |
common/mlx5: share VF check function
The check if device is VF work for Linux as same as Windows. This patch removes it to the function implemented in the folder shared between the operating systems
common/mlx5: share VF check function
The check if device is VF work for Linux as same as Windows. This patch removes it to the function implemented in the folder shared between the operating systems, removing the duplication.
Signed-off-by: Michael Baum <[email protected]> Acked-by: Matan Azrad <[email protected]>
show more ...
|
| 06c047b6 | 09-Feb-2022 |
Stephen Hemminger <[email protected]> |
remove unnecessary null checks
Functions like free, rte_free, and rte_mempool_free already handle NULL pointer so the checks here are not necessary.
Remove redundant NULL pointer checks before free
remove unnecessary null checks
Functions like free, rte_free, and rte_mempool_free already handle NULL pointer so the checks here are not necessary.
Remove redundant NULL pointer checks before free functions found by nullfree.cocci
Signed-off-by: Stephen Hemminger <[email protected]>
show more ...
|
| 3cacda8f | 07-Feb-2022 |
Weiguo Li <[email protected]> |
common/mlx5: remove useless C++ include guard
Remove the incomplete cplusplus guard in internal headers.
Fixes: 7525ebd8ebb0 ("common/mlx5: add glue functions on Windows")
Signed-off-by: Weiguo Li
common/mlx5: remove useless C++ include guard
Remove the incomplete cplusplus guard in internal headers.
Fixes: 7525ebd8ebb0 ("common/mlx5: add glue functions on Windows")
Signed-off-by: Weiguo Li <[email protected]>
show more ...
|
| ecb904cc | 20-Jan-2022 |
Bruce Richardson <[email protected]> |
build: fix warnings when running external commands
Meson 0.61.1 is giving warnings that the calls to run_command do not always explicitly specify if the result is to be checked or not, i.e. there is
build: fix warnings when running external commands
Meson 0.61.1 is giving warnings that the calls to run_command do not always explicitly specify if the result is to be checked or not, i.e. there is a missing "check" parameter. This is because the default behaviour without the parameter is due to change in the future.
We can fix these warnings by explicitly adding into each call whether the result should be checked by meson or not. This patch therefore adds in "check: false" to each run_command call where the result is being checked by the DPDK meson.build code afterwards, and adds in "check: true" to any calls where the result is currently unchecked.
Bugzilla ID: 921 Cc: [email protected]
Reported-by: Jerin Jacob <[email protected]> Signed-off-by: Bruce Richardson <[email protected]> Tested-by: Jerin Jacob <[email protected]>
show more ...
|
| b4a4159d | 17-Jan-2022 |
Bing Zhao <[email protected]> |
common/mlx5: fix probing failure code
While probing the device with unsupported class, the process should fail because no appropriate driver was found. After traversing all the drivers, an error val
common/mlx5: fix probing failure code
While probing the device with unsupported class, the process should fail because no appropriate driver was found. After traversing all the drivers, an error value should be returned for the case.
In the previous implementation, zero value indicating probing success was wrongly returned.
Fixes: ad435d320473 ("common/mlx5: add bus-agnostic layer") Cc: [email protected]
Signed-off-by: Bing Zhao <[email protected]> Acked-by: Viacheslav Ovsiienko <[email protected]>
show more ...
|