#
b671e69a |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: update MTU calculations
Test min and max MTU against values read from firmware, for correctness. Update the firmware field name, for clarity. The device must be stopped before changing MT
net/ionic: update MTU calculations
Test min and max MTU against values read from firmware, for correctness. Update the firmware field name, for clarity. The device must be stopped before changing MTU, for correctness. Store the calculated frame size in the queue, for performance.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com> Signed-off-by: R Mohamed Shah <mohamedshah.r@amd.com>
show more ...
|
#
76668754 |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: update license terms to remove GPL
Remove GPL2 and leave only BSD-3-Clause. This is more in line with the norms of the DPDK community.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
|
#
a5205992 |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: update documentation and copyrights
Pensando Systems has been acquired by AMD. Update all copyright strings and email addresses.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
|
#
7506961a |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: fix endianness for RSS
This field needs to be LE when talking to the FW.
Fixes: 22e7171bc63b ("net/ionic: support RSS") Cc: stable@dpdk.org
Signed-off-by: Andrew Boyer <andrew.boyer@amd
net/ionic: fix endianness for RSS
This field needs to be LE when talking to the FW.
Fixes: 22e7171bc63b ("net/ionic: support RSS") Cc: stable@dpdk.org
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
show more ...
|
#
4a735599 |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: fix endianness for Rx and Tx
These fields all need to be LE when talking to the FW.
Fixes: a27d901331da ("net/ionic: add Rx and Tx handling") Cc: stable@dpdk.org
Signed-off-by: Andrew B
net/ionic: fix endianness for Rx and Tx
These fields all need to be LE when talking to the FW.
Fixes: a27d901331da ("net/ionic: add Rx and Tx handling") Cc: stable@dpdk.org
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
show more ...
|
#
daa02b5c |
| 15-Oct-2021 |
Olivier Matz <olivier.matz@6wind.com> |
mbuf: add namespace to offload flags
Fix the mbuf offload flags namespace by adding an RTE_ prefix to the name. The old flags remain usable, but a deprecation warning is issued at compilation.
Sign
mbuf: add namespace to offload flags
Fix the mbuf offload flags namespace by adding an RTE_ prefix to the name. The old flags remain usable, but a deprecation warning is issued at compilation.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>
show more ...
|
#
5b634932 |
| 15-Oct-2021 |
Olivier Matz <olivier.matz@6wind.com> |
mbuf: mark old VLAN offload flags as deprecated
The flags PKT_TX_VLAN_PKT and PKT_TX_QINQ_PKT are marked as deprecated since commit 380a7aab1ae2 ("mbuf: rename deprecated VLAN flags") (2017). But th
mbuf: mark old VLAN offload flags as deprecated
The flags PKT_TX_VLAN_PKT and PKT_TX_QINQ_PKT are marked as deprecated since commit 380a7aab1ae2 ("mbuf: rename deprecated VLAN flags") (2017). But they were not using the RTE_DEPRECATED macro, because it did not exist at this time. Add it, and replace usage of these flags.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
#
295968d1 |
| 22-Oct-2021 |
Ferruh Yigit <ferruh.yigit@intel.com> |
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 <ferruh.yigit@intel.com> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Wisam Jaddo <wisamm@nvidia.com> Acked-by: Rosen Xu <rosen.xu@intel.com> Acked-by: Chenbo Xia <chenbo.xia@intel.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com> Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>
show more ...
|
#
1bb4a528 |
| 18-Oct-2021 |
Ferruh Yigit <ferruh.yigit@intel.com> |
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 <ferruh.yigit@intel.com> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Somnath Kotur <somnath.kotur@broadcom.com> Acked-by: Huisong Li <lihuisong@huawei.com> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Rosen Xu <rosen.xu@intel.com> Acked-by: Hyong Youb Kim <hyonkim@cisco.com>
show more ...
|
#
7483341a |
| 06-Oct-2021 |
Xueming Li <xuemingl@nvidia.com> |
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 <xuemingl@nvidia.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Somnath Kotur <somnath.kotur@broadcom.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
e19eea1e |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: store Tx fragment limit in queue
A future patch will allow Tx scatter/gather to be disabled. Store the value in the queue so it can be changed at runtime based on the configuration.
Sign
net/ionic: store Tx fragment limit in queue
A future patch will allow Tx scatter/gather to be disabled. Store the value in the queue so it can be changed at runtime based on the configuration.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|
#
86551f81 |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: send as many packets as possible
Rather than dropping the whole burst if some don't fit. This improves performance.
Signed-off-by: Andrew Boyer <aboyer@pensando.io> Signed-off-by: Vishwa
net/ionic: send as many packets as possible
Rather than dropping the whole burst if some don't fit. This improves performance.
Signed-off-by: Andrew Boyer <aboyer@pensando.io> Signed-off-by: Vishwas Danivas <vishwas@pensando.io>
show more ...
|
#
77c60793 |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: ring doorbell once at the end of each burst
This improves performance.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
|
#
dd10c5b4 |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: break up queue post function
Break it up rather than inlining it, so that we can remove branches from the hot path.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
|
#
ed522a3f |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: log queue counters when tearing down
This improves debuggability.
To see the logs, use EAL arg: --log-level=pmd.net.ionic,debug
While here, stop counting fragments, but start counting m
net/ionic: log queue counters when tearing down
This improves debuggability.
To see the logs, use EAL arg: --log-level=pmd.net.ionic,debug
While here, stop counting fragments, but start counting mtods.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|
#
8ec5ad7f |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: use socket id passed in for Rx and Tx queues
Pipe the value from the queue setup routines through to ionic_qcq_alloc().
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
|
#
be39f75c |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: split up queue-completion queue structure
Create a unique Q-CQ struct for adminq, notifyq, rxq, and txq to reduce the size of each object.
Minimize the size of each field to squeeze into
net/ionic: split up queue-completion queue structure
Create a unique Q-CQ struct for adminq, notifyq, rxq, and txq to reduce the size of each object.
Minimize the size of each field to squeeze into as few cachelines as possible.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|
#
4ad56b7a |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: cut down queue structure
This will conserve resources.
Rename ionic_qcq_alloc() arg from 'base' to 'type_name' for clarity.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
|
#
c6a9a6fb |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: remove unused field from queue structure
This will conserve resources.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
|
#
700f974d |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: convert info array to generic pointers
Drop the callback part of the object and store only the pointers. This saves a bit of space and simplifies the code.
Signed-off-by: Andrew Boyer <a
net/ionic: convert info array to generic pointers
Drop the callback part of the object and store only the pointers. This saves a bit of space and simplifies the code.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|
#
2aed9865 |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: cut down completion queue structure
Add Q_NEXT_TO_POST() and Q_NEXT_TO_SRVC() macros. Use a precomputed size mask.
This will conserve resources.
Signed-off-by: Andrew Boyer <aboyer@pens
net/ionic: cut down completion queue structure
Add Q_NEXT_TO_POST() and Q_NEXT_TO_SRVC() macros. Use a precomputed size mask.
This will conserve resources.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|
#
d13d7829 |
| 04-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: fix Tx fragment limits
The reported nb_seg_max should include the main fragment in the descriptor and the fragments in the accompanying SGL.
Update the Tx prep check as well.
These were
net/ionic: fix Tx fragment limits
The reported nb_seg_max should include the main fragment in the descriptor and the fragments in the accompanying SGL.
Update the Tx prep check as well.
These were missed when updating to the v1 Tx queue structures.
Fixes: 561176361047 ("net/ionic: clean up Tx queue version support")
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|
#
56117636 |
| 29-Jan-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: clean up Tx queue version support
The ionic PMD only supports Tx queue version 1 or greater. Version 1 introduced a new SGL format with support for more fragments per descriptor.
Add rel
net/ionic: clean up Tx queue version support
The ionic PMD only supports Tx queue version 1 or greater. Version 1 introduced a new SGL format with support for more fragments per descriptor.
Add release notes and an explanation to the docs.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|
#
7c3a867b |
| 18-Jan-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: fix address handling in Tx
Don't assume standard headroom. Use helper variables to improve readability.
Fixes: a27d901331da ("net/ionic: add Rx and Tx handling") Cc: stable@dpdk.org Sign
net/ionic: fix address handling in Tx
Don't assume standard headroom. Use helper variables to improve readability.
Fixes: a27d901331da ("net/ionic: add Rx and Tx handling") Cc: stable@dpdk.org Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|
#
0de3e209 |
| 18-Jan-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: fix up function attribute tags
One function marked cold is in the hot path. Make sure to always inline hot path functions.
Fixes: a27d901331da ("net/ionic: add Rx and Tx handling") Cc: s
net/ionic: fix up function attribute tags
One function marked cold is in the hot path. Make sure to always inline hot path functions.
Fixes: a27d901331da ("net/ionic: add Rx and Tx handling") Cc: stable@dpdk.org
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|