Saurabh Jain | 1 Aug 09:49 2015
Picon

Error during installation through setup.py script

Hi,

I have tried setup.py script to install Ryu Controller, but it seems that some packages should be installed before using this script.
May be Ryu can install dependencies through script.

Thanks,
Saurabh Jain
------------------------------------------------------------------------------
_______________________________________________
Ryu-devel mailing list
Ryu-devel@...
https://lists.sourceforge.net/lists/listinfo/ryu-devel
杨haixiang | 1 Aug 06:06 2015
Picon

Re: How to register observes for self-defined event?

If you add your EventXXXX in your _EVENTS list of your RyuApp that calls send_event_to_observers, it would to be OK.
 

Best Regards,
Haixiang YANG

From: 15116983550 <at> qq.com
To: ryu-devel <at> lists.sourceforge.net
Date: Sat, 1 Aug 2015 11:42:17 +0800
Subject: [Ryu-devel] How to register observes for self-defined event?

To  whom it may concern,

      I try to generate a self-defined event in Ryu. What I have done shows below,
      1. define a xxx_event.py and define a EventXXXX in this file.
      2. In a Ryu app, import xxx_event. Call the self.send_event_to_observers(ev, self.state)
      3. In another Ryu app,  decorated a method by <at> set_ev_handler(xxx_event.EventXXXX, state)

      However, I run the apps and return nothing.
      I really generate a event which defined by me, and call the method:send_event_to_observers.
      I found that the observers of my event is empty, so the event can't be pushed in the Queue.
      
      How should I do to register the observer? 
      
      If I add the code below to call handles, the event will be handled, because I handle the event directly.

        dispatchers = lambda x: x.callers[ev.__class__].dispatchers
        handlers = [handler for handler in
                    self.oxp_brick.get_handlers(ev) if
                    MAIN_DISPATCHER in dispatchers(handler)]
        for handler in handlers:
            handler(ev)


      Thanks for your time.
      I look forward to your reply.

      Best Regards.

------------------
Distance 李呈

_____________________________________________________
School of Information and Communication Engineering
Beijing University of Posts and Telecommunications
Beijing 100876, PR China

北京邮电大学·信息与通信工程学院·通信工程
_____________________________________________________
Mobile Phone: 
(+86) 151-1698-3550 Beijing 
E-mail:
350959853 <at> qq.com
licheng185408 <at> gmail.com
Homepage:
http://www.muzixing.com

 

------------------------------------------------------------------------------
_______________________________________________ Ryu-devel mailing list Ryu-devel <at> lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ryu-devel
------------------------------------------------------------------------------
_______________________________________________
Ryu-devel mailing list
Ryu-devel@...
https://lists.sourceforge.net/lists/listinfo/ryu-devel
Yusuke Iwase | 31 Jul 03:28 2015
Picon

[PATCH 00/10] Related to 'B.18.8 (EXT-350)' in OpenFlow 1.5

This patches are related to the updates of 'B.18.8 Group command
for selective bucket operation' in OpenFlow 1.5.

IWASE Yusuke (10):
  ofproto_v1_5: Fix a typo
  ofproto_v1_5_parser: Add OFPGroupBucketProp support
  ofproto_v1_5_parser: Add OFPGroupProp support
  ofproto_v1_5_parser: Support OF1.5 OFPGroupMod structure
  ofproto_v1_[345]: Fix backward compatibility for OFPGroupDescStats
  ofproto_v1_5_parser: Support OF1.5 OFPGroupDescStats structure
  packet_data_generator2: Generate OF1.5 GroupMod packets
  packet_data: Regen
  test_parser: Add expected json representations of OF1.5 GroupMod
  test_parser: Add test case for OFP15 group_desc reply

 ryu/ofproto/ofproto_v1_3.py                        |   9 +-
 ryu/ofproto/ofproto_v1_4.py                        |  11 +-
 ryu/ofproto/ofproto_v1_5.py                        |  17 +-
 ryu/ofproto/ofproto_v1_5_parser.py                 | 209 ++++++++++++++++-----
 .../of15/libofproto-OFP15-group_desc_reply.packet  | Bin 0 -> 64 bytes
 .../of15/libofproto-OFP15-group_mod.packet         | Bin 0 -> 80 bytes
 ryu/tests/packet_data_generator2/gen.c             |  37 ++++
 .../libofproto-OFP15-group_desc_reply.packet.json  |  45 +++++
 .../of15/libofproto-OFP15-group_mod.packet.json    |  61 ++++++
 9 files changed, 322 insertions(+), 67 deletions(-)
 create mode 100644 ryu/tests/packet_data/of15/libofproto-OFP15-group_desc_reply.packet
 create mode 100644 ryu/tests/packet_data/of15/libofproto-OFP15-group_mod.packet
 create mode 100644 ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-group_desc_reply.packet.json
 create mode 100644 ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-group_mod.packet.json

--

-- 
1.9.1

------------------------------------------------------------------------------
ISHIDA Wataru | 30 Jul 15:12 2015
Picon

[PATCH] ospf: fix serialize() to work with packet.Packet()

Signed-off-by: ISHIDA Wataru <ishida.wataru@...>
---
 ryu/lib/packet/ospf.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ryu/lib/packet/ospf.py b/ryu/lib/packet/ospf.py
index 4265717..0cc2026 100644
--- a/ryu/lib/packet/ospf.py
+++ b/ryu/lib/packet/ospf.py
 <at>  <at>  -688,7 +688,7  <at>  <at>  class OSPFMessage(packet_base.PacketBase, _TypeDisp):
         except:
             return None, None, buf

-    def serialize(self):
+    def serialize(self, payload=None, prev=None):
         tail = self.serialize_tail()
         self.length = self._HDR_LEN + len(tail)
         head = bytearray(struct.pack(self._HDR_PACK_STR, self.version,
--

-- 
1.9.1

------------------------------------------------------------------------------
Fadi Moukayed | 30 Jul 14:50 2015
Picon

Python 3 / Ryu 3.23.2: Broken modules (Python 2/3 incompatibilities)

Hello,

While reading the Ryu book, I discovered that several applications in ryu.app.* seem to be broken under Python 3:

test <at> host:~# ryu-manager --verbose ryu.app.rest_topology
loading app ryu.app.rest_topology
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/ryu/utils.py", line 81, in import_module
    __import__(modname)
  File "/usr/local/lib/python3.4/dist-packages/ryu/app/rest_topology.py", line 22, in <module>
    from ryu.topology.api import get_switch, get_link
  File "/usr/local/lib/python3.4/dist-packages/ryu/topology/api.py", line 38, in <module>
    app_manager.require_app('ryu.topology.switches', api_style=True)
  File "/usr/local/lib/python3.4/dist-packages/ryu/base/app_manager.py", line 85, in require_app
    m._REQUIRED_APP = getattr(m, '_REQUIRED_APP', [])
AttributeError: 'NoneType' object has no attribute '_REQUIRED_APP'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/ryu-manager", line 9, in <module>
    load_entry_point('ryu==3.23.2', 'console_scripts', 'ryu-manager')()
  File "/usr/local/lib/python3.4/dist-packages/ryu/cmd/manager.py", line 88, in main
    app_mgr.load_apps(app_lists)
  File "/usr/local/lib/python3.4/dist-packages/ryu/base/app_manager.py", line 389, in load_apps
    cls = self.load_app(app_cls_name)
  File "/usr/local/lib/python3.4/dist-packages/ryu/base/app_manager.py", line 366, in load_app
    mod = utils.import_module(name)
  File "/usr/local/lib/python3.4/dist-packages/ryu/utils.py", line 92, in import_module
    __import__(name)
  File "/usr/local/lib/python3.4/dist-packages/ryu/app/rest_topology.py", line 22, in <module>
    from ryu.topology.api import get_switch, get_link
  File "/usr/local/lib/python3.4/dist-packages/ryu/topology/api.py", line 38, in <module>
    app_manager.require_app('ryu.topology.switches', api_style=True)
  File "/usr/local/lib/python3.4/dist-packages/ryu/base/app_manager.py", line 85, in require_app
    m._REQUIRED_APP = getattr(m, '_REQUIRED_APP', [])
AttributeError: 'NoneType' object has no attribute '_REQUIRED_APP'

The above happens with Ryu 3.23.2 from PyPI on Python 3.4.0 (Ubuntu 14.04)

Additionally, I also saw the following error messages during install (Seems like some files were missed during the 2->3 conversion):

Installing collected packages: ryu
  Running setup.py install for ryu
    [pbr] Reusing existing SOURCES.txt
    Installing ryu script to /usr/local/bin
    Installing ryu-manager script to /usr/local/bin
      File "/usr/local/lib/python3.4/dist-packages/ryu/contrib/ovs/db/idl.py", line 189
        except error.Error, e:
                          ^
    SyntaxError: invalid syntax
   
      File "/usr/local/lib/python3.4/dist-packages/ryu/contrib/ovs/stream.py", line 122
        def open_block((error, stream)):
                       ^
    SyntaxError: invalid syntax
   
      File "/usr/local/lib/python3.4/dist-packages/ryu/contrib/ovs/fatal_signal.py", line 93
        except OSError, e:
                      ^
    SyntaxError: invalid syntax
   
      File "/usr/local/lib/python3.4/dist-packages/ryu/contrib/ovs/daemon.py", line 147
        except IOError, e:
                      ^
    SyntaxError: invalid syntax
   
      File "/usr/local/lib/python3.4/dist-packages/ryu/contrib/ovs/poller.py", line 174
        except select.error, e:
                           ^
    SyntaxError: invalid syntax
   
      File "/usr/local/lib/python3.4/dist-packages/ryu/contrib/ovs/socket_util.py", line 40
        except socket.error, e:
                           ^
    SyntaxError: invalid syntax
   
      File "/usr/local/lib/python3.4/dist-packages/ryu/contrib/ovs/json.py", line 146
        except UnicodeDecodeError, e:
                                 ^
    SyntaxError: invalid syntax
   
      File "/usr/local/lib/python3.4/dist-packages/ryu/contrib/ovs/ovsuuid.py", line 45
        except error.Error, e:
                          ^
    SyntaxError: invalid syntax
   
Successfully installed ryu
Cleaning up...
test <at> host:~$

Note that other example applications such as simple_vlan and rest_qos are affected by this, since they depend on the contrib.ovs modules.

Greetings from Germany,
-Fadi


------------------------------------------------------------------------------
_______________________________________________
Ryu-devel mailing list
Ryu-devel@...
https://lists.sourceforge.net/lists/listinfo/ryu-devel
Vinllen Chen | 30 Jul 13:28 2015
Picon

How to serialize ospf packet

Hi, Dear all,

I can serialize an icmp packet like this:
pkt = packet.Packet()
pkt.add_protocol(ethernet.ethernet(ethertype=...,
                                   dst=...,
                                   src=...))
pkt.add_protocol(ipv4.ipv4(dst=...,
                           src=...,
                           proto=...))
pkt.add_protocol(icmp.icmp(type_=...,
                           code=...,
                           csum=...,
                           data=...))
pkt.serialize()
bin_packet = pkt.data

but i found it's not ok to serialize ospf packet:
pkt = packet.Packet()
pkt.add_protocol(ethernet.ethernet(ethertype=...,
                                   dst=...,
                                   src=...))
pkt.add_protocol(ipv4.ipv4(dst=...,
                           src=...,
                           proto=...))
pkt.add_protocol(ospf.OSPFMessage(....))
pkt.serialize()

when i execute the "pkt.serialize()", it'll throw an error because the serialize() function in the arp/ipv4/icmp is not same with ospf . So how to solve this problem ?

--
Best Regards,
Vinllen
------------------------------------------------------------------------------
_______________________________________________
Ryu-devel mailing list
Ryu-devel@...
https://lists.sourceforge.net/lists/listinfo/ryu-devel
_ _ | 30 Jul 11:12 2015
Picon

Ryu controller have problem with forward packets in topology with two links between switches

Welcome
Ryu controller have problem with forward packets in topology with two
links between switches. Below simple topology and logs from
controllers. Maybe you know how to solve this?

---
mininet topology
---
"""Custom topology example

Two directly connected switches plus a host for each switch:

   host --- switch === switch --- host

Adding the 'topos' dict with a key/value pair to generate our newly defined
topology enables one to pass in '--topo=mytopo' from the command line.
"""
from mininet.topo import Topo
class MyTopo( Topo ):
    "Simple topology example."
    def __init__( self ):
        "Create custom topo."
        # Initialize topology
        Topo.__init__( self )
        # Add hosts and switches
        leftHost = self.addHost( 'h1' )
        rightHost = self.addHost( 'h2' )
        leftSwitch = self.addSwitch( 's3' )
        rightSwitch = self.addSwitch( 's4' )
        # Add links
        self.addLink( leftHost, leftSwitch )
        self.addLink( leftSwitch, rightSwitch )
        self.addLink( leftSwitch, rightSwitch )
        self.addLink( rightSwitch, rightHost )
topos = { 'mytopo': ( lambda: MyTopo() ) }
---
mininet test ping fail
---
mininet> pingall
*** Ping: testing ping reachability
h1 -> X
h2 -> X
*** Results: 100% dropped (0/2 received)

---
ryu log
---
packet in 4 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 1
packet in 3 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 2
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
packet in 4 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 2
packet in 4 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 1
packet in 3 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 3
packet in 3 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 2
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
packet in 3 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 3
packet in 4 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 2
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
packet in 3 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 2
packet in 3 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 3
packet in 4 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 1
packet in 4 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 2
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
packet in 4 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 1
packet in 3 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 2
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
packet in 4 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 2
packet in 4 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 1
packet in 3 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 3
packet in 3 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 2
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
EVENT ofp_event->SimpleSwitch13 EventOFPPacketIn
packet in 3 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 3
packet in 4 9a:ba:d1:da:57:ab ff:ff:ff:ff:ff:ff 2

--

-- 
Krzysiek

------------------------------------------------------------------------------
Minoru TAKAHASHI | 30 Jul 06:43 2015
Picon

[PATCH 2/2] of1.5: Multipart METER_CONFIG was renamed to METER_DESC

Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@...>
---
 ryu/ofproto/ofproto_v1_5_parser.py | 34 +++++++++++++++++-----------------
 1 file changed, 17 insertions(+), 17 deletions(-)

diff --git a/ryu/ofproto/ofproto_v1_5_parser.py b/ryu/ofproto/ofproto_v1_5_parser.py
index 5c68725..cfadbb0 100644
--- a/ryu/ofproto/ofproto_v1_5_parser.py
+++ b/ryu/ofproto/ofproto_v1_5_parser.py
 <at>  <at>  -3525,9 +3525,9  <at>  <at>  class OFPMeterBandExperimenter(OFPMeterBandHeader):
         return cls(rate, burst_size, experimenter)

 
-class OFPMeterConfigStats(StringifyMixin):
+class OFPMeterDescStats(StringifyMixin):
     def __init__(self, flags=None, meter_id=None, bands=None, length=None):
-        super(OFPMeterConfigStats, self).__init__()
+        super(OFPMeterDescStats, self).__init__()
         self.length = None
         self.flags = flags
         self.meter_id = meter_id
 <at>  <at>  -3553,11 +3553,11  <at>  <at>  class OFPMeterConfigStats(StringifyMixin):
         return meter_config

 
- <at> _set_stats_type(ofproto.OFPMP_METER_DESC, OFPMeterConfigStats)
+ <at> _set_stats_type(ofproto.OFPMP_METER_DESC, OFPMeterDescStats)
  <at> _set_msg_type(ofproto.OFPT_MULTIPART_REQUEST)
-class OFPMeterConfigStatsRequest(OFPMultipartRequest):
+class OFPMeterDescStatsRequest(OFPMultipartRequest):
     """
-    Meter configuration statistics request message
+    Meter description statistics request message

     The controller uses this message to query configuration for one or more
     meters.
 <at>  <at>  -3571,17 +3571,17  <at>  <at>  class OFPMeterConfigStatsRequest(OFPMultipartRequest):

     Example::

-        def send_meter_config_stats_request(self, datapath):
+        def send_meter_desc_stats_request(self, datapath):
             ofp = datapath.ofproto
             ofp_parser = datapath.ofproto_parser

-            req = ofp_parser.OFPMeterConfigStatsRequest(datapath, 0,
+            req = ofp_parser.OFPMeterDescStatsRequest(datapath, 0,
                                                         ofp.OFPM_ALL)
             datapath.send_msg(req)
     """
     def __init__(self, datapath, flags=0, meter_id=ofproto.OFPM_ALL,
                  type_=None):
-        super(OFPMeterConfigStatsRequest, self).__init__(datapath, flags)
+        super(OFPMeterDescStatsRequest, self).__init__(datapath, flags)
         self.meter_id = meter_id

     def _serialize_stats_body(self):
 <at>  <at>  -3592,35 +3592,35  <at>  <at>  class OFPMeterConfigStatsRequest(OFPMultipartRequest):

 
  <at> OFPMultipartReply.register_stats_type()
- <at> _set_stats_type(ofproto.OFPMP_METER_DESC, OFPMeterConfigStats)
+ <at> _set_stats_type(ofproto.OFPMP_METER_DESC, OFPMeterDescStats)
  <at> _set_msg_type(ofproto.OFPT_MULTIPART_REPLY)
-class OFPMeterConfigStatsReply(OFPMultipartReply):
+class OFPMeterDescStatsReply(OFPMultipartReply):
     """
-    Meter configuration statistics reply message
+    Meter description statistics reply message

-    The switch responds with this message to a meter configuration
+    The switch responds with this message to a meter description
     statistics request.

     ================ ======================================================
     Attribute        Description
     ================ ======================================================
-    body             List of ``OFPMeterConfigStats`` instance
+    body             List of ``OFPMeterDescStats`` instance
     ================ ======================================================

     Example::

-         <at> set_ev_cls(ofp_event.EventOFPMeterConfigStatsReply, MAIN_DISPATCHER)
-        def meter_config_stats_reply_handler(self, ev):
+         <at> set_ev_cls(ofp_event.EventOFPMeterDescStatsReply, MAIN_DISPATCHER)
+        def meter_desc_stats_reply_handler(self, ev):
             configs = []
             for stat in ev.msg.body:
                 configs.append('length=%d flags=0x%04x meter_id=0x%08x '
                                'bands=%s' %
                                (stat.length, stat.flags, stat.meter_id,
                                 stat.bands))
-            self.logger.debug('MeterConfigStats: %s', configs)
+            self.logger.debug('MeterDescStats: %s', configs)
     """
     def __init__(self, datapath, type_=None, **kwargs):
-        super(OFPMeterConfigStatsReply, self).__init__(datapath, **kwargs)
+        super(OFPMeterDescStatsReply, self).__init__(datapath, **kwargs)

 
 class OFPMeterFeaturesStats(ofproto_parser.namedtuple('OFPMeterFeaturesStats',
--

-- 
1.9.1

------------------------------------------------------------------------------
Minoru TAKAHASHI | 30 Jul 06:42 2015
Picon

[PATCH 1/2] of1.5: Meter statistics field flow_count was renamed to ref_count

Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@...>
---
 ryu/ofproto/ofproto_v1_5_parser.py | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/ryu/ofproto/ofproto_v1_5_parser.py b/ryu/ofproto/ofproto_v1_5_parser.py
index 07b1ae0..5c68725 100644
--- a/ryu/ofproto/ofproto_v1_5_parser.py
+++ b/ryu/ofproto/ofproto_v1_5_parser.py
 <at>  <at>  -3314,13 +3314,13  <at>  <at>  class OFPMeterBandStats(StringifyMixin):

 
 class OFPMeterStats(StringifyMixin):
-    def __init__(self, meter_id=None, flow_count=None, packet_in_count=None,
+    def __init__(self, meter_id=None, ref_count=None, packet_in_count=None,
                  byte_in_count=None, duration_sec=None, duration_nsec=None,
                  band_stats=None, len_=None):
         super(OFPMeterStats, self).__init__()
         self.meter_id = meter_id
         self.len = 0
-        self.flow_count = flow_count
+        self.ref_count = ref_count
         self.packet_in_count = packet_in_count
         self.byte_in_count = byte_in_count
         self.duration_sec = duration_sec
 <at>  <at>  -3332,7 +3332,7  <at>  <at>  class OFPMeterStats(StringifyMixin):
         meter_stats = cls()

         (meter_stats.meter_id, meter_stats.len,
-         meter_stats.flow_count, meter_stats.packet_in_count,
+         meter_stats.ref_count, meter_stats.packet_in_count,
          meter_stats.byte_in_count, meter_stats.duration_sec,
          meter_stats.duration_nsec) = struct.unpack_from(
             ofproto.OFP_METER_STATS_PACK_STR, buf, offset)
 <at>  <at>  -3407,11 +3407,11  <at>  <at>  class OFPMeterStatsReply(OFPMultipartReply):
         def meter_stats_reply_handler(self, ev):
             meters = []
             for stat in ev.msg.body:
-                meters.append('meter_id=0x%08x len=%d flow_count=%d '
+                meters.append('meter_id=0x%08x len=%d ref_count=%d '
                               'packet_in_count=%d byte_in_count=%d '
                               'duration_sec=%d duration_nsec=%d '
                               'band_stats=%s' %
-                              (stat.meter_id, stat.len, stat.flow_count,
+                              (stat.meter_id, stat.len, stat.ref_count,
                                stat.packet_in_count, stat.byte_in_count,
                                stat.duration_sec, stat.duration_nsec,
                                stat.band_stats))
--

-- 
1.9.1

------------------------------------------------------------------------------
Minoru TAKAHASHI | 30 Jul 06:41 2015
Picon

[PATCH 0/2] Related to 'B.18.21(EXT-302 and 374)'

This patches are related to the following updates of OpenFlow1.5.

  B.18.21 Rename some type for consistency

  Some OpenFlow types were renamed for consistency.
    • Statistics multiparts now have the _STATS suffix (EXT-302).[1]
    • Multipart METER_CONFIG was renamed to METER_DESC (EXT-302).
    • Meter statistics field flow_count was renamed to ref_count (EXT-374).

  ref: 1) This update is already implemented in 
          https://github.com/osrg/ryu/commit/2889711e4670b08d5afbe2f408a511d9acbb5f52.

Minoru TAKAHASHI (2):
  of1.5: Meter statistics field flow_count was renamed to ref_count
  of1.5: Multipart METER_CONFIG was renamed to METER_DESC

 ryu/ofproto/ofproto_v1_5_parser.py | 44 +++++++++++++++++++-------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

--

-- 
1.9.1

------------------------------------------------------------------------------
_______________________________________________
Ryu-devel mailing list
Ryu-devel <at> lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel
Minoru TAKAHASHI | 30 Jul 06:40 2015
Picon

[PATCH 6/6] test_parser: Add test case for OFP15 port_desc request

TODO:Open vSwtich (lib/ofp-util) support OF1.5 port_desc_request, but it has a bug[1].
So, re-generate the packet data by using packet_data_generator2 when Open vSwitch fix the bug.

ref: 1) http://openvswitch.org/pipermail/discuss/2015-July/018253.html

Signed-off-by: Minoru TAKAHASHI <takahashi.minoru7@...>
---
 .../of15/libofproto-OFP15-port_desc_request.packet         | Bin 0 -> 24 bytes
 .../of15/libofproto-OFP15-port_desc_request.packet.json    |   7 +++++++
 2 files changed, 7 insertions(+)
 create mode 100644 ryu/tests/packet_data/of15/libofproto-OFP15-port_desc_request.packet
 create mode 100644 ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-port_desc_request.packet.json

diff --git a/ryu/tests/packet_data/of15/libofproto-OFP15-port_desc_request.packet b/ryu/tests/packet_data/of15/libofproto-OFP15-port_desc_request.packet
new file mode 100644
index 0000000000000000000000000000000000000000..18066d2faa332c7b005dff831fbcbdbca9cceed6
GIT binary patch
literal 24
VcmZP*Vvt|}0bVc(BvzjVu>cJO0k!}D

literal 0
HcmV?d00001

diff --git a/ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-port_desc_request.packet.json b/ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-port_desc_request.packet.json
new file mode 100644
index 0000000..814fc59
--- /dev/null
+++ b/ryu/tests/unit/ofproto/json/of15/libofproto-OFP15-port_desc_request.packet.json
 <at>  <at>  -0,0 +1,7  <at>  <at> 
+{
+    "OFPPortDescStatsRequest": {
+        "flags": 0,
+        "port_no": 43981,
+        "type": 13
+    }
+}
--

-- 
1.9.1

------------------------------------------------------------------------------

Gmane