Hi, Iwase. Thanks for answering.
Actually, I've explicitly added the types of MultipartReply messages as
the code you shown. Unfortunately, I still don't see any of them (even
though they exist). The trace below shows what I'm talking about:
---
helcio@ojuara:~/ryu/bin$ ./ryu-manager --verbose
../ryu/app/simple_switch_13.py
../../Dropbox/EXA0186/Python/switch_commander.py
loading app ../ryu/app/simple_switch_13.py
loading app ../../Dropbox/EXA0186/Python/switch_commander.py
loading app ryu.controller.ofp_handler
instantiating app ../../Dropbox/EXA0186/Python/switch_commander.py of
SwitchCommander
instantiating app ../ryu/app/simple_switch_13.py of SimpleSwitch13
instantiating app ryu.controller.ofp_handler of OFPHandler
BRICK SimpleSwitch13
CONSUMES EventOFPSwitchFeatures
CONSUMES EventOFPPacketIn
BRICK SwitchCommander
CONSUMES EventOFPSwitchFeatures
CONSUMES EventOFPStatsReply
CONSUMES EventOFPQueueDescStatsReply
CONSUMES EventOFPMeterStatsReply
CONSUMES EventOFPPortStatsReply
CONSUMES EventOFPAggregateStatsReply
CONSUMES EventOFPFlowStatsReply
CONSUMES EventOFPMeterFeaturesStatsReply
CONSUMES EventOFPGroupDescStatsReply
CONSUMES EventOFPGroupFeaturesStatsReply
CONSUMES EventOFPMeterConfigStatsReply
CONSUMES EventOFPTableFeaturesStatsReply
CONSUMES EventOFPGroupStatsReply
CONSUMES EventOFPHello
CONSUMES EventOFPEchoRequest
CONSUMES EventOFPQueueStatsReply
CONSUMES EventOFPPortDescStatsReply
CONSUMES EventOFPTableStatsReply
CONSUMES EventOFPDescStatsReply
BRICK ofp_event
PROVIDES EventOFPSwitchFeatures TO {'SimpleSwitch13': set(['config']),
'SwitchCommander': set(['config'])}
PROVIDES EventOFPStatsReply TO {'SwitchCommander': set(['main'])}
PROVIDES EventOFPQueueDescStatsReply TO {'SwitchCommander': set(['main'])}
PROVIDES EventOFPHello TO {'SwitchCommander': set(['handshake'])}
PROVIDES EventOFPPortStatsReply TO {'SwitchCommander': set(['main'])}
PROVIDES EventOFPAggregateStatsReply TO {'SwitchCommander': set(['main'])}
PROVIDES EventOFPMeterStatsReply TO {'SwitchCommander': set(['main'])}
PROVIDES EventOFPMeterFeaturesStatsReply TO {'SwitchCommander':
set(['main'])}
PROVIDES EventOFPPortDescStatsReply TO {'SwitchCommander': set(['main'])}
PROVIDES EventOFPGroupDescStatsReply TO {'SwitchCommander': set(['main'])}
PROVIDES EventOFPGroupFeaturesStatsReply TO {'SwitchCommander':
set(['main'])}
PROVIDES EventOFPMeterConfigStatsReply TO {'SwitchCommander':
set(['main'])}
PROVIDES EventOFPTableFeaturesStatsReply TO {'SwitchCommander':
set(['main'])}
PROVIDES EventOFPGroupStatsReply TO {'SwitchCommander': set(['main'])}
PROVIDES EventOFPEchoRequest TO {'SwitchCommander': set(['main'])}
PROVIDES EventOFPQueueStatsReply TO {'SwitchCommander': set(['main'])}
PROVIDES EventOFPDescStatsReply TO {'SwitchCommander': set(['main'])}
PROVIDES EventOFPFlowStatsReply TO {'SwitchCommander': set(['main'])}
PROVIDES EventOFPTableStatsReply TO {'SwitchCommander': set(['main'])}
PROVIDES EventOFPPacketIn TO {'SimpleSwitch13': set(['main'])}
CONSUMES EventOFPHello
CONSUMES EventOFPSwitchFeatures
CONSUMES EventOFPPortStatus
CONSUMES EventOFPErrorMsg
CONSUMES EventOFPEchoRequest
CONSUMES EventOFPEchoReply
CONSUMES EventOFPPortDescStatsReply
connected socket:<eventlet.greenio.base.GreenSocket object at 0xa8d748c>
address:('127.0.0.1', 46673)
EVENT ofp_event->SwitchCommander EventOFPHello
hello ev <ryu.controller.ofp_event.EventOFPHello object at 0xa8bb9cc>
move onto config mode
connected socket:<eventlet.greenio.base.GreenSocket object at 0xa8d75ec>
address:('127.0.0.1', 46674)
EVENT ofp_event->SwitchCommander EventOFPHello
hello ev <ryu.controller.ofp_event.EventOFPHello object at 0xa8bb56c>
move onto config mode
>>> openflow v1.3 Hello message has been received
>>> openflow v1.3 Hello message has been received
EVENT ofp_event->SimpleSwitch13 EventOFPSwitchFeatures
EVENT ofp_event->SwitchCommander EventOFPSwitchFeatures
switch features ev
version=0x4,msg_type=0x6,msg_len=0x20,xid=0xf18d8275L,OFPSwitchFeatures(auxiliary_id=0,capabilities=79,datapath_id=1,n_buffers=256,n_tables=254)
>>> openflow v1.3 FeaturesReply message has been received from switch 1
move onto main mode
EVENT ofp_event->SimpleSwitch13 EventOFPSwitchFeatures
EVENT ofp_event->SwitchCommander EventOFPSwitchFeatures
switch features ev
version=0x4,msg_type=0x6,msg_len=0x20,xid=0xfe9e7591L,OFPSwitchFeatures(auxiliary_id=0,capabilities=79,datapath_id=2,n_buffers=256,n_tables=254)
>>> openflow v1.3 FeaturesReply message has been received from switch 2
move onto main mode
EVENT ofp_event->SwitchCommander EventOFPEchoRequest
>>> openflow v1.3 EchoRequest message has been received from swich 1
EVENT ofp_event->SwitchCommander EventOFPEchoRequest
>>> openflow v1.3 EchoRequest message has been received from swich 2
EVENT ofp_event->SwitchCommander EventOFPEchoRequest
>>> openflow v1.3 EchoRequest message has been received from swich 1
EVENT ofp_event->SwitchCommander EventOFPEchoRequest
>>> openflow v1.3 EchoRequest message has been received from swich 2
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
packet in 1 9a:1e:65:66:82:6b 33:33:00:00:00:fb 3
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
packet in 2 0a:da:e5:fe:b9:c9 33:33:00:00:00:fb 3
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
packet in 1 9a:1e:65:66:82:6b 33:33:00:00:00:fb 3
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
packet in 2 0a:da:e5:fe:b9:c9 33:33:00:00:00:fb 3
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
packet in 1 9a:1e:65:66:82:6b 33:33:00:00:00:fb 3
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
packet in 2 0a:da:e5:fe:b9:c9 33:33:00:00:00:fb 3
EVENT ofp_event->SwitchCommander EventOFPEchoRequest
>>> openflow v1.3 EchoRequest message has been received from swich 1
EVENT ofp_event->SwitchCommander EventOFPEchoRequest
>>> openflow v1.3 EchoRequest message has been received from swich 2
EVENT ofp_event->SwitchCommander EventOFPEchoRequest
>>> openflow v1.3 EchoRequest message has been received from swich 1
EVENT ofp_event->SwitchCommander EventOFPEchoRequest
>>> openflow v1.3 EchoRequest message has been received from swich 2
EVENT ofp_event->SwitchCommander EventOFPEchoRequest
>>> openflow v1.3 EchoRequest message has been received from swich 1
EVENT ofp_event->SwitchCommander EventOFPEchoRequest
>>> openflow v1.3 EchoRequest message has been received from swich 2
---
As a final point, here is the event handler:
---
@set_ev_cls([ofp_event.EventOFPStatsReply,
ofp_event.EventOFPDescStatsReply,
ofp_event.EventOFPFlowStatsReply,
ofp_event.EventOFPAggregateStatsReply,
ofp_event.EventOFPTableStatsReply,
ofp_event.EventOFPTableFeaturesStatsReply,
ofp_event.EventOFPPortStatsReply,
ofp_event.EventOFPQueueStatsReply,
ofp_event.EventOFPQueueDescStatsReply,
ofp_event.EventOFPMeterStatsReply,
ofp_event.EventOFPMeterFeaturesStatsReply,
ofp_event.EventOFPMeterConfigStatsReply,
ofp_event.EventOFPGroupStatsReply,
ofp_event.EventOFPGroupFeaturesStatsReply,
ofp_event.EventOFPGroupDescStatsReply,
ofp_event.EventOFPPortDescStatsReply
], MAIN_DISPATCHER)
def switch_multipart_reply_handler(self, ev):
multipart_reply = ev.msg
datapath = ev.msg.datapath
print '>>> openflow %s MultipartReply message has been received from swich
%i' %(self.print_version(echo_request.version), datapath.id)
---
Best regards.
Helcio
2016-12-15 2:50 GMT-03:00 Iwase Yusuke <iwase.yusu...@gmail.com>:
> Hi,
>
> Which multipart message type or types you want to catch?
>
> I guess you need to specify multipart message type explicitly.
> The following sample app specifies each multipart message to catch.
> https://github.com/osrg/ryu/blob/master/ryu/app/ofctl_rest.py#L713-L730
>
> Thanks,
> Iwase
>
>
> On 2016年12月15日 05:40, helcio wagner wrote:
> > Hi everybody.
> >
> > I can't receive MultipartReply messages from switches, even though I
> had defined the handler below and watched those messages using wireshark.
> >
> > Does anybody have any idea about what is going on?
> >
> > ---
> > @set_ev_cls(ofp_event.EventOFPMultipartReply, [HANDSHAKE_DISPATCHER,
> CONFIG_DISPATCHER, MAIN_DISPATCHER])
> > def switch_multipart_reply_handler(self, ev):
> > multipart_reply = ev.msg
> > datapath = ev.msg.datapath
> > print '>>> openflow %s MultipartReply message has been received from
> swich %i' %(self.print_version(echo_request.version), datapath.id <
> http://datapath.id>)
> > ---
> >
> > Here is the trace of execution of ryu using the 'SwitchCommander', an
> application built to watch some of the OpenFlow messages received by the
> controller.
> >
> > ---
> > helcio@ojuara:~/ryu/bin$ ./ryu-manager --verbose
> ../ryu/app/simple_switch_13.py ../../Dropbox/EXA0186/Python/
> switch_commander.py
> > loading app ../ryu/app/simple_switch_13.py
> > loading app ../../Dropbox/EXA0186/Python/switch_commander.py
> > loading app ryu.controller.ofp_handler
> > instantiating app ../../Dropbox/EXA0186/Python/switch_commander.py of
> SwitchCommander
> > instantiating app ../ryu/app/simple_switch_13.py of SimpleSwitch13
> > instantiating app ryu.controller.ofp_handler of OFPHandler
> > BRICK SimpleSwitch13
> > CONSUMES EventOFPPacketIn
> > CONSUMES EventOFPSwitchFeatures
> > BRICK SwitchCommander
> > CONSUMES EventOFPHello
> > CONSUMES EventOFPMultipartReply
> > CONSUMES EventOFPEchoRequest
> > CONSUMES EventOFPSwitchFeatures
> > BRICK ofp_event
> > PROVIDES EventOFPHello TO {'SwitchCommander': set(['handshake'])}
> > PROVIDES EventOFPMultipartReply TO {'SwitchCommander':
> set(['handshake', 'main', 'config'])}
> > PROVIDES EventOFPPacketIn TO {'SimpleSwitch13': set(['main'])}
> > PROVIDES EventOFPEchoRequest TO {'SwitchCommander': set(['main'])}
> > PROVIDES EventOFPSwitchFeatures TO {'SimpleSwitch13': set(['config']),
> 'SwitchCommander': set(['config'])}
> > CONSUMES EventOFPPortStatus
> > CONSUMES EventOFPErrorMsg
> > CONSUMES EventOFPEchoRequest
> > CONSUMES EventOFPEchoReply
> > CONSUMES EventOFPPortDescStatsReply
> > CONSUMES EventOFPSwitchFeatures
> > CONSUMES EventOFPHello
> > connected socket:<eventlet.greenio.base.GreenSocket object at
> 0xa2efbec> address:('192.168.56.101', 57014)
> > EVENT ofp_event->SwitchCommander EventOFPHello
> > hello ev <ryu.controller.ofp_event.EventOFPHello object at 0xa2ea92c>
> > move onto config mode
> > connected socket:<eventlet.greenio.base.GreenSocket object at
> 0xa2efd2c> address:('192.168.56.101', 57015)
> > EVENT ofp_event->SwitchCommander EventOFPHello
> > hello ev <ryu.controller.ofp_event.EventOFPHello object at 0xa2d654c>
> > move onto config mode
> >>>> openflow v1.3 Hello message has been received
> >>>> openflow v1.3 Hello message has been received
> > EVENT ofp_event->SimpleSwitch13 EventOFPSwitchFeatures
> > EVENT ofp_event->SwitchCommander EventOFPSwitchFeatures
> > switch features ev version=0x4,msg_type=0x6,msg_len=0x20,xid=0x3c009c3a,
> OFPSwitchFeatures(auxiliary_id=0,capabilities=71,datapath_
> id=2,n_buffers=256,n_tables=254)
> >>>> openflow v1.3 FeaturesReply message has been received from switch 2
> > EVENT ofp_event->SimpleSwitch13 EventOFPSwitchFeatures
> > EVENT ofp_event->SwitchCommander EventOFPSwitchFeatures
> > switch features ev version=0x4,msg_type=0x6,msg_
> len=0x20,xid=0x9685eb96L,OFPSwitchFeatures(auxiliary_
> id=0,capabilities=71,datapath_id=1,n_buffers=256,n_tables=254)
> >>>> openflow v1.3 FeaturesReply message has been received from switch 1
> > move onto main mode
> > move onto main mode
> > EVENT ofp_event->SwitchCommander EventOFPEchoRequest
> >>>> openflow v1.3 EchoRequest message has been received from swich 2
> > EVENT ofp_event->SwitchCommander EventOFPEchoRequest
> >>>> openflow v1.3 EchoRequest message has been received from swich 1
> > EVENT ofp_event->SwitchCommander EventOFPEchoRequest
> >>>> openflow v1.3 EchoRequest message has been received from swich 2
> > EVENT ofp_event->SwitchCommander EventOFPEchoRequest
> >>>> openflow v1.3 EchoRequest message has been received from swich 1
> > EVENT ofp_event->SwitchCommander EventOFPEchoRequest
> >>>> openflow v1.3 EchoRequest message has been received from swich 2
> > EVENT ofp_event->SwitchCommander EventOFPEchoRequest
> >>>> openflow v1.3 EchoRequest message has been received from swich 1
> > EVENT ofp_event->SwitchCommander EventOFPEchoRequest
> >>>> openflow v1.3 EchoRequest message has been received from swich 2
> > EVENT ofp_event->SwitchCommander EventOFPEchoRequest
> >>>> openflow v1.3 EchoRequest message has been received from swich 1
> > ---
> >
> > Thanks in advance.
> >
> > Helcio
> >
> >
> > ------------------------------------------------------------
> ------------------
> > 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