Skip to content

Commit

Permalink
openvswitch: Add meter netlink definitions
Browse files Browse the repository at this point in the history
Meter has its own netlink family. Define netlink messages and attributes
for communicating with the user space programs.

Signed-off-by: Andy Zhou <azhou@ovn.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Andy Zhou authored and David S. Miller committed Nov 13, 2017
1 parent aef1e0d commit 5794040
Showing 1 changed file with 51 additions and 0 deletions.
51 changes: 51 additions & 0 deletions include/uapi/linux/openvswitch.h
Original file line number Diff line number Diff line change
Expand Up @@ -883,4 +883,55 @@ enum ovs_action_attr {

#define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1)

/* Meters. */
#define OVS_METER_FAMILY "ovs_meter"
#define OVS_METER_MCGROUP "ovs_meter"
#define OVS_METER_VERSION 0x1

enum ovs_meter_cmd {
OVS_METER_CMD_UNSPEC,
OVS_METER_CMD_FEATURES, /* Get features supported by the datapath. */
OVS_METER_CMD_SET, /* Add or modify a meter. */
OVS_METER_CMD_DEL, /* Delete a meter. */
OVS_METER_CMD_GET /* Get meter stats. */
};

enum ovs_meter_attr {
OVS_METER_ATTR_UNSPEC,
OVS_METER_ATTR_ID, /* u32 meter ID within datapath. */
OVS_METER_ATTR_KBPS, /* No argument. If set, units in kilobits
* per second. Otherwise, units in
* packets per second.
*/
OVS_METER_ATTR_STATS, /* struct ovs_flow_stats for the meter. */
OVS_METER_ATTR_BANDS, /* Nested attributes for meter bands. */
OVS_METER_ATTR_USED, /* u64 msecs last used in monotonic time. */
OVS_METER_ATTR_CLEAR, /* Flag to clear stats, used. */
OVS_METER_ATTR_MAX_METERS, /* u32 number of meters supported. */
OVS_METER_ATTR_MAX_BANDS, /* u32 max number of bands per meter. */
OVS_METER_ATTR_PAD,
__OVS_METER_ATTR_MAX
};

#define OVS_METER_ATTR_MAX (__OVS_METER_ATTR_MAX - 1)

enum ovs_band_attr {
OVS_BAND_ATTR_UNSPEC,
OVS_BAND_ATTR_TYPE, /* u32 OVS_METER_BAND_TYPE_* constant. */
OVS_BAND_ATTR_RATE, /* u32 band rate in meter units (see above). */
OVS_BAND_ATTR_BURST, /* u32 burst size in meter units. */
OVS_BAND_ATTR_STATS, /* struct ovs_flow_stats for the band. */
__OVS_BAND_ATTR_MAX
};

#define OVS_BAND_ATTR_MAX (__OVS_BAND_ATTR_MAX - 1)

enum ovs_meter_band_type {
OVS_METER_BAND_TYPE_UNSPEC,
OVS_METER_BAND_TYPE_DROP, /* Drop exceeding packets. */
__OVS_METER_BAND_TYPE_MAX
};

#define OVS_METER_BAND_TYPE_MAX (__OVS_METER_BAND_TYPE_MAX - 1)

#endif /* _LINUX_OPENVSWITCH_H */

0 comments on commit 5794040

Please sign in to comment.