Don't we have the relationships the other way around?
guaranteed bw - qos_min_rate in ovn - rate in tc
shaped bw - qos_max_rate in ovn - ceil in tc
But anyway I see your point. This must break setting ceil without rate. But while broken I guess this can be worked around by providing both in the API.
In a fix we can provide a minimal (0 if allowed) rate when there's no user input coming from the API.
Don't we have the relationships the other way around?
guaranteed bw - qos_min_rate in ovn - rate in tc
shaped bw - qos_max_rate in ovn - ceil in tc
But anyway I see your point. This must break setting ceil without rate. But while broken I guess this can be worked around by providing both in the API.
In a fix we can provide a minimal (0 if allowed) rate when there's no user input coming from the API.