#
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 ...
|
#
924e6b76 |
| 25-Feb-2021 |
Thomas Monjalon <thomas@monjalon.net> |
drivers: replace page size definitions with function
The page size is often retrieved from the macro PAGE_SIZE. If PAGE_SIZE is not defined, it is either using hard coded default, or getting the sys
drivers: replace page size definitions with function
The page size is often retrieved from the macro PAGE_SIZE. If PAGE_SIZE is not defined, it is either using hard coded default, or getting the system value from the UNIX-only function sysconf().
Such definitions are replaced with the generic function rte_mem_page_size() defined for each supported OS.
Removing PAGE_SIZE definitions will fix dlb drivers for musl libc, because #ifdef checks were missing, causing redefinition errors.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Andrew Boyer <aboyer@pensando.io> Acked-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru> Acked-by: David Marchand <david.marchand@redhat.com> Acked-by: Timothy McDaniel <timothy.mcdaniel@intel.com>
show more ...
|
#
656bfc9a |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: fix completion type in lif init
The completion type was wrong. Don't check the completion if the wait timed out.
Fixes: 669c8de67c88 ("net/ionic: support basic LIF") Cc: stable@dpdk.org
net/ionic: fix completion type in lif init
The completion type was wrong. Don't check the completion if the wait timed out.
Fixes: 669c8de67c88 ("net/ionic: support basic LIF") Cc: stable@dpdk.org
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
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 ...
|
#
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>
|
#
aeb70a00 |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: remove unused interrupt free function
This will conserve resources.
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>
|
#
750aebd5 |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: consolidate adminq code
The adminq is the only caller of ionic_q_service(), so absorb it into ionic_adminq_service(). Move all of the adminq code together into ionic_main.c. Staticize a f
net/ionic: consolidate adminq code
The adminq is the only caller of ionic_q_service(), so absorb it into ionic_adminq_service(). Move all of the adminq code together into ionic_main.c. Staticize a few things.
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 ...
|
#
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 ...
|
#
76276d71 |
| 29-Jan-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: use existing array size macro
Using the RTE_DIM() macro makes the code clearer.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
|
#
c5d15850 |
| 18-Jan-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: query firmware for supported queue versions
This allows the PMD to better support FW changes.
Signed-off-by: Andrew Boyer <aboyer@pensando.io> Signed-off-by: Shannon Nelson <snelson@pens
net/ionic: query firmware for supported queue versions
This allows the PMD to better support FW changes.
Signed-off-by: Andrew Boyer <aboyer@pensando.io> Signed-off-by: Shannon Nelson <snelson@pensando.io>
show more ...
|
#
09f806e9 |
| 18-Jan-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: observe endianness in firmware commands
The IONIC firmware is little-endian.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
|
#
4c8f8d57 |
| 18-Jan-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: strip out unneeded interrupt code
Only the NotifyQ uses an interrupt, so simplify the other queues.
Simplify ionic_dev_cmd_adminq_init() and ionic_cq_init(). Move ionic_intr_alloc() into
net/ionic: strip out unneeded interrupt code
Only the NotifyQ uses an interrupt, so simplify the other queues.
Simplify ionic_dev_cmd_adminq_init() and ionic_cq_init(). Move ionic_intr_alloc() into ionic_notify_qcq_alloc(). Create ionic_lif_notifyq_deinit(). Simplify ionic_lif_qcq_deinit(). Remove unneeded flags and defines.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|
#
df96fd0d |
| 29-Jan-2021 |
Bruce Richardson <bruce.richardson@intel.com> |
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 <bruce.richardson@intel.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Steven Webster <steven.webster@windriver.com>
show more ...
|
#
9c3cc2fc |
| 11-Jan-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: do not add station MAC filter on init
The address is not needed in the firmware. This reduces the startup time a bit.
Signed-off-by: Andrew Boyer <aboyer@pensando.io> Signed-off-by: Neel
net/ionic: do not add station MAC filter on init
The address is not needed in the firmware. This reduces the startup time a bit.
Signed-off-by: Andrew Boyer <aboyer@pensando.io> Signed-off-by: Neel Patel <neel@pensando.io>
show more ...
|
#
b5d9a4f0 |
| 11-Jan-2021 |
Andrew Boyer <aboyer@pensando.io> |
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 <aboyer@pensando.io> Signed-off-by: Neel Patel <neel@pensando.io>
show more ...
|
#
18a44465 |
| 11-Jan-2021 |
Andrew Boyer <aboyer@pensando.io> |
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 <aboyer@pensando.io>
show more ...
|
#
a0a99f21 |
| 16-Dec-2020 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: stop queues when LIF is stopped
Otherwise they cannot be restarted, because the FW will reject INIT or ENA commands on queues which are already running.
Signed-off-by: Andrew Boyer <aboy
net/ionic: stop queues when LIF is stopped
Otherwise they cannot be restarted, because the FW will reject INIT or ENA commands on queues which are already running.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|
#
be63459e |
| 16-Dec-2020 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: improve link state handling
Add UP and FW_RESET state flags. Update the stack info when the link state changes. Convert set_link_up/set_link_down to lif_start/lif_stop. Condition reported
net/ionic: improve link state handling
Add UP and FW_RESET state flags. Update the stack info when the link state changes. Convert set_link_up/set_link_down to lif_start/lif_stop. Condition reported link state on UP flag.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|
#
175e4e7e |
| 16-Dec-2020 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: complete release on close
ionic_dev_close() is responsible for destroying the ethdev, lif, and adapter. eth_ionic_dev_remove() calls ionic_dev_close().
Remove-on-close is now required be
net/ionic: complete release on close
ionic_dev_close() is responsible for destroying the ethdev, lif, and adapter. eth_ionic_dev_remove() calls ionic_dev_close().
Remove-on-close is now required behavior for a PMD. Remove the UNMAINTAINED flag.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|
#
00b65da5 |
| 16-Dec-2020 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: remove multi-LIF support
This feature is unused, so remove it.
There is exactly one adapter / lif / ethdev per port.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
|
#
0578335a |
| 16-Dec-2020 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: preserve Rx mode across LIF stop/start
Otherwise, non-default settings (like PROMISC) get reset. This will become important when link toggling is tied to LIF stop/start.
Signed-off-by: A
net/ionic: preserve Rx mode across LIF stop/start
Otherwise, non-default settings (like PROMISC) get reset. This will become important when link toggling is tied to LIF stop/start.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|