[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [virtio-dev] Re: [virtio-comment] Re: [virtio-dev] Re: [virtio-comment] [PATCH v13] virtio-net: support inner header hash
On Tue, May 09, 2023 at 10:22:19PM +0800, Heng Qi wrote: > > > å 2023/5/5 äå10:56, Michael S. Tsirkin åé: > > On Fri, May 05, 2023 at 09:51:15PM +0800, Heng Qi wrote: > > > On Thu, Apr 27, 2023 at 01:13:29PM -0400, Michael S. Tsirkin wrote: > > > > On Thu, Apr 27, 2023 at 10:28:29AM +0800, Heng Qi wrote: > > > > > > > > > > å 2023/4/26 äå10:48, Michael S. Tsirkin åé: > > > > > > On Wed, Apr 26, 2023 at 10:14:30PM +0800, Heng Qi wrote: > > > > > > > This does not mean that every device needs to implement and support all of > > > > > > > these, they can choose to support some protocols they want. > > > > > > > > > > > > > > I add these because we have scale application scenarios for modern protocols > > > > > > > VXLAN-GPE/GENEVE: > > > > > > > > > > > > > > +\item In scenarios where the same flow passing through different tunnels is expected to be received in the same queue, > > > > > > > + warm caches, lessing locking, etc. are optimized to obtain receiving performance. > > > > > > > > > > > > > > > > > > > > > Maybe the legacy GRE, VXLAN-GPE and GENEVE? But it has a little crossover. > > > > > > > > > > > > > > Thanks. > > > > > > But VXLAN-GPE/GENEVE can use source port for entropy. > > > > > > > > > > > > It is recommended that the UDP source port number > > > > > > be calculated using a hash of fields from the inner packet > > > > > > > > > > > > That is best because > > > > > > it allows end to end control and is protocol agnostic. > > > > > Yes. I agree with this, I don't think we have an argument on this point > > > > > right now.:) > > > > > > > > > > For VXLAN-GPE/GENEVE or other modern tunneling protocols, we have to deal > > > > > with > > > > > scenarios where the same flow passes through different tunnels. > > > > > > > > > > Having them hashed to the same rx queue, is hard to do via outer headers. > > > > > > All that is missing is symmetric Toepliz and all is well? > > > > > The scenarios above or in the commit log also require inner headers. > > > > Hmm I am not sure I get it 100%. > > > > Could you show an example with inner header hash in the port #, > > > > hash is symmetric, and you still have trouble? > > > > > > > > > > > > It kinds of sounds like not enough entropy is not the problem > > > > at this point. > > > Sorry for the late reply. :) > > > > > > For modern tunneling protocols, yes. > > > > > > > You now want to drop everything from the header > > > > except the UDP source port. Is that a fair summary? > > > > > > > For example, for the same flow passing through different VXLAN tunnels, > > > packets in this flow have the same inner header and different outer > > > headers. Sometimes these packets of the flow need to be hashed to the > > > same rxq, then we can use the inner header as the hash input. > > > > > > Thanks! > > So, they will have the same source port yes? > > Yes. The outer source port can be calculated using the 5-tuple of the > original packet, > and the outer ports are the same but the outer IPs are different after > different directions of the same flow pass through different tunnels. > > Any way to use that > > We use it in monitoring, firewall and other scenarios. > > > so we don't depend on a specific protocol? > > Yes, selected tunneling protocols can be used in this scenario like this. > > Thanks. > No, the question was - can we generalize this somehow then? For example, a flag to ignore source IP when hashing? Or maybe just for UDP packets? -- MST
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]