This patch series is the first attempt to add openvswitch meter support. We have previously experimented with adding metering support in nftables. However 1) It was not clear how to expose a named nftables object cleanly, and 2) the logic that implements metering is quite small, < 100 lines of code.
With those two observations, it seems cleaner to add meter support in the openvswitch module directly. --- v1(RFC)->v2: remove unused code improve locking and other review comments v2 -> v3: rebase v3 -> v4: fix undefined "__udivdi3" references on 32 bit builds. use div_u64() instead. Andy Zhou (4): openvswitch: Add meter netlink definitions openvswitch: export get_dp() API. openvswitch: Add meter infrastructure openvswitch: Add meter action support include/uapi/linux/openvswitch.h | 54 ++++ net/openvswitch/Makefile | 1 + net/openvswitch/actions.c | 6 + net/openvswitch/datapath.c | 43 +-- net/openvswitch/datapath.h | 35 +++ net/openvswitch/flow_netlink.c | 6 + net/openvswitch/meter.c | 604 +++++++++++++++++++++++++++++++++++++++ net/openvswitch/meter.h | 54 ++++ 8 files changed, 772 insertions(+), 31 deletions(-) create mode 100644 net/openvswitch/meter.c create mode 100644 net/openvswitch/meter.h -- 1.8.3.1 *** BLURB HERE *** Andy Zhou (4): openvswitch: Add meter netlink definitions openvswitch: export get_dp() API. openvswitch: Add meter infrastructure openvswitch: Add meter action support include/uapi/linux/openvswitch.h | 54 ++++ net/openvswitch/Makefile | 1 + net/openvswitch/actions.c | 6 + net/openvswitch/datapath.c | 43 +-- net/openvswitch/datapath.h | 35 +++ net/openvswitch/flow_netlink.c | 6 + net/openvswitch/meter.c | 604 +++++++++++++++++++++++++++++++++++++++ net/openvswitch/meter.h | 54 ++++ 8 files changed, 772 insertions(+), 31 deletions(-) create mode 100644 net/openvswitch/meter.c create mode 100644 net/openvswitch/meter.h -- 1.8.3.1