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