[set Bridge br0 fail-mode=standalone -- \
add-port br0 p1 trunks=10,12 -- \
add-port br0 p2 tag=10 -- \
- add-port br0 p3 tag=12 -- \
+ add-port br0 p3 tag=12 \
+ other-config:priority-tags=true -- \
add-port br0 p4 tag=12 -- \
add-port br0 p5 vlan_mode=native-tagged tag=10 -- \
add-port br0 p6 vlan_mode=native-tagged tag=10 trunks=10,12 -- \
add-port br0 p7 vlan_mode=native-untagged tag=12 -- \
- add-port br0 p8 vlan_mode=native-untagged tag=12 trunks=10,12 -- \
+ add-port br0 p8 vlan_mode=native-untagged tag=12 trunks=10,12 \
+ other-config:priority-tags=true -- \
set Interface p1 type=dummy -- \
set Interface p2 type=dummy -- \
set Interface p3 type=dummy -- \
dnl Each of these specifies an in_port, a VLAN VID (or "none"), a VLAN
dnl PCP (used if the VID isn't "none") and the expected set of datapath
dnl actions.
-dnl
-dnl XXX Some of these actually output an 802.1Q header to an access port
-dnl (see for example the actions for in_port=p3, vlan=0) to qualify the
-dnl packet with a priority. That should be configurable.
for tuple in \
"br0 none 0 drop" \
"br0 0 0 drop" \
"br0 0 1 drop" \
"br0 10 0 p1,p5,p6,p7,p8,pop_vlan,p2" \
- "br0 10 1 p1,p5,p6,p7,p8,pop_vlan,push_vlan(vid=0,pcp=1),p2" \
+ "br0 10 1 p1,p5,p6,p7,p8,pop_vlan,p2" \
"br0 11 0 p5,p7" \
"br0 11 1 p5,p7" \
"br0 12 0 p1,p5,p6,pop_vlan,p3,p4,p7,p8" \
- "br0 12 1 p1,p5,p6,pop_vlan,push_vlan(vid=0,pcp=1),p3,p4,p7,p8" \
+ "br0 12 1 p1,p5,p6,pop_vlan,p4,p7,push_vlan(vid=0,pcp=1),p3,p8" \
"p1 none 0 drop" \
"p1 0 0 drop" \
"p1 0 1 drop" \
"p1 10 0 br0,p5,p6,p7,p8,pop_vlan,p2" \
- "p1 10 1 br0,p5,p6,p7,p8,pop_vlan,push_vlan(vid=0,pcp=1),p2" \
+ "p1 10 1 br0,p5,p6,p7,p8,pop_vlan,p2" \
"p1 11 0 drop" \
"p1 11 1 drop" \
"p1 12 0 br0,p5,p6,pop_vlan,p3,p4,p7,p8" \
- "p1 12 1 br0,p5,p6,pop_vlan,push_vlan(vid=0,pcp=1),p3,p4,p7,p8" \
+ "p1 12 1 br0,p5,p6,pop_vlan,p4,p7,push_vlan(vid=0,pcp=1),p3,p8" \
"p2 none 0 push_vlan(vid=10,pcp=0),br0,p1,p5,p6,p7,p8" \
"p2 0 0 pop_vlan,push_vlan(vid=10,pcp=0),br0,p1,p5,p6,p7,p8" \
"p2 0 1 pop_vlan,push_vlan(vid=10,pcp=1),br0,p1,p5,p6,p7,p8" \
"p2 12 1 drop" \
"p3 none 0 p4,p7,p8,push_vlan(vid=12,pcp=0),br0,p1,p5,p6" \
"p3 0 0 pop_vlan,p4,p7,p8,push_vlan(vid=12,pcp=0),br0,p1,p5,p6" \
- "p3 0 1 p4,p7,p8,pop_vlan,push_vlan(vid=12,pcp=1),br0,p1,p5,p6" \
+ "p3 0 1 p8,pop_vlan,p4,p7,push_vlan(vid=12,pcp=1),br0,p1,p5,p6" \
"p3 10 0 drop" \
"p3 10 1 drop" \
"p3 11 0 drop" \
"p3 12 1 drop" \
"p4 none 0 p3,p7,p8,push_vlan(vid=12,pcp=0),br0,p1,p5,p6" \
"p4 0 0 pop_vlan,p3,p7,p8,push_vlan(vid=12,pcp=0),br0,p1,p5,p6" \
- "p4 0 1 p3,p7,p8,pop_vlan,push_vlan(vid=12,pcp=1),br0,p1,p5,p6" \
+ "p4 0 1 p3,p8,pop_vlan,p7,push_vlan(vid=12,pcp=1),br0,p1,p5,p6" \
"p4 10 0 drop" \
"p4 10 1 drop" \
"p4 11 0 drop" \
"p4 12 1 drop" \
"p5 none 0 p2,push_vlan(vid=10,pcp=0),br0,p1,p6,p7,p8" \
"p5 0 0 pop_vlan,p2,push_vlan(vid=10,pcp=0),br0,p1,p6,p7,p8" \
- "p5 0 1 p2,pop_vlan,push_vlan(vid=10,pcp=1),br0,p1,p6,p7,p8" \
+ "p5 0 1 pop_vlan,p2,push_vlan(vid=10,pcp=1),br0,p1,p6,p7,p8" \
"p5 10 0 br0,p1,p6,p7,p8,pop_vlan,p2" \
- "p5 10 1 br0,p1,p6,p7,p8,pop_vlan,push_vlan(vid=0,pcp=1),p2" \
+ "p5 10 1 br0,p1,p6,p7,p8,pop_vlan,p2" \
"p5 11 0 br0,p7" \
"p5 11 1 br0,p7" \
"p5 12 0 br0,p1,p6,pop_vlan,p3,p4,p7,p8" \
- "p5 12 1 br0,p1,p6,pop_vlan,push_vlan(vid=0,pcp=1),p3,p4,p7,p8" \
+ "p5 12 1 br0,p1,p6,pop_vlan,p4,p7,push_vlan(vid=0,pcp=1),p3,p8" \
"p6 none 0 p2,push_vlan(vid=10,pcp=0),br0,p1,p5,p7,p8" \
"p6 0 0 pop_vlan,p2,push_vlan(vid=10,pcp=0),br0,p1,p5,p7,p8" \
- "p6 0 1 p2,pop_vlan,push_vlan(vid=10,pcp=1),br0,p1,p5,p7,p8" \
+ "p6 0 1 pop_vlan,p2,push_vlan(vid=10,pcp=1),br0,p1,p5,p7,p8" \
"p6 10 0 br0,p1,p5,p7,p8,pop_vlan,p2" \
- "p6 10 1 br0,p1,p5,p7,p8,pop_vlan,push_vlan(vid=0,pcp=1),p2" \
+ "p6 10 1 br0,p1,p5,p7,p8,pop_vlan,p2" \
"p6 11 0 drop" \
"p6 11 1 drop" \
"p6 12 0 br0,p1,p5,pop_vlan,p3,p4,p7,p8" \
- "p6 12 1 br0,p1,p5,pop_vlan,push_vlan(vid=0,pcp=1),p3,p4,p7,p8" \
+ "p6 12 1 br0,p1,p5,pop_vlan,p4,p7,push_vlan(vid=0,pcp=1),p3,p8" \
"p7 none 0 p3,p4,p8,push_vlan(vid=12,pcp=0),br0,p1,p5,p6" \
"p7 0 0 pop_vlan,p3,p4,p8,push_vlan(vid=12,pcp=0),br0,p1,p5,p6" \
- "p7 0 1 p3,p4,p8,pop_vlan,push_vlan(vid=12,pcp=1),br0,p1,p5,p6" \
+ "p7 0 1 p3,p8,pop_vlan,p4,push_vlan(vid=12,pcp=1),br0,p1,p5,p6" \
"p7 10 0 br0,p1,p5,p6,p8,pop_vlan,p2" \
- "p7 10 1 br0,p1,p5,p6,p8,pop_vlan,push_vlan(vid=0,pcp=1),p2" \
+ "p7 10 1 br0,p1,p5,p6,p8,pop_vlan,p2" \
"p7 11 0 br0,p5" \
"p7 11 1 br0,p5" \
"p7 12 0 br0,p1,p5,p6,pop_vlan,p3,p4,p8" \
- "p7 12 1 br0,p1,p5,p6,pop_vlan,push_vlan(vid=0,pcp=1),p3,p4,p8" \
+ "p7 12 1 br0,p1,p5,p6,pop_vlan,p4,push_vlan(vid=0,pcp=1),p3,p8" \
"p8 none 0 p3,p4,p7,push_vlan(vid=12,pcp=0),br0,p1,p5,p6" \
"p8 0 0 pop_vlan,p3,p4,p7,push_vlan(vid=12,pcp=0),br0,p1,p5,p6" \
- "p8 0 1 p3,p4,p7,pop_vlan,push_vlan(vid=12,pcp=1),br0,p1,p5,p6" \
+ "p8 0 1 p3,pop_vlan,p4,p7,push_vlan(vid=12,pcp=1),br0,p1,p5,p6" \
"p8 10 0 br0,p1,p5,p6,p7,pop_vlan,p2" \
- "p8 10 1 br0,p1,p5,p6,p7,pop_vlan,push_vlan(vid=0,pcp=1),p2" \
+ "p8 10 1 br0,p1,p5,p6,p7,pop_vlan,p2" \
"p8 11 0 drop" \
"p8 11 1 drop" \
"p8 12 0 br0,p1,p5,p6,pop_vlan,p3,p4,p7" \
- "p8 12 1 br0,p1,p5,p6,pop_vlan,push_vlan(vid=0,pcp=1),p3,p4,p7"
+ "p8 12 1 br0,p1,p5,p6,pop_vlan,p4,p7,push_vlan(vid=0,pcp=1),p3"
do
set $tuple
in_port=$1