blob: d1e1551cc6cc21348594af5dc635c16f1113f137 [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 com.google.common.collect.ImmutableSet;
30import org.jboss.netty.buffer.ChannelBuffer;
31import com.google.common.hash.PrimitiveSink;
32import com.google.common.hash.Funnel;
33
34class OFBsnImageDescStatsReplyVer13 implements OFBsnImageDescStatsReply {
35 private static final Logger logger = LoggerFactory.getLogger(OFBsnImageDescStatsReplyVer13.class);
36 // version: 1.3
37 final static byte WIRE_VERSION = 4;
38 final static int LENGTH = 536;
39
40 private final static long DEFAULT_XID = 0x0L;
41 private final static Set<OFStatsReplyFlags> DEFAULT_FLAGS = ImmutableSet.<OFStatsReplyFlags>of();
42 private final static String DEFAULT_IMAGE_CHECKSUM = "";
43 private final static String DEFAULT_STARTUP_CONFIG_CHECKSUM = "";
44
45 // OF message fields
46 private final long xid;
47 private final Set<OFStatsReplyFlags> flags;
48 private final String imageChecksum;
49 private final String startupConfigChecksum;
50//
51 // Immutable default instance
52 final static OFBsnImageDescStatsReplyVer13 DEFAULT = new OFBsnImageDescStatsReplyVer13(
53 DEFAULT_XID, DEFAULT_FLAGS, DEFAULT_IMAGE_CHECKSUM, DEFAULT_STARTUP_CONFIG_CHECKSUM
54 );
55
56 // package private constructor - used by readers, builders, and factory
57 OFBsnImageDescStatsReplyVer13(long xid, Set<OFStatsReplyFlags> flags, String imageChecksum, String startupConfigChecksum) {
58 this.xid = xid;
59 this.flags = flags;
60 this.imageChecksum = imageChecksum;
61 this.startupConfigChecksum = startupConfigChecksum;
62 }
63
64 // Accessors for OF message fields
65 @Override
66 public OFVersion getVersion() {
67 return OFVersion.OF_13;
68 }
69
70 @Override
71 public OFType getType() {
72 return OFType.STATS_REPLY;
73 }
74
75 @Override
76 public long getXid() {
77 return xid;
78 }
79
80 @Override
81 public OFStatsType getStatsType() {
82 return OFStatsType.EXPERIMENTER;
83 }
84
85 @Override
86 public Set<OFStatsReplyFlags> getFlags() {
87 return flags;
88 }
89
90 @Override
91 public long getExperimenter() {
92 return 0x5c16c7L;
93 }
94
95 @Override
96 public long getSubtype() {
97 return 0xeL;
98 }
99
100 @Override
101 public String getImageChecksum() {
102 return imageChecksum;
103 }
104
105 @Override
106 public String getStartupConfigChecksum() {
107 return startupConfigChecksum;
108 }
109
110
111
112 public OFBsnImageDescStatsReply.Builder createBuilder() {
113 return new BuilderWithParent(this);
114 }
115
116 static class BuilderWithParent implements OFBsnImageDescStatsReply.Builder {
117 final OFBsnImageDescStatsReplyVer13 parentMessage;
118
119 // OF message fields
120 private boolean xidSet;
121 private long xid;
122 private boolean flagsSet;
123 private Set<OFStatsReplyFlags> flags;
124 private boolean imageChecksumSet;
125 private String imageChecksum;
126 private boolean startupConfigChecksumSet;
127 private String startupConfigChecksum;
128
129 BuilderWithParent(OFBsnImageDescStatsReplyVer13 parentMessage) {
130 this.parentMessage = parentMessage;
131 }
132
133 @Override
134 public OFVersion getVersion() {
135 return OFVersion.OF_13;
136 }
137
138 @Override
139 public OFType getType() {
140 return OFType.STATS_REPLY;
141 }
142
143 @Override
144 public long getXid() {
145 return xid;
146 }
147
148 @Override
149 public OFBsnImageDescStatsReply.Builder setXid(long xid) {
150 this.xid = xid;
151 this.xidSet = true;
152 return this;
153 }
154 @Override
155 public OFStatsType getStatsType() {
156 return OFStatsType.EXPERIMENTER;
157 }
158
159 @Override
160 public Set<OFStatsReplyFlags> getFlags() {
161 return flags;
162 }
163
164 @Override
165 public OFBsnImageDescStatsReply.Builder setFlags(Set<OFStatsReplyFlags> flags) {
166 this.flags = flags;
167 this.flagsSet = true;
168 return this;
169 }
170 @Override
171 public long getExperimenter() {
172 return 0x5c16c7L;
173 }
174
175 @Override
176 public long getSubtype() {
177 return 0xeL;
178 }
179
180 @Override
181 public String getImageChecksum() {
182 return imageChecksum;
183 }
184
185 @Override
186 public OFBsnImageDescStatsReply.Builder setImageChecksum(String imageChecksum) {
187 this.imageChecksum = imageChecksum;
188 this.imageChecksumSet = true;
189 return this;
190 }
191 @Override
192 public String getStartupConfigChecksum() {
193 return startupConfigChecksum;
194 }
195
196 @Override
197 public OFBsnImageDescStatsReply.Builder setStartupConfigChecksum(String startupConfigChecksum) {
198 this.startupConfigChecksum = startupConfigChecksum;
199 this.startupConfigChecksumSet = true;
200 return this;
201 }
202
203
204 @Override
205 public OFBsnImageDescStatsReply build() {
206 long xid = this.xidSet ? this.xid : parentMessage.xid;
207 Set<OFStatsReplyFlags> flags = this.flagsSet ? this.flags : parentMessage.flags;
208 if(flags == null)
209 throw new NullPointerException("Property flags must not be null");
210 String imageChecksum = this.imageChecksumSet ? this.imageChecksum : parentMessage.imageChecksum;
211 if(imageChecksum == null)
212 throw new NullPointerException("Property imageChecksum must not be null");
213 String startupConfigChecksum = this.startupConfigChecksumSet ? this.startupConfigChecksum : parentMessage.startupConfigChecksum;
214 if(startupConfigChecksum == null)
215 throw new NullPointerException("Property startupConfigChecksum must not be null");
216
217 //
218 return new OFBsnImageDescStatsReplyVer13(
219 xid,
220 flags,
221 imageChecksum,
222 startupConfigChecksum
223 );
224 }
225
226 }
227
228 static class Builder implements OFBsnImageDescStatsReply.Builder {
229 // OF message fields
230 private boolean xidSet;
231 private long xid;
232 private boolean flagsSet;
233 private Set<OFStatsReplyFlags> flags;
234 private boolean imageChecksumSet;
235 private String imageChecksum;
236 private boolean startupConfigChecksumSet;
237 private String startupConfigChecksum;
238
239 @Override
240 public OFVersion getVersion() {
241 return OFVersion.OF_13;
242 }
243
244 @Override
245 public OFType getType() {
246 return OFType.STATS_REPLY;
247 }
248
249 @Override
250 public long getXid() {
251 return xid;
252 }
253
254 @Override
255 public OFBsnImageDescStatsReply.Builder setXid(long xid) {
256 this.xid = xid;
257 this.xidSet = true;
258 return this;
259 }
260 @Override
261 public OFStatsType getStatsType() {
262 return OFStatsType.EXPERIMENTER;
263 }
264
265 @Override
266 public Set<OFStatsReplyFlags> getFlags() {
267 return flags;
268 }
269
270 @Override
271 public OFBsnImageDescStatsReply.Builder setFlags(Set<OFStatsReplyFlags> flags) {
272 this.flags = flags;
273 this.flagsSet = true;
274 return this;
275 }
276 @Override
277 public long getExperimenter() {
278 return 0x5c16c7L;
279 }
280
281 @Override
282 public long getSubtype() {
283 return 0xeL;
284 }
285
286 @Override
287 public String getImageChecksum() {
288 return imageChecksum;
289 }
290
291 @Override
292 public OFBsnImageDescStatsReply.Builder setImageChecksum(String imageChecksum) {
293 this.imageChecksum = imageChecksum;
294 this.imageChecksumSet = true;
295 return this;
296 }
297 @Override
298 public String getStartupConfigChecksum() {
299 return startupConfigChecksum;
300 }
301
302 @Override
303 public OFBsnImageDescStatsReply.Builder setStartupConfigChecksum(String startupConfigChecksum) {
304 this.startupConfigChecksum = startupConfigChecksum;
305 this.startupConfigChecksumSet = true;
306 return this;
307 }
308//
309 @Override
310 public OFBsnImageDescStatsReply build() {
311 long xid = this.xidSet ? this.xid : DEFAULT_XID;
312 Set<OFStatsReplyFlags> flags = this.flagsSet ? this.flags : DEFAULT_FLAGS;
313 if(flags == null)
314 throw new NullPointerException("Property flags must not be null");
315 String imageChecksum = this.imageChecksumSet ? this.imageChecksum : DEFAULT_IMAGE_CHECKSUM;
316 if(imageChecksum == null)
317 throw new NullPointerException("Property imageChecksum must not be null");
318 String startupConfigChecksum = this.startupConfigChecksumSet ? this.startupConfigChecksum : DEFAULT_STARTUP_CONFIG_CHECKSUM;
319 if(startupConfigChecksum == null)
320 throw new NullPointerException("Property startupConfigChecksum must not be null");
321
322
323 return new OFBsnImageDescStatsReplyVer13(
324 xid,
325 flags,
326 imageChecksum,
327 startupConfigChecksum
328 );
329 }
330
331 }
332
333
334 final static Reader READER = new Reader();
335 static class Reader implements OFMessageReader<OFBsnImageDescStatsReply> {
336 @Override
337 public OFBsnImageDescStatsReply readFrom(ChannelBuffer bb) throws OFParseError {
338 int start = bb.readerIndex();
339 // fixed value property version == 4
340 byte version = bb.readByte();
341 if(version != (byte) 0x4)
342 throw new OFParseError("Wrong version: Expected=OFVersion.OF_13(4), got="+version);
343 // fixed value property type == 19
344 byte type = bb.readByte();
345 if(type != (byte) 0x13)
346 throw new OFParseError("Wrong type: Expected=OFType.STATS_REPLY(19), got="+type);
347 int length = U16.f(bb.readShort());
348 if(length != 536)
349 throw new OFParseError("Wrong length: Expected=536(536), got="+length);
350 if(bb.readableBytes() + (bb.readerIndex() - start) < length) {
351 // Buffer does not have all data yet
352 bb.readerIndex(start);
353 return null;
354 }
355 if(logger.isTraceEnabled())
356 logger.trace("readFrom - length={}", length);
357 long xid = U32.f(bb.readInt());
358 // fixed value property statsType == 65535
359 short statsType = bb.readShort();
360 if(statsType != (short) 0xffff)
361 throw new OFParseError("Wrong statsType: Expected=OFStatsType.EXPERIMENTER(65535), got="+statsType);
362 Set<OFStatsReplyFlags> flags = OFStatsReplyFlagsSerializerVer13.readFrom(bb);
363 // pad: 4 bytes
364 bb.skipBytes(4);
365 // fixed value property experimenter == 0x5c16c7L
366 int experimenter = bb.readInt();
367 if(experimenter != 0x5c16c7)
368 throw new OFParseError("Wrong experimenter: Expected=0x5c16c7L(0x5c16c7L), got="+experimenter);
369 // fixed value property subtype == 0xeL
370 int subtype = bb.readInt();
371 if(subtype != 0xe)
372 throw new OFParseError("Wrong subtype: Expected=0xeL(0xeL), got="+subtype);
373 String imageChecksum = ChannelUtils.readFixedLengthString(bb, 256);
374 String startupConfigChecksum = ChannelUtils.readFixedLengthString(bb, 256);
375
376 OFBsnImageDescStatsReplyVer13 bsnImageDescStatsReplyVer13 = new OFBsnImageDescStatsReplyVer13(
377 xid,
378 flags,
379 imageChecksum,
380 startupConfigChecksum
381 );
382 if(logger.isTraceEnabled())
383 logger.trace("readFrom - read={}", bsnImageDescStatsReplyVer13);
384 return bsnImageDescStatsReplyVer13;
385 }
386 }
387
388 public void putTo(PrimitiveSink sink) {
389 FUNNEL.funnel(this, sink);
390 }
391
392 final static OFBsnImageDescStatsReplyVer13Funnel FUNNEL = new OFBsnImageDescStatsReplyVer13Funnel();
393 static class OFBsnImageDescStatsReplyVer13Funnel implements Funnel<OFBsnImageDescStatsReplyVer13> {
394 private static final long serialVersionUID = 1L;
395 @Override
396 public void funnel(OFBsnImageDescStatsReplyVer13 message, PrimitiveSink sink) {
397 // fixed value property version = 4
398 sink.putByte((byte) 0x4);
399 // fixed value property type = 19
400 sink.putByte((byte) 0x13);
401 // fixed value property length = 536
402 sink.putShort((short) 0x218);
403 sink.putLong(message.xid);
404 // fixed value property statsType = 65535
405 sink.putShort((short) 0xffff);
406 OFStatsReplyFlagsSerializerVer13.putTo(message.flags, sink);
407 // skip pad (4 bytes)
408 // fixed value property experimenter = 0x5c16c7L
409 sink.putInt(0x5c16c7);
410 // fixed value property subtype = 0xeL
411 sink.putInt(0xe);
412 sink.putUnencodedChars(message.imageChecksum);
413 sink.putUnencodedChars(message.startupConfigChecksum);
414 }
415 }
416
417
418 public void writeTo(ChannelBuffer bb) {
419 WRITER.write(bb, this);
420 }
421
422 final static Writer WRITER = new Writer();
423 static class Writer implements OFMessageWriter<OFBsnImageDescStatsReplyVer13> {
424 @Override
425 public void write(ChannelBuffer bb, OFBsnImageDescStatsReplyVer13 message) {
426 // fixed value property version = 4
427 bb.writeByte((byte) 0x4);
428 // fixed value property type = 19
429 bb.writeByte((byte) 0x13);
430 // fixed value property length = 536
431 bb.writeShort((short) 0x218);
432 bb.writeInt(U32.t(message.xid));
433 // fixed value property statsType = 65535
434 bb.writeShort((short) 0xffff);
435 OFStatsReplyFlagsSerializerVer13.writeTo(bb, message.flags);
436 // pad: 4 bytes
437 bb.writeZero(4);
438 // fixed value property experimenter = 0x5c16c7L
439 bb.writeInt(0x5c16c7);
440 // fixed value property subtype = 0xeL
441 bb.writeInt(0xe);
442 ChannelUtils.writeFixedLengthString(bb, message.imageChecksum, 256);
443 ChannelUtils.writeFixedLengthString(bb, message.startupConfigChecksum, 256);
444
445
446 }
447 }
448
449 @Override
450 public String toString() {
451 StringBuilder b = new StringBuilder("OFBsnImageDescStatsReplyVer13(");
452 b.append("xid=").append(xid);
453 b.append(", ");
454 b.append("flags=").append(flags);
455 b.append(", ");
456 b.append("imageChecksum=").append(imageChecksum);
457 b.append(", ");
458 b.append("startupConfigChecksum=").append(startupConfigChecksum);
459 b.append(")");
460 return b.toString();
461 }
462
463 @Override
464 public boolean equals(Object obj) {
465 if (this == obj)
466 return true;
467 if (obj == null)
468 return false;
469 if (getClass() != obj.getClass())
470 return false;
471 OFBsnImageDescStatsReplyVer13 other = (OFBsnImageDescStatsReplyVer13) obj;
472
473 if( xid != other.xid)
474 return false;
475 if (flags == null) {
476 if (other.flags != null)
477 return false;
478 } else if (!flags.equals(other.flags))
479 return false;
480 if (imageChecksum == null) {
481 if (other.imageChecksum != null)
482 return false;
483 } else if (!imageChecksum.equals(other.imageChecksum))
484 return false;
485 if (startupConfigChecksum == null) {
486 if (other.startupConfigChecksum != null)
487 return false;
488 } else if (!startupConfigChecksum.equals(other.startupConfigChecksum))
489 return false;
490 return true;
491 }
492
493 @Override
494 public int hashCode() {
495 final int prime = 31;
496 int result = 1;
497
498 result = prime * (int) (xid ^ (xid >>> 32));
499 result = prime * result + ((flags == null) ? 0 : flags.hashCode());
500 result = prime * result + ((imageChecksum == null) ? 0 : imageChecksum.hashCode());
501 result = prime * result + ((startupConfigChecksum == null) ? 0 : startupConfigChecksum.hashCode());
502 return result;
503 }
504
505}