History

openvswitch: Add meter netlink definitions

Meter has its own netlink family. Define netlink messages and attributes for communicating with the user space programs.

Andy Zhou committed 9 years ago

Commit 57940401 parent aef1e0d1 file · +51 −0Browse files

Showing the changes to include/uapi/linux (1 of 1 file). Show all

Unified · Split

include/uapi/linux/openvswitch.h+51−0
@@ -883,4 +883,55 @@ enum ovs_action_attr { · 882 unmodified lines
883883
884884 #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1)
885885
886+/* Meters. */
887+#define OVS_METER_FAMILY "ovs_meter"
888+#define OVS_METER_MCGROUP "ovs_meter"
889+#define OVS_METER_VERSION 0x1
890+
891+enum ovs_meter_cmd {
892+ OVS_METER_CMD_UNSPEC,
893+ OVS_METER_CMD_FEATURES, /* Get features supported by the datapath. */
894+ OVS_METER_CMD_SET, /* Add or modify a meter. */
895+ OVS_METER_CMD_DEL, /* Delete a meter. */
896+ OVS_METER_CMD_GET /* Get meter stats. */
897+};
898+
899+enum ovs_meter_attr {
900+ OVS_METER_ATTR_UNSPEC,
901+ OVS_METER_ATTR_ID, /* u32 meter ID within datapath. */
902+ OVS_METER_ATTR_KBPS, /* No argument. If set, units in kilobits
903+ * per second. Otherwise, units in
904+ * packets per second.
905+ */
906+ OVS_METER_ATTR_STATS, /* struct ovs_flow_stats for the meter. */
907+ OVS_METER_ATTR_BANDS, /* Nested attributes for meter bands. */
908+ OVS_METER_ATTR_USED, /* u64 msecs last used in monotonic time. */
909+ OVS_METER_ATTR_CLEAR, /* Flag to clear stats, used. */
910+ OVS_METER_ATTR_MAX_METERS, /* u32 number of meters supported. */
911+ OVS_METER_ATTR_MAX_BANDS, /* u32 max number of bands per meter. */
912+ OVS_METER_ATTR_PAD,
913+ __OVS_METER_ATTR_MAX
914+};
915+
916+#define OVS_METER_ATTR_MAX (__OVS_METER_ATTR_MAX - 1)
917+
918+enum ovs_band_attr {
919+ OVS_BAND_ATTR_UNSPEC,
920+ OVS_BAND_ATTR_TYPE, /* u32 OVS_METER_BAND_TYPE_* constant. */
921+ OVS_BAND_ATTR_RATE, /* u32 band rate in meter units (see above). */
922+ OVS_BAND_ATTR_BURST, /* u32 burst size in meter units. */
923+ OVS_BAND_ATTR_STATS, /* struct ovs_flow_stats for the band. */
924+ __OVS_BAND_ATTR_MAX
925+};
926+
927+#define OVS_BAND_ATTR_MAX (__OVS_BAND_ATTR_MAX - 1)
928+
929+enum ovs_meter_band_type {
930+ OVS_METER_BAND_TYPE_UNSPEC,
931+ OVS_METER_BAND_TYPE_DROP, /* Drop exceeding packets. */
932+ __OVS_METER_BAND_TYPE_MAX
933+};
934+
935+#define OVS_METER_BAND_TYPE_MAX (__OVS_METER_BAND_TYPE_MAX - 1)
936+
886937 #endif /* _LINUX_OPENVSWITCH_H */