assert calcsize(OFP_PACKET_QUEUE_PQCK_STR) == OFP_PACKET_QUEUE_SIZE OFPQT_NONE = 0 OFPQT_MIN_RATE = 1 OFP_QUEUE_PROP_HEADER_PACK_STR = '!HH4x' OFP_QUEUE_PROP_HEADER_SIZE = 8 assert calcsize(OFP_QUEUE_PROP_HEADER_PACK_STR) == OFP_QUEUE_PROP_HEADER_SIZE OFP_QUEUE_PROP_MIN_RATE_PACK_STR = '!H6x' OFP_QUEUE_PROP_MIN_RATE_SIZE = 16 assert (calcsize(OFP_QUEUE_PROP_MIN_RATE_PACK_STR) + OFP_QUEUE_PROP_HEADER_SIZE == OFP_QUEUE_PROP_MIN_RATE_SIZE) # generate utility methods ofproto_utils.generate(__name__) def nxm_header__(vendor, field, hasmask, length): return (vendor << 16) | (field << 9) | (hasmask << 8) | length def nxm_header(vendor, field, length): return nxm_header__(vendor, field, 0, length) def nxm_header_w(vendor, field, length): return nxm_header__(vendor, field, 1, (length) * 2) NXM_OF_IN_PORT = nxm_header(0x0000, 0, 2)
oxm_fields.OpenFlowBasic("ipv6_exthdr", 39, type_desc.Int2), # EXT-256 Old version of ONF Extension oxm_fields.OldONFExperimenter("pbb_uca", 2560, type_desc.Int1), # EXT-109 TCP flags match field Extension oxm_fields.ONFExperimenter("tcp_flags", 42, type_desc.Int2), # EXT-233 Output match Extension # NOTE(yamamoto): The spec says uint64_t but I assume it's an error. oxm_fields.ONFExperimenter("actset_output", 43, type_desc.Int4), ] + nicira_ext.oxm_types oxm_fields.generate(__name__) # Note: struct ofp_prop_experimenter is specific to this implementation. # It does not have a corresponding structure in the specification. # This structure defines common structure for ofp_*_prop_experimenter. # struct ofp_prop_experimenter OFP_PROP_EXPERIMENTER_PACK_STR = "!HHII" OFP_PROP_EXPERIMENTER_SIZE = 12 assert calcsize(OFP_PROP_EXPERIMENTER_PACK_STR) == OFP_PROP_EXPERIMENTER_SIZE # generate utility methods ofproto_utils.generate(__name__) # define constants OFP_VERSION = 0x04 OFP_TCP_PORT = 6633 MAX_XID = 0xFFFFFFFF OFP_NO_BUFFER = 0xFFFFFFFF