From a05b1e990f71a22dc513ed7c8d089e5e9e2f6376 Mon Sep 17 00:00:00 2001 From: Yuichi Ito Date: Fri, 20 Dec 2013 14:46:13 +0900 Subject: [PATCH] ofctl_v1_3: correct MeterStats and MeterFeatures - add the insufficient handlers - correct the using instance Signed-off-by: Yuichi Ito Signed-off-by: FUJITA Tomonori --- ryu/app/ofctl_rest.py | 10 ++++++++++ ryu/lib/ofctl_v1_3.py | 8 ++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ryu/app/ofctl_rest.py b/ryu/app/ofctl_rest.py index 907bed58..788714d3 100644 --- a/ryu/app/ofctl_rest.py +++ b/ryu/app/ofctl_rest.py @@ -77,6 +77,8 @@ LOG = logging.getLogger('ryu.app.ofctl_rest') # delete a meter entry # POST /stats/meterentry/delete +# TODO: support OFPMeterConfigStats + class StatsController(ControllerBase): def __init__(self, req, link, data, **config): @@ -339,3 +341,11 @@ class RestStatsApi(app_manager.RyuApp): @set_ev_cls(ofp_event.EventOFPPortStatsReply, MAIN_DISPATCHER) def port_stats_reply_handler(self, ev): self.stats_reply_handler(ev) + + @set_ev_cls(ofp_event.EventOFPMeterStatsReply, MAIN_DISPATCHER) + def meter_stats_reply_handler(self, ev): + self.stats_reply_handler(ev) + + @set_ev_cls(ofp_event.EventOFPMeterFeaturesStatsReply, MAIN_DISPATCHER) + def meter_features_stats_reply_handler(self, ev): + self.stats_reply_handler(ev) diff --git a/ryu/lib/ofctl_v1_3.py b/ryu/lib/ofctl_v1_3.py index 78225696..37f67d08 100644 --- a/ryu/lib/ofctl_v1_3.py +++ b/ryu/lib/ofctl_v1_3.py @@ -470,10 +470,10 @@ def get_meter_features(dp, waiters): features = [] for msg in msgs: for feature in msg.body: - f = {'max_meter': msg.body.max_meter, - 'band_type': msg.body.band_type, - 'max_bands': msg.body.max_bands, - 'max_color': msg.body.max_color} + f = {'max_meter': feature.max_meter, + 'band_types': feature.band_types, + 'max_band': feature.max_band, + 'max_color': feature.max_color} features.append(f) features = {str(dp.id): features} return features