FYI, for the syntax of JSON is similar to the input of ofctl_rest.
http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html#modify-all-matching-flow-entries
On 2017年01月27日 11:20, Iwase Yusuke wrote:
> Hi,
>
> Currently, Ryu does not provides such feature, you need to implement it.
>
> But just an idea,
> JSON representation is might be convenient for such purpose, I guess.
> "ryu.lib.ofctl_v1_3" can accept JSON like dictionary as input,
> so you can describe flows as JSON.
>
> The following example installs flows at switch connection from JSON file.
>
> e.g.)
> $ cat sample_flows.json
> [
> {
> "dpid": 1,
> "match": {
> "in_port": 1
> },
> "actions": [
> {
> "type": "OUTPUT",
> "port": 2
> }
> ]
> },
> {
> "dpid": 1,
> "match": {
> "in_port": 2
> },
> "actions": [
> {
> "type": "OUTPUT",
> "port": 1
> }
> ]
> }
> ]
>
>
> $ git diff
> diff --git a/ryu/app/simple_switch_13.py b/ryu/app/simple_switch_13.py
> index 3e7c598..dba09e5 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
> # 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
> @@ -21,6 +23,7 @@ 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.lib import ofctl_v1_3
>
>
> class SimpleSwitch13(app_manager.RyuApp):
> @@ -48,6 +51,10 @@ class SimpleSwitch13(app_manager.RyuApp):
> ofproto.OFPCML_NO_BUFFER)]
> self.add_flow(datapath, 0, match, actions)
>
> + for flow in json.load(open('sample_flows.json')):
> + if datapath.id == flow.get('dpid', 0):
> + ofctl_v1_3.mod_flow_entry(datapath, flow, ofproto.OFPFC_ADD)
> +
> def add_flow(self, datapath, priority, match, actions, buffer_id=None):
> ofproto = datapath.ofproto
> parser = datapath.ofproto_parser
>
>
> Thanks,
> Iwase
>
>
> On 2017年01月24日 20:58, raghu rathode wrote:
>> Dear Sir/Madam,
>>
>> I would like to know, how to pass text file as an argument to Ryu
>> application. Which contains a set of rules to install on OpenFlow switches.
>>
>> For Example:
>>
>> Switch 00-00-00-00-00-01:
>> dl_type=0x0800, nw_src=10.1.0.1/16 <http://10.1.0.1/16>, nw_dst=10.2.0.1/16
>> <http://10.2.0.1/16>, in_port=4, actions=mod_dl_src:00:00:12:00:01:03,
>> mod_dl_dst:00:00:00:00:00:02, output:3
>> dl_type=0x0800, dl_src=00:00:00:00:00:02, dl_dst=00:00:12:00:01:03,
>> in_port=3, nw_src=10.1.0.1/16 <http://10.1.0.1/16>, nw_dst=10.2.0.1/16
>> <http://10.2.0.1/16>, actions=mod_dl_src:00:00:12:00:01:02,
>> mod_dl_dst:00:00:12:00:04:01, output:2
>> dl_type=0x0800, dl_src=00:00:12:00:02:01, dl_dst=00:00:12:00:01:01,
>> in_port=1, nw_src=10.3.0.1/16 <http://10.3.0.1/16>, nw_dst=10.4.0.1/16
>> <http://10.4.0.1/16>, actions=mod_dl_src:00:00:12:
>>
>>
>> --
>> Thanks and Regards
>> Hari Raghavendar Rao Bandari
>> App 10,
>> Karolinenweg 20,
>> 37075 Goettingen,
>> Germany.
>>
>>
>> ------------------------------------------------------------------------------
>> 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
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/ryu-devel
>>
------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel