Hello list,

I tried to add a flow which matches non-VLAN-tagged packets by specifying
VLAN_VID match field without OFPVID_PRESENT bit, but it didn't work. It
seems that Ryu always sets OXM_OF_VLAN_VID with OFPVID_PRESENT bit during
serialization in ofproto_v1_3_parser.MTVlanVid:

class MTVlanVid(OFPMatchField):
    pack_str = '!H'

    def __init__(self, header, value, mask=None):
        super(MTVlanVid, self).__init__(header)
        self.value = value
        self.mask = mask

    @classmethod
    def field_parser(cls, header, buf, offset):
        m = super(MTVlanVid, cls).field_parser(header, buf, offset)
        m.value &= ~ofproto.OFPVID_PRESENT
        return m

    def serialize(self, buf, offset):
        self.value |= ofproto.OFPVID_PRESENT
        super(MTVlanVid, self).serialize(buf, offset)

It makes OFPVID_NONE impossible to be assigned to OXM_OF_VLAN_VID as
described in Table 13, openflow spec 1.3.4. I'm not sure it's fine to
remove `self.value |= ofproto.OFPVID_PRESENT` if there have been many users
depend on it.

Any comment?


Wei-li
------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to