On 20/04/17 03:43, Fujimoto Satoshi wrote:
> Hi, Markku
>
>
> Sorry, I could not reproduce your problem in my environment...
>
> I would like to confirm the commands you ran,
> so, could you tell me the commands from bulding an environment on
> Mininet to getting the problem?


msa@ubuntuvm:~$ sudo mn --mac --switch ovsk --controller remote -x
[sudo] password for msa:
*** Creating network
*** Adding controller
Unable to contact the remote controller at 127.0.0.1:6633
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Running terms on :0
*** Starting controller
c0
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet> xterm c0
mininet> xterm h1 h2
mininet> gterm c0



> Thanks,
> Fujimoto
>
> On 2017年04月19日 16:20, Markku Savela wrote:
>> Hi,
>>
>> When working with example
>>
>>      https://osrg.github.io/ryu-book/en/html/rest_qos.html
>>
>>
>> and starting ryu-manager with "--observe-links" causes the "KeyError" in
>> rest_qos.py because ethertype 88cc is not handled. The error comes from
>> to_rest function, which in this test I have modified with few print
>> statements...
>>
>>           if key in Match._CONVERT:
>>               print (key,value)
>>               conv = Match._CONVERT[key]
>>               conv = dict((value, key) for key, value in conv.items())
>>               print (value,conv)
>> crash-->    match.setdefault(key, conv[value])
>>           else:
>>               match.setdefault(key, value)
>>
>> The code obvisously should also check that ether type actually exists in
>> 'conv', and if not do something sensible for unknown ones. Any quick
>> fixes?
>>
>>
>> # PYTHONPATH=. ./bin/ryu-manager --observe-links ryu.app.rest_qos
>> ryu.app.qos_simple_switch_13 ryu.app.rest_conf_switch
>> ryu.app.gui_topology.gui_topology ryu.app.ofctl_rest
>> lzma module is not available
>> Registered VCS backend: git
>> Registered VCS backend: hg
>> Registered VCS backend: svn
>> Registered VCS backend: bzr
>> loading app ryu.app.rest_qos
>> loading app ryu.app.qos_simple_switch_13
>> loading app ryu.app.rest_conf_switch
>> loading app ryu.app.gui_topology.gui_topology
>> loading app ryu.app.ofctl_rest
>> loading app ryu.controller.ofp_handler
>> loading app ryu.app.rest_topology
>> loading app ryu.app.ws_topology
>> loading app ryu.app.rest_qos
>> loading app ryu.controller.ofp_handler
>> instantiating app None of Switches
>> creating context switches
>> instantiating app None of DPSet
>> creating context dpset
>> instantiating app None of ConfSwitchSet
>> creating context conf_switch
>> creating context wsgi
>> instantiating app ryu.app.rest_conf_switch of ConfSwitchAPI
>> instantiating app ryu.controller.ofp_handler of OFPHandler
>> instantiating app ryu.app.rest_qos of RestQoSAPI
>> instantiating app ryu.app.ws_topology of WebSocketTopology
>> instantiating app ryu.app.rest_topology of TopologyAPI
>> instantiating app ryu.app.qos_simple_switch_13 of SimpleSwitch13
>> instantiating app ryu.app.ofctl_rest of RestStatsApi
>> instantiating app ryu.app.gui_topology.gui_topology of GUIServerApp
>> (4481) wsgi starting up on http://0.0.0.0:8080
>> [QoS][INFO] dpid=0000000000000001: Join qos switch.
>> (4481) accepted ('127.0.0.1', 40110)
>> ('dl_type', 35020)
>> (35020, {2048: 'IPv4', 34525: 'IPv6', 2054: 'ARP'})
>> Traceback (most recent call last):
>>     File "/usr/lib/python2.7/dist-packages/eventlet/wsgi.py", line 481,
>> in handle_one_response
>>       result = self.application(self.environ, start_response)
>>     File "..../ryu/ryu/app/wsgi.py", line 236, in __call__
>>       return super(wsgify_hack, self).__call__(environ, start_response)
>>     File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 130, in
>> __call__
>>       resp = self.call_func(req, *args, **self.kwargs)
>>     File "/usr/lib/python2.7/dist-packages/webob/dec.py", line 195, in
>> call_func
>>       return self.func(req, *args, **kwargs)
>>     File "..../ryu/ryu/app/wsgi.py", line 290, in __call__
>>       return controller(req)
>>     File "..../ryu/ryu/app/wsgi.py", line 160, in __call__
>>       return getattr(self, action)(req, **kwargs)
>>     File "..../ryu/ryu/app/rest_qos.py", line 458, in get_qos
>>       'get_qos', self.waiters)
>>     File "..../ryu/ryu/app/rest_qos.py", line 526, in _access_switch
>>       msg = function(rest, vid, waiters)
>>     File "..../ryu/ryu/app/rest_qos.py", line 636, in _rest_command
>>       key, value = func(*args, **kwargs)
>>     File "..../ryu/ryu/app/rest_qos.py", line 799, in get_qos
>>       rule = self._to_rest_rule(flow_stat)
>>     File "..../ryu/ryu/app/rest_qos.py", line 939, in _to_rest_rule
>>       rule.update(Match.to_rest(flow))
>>     File "..../ryu/ryu/app/rest_qos.py", line 1099, in to_rest
>>       match.setdefault(key, conv[value])
>> KeyError: 35020
>> 127.0.0.1 - - [19/Apr/2017 10:11:04] "GET /qos/rules/0000000000000001
>> HTTP/1.1" 500 1627 0.035013
>>
>> ------------------------------------------------------------------------------
>>
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> _______________________________________________
>> Ryu-devel mailing list
>> Ryu-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Ryu-devel mailing list
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to