blob: 18ac83ae98f390d20d8e099920b23932f5af51f8 [file] [log] [blame]
Mahir Gunyel03de0d32020-06-03 01:36:59 -07001/*
2 * Copyright 2018-present Open Networking Foundation
3
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7
8 * http://www.apache.org/licenses/LICENSE-2.0
9
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package device
18
19import (
20 ofp "github.com/opencord/voltha-protos/v3/go/openflow_13"
21)
22
23// listDeviceGroups returns logical device flow groups
24func (agent *Agent) listDeviceGroups() map[uint32]*ofp.OfpGroupEntry {
25 groupIDs := agent.groupLoader.List()
26 groups := make(map[uint32]*ofp.OfpGroupEntry, len(groupIDs))
27 for groupID := range groupIDs {
28 if groupHandle, have := agent.groupLoader.Lock(groupID); have {
29 groups[groupID] = groupHandle.GetReadOnly()
30 groupHandle.Unlock()
31 }
32 }
33 return groups
34}