<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.network.ryu.devel">
    <title>gmane.network.ryu.devel</title>
    <link>http://blog.gmane.org/gmane.network.ryu.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2881"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2880"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2879"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2878"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2877"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2876"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2875"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2874"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2873"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2872"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2871"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2870"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2869"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2868"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2867"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2866"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2865"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2864"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2863"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.network.ryu.devel/2862"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2881">
    <title>Re: [PATCH 1/2] lib/packet/vrrp: fix is_valid()</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2881</link>
    <description>&lt;pre&gt;Oops. The both patches looks good.

On Tue, May 21, 2013 at 01:44:09PM +0900, YAMADA Hideki wrote:

&lt;/pre&gt;</description>
    <dc:creator>Isaku Yamahata</dc:creator>
    <dc:date>2013-05-21T10:26:20</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2880">
    <title>Re: [PATCH] test_parser_v10: remove tests for __str__</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2880</link>
    <description>&lt;pre&gt;
Although I'm not sure how much make sense to keep the test,
it will make test pass to make string parser a bit smarter.

From
        str_ = str_.rsplit()
to something like
[re.sub('\).*', '', r) for r in re.split('[(,= ]', str(res))]

thanks

On Tue, May 21, 2013 at 01:13:58PM +0900, YAMADA Hideki wrote:

&lt;/pre&gt;</description>
    <dc:creator>Isaku Yamahata</dc:creator>
    <dc:date>2013-05-21T06:23:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2879">
    <title>[PATCH 2/2] tests/unit/packet/test_vrrp: add tests foris_valid()</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2879</link>
    <description>&lt;pre&gt;
Signed-off-by: YAMADA Hideki &amp;lt;yamada.hideki-lJ4LtgMnyE9L9jVzuh4AOg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 ryu/tests/unit/packet/test_vrrp.py |   92 +++++++++++++++++++++++++++++++++++-
 1 files changed, 91 insertions(+), 1 deletions(-)

diff --git a/ryu/tests/unit/packet/test_vrrp.py b/ryu/tests/unit/packet/test_vrrp.py
index 32dbdb4..282c9fa 100644
--- a/ryu/tests/unit/packet/test_vrrp.py
+++ b/ryu/tests/unit/packet/test_vrrp.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -21,7 +21,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; import logging
 import struct
 import netaddr
 
-from nose.tools import eq_
+from nose.tools import eq_, ok_
 from nose.tools import raises
 
 from ryu.ofproto import inet
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -137,6 +137,51 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class Test_vrrpv2(unittest.TestCase):
         p1.serialize()
         eq_(p0.data, p1.data)
 
