|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2, v22.03-rc1, v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2, v21.11-rc1 |
|
| #
daa02b5c |
| 15-Oct-2021 |
Olivier Matz <[email protected]> |
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 <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Ajit Khaparde <[email protected]> Acked-by: Somnath Kotur <[email protected]>
show more ...
|
| #
5b634932 |
| 15-Oct-2021 |
Olivier Matz <[email protected]> |
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 <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Ajit Khaparde <[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 ...
|
| #
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 ...
|
| #
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 ...
|
|
Revision tags: v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2, v21.08-rc1, v21.05, v21.05-rc4, v21.05-rc3, v21.05-rc2, v21.05-rc1 |
|
| #
e19eea1e |
| 16-Feb-2021 |
Andrew Boyer <[email protected]> |
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 <[email protected]>
show more ...
|
| #
86551f81 |
| 16-Feb-2021 |
Andrew Boyer <[email protected]> |
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 <[email protected]> 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 <[email protected]> Signed-off-by: Vishwas Danivas <[email protected]>
show more ...
|
| #
77c60793 |
| 16-Feb-2021 |
Andrew Boyer <[email protected]> |
net/ionic: ring doorbell once at the end of each burst
This improves performance.
Signed-off-by: Andrew Boyer <[email protected]>
|
| #
dd10c5b4 |
| 16-Feb-2021 |
Andrew Boyer <[email protected]> |
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 <[email protected]>
|
| #
ed522a3f |
| 16-Feb-2021 |
Andrew Boyer <[email protected]> |
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 <[email protected]>
show more ...
|
| #
8ec5ad7f |
| 16-Feb-2021 |
Andrew Boyer <[email protected]> |
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 <[email protected]>
|
| #
be39f75c |
| 16-Feb-2021 |
Andrew Boyer <[email protected]> |
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 <[email protected]>
show more ...
|
| #
4ad56b7a |
| 16-Feb-2021 |
Andrew Boyer <[email protected]> |
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 <[email protected]>
|
| #
c6a9a6fb |
| 16-Feb-2021 |
Andrew Boyer <[email protected]> |
net/ionic: remove unused field from queue structure
This will conserve resources.
Signed-off-by: Andrew Boyer <[email protected]>
|
| #
700f974d |
| 16-Feb-2021 |
Andrew Boyer <[email protected]> |
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 <[email protected]>
show more ...
|
| #
2aed9865 |
| 16-Feb-2021 |
Andrew Boyer <[email protected]> |
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 <[email protected]>
show more ...
|
|
Revision tags: v21.02, v21.02-rc4, v21.02-rc3 |
|
| #
d13d7829 |
| 04-Feb-2021 |
Andrew Boyer <[email protected]> |
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 <[email protected]>
show more ...
|
|
Revision tags: v21.02-rc2 |
|
| #
56117636 |
| 29-Jan-2021 |
Andrew Boyer <[email protected]> |
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 <[email protected]>
show more ...
|
|
Revision tags: v21.02-rc1 |
|
| #
7c3a867b |
| 18-Jan-2021 |
Andrew Boyer <[email protected]> |
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: [email protected] 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: [email protected] Signed-off-by: Andrew Boyer <[email protected]>
show more ...
|
| #
0de3e209 |
| 18-Jan-2021 |
Andrew Boyer <[email protected]> |
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: [email protected]
Signed-off-by: Andrew Boyer <[email protected]>
show more ...
|
| #
68591087 |
| 18-Jan-2021 |
Andrew Boyer <[email protected]> |
net/ionic: convert per-queue offloads into queue flags
This will conserve resources by reducing struct ionic_qcq.
Saving a cacheline or two in the rxq and txq structs helps when running in embedded
net/ionic: convert per-queue offloads into queue flags
This will conserve resources by reducing struct ionic_qcq.
Saving a cacheline or two in the rxq and txq structs helps when running in embedded configurations where CPU cache space is at a premium.
Signed-off-by: Andrew Boyer <[email protected]>
show more ...
|
| #
f603eebc |
| 18-Jan-2021 |
Andrew Boyer <[email protected]> |
net/ionic: allow separate L3 and L4 checksum offload
DTS, at least, expects to be able to specify L4 checksum offload without L3 csum offload. Split up the flag checks.
Fixes: a27d901331da ("net/io
net/ionic: allow separate L3 and L4 checksum offload
DTS, at least, expects to be able to specify L4 checksum offload without L3 csum offload. Split up the flag checks.
Fixes: a27d901331da ("net/ionic: add Rx and Tx handling") Cc: [email protected]
Signed-off-by: Andrew Boyer <[email protected]>
show more ...
|
| #
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 ...
|
| #
b5d9a4f0 |
| 11-Jan-2021 |
Andrew Boyer <[email protected]> |
net/ionic: combine queue init and enable commands
Adding F_ENA to the q_init command has the same effect as q_enable. This reduces the startup time a bit.
Signed-off-by: Andrew Boyer <aboyer@pensan
net/ionic: combine queue init and enable commands
Adding F_ENA to the q_init command has the same effect as q_enable. This reduces the startup time a bit.
Signed-off-by: Andrew Boyer <[email protected]> Signed-off-by: Neel Patel <[email protected]>
show more ...
|
| #
18a44465 |
| 11-Jan-2021 |
Andrew Boyer <[email protected]> |
net/ionic: revise configuration flag handling
Configuration flags come to the driver in dev_configure(). From there, the driver calls ionic_lif_configure() to update the lif->feature bitfield, and t
net/ionic: revise configuration flag handling
Configuration flags come to the driver in dev_configure(). From there, the driver calls ionic_lif_configure() to update the lif->feature bitfield, and then programs the port.
Features like VLAN_RX_FILTER and RX_HASH cannot be disabled in the device, so do nothing in response to requests to disable them. (The device config would ideally show them enabled by default, but some DTS tests fail if RSS_HASH is set but RSS is not.)
Move features from the per-queue to per-port lists. IONIC does not really support per-queue configuration: the stack disallows disabling a queue feature if it is enabled on the port, while the device disallows enabling a queue feature if it is disabled on the port. Thus all configuration is per-port.
Move the guts of ionic_vlan_offload_set() into a new function, ionic_lif_configure_vlan_offload(), so it can be called by ionic_lif_configure().
Move the check for DEV_RX_OFFLOAD_SCATTER from rx_queue_setup() up into ionic_lif_configure().
Warn if rx_drop_en is not set.
Signed-off-by: Andrew Boyer <[email protected]>
show more ...
|