From: "Michael S. Tsirkin" <mst@redhat.com>
To: Parav Pandit <parav@nvidia.com>
Cc: Heng Qi <hengqi@linux.alibaba.com>,
"virtio-comment@lists.oasis-open.org"
<virtio-comment@lists.oasis-open.org>,
"virtio-dev@lists.oasis-open.org"
<virtio-dev@lists.oasis-open.org>,
Jason Wang <jasowang@redhat.com>,
Yuri Benditovich <yuri.benditovich@daynix.com>,
Cornelia Huck <cohuck@redhat.com>,
Xuan Zhuo <xuanzhuo@linux.alibaba.com>
Subject: Re: [PATCH v9] virtio-net: support inner header hash
Date: Tue, 21 Feb 2023 16:46:12 -0500 [thread overview]
Message-ID: <20230221163930-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <PH0PR12MB54812CB5FBE771428A1D06BFDCA59@PH0PR12MB5481.namprd12.prod.outlook.com>
On Tue, Feb 21, 2023 at 09:36:06PM +0000, Parav Pandit wrote:
> > So you are saying either live with the problem (this is best effort yes?)
> Yes to best effort usage.
For sure something can be done to mitigate? How about randomizing the
key for example? That's in just like 1 minute of thinking. I am guessing
more can be done.
> >
> >
> > > > > > +\item The user can observe the traffic information and enqueue
> > > > > > +information
> > > > > > of other normal
> > > > > > + tunnels, and conduct targeted DoS attacks.
> > > > > Once hash_report_tunnel_types is removed, this second attack is no
> > > > > longer
> > > > applicable.
> > > > > Hence, please remove this too.
> > > >
> > > >
> > > > ?
> > > > I don't get how removing a field helps DoS.
> > > >
> > > I meant for the "observe and enqueue" part of the tunnel as not applicable.
> >
> > Sorry still don't get it :( I don't know what is the "observe and enqueue" part of
> > the tunnel and what is not applicable. But maybe Heng Qi does.
> >
> Tunnel type such as vxlan/gre etc is not placed in the virtio_net_hdr.
> This way the net_hdr doesn't leak such information to upper layer drivers as it cannot observe it.
What is this information driver can't observe? It sees all the packets
after all, we are not stripping tunneling headers.
I also don't really know what are upper layer drivers - for sure
layering of drivers is not covered in the spec for now so I am not sure
what do you mean by that. The risk I mentioned is leaking the
information *on the network*.
> > > > \begin{lstlisting} struct virtio_net_rss_config {
> > > > > > le32 hash_types;
> > > > > > + le32 hash_tunnel_types;
> > > > > This field is not needed as device config space advertisement for
> > > > > the support
> > > > is enough.
> > > > >
> > > > > If the intent is to enable hashing for the specific tunnel(s), an
> > > > > individual
> > > > command is better.
> > > >
> > > > new command? I am not sure why we want that. why not handle tunnels
> > > > like we do other protocols?
> > >
> > > I didn't follow.
> > > We probably discussed in another thread that to set M bits, it is wise to avoid
> > setting N other bits just to keep the command happy, where N >>> M and these
> > N have a very strong relation in hw resource setup and packet steering.
> > > Any examples of 'other protocols'?
> >
> > #define VIRTIO_NET_HASH_TYPE_IPv4 (1 << 0)
> > #define VIRTIO_NET_HASH_TYPE_TCPv4 (1 << 1)
> > #define VIRTIO_NET_HASH_TYPE_UDPv4 (1 << 2)
> >
> > this kind of thing.
> >
> > I don't see how a tunnel is different fundamentally. Why does it need its own
> > field?
>
> Driver is in control to enable/disable tunnel based inner hash acceleration only when its needed.
> This way certain data path hw parsers can be enabled/disabled.
> Without this it will be always enabled even if there may not be any user of it.
> Device has scope to optimize this flow.
I feel you misunderstand the question. Or maybe I misunderstand what you
are proposing. So tunnels need their own bits. But why a separate field
and not just more bits along the existing ones?
--
MST
next prev parent reply other threads:[~2023-02-21 21:46 UTC|newest]
Thread overview: 120+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-18 14:37 [PATCH v9] virtio-net: support inner header hash Heng Qi
2023-02-20 15:53 ` [virtio-comment] Re: [virtio-dev] " Heng Qi
2023-02-20 16:12 ` Michael S. Tsirkin
2023-02-21 4:20 ` Parav Pandit
2023-02-21 6:14 ` [virtio-comment] " Heng Qi
2023-02-21 12:47 ` Parav Pandit
2023-02-21 13:34 ` Heng Qi
2023-02-21 15:32 ` Parav Pandit
2023-02-21 16:44 ` [virtio-comment] Re: [virtio-dev] " Heng Qi
2023-02-21 16:50 ` Parav Pandit
2023-02-21 17:13 ` Michael S. Tsirkin
2023-02-21 17:40 ` [virtio-comment] " Parav Pandit
2023-02-21 17:44 ` Michael S. Tsirkin
2023-02-21 17:54 ` Parav Pandit
2023-02-21 17:17 ` [virtio-comment] " Heng Qi
2023-02-21 17:39 ` Parav Pandit
2023-02-21 13:37 ` Heng Qi
2023-02-21 17:05 ` Michael S. Tsirkin
2023-02-21 19:29 ` Parav Pandit
2023-02-21 21:23 ` Michael S. Tsirkin
2023-02-21 21:36 ` Parav Pandit
2023-02-21 21:46 ` Michael S. Tsirkin [this message]
2023-02-21 22:32 ` Parav Pandit
2023-02-21 23:18 ` Michael S. Tsirkin
2023-02-22 1:41 ` Parav Pandit
2023-02-22 2:51 ` [virtio-dev] " Heng Qi
2023-02-22 2:34 ` [virtio-dev] " Heng Qi
2023-02-22 6:21 ` Michael S. Tsirkin
2023-02-22 7:03 ` Heng Qi
2023-02-22 11:29 ` Michael S. Tsirkin
2023-03-01 14:32 ` [virtio-dev] " Heng Qi
2023-02-21 17:50 ` Michael S. Tsirkin
2023-02-22 3:22 ` Jason Wang
2023-02-22 6:46 ` Heng Qi
2023-02-22 11:30 ` Michael S. Tsirkin
2023-02-23 2:50 ` Jason Wang
2023-02-23 4:41 ` [virtio-dev] " Heng Qi
2023-02-24 2:45 ` Jason Wang
2023-02-24 4:47 ` [virtio-comment] " Heng Qi
2023-02-24 8:07 ` Michael S. Tsirkin
2023-02-23 13:03 ` Michael S. Tsirkin
2023-02-24 2:26 ` Jason Wang
2023-02-24 8:06 ` [virtio-dev] " Michael S. Tsirkin
2023-02-27 4:07 ` Jason Wang
2023-02-27 4:07 ` [virtio-dev] " Jason Wang
2023-02-27 7:39 ` Michael S. Tsirkin
2023-02-27 7:39 ` [virtio-dev] " Michael S. Tsirkin
2023-02-27 8:35 ` Jason Wang
2023-02-27 8:35 ` [virtio-dev] " Jason Wang
2023-02-27 12:38 ` Heng Qi
2023-02-27 12:38 ` [virtio-dev] " Heng Qi
2023-02-27 17:49 ` Michael S. Tsirkin
2023-02-27 17:49 ` [virtio-dev] " Michael S. Tsirkin
2023-02-28 3:04 ` Jason Wang
2023-02-28 3:04 ` [virtio-dev] " Jason Wang
2023-02-28 8:52 ` Michael S. Tsirkin
2023-02-28 8:52 ` [virtio-dev] " Michael S. Tsirkin
2023-02-28 9:56 ` Heng Qi
2023-02-28 9:56 ` Heng Qi
2023-02-28 11:04 ` Michael S. Tsirkin
2023-02-28 11:04 ` [virtio-dev] " Michael S. Tsirkin
2023-03-01 2:36 ` Jason Wang
2023-03-01 2:36 ` [virtio-dev] " Jason Wang
2023-03-01 10:36 ` Michael S. Tsirkin
2023-03-02 2:57 ` Jason Wang
2023-03-02 7:42 ` Michael S. Tsirkin
2023-03-02 7:57 ` Jason Wang
2023-03-02 8:09 ` Michael S. Tsirkin
2023-03-02 8:15 ` Jason Wang
2023-03-02 8:41 ` Michael S. Tsirkin
2023-03-02 8:59 ` Jason Wang
2023-03-02 9:46 ` Michael S. Tsirkin
2023-02-23 13:13 ` Michael S. Tsirkin
2023-02-23 14:40 ` [virtio-comment] " Parav Pandit
2023-02-24 8:13 ` Michael S. Tsirkin
2023-02-24 14:38 ` [virtio-dev] " Heng Qi
2023-02-24 17:10 ` Michael S. Tsirkin
2023-02-24 17:10 ` Michael S. Tsirkin
2023-02-27 0:29 ` Parav Pandit
2023-02-27 0:29 ` [virtio-dev] " Parav Pandit
2023-02-24 4:42 ` Heng Qi
2023-02-24 8:04 ` Michael S. Tsirkin
2023-02-28 11:16 ` Michael S. Tsirkin
2023-02-28 11:16 ` [virtio-dev] " Michael S. Tsirkin
2023-03-01 2:56 ` Heng Qi
2023-03-01 2:56 ` Heng Qi
2023-03-08 14:39 ` [virtio-comment] " Michael S. Tsirkin
2023-03-08 14:39 ` [virtio-dev] " Michael S. Tsirkin
2023-03-09 4:55 ` [virtio-comment] " Heng Qi
2023-03-09 4:55 ` Heng Qi
2023-03-09 19:36 ` [virtio-comment] " Michael S. Tsirkin
2023-03-09 19:36 ` Michael S. Tsirkin
2023-03-11 3:23 ` [virtio-comment] " Heng Qi
2023-03-11 3:23 ` Heng Qi
2023-03-15 11:58 ` [virtio-comment] " Michael S. Tsirkin
2023-03-15 11:58 ` [virtio-dev] " Michael S. Tsirkin
2023-03-15 12:55 ` Heng Qi
2023-03-15 12:55 ` [virtio-dev] " Heng Qi
2023-03-15 14:57 ` Michael S. Tsirkin
2023-03-15 14:57 ` [virtio-dev] " Michael S. Tsirkin
2023-03-16 13:17 ` Heng Qi
2023-03-16 13:17 ` [virtio-dev] " Heng Qi
2023-03-20 19:45 ` Michael S. Tsirkin
2023-03-20 19:45 ` [virtio-dev] " Michael S. Tsirkin
2023-03-30 12:10 ` Heng Qi
2023-03-30 12:10 ` [virtio-dev] " Heng Qi
2023-03-20 19:48 ` Michael S. Tsirkin
2023-03-20 19:48 ` [virtio-dev] " Michael S. Tsirkin
2023-03-30 12:37 ` Heng Qi
2023-03-30 12:37 ` [virtio-dev] " Heng Qi
2023-04-08 10:29 ` Michael S. Tsirkin
2023-04-08 10:29 ` [virtio-dev] " Michael S. Tsirkin
2023-04-10 13:26 ` [virtio-comment] " Heng Qi
2023-04-10 13:26 ` Heng Qi
2023-03-01 3:30 ` [virtio-comment] " Heng Qi
2023-03-01 3:30 ` [virtio-dev] " Heng Qi
2023-03-01 11:07 ` Michael S. Tsirkin
2023-03-01 15:10 ` Heng Qi
2023-03-09 12:28 ` [virtio-comment] Re: [virtio-dev] " Heng Qi
2023-03-09 12:28 ` Heng Qi
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=20230221163930-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=cohuck@redhat.com \
--cc=hengqi@linux.alibaba.com \
--cc=jasowang@redhat.com \
--cc=parav@nvidia.com \
--cc=virtio-comment@lists.oasis-open.org \
--cc=virtio-dev@lists.oasis-open.org \
--cc=xuanzhuo@linux.alibaba.com \
--cc=yuri.benditovich@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.