+    def _test_is_valid(self, type_=None, vrid=None, priority=None,
+                       max_adver_int=None):
+        if type_ is None:
+            type_ = self.type_
+        if vrid is None:
+            vrid = self.vrid
+        if priority is None:
+            priority = self.priority
+        if max_adver_int is None:
+            max_adver_int = self.max_adver_int
+
+        vrrp_ = vrrp.vrrpv2.create(type_, vrid, priority, max_adver_int,
+                                   [self.ip_address])
+        return vrrp_.is_valid()
+
+    def test_is_valid_ok(self):
+        ok_(self._test_is_valid())
+
+    def test_is_valid_ng_type(self):
+        ok_(not self._test_is_valid(type_=15))
+
+    def test_is_valid_ng_vrid_min(self):
+        vrid = vrrp.VRRP_VRID_MIN - 1
+        ok_(not self._test_is_valid(vrid=vrid))
+
+    def test_is_valid_ng_vrid_max(self):
+        vrid = vrrp.VRRP_VRID_MAX + 1
+        ok_(not self._test_is_valid(vrid=vrid))
+
+    def test_is_valid_ng_priority_min(self):
+        priority = vrrp.VRRP_PRIORITY_MIN - 1
+        ok_(not self._test_is_valid(priority=priority))
+
+    def test_is_valid_ng_priority_max(self):
+        priority = vrrp.VRRP_PRIORITY_MAX + 1
+        ok_(not self._test_is_valid(priority=priority))
+
+    def test_is_valid_ng_adver_min(self):
+        max_adver_int = vrrp.VRRP_V2_MAX_ADVER_INT_MIN - 1
+        ok_(not self._test_is_valid(max_adver_int=max_adver_int))
+
+    def test_is_valid_ng_adver_max(self):
+        max_adver_int = vrrp.VRRP_V2_MAX_ADVER_INT_MAX + 1
+        ok_(not self._test_is_valid(max_adver_int=max_adver_int))
+
 
 class Test_vrrpv3_ipv4(unittest.TestCase):
     """ Test case for vrrp v3 IPv4
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -233,6 +278,51 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class Test_vrrpv3_ipv4(unittest.TestCase):
         p1.serialize()
         eq_(p0.data, p1.data)
 
+    def _test_is_valid(self, type_=None, vrid=None, priority=None,
+                       max_adver_int=None):
+        if type_ is None:
+            type_ = self.type_
+        if vrid is None:
+            vrid = self.vrid
+        if priority is None:
+            priority = self.priority
+        if max_adver_int is None:
+            max_adver_int = self.max_adver_int
+
+        vrrp_ = vrrp.vrrpv3.create(type_, vrid, priority, max_adver_int,
+                                   [self.ip_address])
+        return vrrp_.is_valid()
+
+    def test_is_valid_ok(self):
+        ok_(self._test_is_valid())
+
+    def test_is_valid_ng_type(self):
+        ok_(not self._test_is_valid(type_=15))
+
+    def test_is_valid_ng_vrid_min(self):
+        vrid = vrrp.VRRP_VRID_MIN - 1
+        ok_(not self._test_is_valid(vrid=vrid))
+
+    def test_is_valid_ng_vrid_max(self):
+        vrid = vrrp.VRRP_VRID_MAX + 1
+        ok_(not self._test_is_valid(vrid=vrid))
+
+    def test_is_valid_ng_priority_min(self):
+        priority = vrrp.VRRP_PRIORITY_MIN - 1
+        ok_(not self._test_is_valid(priority=priority))
+
+    def test_is_valid_ng_priority_max(self):
+        priority = vrrp.VRRP_PRIORITY_MAX + 1
+        ok_(not self._test_is_valid(priority=priority))
+
+    def test_is_valid_ng_adver_min(self):
+        max_adver_int = vrrp.VRRP_V3_MAX_ADVER_INT_MIN - 1
+        ok_(not self._test_is_valid(max_adver_int=max_adver_int))
+
+    def test_is_valid_ng_adver_max(self):
+        max_adver_int = vrrp.VRRP_V3_MAX_ADVER_INT_MAX + 1
+        ok_(not self._test_is_valid(max_adver_int=max_adver_int))
+
 
 class Test_vrrpv3_ipv6(unittest.TestCase):
     """ Test case for vrrp v3 IPv6
&lt;/pre&gt;</description>
    <dc:creator>YAMADA Hideki</dc:creator>
    <dc:date>2013-05-21T04:44:10</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2878">
    <title>[PATCH 1/2] lib/packet/vrrp: fix is_valid()</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2878</link>
    <description>&lt;pre&gt;
Signed-off-by: YAMADA Hideki &amp;lt;yamada.hideki-lJ4LtgMnyE9L9jVzuh4AOg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 ryu/lib/packet/vrrp.py |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/ryu/lib/packet/vrrp.py b/ryu/lib/packet/vrrp.py
index 7c50fed..8b6140a 100644
--- a/ryu/lib/packet/vrrp.py
+++ b/ryu/lib/packet/vrrp.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -395,7 +395,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class vrrp(packet_base.PacketBase):
 
     def is_valid(self):
         cls = self._VRRP_VERSIONS.get(self.version, None)
