ethdev: add L2TPv2 RSS offload type
This patch defines new RSS offload type for L2TPv2, which is required when users want to distribute packets based on the L2TPv2 session ID field. Signed-off-by: Jie Wang <jie1x.wang@intel.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
parent
b6c0f464af
commit
f840cf7713
@ -798,8 +798,8 @@ static void cmd_help_long_parsed(void *parsed_result,
|
||||
"receive buffers available.\n\n"
|
||||
|
||||
"port config all rss (all|default|ip|tcp|udp|sctp|"
|
||||
"ether|port|vxlan|geneve|nvgre|vxlan-gpe|ecpri|mpls|none|level-default|"
|
||||
"level-outer|level-inner|<flowtype_id>)\n"
|
||||
"ether|port|vxlan|geneve|nvgre|vxlan-gpe|ecpri|mpls|ipv4-chksum|l2tpv2|"
|
||||
"none|level-default|level-outer|level-inner|<flowtype_id>)\n"
|
||||
" Set the RSS mode.\n\n"
|
||||
|
||||
"port config port-id rss reta (hash,queue)[,(hash,queue)]\n"
|
||||
@ -2183,7 +2183,7 @@ cmd_config_rss_parsed(void *parsed_result,
|
||||
RTE_ETH_RSS_TCP | RTE_ETH_RSS_UDP | RTE_ETH_RSS_SCTP |
|
||||
RTE_ETH_RSS_L2_PAYLOAD | RTE_ETH_RSS_L2TPV3 | RTE_ETH_RSS_ESP |
|
||||
RTE_ETH_RSS_AH | RTE_ETH_RSS_PFCP | RTE_ETH_RSS_GTPU |
|
||||
RTE_ETH_RSS_ECPRI;
|
||||
RTE_ETH_RSS_ECPRI | RTE_ETH_RSS_L2TPV2;
|
||||
else if (!strcmp(res->value, "eth"))
|
||||
rss_conf.rss_hf = RTE_ETH_RSS_ETH;
|
||||
else if (!strcmp(res->value, "vlan"))
|
||||
@ -2248,6 +2248,8 @@ cmd_config_rss_parsed(void *parsed_result,
|
||||
rss_conf.rss_hf = RTE_ETH_RSS_MPLS;
|
||||
else if (!strcmp(res->value, "ipv4-chksum"))
|
||||
rss_conf.rss_hf = RTE_ETH_RSS_IPV4_CHKSUM;
|
||||
else if (!strcmp(res->value, "l2tpv2"))
|
||||
rss_conf.rss_hf = RTE_ETH_RSS_L2TPV2;
|
||||
else if (!strcmp(res->value, "none"))
|
||||
rss_conf.rss_hf = 0;
|
||||
else if (!strcmp(res->value, "level-default")) {
|
||||
@ -2318,8 +2320,8 @@ cmdline_parse_inst_t cmd_config_rss = {
|
||||
.data = NULL,
|
||||
.help_str = "port config all rss "
|
||||
"all|default|eth|vlan|ip|tcp|udp|sctp|ether|port|vxlan|geneve|"
|
||||
"nvgre|vxlan-gpe|l2tpv3|esp|ah|pfcp|ecpri|mpls|none|level-default|"
|
||||
"level-outer|level-inner|ipv4-chksum|<flowtype_id>",
|
||||
"nvgre|vxlan-gpe|l2tpv3|esp|ah|pfcp|ecpri|mpls|ipv4-chksum|l2tpv2|"
|
||||
"none|level-default|level-outer|level-inner|<flowtype_id>",
|
||||
.tokens = {
|
||||
(void *)&cmd_config_rss_port,
|
||||
(void *)&cmd_config_rss_keyword,
|
||||
@ -2434,7 +2436,7 @@ cmdline_parse_token_string_t cmd_config_rss_hash_key_rss_type =
|
||||
"ipv6-tcp-ex#ipv6-udp-ex#"
|
||||
"l3-src-only#l3-dst-only#l4-src-only#l4-dst-only#"
|
||||
"l2-src-only#l2-dst-only#s-vlan#c-vlan#"
|
||||
"l2tpv3#esp#ah#pfcp#pppoe#gtpu#ecpri#mpls");
|
||||
"l2tpv3#esp#ah#pfcp#pppoe#gtpu#ecpri#mpls#l2tpv2");
|
||||
cmdline_parse_token_string_t cmd_config_rss_hash_key_value =
|
||||
TOKEN_STRING_INITIALIZER(struct cmd_config_rss_hash_key, key, NULL);
|
||||
|
||||
@ -2447,7 +2449,7 @@ cmdline_parse_inst_t cmd_config_rss_hash_key = {
|
||||
"l2-payload|ipv6-ex|ipv6-tcp-ex|ipv6-udp-ex|"
|
||||
"l3-src-only|l3-dst-only|l4-src-only|l4-dst-only|"
|
||||
"l2-src-only|l2-dst-only|s-vlan|c-vlan|"
|
||||
"l2tpv3|esp|ah|pfcp|pppoe|gtpu|ecpri|mpls "
|
||||
"l2tpv3|esp|ah|pfcp|pppoe|gtpu|ecpri|mpls|l2tpv2 "
|
||||
"<string of hex digits (variable length, NIC dependent)>",
|
||||
.tokens = {
|
||||
(void *)&cmd_config_rss_hash_key_port,
|
||||
|
@ -90,7 +90,7 @@ const struct rss_type_info rss_type_table[] = {
|
||||
{ "all", RTE_ETH_RSS_ETH | RTE_ETH_RSS_VLAN | RTE_ETH_RSS_IP | RTE_ETH_RSS_TCP |
|
||||
RTE_ETH_RSS_UDP | RTE_ETH_RSS_SCTP | RTE_ETH_RSS_L2_PAYLOAD |
|
||||
RTE_ETH_RSS_L2TPV3 | RTE_ETH_RSS_ESP | RTE_ETH_RSS_AH | RTE_ETH_RSS_PFCP |
|
||||
RTE_ETH_RSS_GTPU | RTE_ETH_RSS_ECPRI | RTE_ETH_RSS_MPLS},
|
||||
RTE_ETH_RSS_GTPU | RTE_ETH_RSS_ECPRI | RTE_ETH_RSS_MPLS | RTE_ETH_RSS_L2TPV2},
|
||||
{ "none", 0 },
|
||||
{ "eth", RTE_ETH_RSS_ETH },
|
||||
{ "l2-src-only", RTE_ETH_RSS_L2_SRC_ONLY },
|
||||
@ -143,6 +143,7 @@ const struct rss_type_info rss_type_table[] = {
|
||||
{ "mpls", RTE_ETH_RSS_MPLS },
|
||||
{ "ipv4-chksum", RTE_ETH_RSS_IPV4_CHKSUM },
|
||||
{ "l4-chksum", RTE_ETH_RSS_L4_CHKSUM },
|
||||
{ "l2tpv2", RTE_ETH_RSS_L2TPV2 },
|
||||
{ NULL, 0 },
|
||||
};
|
||||
|
||||
|
@ -71,6 +71,11 @@ New Features
|
||||
- ``rte_ipv6_udptcp_cksum_mbuf()``
|
||||
- ``rte_ipv6_udptcp_cksum_mbuf_verify()``
|
||||
|
||||
* **Added new RSS offload types for L2TPv2 in RSS flow.**
|
||||
|
||||
Added macro RTE_ETH_RSS_L2TPV2, now L2TPv2 session ID field can be used as
|
||||
input set for RSS.
|
||||
|
||||
* **Added an API to enable queue based priority flow ctrl(PFC).**
|
||||
|
||||
New APIs, ``rte_eth_dev_priority_flow_ctrl_queue_info_get()`` and
|
||||
|
@ -2308,11 +2308,11 @@ port config - RSS
|
||||
|
||||
Set the RSS (Receive Side Scaling) mode on or off::
|
||||
|
||||
testpmd> port config all rss (all|default|eth|vlan|ip|tcp|udp|sctp|ether|port|vxlan|geneve|nvgre|vxlan-gpe|l2tpv3|esp|ah|pfcp|ecpri|mpls|none)
|
||||
testpmd> port config all rss (all|default|eth|vlan|ip|tcp|udp|sctp|ether|port|vxlan|geneve|nvgre|vxlan-gpe|l2tpv3|esp|ah|pfcp|ecpri|mpls|l2tpv2|none)
|
||||
|
||||
RSS is on by default.
|
||||
|
||||
The ``all`` option is equivalent to eth|vlan|ip|tcp|udp|sctp|ether|l2tpv3|esp|ah|pfcp.
|
||||
The ``all`` option is equivalent to eth|vlan|ip|tcp|udp|sctp|ether|l2tpv3|esp|ah|pfcp|l2tpv2.
|
||||
|
||||
The ``default`` option enables all supported RSS types reported by device info.
|
||||
|
||||
|
@ -651,6 +651,8 @@ struct rte_eth_rss_conf {
|
||||
#define RTE_ETH_RSS_L4_CHKSUM RTE_BIT64(35)
|
||||
#define ETH_RSS_L4_CHKSUM RTE_DEPRECATED(ETH_RSS_L4_CHKSUM) RTE_ETH_RSS_L4_CHKSUM
|
||||
|
||||
#define RTE_ETH_RSS_L2TPV2 RTE_BIT64(36)
|
||||
|
||||
/*
|
||||
* We use the following macros to combine with above RTE_ETH_RSS_* for
|
||||
* more specific input set selection. These bits are defined starting
|
||||
|
Loading…
x
Reference in New Issue
Block a user