[ovs-dev] [PATCH v2 ovn 0/3] Introduce localnet egress QoS support

Lorenzo Bianconi lorenzo.bianconi at redhat.com
Tue Sep 24 16:39:53 UTC 2019


OVN applies logical switch QoS settings to egress interfaces. It
currently works by analyzing each br-int interface to see what the remote-ip
is on it, and then adding qdiscs to the tunnel-egress-iface associated
with this br-int interface.

This doesn't work as well when working with VLAN networks. In VLAN
networks, the interface on br-int associated with the localnet port on
the logical switch will be a patch port. It's connected to another
bridge, making it difficult to determine which interface (or interfaces) is
the egress interface on that connected bridge.

This series aims to mend this. On the bridge that is patched to br-int,
interfaces can have the boolean external-ids:ovn-egress-iface set to
true if this is an egress interface. This way, QoS can be applied to
these interfaces the same as is applied to tunnel interfaces.

Moreover rework qos code in order to add the capability to select automatically
the queue_id used to identify the device queue

Finally add the set_queue action to logical flows in Egress Port Security - L2 stage
for localnet QoS capable ports in order to set the physical_interface qdisc id

Changes since v1:
- split build_lswitch_port_sec in build_lswitch_input_port_sec and
  build_lswitch_output_port_sec
- removed unnecessary log messages

Changes since RFC:
- introduce build_lswitch_port_sec as a container for {in/out}_port_sec logical
  flow configuration
- move ovn-egress-iface lookup in consider_localnet_port in order to avoid an
  unnecessary port_binding lookup

Lorenzo Bianconi (3):
  Add egress QoS mapping for non-tunnel interfaces
  northd: add the possibility to define localnet as qos capable port
  northd: interoduce logical flow for localnet egress shaping

 controller/binding.c        |  51 ++++++-
 controller/binding.h        |   4 +
 controller/ovn-controller.c |   3 +-
 controller/patch.c          |  76 +++++-----
 controller/patch.h          |   4 +
 northd/ovn-northd.8.xml     |   7 +-
 northd/ovn-northd.c         | 276 ++++++++++++++++++++++--------------
 7 files changed, 276 insertions(+), 145 deletions(-)

-- 
2.21.0



More information about the dev mailing list