[ovs-dev] [PATCH v5 OVN] ovn-nbctl.c: Add an optional way to delete QoS by uuid
taoyunxiang at cmss.chinamobile.com
taoyunxiang at cmss.chinamobile.com
Thu May 7 08:33:29 UTC 2020
Hi Numan,
I have add a new test, and summit v3, please help to review it.
Thanks,
Yun
--------------
taoyunxiang at cmss.chinamobile.com
>On Thu, Mar 19, 2020 at 11:23 AM Tao YunXiang
><taoyunxiang at cmss.chinamobile.com> wrote:
>>
>> We can delete qos by specify ls and more parameters.
>> If CMS want to delete it exactly, it must specify detailed "match" field.
>> It's not an easy way, also maybe deleted by mistake.
>> This change adds a way to specify ls and uuid, which is optional.
>> You can still use the previous method to delete.
>>
>> usage:
>> ovn-nbctl qos-del ls0 [UUID0]
>>
>> Author: Tao YunXiang <taoyunxiang at cmss.chinamobile.com>
>> Co-authored-by: Liu Chang <liuchang at cmss.chinamobile.com>
>> Co-authored-by: Rong Yin <rongyin at cmss.chinamobile.com>
>> Signed-off-by: Tao YunXiang <taoyunxiang at cmss.chinamobile.com>
>> Signed-off-by: Liu Chang <liuchang at cmss.chinamobile.com>
>> Signed-off-by: Rong Yin <rongyin at cmss.chinamobile.com>
>
>Can you please add a few tests in the tests/ovn-nbctl.at which would help
>in regressions ?
>
>Thanks
>Numan
>
>>
>> ---
>> v4: Add a way to delete QoS by its name or uuid
>> v3: ovn-nbctl.c: Add a way to delete QoS by its name or uuid
>>
>> ---
>> utilities/ovn-nbctl.c | 39 ++++++++++++++++++++++++++++-----------
>> 1 file changed, 28 insertions(+), 11 deletions(-)
>>
>> diff --git a/utilities/ovn-nbctl.c b/utilities/ovn-nbctl.c
>> index e80058e61..5b2fa6084 100644
>> --- a/utilities/ovn-nbctl.c
>> +++ b/utilities/ovn-nbctl.c
>> @@ -604,7 +604,7 @@ ACL commands:\n\
>> QoS commands:\n\
>> qos-add SWITCH DIRECTION PRIORITY MATCH [rate=RATE [burst=BURST]] [dscp=DSCP]\n\
>> add an QoS rule to SWITCH\n\
>> - qos-del SWITCH [DIRECTION [PRIORITY MATCH]]\n\
>> + qos-del SWITCH [{DIRECTION | UUID} [PRIORITY MATCH]]\n\
>> remove QoS rules from SWITCH\n\
>> qos-list SWITCH print QoS rules for SWITCH\n\
>> \n\
>> @@ -2521,22 +2521,39 @@ nbctl_qos_del(struct ctl_context *ctx)
>> }
>>
>> const char *direction;
>> - error = parse_direction(ctx->argv[2], &direction);
>> - if (error) {
>> - ctx->error = error;
>> - return;
>> + const struct uuid *qos_rule_uuid = NULL;
>> + struct uuid uuid_from_cmd;
>> + if (uuid_from_string(&uuid_from_cmd, ctx->argv[2])) {
>> + qos_rule_uuid = &uuid_from_cmd;
>> + } else {
>> + error = parse_direction(ctx->argv[2], &direction);
>> + if (error) {
>> + ctx->error = error;
>> + return;
>> + }
>> }
>>
>> - /* If priority and match are not specified, delete all qos_rules with the
>> - * specified direction. */
>> + /* If uuid was specified, delete qos_rule with the
>> + * specified uuid. */
>> if (ctx->argc == 3) {
>> struct nbrec_qos **new_qos_rules
>> = xmalloc(sizeof *new_qos_rules * ls->n_qos_rules);
>>
>> int n_qos_rules = 0;
>> - for (size_t i = 0; i < ls->n_qos_rules; i++) {
>> - if (strcmp(direction, ls->qos_rules[i]->direction)) {
>> - new_qos_rules[n_qos_rules++] = ls->qos_rules[i];
>> + if (qos_rule_uuid) {
>> + for (size_t i = 0; i < ls->n_qos_rules; i++) {
>> + if (!uuid_equals(qos_rule_uuid,
>> + &(ls->qos_rules[i]->header_.uuid))) {
>> + new_qos_rules[n_qos_rules++] = ls->qos_rules[i];
>> + }
>> + }
>> + /* If priority and match are not specified, delete all qos_rules
>> + * with the specified direction. */
>> + } else {
>> + for (size_t i = 0; i < ls->n_qos_rules; i++) {
>> + if (strcmp(direction, ls->qos_rules[i]->direction)) {
>> + new_qos_rules[n_qos_rules++] = ls->qos_rules[i];
>> + }
>> }
>> }
>>
>> @@ -6030,7 +6047,7 @@ static const struct ctl_command_syntax nbctl_commands[] = {
>> { "qos-add", 5, 7,
>> "SWITCH DIRECTION PRIORITY MATCH [rate=RATE [burst=BURST]] [dscp=DSCP]",
>> NULL, nbctl_qos_add, NULL, "--may-exist", RW },
>> - { "qos-del", 1, 4, "SWITCH [DIRECTION [PRIORITY MATCH]]", NULL,
>> + { "qos-del", 1, 4, "SWITCH [{DIRECTION | UUID} [PRIORITY MATCH]]", NULL,
>> nbctl_qos_del, NULL, "", RW },
>> { "qos-list", 1, 1, "SWITCH", NULL, nbctl_qos_list, NULL, "", RO },
>>
>> --
>> 2.17.1
>>
>>
>>
>> _______________________________________________
>> dev mailing list
>> dev at openvswitch.org
>> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>>
More information about the dev
mailing list