add Nicira Extension NXAST_OUTPUT_REG support
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Reviewed-by: Simon Horman <horms@verge.net.au>
This commit is contained in:
parent
17979ffefa
commit
ffe34d0b6e
@ -241,6 +241,8 @@ NXAST_MULTIPATH = 10
|
|||||||
NXAST_BUNDLE = 12
|
NXAST_BUNDLE = 12
|
||||||
NXAST_BUNDLE_LOAD = 13
|
NXAST_BUNDLE_LOAD = 13
|
||||||
NXAST_RESUBMIT_TABLE = 14
|
NXAST_RESUBMIT_TABLE = 14
|
||||||
|
NXAST_OUTPUT_REG = 15
|
||||||
|
|
||||||
|
|
||||||
NX_ACTION_RESUBMIT_PACK_STR = '!HHIHHB3x'
|
NX_ACTION_RESUBMIT_PACK_STR = '!HHIHHB3x'
|
||||||
NX_ACTION_RESUBMIT_SIZE = 16
|
NX_ACTION_RESUBMIT_SIZE = 16
|
||||||
@ -270,6 +272,10 @@ NX_ACTION_BUNDLE_PACK_STR = '!HHIHHHHIHHI4x'
|
|||||||
NX_ACTION_BUNDLE_SIZE = 32
|
NX_ACTION_BUNDLE_SIZE = 32
|
||||||
assert calcsize(NX_ACTION_BUNDLE_PACK_STR) == NX_ACTION_BUNDLE_SIZE
|
assert calcsize(NX_ACTION_BUNDLE_PACK_STR) == NX_ACTION_BUNDLE_SIZE
|
||||||
|
|
||||||
|
NX_ACTION_OUTPUT_REG_PACK_STR = '!HHIHHIH6x'
|
||||||
|
NX_ACTION_OUTPUT_REG_SIZE = 24
|
||||||
|
assert calcsize(NX_ACTION_OUTPUT_REG_PACK_STR) == NX_ACTION_OUTPUT_REG_SIZE
|
||||||
|
|
||||||
NX_ACTION_HEADER_PACK_STR = '!HHIH'
|
NX_ACTION_HEADER_PACK_STR = '!HHIH'
|
||||||
NX_ACTION_HEADER_SIZE = 10
|
NX_ACTION_HEADER_SIZE = 10
|
||||||
assert calcsize(NX_ACTION_HEADER_PACK_STR) == NX_ACTION_HEADER_SIZE
|
assert calcsize(NX_ACTION_HEADER_PACK_STR) == NX_ACTION_HEADER_SIZE
|
||||||
|
@ -661,6 +661,29 @@ class NXActionBundleLoad(NXActionBundleBase):
|
|||||||
return NXActionBundleBase.parser(NXActionBundleLoad, buf, offset)
|
return NXActionBundleBase.parser(NXActionBundleLoad, buf, offset)
|
||||||
|
|
||||||
|
|
||||||
|
@NXActionHeader.register_nx_action_subtype(ofproto_v1_0.NXAST_OUTPUT_REG)
|
||||||
|
class NXActionOutputReg(NXActionHeader):
|
||||||
|
def __init__(self, ofs_nbits, src, max_len):
|
||||||
|
super(NXActionOutputReg, self).__init__(
|
||||||
|
ofproto_v1_0.NXAST_OUTPUT_REG,
|
||||||
|
ofproto_v1_0.NX_ACTION_OUTPUT_REG_SIZE)
|
||||||
|
self.ofs_nbits = ofs_nbits
|
||||||
|
self.src = src
|
||||||
|
self.max_len = max_len
|
||||||
|
|
||||||
|
def serialize(self, buf, offset):
|
||||||
|
msg_pack_into(ofproto_v1_0.NX_ACTION_OUTPUT_REG_PACK_STR, buf, offset,
|
||||||
|
self.type, self.len, self.vendor, self.subtype,
|
||||||
|
self.ofs_nbits, self.src, self.max_len)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def parser(cls, buf, offset):
|
||||||
|
(type_, len_, vendor, subtype, ofs_nbits, src,
|
||||||
|
max_len) = struct.unpack_from(
|
||||||
|
ofproto_v1_0.NX_ACTION_OUTPUT_REG_PACK_STR, buf, offset)
|
||||||
|
return cls(subtype, ofs_nbits, src)
|
||||||
|
|
||||||
|
|
||||||
class OFPDescStats(collections.namedtuple('OFPDescStats',
|
class OFPDescStats(collections.namedtuple('OFPDescStats',
|
||||||
('mfr_desc', 'hw_desc', 'sw_desc', 'serial_num', 'dp_desc'))):
|
('mfr_desc', 'hw_desc', 'sw_desc', 'serial_num', 'dp_desc'))):
|
||||||
@classmethod
|
@classmethod
|
||||||
|
Loading…
x
Reference in New Issue
Block a user