blob: bb8fe0815bc8052d02cfe6f974b9e48d732ceed3 [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// listDeviceFlows returns device flows
24func (agent *Agent) listDeviceFlows() map[uint64]*ofp.OfpFlowStats {
25 flowIDs := agent.flowLoader.List()
26 flows := make(map[uint64]*ofp.OfpFlowStats, len(flowIDs))
27 for flowID := range flowIDs {
28 if flowHandle, have := agent.flowLoader.Lock(flowID); have {
29 flows[flowID] = flowHandle.GetReadOnly()
30 flowHandle.Unlock()
31 }
32 }
33 return flows
34}