apgw: add 'query_port_desc_stats' method

query_port_desc_stats []

the result are:

[{'OFPPort': {'hw_addr': '92:94:19:96:b2:0f', 'curr_speed': 5000, 'curr': 10248, 'name': 'Port1', 'supported': 10248, 'state': 4, 'max_speed': 5000, 'advertised': 10240, 'peer': 10248, 'config': 0, 'port_no': 1}}, {'OFPPort': {'hw_addr': 'c2:c2:75:9a:70:f1', 'curr_speed': 5000, 'curr': 10248, 'name': 'Port2', 'supported': 10248, 'state': 4, 'max_speed': 5000, 'advertised': 10240, 'peer': 10248, 'config': 0, 'port_no': 2}}]

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
FUJITA Tomonori 2014-03-29 14:37:56 +09:00
parent 36eba9cd1a
commit 0828e2a064

View File

@ -122,6 +122,8 @@ class RpcOFPManager(app_manager.RyuApp):
elif target_method == 'query_secure_channel_state':
result = self._query_secure_channel_state(msgid,
params)
elif target_method == 'query_port_desc_stats':
result = self._query_port_desc_stats(msgid, params)
else:
error = 'Unknown method %s' % (target_method)
elif _type == rpc.MessageType.NOTIFY:
@ -770,3 +772,14 @@ class RpcOFPManager(app_manager.RyuApp):
def _query_secure_channel_state(self, msgid, params):
return self._get_secure_channel_state_param()
def _query_port_desc_stats(self, msgid, params):
results = []
for k, v in self.dpset.get_all():
for p in self.dpset.get_ports(k):
d = p.to_jsondict()
d['OFPPort']['name'] = d['OFPPort']['name'].encode('ascii')
d['OFPPort']['hw_addr'] = \
d['OFPPort']['hw_addr'].encode('ascii')
results.append(d)
return results