To enable "--user-flags" option, please update Ryu with the latest Git source from GitHub, first.
And user_flags.py is supposed to be created by user, so not included in Ryu source.
The following commands? If so, yes.
Post by Douglas Harewood-GillApologies if I am asking really obvious stuff.
Thanks again,
Douglas
Hi again. I will see how I get on with the instructions you have sent. Regardless of what
happens, I will update you.
Cheers
Douglas
Hi,
Thanks, we are waiting for your report.
FYI, with the following patch, "--user-flags" option for adding your own CLI options
without modification and re-installing, but please note this patch has not be merged
into upstream yet.
This feature should be included in next release on early next month, I guess.
https://sourceforge.net/p/ryu/mailman/ryu-devel/thread/1497504689-15184-2-git-send-email-iwase.yusuke0%40gmail.com/#msg35895311
<https://sourceforge.net/p/ryu/mailman/ryu-devel/thread/1497504689-15184-2-git-send-email-iwase.yusuke0%40gmail.com/#msg35895311>
Thanks,
Iwase
Hi again. Ok, can you talk me through the second part, lets try that and see what
happens. Assuming of course it is still relevant after what we have already tried.
"So If you want to define your own CLI option,
Post by Iwase Yusuke0. Checkout Ryu Git src (if needed).
$ git clone https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git> <https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git>> <https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git> <https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git>>> <https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git> <https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git>> <https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git> <https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git>>>>
Post by Iwase Yusuke$ cd ryu
1. Add your definitions into "ryu/flags.py".
The syntax is the same as "oslo.config".
https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>
<https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>>
<https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>
<https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>>>
<https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>
<https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>>
<https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>
<https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>>>>
Post by Iwase Yusuke2. Re-install Ryu at the top of Ryu directory.
$ pip install -r tools/pip-requires
$ python setup.py install
3. Confirm your own option is inserted into ryu-manager.
$ ryu-manager --help"
Cheers
Douglas
Hi Douglas,
Hi again. Apologies for the delay in responding and thank you for getting back to
me so quickly.
I finally figured out what you were telling me. So, below is what I found for each
step of the first thing you suggested.
After using "Python #" to enter the interactive interpreter I typed "import ryu"
and I received no errors, it just went to a new line with this ">>>".
For "ryu.version", it told me my version is 4.12.
For "ryu.app import ofctl_rest", and I I received no errors, it just went to a new
line with this ">>>".
Good, it seems Ryu is installed as expected.
Then, it is weired to show the following "AttributeError"...
AttributeError: 'module' object has not attribute "ofctl_rest"
"manager.main(args=['ryu.app.ofctl_rest'] + sys.argv)" will try to load "ofctl_rest"
from "ryu.app", but "ryu.app import ofctl_rest" does not return any error...
Thanks,
Iwase
Cheers
Douglas
Hi Douglas,
Post by Iwase YusukeHello again. Ok, My apologies bit I really need you to simplify this for me.
Starting with the first bit.
Post by Iwase Yusuke1) Ryu is definitely installed but do you know the command to check the
version? I have looked online but I can't find anything specific.
Post by Iwase Yusuke2) Is there also a way to check that Ryu is installed correctly?
3) What do you mean by "import ryu" and "ryu.version"?
4) Also, "from ryu.app import ofctl_rest"?
The commands I wrote on the previous mail can check these points.
"python" command on your shell starts Python interpreter with "Interactive Mode"
https://docs.python.org/2/tutorial/interpreter.html#interactive-mode
<https://docs.python.org/2/tutorial/interpreter.html#interactive-mode>
<https://docs.python.org/2/tutorial/interpreter.html#interactive-mode
<https://docs.python.org/2/tutorial/interpreter.html#interactive-mode>>
<https://docs.python.org/2/tutorial/interpreter.html#interactive-mode
<https://docs.python.org/2/tutorial/interpreter.html#interactive-mode>
<https://docs.python.org/2/tutorial/interpreter.html#interactive-mode
<https://docs.python.org/2/tutorial/interpreter.html#interactive-mode>>>
"import ryu" and followed by other words are command (source code) for Python
interactive interpreter.
- "import ryu" checks whether Ryu is installed correctly or not.
- "ryu.version" shows version (e.g., '4.14').
- "from ryu.app import ofctl_rest" checks whether "ofctl_rest" can be imported
from your Python or not.
$ python # start Python interactive interpreter
Post by Iwase YusukePost by Douglas Harewood-Gillimport ryu # checks if "ryu" is installed or not
ryu.version # show version info
'4.14'
Post by Iwase YusukePost by Douglas Harewood-Gillfrom ryu.app import ofctl_rest # Can import "ofctl_rest"?
Thanks,
Iwase
Post by Iwase YusukeI will see if I can work through this first to see if I can get it working
this way before I look at the second bit. :D
Post by Iwase YusukeThank you for your time and patience so far.
Cheers
Douglas
Hi Douglas,
'module' object has not attribute "ofctl_rest" but it was worth trying so thank you.
Post by Iwase YusukeHmmm... 'ryu.app.ofctl_rest' means the Python module path to Ryu's
built-in app.
Post by Iwase YusukeIf it got AttributeError, Ryu might not be installed successfully.
I recommend you to confirm Ryu is installed
$ python
Post by Douglas Harewood-Gillimport ryu # Can import "ryu"?
ryu.version # Which version?
'4.14'
Post by Douglas Harewood-Gillfrom ryu.app import ofctl_rest # Can import "ofctl_rest"?
Regarding the instructions you sent me for altering Ryu, is there any
chance you could explain them a bit more please? I am having a little trouble following them
currently.
Post by Iwase YusukeSure.
Ryu defines the CLI options in some modules, the most accessible among
them is
Post by Iwase Yusuke"ryu/flags.py", I guess.
https://github.com/osrg/ryu/blob/master/ryu/flags.py
<https://github.com/osrg/ryu/blob/master/ryu/flags.py>
<https://github.com/osrg/ryu/blob/master/ryu/flags.py
<https://github.com/osrg/ryu/blob/master/ryu/flags.py>>
<https://github.com/osrg/ryu/blob/master/ryu/flags.py
<https://github.com/osrg/ryu/blob/master/ryu/flags.py>
<https://github.com/osrg/ryu/blob/master/ryu/flags.py
<https://github.com/osrg/ryu/blob/master/ryu/flags.py>>>
<https://github.com/osrg/ryu/blob/master/ryu/flags.py
<https://github.com/osrg/ryu/blob/master/ryu/flags.py>
<https://github.com/osrg/ryu/blob/master/ryu/flags.py
<https://github.com/osrg/ryu/blob/master/ryu/flags.py>>
<https://github.com/osrg/ryu/blob/master/ryu/flags.py
<https://github.com/osrg/ryu/blob/master/ryu/flags.py>
<https://github.com/osrg/ryu/blob/master/ryu/flags.py
<https://github.com/osrg/ryu/blob/master/ryu/flags.py>>>>
Post by Iwase YusukeBut to reflect your changes, you need to "re-install" Ryu before running your
applications.
So If you want to define your own CLI option,
0. Checkout Ryu Git src (if needed).
$ git clone https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git> <https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git>> <https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git> <https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git>>> <https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git> <https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git>> <https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git> <https://github.com/osrg/ryu.git
<https://github.com/osrg/ryu.git>>>>
Post by Iwase Yusuke$ cd ryu
1. Add your definitions into "ryu/flags.py".
The syntax is the same as "oslo.config".
https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>
<https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>>
<https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>
<https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>>>
<https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>
<https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>>
<https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>
<https://docs.openstack.org/developer/oslo.config/
<https://docs.openstack.org/developer/oslo.config/>>>>
Post by Iwase Yusuke2. Re-install Ryu at the top of Ryu directory.
$ pip install -r tools/pip-requires
$ python setup.py install
3. Confirm your own option is inserted into ryu-manager.
$ ryu-manager --help
Thanks,
Iwase
Post by Douglas Harewood-GillThank you :)
Douglas
Hi Douglas,
Hmmm... how about swapping the order of arguments?
e.g)
manager.main(args=['ryu.app.ofctl_rest'] + sys.argv)
FYI, I guess Dr.Bernstein did "hack"(used "ryu.cmd.manager"
directly) in order to
Post by Iwase YusukePost by Douglas Harewood-Gilladd original CLI option like "--netfile" and "--widest_paths".
On the other hand, you can add your original CLI option as following.
$ git diff
diff --git a/ryu/flags.py b/ryu/flags.py
index 69eb3d2..ebf16c8 100644
--- a/ryu/flags.py
+++ b/ryu/flags.py
@@ -112,3 +112,10 @@ CONF.register_cli_opts([
help='Initial Router ID used by Zebra protocol service '
'(default: %s)' % DEFAULT_ZSERV_ROUTER_ID),
], group='zapi')
+
+CONF.register_cli_opts([
+ cfg.StrOpt(
+ 'netfile', default=None, help='network json file'),
+ cfg.BoolOpt(
+ 'widest_paths', default=False, help='Use widest path.'),
+])
Please note you need to re-install Ryu after the above modifications.
$ python setup.py install
Then, with this modification, you can run
"l2DestForwardStaticRyu.py" as the
Post by Iwase YusukePost by Douglas Harewood-Gill$ ryu-manager --help
...(snip)...
--netfile NETFILE network json file
...(snip)...
--widest_paths Use widest path.
...(snip)...
$ ryu-manager l2DestForwardStaticRyu.py ryu.app.ofctl_rest
--netfile=ExNetwithLoops1A.json --widest_paths
Post by Iwase YusukePost by Douglas Harewood-GillThanks,
Iwase
Hi Iwase and thank you for getting back to me. The author of this
program, Dr Bernstein added this line "from ryu.cmd import manager" which as far as I
understand directly starts Ryu from within side L2DestForwardStaticRyu.py. Should be around
line 29 I think. He had to do this he told me because he could not start the program in the
conventional way because he needed to import the "ExNetwithLoops!A.json file" for the
topology with static mac and IP addresses. Apparently he could not do this just using the
standard Ryu format of starting the Ryu Manager with the Controller file and then with REST.
Post by Iwase YusukePost by Douglas Harewood-GillI tried your suggestion by removing "manager.main(args=sys.argv)"
from " if __name__ == "__main__": "
and using the following:-
"manager.main(args=sys.argv + ['ryu.app.ofctl_rest'])" and I got
the following error message in the terminal.
ryu.app.ofctl_rest"
Post by Iwase YusukePost by Douglas Harewood-GillAny advice would be welcome. I am obviously going to see what I
can find here and will let you know if I find anything relevant.
Post by Iwase YusukePost by Douglas Harewood-GillCheers
Douglas
Hi Douglas,
I checked "L2DestForwardStaticRyu.py", and it seems to be
"hacked" to run
Post by Iwase YusukePost by Douglas Harewood-Gillapp without "ryu-manager".
To start the built-in Ryu application with
"L2DestForwardStaticRyu.py",
Post by Iwase YusukePost by Douglas Harewood-Gillhow about the following?
The following appends to "ofctl_rest" app to the argument of
"manager".
Post by Iwase YusukePost by Douglas Harewood-Gill- manager.main(args=sys.argv)
+ manager.main(args=sys.argv + ['ryu.app.ofctl_rest'])
Thanks,
Iwase
Hi Iwase. Thank you for contacting me and apologies for my
delay in responding. I have tried what you have suggested but the problem I have is that the
L2DestForwardStaticRyu.py program is designed to run on its own. It imports the the ryu.cmd
import manager and uses the Ryu controller but you start it by typing "|python
l2DestForwardStaticRyu.py --netfile=ExNetwithLoops1A.json" |where it imports
=ExNetWithLoops1A.Json.
Post by Iwase YusukePost by Douglas Harewood-GillWhen this program is started, it automatically loads Ryu
and implements the code within this program. I am not sure how to start the this and
ryu.app.ofctl_rest at the same time. I have tried starting them separately in different
terminals but that did not work.
Post by Iwase YusukePost by Douglas Harewood-GillThank you also for the information you have sent. I have
looked at it before but I do not know how to implement this with my custom code. I have been
looking for examples but they seem to be few and far between. Any advice as always would be
greatly appreciated.
Post by Iwase YusukePost by Douglas Harewood-GillThanks again.
Douglas
On 8 June 2017 at 01:27, Iwase Yusuke
Hi Douglas,
Excuse me for cutting in.
Just for getting flow statistics, how about running
your app and ofctl_rest
Post by Iwase YusukePost by Douglas Harewood-Gilltogether as Fujimoto said.
e.g.)
$ ryu-manager your_app.py ryu.app.ofctl_rest
If you want to implement your own REST APIs on your
app, Ryu-Book is the
Post by Iwase YusukePost by Douglas Harewood-Gillmost helpful as far as I know.
(You might already be aware of this though...)
http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>
<http://osrg.github.io/ryu-book/en/html/rest_api.html
<http://osrg.github.io/ryu-book/en/html/rest_api.html>>>>>>>
simple_switch_13.py for getting
Post by Iwase YusukePost by Douglas Harewood-Gillflow statistics.
The usage of "WSGI" framework is described on Ryu-Book.
$ git diff
diff --git a/ryu/app/simple_switch_13.py
b/ryu/app/simple_switch_13.py
Post by Iwase YusukePost by Douglas Harewood-Gillindex 3e7c598..f33e474 100644
--- a/ryu/app/simple_switch_13.py
+++ b/ryu/app/simple_switch_13.py
@@ -13,6 +13,8 @@
# See the License for the specific language governing
permissions and
Post by Iwase YusukePost by Douglas Harewood-Gill# limitations under the License.
+import json
+
from ryu.base import app_manager
from ryu.controller import ofp_event
from ryu.controller.handler import CONFIG_DISPATCHER,
MAIN_DISPATCHER
Post by Iwase YusukePost by Douglas Harewood-Gill@@ -21,14 +23,26 @@ from ryu.ofproto import ofproto_v1_3
from ryu.lib.packet import packet
from ryu.lib.packet import ethernet
from ryu.lib.packet import ether_types
+from ryu.app.ofctl import api as ofctl_api
+from ryu.app.wsgi import ControllerBase
+from ryu.app.wsgi import Response
+from ryu.app.wsgi import route
+from ryu.app.wsgi import WSGIApplication
+
+
+_URI_PREFIX = '/simpleswitch/stats/{dpid}'
OFP_VERSIONS = [ofproto_v1_3.OFP_VERSION]
+ _CONTEXTS = {'wsgi': WSGIApplication}
super(SimpleSwitch13, self).__init__(*args,
**kwargs)
Post by Iwase YusukePost by Douglas Harewood-Gillself.mac_to_port = {}
+ wsgi = kwargs['wsgi']
+ wsgi.register(SimpleSwitchController,
+ {SimpleSwitch13.__name__: self})
@set_ev_cls(ofp_event.EventOFPSwitchFeatures,
CONFIG_DISPATCHER)
Post by Iwase YusukePost by Douglas Harewood-Gill@@ -117,3 +131,32 @@ class
out = parser.OFPPacketOut(datapath=datapath,
buffer_id=msg.buffer_id,
actions=actions, data=data)
Post by Iwase YusukePost by Douglas Harewood-Gilldatapath.send_msg(out)
+
+ datapath = ofctl_api.get_datapath(self, dpid)
+ return None
+
+ parser = datapath.ofproto_parser
+ req = parser.OFPFlowStatsRequest(datapath)
+
+ rep = ofctl_api.send_msg(
+ app=self, msg=req,
+ reply_cls=parser.OFPFlowStatsReply,
reply_multi=True)
Post by Iwase YusukePost by Douglas Harewood-Gill+ return [r.to_jsondict() for r in rep]
+
+
+
+ super(SimpleSwitchController,
self).__init__(req, link, data, **config)
data[SimpleSwitch13.__name__]
Post by Iwase YusukePost by Douglas Harewood-Gill+
+ dpid = int(str(kwargs['dpid']))
+ ret = self.simple_switch_app.get_flow_stats(dpid)
+ return Response(status=404)
+
+ return
Response(content_type='application/json', body=json.dumps(ret))
Post by Iwase YusukePost by Douglas Harewood-Gill$ ryu-manager ryu/app/simple_switch_13.py
Registered VCS backend: git
Registered VCS backend: hg
Registered VCS backend: svn
Registered VCS backend: bzr
loading app ryu/app/simple_switch_13.py
loading app ryu.controller.ofp_handler
loading app ryu.app.ofctl.service
loading app ryu.controller.ofp_handler
creating context wsgi
instantiating app ryu.app.ofctl.service of OfctlService
instantiating app ryu/app/simple_switch_13.py of
SimpleSwitch13
Post by Iwase YusukePost by Douglas Harewood-Gillinstantiating app ryu.controller.ofp_handler of OFPHandler
(10332) wsgi starting up on http://0.0.0.0:8080
...
$ curl -X GET
http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>>>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>>>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>>>>>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>>>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1 <http://localhost:8080/simpleswitch/stats/1>>
<http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>>>>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>>>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>> <http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>
<http://localhost:8080/simpleswitch/stats/1
<http://localhost:8080/simpleswitch/stats/1>>>>>>> | python -m json.tool
Post by Iwase YusukePost by Douglas Harewood-Gill[
{
"OFPFlowStatsReply": {
"body": [
{
"OFPFlowStats": {
"byte_count": 140,
"cookie": 0,
"duration_nsec": 771000000,
"duration_sec": 1,
"flags": 0,
"hard_timeout": 0,
"idle_timeout": 0,
"instructions": [
{
"OFPInstructionActions": {
"actions": [
{
"OFPActionOutput": {
"max_len": 65535,
4294967293,
Post by Iwase YusukePost by Douglas Harewood-Gill"type": 0
}
}
],
"len": 24,
"type": 4
}
}
],
"length": 80,
"match": {
"OFPMatch": {
"length": 4,
"oxm_fields": [],
"type": 1
}
},
"packet_count": 2,
"priority": 0,
"table_id": 0
}
}
],
"flags": 0,
"type": 1
}
}
]
Thanks,
Iwase
Post by Douglas Harewood-GillHi there. That is fantastic. Sounds exactly like what
I am looking for so thank you.
a link but how do you implement this with custom Ryu controller code?
Post by Iwase YusukePost by Douglas Harewood-GillPost by Douglas Harewood-GillMy apologies if I am asking something really obvious.
Cheers
Douglas
On 7 June 2017 at 01:15, Fujimoto Satoshi
Hi, Douglas
Ryu has ofctl_rest.py, which is a sample
application and provides REST API to get flow statistics.
http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>>>>
Post by Iwase Yusuke<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html
<http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html>>>>>>>>
implement your own REST API in your app.
and Ryu and I was wondering if anyone could give me some advice.
(L2DestForwardStaticRyu.py) provided by Dr Grey Bernstein
(https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu
<https://www.grotto-networking.com/SDNfun.html#programming-switches-with-ryu>>>>>>>>) for
shortest path computation for a full Mesh network in Mininet but the example provided does
not include REST which I require to be able to collect flow statistics such as the flows in
each router,
Post by Iwase Yusukebandwidth, latency, etc.
exception of (https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>>>>
Post by Iwase Yusuke<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>
<https://osrg.github.io/ryu-book/en/html/rest_api.html
<https://osrg.github.io/ryu-book/en/html/rest_api.html>>>>>>>>) which seems
Post by Iwase YusukePost by Douglas Harewood-Gilloverly specific, I am unable to find a good example that would
allow me to work out how to integrate REST into the above Ryu control program.
or can provide some examples, I would be most grateful.
Post by Iwase YusukePost by Douglas Harewood-GillPost by Douglas Harewood-GillPost by Douglas Harewood-GillThank you for your time.
Best Regards
Douglas
--
*Douglas Harewood-Gill MSc MIET*
CDT Student in Communications (PhD), University
of Bristol
Building, Woodland Road, Clifton, Bristol. BS8 1UB
------------------------------------------------------------------------------
the world's most
http://sdm.link/slashdot
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>>>
<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>>>>
<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>>>
<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>>>>>
<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>>>
<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>>>>
<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>>>
<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>>>>>>
<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>>>
<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>>>>
<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>>>
<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>>>>>
<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>>>
<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>>>>
<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>>>
<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>>>>>>>
Post by Iwase Yusuke<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>>>
<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>>>>
<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>>>
<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>>>>>
<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>>>
<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>>>>
<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>>>
<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>>>>>>
<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>>>
<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>>>>
<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>>>
<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>>>>>
<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>>>
<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>>>>
<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>>>
<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>>>>>>>>
Post by Iwase YusukePost by Douglas Harewood-GillPost by Douglas Harewood-Gill--
*Douglas Harewood-Gill MSc MIET*
CDT Student in Communications (PhD), University of
Bristol
Post by Iwase YusukePost by Douglas Harewood-GillPost by Douglas Harewood-GillPost-Graduate Student (Taught and Research)
*
CDT Communications*
University of Bristol, Merchant Venturers' Building,
Woodland Road, Clifton, Bristol. BS8 1UB
------------------------------------------------------------------------------
world's most
http://sdm.link/slashdot
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>>>
<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>>>>
<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>>>
<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>>>>>
<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>>>
<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>>>>
<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>>>
<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>>>>>>
<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>>>
<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>>>>
<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>>>
<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>>>>>
<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>>>
<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>>>>
<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>>>
<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>>>>>>>
Post by Iwase YusukePost by Douglas Harewood-Gill--
*Douglas Harewood-Gill MSc MIET*
CDT Student in Communications (PhD), University of Bristol
Post-Graduate Student (Taught and Research)
*
CDT Communications*
University of Bristol, Merchant Venturers' Building,
Woodland Road, Clifton, Bristol. BS8 1UB
------------------------------------------------------------------------------
Post by Iwase YusukePost by Douglas Harewood-GillCheck 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
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>>>
<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>>>>
<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>>>
<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>>>>>
<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>>>
<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>>>>
<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>>>
<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>>>>>>
Post by Iwase YusukePost by Douglas Harewood-Gill--
*Douglas Harewood-Gill MSc MIET*
CDT Student in Communications (PhD), University of Bristol
Post-Graduate Student (Taught and Research)
*
CDT Communications*
University of Bristol, Merchant Venturers' Building, Woodland
Road, Clifton, Bristol. BS8 1UB
------------------------------------------------------------------------------
Post by Iwase YusukePost by Douglas Harewood-GillCheck 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
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>>>
<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>>>>
<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>>>
<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>>>>>
Post by Iwase YusukePost by Douglas Harewood-Gill--
*Douglas Harewood-Gill MSc MIET*
CDT Student in Communications (PhD), University of Bristol
Post-Graduate Student (Taught and Research)
*
CDT Communications*
University of Bristol, Merchant Venturers' Building, Woodland Road,
Clifton, Bristol. BS8 1UB
------------------------------------------------------------------------------
Post by Iwase YusukePost by Douglas Harewood-GillCheck 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
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>>>
<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>>>>
Post by Iwase Yusuke--
*Douglas Harewood-Gill MSc MIET*
CDT Student in Communications (PhD), University of Bristol
Post-Graduate Student (Taught and Research)
*
CDT Communications*
University of Bristol, Merchant Venturers' Building, Woodland Road, Clifton,
Bristol. BS8 1UB
Post by Iwase Yusukehttp://www.bristol.ac.uk/
------------------------------------------------------------------------------
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
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>>>
--
*Douglas Harewood-Gill MSc MIET*
CDT Student in Communications (PhD), University of Bristol
Post-Graduate Student (Taught and Research)
*
CDT Communications*
University of Bristol, Merchant Venturers' Building, Woodland Road, Clifton,
Bristol. BS8 1UB
http://www.bristol.ac.uk/
------------------------------------------------------------------------------
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
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>>
--
*Douglas Harewood-Gill MSc MIET*
CDT Student in Communications (PhD), University of Bristol
Post-Graduate Student (Taught and Research)
*
CDT Communications*
University of Bristol, Merchant Venturers' Building, Woodland Road, Clifton, Bristol. BS8 1UB
http://www.bristol.ac.uk/
------------------------------------------------------------------------------
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
https://lists.sourceforge.net/lists/listinfo/ryu-devel
<https://lists.sourceforge.net/lists/listinfo/ryu-devel>
--
*Douglas Harewood-Gill MSc MIET*
CDT Student in Communications (PhD), University of Bristol
Post-Graduate Student (Taught and Research)
*
CDT Communications*
University of Bristol, Merchant Venturers' Building, Woodland Road, Clifton, Bristol. BS8 1UB
http://www.bristol.ac.uk/
--
*Douglas Harewood-Gill MSc MIET*
CDT Student in Communications (PhD), University of Bristol
Post-Graduate Student (Taught and Research)
*
CDT Communications*
University of Bristol, Merchant Venturers' Building, Woodland Road, Clifton, Bristol. BS8 1UB
http://www.bristol.ac.uk/
------------------------------------------------------------------------------
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
https://lists.sourceforge.net/lists/listinfo/ryu-devel