#
eeded204 |
| 26-Apr-2021 |
David Marchand <david.marchand@redhat.com> |
log: register with standardized names
Let's try to enforce the convention where most drivers use a pmd. logtype with their class reflected in it, and libraries use a lib. logtype.
Introduce two new
log: register with standardized names
Let's try to enforce the convention where most drivers use a pmd. logtype with their class reflected in it, and libraries use a lib. logtype.
Introduce two new macros: - RTE_LOG_REGISTER_DEFAULT can be used when a single logtype is used in a component. It is associated to the default name provided by the build system, - RTE_LOG_REGISTER_SUFFIX can be used when multiple logtypes are used, and then the passed name is appended to the default name,
RTE_LOG_REGISTER is left untouched for existing external users and for components that do not comply with the convention.
There is a new Meson variable log_prefix to adapt the default name for baseband (pmd.bb.), bus (no pmd.) and mempool (no pmd.) classes.
Note: achieved with below commands + reverted change on net/bonding + edits on crypto/virtio, compress/mlx5, regex/mlx5
$ git grep -l RTE_LOG_REGISTER drivers/ | while read file; do pattern=${file##drivers/}; class=${pattern%%/*}; pattern=${pattern#$class/}; drv=${pattern%%/*}; case "$class" in baseband) pattern=pmd.bb.$drv;; bus) pattern=bus.$drv;; mempool) pattern=mempool.$drv;; *) pattern=pmd.$class.$drv;; esac sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern',/RTE_LOG_REGISTER_DEFAULT(\1,/' $file; sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern'\.\(.*\),/RTE_LOG_REGISTER_SUFFIX(\1, \2,/' $file; done
$ git grep -l RTE_LOG_REGISTER lib/ | while read file; do pattern=${file##lib/}; pattern=lib.${pattern%%/*}; sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern',/RTE_LOG_REGISTER_DEFAULT(\1,/' $file; sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern'\.\(.*\),/RTE_LOG_REGISTER_SUFFIX(\1, \2,/' $file; done
Signed-off-by: David Marchand <david.marchand@redhat.com> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
2570c033 |
| 18-Jan-2021 |
Steve Yang <stevex.yang@intel.com> |
net/axgbe: fix jumbo frame flag condition for MTU set
The jumbo frame uses the 'RTE_ETHER_MAX_LEN' as boundary condition. If the Ether overhead is larger than 18 when it supports VLAN tag, that will
net/axgbe: fix jumbo frame flag condition for MTU set
The jumbo frame uses the 'RTE_ETHER_MAX_LEN' as boundary condition. If the Ether overhead is larger than 18 when it supports VLAN tag, that will cause the jumbo flag rx offload is wrong when MTU size is 'RTE_ETHER_MTU'.
This fix will normalize the boundary condition with 'RTE_ETHER_MTU' and overhead even though current overhead is 18.
Fixes: b58d8781fa1f ("net/axgbe: support setting MTU") Cc: stable@dpdk.org
Signed-off-by: Steve Yang <stevex.yang@intel.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
ff70acdf |
| 06-Jan-2021 |
Selwin Sebastian <selwin.sebastian@amd.com> |
net/axgbe: support reading FW version
Added support for fw_version_get API
Signed-off-by: Selwin Sebastian <selwin.sebastian@amd.com> Acked-by: Somalapuram Amaranath <asomalap@amd.com>
|
#
86578516 |
| 01-Dec-2020 |
Girish Nandibasappa <girish.nandibasappa@amd.com> |
net/axgbe: support VLAN
Added VLAN support for AMD XGBE driver
Adding below APIs for axgbe - axgbe_enable_rx_vlan_stripping: to enable vlan header stripping - axgbe_disable_rx_vlan_stripping: to di
net/axgbe: support VLAN
Added VLAN support for AMD XGBE driver
Adding below APIs for axgbe - axgbe_enable_rx_vlan_stripping: to enable vlan header stripping - axgbe_disable_rx_vlan_stripping: to disable vlan header stripping - axgbe_enable_rx_vlan_filtering: to enable vlan filter mode - axgbe_disable_rx_vlan_filtering: to disable vlan filter mode - axgbe_update_vlan_hash_table: crc calculation and hash table update based on vlan values post filter enable - axgbe_vlan_filter_set: setting of active vlan out of max 4K values before doing hash update of same - axgbe_vlan_tpid_set: setting of default tpid values - axgbe_vlan_offload_set: a top layer function to call strip/filter etc based on mask values
Signed-off-by: Girish Nandibasappa <girish.nandibasappa@amd.com> Acked-by: Somalapuram Amaranath <asomalap@amd.com>
show more ...
|
#
bf403cfe |
| 19-Nov-2020 |
Selwin Sebastian <selwin.sebastian@amd.com> |
net/axgbe: support device reset
Added support for device reset
Signed-off-by: Selwin Sebastian <selwin.sebastian@amd.com> Acked-by: Amaranath Somalapuram <asomalap@amd.com>
|
#
f30e69b4 |
| 14-Oct-2020 |
Ferruh Yigit <ferruh.yigit@intel.com> |
ethdev: add device flag to bypass auto-filled queue xstats
Queue stats are stored in 'struct rte_eth_stats' as array and array size is defined by 'RTE_ETHDEV_QUEUE_STAT_CNTRS' compile time flag.
As
ethdev: add device flag to bypass auto-filled queue xstats
Queue stats are stored in 'struct rte_eth_stats' as array and array size is defined by 'RTE_ETHDEV_QUEUE_STAT_CNTRS' compile time flag.
As a result of technical board discussion, decided to remove the queue statistics from 'struct rte_eth_stats' in the long term.
Instead PMDs should represent the queue statistics via xstats, this gives more flexibility on the number of the queues supported.
Currently queue stats in the xstats are filled by ethdev layer, using some basic stats, when queue stats removed from basic stats the responsibility to fill the relevant xstats will be pushed to the PMDs.
During the switch period, temporary 'RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS' device flag is created. Initially all PMDs using xstats set this flag. The PMDs implemented queue stats in the xstats should clear the flag.
When all PMDs switch to the xstats for the queue stats, queue stats related fields from 'struct rte_eth_stats' will be removed, as well as 'RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS' flag. Later 'RTE_ETHDEV_QUEUE_STAT_CNTRS' compile time flag also can be removed.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Haiyue Wang <haiyue.wang@intel.com> Acked-by: Xiao Wang <xiao.w.wang@intel.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
#
62024eb8 |
| 15-Oct-2020 |
Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru> |
ethdev: change stop operation callback to return int
Change eth_dev_stop_t return value from void to int. Make eth_dev_stop_t implementations across all drivers to return negative errno values if ca
ethdev: change stop operation callback to return int
Change eth_dev_stop_t return value from void to int. Make eth_dev_stop_t implementations across all drivers to return negative errno values if case of error conditions.
Signed-off-by: Ivan Ilchenko <ivan.ilchenko@oktetlabs.ru> Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
0607dadf |
| 16-Oct-2020 |
Thomas Monjalon <thomas@monjalon.net> |
ethdev: reset all when releasing a port
The function rte_eth_dev_release_port() is partially resetting the struct rte_eth_dev. The drivers were completing this reset with more pointers set to NULL i
ethdev: reset all when releasing a port
The function rte_eth_dev_release_port() is partially resetting the struct rte_eth_dev. The drivers were completing this reset with more pointers set to NULL in the close or remove operations.
More pointers are reset at ethdev level, and some redundant assignments are removed from PMDs.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Haiyue Wang <haiyue.wang@intel.com> Acked-by: Jeff Guo <jia.guo@intel.com> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
show more ...
|
#
fbd19135 |
| 28-Sep-2020 |
Thomas Monjalon <thomas@monjalon.net> |
ethdev: remove old close behaviour
The temporary flag RTE_ETH_DEV_CLOSE_REMOVE is removed. It was introduced in DPDK 18.11 in order to give time for PMDs to migrate.
The old behaviour was to free o
ethdev: remove old close behaviour
The temporary flag RTE_ETH_DEV_CLOSE_REMOVE is removed. It was introduced in DPDK 18.11 in order to give time for PMDs to migrate.
The old behaviour was to free only queues when closing a port. The new behaviour is calling rte_eth_dev_release_port() which does three more tasks: - trigger event callback - reset state and few pointers - free all generic port resources
The private port resources must be released in the .dev_close callback.
The .remove callback should: - call .dev_close callback - call rte_eth_dev_release_port() - free multi-port device shared resources
Despite waiting two years, some drivers have not migrated, so they may hit issues with the incompatible new behaviour. After sending emails, adding logs, and announcing the deprecation, the only last solution is to declare these drivers as unmaintained: ionic, liquidio, nfp Below is a summary of what to implement in those drivers.
* The freeing of private port resources must be moved from the ".remove(device)" function to the ".dev_close(port)" function.
* If a generic resource (.mac_addrs or .hash_mac_addrs) cannot be freed, it must be set to NULL in ".dev_close" function to protect from subsequent rte_eth_dev_release_port() freeing.
* Note 1: The generic resources are freed in rte_eth_dev_release_port(), after ".dev_close" is called in rte_eth_dev_close(), but not when calling ".dev_close" directly from the ".remove" PMD function. That's why rte_eth_dev_release_port() must still be called explicitly from ".remove(device)" after calling the ".dev_close" PMD function.
* Note 2: If a device can have multiple ports, the common resources must be freed only in the ".remove(device)" function.
* Note 3: The port is supposed to be in a stopped state when it is closed. If it is not the case, it is free to the PMD implementation how to react when trying to close a non-stopped port: either try to stop it automatically or just return an error.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Reviewed-by: Liron Himi <lironh@marvell.com> Reviewed-by: Haiyue Wang <haiyue.wang@intel.com> Acked-by: Jeff Guo <jia.guo@intel.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
#
479e6a42 |
| 28-Sep-2020 |
Thomas Monjalon <thomas@monjalon.net> |
net/axgbe: release port upon close
The flag RTE_ETH_DEV_CLOSE_REMOVE is set so all port resources can be freed by rte_eth_dev_close().
Freeing of private port resources is moved from the ".remove(d
net/axgbe: release port upon close
The flag RTE_ETH_DEV_CLOSE_REMOVE is set so all port resources can be freed by rte_eth_dev_close().
Freeing of private port resources is moved from the ".remove(device)" to the ".dev_close(port)" operation. The ".dev_close" callback is also called as part of the ".remove" one.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
#
b142387b |
| 28-Sep-2020 |
Thomas Monjalon <thomas@monjalon.net> |
ethdev: allow drivers to return error on close
The device operation .dev_close was returning void. This driver interface is changed to return an int.
Note that the API rte_eth_dev_close() is still
ethdev: allow drivers to return error on close
The device operation .dev_close was returning void. This driver interface is changed to return an int.
Note that the API rte_eth_dev_close() is still returning void, although a deprecation notice is pending to change it as well.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Reviewed-by: Rosen Xu <rosen.xu@intel.com> Reviewed-by: Sachin Saxena <sachin.saxena@oss.nxp.com> Reviewed-by: Liron Himi <lironh@marvell.com> Reviewed-by: Haiyue Wang <haiyue.wang@intel.com> Acked-by: Jeff Guo <jia.guo@intel.com> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
#
e0444948 |
| 09-Jun-2020 |
Selwin Sebastian <selwin.sebastian@amd.com> |
net/axgbe: support IEEE 1588 PTP
Add ethdev APIs to support PTP timestamping
Signed-off-by: Selwin Sebastian <selwin.sebastian@amd.com> Acked-by: Amaranath Somalapuram <asomalap@amd.com>
|
#
cbfc6111 |
| 09-Sep-2020 |
Ferruh Yigit <ferruh.yigit@intel.com> |
ethdev: move inline device operations
This patch is a preparation to hide the 'struct eth_dev_ops' from applications by moving some device operations from 'struct eth_dev_ops' to 'struct rte_eth_dev
ethdev: move inline device operations
This patch is a preparation to hide the 'struct eth_dev_ops' from applications by moving some device operations from 'struct eth_dev_ops' to 'struct rte_eth_dev'.
Mentioned ethdev APIs are in the data path and implemented as inline because of performance reasons.
Exposing 'struct eth_dev_ops' to applications is bad because it is a contract between ethdev and PMDs, not really needs to be known by applications, also changes in the struct causing ABI breakages which shouldn't.
To be able to both keep APIs inline and hide the 'struct eth_dev_ops', moving device operations used in ethdev inline APIs to 'struct rte_eth_dev' to the same level with Rx/Tx burst functions.
The list of dev_ops moved: eth_rx_queue_count_t rx_queue_count; eth_rx_descriptor_done_t rx_descriptor_done; eth_rx_descriptor_status_t rx_descriptor_status; eth_tx_descriptor_status_t tx_descriptor_status;
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: David Marchand <david.marchand@redhat.com> Acked-by: Sachin Saxena <sachin.saxena@nxp.com>
show more ...
|
#
9c99878a |
| 01-Jul-2020 |
Jerin Jacob <jerinj@marvell.com> |
log: introduce logtype register macro
Introduce the RTE_LOG_REGISTER macro to avoid the code duplication in the logtype registration process.
It is a wrapper macro for declaring the logtype, regist
log: introduce logtype register macro
Introduce the RTE_LOG_REGISTER macro to avoid the code duplication in the logtype registration process.
It is a wrapper macro for declaring the logtype, registering it and setting its level in the constructor context.
Signed-off-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com> Acked-by: Sachin Saxena <sachin.saxena@nxp.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
show more ...
|
#
4693ae4a |
| 27-Apr-2020 |
Joyce Kong <joyce.kong@arm.com> |
net/axgbe: use common bit operations API
Remove its own bit operation APIs and use the common one, this can reduce the code duplication largely.
Signed-off-by: Joyce Kong <joyce.kong@arm.com> Revie
net/axgbe: use common bit operations API
Remove its own bit operation APIs and use the common one, this can reduce the code duplication largely.
Signed-off-by: Joyce Kong <joyce.kong@arm.com> Reviewed-by: Gavin Hu <gavin.hu@arm.com>
show more ...
|
#
b58d8781 |
| 01-Jun-2020 |
Girish Nandibasappa <girish.nandibasappa@amd.com> |
net/axgbe: support setting MTU
This patch adds support for set_mtu API which can be used to change the Maximum Transmission unit (MTU) from application.
Signed-off-by: Girish Nandibasappa <girish.n
net/axgbe: support setting MTU
This patch adds support for set_mtu API which can be used to change the Maximum Transmission unit (MTU) from application.
Signed-off-by: Girish Nandibasappa <girish.nandibasappa@amd.com> Acked-by: Amaranath Somalapuram <asomalap@amd.com>
show more ...
|
#
76d7664d |
| 29-May-2020 |
Chandu Babu N <chandu@amd.com> |
net/axgbe: support RSS RETA/hash query and update
add support for RSS reta/hash query and update function
Signed-off-by: Chandu Babu N <chandu@amd.com> Acked-by: Amaranath Somalapuram <asomalap@amd
net/axgbe: support RSS RETA/hash query and update
add support for RSS reta/hash query and update function
Signed-off-by: Chandu Babu N <chandu@amd.com> Acked-by: Amaranath Somalapuram <asomalap@amd.com>
show more ...
|
#
0962b605 |
| 02-Mar-2020 |
Amaranath Somalapuram <asomalap@amd.com> |
net/axgbe: support descriptor status
Adding API axgbe_dev_rx_descriptor_status, axgbe_dev_tx_descriptor_status
Signed-off-by: Amaranath Somalapuram <asomalap@amd.com> Acked-by: Ravi Kumar <ravi1.ku
net/axgbe: support descriptor status
Adding API axgbe_dev_rx_descriptor_status, axgbe_dev_tx_descriptor_status
Signed-off-by: Amaranath Somalapuram <asomalap@amd.com> Acked-by: Ravi Kumar <ravi1.kumar@amd.com>
show more ...
|
#
410cf087 |
| 02-Mar-2020 |
Amaranath Somalapuram <asomalap@amd.com> |
net/axgbe: advertise supported packet types
Adding api for eth_dev_supported_ptypes_get_t
Signed-off-by: Amaranath Somalapuram <asomalap@amd.com> Acked-by: Ravi Kumar <ravi1.kumar@amd.com>
|
#
7aed95c9 |
| 02-Mar-2020 |
Amaranath Somalapuram <asomalap@amd.com> |
net/axgbe: support queue query
Adding API for axgbe_rxq_info_get, axgbe_txq_info_get
Signed-off-by: Amaranath Somalapuram <asomalap@amd.com> Acked-by: Ravi Kumar <ravi1.kumar@amd.com>
|
#
e0543d4e |
| 03-Mar-2020 |
Amaranath Somalapuram <asomalap@amd.com> |
net/axgbe: support priority flow control
Adding API for priority_flow_ctrl_set. Priority flow control to set water high and low, pause_time and priority.
Signed-off-by: Amaranath Somalapuram <asoma
net/axgbe: support priority flow control
Adding API for priority_flow_ctrl_set. Priority flow control to set water high and low, pause_time and priority.
Signed-off-by: Amaranath Somalapuram <asomalap@amd.com> Acked-by: Ravi Kumar <ravi1.kumar@amd.com>
show more ...
|
#
cf97f33e |
| 03-Mar-2020 |
Amaranath Somalapuram <asomalap@amd.com> |
net/axgbe: support flow control
Adding api for flow_ctrl_get and flow_ctrl_set. By default axgbe driver flow control is disabled. Adding dpdk flow control to set water high and low.
Signed-off-by:
net/axgbe: support flow control
Adding api for flow_ctrl_get and flow_ctrl_set. By default axgbe driver flow control is disabled. Adding dpdk flow control to set water high and low.
Signed-off-by: Amaranath Somalapuram <asomalap@amd.com> Acked-by: Ravi Kumar <ravi1.kumar@amd.com>
show more ...
|
#
e01d9b2e |
| 28-Feb-2020 |
Chandu Babu N <chandu@amd.com> |
net/axgbe: support unicast hash table for MAC address
Implement eth_dev_ops uc_hash_table_set and uc_all_hash_table_set
Signed-off-by: Chandu Babu N <chandu@amd.com> Acked-by: Ravi Kumar <ravi1.kum
net/axgbe: support unicast hash table for MAC address
Implement eth_dev_ops uc_hash_table_set and uc_all_hash_table_set
Signed-off-by: Chandu Babu N <chandu@amd.com> Acked-by: Ravi Kumar <ravi1.kumar@amd.com>
show more ...
|
#
49a5e622 |
| 28-Feb-2020 |
Chandu Babu N <chandu@amd.com> |
net/axgbe: support setting MAC address
Supports adding MAC addresses to enable whitelist filtering to accept packets implement eth_dev_ops mac_addr_set, mac_addr_add, mac_addr_remove and set_mc_addr
net/axgbe: support setting MAC address
Supports adding MAC addresses to enable whitelist filtering to accept packets implement eth_dev_ops mac_addr_set, mac_addr_add, mac_addr_remove and set_mc_addr_list
Signed-off-by: Chandu Babu N <chandu@amd.com> Acked-by: Ravi Kumar <ravi1.kumar@amd.com>
show more ...
|
#
965b3127 |
| 04-Mar-2020 |
Selwin Sebastian <selwin.sebastian@amd.com> |
net/axgbe: support scattered Rx
Enable scattered rx support and add jumbo packet receive capability
Signed-off-by: Selwin Sebastian <selwin.sebastian@amd.com>
|