This is to handle IN_PORT NXM fields.
This will be used when sending NXT_FLOW_MOD messages.

Signed-off-by: Simon Horman <[email protected]>
---
 ryu/ofproto/nx_match.py     |   14 ++++++++++++++
 ryu/ofproto/ofproto_v1_0.py |    2 ++
 2 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/ryu/ofproto/nx_match.py b/ryu/ofproto/nx_match.py
index 2ff9976..b368c8e 100644
--- a/ryu/ofproto/nx_match.py
+++ b/ryu/ofproto/nx_match.py
@@ -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
 
diff --git a/ryu/ofproto/ofproto_v1_0.py b/ryu/ofproto/ofproto_v1_0.py
index 086d17e..92f03af 100644
--- a/ryu/ofproto/ofproto_v1_0.py
+++ b/ryu/ofproto/ofproto_v1_0.py
@@ -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'
-- 
1.7.6.3


------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to