VOL-1598 Update openolt.proto for multicast support

Change-Id: I84a07712070a82a53eba452cb103c32a33b73386
diff --git a/protos/voltha_protos/openolt.proto b/protos/voltha_protos/openolt.proto
index 7e51b8e..f480335 100644
--- a/protos/voltha_protos/openolt.proto
+++ b/protos/voltha_protos/openolt.proto
@@ -165,6 +165,13 @@
     }
 
     rpc EnableIndication(Empty) returns (stream Indication) {}
+
+    rpc PerformGroupOperation(Group) returns (Empty) {
+        option (google.api.http) = {
+          post: "/v1/PerformGroupOperation"
+          body: "*"
+        };
+    }
 }
 
 message Indication {
@@ -355,6 +362,12 @@
     bool add_outer_tag = 1;
     bool remove_outer_tag = 2;
     bool trap_to_host = 3;
+    bool remark_outer_pbits = 4;
+    bool remark_inner_pbits = 5;
+    bool add_inner_tag = 6;
+    bool remove_inner_tag = 7;
+    bool translate_inner_tag = 8;
+    bool translate_outer_tag = 9;
 }
 
 message Action {
@@ -381,6 +394,7 @@
     sfixed32 priority = 9;
     fixed64 cookie = 12; // must be provided for any flow with trap_to_host action. Returned in PacketIndication
     fixed32 port_no = 13; // must be provided for any flow with trap_to_host action. Returned in PacketIndication
+    fixed32 group_id = 14;
 }
 
 message SerialNumber {
@@ -502,4 +516,33 @@
     fixed32 onu_id = 2;
 }
 
+message GroupMember {
+    enum InterfaceType {
+        PON = 0;
+        EPON_1G_PATH = 1;
+        EPON_10G_PATH = 2;
+    }
+    uint32 interface_id = 1;
+    InterfaceType interface_type = 2;
+    uint32 gem_port_id = 3;
+    uint32 priority = 4; // Priority (and also the ID) of the default fixed queue for the multicast traffic.
+                         // This queue is attached to the default PON port scheduler.
+}
+
+message Group {
+    enum GroupMembersCommand {
+        ADD_MEMBERS = 0;
+        REMOVE_MEMBERS = 1;
+        SET_MEMBERS = 2;
+    }
+
+    uint32 group_id = 1;
+    GroupMembersCommand command = 2;
+    repeated GroupMember members = 3;
+    Action action = 4;
+}
+
+
+
 message Empty {}
+