summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJason Kölker <jason@koelker.net>2016-03-29 19:18:39 +0000
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2016-03-30 08:08:57 +0900
commit93aa0d6d8d72f7fe318b15c7bc2a20ec5ddd1ebe (patch)
treeed990d0554a815aff4c68596a209e506ae68eefa
parent369df998227ca39a753423709a767f93dbdfd624 (diff)
lib/ofctl_v1_[234]: Consolidate send_experimenter
Signed-off-by: Jason Kölker <jason@koelker.net> Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--ryu/lib/ofctl_utils.py34
-rw-r--r--ryu/lib/ofctl_v1_2.py17
-rw-r--r--ryu/lib/ofctl_v1_3.py16
-rw-r--r--ryu/lib/ofctl_v1_4.py17
4 files changed, 32 insertions, 52 deletions
diff --git a/ryu/lib/ofctl_utils.py b/ryu/lib/ofctl_utils.py
index c6578cfe..3d1b6bf0 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 a1053971..afdfaa91 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 c4d62c36..9ae8df8d 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 a80020af..fc339819 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
@@ -824,17 +823,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