-        if None:
+        if cls is None:
             return False
         return cls.is_valid(self)
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -499,8 +499,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class vrrpv2(vrrp):
         return (self.version == VRRP_VERSION_V2 and
                 self.type == VRRP_TYPE_ADVERTISEMENT and
                 VRRP_VRID_MIN &amp;lt;= self.vrid and self.vrid &amp;lt;= VRRP_VRID_MAX and
-                VRRP_PRIORITY_MIN &amp;lt;= self.vrid and
-                self.vrid &amp;lt;= VRRP_PRIORITY_MAX and
+                VRRP_PRIORITY_MIN &amp;lt;= self.priority and
+                self.priority &amp;lt;= VRRP_PRIORITY_MAX and
                 self.auth_type == VRRP_AUTH_NO_AUTH and
                 VRRP_V2_MAX_ADVER_INT_MIN &amp;lt;= self.max_adver_int and
                 self.max_adver_int &amp;lt;= VRRP_V2_MAX_ADVER_INT_MAX and
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -616,8 +616,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class vrrpv3(vrrp):
         return (self.version == VRRP_VERSION_V3 and
                 self.type == VRRP_TYPE_ADVERTISEMENT and
                 VRRP_VRID_MIN &amp;lt;= self.vrid and self.vrid &amp;lt;= VRRP_VRID_MAX and
-                VRRP_PRIORITY_MIN &amp;lt;= self.vrid and
-                self.vrid &amp;lt;= VRRP_PRIORITY_MAX and
+                VRRP_PRIORITY_MIN &amp;lt;= self.priority and
+                self.priority &amp;lt;= VRRP_PRIORITY_MAX and
                 VRRP_V3_MAX_ADVER_INT_MIN &amp;lt;= self.max_adver_int and
                 self.max_adver_int &amp;lt;= VRRP_V3_MAX_ADVER_INT_MAX and
                 self.count_ip == len(self.ip_addresses))
&lt;/pre&gt;</description>
    <dc:creator>YAMADA Hideki</dc:creator>
    <dc:date>2013-05-21T04:44:09</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2877">
    <title>[PATCH] test_parser_v10: remove tests for __str__</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2877</link>
    <description>&lt;pre&gt;Following errors occur at current master
(commit 21692141dc7e8be2d44338ce4eff5af584e4ff8f)

======================================================================
ERROR: test_parser (ryu.tests.unit.ofproto.test_parser_v10.TestOFPFlowRemoved)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/hideki/ryu/ryu/tests/unit/ofproto/test_parser_v10.py", line 4080, in test_parser
    eq_(str(cookie['val']), check['cookie'])
KeyError: 'cookie'

======================================================================
ERROR: test_parser (ryu.tests.unit.ofproto.test_parser_v10.TestOFPPacketIn)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/hideki/ryu/ryu/tests/unit/ofproto/test_parser_v10.py", line 3782, in test_parser
    ok_(self._test_parser())
  File "/home/hideki/ryu/ryu/tests/unit/ofproto/test_parser_v10.py", line 3774, in _test_parser
    eq_(str(buffer_id['val']), check['buffer_id'])
KeyError: 'buffer_id'

======================================================================
ERROR: test_parser_padding (ryu.tests.unit.ofproto.test_parser_v10.TestOFPPacketIn)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/hideki/ryu/ryu/tests/unit/ofproto/test_parser_v10.py", line 3785, in test_parser_padding
    ok_(self._test_parser(True))
  File "/home/hideki/ryu/ryu/tests/unit/ofproto/test_parser_v10.py", line 3774, in _test_parser
    eq_(str(buffer_id['val']), check['buffer_id'])
KeyError: 'buffer_id'

======================================================================
ERROR: test_str (ryu.tests.unit.ofproto.test_parser_v10.TestOFPQueuePropMinRate)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/hideki/ryu/ryu/tests/unit/ofproto/test_parser_v10.py", line 2615, in test_str
    eq_(check['rate'], str(self.rate['val']))
KeyError: 'rate'

======================================================================
ERROR: test_str (ryu.tests.unit.ofproto.test_parser_v10.TestOFPQueuePropNone)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/hideki/ryu/ryu/tests/unit/ofproto/test_parser_v10.py", line 2564, in test_str
    eq_(check['property'], str(self.property['val']))
KeyError: 'property'

======================================================================
ERROR: test_parser (ryu.tests.unit.ofproto.test_parser_v10.TestOFPSwitchFeatures)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/hideki/ryu/ryu/tests/unit/ofproto/test_parser_v10.py", line 3580, in test_parser
    eq_(check['ports'].find('OFPPhyPort'), 0)
KeyError: 'ports'

Signed-off-by: YAMADA Hideki &amp;lt;yamada.hideki-lJ4LtgMnyE9L9jVzuh4AOg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 ryu/tests/unit/ofproto/test_parser_v10.py |  370 -----------------------------
 1 files changed, 0 insertions(+), 370 deletions(-)

diff --git a/ryu/tests/unit/ofproto/test_parser_v10.py b/ryu/tests/unit/ofproto/test_parser_v10.py
index e135a62..4b1e20c 100644
--- a/ryu/tests/unit/ofproto/test_parser_v10.py
+++ b/ryu/tests/unit/ofproto/test_parser_v10.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2549,21 +2549,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPQueuePropNone(unittest.TestCase):
 
         ok_(self.c.parser(buf, 0))
 
-    def test_str(self):
-        list_ = ('property', 'len')
-        check = {}
-        str_ = str(self.c)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(check['property'], str(self.property['val']))
-        eq_(check['len'], str(self.len['val']))
-
 
 class TestOFPQueuePropMinRate(unittest.TestCase):
     """ Test case for ofprotp_v1_0_parser.OFPQueuePropMinRate
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2600,20 +2585,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPQueuePropMinRate(unittest.TestCase):
         res = self.c.parser(self.buf, 0)
         eq_(self.rate['val'], res.rate)
 
-    def test_str(self):
-        list_ = ('rate',)
-        check = {}
-        str_ = str(self.c)
-        str_ = str_.rsplit()
-        i = 0
-
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(check['rate'], str(self.rate['val']))
-
 
 class TestOFPPacketQueue(unittest.TestCase):
     """ Test case for ofprotp_v1_0_parser.OFPPacketQueue
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2714,24 +2685,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPHello(unittest.TestCase):
         eq_(xid, res.xid)
         eq_(buffer(buf), res.buf)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid')
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        # comparison fails in some environment
-        #   such as hex() returns string with suffix 'L'
-        eq_(hex(ofproto_v1_0.OFP_VERSION).find(check['version:']), 0)
-        eq_(hex(ofproto_v1_0.OFPT_HELLO).find(check['msg_type']), 0)
-        eq_(hex(xid).find(check['xid']), 0)
-
     def test_serialize(self):
 
         class Datapath(object):
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2791,22 +2744,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPErrorMsg(unittest.TestCase):
         eq_(code['val'], res.code)
         eq_(data, res.data)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid')
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         class Datapath(object):
             ofproto = ofproto_v1_0
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2882,24 +2819,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPEchoRequest(unittest.TestCase):
         eq_(xid['val'], res.xid)
         eq_(data, res.data)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid')
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        # comparison fails in some environment
-        #   such as hex() returns string with suffix 'L'
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         class Datapath(object):
             ofproto = ofproto_v1_0
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2968,24 +2887,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPEchoReply(unittest.TestCase):
         eq_(xid['val'], res.xid)
         eq_(data, res.data)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid')
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        # comparison fails in some environment
-        #   such as hex() returns string with suffix 'L'
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         class Datapath(object):
             ofproto = ofproto_v1_0
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3057,24 +2958,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPVendor(unittest.TestCase):
         eq_(vendor['val'], res.vendor)
         eq_(data, res.data)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid')
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        # comparison fails in some environment
-        #   such as hex() returns string with suffix 'L'
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         class Datapath(object):
             ofproto = ofproto_v1_0
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3559,26 +3442,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPSwitchFeatures(unittest.TestCase):
         eq_(supported['val'], port.supported)
         eq_(peer['val'], port.peer)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid', 'ports')
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                if str_[i + 1].startswith('{'):  # "{1: OFPPhyPort..."
-                    check[str_[i]] = str_[i + 2]
-                else:
-                    check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-        eq_(check['ports'].find('OFPPhyPort'), 0)
-
     def test_serialize(self):
         # Not used.
         pass
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3667,22 +3530,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPPortStatus(unittest.TestCase):
         eq_(supported['val'], desc.supported)
         eq_(peer['val'], desc.peer)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid',)
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         # Not used.
         pass
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3755,27 +3602,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPPacketIn(unittest.TestCase):
         eq_(reason['val'], res.reason)
         eq_(data[0:16], res.data)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid',
-                 'buffer_id', 'total_len', 'in_port', 'reason',)
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-        eq_(str(buffer_id['val']), check['buffer_id'])
-        eq_(str(total_len['val']), check['total_len'])
-        eq_(str(in_port['val']), check['in_port'])
-        eq_(str(reason['val']), check['reason'])
-
         return True
 
     def test_parser(self):
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3841,22 +3667,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPGetConfigReply(unittest.TestCase):
         eq_(flags['val'], res.flags)
         eq_(miss_send_len['val'], res.miss_send_len)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid',)
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         # Not used.
         pass
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3905,22 +3715,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPBarrierReply(unittest.TestCase):
         eq_(msg_len['val'], res.msg_len)
         eq_(xid['val'], res.xid)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid',)
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         # Not used.
         pass
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -4058,34 +3852,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPFlowRemoved(unittest.TestCase):
         eq_(tp_src['val'], match.tp_src)
         eq_(tp_dst['val'], match.tp_dst)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid',
