Hi Sherif,

If Queue ID is correct (exists), it should work as expected.

I will fix this bug of rest_qos.py, but for workaround, please use "ovs-vsctl" 
command
to confirm Queue ID.

For example, "qos" value in Port table is corresponding to "_uuid" of QoS 
table, and
key of queues set in QoS table is corresponding to Queue ID.

# "f92839ae-58fc-4e6f-baee-c0bafd45f892" is corresponding to "_uuid" of QoS 
table
mininet> sh ovs-vsctl list Port s1-eth1
...(snip)...
name                : "s1-eth1"
...(snip)...
qos                 : f92839ae-58fc-4e6f-baee-c0bafd45f892
...(snip)...

# QoS "f92839ae-58fc-4e6f-baee-c0bafd45f892" has two Queues:
#  - 0: 7b4fcc2d-71fd-4ab6-9399-b6da84e2e1a0
#  - 1: aaf1000d-7574-451d-b1fb-bdb4cd8e029
mininet> sh ovs-vsctl list QoS
_uuid               : f92839ae-58fc-4e6f-baee-c0bafd45f892
external_ids        : {}
other_config        : {max-rate="1000000"}
queues              : {0=7b4fcc2d-71fd-4ab6-9399-b6da84e2e1a0, 
1=aaf1000d-7574-451d-b1fb-bdb4cd8e029f}
type                : linux-htb

# Details for each Queue
mininet> sh ovs-vsctl list Queue
_uuid               : 7b4fcc2d-71fd-4ab6-9399-b6da84e2e1a0
dscp                : []
external_ids        : {}
other_config        : {max-rate="500000"}

_uuid               : aaf1000d-7574-451d-b1fb-bdb4cd8e029f
dscp                : []
external_ids        : {}
other_config        : {min-rate="800000"}


Thanks,
Iwase

On 2017年08月11日 23:31, Fahmy Sherif Alaa Salaheldin wrote:
> Thank you for your response!
> 
> But in this case do you know if I set a flow rule telling a specific flow to 
> go to a queue through the rest_ofctl api will it work?
> 
> Would i have to post something with an action OUTPORT and QUEUE number for 
> example?
> 
> Thanks in advance,
> Sherif
> 
>> On 11 Aug 2017, at 4:01 PM, Iwase Yusuke <iwase.yusu...@gmail.com> wrote:
>>
>> Hi Sherif,
>>
>> Please include Ryu-devel mailing list.
>>
>>> On 2017年08月09日 18:17, Fahmy Sherif Alaa Salaheldin wrote:
>>> Good Morning Iwase,
>>>
>>> Thanks a lot for the update I will try it asap! But I was curious could you 
>>> set queues per port and not per switch?
>>>
>>> In rest_QOS.py doc they say that at each POST curl the the configurations 
>>> get overridden!
>>>
>>> Last time when I tried something like,
>>>
>>> curl -X POST -d '{"port_name": "s1-eth1", "type": "linux-htb", "max_rate": 
>>> "1000000", "queues":
>>> [{"max_rate": "500000"}, {"min_rate": "800000"}]}, {"port_name": "s1-eth2", 
>>> "type": "linux-htb", "max_rate": "2000000", "queues":
>>> [{"max_rate": "600000"}, {"min_rate": "900000"}]}' 
>>> http://localhost:8080/qos/queue/0000000000000001
>>> | jq .
>>>
>>> then request the get $ curl -X GET 
>>> http://localhost:8080/qos/queue/0000000000000001 | jq .
>>>
>>> I could only see the queues configured in s1-eth2 (The last one)
>>
>> It seems a bug of rest_qos.py.
>> rest_qos.py stores Queues list of only last one.
>> (rest_qos.py clears all stores Queues list for every POST request...)
>>
>> But Queues on OVS seems to be configured as expected, and can be seen on 
>> ovs-vsctl command.
>> e.g.)
>> mininet> sh ovs-vsctl list Queue
>> _uuid               : 1724da04-278c-4cba-ba6c-cd00e4f23f67
>> dscp                : []
>> external_ids        : {}
>> other_config        : {max-rate="500000"}
>>
>> _uuid               : 775211a9-51ec-434f-92e7-38b9aa58864b
>> dscp                : []
>> external_ids        : {}
>> other_config        : {max-rate="600000"}
>>
>> _uuid               : 1a5a5639-29df-4644-9c4e-ce1fcccb8665
>> dscp                : []
>> external_ids        : {}
>> other_config        : {min-rate="900000"}
>>
>> _uuid               : cb67c45a-1776-4ceb-93b4-75f81a0ea248
>> dscp                : []
>> external_ids        : {}
>> other_config        : {min-rate="800000"}
>> mininet> 
>> mininet> 
>> mininet> sh ovs-vsctl list QoS
>> _uuid               : fe6220aa-c44d-4b0b-8f52-2b3228c480c8
>> external_ids        : {}
>> other_config        : {max-rate="1000000"}
>> queues              : {0=1724da04-278c-4cba-ba6c-cd00e4f23f67, 
>> 1=cb67c45a-1776-4ceb-93b4-75f81a0ea248}
>> type                : linux-htb
>>
>> _uuid               : 9209f7a7-8f53-4d4f-a9b5-d0f3e03780b3
>> external_ids        : {}
>> other_config        : {max-rate="2000000"}
>> queues              : {0=775211a9-51ec-434f-92e7-38b9aa58864b, 
>> 1=1a5a5639-29df-4644-9c4e-ce1fcccb8665}
>> type                : linux-htb
>>
>>
>> Thanks,
>> Iwase
>>
>>>
>>> Best,
>>> Sherif
>>>
>>> Ps.
>>>
>>> In the Ryu documentation this is written
>>>
>>> # set a queue to the switches
>>> # POST /qos/queue/{switch-id}
>>> #
>>> # request body format:
>>> # {"port_name":"<name of port>",
>>> # "type": "<linux-htb or linux-other>",
>>> # "max-rate": "<int>",
>>> # "queues":[{"max_rate": "<int>", "min_rate": "<int>"},...]}
>>> #
>>> # Note: This operation override
>>> # previous configurations.
>>> # Note: Queue configurations are available for
>>> # OpenvSwitch.
>>> # Note: port_name is optional argument.
>>> # If does not pass the port_name argument,
>>> # all ports are target for configuration.
>>>
>>> I was wondering if this meant that we cannot configure each port separately.
>>>
>>> For instance if I want to have 2 queues x,y on port s1-eth1 and 2 queues 
>>> a,b on port s1-eth2, is that possible? 
>>> if yes then in the flow rule what should the "actions" be (since we can 
>>> only give "queue" and queue_id)!
>>>
>>> "If I don't give a port_name all ports are target for configuration" does 
>>> this mean that there will be a queue on each port? 
>>>
>>> Best,
>>> Sherif
>>>
>>>
>>>
>>>
>>> ________________________________________
>>> De : Iwase Yusuke <iwase.yusu...@gmail.com>
>>> Envoyé : jeudi 20 juillet 2017 08:36
>>> À : Fahmy Sherif Alaa Salaheldin
>>> Cc : ryu-devel@lists.sourceforge.net
>>> Objet : Re: [Ryu-devel] Queues not shown in get stats/queueconfig --> 
>>> Confusion about rest_QOS and rest_OFCTL
>>>
>>> Hi Sherif,
>>>
>>> On my environment (Ryu 4.15, Open vSwitch 2.6.1 and Mininet 2.3.0), I can 
>>> see queues via ofctl_rest.
>>>
>>> # Create Queues via rest_qos.py
>>> $ curl -X POST -d '{"port_name": "s1-eth1", "type": "linux-htb", 
>>> "max_rate": "1000000", "queues":
>>> [{"max_rate": "500000"}, {"min_rate": "800000"}]}' 
>>> http://localhost:8080/qos/queue/0000000000000001
>>> | jq .
>>> [
>>>   {
>>>     "switch_id": "0000000000000001",
>>>     "command_result": {
>>>       "result": "success",
>>>       "details": {
>>>         "0": {
>>>           "config": {
>>>             "max-rate": "500000"
>>>           }
>>>         },
>>>         "1": {
>>>           "config": {
>>>             "min-rate": "800000"
>>>           }
>>>         }
>>>       }
>>>     }
>>>   }
>>> ]
>>>
>>> # Confirm Queues via rest_qos.py
>>> $ curl -X GET http://localhost:8080/qos/queue/0000000000000001 | jq .
>>> [
>>>   {
>>>     "switch_id": "0000000000000001",
>>>     "command_result": {
>>>       "result": "success",
>>>       "details": {
>>>         "0": {
>>>           "config": {
>>>             "max-rate": "500000"
>>>           }
>>>         },
>>>         "1": {
>>>           "config": {
>>>             "min-rate": "800000"
>>>           }
>>>         }
>>>       }
>>>     }
>>>   }
>>> ]
>>>
>>> # Confirm Queues via ofctl_rest
>>> $ curl -X GET http://localhost:8080/stats/queueconfig/1/1 | jq .
>>> {
>>>   "1": [
>>>     {
>>>       "queues": [
>>>         {
>>>           "properties": [],
>>>           "queue_id": 0,
>>>           "port": 1
>>>         },
>>>         {
>>>           "properties": [],
>>>           "queue_id": 1,
>>>           "port": 1
>>>         }
>>>       ],
>>>       "port": 1
>>>     }
>>>   ]
>>> }
>>>
>>> Please note I could not see "properties" for each Queue.
>>> OVS does not seems to send "properties" info on OFPQueueGetConfigReply 
>>> message.
>>>
>>>
>>> Thanks,
>>> Iwase
>>>
>>>
>>>> On 2017年07月18日 22:31, Fahmy Sherif Alaa Salaheldin wrote:
>>>> Good Afternoon,
>>>>
>>>>
>>>> Simply I followed https://osrg.github.io/ryu-book/en/html/rest_qos.html
>>>>
>>>>
>>>> But then tried to verify that the Queues were added though the rest_OFCTL
>>>>
>>>>
>>>> curl -X GET http://localhost:8080/stats/queueconfig/1/1
>>>>
>>>>
>>>> and it returned no queues configured. Is this normal?
>>>>
>>>>
>>>> My question is when I configure queues through rest_QOS I HAVE to also 
>>>> generate flow rules with
>>>> rest_QOS
>>>>
>>>>
>>>> i.e send my flow rules  to
>>>>
>>>> http://localhost:8080/qos/queue/0000000000000001​
>>>>
>>>> Correct?
>>>>
>>>>
>>>> Sherif
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> 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
>>>> Ryu-devel@lists.sourceforge.net
>>>> 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
> Ryu-devel@lists.sourceforge.net
> 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
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to