diff mbox series

[2/2] NetRxPkt: fix hash calculation of IPV6 TCP

Message ID 20200127115405.13459-2-yuri.benditovich@daynix.com (mailing list archive)
State New, archived
Headers show
Series None | expand

Commit Message

Yuri Benditovich Jan. 27, 2020, 11:54 a.m. UTC
When requested to calculate the hash for TCPV6 packet,
ignore overrides of source and destination addresses
in in extension headers.
Use these overrides when new hash type NetPktRssIpV6TcpEx
requested.
Use this type in e1000e hash calculation for IPv6 TCP, which
should take in account overrides of the addresses.

Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
---
 hw/net/e1000e_core.c | 2 +-
 hw/net/net_rx_pkt.c  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Dmitry Fleytman Jan. 29, 2020, 4:09 p.m. UTC | #1
> On 27 Jan 2020, at 13:54, Yuri Benditovich <yuri.benditovich@daynix.com> wrote:
> 
> When requested to calculate the hash for TCPV6 packet,
> ignore overrides of source and destination addresses
> in in extension headers.
> Use these overrides when new hash type NetPktRssIpV6TcpEx
> requested.
> Use this type in e1000e hash calculation for IPv6 TCP, which
> should take in account overrides of the addresses.
> 
> Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>

Acked-by: Dmitry Fleytman <dmitry.fleytman@gmail.com>

> ---
> hw/net/e1000e_core.c | 2 +-
> hw/net/net_rx_pkt.c  | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c
> index 9b76f82db5..5b05c8ea8a 100644
> --- a/hw/net/e1000e_core.c
> +++ b/hw/net/e1000e_core.c
> @@ -582,7 +582,7 @@ e1000e_rss_calc_hash(E1000ECore *core,
>         type = NetPktRssIpV4Tcp;
>         break;
>     case E1000_MRQ_RSS_TYPE_IPV6TCP:
> -        type = NetPktRssIpV6Tcp;
> +        type = NetPktRssIpV6TcpEx;
>         break;
>     case E1000_MRQ_RSS_TYPE_IPV6:
>         type = NetPktRssIpV6;
> diff --git a/hw/net/net_rx_pkt.c b/hw/net/net_rx_pkt.c
> index b2a06bd27d..1e1c504e42 100644
> --- a/hw/net/net_rx_pkt.c
> +++ b/hw/net/net_rx_pkt.c
> @@ -348,7 +348,7 @@ net_rx_pkt_calc_rss_hash(struct NetRxPkt *pkt,
>         assert(pkt->isip6);
>         assert(pkt->istcp);
>         trace_net_rx_pkt_rss_ip6_tcp();
> -        _net_rx_rss_prepare_ip6(&rss_input[0], pkt, true, &rss_length);
> +        _net_rx_rss_prepare_ip6(&rss_input[0], pkt, false, &rss_length);
>         _net_rx_rss_prepare_tcp(&rss_input[0], pkt, &rss_length);
>         break;
>     case NetPktRssIpV6:
> -- 
> 2.17.1
>
diff mbox series

Patch

diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c
index 9b76f82db5..5b05c8ea8a 100644
--- a/hw/net/e1000e_core.c
+++ b/hw/net/e1000e_core.c
@@ -582,7 +582,7 @@  e1000e_rss_calc_hash(E1000ECore *core,
         type = NetPktRssIpV4Tcp;
         break;
     case E1000_MRQ_RSS_TYPE_IPV6TCP:
-        type = NetPktRssIpV6Tcp;
+        type = NetPktRssIpV6TcpEx;
         break;
     case E1000_MRQ_RSS_TYPE_IPV6:
         type = NetPktRssIpV6;
diff --git a/hw/net/net_rx_pkt.c b/hw/net/net_rx_pkt.c
index b2a06bd27d..1e1c504e42 100644
--- a/hw/net/net_rx_pkt.c
+++ b/hw/net/net_rx_pkt.c
@@ -348,7 +348,7 @@  net_rx_pkt_calc_rss_hash(struct NetRxPkt *pkt,
         assert(pkt->isip6);
         assert(pkt->istcp);
         trace_net_rx_pkt_rss_ip6_tcp();
-        _net_rx_rss_prepare_ip6(&rss_input[0], pkt, true, &rss_length);
+        _net_rx_rss_prepare_ip6(&rss_input[0], pkt, false, &rss_length);
         _net_rx_rss_prepare_tcp(&rss_input[0], pkt, &rss_length);
         break;
     case NetPktRssIpV6: