On Mon, Dec 28, 2020 at 12:28 PM Michael S. Tsirkin <mst@xxxxxxxxxx> wrote: > > 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@xxxxxxxxxx> wrote: > > > > > > On Mon, Dec 28, 2020 at 11:22:31AM -0500, Willem de Bruijn wrote: > > > > From: Willem de Bruijn <willemb@xxxxxxxxxx> > > > > > > > > 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 ... Good. Is this something that the device should enforce? Meaning, drop requests with reserved bits set. Once a bit is defined and device updated to accept it, it cannot distinguish between a new driver aware of the bit and an old one that wrote to padding. More problematic, a well behaved new driver will gets packets dropped by an old device. The proper way is to negotiate this is through features, of course. But I don't think we want to add one for each new bit. That's why I squished the bit definition in here, even in absence of an implementation. _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization