Initial commit for the PM management apis and placeholders for
implementation
Amendment: Made changes recommended by reviewers with the actual
changes this time.
Change-Id: I9a0d98d456f95a0eee67614f0bec43923815537b
diff --git a/voltha/protos/device.proto b/voltha/protos/device.proto
index b4d3c46..8cc22d4 100644
--- a/voltha/protos/device.proto
+++ b/voltha/protos/device.proto
@@ -29,6 +29,35 @@
repeated DeviceType items = 1;
}
+message PmConfig {
+ enum PmType {
+ COUNTER = 0;
+ GUAGE = 1;
+ STATE = 2;
+ }
+ string name = 1;
+ PmType type = 2;
+ bool enabled = 3; // Whether or not this metric makes it to Kafka
+ uint32 sample_freq = 4; // Sample rate in 10ths of a second
+}
+
+message PmGroupConfig {
+ string group_name = 1;
+ uint32 group_freq = 2; // Frequency applicable to the grop
+ bool enabled = 3; // Enable/disable group level only
+ repeated PmConfig metrics = 4;
+}
+
+message PmConfigs {
+ uint32 default_freq = 1; // Default sample rate
+ // Forces group names and group semantics
+ bool grouped = 2 [(access) = READ_ONLY];
+ // Allows Pm to set an individual sample frequency
+ bool freq_override = 3 [(access) = READ_ONLY];
+ repeated PmGroupConfig groups = 4; // The groups if grouped is true
+ repeated PmConfig metrics = 5; // The metrics themselves if grouped is false.
+}
+
message Port {
option (voltha.yang_child_rule) = MOVE_TO_PARENT_LEVEL;
@@ -135,6 +164,7 @@
repeated Port ports = 128 [(child_node) = {key: "port_no"}];
openflow_13.Flows flows = 129 [(child_node) = {}];
openflow_13.FlowGroups flow_groups = 130 [(child_node) = {}];
+ PmConfigs kpis = 131 [(child_node) = {}];
}