Fortunately I have an update on the issue from above. The class
OFPFeaturesRequest(MsgBase): appears to be missing the @_register_parser
decorator. I can push a patch for this but I will continue testing the code
today.
On Sun, Oct 8, 2017 at 3:50 PM, Matthew Moskowitz <m...@bestateless.com>
wrote:
> 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.co
>>>> m
>>>> <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