blob: 0410e471ef638f9303d21e9752ace4bc576876d2 [file] [log] [blame]
Sean Condon0e89bda2017-03-21 14:23:19 +00001/*
2 * Copyright 2017-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 */
16package org.onosproject.incubator.net.l2monitoring.soam.loss;
17
18import java.time.Duration;
19
20import org.onosproject.incubator.net.l2monitoring.soam.MilliPct;
21
22/**
23 * The default implementation of {@link org.onosproject.incubator.net.l2monitoring.soam.loss.LossMeasurementStat}.
24 */
25public abstract class DefaultLmStat implements LossMeasurementStat {
26 private final Duration elapsedTime;
27 private final boolean suspectStatus;
28 private final Long forwardTransmittedFrames;
29 private final Long forwardReceivedFrames;
30 private final MilliPct forwardMinFrameLossRatio;
31 private final MilliPct forwardMaxFrameLossRatio;
32 private final MilliPct forwardAverageFrameLossRatio;
33 private final Long backwardTransmittedFrames;
34 private final Long backwardReceivedFrames;
35 private final MilliPct backwardMinFrameLossRatio;
36 private final MilliPct backwardMaxFrameLossRatio;
37 private final MilliPct backwardAverageFrameLossRatio;
38 private final Long soamPdusSent;
39 private final Long soamPdusReceived;
40
41 protected DefaultLmStat(DefaultLmStatBuilder builder) {
42 this.elapsedTime = builder.elapsedTime;
43 this.suspectStatus = builder.suspectStatus;
44 this.forwardTransmittedFrames = builder.forwardTransmittedFrames;
45 this.forwardReceivedFrames = builder.forwardReceivedFrames;
46 this.forwardMinFrameLossRatio = builder.forwardMinFrameLossRatio;
47 this.forwardMaxFrameLossRatio = builder.forwardMaxFrameLossRatio;
48 this.forwardAverageFrameLossRatio = builder.forwardAverageFrameLossRatio;
49 this.backwardTransmittedFrames = builder.backwardTransmittedFrames;
50 this.backwardReceivedFrames = builder.backwardReceivedFrames;
51 this.backwardMinFrameLossRatio = builder.backwardMinFrameLossRatio;
52 this.backwardMaxFrameLossRatio = builder.backwardMaxFrameLossRatio;
53 this.backwardAverageFrameLossRatio = builder.backwardAverageFrameLossRatio;
54 this.soamPdusSent = builder.soamPdusSent;
55 this.soamPdusReceived = builder.soamPdusReceived;
56 }
57
58 @Override
59 public Duration elapsedTime() {
60 return this.elapsedTime;
61 }
62
63 @Override
64 public boolean suspectStatus() {
65 return this.suspectStatus;
66 }
67
68 @Override
69 public Long forwardTransmittedFrames() {
70 return this.forwardTransmittedFrames;
71 }
72
73 @Override
74 public Long forwardReceivedFrames() {
75 return this.forwardReceivedFrames;
76 }
77
78 @Override
79 public MilliPct forwardMinFrameLossRatio() {
80 return this.forwardMinFrameLossRatio;
81 }
82
83 @Override
84 public MilliPct forwardMaxFrameLossRatio() {
85 return this.forwardMaxFrameLossRatio;
86 }
87
88 @Override
89 public MilliPct forwardAverageFrameLossRatio() {
90 return this.forwardAverageFrameLossRatio;
91 }
92
93 @Override
94 public Long backwardTransmittedFrames() {
95 return this.backwardTransmittedFrames;
96 }
97
98 @Override
99 public Long backwardReceivedFrames() {
100 return this.backwardReceivedFrames;
101 }
102
103 @Override
104 public MilliPct backwardMinFrameLossRatio() {
105 return this.backwardMinFrameLossRatio;
106 }
107
108 @Override
109 public MilliPct backwardMaxFrameLossRatio() {
110 return this.backwardMaxFrameLossRatio;
111 }
112
113 @Override
114 public MilliPct backwardAverageFrameLossRatio() {
115 return this.backwardAverageFrameLossRatio;
116 }
117
118 @Override
119 public Long soamPdusSent() {
120 return this.soamPdusSent;
121 }
122
123 @Override
124 public Long soamPdusReceived() {
125 return this.soamPdusReceived;
126 }
127
128 /**
129 * Abstract implementation of LmStatBuilder.
130 * {@link org.onosproject.incubator.net.l2monitoring.soam.loss.LossMeasurementStat.LmStatBuilder}
131 */
132 protected abstract static class DefaultLmStatBuilder implements LmStatBuilder {
133 private final Duration elapsedTime;
134 private final boolean suspectStatus;
135 private Long forwardTransmittedFrames;
136 private Long forwardReceivedFrames;
137 private MilliPct forwardMinFrameLossRatio;
138 private MilliPct forwardMaxFrameLossRatio;
139 private MilliPct forwardAverageFrameLossRatio;
140 private Long backwardTransmittedFrames;
141 private Long backwardReceivedFrames;
142 private MilliPct backwardMinFrameLossRatio;
143 private MilliPct backwardMaxFrameLossRatio;
144 private MilliPct backwardAverageFrameLossRatio;
145 private Long soamPdusSent;
146 private Long soamPdusReceived;
147
148 protected DefaultLmStatBuilder(Duration elapsedTime, boolean suspectStatus) {
149 this.elapsedTime = elapsedTime;
150 this.suspectStatus = suspectStatus;
151 }
152
153 @Override
154 public LmStatBuilder forwardTransmittedFrames(
155 Long forwardTransmittedFrames) {
156 this.forwardTransmittedFrames = forwardTransmittedFrames;
157 return this;
158 }
159
160 @Override
161 public LmStatBuilder forwardReceivedFrames(Long forwardReceivedFrames) {
162 this.forwardReceivedFrames = forwardReceivedFrames;
163 return this;
164 }
165
166 @Override
167 public LmStatBuilder forwardMinFrameLossRatio(
168 MilliPct forwardMinFrameLossRatio) {
169 this.forwardMinFrameLossRatio = forwardMinFrameLossRatio;
170 return this;
171 }
172
173 @Override
174 public LmStatBuilder forwardMaxFrameLossRatio(
175 MilliPct forwardMaxFrameLossRatio) {
176 this.forwardMaxFrameLossRatio = forwardMaxFrameLossRatio;
177 return this;
178 }
179
180 @Override
181 public LmStatBuilder forwardAverageFrameLossRatio(
182 MilliPct forwardAverageFrameLossRatio) {
183 this.forwardAverageFrameLossRatio = forwardAverageFrameLossRatio;
184 return this;
185 }
186
187 @Override
188 public LmStatBuilder backwardTransmittedFrames(
189 Long backwardTransmittedFrames) {
190 this.backwardTransmittedFrames = backwardTransmittedFrames;
191 return this;
192 }
193
194 @Override
195 public LmStatBuilder backwardReceivedFrames(
196 Long backwardReceivedFrames) {
197 this.backwardReceivedFrames = backwardReceivedFrames;
198 return this;
199 }
200
201 @Override
202 public LmStatBuilder backwardMinFrameLossRatio(
203 MilliPct backwardMinFrameLossRatio) {
204 this.backwardMinFrameLossRatio = backwardMinFrameLossRatio;
205 return this;
206 }
207
208 @Override
209 public LmStatBuilder backwardMaxFrameLossRatio(
210 MilliPct backwardMaxFrameLossRatio) {
211 this.backwardMaxFrameLossRatio = backwardMaxFrameLossRatio;
212 return this;
213 }
214
215 @Override
216 public LmStatBuilder backwardAverageFrameLossRatio(
217 MilliPct backwardAverageFrameLossRatio) {
218 this.backwardAverageFrameLossRatio = backwardAverageFrameLossRatio;
219 return this;
220 }
221
222 @Override
223 public LmStatBuilder soamPdusSent(Long soamPdusSent) {
224 this.soamPdusSent = soamPdusSent;
225 return this;
226 }
227
228 @Override
229 public LmStatBuilder soamPdusReceived(Long soamPdusReceived) {
230 this.soamPdusReceived = soamPdusReceived;
231 return this;
232 }
233 }
234
235}