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

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


  Branch: refs/heads/branch-2.15
  Home:   https://github.com/openvswitch/ovs
  Commit: 73ece9c87b135819d8bd820adcd7b565b48cf04f
      https://github.com/openvswitch/ovs/commit/73ece9c87b135819d8bd820adcd7b565b48cf04f
  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: 3a716b1d9c63f3518b74fefeea5cb1b47611221b
      https://github.com/openvswitch/ovs/commit/3a716b1d9c63f3518b74fefeea5cb1b47611221b
  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/d5dc16670ec9...3a716b1d9c63


More information about the git mailing list