Signed-off-by: Jason Kölker <[email protected]>
---
 ryu/lib/ofctl_utils.py | 34 ++++++++++++++++++++++++++--------
 ryu/lib/ofctl_v1_2.py  | 17 ++---------------
 ryu/lib/ofctl_v1_3.py  | 16 ++--------------
 ryu/lib/ofctl_v1_4.py  | 17 ++---------------
 4 files changed, 32 insertions(+), 52 deletions(-)

diff --git a/ryu/lib/ofctl_utils.py b/ryu/lib/ofctl_utils.py
index 642f377..c96ef71 100644
--- a/ryu/lib/ofctl_utils.py
+++ b/ryu/lib/ofctl_utils.py
@@ -45,6 +45,14 @@ POP_PBB = 'POP_PBB'
 EXPERIMENTER = 'EXPERIMENTER'
 
 
+def get_logger(logger=None):
+    # NOTE(jkoelker) use the logger the calling code wants us to
+    if logger is not None:
+        return logger
+
+    return LOG
+
+
 def match_vid_to_str(value, mask, ofpvid_present):
     if mask is not None:
         return '0x%04x/0x%04x' % (value, mask)
@@ -171,18 +179,28 @@ def to_match_masked_int(value):
     return str_to_int(value)
 
 
+def send_experimenter(dp, exp, logger=None):
+    experimenter = exp.get('experimenter', 0)
+    exp_type = exp.get('exp_type', 0)
+    data_type = exp.get('data_type', 'ascii')
+
+    if data_type not in ('ascii', 'base64'):
+        LOG.error('Unknown data type: %s', data_type)
+
+    data = exp.get('data', '')
+    if data_type == 'base64':
+        data = base64.b64decode(data)
+
+    expmsg = dp.ofproto_parser.OFPExperimenter(dp, experimenter, exp_type,
+                                               data)
+    send_msg(dp, expmsg, logger)
+
+
 def send_msg(dp, msg, logger=None):
     if msg.xid is None:
         dp.set_xid(msg)
 
-    # NOTE(jkoelker) use the logger the calling code wants us to
-    if logger is not None:
-        log = logger
-
-    else:
-        log = LOG
-
-    log.debug('Sending message with xid(%x): %s', msg.xid, msg)
+    get_logger(logger).debug('Sending message with xid(%x): %s', msg.xid, msg)
     dp.send_msg(msg)
 
 
diff --git a/ryu/lib/ofctl_v1_2.py b/ryu/lib/ofctl_v1_2.py
index a105397..afdfaa9 100644
--- a/ryu/lib/ofctl_v1_2.py
+++ b/ryu/lib/ofctl_v1_2.py
@@ -13,7 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import base64
 import logging
 import netaddr
 
@@ -927,17 +926,5 @@ def mod_port_behavior(dp, port_config):
     ofctl_utils.send_msg(dp, port_mod, LOG)
 
 
-def send_experimenter(dp, exp):
-    experimenter = exp.get('experimenter', 0)
-    exp_type = exp.get('exp_type', 0)
-    data_type = exp.get('data_type', 'ascii')
-    if data_type != 'ascii' and data_type != 'base64':
-        LOG.error('Unknown data type: %s', data_type)
-    data = exp.get('data', '')
-    if data_type == 'base64':
-        data = base64.b64decode(data)
-
-    expmsg = dp.ofproto_parser.OFPExperimenter(
-        dp, experimenter, exp_type, data)
-
-    ofctl_utils.send_msg(dp, expmsg, LOG)
+# NOTE(jkoelker) Alias common funcitons
+send_experimenter = ofctl_utils.send_experimenter
diff --git a/ryu/lib/ofctl_v1_3.py b/ryu/lib/ofctl_v1_3.py
index c4d62c3..9ae8df8 100644
--- a/ryu/lib/ofctl_v1_3.py
+++ b/ryu/lib/ofctl_v1_3.py
@@ -1150,17 +1150,5 @@ def mod_port_behavior(dp, port_config):
     ofctl_utils.send_msg(dp, port_mod, LOG)
 
 
-def send_experimenter(dp, exp):
-    experimenter = exp.get('experimenter', 0)
-    exp_type = exp.get('exp_type', 0)
-    data_type = exp.get('data_type', 'ascii')
-    if data_type != 'ascii' and data_type != 'base64':
-        LOG.error('Unknown data type: %s', data_type)
-    data = exp.get('data', '')
-    if data_type == 'base64':
-        data = base64.b64decode(data)
-
-    expmsg = dp.ofproto_parser.OFPExperimenter(
-        dp, experimenter, exp_type, data)
-
-    ofctl_utils.send_msg(dp, expmsg, LOG)
+# NOTE(jkoelker) Alias common funcitons
+send_experimenter = ofctl_utils.send_experimenter
diff --git a/ryu/lib/ofctl_v1_4.py b/ryu/lib/ofctl_v1_4.py
index 11a0645..c47059d 100644
--- a/ryu/lib/ofctl_v1_4.py
+++ b/ryu/lib/ofctl_v1_4.py
@@ -13,7 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import base64
 import logging
 
 from ryu.ofproto import ether
@@ -826,17 +825,5 @@ def mod_port_behavior(dp, port_config):
     ofctl_utils.send_msg(dp, port_mod, LOG)
 
 
-def send_experimenter(dp, exp):
-    experimenter = exp.get('experimenter', 0)
-    exp_type = exp.get('exp_type', 0)
-    data_type = exp.get('data_type', 'ascii')
-    if data_type != 'ascii' and data_type != 'base64':
-        LOG.error('Unknown data type: %s', data_type)
-    data = exp.get('data', '')
-    if data_type == 'base64':
-        data = base64.b64decode(data)
-
-    expmsg = dp.ofproto_parser.OFPExperimenter(
-        dp, experimenter, exp_type, data)
-
-    ofctl_utils.send_msg(dp, expmsg, LOG)
+# NOTE(jkoelker) Alias common funcitons
+send_experimenter = ofctl_utils.send_experimenter
-- 
2.7.3


------------------------------------------------------------------------------
Transform Data into Opportunity.
Accelerate data analysis in your applications with
Intel Data Analytics Acceleration Library.
Click to learn more.
http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to