Hi,

On 2015年01月16日 19:24, Clément Rault wrote:
> So I went back to using an older VM and it works. At least the simple example.
> 
> But I try to do something more advanced the group entry is not present :/.
> 
> ubuntu@sdnhubvm:~[02:21]$  curl -X POST -d '{
>       "dpid": 1,
>       "type": "FF",
>       "group_id": 1,
>       "buckets": [
>           {
>               "watch_port": 1,
>               "actions": [
>                   {
>                       "type": "OUTPUT",
>                      "port": 1
>                   }              ]
>           }
>      ]
>    }' http://localhost:8080/stats/groupentry/add
> ubuntu@sdnhubvm:~[02:21]$ curl -X GET http://localhost:8080/stats/groupdesc/1
> {"1": [{"buckets": [{"actions": ["OUTPUT:1"], "watch_group":
> 4294967295, "weight": 0, "watch_port": 1}], "group_id": 1, "type":
> "FF"}]}ubuntu@sdnhubvm:~[02:21]$
> ubuntu@sdnhubvm:~[02:21]$ curl -X POST -d '{
>     "dpid": 1,
>     "group_id": 1
>  }' http://localhost:8080/stats/groupentry/delete
> ubuntu@sdnhubvm:~[02:21]$ curl -X POST -d '{
>>     "dpid": 1,
>>     "type": "FF",
>>     "group_id": 1,
>>     "buckets": [
>>         {
>>             "watch_port": 2,
>>             "actions": [
>>                 {
>>                     "type": "OUTPUT",
>>                     "port": 2
>>                 }
>>             ]
>>         }
>>         {
>>             "watch_port": 3,
>>             "actions": [
>>                 {
>>                     "type": "OUTPUT",
>>                     "port": 3
>>                 }
>>             ]
>>         }
>>     ]
>>  }' http://localhost:8080/stats/groupentry/add

I think the above command is wrong.
A "comma" is missing after the end of a bucket (with '{').

curl -X POST -d '{
     "dpid": 1,
     "type": "FF",
     "group_id": 1,
     "buckets": [
         {
             "watch_port": 2,
             "actions": [
                 {
                     "type": "OUTPUT",
                     "port": 2
                 }
             ]
         },                       <---- This comma is missing in your command.
         {
             "watch_port": 3,
             "actions": [
                 {
                     "type": "OUTPUT",
                     "port": 3
                 }
             ]
         }
     ]
  }' http://localhost:8080/stats/groupentry/add


> ubuntu@sdnhubvm:~[02:22]$ curl -X GET http://localhost:8080/stats/groupdesc/1
> {"1": []}
> 
> Even though ryu shows me that the request was accepted in both cases:
> (17268) accepted ('127.0.0.1', 54113)
> 127.0.0.1 - - [16/Jan/2015 02:21:26] "POST /stats/groupentry/add
> HTTP/1.1" 200 115 0.000692
> (17268) accepted ('127.0.0.1', 54115)
> 127.0.0.1 - - [16/Jan/2015 02:21:29] "GET /stats/groupdesc/1 HTTP/1.1"
> 200 259 0.001116
> (17268) accepted ('127.0.0.1', 54117)
> 127.0.0.1 - - [16/Jan/2015 02:21:35] "POST /stats/groupentry/delete
> HTTP/1.1" 200 115 0.000962
> (17268) accepted ('127.0.0.1', 54119)
> 127.0.0.1 - - [16/Jan/2015 02:22:24] "POST /stats/groupentry/add
> HTTP/1.1" 400 124 0.001160

Ryu shows 400 error message.
If you want to see error detail logs,
please try "--verbose" options as following.

$ sudo ryu-manager --verbose ryu.app.ofctl_rest
loading app ryu.app.ofctl_rest
loading app ryu.controller.ofp_handler
instantiating app None of DPSet
creating context dpset
creating context wsgi
instantiating app ryu.app.ofctl_rest of RestStatsApi
instantiating app ryu.controller.ofp_handler of OFPHandler
...
...
move onto main mode
EVENT ofp_event->dpset EventOFPStateChange
DPSET: register datapath <ryu.controller.controller.Datapath object at 
0x7f1e94cde9d0>
(6996) accepted ('127.0.0.1', 48349)
invalid syntax {
     "dpid": 1,
     "type": "FF",
     "group_id": 1,
     "buckets": [
         {
             "watch_port": 2,
             "actions": [
                 {
                     "type": "OUTPUT",
                     "port": 2
                 }
             ]
         }
         {
             "watch_port": 3,
             "actions": [
                 {
                     "type": "OUTPUT",
                     "port": 3
                 }
             ]
         }
     ]
  }
