[ovs-discuss] Isn't there any way to use RSS hash instead of jhash in flow_hash()

Greg Rose gvrose8192 at gmail.com
Tue May 23 16:50:08 UTC 2017


On Tue, 2017-05-23 at 16:42 +0900, Heung Sik Choi wrote:
> Hi,
> 
> 
> In many articles about ovs, there are some mention that hashing
> function cause quite significant overhead. Also, I did 'perf record'
> performing OVS L3 forwarding, and found that.
> 
> 
> So, an idea comes up, which is that implement RSS hash
> algorithm(Toeplitz hash algorithm) in kernel datapath module.

I'm somewhat confused by this comment.  RSS will use a Toeplitz hash
algorithm to create a hash value that will then be used by the NIC to
select one of multiple HW receive queues.  It's more than just a hash
algorithm.  Are you saying that you want to add RSS to the datapath to
move packets to different queues? Which queues? Or do you just want to
create a Toeplitz hashing algorithm function that will return a hash
value and it doesn't really have anything to do with RSS?

> However, I stucked in processing mask the 'struct sw_flow_key'.
> 
> 
> I insert only one rule 'ovs-ofctl add-flow ovs-br1
> nw_dst=100.1.1.1,actions=mod_dl_dst:90:e2:ba:5b:88:2c,in_port'.
> Strangely, mac_src, mac_dst, ip_src, ip_dst, and port value in  struct
> sw_flow_key is changed after calling  ovs_flow_mask_key() in
> masked_flow_lookup(). I can not understand why mask processing turn on
> and why mask processing change almost all values in sw_flow_key.

I have no idea about that.  I'll see if I can find time to repro on my
own testing environment.

- Greg

> 
> 
>  Please let me know if you have any insights.
> _______________________________________________
> discuss mailing list
> discuss at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss





More information about the discuss mailing list