Hi, I’m wondering how to strip VLAN tags when using OpenFlow version 1.1 or greater messaging. The “strip_vlan” action in “ovs-ofctl” seems to be version 1.0-only. The “parse_op_flow_mod_str()” function returns 0xa, which = (OFPUTIL_P_OF10_STD_TID | OFPUTIL_P_OF10_NXM_TID). I’ve tried the following:
• Use “pop_vlan” instead of “strip_vlan”, but they seem to be aliased • Use “mod_vlan_vid=0”, but that still sends 802.1Q frames • Use “mod_vlan_vid=-1” and “mod_vlan_vid=0xffff”, but get syntax errors Also, there’s this: root@cd58:~# ./ovs-ofctl -O OpenFlow13 add-flow br0 "table=0,priority=40001,in_port=1,actions=strip_vlan,resubmit(,3)" ovs-ofctl: none of the usable flow formats (OpenFlow10+table_id,NXM+table_id) is among the allowed flow formats (OXM-OpenFlow13) Looking through the OpenFlow 1.3 spec, I see this stanza: ==== B.6.18 VLAN Action Changes It is now possible to set the priority field in VLAN tags and stripping VLAN tags is now a separate action. The OFPAT_SET_VLAN_VID action behaves like the former OFPAT_SET_DL_VLAN action, but no longer accepts a special value that causes it to strip the VLAN tag. The OFPAT_SET_VLAN_PCP action modifies the 3-bit priority field in the VLAN tag. For existing tags, both actions only modify the bits associated with the field being updated. If a new VLAN tag needs to be added, the value of all other fields is zero. The OFPAT_SET_VLAN_VID action looks like the following: struct ofp_action_vlan_vid { uint16_t type; /* OFPAT_SET_VLAN_VID. */ uint16_t len; /* Length is 8. */ uint16_t vlan_vid; /* VLAN id. */ uint8_t pad[2]; }; The OFPAT_SET_VLAN_PCP action looks like the following:: struct ofp_action_vlan_pcp { uint16_t type; /* OFPAT_SET_VLAN_PCP. */ uint16_t len; /* Length is 8. */ uint8_t vlan_pcp; /* VLAN priority. */ uint8_t pad[3]; }; The OFPAT_STRIP_VLAN action takes no argument and strips the VLAN tag if one is present ==== but it’s not obvious to me how this is implemented in OVS. Thanks, Ben
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ discuss mailing list discuss@openvswitch.org http://openvswitch.org/mailman/listinfo/discuss