Skip to content

SRv6: Set the outer IPv6 flowlabel hash #21961

@pchaigno

Description

@pchaigno

The IPv6 flowlabel field can be used by NICs for RSS. In SRv6 encapsulation, this is crucial as most NICs likely will only be able to use the outer IPv6 header to pick the queue, so without a flowlabel, all packets with the same outer IP addresses will end up on the same queue.

From @YutaroHayakawa:

The H.Encaps section of RFC8986 says it should follow the way specified in RFC6437, but its 🤯
I think we can follow the way of kernel implementation.
torvalds/linux@b5facfd#diff-4da369b586ba9233e8a230875d06c5daa731175a8c483e3fcc0691aab9cd9817R103-R105

Following the kernel implementation is probably a better idea indeed. We could more specifically follow the seg6_flowlabel=1 implementation. Not sure if we have an easy way to retrieve the skb hash though (i.e., not sure skb->hash is always set at the time of encap.).

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/datapathImpacts bpf/ or low-level forwarding details, including map management and monitor messages.feature/srv6Impacts the SRv6 feature.good-first-issueGood starting point for new developers, which requires minimal understanding of Cilium.kind/enhancementThis would improve or streamline existing functionality.kind/performanceThere is a performance impact of this.

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions