blob: 9321db41a88edd45a9cdac98e67f0f3109031c28 [file] [log] [blame]
tom0eb04ca2014-08-25 14:34:51 -07001// Copyright (c) 2008 The Board of Trustees of The Leland Stanford Junior University
2// Copyright (c) 2011, 2012 Open Networking Foundation
3// Copyright (c) 2012, 2013 Big Switch Networks, Inc.
4// This library was generated by the LoxiGen Compiler.
5// See the file LICENSE.txt which should have been included in the source distribution
6
7// Automatically generated by LOXI from template of_class.java
8// Do not modify
9
10package org.projectfloodlight.openflow.protocol.ver13;
11
12import org.projectfloodlight.openflow.protocol.*;
13import org.projectfloodlight.openflow.protocol.action.*;
14import org.projectfloodlight.openflow.protocol.actionid.*;
15import org.projectfloodlight.openflow.protocol.bsntlv.*;
16import org.projectfloodlight.openflow.protocol.errormsg.*;
17import org.projectfloodlight.openflow.protocol.meterband.*;
18import org.projectfloodlight.openflow.protocol.instruction.*;
19import org.projectfloodlight.openflow.protocol.instructionid.*;
20import org.projectfloodlight.openflow.protocol.match.*;
21import org.projectfloodlight.openflow.protocol.oxm.*;
22import org.projectfloodlight.openflow.protocol.queueprop.*;
23import org.projectfloodlight.openflow.types.*;
24import org.projectfloodlight.openflow.util.*;
25import org.projectfloodlight.openflow.exceptions.*;
26import org.slf4j.Logger;
27import org.slf4j.LoggerFactory;
28import java.util.Set;
29import org.jboss.netty.buffer.ChannelBuffer;
30import com.google.common.hash.PrimitiveSink;
31import com.google.common.hash.Funnel;
32
33class OFMeterBandDscpRemarkVer13 implements OFMeterBandDscpRemark {
34 private static final Logger logger = LoggerFactory.getLogger(OFMeterBandDscpRemarkVer13.class);
35 // version: 1.3
36 final static byte WIRE_VERSION = 4;
37 final static int LENGTH = 16;
38
39 private final static long DEFAULT_RATE = 0x0L;
40 private final static long DEFAULT_BURST_SIZE = 0x0L;
41 private final static short DEFAULT_PREC_LEVEL = (short) 0x0;
42
43 // OF message fields
44 private final long rate;
45 private final long burstSize;
46 private final short precLevel;
47//
48 // Immutable default instance
49 final static OFMeterBandDscpRemarkVer13 DEFAULT = new OFMeterBandDscpRemarkVer13(
50 DEFAULT_RATE, DEFAULT_BURST_SIZE, DEFAULT_PREC_LEVEL
51 );
52
53 // package private constructor - used by readers, builders, and factory
54 OFMeterBandDscpRemarkVer13(long rate, long burstSize, short precLevel) {
55 this.rate = rate;
56 this.burstSize = burstSize;
57 this.precLevel = precLevel;
58 }
59
60 // Accessors for OF message fields
61 @Override
62 public int getType() {
63 return 0x2;
64 }
65
66 @Override
67 public long getRate() {
68 return rate;
69 }
70
71 @Override
72 public long getBurstSize() {
73 return burstSize;
74 }
75
76 @Override
77 public short getPrecLevel() {
78 return precLevel;
79 }
80
81 @Override
82 public OFVersion getVersion() {
83 return OFVersion.OF_13;
84 }
85
86
87
88 public OFMeterBandDscpRemark.Builder createBuilder() {
89 return new BuilderWithParent(this);
90 }
91
92 static class BuilderWithParent implements OFMeterBandDscpRemark.Builder {
93 final OFMeterBandDscpRemarkVer13 parentMessage;
94
95 // OF message fields
96 private boolean rateSet;
97 private long rate;
98 private boolean burstSizeSet;
99 private long burstSize;
100 private boolean precLevelSet;
101 private short precLevel;
102
103 BuilderWithParent(OFMeterBandDscpRemarkVer13 parentMessage) {
104 this.parentMessage = parentMessage;
105 }
106
107 @Override
108 public int getType() {
109 return 0x2;
110 }
111
112 @Override
113 public long getRate() {
114 return rate;
115 }
116
117 @Override
118 public OFMeterBandDscpRemark.Builder setRate(long rate) {
119 this.rate = rate;
120 this.rateSet = true;
121 return this;
122 }
123 @Override
124 public long getBurstSize() {
125 return burstSize;
126 }
127
128 @Override
129 public OFMeterBandDscpRemark.Builder setBurstSize(long burstSize) {
130 this.burstSize = burstSize;
131 this.burstSizeSet = true;
132 return this;
133 }
134 @Override
135 public short getPrecLevel() {
136 return precLevel;
137 }
138
139 @Override
140 public OFMeterBandDscpRemark.Builder setPrecLevel(short precLevel) {
141 this.precLevel = precLevel;
142 this.precLevelSet = true;
143 return this;
144 }
145 @Override
146 public OFVersion getVersion() {
147 return OFVersion.OF_13;
148 }
149
150
151
152 @Override
153 public OFMeterBandDscpRemark build() {
154 long rate = this.rateSet ? this.rate : parentMessage.rate;
155 long burstSize = this.burstSizeSet ? this.burstSize : parentMessage.burstSize;
156 short precLevel = this.precLevelSet ? this.precLevel : parentMessage.precLevel;
157
158 //
159 return new OFMeterBandDscpRemarkVer13(
160 rate,
161 burstSize,
162 precLevel
163 );
164 }
165
166 }
167
168 static class Builder implements OFMeterBandDscpRemark.Builder {
169 // OF message fields
170 private boolean rateSet;
171 private long rate;
172 private boolean burstSizeSet;
173 private long burstSize;
174 private boolean precLevelSet;
175 private short precLevel;
176
177 @Override
178 public int getType() {
179 return 0x2;
180 }
181
182 @Override
183 public long getRate() {
184 return rate;
185 }
186
187 @Override
188 public OFMeterBandDscpRemark.Builder setRate(long rate) {
189 this.rate = rate;
190 this.rateSet = true;
191 return this;
192 }
193 @Override
194 public long getBurstSize() {
195 return burstSize;
196 }
197
198 @Override
199 public OFMeterBandDscpRemark.Builder setBurstSize(long burstSize) {
200 this.burstSize = burstSize;
201 this.burstSizeSet = true;
202 return this;
203 }
204 @Override
205 public short getPrecLevel() {
206 return precLevel;
207 }
208
209 @Override
210 public OFMeterBandDscpRemark.Builder setPrecLevel(short precLevel) {
211 this.precLevel = precLevel;
212 this.precLevelSet = true;
213 return this;
214 }
215 @Override
216 public OFVersion getVersion() {
217 return OFVersion.OF_13;
218 }
219
220//
221 @Override
222 public OFMeterBandDscpRemark build() {
223 long rate = this.rateSet ? this.rate : DEFAULT_RATE;
224 long burstSize = this.burstSizeSet ? this.burstSize : DEFAULT_BURST_SIZE;
225 short precLevel = this.precLevelSet ? this.precLevel : DEFAULT_PREC_LEVEL;
226
227
228 return new OFMeterBandDscpRemarkVer13(
229 rate,
230 burstSize,
231 precLevel
232 );
233 }
234
235 }
236
237
238 final static Reader READER = new Reader();
239 static class Reader implements OFMessageReader<OFMeterBandDscpRemark> {
240 @Override
241 public OFMeterBandDscpRemark readFrom(ChannelBuffer bb) throws OFParseError {
242 int start = bb.readerIndex();
243 // fixed value property type == 0x2
244 short type = bb.readShort();
245 if(type != (short) 0x2)
246 throw new OFParseError("Wrong type: Expected=0x2(0x2), got="+type);
247 int length = U16.f(bb.readShort());
248 if(length != 16)
249 throw new OFParseError("Wrong length: Expected=16(16), got="+length);
250 if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
251 // Buffer does not have all data yet
252 bb.readerIndex(start);
253 return null;
254 }
255 if(logger.isTraceEnabled())
256 logger.trace("readFrom - length={}", length);
257 long rate = U32.f(bb.readInt());
258 long burstSize = U32.f(bb.readInt());
259 short precLevel = U8.f(bb.readByte());
260 // pad: 3 bytes
261 bb.skipBytes(3);
262
263 OFMeterBandDscpRemarkVer13 meterBandDscpRemarkVer13 = new OFMeterBandDscpRemarkVer13(
264 rate,
265 burstSize,
266 precLevel
267 );
268 if(logger.isTraceEnabled())
269 logger.trace("readFrom - read={}", meterBandDscpRemarkVer13);
270 return meterBandDscpRemarkVer13;
271 }
272 }
273
274 public void putTo(PrimitiveSink sink) {
275 FUNNEL.funnel(this, sink);
276 }
277
278 final static OFMeterBandDscpRemarkVer13Funnel FUNNEL = new OFMeterBandDscpRemarkVer13Funnel();
279 static class OFMeterBandDscpRemarkVer13Funnel implements Funnel<OFMeterBandDscpRemarkVer13> {
280 private static final long serialVersionUID = 1L;
281 @Override
282 public void funnel(OFMeterBandDscpRemarkVer13 message, PrimitiveSink sink) {
283 // fixed value property type = 0x2
284 sink.putShort((short) 0x2);
285 // fixed value property length = 16
286 sink.putShort((short) 0x10);
287 sink.putLong(message.rate);
288 sink.putLong(message.burstSize);
289 sink.putShort(message.precLevel);
290 // skip pad (3 bytes)
291 }
292 }
293
294
295 public void writeTo(ChannelBuffer bb) {
296 WRITER.write(bb, this);
297 }
298
299 final static Writer WRITER = new Writer();
300 static class Writer implements OFMessageWriter<OFMeterBandDscpRemarkVer13> {
301 @Override
302 public void write(ChannelBuffer bb, OFMeterBandDscpRemarkVer13 message) {
303 // fixed value property type = 0x2
304 bb.writeShort((short) 0x2);
305 // fixed value property length = 16
306 bb.writeShort((short) 0x10);
307 bb.writeInt(U32.t(message.rate));
308 bb.writeInt(U32.t(message.burstSize));
309 bb.writeByte(U8.t(message.precLevel));
310 // pad: 3 bytes
311 bb.writeZero(3);
312
313
314 }
315 }
316
317 @Override
318 public String toString() {
319 StringBuilder b = new StringBuilder("OFMeterBandDscpRemarkVer13(");
320 b.append("rate=").append(rate);
321 b.append(", ");
322 b.append("burstSize=").append(burstSize);
323 b.append(", ");
324 b.append("precLevel=").append(precLevel);
325 b.append(")");
326 return b.toString();
327 }
328
329 @Override
330 public boolean equals(Object obj) {
331 if (this == obj)
332 return true;
333 if (obj == null)
334 return false;
335 if (getClass() != obj.getClass())
336 return false;
337 OFMeterBandDscpRemarkVer13 other = (OFMeterBandDscpRemarkVer13) obj;
338
339 if( rate != other.rate)
340 return false;
341 if( burstSize != other.burstSize)
342 return false;
343 if( precLevel != other.precLevel)
344 return false;
345 return true;
346 }
347
348 @Override
349 public int hashCode() {
350 final int prime = 31;
351 int result = 1;
352
353 result = prime * (int) (rate ^ (rate >>> 32));
354 result = prime * (int) (burstSize ^ (burstSize >>> 32));
355 result = prime * result + precLevel;
356 return result;
357 }
358
359}