blob: b4fbe3bb1977e3821093d0f7a9f4850997f412e8 [file] [log] [blame]
Sangsik Yoonf0b3ad82016-08-19 18:47:59 +09001/*
Brian O'Connora09fe5b2017-08-03 21:12:30 -07002 * Copyright 2016-present Open Networking Foundation
Sangsik Yoonf0b3ad82016-08-19 18:47:59 +09003 *
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 org.onosproject.incubator.net.dpi;
18
19import java.util.List;
20import static com.google.common.base.MoreObjects.toStringHelper;
21
22/**
23 * DPI statistic information.
24 */
25public class DpiStatInfo {
26 TrafficStatInfo trafficStatistics;
27 List<ProtocolStatInfo> detectedProtos;
28 List<FlowStatInfo> knownFlows;
29 List<FlowStatInfo> unknownFlows;
30
31 /**
32 * Constructor for default DpiStatInfo class.
33 */
34 public DpiStatInfo() {
35 this.trafficStatistics = null;
36 this.detectedProtos = null;
37 this.knownFlows = null;
38 this.unknownFlows = null;
39 }
40
41 /**
42 * Constructor for DpiStatistics class specified with trafficStatInfo.
43 *
44 * @param trafficStatistics traffic statistic information
45 */
46 public DpiStatInfo(TrafficStatInfo trafficStatistics) {
47 this.trafficStatistics = trafficStatistics;
48 this.detectedProtos = null;
49 this.knownFlows = null;
50 this.unknownFlows = null;
51 }
52
53 /**
54 * Constructor for DpiStatistics class specified with trafficStatInfo and detectedProtos.
55 *
56 * @param trafficStatistics traffic statistic information
57 * @param detectedProtos detected protocols statistic information
58 */
59 public DpiStatInfo(TrafficStatInfo trafficStatistics,
60 List<ProtocolStatInfo> detectedProtos) {
61 this.trafficStatistics = trafficStatistics;
62 this.detectedProtos = detectedProtos;
63 this.knownFlows = null;
64 this.unknownFlows = null;
65 }
66
67 /**
68 * Constructor for DpiStatistics class specified with trafficStatInfo, detectedProtos and knownFlows.
69 *
70 * @param trafficStatistics traffic statistic information
71 * @param detectedProtos detected protocols statistic information
72 * @param knownFlows known flows
73 */
74 public DpiStatInfo(TrafficStatInfo trafficStatistics,
75 List<ProtocolStatInfo> detectedProtos,
76 List<FlowStatInfo> knownFlows) {
77 this.trafficStatistics = trafficStatistics;
78 this.detectedProtos = detectedProtos;
79 this.knownFlows = knownFlows;
80 this.unknownFlows = null;
81 }
82
83 /**
84 * Constructor for DpiStatistics class specified with trafficStatInfo, detectedProtos, knownFlows and unknownFlows.
85 *
86 * @param trafficStatistics traffic statistic information
87 * @param detectedProtos detected protocols statistic information
88 * @param knownFlows known flows
89 * @param unknownFlows unknown flows
90 */
91 public DpiStatInfo(TrafficStatInfo trafficStatistics,
92 List<ProtocolStatInfo> detectedProtos,
93 List<FlowStatInfo> knownFlows,
94 List<FlowStatInfo> unknownFlows) {
95 this.trafficStatistics = trafficStatistics;
96 this.detectedProtos = detectedProtos;
97 this.knownFlows = knownFlows;
98 this.unknownFlows = unknownFlows;
99 }
100
101 /**
102 * Returns DPI traffic statistic information.
103 *
104 * @return trafficStatistics
105 */
106 public TrafficStatInfo trafficStatistics() {
107 return trafficStatistics;
108 }
109
110 /**
111 * Returns DPI detected protocols statistic information.
112 *
113 * @return detectedProtos
114 */
115 public List<ProtocolStatInfo> detectedProtos() {
116 return detectedProtos;
117 }
118
119 /**
120 * Returns DPI known flows.
121 *
122 * @return knownFlows
123 */
124 public List<FlowStatInfo> knownFlows() {
125 return knownFlows;
126 }
127
128 /**
129 * Returns DPI unknown flows.
130 *
131 * @return unknownFlows
132 */
133 public List<FlowStatInfo> unknownFlows() {
134 return unknownFlows;
135 }
136
137 /**
138 * Sets the traffic statistic information.
Ray Milkeyef794342016-11-09 16:20:29 -0800139 *
140 * @param trafficStatistics traffic statistics
Sangsik Yoonf0b3ad82016-08-19 18:47:59 +0900141 */
142 public void setTrafficStatistics(TrafficStatInfo trafficStatistics) {
143 this.trafficStatistics = trafficStatistics;
144 }
145
146 /**
147 * Sets the detected protocols statistic information.
Ray Milkeyef794342016-11-09 16:20:29 -0800148 *
149 * @param detectedProtos detected protocols statistics
Sangsik Yoonf0b3ad82016-08-19 18:47:59 +0900150 */
151 public void setDetectedProtos(List<ProtocolStatInfo> detectedProtos) {
152 this.detectedProtos = detectedProtos;
153 }
154
155 /**
156 * Sets the known flows information.
Ray Milkeyef794342016-11-09 16:20:29 -0800157 *
158 * @param knownFlows known flows
Sangsik Yoonf0b3ad82016-08-19 18:47:59 +0900159 */
160 public void setKnownFlows(List<FlowStatInfo> knownFlows) {
161 this.knownFlows = knownFlows;
162 }
163
164 /**
165 * Sets the unknown flows information.
Ray Milkeyef794342016-11-09 16:20:29 -0800166 *
167 * @param unknownFlows unknown flows
Sangsik Yoonf0b3ad82016-08-19 18:47:59 +0900168 */
169 public void setUnknownFlows(List<FlowStatInfo> unknownFlows) {
170 this.unknownFlows = unknownFlows;
171 }
172
173 @Override
174 public String toString() {
175 return toStringHelper(this)
176 .add("trafficStatistics", trafficStatistics)
177 .add("detectedProtos", detectedProtos)
178 .add("knownFlows", knownFlows)
179 .add("unknownFlows", unknownFlows)
180 .toString();
181 }
182}