ONOS-6717 Meter Protobuf model
Change-Id: I0cba2811957ce9cab370c229fbdfa61712635d69
diff --git a/incubator/protobuf/models/src/main/proto/net/meter/BandEnumsProto.proto b/incubator/protobuf/models/src/main/proto/net/meter/BandEnumsProto.proto
new file mode 100644
index 0000000..10879a7
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/meter/BandEnumsProto.proto
@@ -0,0 +1,28 @@
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.meter.models";
+
+package net.meter;
+
+/**
+* Specifies the type of band.
+*/
+enum BandTypeProto {
+ /**
+ * Simple rate limiter which drops packets
+ * when the rate is exceeded.
+ */
+ DROP = 0;
+
+ /**
+ * defines a simple DiffServ policer that remark
+ * the drop precedence of the DSCP field in the
+ * IP header of the packets that exceed the band
+ * rate value.
+ */
+ REMARK = 1;
+
+ /**
+ * defines an experimental meter band.
+ */
+ EXPERIMENTAL = 2;
+}
diff --git a/incubator/protobuf/models/src/main/proto/net/meter/BandProto.proto b/incubator/protobuf/models/src/main/proto/net/meter/BandProto.proto
new file mode 100644
index 0000000..ca7f28b
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/meter/BandProto.proto
@@ -0,0 +1,16 @@
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.meter.models";
+
+package net.meter;
+
+import "net/meter/BandEnumsProto.proto";
+
+// Corresponds to org.onosproject.net.meter.Band.
+message BandProto {
+ uint64 rate = 1;
+ uint64 burst = 2;
+ uint32 drop_precedence = 3;
+ BandTypeProto type = 4;
+ uint64 packets = 5;
+ uint64 bytes = 6;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/src/main/proto/net/meter/MeterEnumsProto.proto b/incubator/protobuf/models/src/main/proto/net/meter/MeterEnumsProto.proto
new file mode 100644
index 0000000..3d1a67f
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/meter/MeterEnumsProto.proto
@@ -0,0 +1,66 @@
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.meter.models";
+
+package net.meter;
+
+enum MeterUnitProto {
+ /**
+ * Packets per second.
+ */
+ PKTS_PER_SEC = 0;
+
+ /**
+ * Kilo bits per second.
+ */
+ KB_PER_SEC = 1;
+}
+
+enum MeterStateProto {
+ /**
+ * The meter is in the process of being added.
+ */
+ PENDING_ADD = 0;
+
+ /**
+ * THe meter has been added.
+ */
+ ADDED = 1;
+
+ /**
+ * The meter is in the process of being removed.
+ */
+ PENDING_REMOVE = 2;
+
+ /**
+ * The meter has been removed.
+ */
+ REMOVED = 3;
+}
+
+enum MeterRequestTypeProto {
+ ADD = 0;
+ MODIFY = 1;
+ REMOVE = 2;
+}
+
+enum MeterEventTypeProto {
+ /**
+ * A meter addition was requested.
+ */
+ METER_ADD_REQ = 0;
+
+ /**
+ * A meter removal was requested.
+ */
+ METER_REM_REQ = 1;
+
+ /**
+ * A meter was finally added to device.
+ */
+ METER_ADDED = 2;
+
+ /**
+ * A meter was finally removed from device.
+ */
+ METER_REMOVED = 3;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/src/main/proto/net/meter/MeterEventProto.proto b/incubator/protobuf/models/src/main/proto/net/meter/MeterEventProto.proto
new file mode 100644
index 0000000..54ad1cc
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/meter/MeterEventProto.proto
@@ -0,0 +1,13 @@
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.meter.models";
+
+package net.meter;
+
+import "net/meter/MeterEnumsProto.proto";
+import "net/meter/MeterProto.proto";
+
+// Corresponds to org.onosproject.net.meter.MeterEvent.
+message MeterNotificationProto {
+ MeterEventTypeProto type = 1;
+ MeterProto meter = 2;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/src/main/proto/net/meter/MeterProto.proto b/incubator/protobuf/models/src/main/proto/net/meter/MeterProto.proto
new file mode 100644
index 0000000..02be225
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/meter/MeterProto.proto
@@ -0,0 +1,22 @@
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.meter.models";
+
+package net.meter;
+
+import "net/meter/BandProto.proto";
+import "net/meter/MeterEnumsProto.proto";
+import "core/ApplicationIdProto.proto";
+
+message MeterProto {
+ string device_id = 1;
+ uint64 meter_id = 2;
+ core.ApplicationIdProto application_id = 3;
+ MeterUnitProto unit = 4;
+ bool is_burst = 5;
+ repeated BandProto bands = 6;
+ MeterStateProto state = 7;
+ uint64 life = 8;
+ uint64 reference_count = 9;
+ uint64 packets_seen = 10;
+ uint64 bytes_seen = 11;
+}
\ No newline at end of file
diff --git a/incubator/protobuf/models/src/main/proto/net/meter/MeterRequestProto.proto b/incubator/protobuf/models/src/main/proto/net/meter/MeterRequestProto.proto
new file mode 100644
index 0000000..5fdebb6
--- /dev/null
+++ b/incubator/protobuf/models/src/main/proto/net/meter/MeterRequestProto.proto
@@ -0,0 +1,17 @@
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.meter.models";
+
+package net.meter;
+
+import "net/meter/BandProto.proto";
+import "net/meter/MeterEnumsProto.proto";
+import "core/ApplicationIdProto.proto";
+
+message MeterRequestProto {
+ string device_id = 1;
+ core.ApplicationIdProto application_id = 2;
+ MeterUnitProto unit = 3;
+ bool is_burst = 4;
+ repeated BandProto bands = 5;
+ MeterRequestTypeProto type = 6;
+}
\ No newline at end of file