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
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
(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