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