[ovs-git] [openvswitch/ovs] d9d8eb: dpif-netdev: Fix the meter buckets overflow.

NIC我是一张网卡 noreply at github.com
Tue Mar 30 20:51:27 UTC 2021


  Branch: refs/heads/branch-2.13
  Home:   https://github.com/openvswitch/ovs
  Commit: d9d8ebfa002a7021b72787880c7b518ff9fcf2b1
      https://github.com/openvswitch/ovs/commit/d9d8ebfa002a7021b72787880c7b518ff9fcf2b1
  Author: Tonghao Zhang <xiangxia.m.yue at gmail.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M lib/dpif-netdev.c

  Log Message:
  -----------
  dpif-netdev: Fix the meter buckets overflow.

When setting the meter rate to 4.3+Gbps, there is an overflow, the
meters don't work as expected.

$ ovs-ofctl -O OpenFlow13 add-meter br-int "meter=1 kbps stats bands=type=drop rate=4294968"

It was overflow when we set the rate to 4294968, because "burst_size" in
the ofputil_meter_band is uint32_t type. This patch remove the "up"
in the dp_meter_band struction, and introduce "rate", "burst_size" and
"bucket" (uint64_t) to userspace datapath's meter band. This patch don't
change the public API and structure.

Signed-off-by: Tonghao Zhang <xiangxia.m.yue at gmail.com>
Signed-off-by: Ilya Maximets <i.maximets at ovn.org>


  Commit: a112239ff5f6a07852c445e49f3de293f21c6e7c
      https://github.com/openvswitch/ovs/commit/a112239ff5f6a07852c445e49f3de293f21c6e7c
  Author: Tonghao Zhang <xiangxia.m.yue at gmail.com>
  Date:   2021-03-30 (Tue, 30 Mar 2021)

  Changed paths:
    M lib/dpif-netdev.c
    M tests/dpif-netdev.at
    M tests/ofproto-dpif.at

  Log Message:
  -----------
  dpif-netdev: Refactor and fix the buckets calculation.

The way that "burst_size" was used as total buckets is
very strange. If user set the "burst_size" too smaller while
"rate" larger, that may affect the meter normal work.
This patch refactor the buckets calculation, and start
with a full buckets. It also makes the calculation equal
to what kernel datapath does.

Signed-off-by: Tonghao Zhang <xiangxia.m.yue at gmail.com>
Signed-off-by: Ilya Maximets <i.maximets at ovn.org>


Compare: https://github.com/openvswitch/ovs/compare/fc8444fb1d7e...a112239ff5f6


More information about the git mailing list