That will do :)
Thanks a bunch!
-Ali
On Mon, Feb 16, 2015 at 7:43 PM, Yusuke Iwase <[email protected]>
wrote:
> Hi,
>
> How about this?
> (I use oslo.config lib)
>
>
> $ git diff
> diff --git a/ryu/app/simple_switch_13.py b/ryu/app/simple_switch_13.py
> index b9cbad0..cd89c7f 100644
> --- a/ryu/app/simple_switch_13.py
> +++ b/ryu/app/simple_switch_13.py
> @@ -21,6 +21,10 @@ from ryu.ofproto import ofproto_v1_3
> from ryu.lib.packet import packet
> from ryu.lib.packet import ethernet
>
> +import sys
> +import json
> +from oslo.config import cfg
> +
>
> class SimpleSwitch13(app_manager.RyuApp):
> OFP_VERSIONS = [ofproto_v1_3.OFP_VERSION]
> @@ -47,6 +51,24 @@ class SimpleSwitch13(app_manager.RyuApp):
> ofproto.OFPCML_NO_BUFFER)]
> self.add_flow(datapath, 0, match, actions)
>
> +
> + CONF = cfg.CONF
> + CONF.register_opts([
> + cfg.IntOpt('test-param_int', default=0),
> + cfg.StrOpt('test-param_str', default='default'),
> + cfg.StrOpt('test-param_jsn', default='None')])
> + CONF(sys.argv[1:])
> +
> + print 'test_param_int = %d' % CONF.test_param_int
> + print 'test_param_str = %s' % CONF.test_param_str
> + print 'test_param_jsn = %s' % CONF.test_param_jsn
> +
> + json_data = json.loads(CONF.test_param_jsn)
> + print 'json_data = %s' % json_data
> +
> + dumped_data = json.dumps(json_data)
> + print 'dumped_data = %s' % dumped_data
> +
> def add_flow(self, datapath, priority, match, actions,
> buffer_id=None):
> ofproto = datapath.ofproto
> parser = datapath.ofproto_parser
>
>
> # JSON data with one line.
> $ cat test_file.cfg
> [DEFAULT]
> test_parm_int=12345
> test_param_str=test
> test_param_jsn={ "switches" : [ { "dpid" : "b6-ad-fb-ca-08-45", "ports" :
> [ { "port-number" : 1, "vlans" : [101, 102, 103] }, { "port-number" : 2,
> "vlans" : [105] } ] } ] }
>
>
> # You can change config file with '--config-file' option.
> $ sudo ryu-manager --config-file test_file.cfg ryu.app.simple_switch_13
> [sudo] password for ryu:
> loading app ryu.app.simple_switch_13
> loading app ryu.controller.ofp_handler
> instantiating app ryu.app.simple_switch_13 of SimpleSwitch13
> instantiating app ryu.controller.ofp_handler of OFPHandler
> test_param_int = 0
> test_param_str = test
> test_param_jsn = { "switches" : [ { "dpid" : "b6-ad-fb-ca-08-45", "ports"
> : [ { "port-number" : 1, "vlans" : [101, 102, 103] }, { "port-number" : 2,
> "vlans" : [105] } ] } ] }
> json_data = {u'switches': [{u'ports': [{u'vlans': [101, 102, 103],
> u'port-number': 1}, {u'vlans': [105], u'port-number': 2}], u'dpid':
> u'b6-ad-fb-ca-08-45'}]}
> dumped_data = {"switches": [{"ports": [{"vlans": [101, 102, 103],
> "port-number": 1}, {"vlans": [105], "port-number": 2}], "dpid":
> "b6-ad-fb-ca-08-45"}]}
>
>
> Thanks
>
> On 2015年02月17日 09:13, A Sydney wrote:
> > Any feedback?
> >
> > Thanks,
> > Ali
> >
> > On Fri, Feb 13, 2015 at 10:34 AM, A Sydney <[email protected]
> <mailto:[email protected]>> wrote:
> >
> > Thanks for the quick reply :)
> >
> > Perhaps I should expound a bit...
> >
> > Below is an example of such a config file I'd like to pass to my ryu
> application: for each dpid, I'd like to track the associated VLANs
> allocated on each port (Please use the codepad link below if the format
> below is messed up). As shown, this config file can change quite a bit and
> hence reinstalling ryu after every change may not be ideal. Perhaps the
> "--config-file <fileLocation>" parameter can help? If yes, how would I use
> it?
> >
> > {
> > "switches" : [
> > {
> > "dpid" : "b6-ad-fb-ca-08-45",
> > "ports" : [
> > {
> > "port-number" : 1,
> > "vlans"
> : [101, 102, 103]
> > },
> > {
> > "port-number" : 2,
> > "vlans"
> : [105]
> > }
> > ]
> > }
> >
> > ]
> > }
> >
> > REF(same as above):
> > http://codepad.org/ZvMY9ySy
> >
> > Thanks,
> > Ali
> >
> > On Fri, Feb 13, 2015 at 3:36 AM, Yusuke Iwase <
> [email protected] <mailto:[email protected]>> wrote:
> >
> > Hi,
> >
> > Ryu uses oslo.config library.
> > You can use default Ryu configuration file (etc/ryu/ryu.conf) as
> follow.
> >
> > # Set params
> > $ vi etc/ryu/ryu.conf
> > ...
> > test_param1=12345
> > test_param2='test'
> > ...
> >
> > # Get params in your App
> > $ vi yourapp.py
> > ...
> > :
> > from ryu import cfg
> > :
> > class SimpleSwitch13(app_manager.RyuApp):
> > def __init__(self, *args, **kwargs):
> > super(SimpleSwitch13, self).__init__(*args, **kwargs)
> > :
> > CONF = cfg.CONF
> > CONF.register_opts([
> > cfg.IntOpt('test-param1', default=0),
> > cfg.StrOpt('test-param2', default='default')])
> > print 'test_param1 = %d' % CONF.test_param1
> > print 'test_param2 = %s' % CONF.test_param2
> > ...
> >
> > # Reinstall ryu
> > $ sudo python setup.py install
> >
> > # Run
> > $ ryu-manager ryu.app.simple_switch_13
> > loading app ryu.app.simple_switch_13
> > loading app ryu.controller.ofp_handler
> > instantiating app ryu.app.simple_switch_13 of SimpleSwitch13
> > instantiating app ryu.controller.ofp_handler of OFPHandler
> > test_param1 = 12345
> > test_param2 = test
> >
> > Thanks
> >
> > On 2015年02月13日 08:05, A Sydney wrote:
> > > Hi Ryu folks,
> > > I'd like to pass a configuration file to
> an OF 1.3 app (perhaps containing information of dpids and corresponding
> ports). The documentation says I could use "--config-file" to pass a file
> to an application, but how do I go about creating the file and extracting
> the contents from the application? Can I use json/xml? Perhaps someone
> can share an example of a config file?
> > >
> > > Thanks,
> > > Ali
> > >
> > >
> > >
> ------------------------------------------------------------------------------
> > > Dive into the World of Parallel Programming. The Go Parallel
> Website,
> > > sponsored by Intel and developed in partnership with Slashdot
> Media, is your
> > > hub for all things parallel software development, from weekly
> thought
> > > leadership blogs to news, videos, case studies, tutorials and
> more. Take a
> > > look and join the conversation now.
> http://goparallel.sourceforge.net/
> > >
> > >
> > >
> > > _______________________________________________
> > > Ryu-devel mailing list
> > > [email protected] <mailto:
> [email protected]>
> > > https://lists.sourceforge.net/lists/listinfo/ryu-devel
> > >
> >
> >
> >
>
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel