[ovs-discuss] Select Group bucket selection
Warsang
warsang at minet.net
Tue Aug 30 00:17:06 UTC 2016
On 08/29/16 17:29, Ben Pfaff wrote:
> On Mon, Aug 29, 2016 at 07:22:10PM +1200, Warsang wrote:
>> Hello,
>>
>> I was wondering how the bucket selection is made in OVS 2.4 I found this in
>> the ml archive
>> http://openvswitch.org/pipermail/discuss/2016-January/019984.html
>> saying that :"
>>
>> Open vSwitch 2.4 and later by default hashes the source and
>> destination Ethernet address, VLAN ID, Ethernet type, IPv4/v6
>> source and destination address and protocol, and for TCP and SCTP
>> only, the source and destination ports. The hash is "symmetric",
>> meaning that exchanging source and destination addresses does not
>> change the bucket selection.
> That information is correct. It comes from the OVS FAQ. The entire FAQ
> entry says:
>
> ### Q: How does OVS divide flows among buckets in an OpenFlow "select" group?
>
> A: In Open vSwitch 2.3 and earlier, Open vSwitch used the destination
> Ethernet address to choose a bucket in a select group.
>
> Open vSwitch 2.4 and later by default hashes the source and
> destination Ethernet address, VLAN ID, Ethernet type, IPv4/v6
> source and destination address and protocol, and for TCP and SCTP
> only, the source and destination ports. The hash is "symmetric",
> meaning that exchanging source and destination addresses does not
> change the bucket selection.
>
> Select groups in Open vSwitch 2.4 and later can be configured to
> use a different hash function, using a Netronome extension to the
> OpenFlow 1.5+ group_mod message. For more information, see
> Documentation/group-selection-method-property.txt in the Open
> vSwitch source tree. (OpenFlow 1.5 support in Open vSwitch is still
> experimental.)
Thank you for your answer
>> I am trying to implement ECMP in ryu controller so if I do understand
>> correctly, using buckets from SELECT group is not the correct solution for
>> it uses a very different selection method is that right?
> What kind of selection method do you want?
I was thinking of using the ECMP five-tuple (Ip src, Ip dst, protocol,
L4 src port, L4 dst port) through a hash (CRC16 or MD5) modulo 100,and
then depending on the value of the hash, sending it to a corresponding
bucket. Or am I missunderstanding something in how ECMP works?
More information about the discuss
mailing list