From: Ariel Levkovich <lar...@mellanox.com> Date: Thu, 23 Jul 2020 01:02:59 +0300
> Hash based packet classification allows user to set up rules that > provide load balancing of traffic across multiple vports and > for ECMP path selection while keeping the number of rule at minimum. > > Instead of matching on exact flow spec, which requires a rule per > flow, user can define rules based on a their hash value and distribute > the flows to different buckets. The number of rules > in this case will be constant and equal to the number of buckets. > > The series introduces an extention to the cls flower classifier > and allows user to add rules that match on the hash value that > is stored in skb->hash while assuming the value was set prior to > the classification. > > Setting the skb->hash can be done in various ways and is not defined > in this series - for example: > 1. By the device driver upon processing an rx packet. > 2. Using tc action bpf with a program which computes and sets the > skb->hash value. > > $ tc filter add dev ens1f0_0 ingress \ > prio 1 chain 2 proto ip \ > flower hash 0x0/0xf \ > action mirred egress redirect dev ens1f0_1 > > $ tc filter add dev ens1f0_0 ingress \ > prio 1 chain 2 proto ip \ > flower hash 0x1/0xf \ > action mirred egress redirect dev ens1f0_2 > > v3 -> v4: > *Drop hash setting code leaving only the classidication parts. > Setting the hash will be possible via existing tc action bpf. > > v2 -> v3: > *Split hash algorithm option into 2 different actions. > Asym_l4 available via act_skbedit and bpf via new act_hash. Series applied, thank you.