| #
8c03aa5e |
| 08-Apr-2022 |
Qi Zhang <[email protected]> |
net/ice: optimize maximum queue number calculation
Remove the limitation that max queue pair number must be 2^n. With this patch, even on a 8 ports device, the max queue pair number increased from 1
net/ice: optimize maximum queue number calculation
Remove the limitation that max queue pair number must be 2^n. With this patch, even on a 8 ports device, the max queue pair number increased from 128 to 254.
Signed-off-by: Qi Zhang <[email protected]> Acked-by: Wenjun Wu <[email protected]>
show more ...
|
| #
531d2555 |
| 07-Apr-2022 |
Qi Zhang <[email protected]> |
net/ice: refactor parser usage
Not necessary to create / destroy a parser instance for every raw packet rule. A global parser instance will be created in ice_flow_init and be destroyed in ice_flow_u
net/ice: refactor parser usage
Not necessary to create / destroy a parser instance for every raw packet rule. A global parser instance will be created in ice_flow_init and be destroyed in ice_flow_uninit.
Also, ice_dev_udp_tunnel_port_add has been hooked to perform corresponding parser configure. This also fix the issue that RSS engine can't support VXLAN inner through raw packet filter.
Fixes: 1b9c68120a1c ("net/ice: enable protocol agnostic flow offloading in RSS") Cc: [email protected]
Signed-off-by: Qi Zhang <[email protected]> Acked-by: Xu Ting <[email protected]>
show more ...
|
| #
02f11b4a |
| 24-Mar-2022 |
Wenjun Wu <[email protected]> |
net/ice: support 256 queues
256 queues can be allowed now. This patch improves the code to support 256 queues for per PF.
Signed-off-by: Wenjun Wu <[email protected]> Acked-by: Qi Zhang <qi.z.zh
net/ice: support 256 queues
256 queues can be allowed now. This patch improves the code to support 256 queues for per PF.
Signed-off-by: Wenjun Wu <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2 |
|
| #
6fd3889c |
| 25-Feb-2022 |
Robin Zhang <[email protected]> |
net/ice/base: support E824S and E825 devices
Add support for E824S and E825 family devices.
This will be documented later in release notes since devices are not mature yet to announce to users.
Si
net/ice/base: support E824S and E825 devices
Add support for E824S and E825 family devices.
This will be documented later in release notes since devices are not mature yet to announce to users.
Signed-off-by: Robin Zhang <[email protected]> Acked-by: Ferruh Yigit <[email protected]>
show more ...
|
|
Revision tags: v22.03-rc1 |
|
| #
89cfd4e1 |
| 07-Feb-2022 |
Steve Yang <[email protected]> |
net/ice: fix dereference before null check
This patch fixes coverity issue by assigning the address of the "info->data" without "info" pointer check.
CID 375065: Null pointer dereferences (REVERS
net/ice: fix dereference before null check
This patch fixes coverity issue by assigning the address of the "info->data" without "info" pointer check.
CID 375065: Null pointer dereferences (REVERSE_INULL) Null-checking "info" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
Coverity issue: 375065 Fixes: 52569256583a ("net/ice: support module EEPROM")
Signed-off-by: Steve Yang <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
| #
6c76b76d |
| 25-Jan-2022 |
Yunjian Wang <[email protected]> |
net/ice: fix link up when starting device
Currently, there is a possibility that the link status is not correct after set link up, the device ID is 159b. It would be fixed by calling ice_link_update
net/ice: fix link up when starting device
Currently, there is a possibility that the link status is not correct after set link up, the device ID is 159b. It would be fixed by calling ice_link_update() while the parameter 'wait_to_complete' is true. It's reasonable to wait for complete right after set link up as it is not in an link status change interrupt handling scenario.
Fixes: cf911d90e366 ("net/ice: support link update") Cc: [email protected]
Signed-off-by: Yunjian Wang <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
| #
52569256 |
| 20-Jan-2022 |
Steve Yang <[email protected]> |
net/ice: support module EEPROM
Add new callbacks for eth_dev_ops of ice to get the information and data of plugin module EEPROM.
Signed-off-by: Steve Yang <[email protected]> Acked-by: Qi Zhang
net/ice: support module EEPROM
Add new callbacks for eth_dev_ops of ice to get the information and data of plugin module EEPROM.
Signed-off-by: Steve Yang <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
| #
7be78d02 |
| 29-Nov-2021 |
Josh Soref <[email protected]> |
fix spelling in comments and strings
The tool comes from https://github.com/jsoref
Signed-off-by: Josh Soref <[email protected]> Signed-off-by: Thomas Monjalon <[email protected]>
|
|
Revision tags: v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2 |
|
| #
f9c561ff |
| 29-Oct-2021 |
Simei Su <[email protected]> |
net/ice: fix performance for Rx timestamp
In Rx data path, it reads hardware registers per packet, resulting in big performance drop. This patch improves performance from two aspects: (1) replace pe
net/ice: fix performance for Rx timestamp
In Rx data path, it reads hardware registers per packet, resulting in big performance drop. This patch improves performance from two aspects: (1) replace per packet hardware register read by per burst. (2) reduce hardware register read time from 3 to 2 when the low value of time is not close to overflow.
Meanwhile, this patch refines "ice_timesync_read_rx_timestamp" and "ice_timesync_read_tx_timestamp" API in which "ice_tstamp_convert_32b_64b" is also used.
Fixes: 953e74e6b73a ("net/ice: enable Rx timestamp on flex descriptor") Fixes: 646dcbe6c701 ("net/ice: support IEEE 1588 PTP")
Suggested-by: Harry van Haaren <[email protected]> Signed-off-by: Simei Su <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
|
Revision tags: v21.11-rc1 |
|
| #
d61138d4 |
| 22-Oct-2021 |
Harman Kalra <[email protected]> |
drivers: remove direct access to interrupt handle
Removing direct access to interrupt handle structure fields, rather use respective get set APIs for the same. Making changes to all the drivers acce
drivers: remove direct access to interrupt handle
Removing direct access to interrupt handle structure fields, rather use respective get set APIs for the same. Making changes to all the drivers access the interrupt handle fields.
Signed-off-by: Harman Kalra <[email protected]> Acked-by: Hyong Youb Kim <[email protected]> Signed-off-by: David Marchand <[email protected]> Tested-by: Raslan Darawsheh <[email protected]>
show more ...
|
| #
295968d1 |
| 22-Oct-2021 |
Ferruh Yigit <[email protected]> |
ethdev: add namespace
Add 'RTE_ETH' namespace to all enums & macros in a backward compatible way. The macros for backward compatibility can be removed in next LTS. Also updated some struct names to
ethdev: add namespace
Add 'RTE_ETH' namespace to all enums & macros in a backward compatible way. The macros for backward compatibility can be removed in next LTS. Also updated some struct names to have 'rte_eth' prefix.
All internal components switched to using new names.
Syntax fixed on lines that this patch touches.
Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Tyler Retzlaff <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Jerin Jacob <[email protected]> Acked-by: Wisam Jaddo <[email protected]> Acked-by: Rosen Xu <[email protected]> Acked-by: Chenbo Xia <[email protected]> Acked-by: Hemant Agrawal <[email protected]> Acked-by: Somnath Kotur <[email protected]>
show more ...
|
| #
c8c69973 |
| 19-Oct-2021 |
Dapeng Yu <[email protected]> |
net/ice: fix sideband queue initialization
Sideband queue need to be initialized when device is initialized. Otherwise the calling to function "ice_init_ctrlq" may fail.
This patch fixes it.
Fixes
net/ice: fix sideband queue initialization
Sideband queue need to be initialized when device is initialized. Otherwise the calling to function "ice_init_ctrlq" may fail.
This patch fixes it.
Fixes: 97f4f78bbd9f ("net/ice/base: add functions for device clock control") Cc: [email protected]
Signed-off-by: Dapeng Yu <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
| #
b563c142 |
| 18-Oct-2021 |
Ferruh Yigit <[email protected]> |
ethdev: remove jumbo offload flag
Removing 'DEV_RX_OFFLOAD_JUMBO_FRAME' offload flag.
Instead of drivers announce this capability, application can deduct the capability by checking reported 'dev_in
ethdev: remove jumbo offload flag
Removing 'DEV_RX_OFFLOAD_JUMBO_FRAME' offload flag.
Instead of drivers announce this capability, application can deduct the capability by checking reported 'dev_info.max_mtu' or 'dev_info.max_rx_pktlen'.
And instead of application setting this flag explicitly to enable jumbo frames, this can be deduced by driver by comparing requested 'mtu' to 'RTE_ETHER_MTU'.
Removing this additional configuration for simplification.
Suggested-by: Konstantin Ananyev <[email protected]> Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Reviewed-by: Rosen Xu <[email protected]> Acked-by: Somnath Kotur <[email protected]> Acked-by: Konstantin Ananyev <[email protected]> Acked-by: Huisong Li <[email protected]> Acked-by: Hyong Youb Kim <[email protected]> Acked-by: Michal Krawczyk <[email protected]>
show more ...
|
| #
f7e04f57 |
| 18-Oct-2021 |
Ferruh Yigit <[email protected]> |
ethdev: move MTU set check to library
Move requested MTU value check to the API to prevent the duplicated code.
Signed-off-by: Ferruh Yigit <[email protected]> Reviewed-by: Andrew Rybchenko <a
ethdev: move MTU set check to library
Move requested MTU value check to the API to prevent the duplicated code.
Signed-off-by: Ferruh Yigit <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Reviewed-by: Rosen Xu <[email protected]> Acked-by: Somnath Kotur <[email protected]> Acked-by: Konstantin Ananyev <[email protected]>
show more ...
|
| #
dd4e429c |
| 18-Oct-2021 |
Ferruh Yigit <[email protected]> |
ethdev: move jumbo frame offload check to library
Setting MTU bigger than RTE_ETHER_MTU requires the jumbo frame support, and application should enable the jumbo frame offload support for it.
When
ethdev: move jumbo frame offload check to library
Setting MTU bigger than RTE_ETHER_MTU requires the jumbo frame support, and application should enable the jumbo frame offload support for it.
When jumbo frame offload is not enabled by application, but MTU bigger than RTE_ETHER_MTU is requested there are two options, either fail or enable jumbo frame offload implicitly.
Enabling jumbo frame offload implicitly is selected by many drivers since setting a big MTU value already implies it, and this increases usability.
This patch moves this logic from drivers to the library, both to reduce the duplicated code in the drivers and to make behaviour more visible.
Signed-off-by: Ferruh Yigit <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Reviewed-by: Rosen Xu <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Somnath Kotur <[email protected]> Acked-by: Konstantin Ananyev <[email protected]> Acked-by: Huisong Li <[email protected]>
show more ...
|
| #
1bb4a528 |
| 18-Oct-2021 |
Ferruh Yigit <[email protected]> |
ethdev: fix max Rx packet length
There is a confusion on setting max Rx packet length, this patch aims to clarify it.
'rte_eth_dev_configure()' API accepts max Rx packet size via 'uint32_t max_rx_p
ethdev: fix max Rx packet length
There is a confusion on setting max Rx packet length, this patch aims to clarify it.
'rte_eth_dev_configure()' API accepts max Rx packet size via 'uint32_t max_rx_pkt_len' field of the config struct 'struct rte_eth_conf'.
Also 'rte_eth_dev_set_mtu()' API can be used to set the MTU, and result stored into '(struct rte_eth_dev)->data->mtu'.
These two APIs are related but they work in a disconnected way, they store the set values in different variables which makes hard to figure out which one to use, also having two different method for a related functionality is confusing for the users.
Other issues causing confusion is: * maximum transmission unit (MTU) is payload of the Ethernet frame. And 'max_rx_pkt_len' is the size of the Ethernet frame. Difference is Ethernet frame overhead, and this overhead may be different from device to device based on what device supports, like VLAN and QinQ. * 'max_rx_pkt_len' is only valid when application requested jumbo frame, which adds additional confusion and some APIs and PMDs already discards this documented behavior. * For the jumbo frame enabled case, 'max_rx_pkt_len' is an mandatory field, this adds configuration complexity for application.
As solution, both APIs gets MTU as parameter, and both saves the result in same variable '(struct rte_eth_dev)->data->mtu'. For this 'max_rx_pkt_len' updated as 'mtu', and it is always valid independent from jumbo frame.
For 'rte_eth_dev_configure()', 'dev->data->dev_conf.rxmode.mtu' is user request and it should be used only within configure function and result should be stored to '(struct rte_eth_dev)->data->mtu'. After that point both application and PMD uses MTU from this variable.
When application doesn't provide an MTU during 'rte_eth_dev_configure()' default 'RTE_ETHER_MTU' value is used.
Additional clarification done on scattered Rx configuration, in relation to MTU and Rx buffer size. MTU is used to configure the device for physical Rx/Tx size limitation, Rx buffer is where to store Rx packets, many PMDs use mbuf data buffer size as Rx buffer size. PMDs compare MTU against Rx buffer size to decide enabling scattered Rx or not. If scattered Rx is not supported by device, MTU bigger than Rx buffer size should fail.
Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Somnath Kotur <[email protected]> Acked-by: Huisong Li <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Konstantin Ananyev <[email protected]> Acked-by: Rosen Xu <[email protected]> Acked-by: Hyong Youb Kim <[email protected]>
show more ...
|
| #
9f8c4cf0 |
| 11-Oct-2021 |
Simei Su <[email protected]> |
net/ice: fix dereferenced null pointer
This patch fixes coverity issue by avoiding use of null pointer in taking false branch.
Coverity issue: 373360 Fixes: 437dbd2fd428 ("net/ice: support 1PPS")
net/ice: fix dereferenced null pointer
This patch fixes coverity issue by avoiding use of null pointer in taking false branch.
Coverity issue: 373360 Fixes: 437dbd2fd428 ("net/ice: support 1PPS")
Signed-off-by: Simei Su <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
| #
7483341a |
| 06-Oct-2021 |
Xueming Li <[email protected]> |
ethdev: change queue release callback
Currently, most ethdev callback API use queue ID as parameter, but Rx and Tx queue release callback use queue object which is used by Rx and Tx burst data plane
ethdev: change queue release callback
Currently, most ethdev callback API use queue ID as parameter, but Rx and Tx queue release callback use queue object which is used by Rx and Tx burst data plane callback.
To align with other eth device queue configuration callbacks: - queue release callbacks are changed to use queue ID - all drivers are adapted
Signed-off-by: Xueming Li <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Somnath Kotur <[email protected]> Acked-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
646dcbe6 |
| 28-Sep-2021 |
Simei Su <[email protected]> |
net/ice: support IEEE 1588 PTP
Add ice support for new ethdev APIs to enable/disable and read/write/adjust IEEE1588 PTP timestamps. Currently, only scalar path supports 1588 PTP, vector path doesn't
net/ice: support IEEE 1588 PTP
Add ice support for new ethdev APIs to enable/disable and read/write/adjust IEEE1588 PTP timestamps. Currently, only scalar path supports 1588 PTP, vector path doesn't.
The example command for running ptpclient is as below: ./build/examples/dpdk-ptpclient -c 1 -n 3 -- -T 0 -p 0x1
Signed-off-by: Simei Su <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
| #
953e74e6 |
| 26-Sep-2021 |
Simei Su <[email protected]> |
net/ice: enable Rx timestamp on flex descriptor
Use the dynamic mbuf to register timestamp field and flag. The ice has the feature to dump Rx timestamp value into dynamic mbuf field by flex descript
net/ice: enable Rx timestamp on flex descriptor
Use the dynamic mbuf to register timestamp field and flag. The ice has the feature to dump Rx timestamp value into dynamic mbuf field by flex descriptor. This feature is turned on by dev config "enable-rx-timestamp". Currently, it's only supported under scalar path.
Signed-off-by: Simei Su <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
| #
78ac66e5 |
| 24-Sep-2021 |
Alvin Zhang <[email protected]> |
net/ice: support low Rx latency
This patch adds a devarg parameter to enable/disable low Rx latency.
Signed-off-by: Alvin Zhang <[email protected]> Acked-by: Qi Zhang <[email protected]>
|
| #
f1f6ebc0 |
| 24-Aug-2021 |
William Tu <[email protected]> |
eal: remove sys/queue.h from public headers
Currently there are some public headers that include 'sys/queue.h', which is not POSIX, but usually provided by the Linux/BSD system library. (Not in POSI
eal: remove sys/queue.h from public headers
Currently there are some public headers that include 'sys/queue.h', which is not POSIX, but usually provided by the Linux/BSD system library. (Not in POSIX.1, POSIX.1-2001, or POSIX.1-2008. Present on the BSDs.) The file is missing on Windows. During the Windows build, DPDK uses a bundled copy, so building a DPDK library works fine. But when OVS or other applications use DPDK as a library, because some DPDK public headers include 'sys/queue.h', on Windows, it triggers an error due to no such file.
One solution is to install the 'lib/eal/windows/include/sys/queue.h' into Windows environment, such as [1]. However, this means DPDK exports the functionalities of 'sys/queue.h' into the environment, which might cause symbols, macros, headers clashing with other applications.
The patch fixes it by removing the "#include <sys/queue.h>" from DPDK public headers, so programs including DPDK headers don't depend on the system to provide 'sys/queue.h'. When these public headers use macros such as TAILQ_xxx, we replace it by the ones with RTE_ prefix. For Windows, we copy the definitions from <sys/queue.h> to rte_os.h in Windows EAL. Note that these RTE_ macros are compatible with <sys/queue.h>, both at the level of API (to use with <sys/queue.h> macros in C files) and ABI (to avoid breaking it).
Additionally, the TAILQ_FOREACH_SAFE is not part of <sys/queue.h>, the patch replaces it with RTE_TAILQ_FOREACH_SAFE.
[1] http://mails.dpdk.org/archives/dev/2021-August/216304.html
Suggested-by: Nick Connolly <[email protected]> Suggested-by: Dmitry Kozlyuk <[email protected]> Signed-off-by: William Tu <[email protected]> Acked-by: Dmitry Kozlyuk <[email protected]> Acked-by: Narcisa Vasile <[email protected]>
show more ...
|
| #
cc46bab5 |
| 16-Sep-2021 |
Wenjun Wu <[email protected]> |
net/ice: remove support for IP fragment default RSS
To support independent IP fragment default RSS, considerable additional work need to be done, so we decide to remove this feature to avoid some un
net/ice: remove support for IP fragment default RSS
To support independent IP fragment default RSS, considerable additional work need to be done, so we decide to remove this feature to avoid some unexpected behavior we have observed, meanwhile user always can use rte_flow to create RSS for IP fragment packet explicitly.
Signed-off-by: Wenjun Wu <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
| #
437dbd2f |
| 15-Sep-2021 |
Simei Su <[email protected]> |
net/ice: support 1PPS
The E810 supports four single-ended GPIO signals (SDP[20:23]). The 1PPS signal outputs via SDP[20:23], which is measured by an oscilloscope. This feature can be turned by a dev
net/ice: support 1PPS
The E810 supports four single-ended GPIO signals (SDP[20:23]). The 1PPS signal outputs via SDP[20:23], which is measured by an oscilloscope. This feature can be turned by a devargs which can select GPIO pin index flexibly. Pin index 0 means SDP20, pin index 1 means SDP21 and so on.
The example for test command is as below: ./build/app/dpdk-testpmd -a af:00.0,pps_out='[pin:2]' -c f -n 4 -- -i
Signed-off-by: Simei Su <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
| #
b3d95f18 |
| 17-Aug-2021 |
Wenjun Wu <[email protected]> |
net/ice: fix default RSS hash for IP fragments
Previously, hash value is calculated by src IP address, dst IP address and IP ID. However, default RSS field only needs src and dst IP address.
This p
net/ice: fix default RSS hash for IP fragments
Previously, hash value is calculated by src IP address, dst IP address and IP ID. However, default RSS field only needs src and dst IP address.
This patch removes IP ID from default RSS field for IP fragment packets to improve default RSS configuration.
Fixes: 4027fffe86f4 ("net/ice: support default RSS for IP fragment packet") Cc: [email protected]
Signed-off-by: Wenjun Wu <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|