Description of problem: Userspace side of the work to provide a stable l3/l4 hash.
In theory ovs-vswitchd should already be reporting what kind of hash the datapath supports through the "Datapath.capabilities:max_hash_alg" key: https://github.com/openvswitch/ovs/blob/d70688a7291edb432fd66b9230a92842fcfd3607/vswitchd/vswitch.xml#L6310 In practice this will always return 0 (OVS_HASH_ALG_L4) for the kernel datapath: https://github.com/openvswitch/ovs/blob/d70688a7291edb432fd66b9230a92842fcfd3607/ofproto/ofproto-dpif.c#L1439 /* Data path hash algorithm for computing Datapath hash. * * The algorithm type only specifies the fields in a flow * will be used as part of the hash. Each datapath is free * to use its own hash algorithm. The hash value will be * opaque to the user space daemon. */ enum ovs_hash_alg { OVS_HASH_ALG_L4, #ifndef __KERNEL__ OVS_HASH_ALG_SYM_L4, #endif __OVS_HASH_MAX }; I'm not sure if the stable hash we need for the kernel datapath will end up being a symmetric one but if it does we could try to just use the Datapath.capabilities:max_hash_alg for notifying the controller.
As Comment 1 notes, this feature already exists for advertising the correct hash.