NXM: Add MFInPort class
This is to handle IN_PORT NXM fields. This will be used when sending NXT_FLOW_MOD messages. Signed-off-by: Simon Horman <horms@verge.net.au> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
parent
8033beab94
commit
cda7026742
ryu/ofproto
@ -49,6 +49,9 @@ class ClsRule(object):
|
||||
self.wc = FlowWildcards()
|
||||
self.flow = Flow()
|
||||
|
||||
def set_in_port(self, port):
|
||||
self.wc.wildcards &= ~FWW_IN_PORT
|
||||
self.flow.in_port = port
|
||||
|
||||
def _set_nxm_headers(nxm_headers):
|
||||
'''Annotate corresponding NXM header'''
|
||||
@ -102,6 +105,17 @@ class MFField(object):
|
||||
return self.putw(buf, offset, value, mask)
|
||||
|
||||
|
||||
@_register_make
|
||||
@_set_nxm_headers([ofproto_v1_0.NXM_OF_IN_PORT])
|
||||
class MFInPort(MFField):
|
||||
@classmethod
|
||||
def make(cls):
|
||||
return cls(MF_PACK_STRING_BE16)
|
||||
|
||||
def put(self, buf, offset, rule):
|
||||
return self._put(buf, offset, rule.flow.in_port)
|
||||
|
||||
|
||||
def serialize_nxm_match(rule, buf, offset):
|
||||
old_offset = offset
|
||||
|
||||
|
@ -515,4 +515,6 @@ def nxm_header_w(vendor, field, length):
|
||||
return nxm_header__(vendor, field, 1, (length) * 2)
|
||||
|
||||
|
||||
NXM_OF_IN_PORT = nxm_header(0x0000, 0, 2)
|
||||
|
||||
NXM_HEADER_PACK_STRING = '!I'
|
||||
|
Loading…
x
Reference in New Issue
Block a user