If I send multiple different TCP streams at the same time, I can see the
traffic going to both buckets as expected.

Thanks again

On Wed, 26 Apr 2023 at 22:16, Ilya Maximets <[email protected]> wrote:

> On 4/26/23 23:05, Celyn Birkinshaw via discuss wrote:
> >  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.
>
> It will balance the traffic, however, packets with the same hash
> will always go to the same bucket to avoid packet reordering.
> So, for example, all the packets from the same TCP stream should
> hit the same bucket.
>
> If you'll run multiple different TCP streams at the same time, some
> of them should hit the first bucket and some of them the second.
> But packets from the same stream should go to the same bucket.
>
> Best regards, Ilya Maximets.
>
_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to