-                 'match', 'cookie', 'priority', 'reason',
-                 'duration_sec', 'duration_nsec',
-                 'idle_timeout', 'packet_count', 'byte_count')
-
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-        eq_(str(cookie['val']), check['cookie'])
-        eq_(str(priority['val']), check['priority'])
-        eq_(str(reason['val']), check['reason'])
-        eq_(str(duration_sec['val']), check['duration_sec'])
-        eq_(str(duration_nsec['val']), check['duration_nsec'])
-        eq_(str(idle_timeout['val']), check['idle_timeout'])
-        eq_(str(packet_count['val']), check['packet_count'])
-        eq_(str(byte_count['val']), check['byte_count'])
-
     def test_serialize(self):
         # Not used.
         pass
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -4161,23 +3927,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPQueueGetConfigReply(unittest.TestCase):
         eq_(queue_id['val'], queue.queue_id)
         eq_(len_['val'], queue.len)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid',)
-
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         # Not used.
         pass
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -4261,23 +4010,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPDescStatsReply(unittest.TestCase):
         eq_(serial_num, body.serial_num)
         eq_(dp_desc, body.dp_desc)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid',)
-
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         # Not used.
         pass
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -4428,23 +4160,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPFlowStatsReply(unittest.TestCase):
         eq_(port['val'], action.port)
         eq_(max_len['val'], action.max_len)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid',)
