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

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to