I have tried to implement multipath routing using a select group and two
buckets but it doesn't work as I expected.

I have a diamond topology with Alice at one end and Bob at the other. They
connect to each other through the OVS switches s1, s2, s3, and s4, like in
the diagram below.

            ___ s2 ___
           /                  \
a ---- s1                 s4 ---- b
           \___ s3 ___/


I've added a group to s1 that contains two buckets that have equal weight:
  # ovs-ofctl -O OpenFlow15 add-group s1 "group_id=1 type=select
selection_method=dp_hash bucket=actions=output:2,weight=80
bucket=actions=output:3,weight=80"

Here is my flow entry that sends matching packets to the group:
  # ovs-ofctl -O OpenFlow15 add-flow s1
in_port=1,dl_src=08:00:27:6f:32:8d,dl_dst=08:00:27:fb:55:9d,actions=group:1

There are other flow entries to ensure packets are forwarded appropriately
by s2, s3, and s4.

When I send traffic through the network and dump the flow entry statistics,
I see that all of the traffic goes to Bob through s2. If I increase the
weight of the second bucket by 1, then all of the traffic goes to Bob
through s3.

Here is what I read in the documentation about ovs-ofctl, from the section
about Group Syntax > type > select: "Execute one bucket in the group,
balancing across the buckets according to their weights."

I took that to mean that buckets with equal weights would each handle an
equal proportion of the incoming matching network traffic. Is that not what
it means?

I welcome any suggestions about what I might be doing wrong here.

Thankyou
_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to