-
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         # Not used.
         pass
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -4525,23 +4240,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPAggregateStatsReply(unittest.TestCase):
         eq_(byte_count['val'], body.byte_count)
         eq_(flow_count['val'], body.flow_count)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid',)
-
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         # Not used.
         pass
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -4635,23 +4333,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPTableStatsReply(unittest.TestCase):
         eq_(lookup_count['val'], body.lookup_count)
         eq_(matched_count['val'], body.matched_count)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid',)
-
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         # Not used.
         pass
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -4775,23 +4456,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPPortStatsReply(unittest.TestCase):
         eq_(rx_crc_err['val'], body.rx_crc_err)
         eq_(collisions['val'], body.collisions)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid',)
-
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         # Not used.
         pass
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -4879,23 +4543,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPQueueStatsReply(unittest.TestCase):
         eq_(tx_packets['val'], body.tx_packets)
         eq_(tx_errors['val'], body.tx_errors)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid',)
-
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         # Not used.
         pass
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -4964,23 +4611,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; class TestOFPVendorStatsReply(unittest.TestCase):
         body = res.body[0]
         eq_(specific_data, body)
 
-        # test __str__()
-        list_ = ('version:', 'msg_type', 'xid',)
-
-        check = {}
-        str_ = str(res)
-        str_ = str_.rsplit()
-
-        i = 0
-        for s in str_:
-            if s in list_:
-                check[str_[i]] = str_[i + 1]
-            i += 1
-
-        eq_(hex(version['val']).find(check['version:']), 0)
-        eq_(hex(msg_type['val']).find(check['msg_type']), 0)
-        eq_(hex(xid['val']).find(check['xid']), 0)
-
     def test_serialize(self):
         # Not used.
         pass
&lt;/pre&gt;</description>
    <dc:creator>YAMADA Hideki</dc:creator>
    <dc:date>2013-05-21T04:13:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2876">
    <title>Re: question about ryu</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2876</link>
    <description>&lt;pre&gt;
