blob: e83b993daf28027233e44205bfa54bd22988e1fd [file] [log] [blame]
alshabib86ac11c2014-08-14 16:14:41 -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 OFPortModVer10 implements OFPortMod {
34 private static final Logger logger = LoggerFactory.getLogger(OFPortModVer10.class);
35 // version: 1.0
36 final static byte WIRE_VERSION = 1;
37 final static int LENGTH = 32;
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 OFPortModVer10 DEFAULT = new OFPortModVer10(
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 OFPortModVer10(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_10;
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 OFPortModVer10 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(OFPortModVer10 parentMessage) {
134 this.parentMessage = parentMessage;
135 }
136
137 @Override
138 public OFVersion getVersion() {
139 return OFVersion.OF_10;
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 OFPortModVer10(
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_10;
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 OFPortModVer10(
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 == 1
366 byte version = bb.readByte();
367 if(version != (byte) 0x1)
368 throw new OFParseError("Wrong version: Expected=OFVersion.OF_10(1), got="+version);
369 // fixed value property type == 15
370 byte type = bb.readByte();
371 if(type != (byte) 0xf)
372 throw new OFParseError("Wrong type: Expected=OFType.PORT_MOD(15), got="+type);
373 int length = U16.f(bb.readShort());
374 if(length != 32)
375 throw new OFParseError("Wrong length: Expected=32(32), 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.read2Bytes(bb);
385 MacAddress hwAddr = MacAddress.read6Bytes(bb);
386 long config = U32.f(bb.readInt());
387 long mask = U32.f(bb.readInt());
388 long advertise = U32.f(bb.readInt());
389 // pad: 4 bytes
390 bb.skipBytes(4);
391
392 OFPortModVer10 portModVer10 = new OFPortModVer10(
393 xid,
394 portNo,
395 hwAddr,
396 config,
397 mask,
398 advertise
399 );
400 if(logger.isTraceEnabled())
401 logger.trace("readFrom - read={}", portModVer10);
402 return portModVer10;
403 }
404 }
405
406 public void putTo(PrimitiveSink sink) {
407 FUNNEL.funnel(this, sink);
408 }
409
410 final static OFPortModVer10Funnel FUNNEL = new OFPortModVer10Funnel();
411 static class OFPortModVer10Funnel implements Funnel<OFPortModVer10> {
412 private static final long serialVersionUID = 1L;
413 @Override
414 public void funnel(OFPortModVer10 message, PrimitiveSink sink) {
415 // fixed value property version = 1
416 sink.putByte((byte) 0x1);
417 // fixed value property type = 15
418 sink.putByte((byte) 0xf);
419 // fixed value property length = 32
420 sink.putShort((short) 0x20);
421 sink.putLong(message.xid);
422 message.portNo.putTo(sink);
423 message.hwAddr.putTo(sink);
424 sink.putLong(message.config);
425 sink.putLong(message.mask);
426 sink.putLong(message.advertise);
427 // skip pad (4 bytes)
428 }
429 }
430
431
432 public void writeTo(ChannelBuffer bb) {
433 WRITER.write(bb, this);
434 }
435
436 final static Writer WRITER = new Writer();
437 static class Writer implements OFMessageWriter<OFPortModVer10> {
438 @Override
439 public void write(ChannelBuffer bb, OFPortModVer10 message) {
440 // fixed value property version = 1
441 bb.writeByte((byte) 0x1);
442 // fixed value property type = 15
443 bb.writeByte((byte) 0xf);
444 // fixed value property length = 32
445 bb.writeShort((short) 0x20);
446 bb.writeInt(U32.t(message.xid));
447 message.portNo.write2Bytes(bb);
448 message.hwAddr.write6Bytes(bb);
449 bb.writeInt(U32.t(message.config));
450 bb.writeInt(U32.t(message.mask));
451 bb.writeInt(U32.t(message.advertise));
452 // pad: 4 bytes
453 bb.writeZero(4);
454
455
456 }
457 }
458
459 @Override
460 public String toString() {
461 StringBuilder b = new StringBuilder("OFPortModVer10(");
462 b.append("xid=").append(xid);
463 b.append(", ");
464 b.append("portNo=").append(portNo);
465 b.append(", ");
466 b.append("hwAddr=").append(hwAddr);
467 b.append(", ");
468 b.append("config=").append(config);
469 b.append(", ");
470 b.append("mask=").append(mask);
471 b.append(", ");
472 b.append("advertise=").append(advertise);
473 b.append(")");
474 return b.toString();
475 }
476
477 @Override
478 public boolean equals(Object obj) {
479 if (this == obj)
480 return true;
481 if (obj == null)
482 return false;
483 if (getClass() != obj.getClass())
484 return false;
485 OFPortModVer10 other = (OFPortModVer10) obj;
486
487 if( xid != other.xid)
488 return false;
489 if (portNo == null) {
490 if (other.portNo != null)
491 return false;
492 } else if (!portNo.equals(other.portNo))
493 return false;
494 if (hwAddr == null) {
495 if (other.hwAddr != null)
496 return false;
497 } else if (!hwAddr.equals(other.hwAddr))
498 return false;
499 if( config != other.config)
500 return false;
501 if( mask != other.mask)
502 return false;
503 if( advertise != other.advertise)
504 return false;
505 return true;
506 }
507
508 @Override
509 public int hashCode() {
510 final int prime = 31;
511 int result = 1;
512
513 result = prime * (int) (xid ^ (xid >>> 32));
514 result = prime * result + ((portNo == null) ? 0 : portNo.hashCode());
515 result = prime * result + ((hwAddr == null) ? 0 : hwAddr.hashCode());
516 result = prime * (int) (config ^ (config >>> 32));
517 result = prime * (int) (mask ^ (mask >>> 32));
518 result = prime * (int) (advertise ^ (advertise >>> 32));
519 return result;
520 }
521
522}