Dear ovs-discuss,

I'm encountering unexpected behavior with GROUP type=SELECT in Open vSwitch
and would appreciate your insights.

According to the OpenFlow specification:

Optional: select: Execute one bucket in the group. Packets are processed by
> a single bucket in the group, based on a switch-computed selection
> algorithm (e.g. hash on some user-configured tuple or simple round robin).
> All configuration and state for the selection algorithm is external to
> OpenFlow.
> The selection algorithm should implement equal load sharing and can
> optionally be based on bucket weights. When a port specified in a bucket in
> a select group goes down, the switch *may* restrict bucket selection to
> the remaining set (those with forwarding actions to live ports) instead of
> dropping packets destined to that port. This behavior may reduce the
> disruption of a downed link or switch.

However, in my test environment with 2 input and 2 output ports, I found
that if one of the output ports goes down, traffic gets disrupted instead
of automatically avoiding the down port. It seems like SELECT does not skip
the downed port and continues sending traffic to it.
System Environment

   -

   OS: Ubuntu 24.04.2 LTS
   -

   Open vSwitch: 3.3.0
   -

   Controller: Ryu
   -

   OF Protocol: OpenFlow 1.3
   -

   Config: DPDK enabled

Group Config (via Ryu REST API)


curl -X POST -d
'{"dpid":123456,"type":"SELECT","group_id":1,"buckets":[{"actions":[{"type":"OUTPUT","port":1}],"weight":1},{"actions":[{"type":"OUTPUT","port":2}],"weight":1}]}'
http://127.0.0.1:8080/stats/groupentry/add

curl -X POST -d
'{"dpid":123456,"type":"SELECT","group_id":2,"buckets":[{"actions":[{"type":"OUTPUT","port":5}],"weight":1},{"actions":[{"type":"OUTPUT","port":6}],"weight":1}]}'
http://127.0.0.1:8080/stats/groupentry/add

Flow Config


ovs-ofctl add-flow -O Openflow13 ovsbr1
cookie=20,table=0,priority=20,in_port=1,actions=group:2
ovs-ofctl add-flow -O Openflow13 ovsbr1
cookie=20,table=0,priority=20,in_port=2,actions=group:2

ovs-ofctl add-flow -O Openflow13 ovsbr1
cookie=20,table=0,priority=20,in_port=5,actions=group:1
ovs-ofctl add-flow -O Openflow13 ovsbr1
cookie=20,table=0,priority=20,in_port=6,actions=group:1

OVS Configuration


ovs-vsctl get Open_vSwitch . other_config
{dpdk-alloc-mem="8192", dpdk-init="true", dpdk-lcore-mask="0x1FFFE",
pmd-cpu-mask="0xFF00"}

Is this the expected behavior for SELECT groups in OVS? Does Open vSwitch
support dynamic port liveness detection and automatic exclusion of down
ports in SELECT groups? If not, is there any workaround or configuration
that enables this behavior?

Thank you very much for your help.

Best regards,
Yongb
_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to