Simple isolation doesn't support live-migration.
In case of Simple vlan case, it up to OVS mac learning and
guest VM seinding GARP.
In case of GRE tunneling case, ryu/app/gre_tunnel.GRETunnel._vm_port_add.
grep it with "live-migration"



By detecting OVS port with same quantum port uuid and mac address which
are stored in ovsdb as external-id.
When live-migration, there are two ovs ports with same quantum port uuid
and mac address.

thanks,


&lt;/pre&gt;</description>
    <dc:creator>Isaku Yamahata</dc:creator>
    <dc:date>2013-05-20T07:28:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2875">
    <title>Re: question about ryu</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2875</link>
    <description>&lt;pre&gt;thanks a lot for the information!

Also,can i ask which part of the code is supporting live migration as the
document says?

https://github.com/osrg/ryu/wiki/Details-of-Ryu-in-cooperation-with-OpenStack-Grizzly

how does ryu know vm is about to migrate?


Thanks,

Allen



2013/5/20 Isaku Yamahata &amp;lt;yamahata-jCdQPDEk3idL9jVzuh4AOg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d_______________________________________________
Ryu-devel mailing list
Ryu-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/ryu-devel
&lt;/pre&gt;</description>
    <dc:creator>hsin han Liu</dc:creator>
    <dc:date>2013-05-20T07:10:57</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2874">
    <title>Re: question about ryu</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2874</link>
    <description>&lt;pre&gt;
For internal, please refer to
https://github.com/osrg/ryu/wiki/Details-of-Ryu-in-cooperation-with-OpenStack-Grizzly

They are designed to used with openstack. The easy way is use devstack
or pre-build VM image
https://github.com/osrg/ryu/wiki/configuration_openstack_grizzly_with_ryu
https://github.com/osrg/ryu/wiki/RYU-OpenStack-Grizzly-environment-VM-image-file-HOWTO



Not sure what you'd like to achieve it with Ryu.

thanks,





&lt;/pre&gt;</description>
    <dc:creator>Isaku Yamahata</dc:creator>
    <dc:date>2013-05-20T02:10:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2873">
    <title>Re: VRRP</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2873</link>
    <description>&lt;pre&gt;
Not yet. The implementation needs to be integrated into Openstack and router
implementation. Patches are welcome.



No, you can't. In case of single node, the tunnel isn't used as optimization
because the packet is forwarded directly from one VM to another
VM in OVS bridge of the physical machine.





&lt;/pre&gt;</description>
    <dc:creator>Isaku Yamahata</dc:creator>
    <dc:date>2013-05-20T02:05:52</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2872">
    <title>question about ryu</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2872</link>
    <description>&lt;pre&gt;Hello


1.want to know more about ryu/app/simple_isolation.py and
ryu/app/simple_vlan.py ,also how to use it?

2.does ryu support vlan construction like
http://openvswitch.org/support/config-cookbooks/vlan-configuration-cookbook/
without openstack?


Thanks,

Allen
------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d_______________________________________________
Ryu-devel mailing list
Ryu-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/ryu-devel
&lt;/pre&gt;</description>
    <dc:creator>hsin han Liu</dc:creator>
    <dc:date>2013-05-19T07:17:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2871">
    <title>VRRP</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2871</link>
    <description>&lt;pre&gt;Hi,

