On Tue, Feb 19, 2013 at 02:20:58PM +0900, HIYAMA Manabu wrote:
> > Hi. How did you produce it? Is it reproducible?
Thank you. I don't see anything wrong in the procedure for now.
I'll look into it.
thanks,
>
> In the following sequence:
> (I do not know why that did occur EventOFPPortStatus.)
> $ ryu-manager ryu_app(OF1.2 app)
> $ sudo mn --controller remote 127.0.0.1
> $ sudo ovs-vsctl set bridge s1 protocols='[OpenFlow10,OpenFlow12]'
> connected socket:<socket fileno=4 sock=127.0.0.1:6633 peer=127.0.0.1:60456>
> address:('127.0.0.1', 60456)
> EVENT ofp_event->dpset EventOFPStateChange
> connected socket:<socket fileno=10 sock=127.0.0.1:6633 peer=127.0.0.1:60457>
> address:('127.0.0.1', 60457)
> EVENT ofp_event->dpset EventOFPStateChange
> hello ev <ryu.controller.ofp_event.EventOFPHello object at 0x11bf550>
> unsupported version 0x1. If possible, set the switch to use one of the
> versions [3]
> error msg ev version: 0x3 msg_type 0x1 xid 0xc84d9220 type 0x1 code 0x1 0x3
> 0x1 0x0 0x5f 0xc8 0x4d 0x92 0x20 0x0 0x0 0x0 0x0 0x75 0x6e 0x73 0x75 0x70
> 0x70 0x6f 0x72 0x74 0x65 0x64 0x20 0x76 0x65 0x72 0x73 0x69 0x6f 0x6e 0x20
> 0x30 0x78 0x31 0x2e 0x20 0x49 0x66 0x20 0x70 0x6f 0x73 0x73 0x69 0x62 0x6c
> 0x65 0x2c 0x20 0x73 0x65 0x74 0x20 0x74 0x68 0x65 0x20 0x73 0x77 0x69 0x74
> 0x63 0x68
> EVENT ofp_event->dpset EventOFPPortStatus
> DPSET: A port was modified.(datapath id = None, port number = 1)
> Traceback (most recent call last):
> File "/usr/lib/python2.7/dist-packages/gevent/greenlet.py", line 390, in run
> result = self._run(*self.args, **self.kwargs)
> File
> "/usr/local/lib/python2.7/dist-packages/ryu-1.6-py2.7.egg/ryu/base/app_manager.py",
> line 86, in _event_loop
> handler(ev)
> File
> "/usr/local/lib/python2.7/dist-packages/ryu-1.6-py2.7.egg/ryu/controller/dpset.py",
> line 192, in port_status_handler
> self.port_state[datapath.id].modify(port.port_no, port)
> KeyError: None
> <Greenlet at 0x11bc518: <bound method DPSet._event_loop of
> <ryu.controller.dpset.DPSet object at 0xd0df10>>> failed with KeyError
>
> Not occur in the following sequence:
> $ sudo mn --controller remote 127.0.0.1
> $ ryu-manager ryu_app(OF1.2 app)
> $ sudo ovs-vsctl set bridge s1 protocols='[OpenFlow10,OpenFlow12]'
> connected socket:<socket fileno=4 sock=127.0.0.1:6633 peer=127.0.0.1:60468>
> address:('127.0.0.1', 60468)
> EVENT ofp_event->dpset EventOFPStateChange
> hello ev <ryu.controller.ofp_event.EventOFPHello object at 0x30d7150>
> unsupported version 0x1. If possible, set the switch to use one of the
> versions [3]
> error msg ev version: 0x3 msg_type 0x1 xid 0x18c5b0c5 type 0x1 code 0x1 0x3
> 0x1 0x0 0x5f 0x18 0xc5 0xb0 0xc5 0x0 0x0 0x0 0x0 0x75 0x6e 0x73 0x75 0x70
> 0x70 0x6f 0x72 0x74 0x65 0x64 0x20 0x76 0x65 0x72 0x73 0x69 0x6f 0x6e 0x20
> 0x30 0x78 0x31 0x2e 0x20 0x49 0x66 0x20 0x70 0x6f 0x73 0x73 0x69 0x62 0x6c
> 0x65 0x2c 0x20 0x73 0x65 0x74 0x20 0x74 0x68 0x65 0x20 0x73 0x77 0x69 0x74
> 0x63 0x68
>
>
> Environment that reproduces:
> - ryu: git://github.com/osrg/ryu.git
> - mininet: git://github.com/mininet/mininet.git
> - ovs: git://openvswitch.org/openvswitch -b of12
>
> Is there something wrong with my procedure?
> Currently, I have tested the following procedure.
> $ ryu-manager ryu_app(OF1.2 app)
> $ sudo mn --controller none
> $ sudo ovs-vsctl set bridge s1 protocols='[OpenFlow10,OpenFlow12]'
> $ sudo ovs-vsctl set-controller s1 tcp:127.0.0.1
>
> thanks,
>
>
>
> > OFPHandler.switch_features_handler() sets datapath id before entering
> > into MAIN_DISPATCHER state. So I suspect race.
> >
> > Since port status modify event without datapath id doesn't make sense,
> > the cause that datapath.id is None event with MAIN_DISPATCHER state
> > should be fixed.
> >
> > thanks,
> >
> > On Mon, Feb 18, 2013 at 08:50:59PM +0900, HIYAMA Manabu wrote:
> > > DPSET: A port was modified.(datapath id = None, port number = 1)
> > > Traceback (most recent call last):
> > > File "/usr/lib/python2.7/dist-packages/gevent/greenlet.py", line 390,
> > > in run
> > > result = self._run(*self.args, **self.kwargs)
> > > File
> > > "/usr/local/lib/python2.7/dist-packages/ryu-1.6-py2.7.egg/ryu/base/app_manager.py",
> > > line 86, in _event_loop
> > > handler(ev)
> > > File
> > > "/usr/local/lib/python2.7/dist-packages/ryu-1.6-py2.7.egg/ryu/controller/dpset.py",
> > > line 192, in port_status_handler
> > > self.port_state[datapath.id].modify(port.port_no, port)
> > > KeyError: None
> > > <Greenlet at 0x1c1d8d0: <bound method DPSet._event_loop of
> > > <ryu.controller.dpset.DPSet object at 0x176ef50>>> failed with KeyError
> > >
> > > Signed-off-by: HIYAMA Manabu <[email protected]>
> > > ---
> > > ryu/controller/dpset.py | 3 ++-
> > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/ryu/controller/dpset.py b/ryu/controller/dpset.py
> > > index a63ed8b..5becb5f 100644
> > > --- a/ryu/controller/dpset.py
> > > +++ b/ryu/controller/dpset.py
> > > @@ -189,7 +189,8 @@ class DPSet(app_manager.RyuApp):
> > > LOG.debug('DPSET: A port was modified.' +
> > > '(datapath id = %s, port number = %s)',
> > > datapath.id, port.port_no)
> > > - self.port_state[datapath.id].modify(port.port_no, port)
> > > + if datapath.id is not None:
> > > + self.port_state[datapath.id].modify(port.port_no, port)
> > > self.send_event_to_observers(EventPortModify(datapath, port))
> > >
> > > def get_port(self, dpid, port_no):
> > > --
> > > 1.7.9.5
> > >
> > >
> > >
> > > ------------------------------------------------------------------------------
> > > The Go Parallel Website, sponsored by Intel - in partnership with
> > > Geeknet,
> > > is your hub for all things parallel software development, from weekly
> > > thought
> > > leadership blogs to news, videos, case studies, tutorials, tech docs,
> > > whitepapers, evaluation guides, and opinion stories. Check out the most
> > > recent posts - join the conversation now.
> > > http://goparallel.sourceforge.net/
> > > _______________________________________________
> > > Ryu-devel mailing list
> > > [email protected]
> > > https://lists.sourceforge.net/lists/listinfo/ryu-devel
> > >
> >
> > --
> > yamahata
>
>
--
yamahata
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel