Hi,

I found the flow doesn't use new meter after modifying flow with new meter
action.
So after modifying flow, it must execute the below statement to
re-bind meter_list_node with new meter.

{
    struct ofproto *ofproto = rule->ofproto;

    if (!list_is_empty(&rule->meter_list_node)) {
        list_remove(&rule->meter_list_node);
        list_init(&rule->meter_list_node);

        if (rule->actions->provider_meter_id != UINT32_MAX) {
        uint32_t meter_id = ofpacts_get_meter(rule->actions->ofpacts,
                                              rule->actions->ofpacts_len);
        struct meter *meter = ofproto->meters[meter_id];
        list_insert(&meter->rules, &rule->meter_list_node);
        }
    }
}


BR.
_______________________________________________
discuss mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to