127.0.0.1 - - [19/Jan/2015 11:36:42] "POST /stats/groupentry/add HTTP/1.1" 400 
124 0.008072


Thanks

> (17268) accepted ('127.0.0.1', 54121)
> 127.0.0.1 - - [16/Jan/2015 02:22:27] "GET /stats/groupdesc/1 HTTP/1.1"
> 200 131 0.001223
> 
> And I don't get why...
> 
> Best,
> Clément
> 
> On 16 January 2015 at 10:50, Clément Rault <[email protected]> wrote:
>> Hi,
>>
>> Thanks for your answer!
>>
>> I use this version of OVS:
>>
>> mininet@mininet-vm:~$ sudo ovs-ofctl --version
>> ovs-ofctl (Open vSwitch) 2.0.2
>> Compiled Aug 15 2014 14:31:02
>> OpenFlow versions 0x1:0x4
>>
>> I simply took this VM image Mininet 2.2.0 on Ubuntu 14.04 and
>> installed ryu using the install.sh -y command.
>>
>> It's weird because I installed exactly like I did before so I don't
>> see why it's not working anymore...
>>
>> Best,
>> Clément
>>
>> On 16 January 2015 at 06:59, Yusuke Iwase <[email protected]> wrote:
>>> Hi,
>>>
>>> Well...
>>> On my enviroment, the following commands (that you were mentioned) works 
>>> fine.
>>>
>>> # Run mininet
>>> ---
>>> $ sudo mn --topo single,2 --mac --switch ovsk --controller remote
>>> *** Creating network
>>> *** Adding controller
>>> Unable to contact the remote controller at 127.0.0.1:6633
>>> *** Adding hosts:
>>> h1 h2
>>> *** Adding switches:
>>> s1
>>> *** Adding links:
>>> (h1, s1) (h2, s1)
>>> *** Configuring hosts
>>> h1 h2
>>> *** Starting controller
>>> *** Starting 1 switches
>>> s1
>>> *** Starting CLI:
>>> mininet>
>>> ---
>>>
>>> # Run ofctl_rest
>>> ---
>>> $ sudo ryu-manager ryu.app.ofctl_rest
>>> loading app ryu.app.ofctl_rest
>>> loading app ryu.controller.ofp_handler
>>> instantiating app None of DPSet
>>> creating context dpset
>>> creating context wsgi
>>> instantiating app ryu.app.ofctl_rest of RestStatsApi
>>> instantiating app ryu.controller.ofp_handler of OFPHandler
>>> (6712) wsgi starting up on http://0.0.0.0:8080/
>>> ---
>>>
>>> # Execute commands
>>> ---
>>> $ # Push a group entry
>>> $ curl -X POST -d '{
>>>>      "dpid": 1,
>>>>      "type": "FF",
>>>>      "group_id": 1,
>>>>      "buckets": [
>>>>          {
>>>>              "watch_port": 1,
>>>>              "actions": [
>>>>                  {
>>>>                      "type": "OUTPUT",
>>>>                      "port": 1
>>>>                  }
>>>>              ]
>>>>          }
>>>>      ]
>>>>   }' http://localhost:8080/stats/groupentry/add
>>> $
>>> $ # Check the group entry
>>> $ curl -X GET http://localhost:8080/stats/groupdesc/1
>>> {"1": [{"buckets": [{"actions": ["OUTPUT:1"], "watch_group": 4294967295, 
>>> "weight": 0, "watch_port": 1}], "group_id": 1, "type": "FF"}]}
>>> $
>>> $ # Push a flow entry
>>> $ curl -X POST -d '{
>>>>      "dpid": 1,
>>>>      "match":{
>>>>          "vlan_vid": 5
>>>>      },
>>>>      "actions":[
>>>>          {
>>>>              "type":"GROUP",
>>>>              "group_id": 1
>>>>          }
>>>>      ]
>>>>   }' http://localhost:8080/stats/flowentry/add
>>> $
>>> $ # Check the flow entry
>>> $ curl -X GET http://localhost:8080/stats/flow/1
>>> {"1": [{"actions": ["GROUP:1"], "idle_timeout": 0, "cookie": 0, 
>>> "packet_count": 0, "hard_timeout": 0, "byte_count": 0, "length": 80, 
>>> "duration_nsec": 548000000, "priority": 0, "duration_sec": 1, "table_id": 
>>> 0, "flags": 0, "match": {"dl_vlan": "5"}}]}
>>> ---
>>>
>>>
>>> What switch do you use?
>>> My environment use Open vSwitch 2.3.90 like below.
>>> ---
>>> $ sudo ovs-ofctl --version
>>> ovs-ofctl (Open vSwitch) 2.3.90
>>> Compiled Jul 29 2014 11:28:11
>>> OpenFlow versions 0x1:0x4
>>> ---
>>>
>>> Thanks
>>>
>>> On 2015年01月16日 00:10, Clément Rault wrote:
>>>> Hi,
>>>>
>>>> Could it be a bug of the new version?
>>>>
>>>> Because I seem to remember that I tried to push some group entry with
>>>> the example of the documentation (see below what I mean) with the last
>>>> version and it worked.
>>>>
>>>> "Example of use:
>>>>
>>>> $ curl -X POST -d '{
>>>>     "dpid": 1,
>>>>     "type": "ALL",
>>>>     "group_id": 1,
>>>>     "buckets": [
>>>>         {
>>>>             "actions": [
>>>>                 {
>>>>                     "type": "OUTPUT",
>>>>                     "port": 1
>>>>                 }
>>>>             ]
>>>>         }
>>>>     ]
>>>>  }' http://localhost:8080/stats/groupentry/add";
>>>>
>>>> Best,
>>>> Clément
>>>>
>>>>
>>>>
>>>> On 13 January 2015 at 17:46, Clément Rault <[email protected]> wrote:
>>>>> Hi,
>>>>>
>>>>> Now that I solved my other problems I'm trying to try some things
>>>>> using group tables.
>>>>>
>>>>> But the weird thing is that it doesn't seem to work.
>>>>>
>>>>> I tried what you wrote in the previous email:
>>>>>
>>>>> mininet@mininet-vm:~$ curl -X POST -d '{
>>>>>>     "dpid": 1,
>>>>>>     "type": "FF",
>>>>>>     "group_id": 1,
>>>>>>     "buckets": [
>>>>>>         {
>>>>>>             "watch_port": 1,
>>>>>>             "actions": [
>>>>>>                 {
>>>>>>                     "type": "OUTPUT",
>>>>>>                     "port": 1
>>>>>>                 }
>>>>>>             ]
>>>>>>         }
>>>>>>     ]
>>>>>>  }' http://localhost:8080/stats/groupentry/add
>>>>> mininet@mininet-vm:~$
>>>>> mininet@mininet-vm:~$ curl -X GET http://localhost:8080/stats/groupdesc/1
>>>>> {"1": []}mininet@mininet-vm:~$
>>>>> mininet@mininet-vm:~$ curl -X POST -d '{
>>>>>>     "dpid": 1,
>>>>>>     "match":{
>>>>>>         "vlan_vid": 5
>>>>>>     },
>>>>>>     "actions":[
>>>>>>         {
>>>>>>             "type":"GROUP",
>>>>>>             "group_id": 1
>>>>>>         }
>>>>>>     ]
>>>>>>  }' http://localhost:8080/stats/flowentry/add
>>>>> mininet@mininet-vm:~$
>>>>> mininet@mininet-vm:~$ curl -X GET http://localhost:8080/stats/flow/1
>>>>> {"1": []}
>>>>>
>>>>> Even though ryu's log show me that the requests got accepted:
>>>>>
>>>>> mininet@mininet-vm:~/ryu$ PYTHONPATH=~/ryu ~/ryu/bin/ryu-manager
>>>>> ~/ryu/ryu/app/ofctl_rest.py
>>>>> loading app /home/mininet/ryu/ryu/app/ofctl_rest.py
>>>>> loading app ryu.controller.ofp_handler
>>>>> instantiating app None of DPSet
>>>>> creating context dpset
>>>>> creating context wsgi
>>>>> instantiating app /home/mininet/ryu/ryu/app/ofctl_rest.py of RestStatsApi
>>>>> instantiating app ryu.controller.ofp_handler of OFPHandler
>>>>> (8305) wsgi starting up on http://0.0.0.0:8080/
>>>>> (8305) accepted ('127.0.0.1', 54645)
>>>>> 127.0.0.1 - - [09/Jan/2015 17:38:48] "POST /stats/groupentry/add
>>>>> HTTP/1.1" 200 115 0.010800
>>>>> (8305) accepted ('127.0.0.1', 54646)
>>>>> 127.0.0.1 - - [09/Jan/2015 17:38:49] "GET /stats/groupdesc/1 HTTP/1.1"
>>>>> 200 131 1.004360
>>>>> (8305) accepted ('127.0.0.1', 54647)
>>>>> 127.0.0.1 - - [09/Jan/2015 17:38:49] "POST /stats/flowentry/add
>>>>> HTTP/1.1" 200 115 0.001661
>>>>> (8305) accepted ('127.0.0.1', 54648)
>>>>> 127.0.0.1 - - [09/Jan/2015 17:38:52] "GET /stats/flow/1 HTTP/1.1" 200
>>>>> 131 0.001752
>>>>>
>>>>> And the weird thing is that when I try to push another flow entry
>>>>> (that I used for another example) it's working fine:
>>>>>
>>>>> mininet@mininet-vm:~$ curl -X POST -d '{
>>>>>>     "dpid": 1,
>>>>>>     "cookie": 1,
>>>>>>     "cookie_mask": 1,
>>>>>>     "table_id": 0,
>>>>>>     "idle_timeout": 0,
>>>>>>     "hard_timeout": 0,
>>>>>>     "priority": 11111,
>>>>>>     "flags": 1,
>>>>>>     "match":{
>>>>>>         "nw_dst": "11.0.0.2",
>>>>>>         "eth_type": 2048
>>>>>>     },
>>>>>>     "actions":[
>>>>>>         {
>>>>>>             "type":"OUTPUT",
>>>>>>             "port": 2
>>>>>>         }
>>>>>>     ]
>>>>>>  }' http://localhost:8080/stats/flowentry/add
>>>>> mininet@mininet-vm:~$ curl -X GET http://localhost:8080/stats/flow/1
>>>>> {"1": [{"actions": ["OUTPUT:2"], "idle_timeout": 0, "cookie": 1,
>>>>> "packet_count": 0, "hard_timeout": 0, "byte_count": 0, "length": 96,
>>>>> "duration_nsec": 127000000, "priority": 11111, "duration_sec": 11,
>>>>> "table_id": 0, "flags": 1, "match": {"dl_type": 2048, "nw_dst":
>>>>> "11.0.0.2"}}]
>>>>>
>>>>> Do you have any idea why? I'm running out of ideas why it doesn't work :/.
>>>>>
>>>>> Thanks for your help.
>>>>>
>>>>> Best,
>>>>> Clément
>>>>>
>>>>> On 2 December 2014 at 01:56, Yusuke Iwase <[email protected]> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> On 2014年12月01日 20:13, Clément Rault wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> Ok, thanks.
>>>>>>>
>>>>>>>> I think it's right.
>>>>>>>> OpenFlow Spec describes like as follows.
>>>>>>>>
>>>>>>>> -------
>>>>>>>> OpenFlow1.3.4 Spec:
>>>>>>>>  5.6.1 Group Types
>>>>>>>> -------
>>>>>>>>     ...
>>>>>>>>   - Optional: fast failover: Execute the first live bucket. Each 
>>>>>>>> action bucket is associated with
>>>>>>>>     a specific port and/or group that controls its liveness. The 
>>>>>>>> buckets are evaluated in the order
>>>>>>>>     defined by the group, and the first bucket which is associated 
>>>>>>>> with a live port/group is selected.
>>>>>>>>     ...
>>>>>>>> -------
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>
>>>>>>> I'm wondering what will happen if every bucket is down. Will it simply
>>>>>>> stop the processing of this and drop it or do you think it will still
>>>>>>> the examine the other (next) group tables (because what I understood
>>>>>>> is that the switch will examine every group table one after each
>>>>>>> other)?
>>>>>>
>>>>>> Is your question about the behavior of Group Table specified by OpenFlow?
>>>>>> If so, please refer to OpenFlow Specification.
>>>>>> (and see the section "5.6.1 Group Types".)
>>>>>>
>>>>>>  https://www.opennetworking.org/sdn-resources/onf-specifications/openflow
>>>>>>
>>>>>> If you have still any questions, I guess you have a better chance
>>>>>> to get an answer on ONF mailing list.
>>>>>>
>>>>>>>
>>>>>>> Best,
>>>>>>> Clément
>>>>>>>

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to