Hi,

On 2016年05月16日 19:01, Edison Albuquerque wrote:
> Thanks again Iwase.
> By the way, to write a complete app with Ryu I need to put Ryu to listen to 
> all openflow messages that are possible to come in.
> Is there a simple way to do this or I have to write apps to listen to every 
> message like one app to PacketIn, one to PortStatus, and so on.

AFAIK, Ryu does not provide such event...
But you can specify multiple event into @set_ev_cls decorator as a list:
   https://github.com/osrg/ryu/blob/master/ryu/app/ofctl_rest.py#L701-L718

If this is not suitable for your purpose, how about the following snippet?
However, I think this snippet is not appropriate way, because the following 
modifies the core of Ryu.

$ git diff
diff --git a/ryu/app/simple_switch_13.py b/ryu/app/simple_switch_13.py
index 3e7c598..473770a 100644
--- a/ryu/app/simple_switch_13.py
+++ b/ryu/app/simple_switch_13.py
@@ -63,6 +63,9 @@ class SimpleSwitch13(app_manager.RyuApp):
                                      match=match, instructions=inst)
          datapath.send_msg(mod)
  
+    def _all_ofp_message_hanlder(self, ev):
+        self.logger.info("ev=%s", ev)
+
      @set_ev_cls(ofp_event.EventOFPPacketIn, MAIN_DISPATCHER)
      def _packet_in_handler(self, ev):
          # If you hit this you might want to increase
diff --git a/ryu/controller/controller.py b/ryu/controller/controller.py
index 1ae7287..7b11661 100644
--- a/ryu/controller/controller.py
+++ b/ryu/controller/controller.py
@@ -148,6 +148,9 @@ class Datapath(ofproto_protocol.ProtocolDesc):
          self._ports = None
          self.flow_format = ofproto_v1_0.NXFF_OPENFLOW10
          self.ofp_brick = 
ryu.base.app_manager.lookup_service_brick('ofp_event')
+        # Get your RyuApp instance
+        self.your_app = ryu.base.app_manager.lookup_service_brick(
+            'SimpleSwitch13')  # Your RyuApp name
          self.set_state(HANDSHAKE_DISPATCHER)
  
      def _get_ports(self):
@@ -218,6 +221,9 @@ class Datapath(ofproto_protocol.ProtocolDesc):
                      ev = ofp_event.ofp_msg_to_ev(msg)
                      self.ofp_brick.send_event_to_observers(ev, self.state)
  
+                    # Invoke handler in your RyuApp
+                    self.your_app._all_ofp_message_hanlder(ev)
+
                      dispatchers = lambda x: 
x.callers[ev.__class__].dispatchers
                      handlers = [handler for handler in
                                  self.ofp_brick.get_handlers(ev) if


Thanks,
Iwase

> Best wishes.
> Edison.
>
> 2016-05-16 5:08 GMT+00:00 Iwase Yusuke <[email protected] 
> <mailto:[email protected]>>:
>
>     Hi,
>
>     On 2016年05月14日 08:19, Edison Albuquerque wrote:
>
>         Hi.
>         When I create a topology, I can do:
>
>         h1 = self.addHost( 'Bob' )
>
>         But:
>
>         s1 = self.addSwitch( 'Nyc' )
>
>         doesn't work.
>
>         What I am doing wrong?
>
>
>     I think this is the constraint of Mininet (not Ryu).
>
>     In order to derive default datapath ID from the user-specified switch 
> name,
>     you need include a number in your switch name like 'Nyc1'.
>     https://github.com/mininet/mininet/blob/master/mininet/node.py#L881-L883
>
>     If you want to more support for this problem,
>     how about getting contact to Mininet team?
>     https://mailman.stanford.edu/mailman/listinfo/mininet-discuss
>
>     Thanks,
>     Iwase
>
>
>
>
>         --
>         /_Todos querem um mundo melhor. Poucos colaboram.
>         _/
>
>         Prof. Edison de Queiroz Albuquerque, BSc, Msc, Dr.
>         Adjunto da Escola Politécnica de Pernambuco, Universidade de 
> Pernambuco (POLI/UPE)
>         Professor do Curso de Engenharia de Computação
>         Líder do Grupo de Pesquisa em Protocolos de  Redes de Computadores
>         Membro do IEEE (ComSoc), do SBrT, do IECOM e da APEET
>
>         Universidade de Pernambuco/Escola Politécnica de Pernambuco
>         Rua Benfica, 455 (Bl. 'C' 2. andar) - Bairro: Madalena
>         CEP 50720-001 - Recife, Pernambuco - Brasil
>         Fone: +55 81 3184-7542 <tel:%2B55%2081%203184-7542> - Fax: +55 81 
> 3184-7581 <tel:%2B55%2081%203184-7581>
>
>
>
>         
> ------------------------------------------------------------------------------
>         Mobile security can be enabling, not merely restricting. Employees who
>         bring their own devices (BYOD) to work are irked by the imposition of 
> MDM
>         restrictions. Mobile Device Manager Plus allows you to control only 
> the
>         apps on BYO-devices by containerizing them, leaving personal data 
> untouched!
>         https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
>
>
>
>         _______________________________________________
>         Ryu-devel mailing list
>         [email protected] 
> <mailto:[email protected]>
>         https://lists.sourceforge.net/lists/listinfo/ryu-devel
>
>
>
>
> --
> /_Todos querem um mundo melhor. Poucos colaboram.
> _/
>
> Prof. Edison de Queiroz Albuquerque, BSc, Msc, Dr.
> Adjunto da Escola Politécnica de Pernambuco, Universidade de Pernambuco 
> (POLI/UPE)
> Professor do Curso de Engenharia de Computação
> Líder do Grupo de Pesquisa em Protocolos de  Redes de Computadores
> Membro do IEEE (ComSoc), do SBrT, do IECOM e da APEET
>
> Universidade de Pernambuco/Escola Politécnica de Pernambuco
> Rua Benfica, 455 (Bl. 'C' 2. andar) - Bairro: Madalena
> CEP 50720-001 - Recife, Pernambuco - Brasil
> Fone: +55 81 3184-7542 - Fax: +55 81 3184-7581
>
>
>
> ------------------------------------------------------------------------------
> Mobile security can be enabling, not merely restricting. Employees who
> bring their own devices (BYOD) to work are irked by the imposition of MDM
> restrictions. Mobile Device Manager Plus allows you to control only the
> apps on BYO-devices by containerizing them, leaving personal data untouched!
> https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
>
>
>
> _______________________________________________
> Ryu-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>

------------------------------------------------------------------------------
Mobile security can be enabling, not merely restricting. Employees who
bring their own devices (BYOD) to work are irked by the imposition of MDM
restrictions. Mobile Device Manager Plus allows you to control only the
apps on BYO-devices by containerizing them, leaving personal data untouched!
https://ad.doubleclick.net/ddm/clk/304595813;131938128;j
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to