|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2, v22.03-rc1 |
|
| #
f67615ea |
| 08-Feb-2022 |
Ivan Malov <[email protected]> |
net/sfc: do not push fast free offload to default TxQ config
Doing so is wrong since fast free is an adapter-wide offload.
Technically, the offending commit (see "Fixes" tag) does not induce failur
net/sfc: do not push fast free offload to default TxQ config
Doing so is wrong since fast free is an adapter-wide offload.
Technically, the offending commit (see "Fixes" tag) does not induce failures, however, such started to occur after commit a4996bd89c42 ("ethdev: new Rx/Tx offloads API") had shown up, because of the strict offload validation in the generic code.
Fixes: c78d280e88ef ("net/sfc: convert to new Tx offload API") Cc: [email protected]
Signed-off-by: Ivan Malov <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]>
show more ...
|
| #
6da67e70 |
| 01-Feb-2022 |
Ivan Malov <[email protected]> |
net/sfc: rework flow action RSS support
Currently, the driver always allocates a dedicated NIC RSS context for every separate flow rule with action RSS, which is not optimal.
First of all, multiple
net/sfc: rework flow action RSS support
Currently, the driver always allocates a dedicated NIC RSS context for every separate flow rule with action RSS, which is not optimal.
First of all, multiple rules which have the same RSS specification can share a context since filters in the hardware operate this way.
Secondly, entries in a context's indirection table are not precise queue IDs but offsets with regard to the base queue ID of a filter. This way, for example, queue arrays "0, 1, 2" and "3, 4, 5" in two otherwise identical RSS specifications allow the driver to use the same context since they both yield the same table of queue offsets.
Rework flow action RSS support in order to use these optimisations.
Signed-off-by: Ivan Malov <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]>
show more ...
|
|
Revision tags: v21.11, v21.11-rc4, v21.11-rc3 |
|
| #
3037e6cf |
| 17-Nov-2021 |
Viacheslav Galaktionov <[email protected]> |
net/sfc: support regioned NIC DMA memory mapping type
DMA on SN1022 SoC requires extra mapping of the memory via MCDI.
Signed-off-by: Viacheslav Galaktionov <[email protected]> Si
net/sfc: support regioned NIC DMA memory mapping type
DMA on SN1022 SoC requires extra mapping of the memory via MCDI.
Signed-off-by: Viacheslav Galaktionov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ivan Malov <[email protected]>
show more ...
|
|
Revision tags: v21.11-rc2 |
|
| #
b75d85b7 |
| 29-Oct-2021 |
Igor Romanov <[email protected]> |
net/sfc: support Xilinx Riverhead VF
Add the device and vendor numbers to the PCI ID map so that a VF can be probed.
Signed-off-by: Igor Romanov <[email protected]> Signed-off-by: Andrew Ry
net/sfc: support Xilinx Riverhead VF
Add the device and vendor numbers to the PCI ID map so that a VF can be probed.
Signed-off-by: Igor Romanov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]>
show more ...
|
| #
2fe6f1b7 |
| 02-Nov-2021 |
Dmitry Kozlyuk <[email protected]> |
drivers/net: advertise no support for keeping flow rules
When RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP capability bit is zero, the specified behavior is the same as it had been before this bit was introduced
drivers/net: advertise no support for keeping flow rules
When RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP capability bit is zero, the specified behavior is the same as it had been before this bit was introduced. Explicitly reset it in all PMDs supporting rte_flow API in order to attract the attention of maintainers, who should eventually choose to advertise the new capability or not. It is already known that mlx4 and mlx5 will not support this capability.
For RTE_ETH_DEV_CAPA_FLOW_SHARED_OBJECT_KEEP similar action is not performed, because no PMD except mlx5 supports indirect actions. Any PMD that starts doing so will anyway have to consider all relevant API, including this capability.
Suggested-by: Ferruh Yigit <[email protected]> Signed-off-by: Dmitry Kozlyuk <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Somnath Kotur <[email protected]> Acked-by: Hyong Youb Kim <[email protected]> Reviewed-by: Ferruh Yigit <[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 ...
|
| #
2f577f0e |
| 15-Oct-2021 |
Viacheslav Galaktionov <[email protected]> |
net/sfc: allow ports without MAE privilege
Register unprivileged ports in the switch domain registry in order to allow redirecting traffic to them.
Differentiate between different levels of MAE sup
net/sfc: allow ports without MAE privilege
Register unprivileged ports in the switch domain registry in order to allow redirecting traffic to them.
Differentiate between different levels of MAE support, update all MAE status checks.
Signed-off-by: Viacheslav Galaktionov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[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 ...
|
| #
64c952ec |
| 28-Sep-2021 |
Andrew Rybchenko <[email protected]> |
drivers/net: remove queue xstats auto-fill flag
Some drivers do not provide per-queue statistics. So, there is no point to have these misleading zeros in xstats.
Fixes: f30e69b41f94 ("ethdev: add d
drivers/net: remove queue xstats auto-fill flag
Some drivers do not provide per-queue statistics. So, there is no point to have these misleading zeros in xstats.
Fixes: f30e69b41f94 ("ethdev: add device flag to bypass auto-filled queue xstats") Cc: [email protected]
Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]>
show more ...
|
| #
8d7d4fcd |
| 13-Oct-2021 |
Konstantin Ananyev <[email protected]> |
ethdev: change input parameters for Rx queue count
Currently majority of fast-path ethdev ops take pointers to internal queue data structures as an input parameter. While eth_rx_queue_count() takes
ethdev: change input parameters for Rx queue count
Currently majority of fast-path ethdev ops take pointers to internal queue data structures as an input parameter. While eth_rx_queue_count() takes a pointer to rte_eth_dev and queue index. For future work to hide rte_eth_devices[] and friends it would be plausible to unify parameters list of all fast-path ethdev ops. This patch changes eth_rx_queue_count() to accept pointer to internal queue data as input parameter. While this change is transparent to user, it still counts as an ABI change, as eth_rx_queue_count_t is used by ethdev public inline function rte_eth_rx_queue_count().
Signed-off-by: Konstantin Ananyev <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Acked-by: Hyong Youb Kim <[email protected]> Reviewed-by: Ferruh Yigit <[email protected]> Tested-by: Feifei Wang <[email protected]>
show more ...
|
| #
53a80512 |
| 13-Oct-2021 |
Ivan Malov <[email protected]> |
net/sfc: fence off 8 bits in Rx mark for tunnel offload
Later patches add support for tunnel offload on Riverhead (EF100). A board can host at most 254 tunnels. Partially offloaded (missed) tunnel p
net/sfc: fence off 8 bits in Rx mark for tunnel offload
Later patches add support for tunnel offload on Riverhead (EF100). A board can host at most 254 tunnels. Partially offloaded (missed) tunnel packets are identified by virtue of 8 high bits in Rx mark.
Add basic definitions of the upcoming tunnel offload support and take care of the dedicated bits in Rx mark across the driver.
Signed-off-by: Ivan Malov <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]>
show more ...
|
| #
9b14dc74 |
| 12-Oct-2021 |
Ivan Malov <[email protected]> |
net/sfc: support API to negotiate delivery of Rx metadata
Initial support for the method. Later patches will extend it to make FLAG and MARK delivery available on EF100 native datapath.
Signed-off-
net/sfc: support API to negotiate delivery of Rx metadata
Initial support for the method. Later patches will extend it to make FLAG and MARK delivery available on EF100 native datapath.
Signed-off-by: Ivan Malov <[email protected]> Reviewed-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]>
show more ...
|
| #
599e4e9a |
| 11-Oct-2021 |
Viacheslav Galaktionov <[email protected]> |
net/sfc: support representor info get
Let the driver provide the user with information about available representors by implementing the representor_info_get operation.
Due to the lack of any struct
net/sfc: support representor info get
Let the driver provide the user with information about available representors by implementing the representor_info_get operation.
Due to the lack of any structure to representor IDs, every ID range describes exactly one representor.
Signed-off-by: Viacheslav Galaktionov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]>
show more ...
|
| #
6ded2e01 |
| 11-Oct-2021 |
Viacheslav Galaktionov <[email protected]> |
net/sfc: support new representor parameter syntax
Allow the user to specify representor entities using the structured parameter values.
Signed-off-by: Viacheslav Galaktionov <viacheslav.galaktionov
net/sfc: support new representor parameter syntax
Allow the user to specify representor entities using the structured parameter values.
Signed-off-by: Viacheslav Galaktionov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]>
show more ...
|
| #
768d1e44 |
| 11-Oct-2021 |
Viacheslav Galaktionov <[email protected]> |
net/sfc: store PCI address for represented entities
This information will be useful when representor info API is implemented.
Signed-off-by: Viacheslav Galaktionov <viacheslav.galaktionov@oktetlabs
net/sfc: store PCI address for represented entities
This information will be useful when representor info API is implemented.
Signed-off-by: Viacheslav Galaktionov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]>
show more ...
|
| #
44db08d5 |
| 11-Oct-2021 |
Viacheslav Galaktionov <[email protected]> |
net/sfc: maintain controller to EFX interface mapping
Newer hardware may have arbitrarily complex controller configurations, and for this reason the mapping has been made dynamic: it is represented
net/sfc: maintain controller to EFX interface mapping
Newer hardware may have arbitrarily complex controller configurations, and for this reason the mapping has been made dynamic: it is represented with a dynamic array that is indexed by controller numbers and each element contains an EFX interface number. Since the number of controllers is expected to be small, this approach should not hurt the performance.
Signed-off-by: Viacheslav Galaktionov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]>
show more ...
|
| #
472fa1b1 |
| 11-Oct-2021 |
Igor Romanov <[email protected]> |
net/sfc: support multiple device probe
Support probing the device multiple times so that additional port representors can be created with hotplug EAL API. To hotplug a representor, the PF must be ho
net/sfc: support multiple device probe
Support probing the device multiple times so that additional port representors can be created with hotplug EAL API. To hotplug a representor, the PF must be hotplugged with different representor device argument.
Signed-off-by: Igor Romanov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]> Reviewed-by: Ivan Malov <[email protected]>
show more ...
|
| #
c377f1ad |
| 11-Oct-2021 |
Igor Romanov <[email protected]> |
net/sfc: add representor proxy port API
The API is required to create and destroy representor proxy port assigned to representor.
Signed-off-by: Igor Romanov <[email protected]> Signed-off-
net/sfc: add representor proxy port API
The API is required to create and destroy representor proxy port assigned to representor.
Signed-off-by: Igor Romanov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]> Reviewed-by: Ivan Malov <[email protected]>
show more ...
|
| #
a62ec905 |
| 11-Oct-2021 |
Igor Romanov <[email protected]> |
net/sfc: add port representors infrastructure
Provide minimal implementation for port representors that only can be configured and can provide device information.
Signed-off-by: Igor Romanov <igor.
net/sfc: add port representors infrastructure
Provide minimal implementation for port representors that only can be configured and can provide device information.
Signed-off-by: Igor Romanov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]> Reviewed-by: Ivan Malov <[email protected]>
show more ...
|
| #
ac478689 |
| 11-Oct-2021 |
Igor Romanov <[email protected]> |
net/sfc: move adapter state enum to separate header
Adapter state will be reused by representors, that will have a separate adapter. Rename adapter state to ethdev state so that the meaning of it is
net/sfc: move adapter state enum to separate header
Adapter state will be reused by representors, that will have a separate adapter. Rename adapter state to ethdev state so that the meaning of it is clearer.
Signed-off-by: Igor Romanov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]> Reviewed-by: Ivan Malov <[email protected]>
show more ...
|
| #
3f95dfb9 |
| 11-Oct-2021 |
Igor Romanov <[email protected]> |
net/sfc: support EF100 Tx override prefix
Add internal mbuf dynamic flag and field to request EF100 native Tx datapath to use Tx prefix descriptor to override egress m-port. Overriding egress m-port
net/sfc: support EF100 Tx override prefix
Add internal mbuf dynamic flag and field to request EF100 native Tx datapath to use Tx prefix descriptor to override egress m-port. Overriding egress m-port is necessary on representor Tx burst so that the packet will reach corresponding VF.
Signed-off-by: Igor Romanov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]> Reviewed-by: Ivan Malov <[email protected]>
show more ...
|
| #
f8778b16 |
| 11-Oct-2021 |
Igor Romanov <[email protected]> |
net/sfc: add switch mode device argument
Add the argument that allows user to choose either switchdev or legacy mode. Legacy mode enables switching by using Ethernet virtual bridging (EVB) API. In s
net/sfc: add switch mode device argument
Add the argument that allows user to choose either switchdev or legacy mode. Legacy mode enables switching by using Ethernet virtual bridging (EVB) API. In switchdev mode, VF traffic goes via port representor (if any) on PF, and software virtual switch (for example, Open vSwitch) steers the traffic.
Signed-off-by: Igor Romanov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Reviewed-by: Andy Moreton <[email protected]> Reviewed-by: Ivan Malov <[email protected]>
show more ...
|
| #
acc47448 |
| 28-Sep-2021 |
Ivan Ilchenko <[email protected]> |
net/sfc: collect per queue stats in EF100 Tx
If Tx datapath collects per queue statistics, use these stats to provide opackets and obytes in basic ethdev stats.
Signed-off-by: Andrew Rybchenko <and
net/sfc: collect per queue stats in EF100 Tx
If Tx datapath collects per queue statistics, use these stats to provide opackets and obytes in basic ethdev stats.
Signed-off-by: Andrew Rybchenko <[email protected]> Signed-off-by: Ivan Ilchenko <[email protected]>
show more ...
|
| #
395ffcb4 |
| 28-Sep-2021 |
Ivan Ilchenko <[email protected]> |
net/sfc: collect per queue stats in EF100 Rx
If Rx datapath collects per queue statistics, use these stats to provide ipackets and ibytes in basic ethdev stats.
Signed-off-by: Andrew Rybchenko <and
net/sfc: collect per queue stats in EF100 Rx
If Rx datapath collects per queue statistics, use these stats to provide ipackets and ibytes in basic ethdev stats.
Signed-off-by: Andrew Rybchenko <[email protected]> Signed-off-by: Ivan Ilchenko <[email protected]>
show more ...
|