ovs-ofctl add-group <bridge> group_id=<id>,type=<type>,bucket=<actions>


PicOS OVS supports group tables from Openflow 1.2.

ovs-ofctl add-group <bridge> group_id=<id>,type=all,bucket=<actions>[,bucket=<actions>]

Add a group that group_id=<id>, type=all in <bridge>. The max buckets number can be created is 10.

Example:
Create a group type=all, include two buckets to modify the src-mac and dst-mac.

admin@PicOS-OVS$ovs-ofctl add-group br0 group_id=1,type=all,bucket=mod_dl_src=00:00:00:11:11:11,mod_dl_dst=00:00:00:22:22:22,output:2,bucket=mod_dl_src=00:00:00:11:11:11,mod_dl_dst=00:00:00:22:22:22,output:3

ovs-ofctl add-group <bridge> group_id=<id>,type=indirect,bucket=<actions>

Add a group that group_id=<id>, type=indirect in <bridge>.

Example:
Create a group type=indirect, just include one bucket to modify the src-mac and dst-mac.

admin@PicOS-OVS$ovs-ofctl add-group br0 group_id=2,type=indirect,bucket=mod_dl_src=00:00:00:99:11:11,mod_dl_dst=00:00:00:99:22:22,output:2

ovs-ofctl add-group <bridge> group_id=<id>,type=select,bucket=<actions>[,bucket=<actions>]

Add a group that group_id=<id>, type=select in <bridge>.
PisOS OVS is not support weighting now, user cannot specify the weight, weight=1.
Because OVS forwards packets by TCAM, the traditional ECMP in the routing table can not be used in OVS mode.
We implement a "dummy ECMP" by splitting the matching fields of a flow. By the group that type=select, the system will choose one match field to split in nw_src, nw_dst, dl_src, dl_dst. The nw_src is the highest priority, if it has no special nw_src or if the mask of nw_src is 32, it will choose nw_dst. The last choose dl_src and dl_dst. The premise is the match fields must have mask except 32 nor ff:ff:ff:ff:ff:ff.
Exception to this use, is other flows involved with the select group will be packet-driven flows.
Example:
Create a group type=select, the actions of multi buckets only have output.

admin@PicOS-OVS$ovs-ofctl add-group br0 group_id=3,type=select,bucket=bucket=output:1,output:2,bucket=output:3,bucket=output:4

ovs-ofctl add-group <bridge> group_id=<id>,type=ff,bucket=<actions>[,bucket=<actions>]

Add a group that group_id=<id>, type=ff, in <bridge>. The ff means fast_failover.
Example:

admin@PicOS-OVS$ovs-ofctl add-group br0 group_id=4,type=ff,bucket=watch_port:2,watch_group:2,output:3,watch_port:3,watch_group:3,output:4

 

Actions supported table:

ChipFirebolt3Triumph2Trident-II
Model32903295392039223930as5600_52x3780as4600_54t329751015401as6701_32x
output<PORT_ID>

mod_dl_src

mod_dl_dst

mod_vlan_vid

mod_vlan_pcp

mod_nw_tos

push_vlan

pop_vlan

strip_vlan

push_pbbXX

X

pop_pbbXX

X

set_queue

push_mplsXX

X

pop_mplsXX

X

mod_nw_srcXXXXXXXXX

mod_nw_dstXXXXXXXXX

mod_tp_srcXXXXXXXXX

mod_tp_dstXXXXXXXXX

 

 

The following actions are not supported.

Different modification for a different bucket

eg.

bucket=mod_dl_src:22:11:11:11:11:11,output:2,bucket=mod_dl_src:22:22:22:22:22:22,output:3

 

Copyright © 2025 Pica8 Inc. All Rights Reserved.