Meter has its own netlink family. Define netlink messages and attributes for communicating with the user space programs.
Showing the changes to include/uapi/linux (1 of 1 file). Show all
Unified · Split
| @@ -883,4 +883,55 @@ enum ovs_action_attr { · 882 unmodified lines | ||
| 883 | 883 | |
| 884 | 884 | #define OVS_ACTION_ATTR_MAX (__OVS_ACTION_ATTR_MAX - 1) |
| 885 | 885 | |
| 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 | + | |
| 886 | 937 | #endif /* _LINUX_OPENVSWITCH_H */ |