VOL-1596 Add Support for handling multicast groups in OpenOLT Adapter.
VOL-1595 Add Support for handling multicast flows in OpenOLT Adapter.

Depends voltha-protos from the patch below:
https://gerrit.opencord.org/#/c/16690/

Change-Id: I1cc9900bd6400bb31aed11beda674138838a21d2
diff --git a/mocks/mockKVClient.go b/mocks/mockKVClient.go
index b6ba991..7d12cac 100644
--- a/mocks/mockKVClient.go
+++ b/mocks/mockKVClient.go
@@ -23,12 +23,12 @@
 	"strconv"
 	"strings"
 
-	"github.com/opencord/voltha-lib-go/v2/pkg/log"
+	"github.com/opencord/voltha-lib-go/v3/pkg/log"
 	"github.com/opencord/voltha-openolt-adapter/adaptercore/resourcemanager"
 
-	"github.com/opencord/voltha-lib-go/v2/pkg/db/kvstore"
-	ofp "github.com/opencord/voltha-protos/v2/go/openflow_13"
-	openolt "github.com/opencord/voltha-protos/v2/go/openolt"
+	"github.com/opencord/voltha-lib-go/v3/pkg/db/kvstore"
+	ofp "github.com/opencord/voltha-protos/v3/go/openflow_13"
+	openolt "github.com/opencord/voltha-protos/v3/go/openolt"
 )
 
 const (
@@ -46,6 +46,10 @@
 	GemportIDs = "gemport_ids"
 	// AllocIDs to extract alloc_ids
 	AllocIDs = "alloc_ids"
+	//FlowGroup flow_groups/<flow_group_id>
+	FlowGroup = "flow_groups"
+	//FlowGroupCached flow_groups_cached/<flow_group_id>
+	FlowGroupCached = "flow_groups_cached"
 )
 
 // MockKVClient mocks the AdapterProxy interface.
@@ -131,6 +135,7 @@
 				{
 					Flow:            &openolt.Flow{FlowId: 1, OnuId: 1, UniId: 1, GemportId: 1},
 					FlowStoreCookie: uint64(48132224281636694),
+					LogicalFlowID:   1,
 				},
 			}
 			log.Debug("Error Error Error Key:", FlowIDs)
@@ -147,6 +152,16 @@
 			str, _ := json.Marshal(1)
 			return kvstore.NewKVPair(key, str, "mock", 3000, 1), nil
 		}
+		if strings.Contains(key, FlowGroup) || strings.Contains(key, FlowGroupCached) {
+			log.Debug("Error Error Error Key:", FlowGroup)
+			groupInfo := resourcemanager.GroupInfo{
+				GroupID:  2,
+				OutPorts: []uint32{1},
+			}
+			str, _ := json.Marshal(&groupInfo)
+			return kvstore.NewKVPair(key, str, "mock", 3000, 1), nil
+		}
+
 		maps := make(map[string]*kvstore.KVPair)
 		maps[key] = &kvstore.KVPair{Key: key}
 		return maps[key], nil