I just wondering if there is an app which ready to use for VRRP case.
The test seems works (https://github.com/osrg/ryu/wiki/Test-VRRP), when it
will publish to the ryu/app directory? Is it possible to run that VRRP with
network from openstack? One more, how to capture GRE tunnel packet from
single node installation? I found OF packet but no GRE. Thanks
------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d_______________________________________________
Ryu-devel mailing list
Ryu-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/ryu-devel
&lt;/pre&gt;</description>
    <dc:creator>Agung Ridwan SN</dc:creator>
    <dc:date>2013-05-18T08:33:23</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2870">
    <title>Re: Testing RYU</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2870</link>
    <description>&lt;pre&gt;Fujita,

Thanks a lot for the links and other information. Let me go through the
information and update.

Thanks,
Kiran


On Fri, May 17, 2013 at 1:54 PM, FUJITA Tomonori &amp;lt;
fujita.tomonori-Zyj7fXuS5i5L9jVzuh4AOg&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d_______________________________________________
Ryu-devel mailing list
Ryu-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f&amp;lt; at &amp;gt;public.gmane.org
https://lists.sourceforge.net/lists/listinfo/ryu-devel
&lt;/pre&gt;</description>
    <dc:creator>Kiran Kumar</dc:creator>
    <dc:date>2013-05-18T05:41:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2869">
    <title>Re: Using OFPQueueGetConfigRequest</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2869</link>
    <description>&lt;pre&gt;On Fri, 17 May 2013 11:29:53 +0200
Philipp Aeschlimann &amp;lt;aepp-xXYtEe5Xh1A&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:


Applied, thanks!

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
&lt;/pre&gt;</description>
    <dc:creator>FUJITA Tomonori</dc:creator>
    <dc:date>2013-05-17T21:23:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2868">
    <title>[PATCH] docs: fix ryu module import</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2868</link>
    <description>&lt;pre&gt;readthedocs.org complains about the failure about ryu module import.

=
From: FUJITA Tomonori &amp;lt;fujita.tomonori-Zyj7fXuS5i5L9jVzuh4AOg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
Date: Sat, 18 May 2013 05:36:21 +0900
Subject: [PATCH] docs: fix import

Signed-off-by: FUJITA Tomonori &amp;lt;fujita.tomonori-Zyj7fXuS5i5L9jVzuh4AOg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 doc/source/conf.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/doc/source/conf.py b/doc/source/conf.py
index ebccb2c..4caf9b0 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -12,12 +12,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 # serve to show the default.
 
 import sys, os
-from ryu import version as ryu_version
 
 # If extensions (or modules to document with autodoc) are in another directory,
 # add these directories to sys.path here. If the directory is relative to the
 # documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.insert(0, os.path.abspath('.'))
+sys.path.insert(0, os.path.abspath('../..'))
+
+from ryu import version as ryu_version
 
 # -- General configuration -----------------------------------------------------
 
&lt;/pre&gt;</description>
    <dc:creator>FUJITA Tomonori</dc:creator>
    <dc:date>2013-05-17T21:00:50</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2867">
    <title>Re: [PATCH] app/quantum_adapter: unbreak quantum change</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2867</link>
    <description>&lt;pre&gt;On Fri, 17 May 2013 10:08:51 +0900
Isaku Yamahata &amp;lt;yamahata-jCdQPDEk3idL9jVzuh4AOg&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:


Applied.

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
&lt;/pre&gt;</description>
    <dc:creator>FUJITA Tomonori</dc:creator>
    <dc:date>2013-05-17T20:58:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2866">
    <title>Re: [PATCH] app/gre_tunnel: pylint</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2866</link>
    <description>&lt;pre&gt;On Fri, 17 May 2013 10:08:50 +0900
Isaku Yamahata &amp;lt;yamahata-jCdQPDEk3idL9jVzuh4AOg&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:


Applied.

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
&lt;/pre&gt;</description>
    <dc:creator>FUJITA Tomonori</dc:creator>
    <dc:date>2013-05-17T20:58:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2865">
    <title>Re: [PATCH 0/2] RFC: OFPxxx -&gt; string conversion</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2865</link>
    <description>&lt;pre&gt;On Wed, 15 May 2013 16:27:16 +0900
YAMAMOTO Takashi &amp;lt;yamamoto-jCdQPDEk3idL9jVzuh4AOg&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:


Applied, thanks.

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
&lt;/pre&gt;</description>
    <dc:creator>FUJITA Tomonori</dc:creator>
    <dc:date>2013-05-17T20:57:24</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2864">
    <title>Re: [PATCH] use dpid_to_str in some places</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2864</link>
    <description>&lt;pre&gt;On Wed, 15 May 2013 10:22:37 +0900
YAMAMOTO Takashi &amp;lt;yamamoto-jCdQPDEk3idL9jVzuh4AOg&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:


Applied, thanks.

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
&lt;/pre&gt;</description>
    <dc:creator>FUJITA Tomonori</dc:creator>
    <dc:date>2013-05-17T20:57:13</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2863">
    <title>Re: Testing RYU</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2863</link>
    <description>&lt;pre&gt;Hi,

On Thu, 16 May 2013 10:41:53 -0700
Kiran Kumar &amp;lt;kirankumar.pnm-Re5JQEeQqe8AvxtiuMwx3w&amp;lt; at &amp;gt;public.gmane.org&amp;gt; wrote:


The following works for you?

https://github.com/osrg/ryu/wiki/OpenFlow_Tutorial


Not tied. OpenStack is one of our applications. You can find some in
app directory, for example, we have firewall application:

https://github.com/osrg/ryu/wiki/Third-Party-Tools,-Etc.


Yes. Ryu supports OF1.0 with Nicira extentions, OF1.2, OF1.3. Ryu also
support OVSDB JSON protocol. You can fully control OVS via Ryu.


Not much. We are still working on docs the internal of Ryu.

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
&lt;/pre&gt;</description>
    <dc:creator>FUJITA Tomonori</dc:creator>
    <dc:date>2013-05-17T20:54:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2862">
    <title>[PATCH v2 5/6] snmp/mib/instances: add __RYU-MIB modulewhich is currently empty</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2862</link>
    <description>&lt;pre&gt;Signed-off-by: Isaku Yamahata &amp;lt;yamahata-jCdQPDEk3idL9jVzuh4AOg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
 ryu/services/snmp/mibs/instances/__RYU-MIB.py |   17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 ryu/services/snmp/mibs/instances/__RYU-MIB.py

diff --git a/ryu/services/snmp/mibs/instances/__RYU-MIB.py b/ryu/services/snmp/mibs/instances/__RYU-MIB.py
new file mode 100644
index 0000000..faa055c
--- /dev/null
+++ b/ryu/services/snmp/mibs/instances/__RYU-MIB.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2013 Isaku Yamahata &amp;lt;yamahata at private email ne jp&amp;gt;
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# nothing yet
&lt;/pre&gt;</description>
    <dc:creator>Isaku Yamahata</dc:creator>
    <dc:date>2013-05-17T11:11:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.network.ryu.devel/2861">
    <title>[PATCH v2 2/6] services/snmp_agent: create snmp agentmodule</title>
    <link>http://permalink.gmane.org/gmane.network.ryu.devel/2861</link>
    <description>&lt;pre&gt;Signed-off-by: Isaku Yamahata &amp;lt;yamahata-jCdQPDEk3idL9jVzuh4AOg&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
---
Changes v1 -&amp;gt; v2:
- added ryu/services/snmp/mib and ryu/services/snmp/mib/instances
---
 ryu/services/snmp/__init__.py                |   15 +++++++++++++++
 ryu/services/snmp/mibs/__init__.py           |   15 +++++++++++++++
 ryu/services/snmp/mibs/instances/__init__.py |   15 +++++++++++++++
 3 files changed, 45 insertions(+)
 create mode 100644 ryu/services/snmp/__init__.py
 create mode 100644 ryu/services/snmp/mibs/__init__.py
 create mode 100644 ryu/services/snmp/mibs/instances/__init__.py

diff --git a/ryu/services/snmp/__init__.py b/ryu/services/snmp/__init__.py
new file mode 100644
index 0000000..340a423
--- /dev/null
+++ b/ryu/services/snmp/__init__.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2013 Isaku Yamahata &amp;lt;yamahata at private email ne jp&amp;gt;
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/ryu/services/snmp/mibs/__init__.py b/ryu/services/snmp/mibs/__init__.py
new file mode 100644
index 0000000..340a423
--- /dev/null
+++ b/ryu/services/snmp/mibs/__init__.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2013 Isaku Yamahata &amp;lt;yamahata at private email ne jp&amp;gt;
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
diff --git a/ryu/services/snmp/mibs/instances/__init__.py b/ryu/services/snmp/mibs/instances/__init__.py
new file mode 100644
index 0000000..340a423
--- /dev/null
+++ b/ryu/services/snmp/mibs/instances/__init__.py
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+# Copyright (C) 2013 Nippon Telegraph and Telephone Corporation.
+# Copyright (C) 2013 Isaku Yamahata &amp;lt;yamahata at private email ne jp&amp;gt;
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+# implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
&lt;/pre&gt;</description>
    <dc:creator>Isaku Yamahata</dc:creator>
    <dc:date>2013-05-17T11:11:40</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.network.ryu.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.network.ryu.devel</link>
  </textinput>
</rdf:RDF>
