Hi Iwase,
I am currently trying to figure out an issue in the new code. When I use
the --ofp-switch-address-list flag, it goes into the ofproto_v1_5_parser.py
file shortly after launch. The msg_parser function receives a message with
msg_type of 5, however as you can see below message type 5 is not loaded
into the contents of the _MSG_PARSERS dictionary (contents of dict printed
below). I am not sure if this is an issue with my environment or the new
code.
{0: <bound method OFPHello.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPHello'>>,
1: <bound method OFPErrorMsg.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPErrorMsg'>>,
2: <bound method OFPEchoRequest.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPEchoRequest'>>,
3: <bound method OFPEchoReply.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPEchoReply'>>,
4: <bound method OFPExperimenter.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPExperimenter'>>,
6: <bound method OFPSwitchFeatures.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPSwitchFeatures'>>,
8: <bound method OFPGetConfigReply.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPGetConfigReply'>>,
10: <bound method OFPPacketIn.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPPacketIn'>>,
11: <bound method OFPFlowRemoved.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPFlowRemoved'>>,
12: <bound method OFPPortStatus.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPPortStatus'>>,
14: <bound method OFPFlowMod.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPFlowMod'>>,
15: <bound method OFPGroupMod.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPGroupMod'>>,
19: <bound method OFPMultipartReply.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPMultipartReply'>>,
21: <bound method MsgBase.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPBarrierReply'>>,
25: <bound method OFPRoleReply.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPRoleReply'>>,
27: <bound method OFPGetAsyncReply.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPGetAsyncReply'>>,
29: <bound method OFPMeterMod.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPMeterMod'>>,
30: <bound method OFPRoleStatus.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPRoleStatus'>>,
31: <bound method OFPTableStatus.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPTableStatus'>>,
32: <bound method OFPRequestForward.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPRequestForward'>>,
33: <bound method OFPBundleCtrlMsg.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPBundleCtrlMsg'>>,
35: <bound method OFPControllerStatus.parser of <class
'ryu.ofproto.ofproto_v1_5_parser.OFPControllerStatus'>>}
On Fri, Oct 6, 2017 at 9:32 AM, Matthew Moskowitz <m...@bestateless.com>
wrote:
> Hi Iwase,
>
> Great, I will test this out today.
>
> On Thu, Oct 5, 2017 at 7:43 PM, Iwase Yusuke <iwase.yusu...@gmail.com>
> wrote:
>
>> Hi Matt,
>>
>> I've posted patches to support this feature. Could you try it?
>> [Ryu-devel] [PATCH 1/3] controller: Support proactive connection
>>
>> Note: Currently, Ryu does not aware of whether connections is reactive or
>> proactive,
>> so it is not recommended to use them simultaneously against the same
>> switch.
>> The connection might be duplicated.
>>
>> Thanks,
>> Iwase
>>
>>
>> On 2017年10月06日 07:24, Matthew Moskowitz wrote:
>>
>>> Awesome! I look forward to trying it out.
>>>
>>> On Thu, Oct 5, 2017 at 12:34 AM, Iwase Yusuke <iwase.yusu...@gmail.com
>>> <mailto:iwase.yusu...@gmail.com>> wrote:
>>>
>>> Hi Matt,
>>>
>>> Currently, I'm testing this feature on my branch.
>>> (Still this have some buggy behaviors though...)
>>> https://github.com/iwaseyusuke/ryu/tree/controller-Support_p
>>> roactive_connection
>>> <https://github.com/iwaseyusuke/ryu/tree/controller-Support_
>>> proactive_connection>
>>>
>>> But, the amount of task should not differ so much from this branch,
>>> I guess.
>>>
>>> Thanks,
>>> Iwase
>>>
>>>
>>> On 2017年10月05日 15:16, Matthew Moskowitz wrote:
>>>
>>> Thank you for the advice on the failover Iwase.
>>>
>>> As far as having Ryu behave as the client, do you have any
>>> insight into how large of a task
>>> this would be?
>>>
>>> Matt
>>>
>>> On Tue, Oct 3, 2017 at 8:58 PM, Iwase Yusuke <
>>> iwase.yusu...@gmail.com
>>> <mailto:iwase.yusu...@gmail.com> <mailto:iwase.yusu...@gmail.com
>>> <mailto:iwase.yusu...@gmail.com>>> wrote:
>>>
>>> Hi Matt,
>>>
>>> Thank you for sharing use-cases.
>>>
>>> For the latter case, I guess it should take some lags to
>>> change controllers addresses
>>> on switches
>>> to do efficiently failover.
>>> Might have still some lags, but how about using virtual IPs
>>> on controller side (like
>>> clustering
>>> controller)?
>>> I should be smaller lags than changing addresses on switch
>>> side.
>>>
>>> Thanks,
>>> Iwase
>>>
>>>
>>> On 2017年10月04日 10:56, Matthew Moskowitz wrote:
>>>
>>> Thanks Iwase and Carlos for your thoughts,
>>>
>>> 2 cases that this feature is interesting to me for
>>> would be:
>>>
>>> Integrating Ryu with other software that is already
>>> running a different
>>> webserver/asynchronous library. Nicer in this case not
>>> to have to deal with 2 different
>>> webservers/coroutine types.
>>>
>>> Efficient failover if one Ryu application should fail
>>> for any reason, the new one can
>>> instantly connect to the switch. Your suggestion to use
>>> the ovsdb library could
>>> help with
>>> this one.
>>>
>>> Thanks,
>>> Matt
>>>
>>> On Tue, Oct 3, 2017 at 7:20 PM, Iwase Yusuke <
>>> iwase.yusu...@gmail.com
>>> <mailto:iwase.yusu...@gmail.com>
>>> <mailto:iwase.yusu...@gmail.com <mailto:
>>> iwase.yusu...@gmail.com>>
>>> <mailto:iwase.yusu...@gmail.com <mailto:iwase.yusu...@gmail.com>
>>>
>>> <mailto:iwase.yusu...@gmail.com <mailto:
>>> iwase.yusu...@gmail.com>>>> wrote:
>>>
>>> Hi Carlos,
>>>
>>> Thank you for your reply!
>>>
>>> As you said, the OpenFlow Spec does not restrict
>>> Switches must initiate
>>> connection to
>>> Controllers.
>>> But initiating connection by Controllers seems to
>>> be the "optional" feature.
>>> ===
>>> Quote: OpenFlow Spec 1.3.5 "6.3.3 Connection Setup"
>>> ===
>>> Optionally, the switch may allow the controller to
>>> initiate the connection. In
>>> this
>>> case, the
>>> switch should
>>> accept incoming standard TLS or TCP connections
>>> from the controller, using
>>> either a
>>> user-specified
>>> transport port or the default OpenFlow transport
>>> port 6653. Connections
>>> initiated by
>>> the switch and
>>> the controller behave the same once the transport
>>> connection is established.
>>> ===
>>>
>>> If OVS does not know on where Ryu is listening
>>> when OVS starting up, how about
>>> using
>>> OVSDB library
>>> to tell controller's IP:Port to OVS?
>>> If OVS listening on OVSDB connection,
>>> "set-controller" API can tell its own
>>> address to OVS.
>>> https://github.com/osrg/ryu/blob/6e69e9b8a6ebd2bb06aa864cc76
>>> ef0b79d1ac9c3/ryu/lib/ovs/bridge.py#L128
>>> <https://github.com/osrg/ryu/blob/6e69e9b8a6ebd2bb06aa864cc7
>>> 6ef0b79d1ac9c3/ryu/lib/ovs/bridge.py#L128>
>>> <https://github.com/osrg/ryu/b
>>> lob/6e69e9b8a6ebd2bb06aa864cc76ef0b79d1ac9c3/ryu/lib/ovs/bridge.py#L128
>>> <https://github.com/osrg/ryu/blob/6e69e9b8a6ebd2bb06aa864cc7
>>> 6ef0b79d1ac9c3/ryu/lib/ovs/bridge.py#L128>>
>>> <https://github.com/osrg/ryu/b
>>> lob/6e69e9b8a6ebd2bb06aa864cc76ef0b79d1ac9c3/ryu/lib/ovs/bridge.py#L128
>>> <https://github.com/osrg/ryu/blob/6e69e9b8a6ebd2bb06aa864cc7
>>> 6ef0b79d1ac9c3/ryu/lib/ovs/bridge.py#L128>
>>> <https://github.com/osrg/ryu/b
>>> lob/6e69e9b8a6ebd2bb06aa864cc76ef0b79d1ac9c3/ryu/lib/ovs/bridge.py#L128
>>> <https://github.com/osrg/ryu/blob/6e69e9b8a6ebd2bb06aa864cc7
>>> 6ef0b79d1ac9c3/ryu/lib/ovs/bridge.py#L128>>>
>>>
>>> And apart from that, initiating connection by
>>> Controllers looks interesting
>>> feature for me.
>>>
>>> Thanks,
>>> Iwase
>>>
>>>
>>>
>>> On 2017年10月04日 08:57, Carlos Ferreira wrote:
>>>
>>> This is just a question, not a critic.
>>> Doesn't the OpenFlow standard stipulates that
>>> it is the Switch that
>>> must connect to a Controller, and not the
>>> other way around?
>>>
>>> Carlos Ferreira
>>>
>>> On 4 October 2017 at 00:42, Iwase Yusuke <
>>> iwase.yusu...@gmail.com
>>> <mailto:iwase.yusu...@gmail.com>
>>> <mailto:iwase.yusu...@gmail.com <mailto:
>>> iwase.yusu...@gmail.com>>
>>> <mailto:iwase.yusu...@gmail.com <mailto:
>>> iwase.yusu...@gmail.com>
>>> <mailto:iwase.yusu...@gmail.com <mailto:iwase.yusu...@gmail.com>>>>
>>> wrote:
>>>
>>>
>>> Hi Matt,
>>>
>>> As far as I know, Ryu does not provide
>>> such feature (only do wait incoming
>>> connection
>>> like server).
>>> Would you share us if you have any
>>> use-case or situation where Ryu
>>> must act as
>>> a client?
>>> If there are useful use-cases, better to
>>> implement it, I guess!
>>>
>>> Thanks,
>>> Iwase
>>>
>>>
>>>
>>> On 2017年10月04日 07:16, Matthew Moskowitz
>>> wrote:
>>>
>>>
>>> Hi,
>>>
>>> By default when a Ryu application is
>>> started, it is listening for
>>> a connection
>>> request that comes from the switch.
>>> (For instance, using ovs, you
>>> would run
>>> ovs-vsctl set-controller to tell it
>>> where to talk to the Ryu
>>> application).
>>> However,
>>> OpenvSwitch can also behave like a
>>> server and wait for a request
>>> from an
>>> openflow
>>> controller.
>>>
>>> Is there an existing setting that
>>> allows a Ryu application act as
>>> a client
>>> such that
>>> the Ryu app will make the initial
>>> request to connect with the
>>> openflow switch?
>>>
>>> Thanks,
>>> Matt
>>>
>>>
>>> -----------------------------
>>> -------------------------------------------------
>>> 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 <mailto:Ryu-devel@lists.source
>>> forge.net>
>>> <mailto:Ryu-devel@lists.sourceforge.net <mailto:
>>> Ryu-devel@lists.sourceforge.net>>
>>> <mailto:Ryu-devel@lists.sourceforge.net <mailto:
>>> Ryu-devel@lists.sourceforge.net>
>>> <mailto:Ryu-devel@lists.sourceforge.net <mailto:
>>> Ryu-devel@lists.sourceforge.net>>>
>>> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>
>>> <https://lists.sourceforge.net
>>> /lists/listinfo/ryu-devel
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>> <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 <mailto:Ryu-devel@lists.source
>>> forge.net>
>>> <mailto:Ryu-devel@lists.sourceforge.net <mailto:
>>> Ryu-devel@lists.sourceforge.net>>
>>> <mailto:Ryu-devel@lists.sourceforge.net <mailto:
>>> Ryu-devel@lists.sourceforge.net>
>>> <mailto:Ryu-devel@lists.sourceforge.net <mailto:
>>> Ryu-devel@lists.sourceforge.net>>>
>>> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>
>>> <https://lists.sourceforge.net
>>> /lists/listinfo/ryu-devel
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>> <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 <mailto:Ryu-devel@lists.source
>>> forge.net>
>>> <mailto:Ryu-devel@lists.sourceforge.net <mailto:
>>> Ryu-devel@lists.sourceforge.net>>
>>> <mailto:Ryu-devel@lists.sourceforge.net <mailto:
>>> Ryu-devel@lists.sourceforge.net>
>>> <mailto:Ryu-devel@lists.sourceforge.net <mailto:
>>> Ryu-devel@lists.sourceforge.net>>>
>>> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>
>>> <https://lists.sourceforge.net
>>> /lists/listinfo/ryu-devel
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>> <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 <mailto:Ryu-devel@lists.source
>>> forge.net>
>>> <mailto:Ryu-devel@lists.sourceforge.net <mailto:
>>> Ryu-devel@lists.sourceforge.net>>
>>> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
>>> <https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>> <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 <mailto:Ryu-devel@lists.source
>>> forge.net>
>>> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>> <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
>>>
>>>
>
------------------------------------------------------------------------------
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