On 2/1/24 02:33, Mark Michelson wrote:
>> static void
>> build_qos(struct ovn_datapath *od, struct hmap *lflows) {
>> struct ds action = DS_EMPTY_INITIALIZER;
>> @@ -8371,16 +8375,26 @@ build_qos(struct ovn_datapath *od, struct hmap
>> *lflows) {
>> ovn_lflow_add(lflows, od, S_SWITCH_OUT_QOS_MARK, 0, "1", "next;");
>> ovn_lflow_add(lflows, od, S_SWITCH_IN_QOS_METER, 0, "1", "next;");
>> ovn_lflow_add(lflows, od, S_SWITCH_OUT_QOS_METER, 0, "1", "next;");
>> + ovn_lflow_add(lflows, od, S_SWITCH_IN_QOS_PKT_MARK, 0, "1",
>> "next;");
>> + ovn_lflow_add(lflows, od, S_SWITCH_OUT_QOS_PKT_MARK, 0, "1",
>> "next;");
>> for (size_t i = 0; i < od->nbs->n_qos_rules; i++) {
>> struct nbrec_qos *qos = od->nbs->qos_rules[i];
>> bool ingress = !strcmp(qos->direction, "from-lport") ? true
>> :false;
>> enum ovn_stage stage = ingress ? S_SWITCH_IN_QOS_MARK :
>> S_SWITCH_OUT_QOS_MARK;
>> + static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 1);
>> int64_t rate = 0;
>> int64_t burst = 0;
>> for (size_t j = 0; j < qos->n_action; j++) {
>> if (!strcmp(qos->key_action[j], "dscp")) {
>> + if (qos->value_action[j] > QOS_MAX_DSCP) {
>> + VLOG_WARN_RL(&rl, "bad 'dscp' value %"PRId64" in
>> qos "
>> + UUID_FMT, qos->value_action[j],
>> + UUID_ARGS(&qos->header_.uuid));
>> + continue;
>> + }
>> +
>
> This seems unrelated to packet marking. Should this be done in a
> separate patch?
Hi Mark,
It's actually because we removed the "max" limitation for the QoS.action
value in the NB schema. Prior to the patch we would reject values > 63,
the only thing we can do now, I think, is log any misconfigurations.
Regards,
Dumitru
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev