| #
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 ...
|
|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3 |
|
| #
5543827f |
| 28-Feb-2022 |
Wenjun Wu <[email protected]> |
net/ice: improve performance of Rx timestamp offload
Previously, each time a burst of packets is received, SW reads HW register and assembles it and the timestamp from descriptor together to get the
net/ice: improve performance of Rx timestamp offload
Previously, each time a burst of packets is received, SW reads HW register and assembles it and the timestamp from descriptor together to get the complete 64 bits timestamp.
This patch optimizes the algorithm. The SW only needs to check the monotonicity of the low 32bits timestamp to avoid crossing borders. Each time before SW receives a burst of packets, it should check the time difference between current time and last update time to avoid the low 32 bits timestamp cycling twice.
The patch proved a 50% ~ 70% single core performance improvement on a main stream Xeon server, this fix the performance gap for some use cases.
Fixes: f9c561ffbccc ("net/ice: fix performance for Rx timestamp") Cc: [email protected]
Signed-off-by: Wenjun Wu <[email protected]> Acked-by: Qi Zhang <[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-rc2, v22.03-rc1 |
|
| #
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 ...
|
|
Revision tags: v21.11, v21.11-rc4 |
|
| #
285f63fc |
| 24-Nov-2021 |
Dapeng Yu <[email protected]> |
net/ice: track DCF state of PF
When VF is reset, PF will change DCF state from ON to other state, if flow creation, destroy, or redirect command is sent to DCF at this time, it will fail.
This patc
net/ice: track DCF state of PF
When VF is reset, PF will change DCF state from ON to other state, if flow creation, destroy, or redirect command is sent to DCF at this time, it will fail.
This patch tracks DCF state and returns try-again error to caller when DCF state is not ON.
Cc: [email protected]
Signed-off-by: Dapeng Yu <[email protected]> Acked-by: Haiyue Wang <[email protected]>
show more ...
|
| #
b53d106d |
| 22-Nov-2021 |
Sean Morrissey <[email protected]> |
remove repeated 'the' in the code
Remove the use of double "the" as it does not make sense.
Cc: [email protected]
Signed-off-by: Sean Morrissey <[email protected]> Signed-off-by: Conor Fogart
remove repeated 'the' in the code
Remove the use of double "the" as it does not make sense.
Cc: [email protected]
Signed-off-by: Sean Morrissey <[email protected]> Signed-off-by: Conor Fogarty <[email protected]> Acked-by: John McNamara <[email protected]> Reviewed-by: Conor Walsh <[email protected]> Acked-by: Somnath Kotur <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
|
Revision tags: v21.11-rc3 |
|
| #
25cf2630 |
| 17-Nov-2021 |
Ferruh Yigit <[email protected]> |
net: add macro for VLAN header length
Multiple drivers are defining macros for VLAN header length, to remove the redundancy defining macro in the ether header. And updated drivers to use the new mac
net: add macro for VLAN header length
Multiple drivers are defining macros for VLAN header length, to remove the redundancy defining macro in the ether header. And updated drivers to use the new macro.
Signed-off-by: Ferruh Yigit <[email protected]> Acked-by: Haiyue Wang <[email protected]> Acked-by: Rosen Xu <[email protected]> Acked-by: Jiawen Wu <[email protected]>
show more ...
|
| #
79815519 |
| 16-Nov-2021 |
Alvin Zhang <[email protected]> |
net/ice: fix secondary process Rx offload path
Secondary process depends on the vector offload flag to select right Rx offload path. This patch adds a variable in share memory to store the vector of
net/ice: fix secondary process Rx offload path
Secondary process depends on the vector offload flag to select right Rx offload path. This patch adds a variable in share memory to store the vector offload flag that can be directly read by secondary process.
Fixes: 808a17b3c1e6 ("net/ice: add Rx AVX512 offload path") Cc: [email protected]
Signed-off-by: Alvin Zhang <[email protected]> Tested-by: Qin Sun <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
|
Revision tags: v21.11-rc2 |
|
| #
1b9c6812 |
| 04-Nov-2021 |
Ting Xu <[email protected]> |
net/ice: enable protocol agnostic flow offloading in RSS
Enable protocol agnostic flow offloading to support raw pattern input for RSS hash flow rule creation. It is based on Parser Library feature.
net/ice: enable protocol agnostic flow offloading in RSS
Enable protocol agnostic flow offloading to support raw pattern input for RSS hash flow rule creation. It is based on Parser Library feature. Current rte_flow raw API is utilized.
Signed-off-by: Ting Xu <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
| #
25be39cc |
| 03-Nov-2021 |
Junfeng Guo <[email protected]> |
net/ice: enable protocol agnostic flow offloading in FDIR
Protocol agnostic flow offloading in Flow Director is enabled by this patch based on the Parser Library, using existing rte_flow raw API.
N
net/ice: enable protocol agnostic flow offloading in FDIR
Protocol agnostic flow offloading in Flow Director is enabled by this patch based on the Parser Library, using existing rte_flow raw API.
Note that the raw flow requires: 1. byte string of raw target packet bits. 2. byte string of mask of target packet.
Here is an example: FDIR matching ipv4 dst addr with 1.2.3.4 and redirect to queue 3:
flow create 0 ingress pattern raw \ pattern spec \ 00000000000000000000000008004500001400004000401000000000000001020304 \ pattern mask \ 000000000000000000000000000000000000000000000000000000000000ffffffff \ / end actions queue index 3 / mark id 3 / end
Note that mask of some key bits (e.g., 0x0800 to indicate ipv4 proto) is optional in our cases. To avoid redundancy, we just omit the mask of 0x0800 (with 0xFFFF) in the mask byte string example. The prefix '0x' for the spec and mask byte (hex) strings are also omitted here.
Also update the ice feature list with rte_flow item raw.
Signed-off-by: Junfeng Guo <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
| #
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 |
|
| #
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 ...
|
| #
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 ...
|
| #
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]>
|
| #
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 ...
|
|
Revision tags: v21.08, v21.08-rc4, v21.08-rc3 |
|
| #
4f72c21f |
| 28-Jul-2021 |
Simei Su <[email protected]> |
net/ice: fix max entry number for ACL normal priority
For ACL, there are three entry priorities: LOW, NORMAL, HIGH. Low priority starts from the highest index, 25% of total entries; Normal priority
net/ice: fix max entry number for ACL normal priority
For ACL, there are three entry priorities: LOW, NORMAL, HIGH. Low priority starts from the highest index, 25% of total entries; Normal priority starts from the highest index, 50% of total entries; High priority starts from the lowest index, 25% of total entries.
Each TCAM block has 512 entries of 40 bits. Currently, there is a scenario in which multiple TCAM blocks are cascaded. It means the total entries are 512. The default priority is NORMAL, so the max entry is 256, not 512. This patch changes the max entry number for NORMAL priority.
Fixes: 40d466fa9f76 ("net/ice: support ACL filter in DCF") Cc: [email protected]
Signed-off-by: Simei Su <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
|
Revision tags: v21.08-rc2, v21.08-rc1 |
|
| #
7f7cbf80 |
| 07-Jul-2021 |
David Marchand <[email protected]> |
net/ice: factorize firmware loading
Both "normal" and "dcf" inits have their copy of some firmware loading code.
The DSN query is moved in specific parts for the "normal" and "dcf" init.
A common
net/ice: factorize firmware loading
Both "normal" and "dcf" inits have their copy of some firmware loading code.
The DSN query is moved in specific parts for the "normal" and "dcf" init.
A common helper ice_load_pkg is then introduced and takes an adapter pointer as its main input.
This helper takes care of finding the right firmware file and loading it. The adapter active_pkg_type field is set by this helper.
The ice_access macro is removed from the osdep.h header: osdep.h should only hosts wrappers for base driver code.
Signed-off-by: David Marchand <[email protected]> Acked-by: Haiyue Wang <[email protected]>
show more ...
|
| #
45f6a19f |
| 26-May-2021 |
Qi Zhang <[email protected]> |
net/ice: fix data path in secondary process
The rte_eth_devices array is not in share memory, it should not be referenced by ice_adapter which is shared by primary and secondary. Any process set ice
net/ice: fix data path in secondary process
The rte_eth_devices array is not in share memory, it should not be referenced by ice_adapter which is shared by primary and secondary. Any process set ice_adapter->eth_dev will corrupt another process' context.
The patch removed the field "eth_dev" from ice_adapter. Now, when the data paths try to access the rte_eth_dev_data instance, they should replace adapter->eth_dev->data with adapter->pf.dev_data.
Fixes: f9cf4f864150 ("net/ice: support device initialization") Cc: [email protected]
Reported-by: Yixue Wang <[email protected]> Signed-off-by: Qi Zhang <[email protected]> Tested-by: Yixue Wang <[email protected]>
show more ...
|
| #
f8b3326f |
| 24-May-2021 |
Qi Zhang <[email protected]> |
net/ice: fix data path selection in secondary process
The flag use_avx2 and use_avx512 are defined as local variables, they will not be aware by the secondary process, then wrong data path is select
net/ice: fix data path selection in secondary process
The flag use_avx2 and use_avx512 are defined as local variables, they will not be aware by the secondary process, then wrong data path is selected. Fix the issue by moving them into struct ice_adapter.
Fixes: ae60d3c9b227 ("net/ice: support Rx AVX2 vector") Fixes: 2d5f6953d56d ("net/ice: support vector AVX2 in Tx") Fixes: 7f85d5ebcfe1 ("net/ice: add AVX512 vector path") Cc: [email protected]
Reported-by: Yixue Wang <[email protected]> Signed-off-by: Qi Zhang <[email protected]> Tested-by: Yixue Wang <[email protected]>
show more ...
|
|
Revision tags: v21.05, v21.05-rc4, v21.05-rc3, v21.05-rc2, v21.05-rc1 |
|
| #
387e72ed |
| 02-Mar-2021 |
Zhirun Yan <[email protected]> |
net/ice: refactor flow director filter structure
This patch use input_set_o and input_set_i to distinguish inner/outer input set. input_set_i is only used for inner field.
Signed-off-by: Zhirun Yan
net/ice: refactor flow director filter structure
This patch use input_set_o and input_set_i to distinguish inner/outer input set. input_set_i is only used for inner field.
Signed-off-by: Zhirun Yan <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
|
Revision tags: v21.02, v21.02-rc4, v21.02-rc3 |
|
| #
295b34f5 |
| 04-Feb-2021 |
Haiyue Wang <[email protected]> |
net/ice: fix VLAN 0 adding based on VLAN mode
In Single VLAN Mode, single VLAN filters via ICE_SW_LKUP_VLAN are based on the inner VLAN ID, so the VLAN TPID (i.e. 0x8100 or 0x888a8) doesn't matter.
net/ice: fix VLAN 0 adding based on VLAN mode
In Single VLAN Mode, single VLAN filters via ICE_SW_LKUP_VLAN are based on the inner VLAN ID, so the VLAN TPID (i.e. 0x8100 or 0x888a8) doesn't matter.
In Double VLAN Mode, outer/single VLAN filters via ICE_SW_LKUP_VLAN are based on the outer/single VLAN ID + VLAN TPID.
For both modes, adding a VLAN 0 + no VLAN TPID filter to handle untagged traffic when VLAN pruning is enabled. Also, this handles VLAN 0 priority tagged traffic in Single VLAN Mode, since the VLAN TPID is not part of filtering.
If Double VLAN Mode is enabled then an explicit VLAN 0 + VLAN TPID filter needs to be added to allow VLAN 0 priority tagged traffic in DVM, since the VLAN TPID is part of filtering.
Fixes: 14e7a4b37b4f ("net/ice/base: support configuring device in double VLAN mode")
Signed-off-by: Haiyue Wang <[email protected]> Acked-by: Qi Zhang <[email protected]>
show more ...
|
|
Revision tags: v21.02-rc2 |
|
| #
df96fd0d |
| 29-Jan-2021 |
Bruce Richardson <[email protected]> |
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by:
ethdev: make driver-only headers private
The rte_ethdev_driver.h, rte_ethdev_vdev.h and rte_ethdev_pci.h files are for drivers only and should be a private to DPDK and not installed.
Signed-off-by: Bruce Richardson <[email protected]> Reviewed-by: Maxime Coquelin <[email protected]> Acked-by: Thomas Monjalon <[email protected]> Acked-by: Steven Webster <[email protected]>
show more ...
|
|
Revision tags: v21.02-rc1 |
|
| #
14801aa3 |
| 18-Jan-2021 |
Steve Yang <[email protected]> |
net/ice: fix jumbo frame flag condition
The jumbo frame uses the 'RTE_ETHER_MAX_LEN' as boundary condition, but the Ether overhead is larger than 18 when it supports dual VLAN tags. That will cause
net/ice: fix jumbo frame flag condition
The jumbo frame uses the 'RTE_ETHER_MAX_LEN' as boundary condition, but the Ether overhead is larger than 18 when it supports dual VLAN tags. That will cause the jumbo flag rx offload is wrong when MTU size is 'RTE_ETHER_MTU'.
This fix will change the boundary condition with 'RTE_ETHER_MTU' and overhead, that perhaps impacts the cases of the jumbo frame related.
Fixes: 84dc7a95a2d3 ("net/ice: enable flow director engine") Fixes: 1b009275e2c8 ("net/ice: add Rx queue init in DCF") Fixes: ae2bdd0219cb ("net/ice: support MTU setting") Fixes: 50370662b727 ("net/ice: support device and queue ops") Cc: [email protected]
Signed-off-by: Steve Yang <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
|
Revision tags: v20.11, v20.11-rc5, v20.11-rc4, v20.11-rc3, v20.11-rc2, v20.11-rc1 |
|
| #
16187528 |
| 20-Oct-2020 |
Qi Zhang <[email protected]> |
net/ice/base: refactor RSS configure API
Use struct ice_rss_hash_cfg as parameter for ice_add_rss_cfg, ice_add_rss_cfg_sync and ice_rem_rss_cfg, ice_rem_rss_cfg_sync.
Introduce enmu ice_rss_cfg_hdr
net/ice/base: refactor RSS configure API
Use struct ice_rss_hash_cfg as parameter for ice_add_rss_cfg, ice_add_rss_cfg_sync and ice_rem_rss_cfg, ice_rem_rss_cfg_sync.
Introduce enmu ice_rss_cfg_hdr_type to allow user specify the more flexible RSS configure.
ICE_RSS_OUTER_HEADERS - take outer layer as RSS inputset ICE_RSS_INNER_HEADERS - take inner layer as RSS inputset ICE_RSS_INNER_HEADERS_W_OUTER_IPV4 - take inner layer as RSS inputset for packet with outer IPV4 ICE_RSS_INNER_HEADERS_W_OUTER_IPV6 - take inner layer as RSS inputset for packet with outer IPV6 ICE_RSS_ANY_HEADERS - try with outer first then inner (same as the behaviour without this change)
Signed-off-by: Qi Zhang <[email protected]> Acked-by: Qiming Yang <[email protected]>
show more ...
|