Add gRPC API for multicast service.
Change-Id: I003b982145c788e74c39f525122d58f3204b1c0e
diff --git a/incubator/protobuf-nb/src/main/proto/MulticastRouteService.proto b/incubator/protobuf-nb/src/main/proto/MulticastRouteService.proto
new file mode 100644
index 0000000..f74048a
--- /dev/null
+++ b/incubator/protobuf-nb/src/main/proto/MulticastRouteService.proto
@@ -0,0 +1,51 @@
+syntax = "proto3";
+option java_package = "org.onosproject.grpc.net.mcast";
+
+package Multicast;
+
+// TODO move model objects to common protobuf package
+
+message ConnectPoint {
+ string deviceId = 1;
+ uint64 portNumber = 2;
+}
+
+enum MulticastRouteType {
+ PIM = 0;
+ IGMP = 1;
+ STATIC = 2;
+}
+
+enum MulticastOperationResult {
+ SUCCESS = 0;
+ FAIL = 1;
+}
+
+enum MulticastOperation {
+ ADD_ROUTE = 0;
+ ADD_SOURCE = 1;
+ ADD_SINK = 2;
+ REMOVE_ROUTE = 3;
+ REMOVE_SOURCE = 4;
+ REMOVE_SINK = 5;
+}
+
+message MulticastRoute {
+ fixed32 source = 1; // TODO assumes ipv4
+ fixed32 group = 2;
+ MulticastRouteType type = 3;
+}
+
+message MulticastReply {
+ MulticastOperationResult result = 1;
+}
+
+message MulticastRequest {
+ MulticastOperation operation = 1;
+ MulticastRoute route = 2;
+ ConnectPoint connectPoint = 3;
+}
+
+service MulticastRouteService {
+ rpc operation(stream MulticastRequest) returns (stream MulticastReply) {}
+}