Willem de Bruijn
2020-Dec-28 16:47 UTC
[PATCH rfc 1/3] virtio-net: support transmit hash report
On Mon, Dec 28, 2020 at 11:28 AM Michael S. Tsirkin <mst at redhat.com> wrote:> > On Mon, Dec 28, 2020 at 11:22:31AM -0500, Willem de Bruijn wrote: > > From: Willem de Bruijn <willemb at google.com> > > > > Virtio-net supports sharing the flow hash from host to guest on rx. > > Do the same on transmit, to allow the host to infer connection state > > for more robust routing and telemetry. > > > > Linux derives ipv6 flowlabel and ECMP multipath from sk->sk_txhash, > > and updates these fields on error with sk_rethink_txhash. This feature > > allows the host to make similar decisions. > > > > Besides the raw hash, optionally also convey connection state for > > this hash. Specifically, the hash rotates on transmit timeout. To > > avoid having to keep a stateful table in the host to detect flow > > changes, explicitly notify when a hash changed due to timeout. > > I don't actually see code using VIRTIO_NET_HASH_STATE_TIMEOUT_BIT > in this series. Want to split out that part to a separate patch?Will do. I wanted to make it clear that these bits must be reserved (i.e., zero) until a later patch specifies them. The timeout notification feature requires additional plumbing between the TCP protocol stack and device driver, probably an skb bit. I'd like to leave that as follow-up for now. Thanks for the fast feedback!
Michael S. Tsirkin
2020-Dec-28 17:22 UTC
[PATCH rfc 1/3] virtio-net: support transmit hash report
On Mon, Dec 28, 2020 at 11:47:45AM -0500, Willem de Bruijn wrote:> On Mon, Dec 28, 2020 at 11:28 AM Michael S. Tsirkin <mst at redhat.com> wrote: > > > > On Mon, Dec 28, 2020 at 11:22:31AM -0500, Willem de Bruijn wrote: > > > From: Willem de Bruijn <willemb at google.com> > > > > > > Virtio-net supports sharing the flow hash from host to guest on rx. > > > Do the same on transmit, to allow the host to infer connection state > > > for more robust routing and telemetry. > > > > > > Linux derives ipv6 flowlabel and ECMP multipath from sk->sk_txhash, > > > and updates these fields on error with sk_rethink_txhash. This feature > > > allows the host to make similar decisions. > > > > > > Besides the raw hash, optionally also convey connection state for > > > this hash. Specifically, the hash rotates on transmit timeout. To > > > avoid having to keep a stateful table in the host to detect flow > > > changes, explicitly notify when a hash changed due to timeout. > > > > I don't actually see code using VIRTIO_NET_HASH_STATE_TIMEOUT_BIT > > in this series. Want to split out that part to a separate patch? > > Will do. > > I wanted to make it clear that these bits must be reserved (i.e., > zero) until a later patch specifies them.Already the case for the padding field I think ...> The timeout notification feature requires additional plumbing between > the TCP protocol stack and device driver, probably an skb bit. I'd > like to leave that as follow-up for now. > > Thanks for the fast feedback!