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

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


  Branch: refs/heads/branch-2.14
  Home:   https://github.com/openvswitch/ovs
  Commit: 9f3b8a9e6be993d8ff56e8d27ba00048a27b5d5d
      https://github.com/openvswitch/ovs/commit/9f3b8a9e6be993d8ff56e8d27ba00048a27b5d5d
  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: 512af277be7d1d60e67345b5717b2eff2e06162f
      https://github.com/openvswitch/ovs/commit/512af277be7d1d60e67345b5717b2eff2e06162f
  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/303f5a762880...512af277be7d


More information about the git mailing list