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