#
8b94494d |
| 26-May-2018 |
Xueming Li <xuemingl@mellanox.com> |
app/testpmd: distribute queues to cores
Current topology distribute forwarding streams to lcores by port, this make unbalanced loading when port number larger than 2: lcore 0: P0Q0->P1Q0, P0Q1->P1Q
app/testpmd: distribute queues to cores
Current topology distribute forwarding streams to lcores by port, this make unbalanced loading when port number larger than 2: lcore 0: P0Q0->P1Q0, P0Q1->P1Q1 locre 1: P1Q0->P0Q0, P1Q1->P0Q1 If only one port has traffic, only one locre get fully loaded and the other one get no forwarding. Performance is bad as only one core doing forwarding in such case.
This patch distributes forwarding streams by queue, try to get streams of each port handled by different lcore: lcore 0: P0Q0->P1Q0, P1Q0->P1Q0 locre 1: P0Q1->P0Q1, P1Q1->P0Q1
Signed-off-by: Xueming Li <xuemingl@mellanox.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
0ad778b3 |
| 06-Jul-2018 |
Jasvinder Singh <jasvinder.singh@intel.com> |
app/testpmd: rework softnic forward mode
Modied the testpmd softnic forwarding mode as per the changes in softnic PMD.
To run testpmd application with softnic fwd mode, following command is used;
app/testpmd: rework softnic forward mode
Modied the testpmd softnic forwarding mode as per the changes in softnic PMD.
To run testpmd application with softnic fwd mode, following command is used;
$ ./testpmd -c 0xc -n 4 --vdev 'net_softnic0,firmware=script.cli' -- -i --forward-mode=softnic
Signed-off-by: Jasvinder Singh <jasvinder.singh@intel.com> Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
show more ...
|
#
b5205060 |
| 22-May-2018 |
Bernard Iremonger <bernard.iremonger@intel.com> |
app/testpmd: fix log of start command
Application can provide 0 for ring size to use default values. To not log zero for that case get configured ring size from device.
Call the rte_eth_rxq_info_ge
app/testpmd: fix log of start command
Application can provide 0 for ring size to use default values. To not log zero for that case get configured ring size from device.
Call the rte_eth_rxq_info_get() and rte_eth_txq_info_get() functions to update the number of rx and tx descriptors.
Fixes: d44f8a485f5d ("app/testpmd: enable per queue configure")
Signed-off-by: Bernard Iremonger <bernard.iremonger@intel.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
5ff6aa24 |
| 21-May-2018 |
Adrien Mazarguil <adrien.mazarguil@6wind.com> |
app/testpmd: fix copy of raw flow item - revisited
While previous fix with the same title does address the main issue, root cause is that proper handling of spec/last/mask was overlooked in the orig
app/testpmd: fix copy of raw flow item - revisited
While previous fix with the same title does address the main issue, root cause is that proper handling of spec/last/mask was overlooked in the original patch.
Mask and last fields must be taken into account at all times.
Fixes: d0ad8648b1c5 ("app/testpmd: fix RSS flow action configuration") Fixes: 67af7ecc52ec ("app/testpmd: fix copy of raw flow item") Cc: stable@dpdk.org
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
show more ...
|
#
8f3c4176 |
| 03-May-2018 |
Matan Azrad <matan@mellanox.com> |
app/testpmd: fix valid ports prints
There are several cases of an invalid port data access that causes the printing of all the valid ports, for example, when the user asks to receive a port informat
app/testpmd: fix valid ports prints
There are several cases of an invalid port data access that causes the printing of all the valid ports, for example, when the user asks to receive a port information of an invalid port.
Wrongly, the port with id 0 is printed in all the above described cases, regardless of its validity.
Print port 0 only if it is valid as done for the rest of the ports.
Fixes: af75078fece3 ("first public release") Fixes: b6ea6408fbc7 ("ethdev: store numa_node per device") Fixes: edab33b1c01d ("app/testpmd: support port hotplug") Cc: stable@dpdk.org
Signed-off-by: Matan Azrad <matan@mellanox.com>
show more ...
|
#
67af7ecc |
| 07-May-2018 |
Qi Zhang <qi.z.zhang@intel.com> |
app/testpmd: fix copy of raw flow item
When calculate memory size of an RTE_FLOW_ITEM_TYPE_RAW 's mask mask->length is not the real size of binary pattern, it should take spec->length, or memory siz
app/testpmd: fix copy of raw flow item
When calculate memory size of an RTE_FLOW_ITEM_TYPE_RAW 's mask mask->length is not the real size of binary pattern, it should take spec->length, or memory size will be over counted (0xffff) and invalid memory be access during following memcpy.
Fixes: d0ad8648b1c5 ("app/testpmd: fix RSS flow action configuration") Cc: stable@dpdk.org
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
show more ...
|
#
fb8fd96d |
| 26-Apr-2018 |
Declan Doherty <declan.doherty@intel.com> |
ethdev: add shared counter to flow API
Add rte_flow_action_count action data structure to enable shared counters across multiple flows on a single port or across multiple flows on multiple ports wit
ethdev: add shared counter to flow API
Add rte_flow_action_count action data structure to enable shared counters across multiple flows on a single port or across multiple flows on multiple ports within the same switch domain. Also this enables multiple count actions to be specified in a single flow action.
This patch also modifies the existing rte_flow_query API to take the rte_flow_action structure as an input parameter instead of the rte_flow_action_type enumeration to allow querying a specific action from a flow rule when multiple actions of the same type are specified.
This patch also contains updates for the bonding, failsafe and mlx5 PMDs and testpmd application which are affected by this API change.
Signed-off-by: Declan Doherty <declan.doherty@intel.com>
show more ...
|
#
ab94cdaa |
| 26-Apr-2018 |
Declan Doherty <declan.doherty@intel.com> |
app/testpmd: add port name to device info
Add the port name to information printed by show port info <port_id>
Signed-off-by: Declan Doherty <declan.doherty@intel.com> Reviewed-by: Ferruh Yigit <fe
app/testpmd: add port name to device info
Add the port name to information printed by show port info <port_id>
Signed-off-by: Declan Doherty <declan.doherty@intel.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
0804dfc2 |
| 26-Apr-2018 |
Declan Doherty <declan.doherty@intel.com> |
ethdev: add switch identifier parameter to port
Introduces a new port attribute to ethdev port's which denotes the switch domain a port belongs to. By default all port's switch identifiers are set t
ethdev: add switch identifier parameter to port
Introduces a new port attribute to ethdev port's which denotes the switch domain a port belongs to. By default all port's switch identifiers are set to RTE_ETH_DEV_SWITCH_DOMAIN_ID_INVALID. Ports which supported the concept of switch domains can be configured with the same switch domain id.
Signed-off-by: Declan Doherty <declan.doherty@intel.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
#
7e3389b1 |
| 24-Apr-2018 |
Qi Zhang <qi.z.zhang@intel.com> |
ethdev: add VLAN and MPLS actions to flow API
Add support for the following OpenFlow-defined actions:
- RTE_FLOW_ACTION_OF_POP_VLAN: pop the outer VLAN tag.
- RTE_FLOW_ACTION_OF_PUSH_VLAN: push a
ethdev: add VLAN and MPLS actions to flow API
Add support for the following OpenFlow-defined actions:
- RTE_FLOW_ACTION_OF_POP_VLAN: pop the outer VLAN tag.
- RTE_FLOW_ACTION_OF_PUSH_VLAN: push a new VLAN tag.
- RTE_FLOW_ACTION_OF_SET_VLAN_VID: set the 802.1q VLAN id.
- RTE_FLOW_ACTION_OF_SET_VLAN_PCP: set the 802.1q priority.
- RTE_FLOW_ACTION_OF_POP_MPLS: pop the outer MPLS tag.
- RTE_FLOW_ACTION_OF_PUSH_MPLS: push a new MPLS tag.
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com> Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
show more ...
|
#
1c54c938 |
| 24-Apr-2018 |
Qi Zhang <qi.z.zhang@intel.com> |
ethdev: add TTL change actions to flow API
Add support for the following OpenFlow-defined actions:
- RTE_FLOW_ACTION_OF_SET_MPLS_TTL: MPLS TTL.
- RTE_FLOW_ACTION_OF_DEC_MPLS_TTL: decrement MPLS TT
ethdev: add TTL change actions to flow API
Add support for the following OpenFlow-defined actions:
- RTE_FLOW_ACTION_OF_SET_MPLS_TTL: MPLS TTL.
- RTE_FLOW_ACTION_OF_DEC_MPLS_TTL: decrement MPLS TTL.
- RTE_FLOW_ACTION_OF_SET_NW_TTL: IP TTL.
- RTE_FLOW_ACTION_OF_DEC_NW_TTL: decrement IP TTL.
- RTE_FLOW_ACTION_OF_COPY_TTL_OUT: copy TTL "outwards".
- RTE_FLOW_ACTION_OF_COPY_TTL_IN: copy TTL "inwards".
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com> Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
show more ...
|
#
a903c049 |
| 24-Apr-2018 |
Qi Zhang <qi.z.zhang@intel.com> |
ethdev: add neighbor discovery to flow API
- RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4: matches an ARP header for Ethernet/IPv4.
- RTE_FLOW_ITEM_TYPE_IPV6_EXT: matches the presence of any IPv6 extension he
ethdev: add neighbor discovery to flow API
- RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4: matches an ARP header for Ethernet/IPv4.
- RTE_FLOW_ITEM_TYPE_IPV6_EXT: matches the presence of any IPv6 extension header.
- RTE_FLOW_ITEM_TYPE_ICMP6: matches any ICMPv6 header.
- RTE_FLOW_ITEM_TYPE_ICMP6_ND_NS: matches an ICMPv6 neighbor discovery solicitation.
- RTE_FLOW_ITEM_TYPE_ICMP6_ND_NA: matches an ICMPv6 neighbor discovery advertisement.
- RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT: matches the presence of any ICMPv6 neighbor discovery option.
- RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_ETH_SLA: matches an ICMPv6 neighbor discovery source Ethernet link-layer address option.
- RTE_FLOW_ITEM_TYPE_ICMP6_ND_OPT_ETH_TLA: matches an ICMPv6 neighbor discovery target Ethernet link-layer address option.
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com> Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
show more ...
|
#
39e5e20f |
| 23-Apr-2018 |
Xueming Li <xuemingl@mellanox.com> |
app/testpmd: introduce new tunnel VXLAN-GPE
Add VXLAN-GPE support to csum forwarding engine and rte flow.
Signed-off-by: Xueming Li <xuemingl@mellanox.com> Acked-by: Adrien Mazarguil <adrien.mazarg
app/testpmd: introduce new tunnel VXLAN-GPE
Add VXLAN-GPE support to csum forwarding engine and rte flow.
Signed-off-by: Xueming Li <xuemingl@mellanox.com> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
#
fc6bbb3f |
| 25-Apr-2018 |
Adrien Mazarguil <adrien.mazarguil@6wind.com> |
ethdev: add port ID item and action to flow API
RTE_FLOW_ACTION_TYPE_PORT_ID brings the ability to inject matching traffic into a different device, as identified by its DPDK port ID.
This is normal
ethdev: add port ID item and action to flow API
RTE_FLOW_ACTION_TYPE_PORT_ID brings the ability to inject matching traffic into a different device, as identified by its DPDK port ID.
This is normally only supported when the target port ID has some kind of relationship with the port ID the flow rule is created against, such as being exposed by a common physical device (e.g. a different port of an Ethernet switch).
The converse pattern item, RTE_FLOW_ITEM_TYPE_PORT_ID, makes the resulting flow rule match traffic whose origin is the specified port ID. Note that specifying a port ID that differs from the one the flow rule is created against is normally meaningless (if even accepted), but can make sense if combined with the transfer attribute.
These must not be confused with their PHY_PORT counterparts, which refer to physical ports using device-specific indices, but unlike PORT_ID are not necessarily tied to DPDK port IDs.
This breaks ABI compatibility for the following public functions:
- rte_flow_copy() - rte_flow_create() - rte_flow_query() - rte_flow_validate()
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Reviewed-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
#
e7b65705 |
| 25-Apr-2018 |
Adrien Mazarguil <adrien.mazarguil@6wind.com> |
ethdev: add physical port action to flow API
This patch adds the missing action counterpart to the PHY_PORT pattern item, that is, the ability to directly inject matching traffic into a physical por
ethdev: add physical port action to flow API
This patch adds the missing action counterpart to the PHY_PORT pattern item, that is, the ability to directly inject matching traffic into a physical port of the underlying device.
It breaks ABI compatibility for the following public functions:
- rte_flow_copy() - rte_flow_create() - rte_flow_query() - rte_flow_validate()
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Mohammad Abdul Awal <mohammad.abdul.awal@intel.com>
show more ...
|
#
fee1fa02 |
| 25-Apr-2018 |
Adrien Mazarguil <adrien.mazarguil@6wind.com> |
ethdev: rename physical port item in flow API
While RTE_FLOW_ITEM_TYPE_PORT refers to physical ports of the underlying device using specific identifiers, these are often confused with DPDK port IDs
ethdev: rename physical port item in flow API
While RTE_FLOW_ITEM_TYPE_PORT refers to physical ports of the underlying device using specific identifiers, these are often confused with DPDK port IDs exposed to applications in the global name space.
Since this pattern item is seldom used, rename it RTE_FLOW_ITEM_PHY_PORT for better clarity.
No ABI impact.
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
#
76e9a55b |
| 25-Apr-2018 |
Adrien Mazarguil <adrien.mazarguil@6wind.com> |
ethdev: add transfer attribute to flow API
This new attribute enables applications to create flow rules that do not simply match traffic whose origin is specified in the pattern (e.g. some non-defau
ethdev: add transfer attribute to flow API
This new attribute enables applications to create flow rules that do not simply match traffic whose origin is specified in the pattern (e.g. some non-default physical port or VF), but actively affect it by applying the flow rule at the lowest possible level in the underlying device.
It breaks ABI compatibility for the following public functions:
- rte_flow_copy() - rte_flow_create() - rte_flow_validate()
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
show more ...
|
#
18aee286 |
| 25-Apr-2018 |
Adrien Mazarguil <adrien.mazarguil@6wind.com> |
ethdev: add encap level to RSS flow API action
RSS hash types (ETH_RSS_* macros defined in rte_ethdev.h) describe the protocol header fields of a packet that must be taken into account while computi
ethdev: add encap level to RSS flow API action
RSS hash types (ETH_RSS_* macros defined in rte_ethdev.h) describe the protocol header fields of a packet that must be taken into account while computing RSS.
When facing encapsulated (e.g. tunneled) packets, there is an ambiguity as to whether these should apply to inner or outer packets. Applications need the ability to tell exactly "where" RSS must be performed.
This is addressed by adding encapsulation level information to the RSS flow action. Its default value is 0 and stands for the usual unspecified behavior. Other values provide a specific encapsulation level.
Contrary to the change announced by commit 676b605182a5 ("doc: announce ethdev API change for RSS configuration"), this patch does not affect struct rte_eth_rss_conf but struct rte_flow_action_rss as the former is not used anymore by the RSS flow action. ABI impact is therefore limited to rte_flow.
This breaks ABI compatibility for the following public functions:
- rte_flow_copy() - rte_flow_create() - rte_flow_query() - rte_flow_validate()
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
#
929e3319 |
| 25-Apr-2018 |
Adrien Mazarguil <adrien.mazarguil@6wind.com> |
ethdev: add hash function to RSS flow API action
By definition, RSS involves some kind of hash algorithm, usually Toeplitz.
Until now it could not be modified on a flow rule basis and PMDs had to a
ethdev: add hash function to RSS flow API action
By definition, RSS involves some kind of hash algorithm, usually Toeplitz.
Until now it could not be modified on a flow rule basis and PMDs had to always assume RTE_ETH_HASH_FUNCTION_DEFAULT, which remains the default behavior when unspecified (0).
This breaks ABI compatibility for the following public functions:
- rte_flow_copy() - rte_flow_create() - rte_flow_query() - rte_flow_validate()
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
#
ac8d22de |
| 25-Apr-2018 |
Adrien Mazarguil <adrien.mazarguil@6wind.com> |
ethdev: flatten RSS configuration in flow API
Since its inception, the rte_flow RSS action has been relying in part on external struct rte_eth_rss_conf for compatibility with the legacy RSS API. Thi
ethdev: flatten RSS configuration in flow API
Since its inception, the rte_flow RSS action has been relying in part on external struct rte_eth_rss_conf for compatibility with the legacy RSS API. This structure lacks parameters such as the hash algorithm to use, and more recently, a method to tell which layer RSS should be performed on [1].
Given struct rte_eth_rss_conf will never be flexible enough to represent a complete RSS configuration (e.g. RETA table), this patch supersedes it by extending the rte_flow RSS action directly.
A subsequent patch will add a field to use a non-default RSS hash algorithm. To that end, a field named "types" replaces the field formerly known as "rss_hf" and standing for "RSS hash functions" as it was confusing. Actual RSS hash function types are defined by enum rte_eth_hash_function.
This patch updates all PMDs and example applications accordingly.
It breaks ABI compatibility for the following public functions:
- rte_flow_copy() - rte_flow_create() - rte_flow_query() - rte_flow_validate()
[1] commit 676b605182a5 ("doc: announce ethdev API change for RSS configuration")
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
#
19b3bc47 |
| 25-Apr-2018 |
Adrien Mazarguil <adrien.mazarguil@6wind.com> |
ethdev: fix C99 flexible arrays from flow API
This patch replaces C99-style flexible arrays in struct rte_flow_action_rss and struct rte_flow_item_raw with standard pointers to the same data.
They
ethdev: fix C99 flexible arrays from flow API
This patch replaces C99-style flexible arrays in struct rte_flow_action_rss and struct rte_flow_item_raw with standard pointers to the same data.
They proved difficult to use in the field (e.g. no possibility of static initialization) and unsuitable for C++ applications.
Affected PMDs and examples are updated accordingly.
This breaks ABI compatibility for the following public functions:
- rte_flow_copy() - rte_flow_create() - rte_flow_query() - rte_flow_validate()
Fixes: b1a4b4cbc0a8 ("ethdev: introduce generic flow API")
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
show more ...
|
#
2e6e7567 |
| 25-Apr-2018 |
Adrien Mazarguil <adrien.mazarguil@6wind.com> |
ethdev: remove DUP action from flow API
Upcoming changes in relation to the handling of actions list will make the DUP action redundant as specifying several QUEUE actions will achieve the same beha
ethdev: remove DUP action from flow API
Upcoming changes in relation to the handling of actions list will make the DUP action redundant as specifying several QUEUE actions will achieve the same behavior. Besides, no PMD implements this action.
By removing an entry from enum rte_flow_action_type, this patch breaks ABI compatibility for the following public functions:
- rte_flow_copy() - rte_flow_create() - rte_flow_query() - rte_flow_validate()
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
#
7eb312e3 |
| 25-Apr-2018 |
Adrien Mazarguil <adrien.mazarguil@6wind.com> |
ethdev: add error types to flow API
These enable more precise reporting of objects responsible for errors.
This breaks ABI compatibility for the following public functions:
- rte_flow_create() - r
ethdev: add error types to flow API
These enable more precise reporting of objects responsible for errors.
This breaks ABI compatibility for the following public functions:
- rte_flow_create() - rte_flow_destroy() - rte_flow_error_set() - rte_flow_flush() - rte_flow_isolate() - rte_flow_query() - rte_flow_validate()
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
#
d44f8a48 |
| 24-Apr-2018 |
Qi Zhang <qi.z.zhang@intel.com> |
app/testpmd: enable per queue configure
Each queue has independent configure information in rte_port. Base on this, we are able to add new commands to configure different queues with different value
app/testpmd: enable per queue configure
Each queue has independent configure information in rte_port. Base on this, we are able to add new commands to configure different queues with different value.
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
a8903512 |
| 23-Apr-2018 |
Xueming Li <xuemingl@mellanox.com> |
app/testpmd: support generic tunnel Tx offloads
"show port cap" and "csum parse tunnel" command support TX generic tunnel offloads
Signed-off-by: Xueming Li <xuemingl@mellanox.com>
|