[ovs-git] [openvswitch/ovs] 23c01b: netdev-dpdk: Add support for multi-queue QoS to th...

Eelco Chaudron noreply at github.com
Wed Jan 15 19:51:15 UTC 2020


  Branch: refs/heads/master
  Home:   https://github.com/openvswitch/ovs
  Commit: 23c01b196ff77e15fd83e27fad638ac93eaacaff
      https://github.com/openvswitch/ovs/commit/23c01b196ff77e15fd83e27fad638ac93eaacaff
  Author: Eelco Chaudron <echaudro at redhat.com>
  Date:   2020-01-15 (Wed, 15 Jan 2020)

  Changed paths:
    M lib/netdev-dpdk.c

  Log Message:
  -----------
  netdev-dpdk: Add support for multi-queue QoS to the DPDK datapath

This patch adds support for multi-queue QoS to the DPDK datapath. Most of
the code is based on an earlier patch from a patchset sent out by
zhaozhanxu. The patch was titled "[ovs-dev, v2, 1/4] netdev-dpdk.c: Support
the multi-queue QoS configuration for dpdk datapath"

Signed-off-by: zhaozhanxu <zhaozhanxu at 163.com>
Co-authored-by: zhaozhanxu <zhaozhanxu at 163.com>
Signed-off-by: Eelco Chaudron <echaudro at redhat.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>


  Commit: e61bdffc2a98ae6b3ec4c452cd5b61e165a6aaef
      https://github.com/openvswitch/ovs/commit/e61bdffc2a98ae6b3ec4c452cd5b61e165a6aaef
  Author: Eelco Chaudron <echaudro at redhat.com>
  Date:   2020-01-15 (Wed, 15 Jan 2020)

  Changed paths:
    M Documentation/topics/dpdk/qos.rst
    M lib/netdev-dpdk.c
    M vswitchd/vswitch.xml

  Log Message:
  -----------
  netdev-dpdk: Add new DPDK RFC 4115 egress policer

This patch adds a new policer to the DPDK datapath based on RFC 4115's
Two-Rate, Three-Color marker. It's a two-level hierarchical policer
which first does a color-blind marking of the traffic at the queue
level, followed by a color-aware marking at the port level. At the end
traffic marked as Green or Yellow is forwarded, Red is dropped. For
details on how traffic is marked, see RFC 4115.

This egress policer can be used to limit traffic at different rated
based on the queues the traffic is in. In addition, it can also be used
to prioritize certain traffic over others at a port level.

For example, the following configuration will limit the traffic rate at a
port level to a maximum of 2000 packets a second (64 bytes IPv4 packets).
100pps as CIR (Committed Information Rate) and 1000pps as EIR (Excess
Information Rate). High priority traffic is routed to queue 10, which marks
all traffic as CIR, i.e. Green. All low priority traffic, queue 20, is
marked as EIR, i.e. Yellow.

ovs-vsctl --timeout=5 set port dpdk1 qos=@myqos -- \
  --id=@myqos create qos type=trtcm-policer \
  other-config:cir=52000 other-config:cbs=2048 \
  other-config:eir=52000 other-config:ebs=2048  \
  queues:10=@dpdk1Q10 queues:20=@dpdk1Q20 -- \
  --id=@dpdk1Q10 create queue \
    other-config:cir=41600000 other-config:cbs=2048 \
    other-config:eir=0 other-config:ebs=0 -- \
  --id=@dpdk1Q20 create queue \
    other-config:cir=0 other-config:cbs=0 \
    other-config:eir=41600000 other-config:ebs=2048 \

This configuration accomplishes that the high priority traffic has a
guaranteed bandwidth egressing the ports at CIR (1000pps), but it can also
use the EIR, so a total of 2000pps at max. These additional 1000pps is
shared with the low priority traffic. The low priority traffic can use at
maximum 1000pps.

Signed-off-by: Eelco Chaudron <echaudro at redhat.com>
Signed-off-by: Ian Stokes <ian.stokes at intel.com>


Compare: https://github.com/openvswitch/ovs/compare/695e35091982...e61bdffc2a98


More information about the git mailing list