diff options
author | Jason Kölker <jason@koelker.net> | 2016-03-29 19:18:39 +0000 |
---|---|---|
committer | FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 2016-03-30 08:08:57 +0900 |
commit | 93aa0d6d8d72f7fe318b15c7bc2a20ec5ddd1ebe (patch) | |
tree | ed990d0554a815aff4c68596a209e506ae68eefa | |
parent | 369df998227ca39a753423709a767f93dbdfd624 (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.py | 34 | ||||
-rw-r--r-- | ryu/lib/ofctl_v1_2.py | 17 | ||||
-rw-r--r-- | ryu/lib/ofctl_v1_3.py | 16 | ||||
-rw-r--r-- | 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 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 |