From: Yuri Benditovich <yuri.benditovich@daynix.com>
To: Jason Wang <jasowang@redhat.com>
Cc: Yan Vugenfirer <yan@daynix.com>,
Dmitry Fleytman <dmitry.fleytman@gmail.com>,
qemu-devel@nongnu.org
Subject: Re: [PATCH 1/2] NetRxPkt: Introduce support for additional hash types
Date: Wed, 12 Feb 2020 10:50:44 +0200 [thread overview]
Message-ID: <CAOEp5Oc8qYN=abgh5QYarvMPnG-BuC_isfHBw6V0FvbKvwe0JQ@mail.gmail.com> (raw)
In-Reply-To: <DDDADB15-A1C8-40E6-A595-6A516F6E5831@gmail.com>
Hi Jason,
Can you please review these 2 patches and apply if there are no objections.
Thanks,
Yuri Benditovich
On Wed, Jan 29, 2020 at 6:09 PM Dmitry Fleytman
<dmitry.fleytman@gmail.com> wrote:
>
>
>
> > On 27 Jan 2020, at 13:54, Yuri Benditovich <yuri.benditovich@daynix.com> wrote:
> >
> > Add support for following hash types:
> > IPV6 TCP with extension headers
> > IPV4 UDP
> > IPV6 UDP
> > IPV6 UDP with extension headers
> >
> > Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com>
>
>
> Acked-by: Dmitry Fleytman <dmitry.fleytman@gmail.com>
>
>
> > ---
> > hw/net/net_rx_pkt.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> > hw/net/net_rx_pkt.h | 6 +++++-
> > hw/net/trace-events | 4 ++++
> > 3 files changed, 51 insertions(+), 1 deletion(-)
> >
> > diff --git a/hw/net/net_rx_pkt.c b/hw/net/net_rx_pkt.c
> > index 98a5030ace..b2a06bd27d 100644
> > --- a/hw/net/net_rx_pkt.c
> > +++ b/hw/net/net_rx_pkt.c
> > @@ -307,6 +307,20 @@ _net_rx_rss_prepare_tcp(uint8_t *rss_input,
> > &tcphdr->th_dport, sizeof(uint16_t));
> > }
> >
> > +static inline void
> > +_net_rx_rss_prepare_udp(uint8_t *rss_input,
> > + struct NetRxPkt *pkt,
> > + size_t *bytes_written)
> > +{
> > + struct udp_header *udphdr = &pkt->l4hdr_info.hdr.udp;
> > +
> > + _net_rx_rss_add_chunk(rss_input, bytes_written,
> > + &udphdr->uh_sport, sizeof(uint16_t));
> > +
> > + _net_rx_rss_add_chunk(rss_input, bytes_written,
> > + &udphdr->uh_dport, sizeof(uint16_t));
> > +}
> > +
> > uint32_t
> > net_rx_pkt_calc_rss_hash(struct NetRxPkt *pkt,
> > NetRxPktRssType type,
> > @@ -347,6 +361,34 @@ net_rx_pkt_calc_rss_hash(struct NetRxPkt *pkt,
> > trace_net_rx_pkt_rss_ip6_ex();
> > _net_rx_rss_prepare_ip6(&rss_input[0], pkt, true, &rss_length);
> > break;
> > + case NetPktRssIpV6TcpEx:
> > + assert(pkt->isip6);
> > + assert(pkt->istcp);
> > + trace_net_rx_pkt_rss_ip6_ex_tcp();
> > + _net_rx_rss_prepare_ip6(&rss_input[0], pkt, true, &rss_length);
> > + _net_rx_rss_prepare_tcp(&rss_input[0], pkt, &rss_length);
> > + break;
> > + case NetPktRssIpV4Udp:
> > + assert(pkt->isip4);
> > + assert(pkt->isudp);
> > + trace_net_rx_pkt_rss_ip4_udp();
> > + _net_rx_rss_prepare_ip4(&rss_input[0], pkt, &rss_length);
> > + _net_rx_rss_prepare_udp(&rss_input[0], pkt, &rss_length);
> > + break;
> > + case NetPktRssIpV6Udp:
> > + assert(pkt->isip6);
> > + assert(pkt->isudp);
> > + trace_net_rx_pkt_rss_ip6_udp();
> > + _net_rx_rss_prepare_ip6(&rss_input[0], pkt, false, &rss_length);
> > + _net_rx_rss_prepare_udp(&rss_input[0], pkt, &rss_length);
> > + break;
> > + case NetPktRssIpV6UdpEx:
> > + assert(pkt->isip6);
> > + assert(pkt->isudp);
> > + trace_net_rx_pkt_rss_ip6_ex_udp();
> > + _net_rx_rss_prepare_ip6(&rss_input[0], pkt, true, &rss_length);
> > + _net_rx_rss_prepare_udp(&rss_input[0], pkt, &rss_length);
> > + break;
> > default:
> > assert(false);
> > break;
> > diff --git a/hw/net/net_rx_pkt.h b/hw/net/net_rx_pkt.h
> > index 7adf0fad51..048e3461f0 100644
> > --- a/hw/net/net_rx_pkt.h
> > +++ b/hw/net/net_rx_pkt.h
> > @@ -133,7 +133,11 @@ typedef enum {
> > NetPktRssIpV4Tcp,
> > NetPktRssIpV6Tcp,
> > NetPktRssIpV6,
> > - NetPktRssIpV6Ex
> > + NetPktRssIpV6Ex,
> > + NetPktRssIpV6TcpEx,
> > + NetPktRssIpV4Udp,
> > + NetPktRssIpV6Udp,
> > + NetPktRssIpV6UdpEx,
> > } NetRxPktRssType;
> >
> > /**
> > diff --git a/hw/net/trace-events b/hw/net/trace-events
> > index 6f990ede87..73d4558f7e 100644
> > --- a/hw/net/trace-events
> > +++ b/hw/net/trace-events
> > @@ -92,9 +92,13 @@ net_rx_pkt_l3_csum_validate_csum(size_t l3hdr_off, uint32_t csl, uint32_t cntr,
> >
> > net_rx_pkt_rss_ip4(void) "Calculating IPv4 RSS hash"
> > net_rx_pkt_rss_ip4_tcp(void) "Calculating IPv4/TCP RSS hash"
> > +net_rx_pkt_rss_ip4_udp(void) "Calculating IPv4/UDP RSS hash"
> > net_rx_pkt_rss_ip6_tcp(void) "Calculating IPv6/TCP RSS hash"
> > +net_rx_pkt_rss_ip6_udp(void) "Calculating IPv6/UDP RSS hash"
> > net_rx_pkt_rss_ip6(void) "Calculating IPv6 RSS hash"
> > net_rx_pkt_rss_ip6_ex(void) "Calculating IPv6/EX RSS hash"
> > +net_rx_pkt_rss_ip6_ex_tcp(void) "Calculating IPv6/EX/TCP RSS hash"
> > +net_rx_pkt_rss_ip6_ex_udp(void) "Calculating IPv6/EX/UDP RSS hash"
> > net_rx_pkt_rss_hash(size_t rss_length, uint32_t rss_hash) "RSS hash for %zu bytes: 0x%X"
> > net_rx_pkt_rss_add_chunk(void* ptr, size_t size, size_t input_offset) "Add RSS chunk %p, %zu bytes, RSS input offset %zu bytes"
> >
> > --
> > 2.17.1
> >
>
next prev parent reply other threads:[~2020-02-12 8:51 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-27 11:54 [PATCH 1/2] NetRxPkt: Introduce support for additional hash types Yuri Benditovich
2020-01-27 11:54 ` [PATCH 2/2] NetRxPkt: fix hash calculation of IPV6 TCP Yuri Benditovich
2020-01-29 16:09 ` Dmitry Fleytman
2020-01-29 16:09 ` [PATCH 1/2] NetRxPkt: Introduce support for additional hash types Dmitry Fleytman
2020-02-12 8:50 ` Yuri Benditovich [this message]
2020-02-12 9:01 ` Jason Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAOEp5Oc8qYN=abgh5QYarvMPnG-BuC_isfHBw6V0FvbKvwe0JQ@mail.gmail.com' \
--to=yuri.benditovich@daynix.com \
--cc=dmitry.fleytman@gmail.com \
--cc=jasowang@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=yan@daynix.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).