Committed by
Gerrit Code Review
[ONOS-3222] Implement toString method for each Packet class
Change-Id: I17d72338d4202117d08b3dca9463be35a87a0c1e
Showing
61 changed files
with
815 additions
and
124 deletions
... | @@ -14,18 +14,17 @@ | ... | @@ -14,18 +14,17 @@ |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | - | ||
18 | - | ||
19 | package org.onlab.packet; | 17 | package org.onlab.packet; |
20 | 18 | ||
21 | import java.nio.ByteBuffer; | 19 | import java.nio.ByteBuffer; |
22 | import java.util.Arrays; | 20 | import java.util.Arrays; |
23 | 21 | ||
24 | -import static org.onlab.packet.PacketUtils.*; | 22 | +import static com.google.common.base.MoreObjects.toStringHelper; |
23 | +import static org.onlab.packet.PacketUtils.checkHeaderLength; | ||
24 | +import static org.onlab.packet.PacketUtils.checkInput; | ||
25 | 25 | ||
26 | /** | 26 | /** |
27 | - * | 27 | + * Representation of an ARP Packet. |
28 | - * | ||
29 | */ | 28 | */ |
30 | public class ARP extends BasePacket { | 29 | public class ARP extends BasePacket { |
31 | public static final short HW_TYPE_ETHERNET = 0x1; | 30 | public static final short HW_TYPE_ETHERNET = 0x1; |
... | @@ -341,27 +340,6 @@ public class ARP extends BasePacket { | ... | @@ -341,27 +340,6 @@ public class ARP extends BasePacket { |
341 | return true; | 340 | return true; |
342 | } | 341 | } |
343 | 342 | ||
344 | - /* | ||
345 | - * (non-Javadoc) | ||
346 | - * | ||
347 | - * @see java.lang.Object#toString() | ||
348 | - */ | ||
349 | - @Override | ||
350 | - public String toString() { | ||
351 | - return "ARP [hardwareType=" + this.hardwareType + ", protocolType=" | ||
352 | - + this.protocolType + ", hardwareAddressLength=" | ||
353 | - + this.hardwareAddressLength + ", protocolAddressLength=" | ||
354 | - + this.protocolAddressLength + ", opCode=" + this.opCode | ||
355 | - + ", senderHardwareAddress=" | ||
356 | - + Arrays.toString(this.senderHardwareAddress) | ||
357 | - + ", senderProtocolAddress=" | ||
358 | - + Arrays.toString(this.senderProtocolAddress) | ||
359 | - + ", targetHardwareAddress=" | ||
360 | - + Arrays.toString(this.targetHardwareAddress) | ||
361 | - + ", targetProtocolAddress=" | ||
362 | - + Arrays.toString(this.targetProtocolAddress) + "]"; | ||
363 | - } | ||
364 | - | ||
365 | /** | 343 | /** |
366 | * Builds an ARP reply based on a request. | 344 | * Builds an ARP reply based on a request. |
367 | * | 345 | * |
... | @@ -436,4 +414,18 @@ public class ARP extends BasePacket { | ... | @@ -436,4 +414,18 @@ public class ARP extends BasePacket { |
436 | }; | 414 | }; |
437 | } | 415 | } |
438 | 416 | ||
417 | + @Override | ||
418 | + public String toString() { | ||
419 | + return toStringHelper(getClass()) | ||
420 | + .add("hardwareType", Short.toString(hardwareType)) | ||
421 | + .add("protocolType", Short.toString(protocolType)) | ||
422 | + .add("hardwareAddressLength", Byte.toString(hardwareAddressLength)) | ||
423 | + .add("protocolAddressLength", Byte.toString(protocolAddressLength)) | ||
424 | + .add("opCode", Short.toString(opCode)) | ||
425 | + .add("senderHardwareAddress", Arrays.toString(senderHardwareAddress)) | ||
426 | + .add("senderProtocolAddress", Arrays.toString(senderProtocolAddress)) | ||
427 | + .add("targetHardwareAddress", Arrays.toString(targetHardwareAddress)) | ||
428 | + .add("targetProtocolAddress", Arrays.toString(targetProtocolAddress)) | ||
429 | + .toString(); | ||
430 | + } | ||
439 | } | 431 | } | ... | ... |
... | @@ -14,48 +14,32 @@ | ... | @@ -14,48 +14,32 @@ |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | - | ||
18 | - | ||
19 | package org.onlab.packet; | 17 | package org.onlab.packet; |
20 | 18 | ||
21 | /** | 19 | /** |
22 | - * | 20 | + * Base packet class. |
23 | - * | ||
24 | */ | 21 | */ |
25 | public abstract class BasePacket implements IPacket { | 22 | public abstract class BasePacket implements IPacket { |
23 | + | ||
26 | protected IPacket parent; | 24 | protected IPacket parent; |
27 | protected IPacket payload; | 25 | protected IPacket payload; |
28 | 26 | ||
29 | - /** | ||
30 | - * @return the parent | ||
31 | - */ | ||
32 | @Override | 27 | @Override |
33 | public IPacket getParent() { | 28 | public IPacket getParent() { |
34 | return this.parent; | 29 | return this.parent; |
35 | } | 30 | } |
36 | 31 | ||
37 | - /** | ||
38 | - * @param parent | ||
39 | - * the parent to set | ||
40 | - */ | ||
41 | @Override | 32 | @Override |
42 | public IPacket setParent(final IPacket parent) { | 33 | public IPacket setParent(final IPacket parent) { |
43 | this.parent = parent; | 34 | this.parent = parent; |
44 | return this; | 35 | return this; |
45 | } | 36 | } |
46 | 37 | ||
47 | - /** | ||
48 | - * @return the payload | ||
49 | - */ | ||
50 | @Override | 38 | @Override |
51 | public IPacket getPayload() { | 39 | public IPacket getPayload() { |
52 | return this.payload; | 40 | return this.payload; |
53 | } | 41 | } |
54 | 42 | ||
55 | - /** | ||
56 | - * @param payload | ||
57 | - * the payload to set | ||
58 | - */ | ||
59 | @Override | 43 | @Override |
60 | public IPacket setPayload(final IPacket payload) { | 44 | public IPacket setPayload(final IPacket payload) { |
61 | this.payload = payload; | 45 | this.payload = payload; |
... | @@ -69,11 +53,6 @@ public abstract class BasePacket implements IPacket { | ... | @@ -69,11 +53,6 @@ public abstract class BasePacket implements IPacket { |
69 | } | 53 | } |
70 | } | 54 | } |
71 | 55 | ||
72 | - /* | ||
73 | - * (non-Javadoc) | ||
74 | - * | ||
75 | - * @see java.lang.Object#hashCode() | ||
76 | - */ | ||
77 | @Override | 56 | @Override |
78 | public int hashCode() { | 57 | public int hashCode() { |
79 | final int prime = 6733; | 58 | final int prime = 6733; |
... | @@ -83,11 +62,6 @@ public abstract class BasePacket implements IPacket { | ... | @@ -83,11 +62,6 @@ public abstract class BasePacket implements IPacket { |
83 | return result; | 62 | return result; |
84 | } | 63 | } |
85 | 64 | ||
86 | - /* | ||
87 | - * (non-Javadoc) | ||
88 | - * | ||
89 | - * @see java.lang.Object#equals(java.lang.Object) | ||
90 | - */ | ||
91 | @Override | 65 | @Override |
92 | public boolean equals(final Object obj) { | 66 | public boolean equals(final Object obj) { |
93 | if (this == obj) { | 67 | if (this == obj) { | ... | ... |
... | @@ -21,14 +21,16 @@ package org.onlab.packet; | ... | @@ -21,14 +21,16 @@ package org.onlab.packet; |
21 | import java.io.UnsupportedEncodingException; | 21 | import java.io.UnsupportedEncodingException; |
22 | import java.nio.ByteBuffer; | 22 | import java.nio.ByteBuffer; |
23 | import java.util.ArrayList; | 23 | import java.util.ArrayList; |
24 | +import java.util.Arrays; | ||
24 | import java.util.List; | 25 | import java.util.List; |
25 | import java.util.ListIterator; | 26 | import java.util.ListIterator; |
26 | 27 | ||
27 | import static com.google.common.base.Preconditions.checkArgument; | 28 | import static com.google.common.base.Preconditions.checkArgument; |
28 | import static org.onlab.packet.PacketUtils.checkInput; | 29 | import static org.onlab.packet.PacketUtils.checkInput; |
30 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
29 | 31 | ||
30 | /** | 32 | /** |
31 | - * | 33 | + * Representation of an DHCP Packet. |
32 | */ | 34 | */ |
33 | public class DHCP extends BasePacket { | 35 | public class DHCP extends BasePacket { |
34 | /** | 36 | /** |
... | @@ -629,4 +631,25 @@ public class DHCP extends BasePacket { | ... | @@ -629,4 +631,25 @@ public class DHCP extends BasePacket { |
629 | return dhcp; | 631 | return dhcp; |
630 | }; | 632 | }; |
631 | } | 633 | } |
634 | + | ||
635 | + @Override | ||
636 | + public String toString() { | ||
637 | + return toStringHelper(getClass()) | ||
638 | + .add("opCode", Byte.toString(opCode)) | ||
639 | + .add("hardwareType", Byte.toString(hardwareType)) | ||
640 | + .add("hardwareAddressLength", Byte.toString(hardwareAddressLength)) | ||
641 | + .add("hops", Byte.toString(hops)) | ||
642 | + .add("transactionId", Integer.toString(transactionId)) | ||
643 | + .add("seconds", Short.toString(seconds)) | ||
644 | + .add("flags", Short.toString(flags)) | ||
645 | + .add("clientIPAddress", Integer.toString(clientIPAddress)) | ||
646 | + .add("yourIPAddress", Integer.toString(yourIPAddress)) | ||
647 | + .add("serverIPAddress", Integer.toString(serverIPAddress)) | ||
648 | + .add("gatewayIPAddress", Integer.toString(gatewayIPAddress)) | ||
649 | + .add("clientHardwareAddress", Arrays.toString(clientHardwareAddress)) | ||
650 | + .add("serverName", serverName) | ||
651 | + .add("bootFileName", bootFileName) | ||
652 | + .toString(); | ||
653 | + // TODO: need to handle options | ||
654 | + } | ||
632 | } | 655 | } | ... | ... |
... | @@ -14,14 +14,12 @@ | ... | @@ -14,14 +14,12 @@ |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | - | ||
18 | - | ||
19 | package org.onlab.packet; | 17 | package org.onlab.packet; |
20 | 18 | ||
21 | import java.util.Arrays; | 19 | import java.util.Arrays; |
22 | 20 | ||
23 | /** | 21 | /** |
24 | - * | 22 | + * Representation of DHCPOption field. |
25 | */ | 23 | */ |
26 | public class DHCPOption { | 24 | public class DHCPOption { |
27 | protected byte code; | 25 | protected byte code; |
... | @@ -36,8 +34,7 @@ public class DHCPOption { | ... | @@ -36,8 +34,7 @@ public class DHCPOption { |
36 | } | 34 | } |
37 | 35 | ||
38 | /** | 36 | /** |
39 | - * @param code | 37 | + * @param code the code to set |
40 | - * the code to set | ||
41 | * @return this | 38 | * @return this |
42 | */ | 39 | */ |
43 | public DHCPOption setCode(final byte code) { | 40 | public DHCPOption setCode(final byte code) { |
... | @@ -53,8 +50,7 @@ public class DHCPOption { | ... | @@ -53,8 +50,7 @@ public class DHCPOption { |
53 | } | 50 | } |
54 | 51 | ||
55 | /** | 52 | /** |
56 | - * @param length | 53 | + * @param length the length to set |
57 | - * the length to set | ||
58 | * @return this | 54 | * @return this |
59 | */ | 55 | */ |
60 | public DHCPOption setLength(final byte length) { | 56 | public DHCPOption setLength(final byte length) { |
... | @@ -70,8 +66,7 @@ public class DHCPOption { | ... | @@ -70,8 +66,7 @@ public class DHCPOption { |
70 | } | 66 | } |
71 | 67 | ||
72 | /** | 68 | /** |
73 | - * @param data | 69 | + * @param data the data to set |
74 | - * the data to set | ||
75 | * @return this | 70 | * @return this |
76 | */ | 71 | */ |
77 | public DHCPOption setData(final byte[] data) { | 72 | public DHCPOption setData(final byte[] data) { | ... | ... |
... | @@ -20,6 +20,7 @@ package org.onlab.packet; | ... | @@ -20,6 +20,7 @@ package org.onlab.packet; |
20 | 20 | ||
21 | import java.util.Arrays; | 21 | import java.util.Arrays; |
22 | 22 | ||
23 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
23 | import static org.onlab.packet.PacketUtils.*; | 24 | import static org.onlab.packet.PacketUtils.*; |
24 | 25 | ||
25 | /** | 26 | /** |
... | @@ -129,4 +130,10 @@ public class Data extends BasePacket { | ... | @@ -129,4 +130,10 @@ public class Data extends BasePacket { |
129 | }; | 130 | }; |
130 | } | 131 | } |
131 | 132 | ||
133 | + @Override | ||
134 | + public String toString() { | ||
135 | + return toStringHelper(getClass()) | ||
136 | + .add("data", Arrays.toString(data)) | ||
137 | + .toString(); | ||
138 | + } | ||
132 | } | 139 | } | ... | ... |
... | @@ -19,7 +19,9 @@ | ... | @@ -19,7 +19,9 @@ |
19 | package org.onlab.packet; | 19 | package org.onlab.packet; |
20 | 20 | ||
21 | import java.nio.ByteBuffer; | 21 | import java.nio.ByteBuffer; |
22 | +import java.util.Arrays; | ||
22 | 23 | ||
24 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
23 | import static org.onlab.packet.PacketUtils.checkHeaderLength; | 25 | import static org.onlab.packet.PacketUtils.checkHeaderLength; |
24 | import static org.onlab.packet.PacketUtils.checkInput; | 26 | import static org.onlab.packet.PacketUtils.checkInput; |
25 | 27 | ||
... | @@ -54,7 +56,6 @@ public class EAP extends BasePacket { | ... | @@ -54,7 +56,6 @@ public class EAP extends BasePacket { |
54 | protected byte type; | 56 | protected byte type; |
55 | protected byte[] data; | 57 | protected byte[] data; |
56 | 58 | ||
57 | - | ||
58 | /** | 59 | /** |
59 | * Gets the EAP code. | 60 | * Gets the EAP code. |
60 | * | 61 | * |
... | @@ -261,4 +262,15 @@ public class EAP extends BasePacket { | ... | @@ -261,4 +262,15 @@ public class EAP extends BasePacket { |
261 | result = prime * result + this.type; | 262 | result = prime * result + this.type; |
262 | return result; | 263 | return result; |
263 | } | 264 | } |
265 | + | ||
266 | + @Override | ||
267 | + public String toString() { | ||
268 | + return toStringHelper(getClass()) | ||
269 | + .add("code", Byte.toString(code)) | ||
270 | + .add("identifier", Byte.toString(identifier)) | ||
271 | + .add("length", Short.toString(length)) | ||
272 | + .add("type", Byte.toString(type)) | ||
273 | + .add("data", Arrays.toString(data)) | ||
274 | + .toString(); | ||
275 | + } | ||
264 | } | 276 | } | ... | ... |
... | @@ -20,6 +20,7 @@ package org.onlab.packet; | ... | @@ -20,6 +20,7 @@ package org.onlab.packet; |
20 | 20 | ||
21 | import java.nio.ByteBuffer; | 21 | import java.nio.ByteBuffer; |
22 | 22 | ||
23 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
23 | import static org.onlab.packet.PacketUtils.checkHeaderLength; | 24 | import static org.onlab.packet.PacketUtils.checkHeaderLength; |
24 | import static org.onlab.packet.PacketUtils.checkInput; | 25 | import static org.onlab.packet.PacketUtils.checkInput; |
25 | 26 | ||
... | @@ -195,5 +196,14 @@ public class EAPOL extends BasePacket { | ... | @@ -195,5 +196,14 @@ public class EAPOL extends BasePacket { |
195 | 196 | ||
196 | return this; | 197 | return this; |
197 | } | 198 | } |
199 | + | ||
200 | + @Override | ||
201 | + public String toString() { | ||
202 | + return toStringHelper(getClass()) | ||
203 | + .add("version", Byte.toString(version)) | ||
204 | + .add("eapolType", Byte.toString(eapolType)) | ||
205 | + .add("packetLength", Short.toString(packetLength)) | ||
206 | + .toString(); | ||
207 | + } | ||
198 | } | 208 | } |
199 | 209 | ... | ... |
... | @@ -34,7 +34,7 @@ import static org.onlab.packet.PacketUtils.checkHeaderLength; | ... | @@ -34,7 +34,7 @@ import static org.onlab.packet.PacketUtils.checkHeaderLength; |
34 | import static org.onlab.packet.PacketUtils.checkInput; | 34 | import static org.onlab.packet.PacketUtils.checkInput; |
35 | 35 | ||
36 | /** | 36 | /** |
37 | - * | 37 | + * Ethernet Packet. |
38 | */ | 38 | */ |
39 | public class Ethernet extends BasePacket { | 39 | public class Ethernet extends BasePacket { |
40 | private static final String HEXES = "0123456789ABCDEF"; | 40 | private static final String HEXES = "0123456789ABCDEF"; |
... | @@ -714,5 +714,4 @@ public class Ethernet extends BasePacket { | ... | @@ -714,5 +714,4 @@ public class Ethernet extends BasePacket { |
714 | return eth; | 714 | return eth; |
715 | }; | 715 | }; |
716 | } | 716 | } |
717 | - | ||
718 | } | 717 | } | ... | ... |
... | @@ -15,16 +15,15 @@ | ... | @@ -15,16 +15,15 @@ |
15 | */ | 15 | */ |
16 | 16 | ||
17 | 17 | ||
18 | - | ||
19 | package org.onlab.packet; | 18 | package org.onlab.packet; |
20 | 19 | ||
21 | import java.nio.ByteBuffer; | 20 | import java.nio.ByteBuffer; |
22 | 21 | ||
22 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
23 | import static org.onlab.packet.PacketUtils.*; | 23 | import static org.onlab.packet.PacketUtils.*; |
24 | 24 | ||
25 | /** | 25 | /** |
26 | * Implements ICMP packet format. | 26 | * Implements ICMP packet format. |
27 | - * | ||
28 | */ | 27 | */ |
29 | public class ICMP extends BasePacket { | 28 | public class ICMP extends BasePacket { |
30 | protected byte icmpType; | 29 | protected byte icmpType; |
... | @@ -45,8 +44,7 @@ public class ICMP extends BasePacket { | ... | @@ -45,8 +44,7 @@ public class ICMP extends BasePacket { |
45 | } | 44 | } |
46 | 45 | ||
47 | /** | 46 | /** |
48 | - * @param icmpType | 47 | + * @param icmpType to set |
49 | - * to set | ||
50 | * @return this | 48 | * @return this |
51 | */ | 49 | */ |
52 | public ICMP setIcmpType(final byte icmpType) { | 50 | public ICMP setIcmpType(final byte icmpType) { |
... | @@ -62,8 +60,7 @@ public class ICMP extends BasePacket { | ... | @@ -62,8 +60,7 @@ public class ICMP extends BasePacket { |
62 | } | 60 | } |
63 | 61 | ||
64 | /** | 62 | /** |
65 | - * @param icmpCode | 63 | + * @param icmpCode code to set |
66 | - * code to set | ||
67 | * @return this | 64 | * @return this |
68 | */ | 65 | */ |
69 | public ICMP setIcmpCode(final byte icmpCode) { | 66 | public ICMP setIcmpCode(final byte icmpCode) { |
... | @@ -79,8 +76,7 @@ public class ICMP extends BasePacket { | ... | @@ -79,8 +76,7 @@ public class ICMP extends BasePacket { |
79 | } | 76 | } |
80 | 77 | ||
81 | /** | 78 | /** |
82 | - * @param checksum | 79 | + * @param checksum the checksum to set |
83 | - * the checksum to set | ||
84 | * @return this | 80 | * @return this |
85 | */ | 81 | */ |
86 | public ICMP setChecksum(final short checksum) { | 82 | public ICMP setChecksum(final short checksum) { |
... | @@ -220,4 +216,13 @@ public class ICMP extends BasePacket { | ... | @@ -220,4 +216,13 @@ public class ICMP extends BasePacket { |
220 | return icmp; | 216 | return icmp; |
221 | }; | 217 | }; |
222 | } | 218 | } |
219 | + | ||
220 | + @Override | ||
221 | + public String toString() { | ||
222 | + return toStringHelper(getClass()) | ||
223 | + .add("icmpType", Byte.toString(icmpType)) | ||
224 | + .add("icmpCode", Byte.toString(icmpCode)) | ||
225 | + .add("checksum", Short.toString(checksum)) | ||
226 | + .toString(); | ||
227 | + } | ||
223 | } | 228 | } | ... | ... |
... | @@ -29,6 +29,7 @@ import java.nio.ByteBuffer; | ... | @@ -29,6 +29,7 @@ import java.nio.ByteBuffer; |
29 | import java.util.HashMap; | 29 | import java.util.HashMap; |
30 | import java.util.Map; | 30 | import java.util.Map; |
31 | 31 | ||
32 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
32 | import static org.onlab.packet.PacketUtils.checkInput; | 33 | import static org.onlab.packet.PacketUtils.checkInput; |
33 | 34 | ||
34 | /** | 35 | /** |
... | @@ -363,4 +364,13 @@ public class ICMP6 extends BasePacket { | ... | @@ -363,4 +364,13 @@ public class ICMP6 extends BasePacket { |
363 | return icmp6; | 364 | return icmp6; |
364 | }; | 365 | }; |
365 | } | 366 | } |
367 | + | ||
368 | + @Override | ||
369 | + public String toString() { | ||
370 | + return toStringHelper(getClass()) | ||
371 | + .add("icmpType", Byte.toString(icmpType)) | ||
372 | + .add("icmpCode", Byte.toString(icmpCode)) | ||
373 | + .add("checksum", Short.toString(checksum)) | ||
374 | + .toString(); | ||
375 | + } | ||
366 | } | 376 | } | ... | ... |
... | @@ -15,16 +15,19 @@ | ... | @@ -15,16 +15,19 @@ |
15 | */ | 15 | */ |
16 | package org.onlab.packet; | 16 | package org.onlab.packet; |
17 | 17 | ||
18 | +import org.slf4j.Logger; | ||
19 | + | ||
18 | import java.nio.ByteBuffer; | 20 | import java.nio.ByteBuffer; |
19 | import java.util.ArrayList; | 21 | import java.util.ArrayList; |
20 | import java.util.HashMap; | 22 | import java.util.HashMap; |
21 | import java.util.List; | 23 | import java.util.List; |
22 | import java.util.Map; | 24 | import java.util.Map; |
23 | -import org.slf4j.Logger; | 25 | +import java.util.Arrays; |
24 | 26 | ||
25 | -import static org.slf4j.LoggerFactory.getLogger; | 27 | +import static com.google.common.base.MoreObjects.toStringHelper; |
26 | import static com.google.common.base.Preconditions.checkNotNull; | 28 | import static com.google.common.base.Preconditions.checkNotNull; |
27 | import static org.onlab.packet.PacketUtils.checkInput; | 29 | import static org.onlab.packet.PacketUtils.checkInput; |
30 | +import static org.slf4j.LoggerFactory.getLogger; | ||
28 | 31 | ||
29 | 32 | ||
30 | /** | 33 | /** |
... | @@ -332,4 +335,15 @@ public class IGMP extends BasePacket { | ... | @@ -332,4 +335,15 @@ public class IGMP extends BasePacket { |
332 | result = prime * result + this.groups.hashCode(); | 335 | result = prime * result + this.groups.hashCode(); |
333 | return result; | 336 | return result; |
334 | } | 337 | } |
338 | + | ||
339 | + @Override | ||
340 | + public String toString() { | ||
341 | + return toStringHelper(getClass()) | ||
342 | + .add("igmpType", Byte.toString(igmpType)) | ||
343 | + .add("resField", Byte.toString(resField)) | ||
344 | + .add("checksum", Short.toString(checksum)) | ||
345 | + .add("unsupportTypeData", Arrays.toString(unsupportTypeData)) | ||
346 | + .toString(); | ||
347 | + // TODO: need to handle groups | ||
348 | + } | ||
335 | } | 349 | } | ... | ... |
... | @@ -95,4 +95,18 @@ public abstract class IGMPGroup { | ... | @@ -95,4 +95,18 @@ public abstract class IGMPGroup { |
95 | * @return The serialized message | 95 | * @return The serialized message |
96 | */ | 96 | */ |
97 | public abstract byte[] serialize(ByteBuffer bb); | 97 | public abstract byte[] serialize(ByteBuffer bb); |
98 | + | ||
99 | + @Override | ||
100 | + public String toString() { | ||
101 | + StringBuilder sb = new StringBuilder(); | ||
102 | + sb.append("["); | ||
103 | + sb.append("auxInfo= "); | ||
104 | + sb.append(auxInfo); | ||
105 | + sb.append("gaddr= "); | ||
106 | + sb.append(gaddr); | ||
107 | + sb.append("sources= "); | ||
108 | + sb.append(sources.toString()); | ||
109 | + sb.append("]"); | ||
110 | + return sb.toString(); | ||
111 | + } | ||
98 | } | 112 | } | ... | ... |
1 | /* | 1 | /* |
2 | - * Copyright 2014 Open Networking Laboratory | 2 | + * Copyright 2015 Open Networking Laboratory |
3 | * | 3 | * |
4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
5 | * you may not use this file except in compliance with the License. | 5 | * you may not use this file except in compliance with the License. |
... | @@ -14,21 +14,22 @@ | ... | @@ -14,21 +14,22 @@ |
14 | * limitations under the License. | 14 | * limitations under the License. |
15 | */ | 15 | */ |
16 | 16 | ||
17 | - | ||
18 | - | ||
19 | package org.onlab.packet; | 17 | package org.onlab.packet; |
20 | 18 | ||
21 | /** | 19 | /** |
22 | - * | 20 | + * Packet Interface. |
23 | */ | 21 | */ |
24 | public interface IPacket { | 22 | public interface IPacket { |
23 | + | ||
25 | /** | 24 | /** |
25 | + * Obtain the packet payload. | ||
26 | * | 26 | * |
27 | * @return the payload | 27 | * @return the payload |
28 | */ | 28 | */ |
29 | IPacket getPayload(); | 29 | IPacket getPayload(); |
30 | 30 | ||
31 | /** | 31 | /** |
32 | + * Assign the packet payload. | ||
32 | * | 33 | * |
33 | * @param packet new payload | 34 | * @param packet new payload |
34 | * @return self | 35 | * @return self |
... | @@ -36,12 +37,14 @@ public interface IPacket { | ... | @@ -36,12 +37,14 @@ public interface IPacket { |
36 | IPacket setPayload(IPacket packet); | 37 | IPacket setPayload(IPacket packet); |
37 | 38 | ||
38 | /** | 39 | /** |
40 | + * Obtain the parent packet. | ||
39 | * | 41 | * |
40 | * @return parent packet | 42 | * @return parent packet |
41 | */ | 43 | */ |
42 | IPacket getParent(); | 44 | IPacket getParent(); |
43 | 45 | ||
44 | /** | 46 | /** |
47 | + * Configure a new parent packet. | ||
45 | * | 48 | * |
46 | * @param packet new parent | 49 | * @param packet new parent |
47 | * @return self | 50 | * @return self |
... | @@ -49,7 +52,7 @@ public interface IPacket { | ... | @@ -49,7 +52,7 @@ public interface IPacket { |
49 | IPacket setParent(IPacket packet); | 52 | IPacket setParent(IPacket packet); |
50 | 53 | ||
51 | /** | 54 | /** |
52 | - * Reset any checksums as needed, and call resetChecksum on all parents. | 55 | + * Reset any checksum as needed, and call resetChecksum on all parents. |
53 | */ | 56 | */ |
54 | void resetChecksum(); | 57 | void resetChecksum(); |
55 | 58 | ||
... | @@ -62,7 +65,7 @@ public interface IPacket { | ... | @@ -62,7 +65,7 @@ public interface IPacket { |
62 | byte[] serialize(); | 65 | byte[] serialize(); |
63 | 66 | ||
64 | /** | 67 | /** |
65 | - * Deserializes this packet layer and all possible payloads. | 68 | + * Deserialize this packet layer and all possible payloads. |
66 | * | 69 | * |
67 | * NOTE: This method has been deprecated and will be removed in a future | 70 | * NOTE: This method has been deprecated and will be removed in a future |
68 | * release. It is now recommended to use the Deserializer function provided | 71 | * release. It is now recommended to use the Deserializer function provided | ... | ... |
... | @@ -25,10 +25,11 @@ import java.util.Collection; | ... | @@ -25,10 +25,11 @@ import java.util.Collection; |
25 | import java.util.HashMap; | 25 | import java.util.HashMap; |
26 | import java.util.Map; | 26 | import java.util.Map; |
27 | 27 | ||
28 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
28 | import static org.onlab.packet.PacketUtils.*; | 29 | import static org.onlab.packet.PacketUtils.*; |
29 | 30 | ||
30 | /** | 31 | /** |
31 | - * | 32 | + * Implements IPv4 packet format. |
32 | */ | 33 | */ |
33 | public class IPv4 extends BasePacket { | 34 | public class IPv4 extends BasePacket { |
34 | public static final byte PROTOCOL_ICMP = 0x1; | 35 | public static final byte PROTOCOL_ICMP = 0x1; |
... | @@ -730,4 +731,24 @@ s */ | ... | @@ -730,4 +731,24 @@ s */ |
730 | return ipv4; | 731 | return ipv4; |
731 | }; | 732 | }; |
732 | } | 733 | } |
734 | + | ||
735 | + @Override | ||
736 | + public String toString() { | ||
737 | + return toStringHelper(getClass()) | ||
738 | + .add("version", Byte.toString(version)) | ||
739 | + .add("headerLength", Byte.toString(headerLength)) | ||
740 | + .add("diffServ", Byte.toString(diffServ)) | ||
741 | + .add("totalLength", Short.toString(totalLength)) | ||
742 | + .add("identification", Short.toString(identification)) | ||
743 | + .add("flags", Byte.toString(flags)) | ||
744 | + .add("fragmentOffset", Short.toString(fragmentOffset)) | ||
745 | + .add("ttl", Byte.toString(ttl)) | ||
746 | + .add("protocol", Byte.toString(protocol)) | ||
747 | + .add("checksum", Short.toString(checksum)) | ||
748 | + .add("sourceAddress", Integer.toString(sourceAddress)) | ||
749 | + .add("destinationAddress", Integer.toString(destinationAddress)) | ||
750 | + .add("options", Arrays.toString(options)) | ||
751 | + .add("isTruncated", Boolean.toString(isTruncated)) | ||
752 | + .toString(); | ||
753 | + } | ||
733 | } | 754 | } | ... | ... |
... | @@ -31,6 +31,7 @@ import java.util.Arrays; | ... | @@ -31,6 +31,7 @@ import java.util.Arrays; |
31 | import java.util.HashMap; | 31 | import java.util.HashMap; |
32 | import java.util.Map; | 32 | import java.util.Map; |
33 | 33 | ||
34 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
34 | import static org.onlab.packet.PacketUtils.checkInput; | 35 | import static org.onlab.packet.PacketUtils.checkInput; |
35 | 36 | ||
36 | /** | 37 | /** |
... | @@ -381,4 +382,18 @@ public class IPv6 extends BasePacket implements IExtensionHeader { | ... | @@ -381,4 +382,18 @@ public class IPv6 extends BasePacket implements IExtensionHeader { |
381 | return ipv6; | 382 | return ipv6; |
382 | }; | 383 | }; |
383 | } | 384 | } |
385 | + | ||
386 | + @Override | ||
387 | + public String toString() { | ||
388 | + return toStringHelper(getClass()) | ||
389 | + .add("version", Byte.toString(version)) | ||
390 | + .add("trafficClass", Byte.toString(trafficClass)) | ||
391 | + .add("flowLabel", Integer.toString(flowLabel)) | ||
392 | + .add("payloadLength", Short.toString(payloadLength)) | ||
393 | + .add("nextHeader", Byte.toString(nextHeader)) | ||
394 | + .add("hopLimit", Byte.toString(hopLimit)) | ||
395 | + .add("sourceAddress", Arrays.toString(sourceAddress)) | ||
396 | + .add("destinationAddress", Arrays.toString(destinationAddress)) | ||
397 | + .toString(); | ||
398 | + } | ||
384 | } | 399 | } | ... | ... |
... | @@ -20,13 +20,12 @@ package org.onlab.packet; | ... | @@ -20,13 +20,12 @@ package org.onlab.packet; |
20 | 20 | ||
21 | import java.nio.ByteBuffer; | 21 | import java.nio.ByteBuffer; |
22 | 22 | ||
23 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
23 | import static org.onlab.packet.PacketUtils.*; | 24 | import static org.onlab.packet.PacketUtils.*; |
24 | 25 | ||
25 | /** | 26 | /** |
26 | * This class represents an Link Local Control header that is used in Ethernet | 27 | * This class represents an Link Local Control header that is used in Ethernet |
27 | * 802.3. | 28 | * 802.3. |
28 | - * | ||
29 | - * | ||
30 | */ | 29 | */ |
31 | public class LLC extends BasePacket { | 30 | public class LLC extends BasePacket { |
32 | 31 | ||
... | @@ -99,4 +98,13 @@ public class LLC extends BasePacket { | ... | @@ -99,4 +98,13 @@ public class LLC extends BasePacket { |
99 | return llc; | 98 | return llc; |
100 | }; | 99 | }; |
101 | } | 100 | } |
101 | + | ||
102 | + @Override | ||
103 | + public String toString() { | ||
104 | + return toStringHelper(getClass()) | ||
105 | + .add("dsap", Byte.toString(dsap)) | ||
106 | + .add("ssap", Byte.toString(ssap)) | ||
107 | + .add("ctrl", Byte.toString(ctrl)) | ||
108 | + .toString(); | ||
109 | + } | ||
102 | } | 110 | } | ... | ... |
... | @@ -20,13 +20,15 @@ | ... | @@ -20,13 +20,15 @@ |
20 | package org.onlab.packet; | 20 | package org.onlab.packet; |
21 | 21 | ||
22 | import java.nio.ByteBuffer; | 22 | import java.nio.ByteBuffer; |
23 | +import java.util.Arrays; | ||
23 | import java.util.LinkedList; | 24 | import java.util.LinkedList; |
24 | import java.util.List; | 25 | import java.util.List; |
25 | 26 | ||
27 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
26 | import static org.onlab.packet.PacketUtils.*; | 28 | import static org.onlab.packet.PacketUtils.*; |
27 | 29 | ||
28 | /** | 30 | /** |
29 | - * | 31 | + * Representation of an LLDP Packet. |
30 | */ | 32 | */ |
31 | public class LLDP extends BasePacket { | 33 | public class LLDP extends BasePacket { |
32 | public static final byte CHASSIS_TLV_TYPE = 1; | 34 | public static final byte CHASSIS_TLV_TYPE = 1; |
... | @@ -59,8 +61,7 @@ public class LLDP extends BasePacket { | ... | @@ -59,8 +61,7 @@ public class LLDP extends BasePacket { |
59 | } | 61 | } |
60 | 62 | ||
61 | /** | 63 | /** |
62 | - * @param chassis | 64 | + * @param chassis the chassisId to set |
63 | - * the chassisId to set | ||
64 | * @return this | 65 | * @return this |
65 | */ | 66 | */ |
66 | public LLDP setChassisId(final LLDPTLV chassis) { | 67 | public LLDP setChassisId(final LLDPTLV chassis) { |
... | @@ -76,8 +77,7 @@ public class LLDP extends BasePacket { | ... | @@ -76,8 +77,7 @@ public class LLDP extends BasePacket { |
76 | } | 77 | } |
77 | 78 | ||
78 | /** | 79 | /** |
79 | - * @param portId | 80 | + * @param portId the portId to set |
80 | - * the portId to set | ||
81 | * @return this | 81 | * @return this |
82 | */ | 82 | */ |
83 | public LLDP setPortId(final LLDPTLV portId) { | 83 | public LLDP setPortId(final LLDPTLV portId) { |
... | @@ -93,8 +93,7 @@ public class LLDP extends BasePacket { | ... | @@ -93,8 +93,7 @@ public class LLDP extends BasePacket { |
93 | } | 93 | } |
94 | 94 | ||
95 | /** | 95 | /** |
96 | - * @param ttl | 96 | + * @param ttl the ttl to set |
97 | - * the ttl to set | ||
98 | * @return this | 97 | * @return this |
99 | */ | 98 | */ |
100 | public LLDP setTtl(final LLDPTLV ttl) { | 99 | public LLDP setTtl(final LLDPTLV ttl) { |
... | @@ -110,8 +109,7 @@ public class LLDP extends BasePacket { | ... | @@ -110,8 +109,7 @@ public class LLDP extends BasePacket { |
110 | } | 109 | } |
111 | 110 | ||
112 | /** | 111 | /** |
113 | - * @param optionalTLVList | 112 | + * @param optionalTLVList the optionalTLVList to set |
114 | - * the optionalTLVList to set | ||
115 | * @return this | 113 | * @return this |
116 | */ | 114 | */ |
117 | public LLDP setOptionalTLVList(final List<LLDPTLV> optionalTLVList) { | 115 | public LLDP setOptionalTLVList(final List<LLDPTLV> optionalTLVList) { |
... | @@ -297,4 +295,15 @@ public class LLDP extends BasePacket { | ... | @@ -297,4 +295,15 @@ public class LLDP extends BasePacket { |
297 | }; | 295 | }; |
298 | } | 296 | } |
299 | 297 | ||
298 | + @Override | ||
299 | + public String toString() { | ||
300 | + return toStringHelper(getClass()) | ||
301 | + .add("chassisId", Arrays.toString(chassisId.getValue())) | ||
302 | + .add("portId", Arrays.toString(portId.getValue())) | ||
303 | + .add("ttl", Arrays.toString(ttl.getValue())) | ||
304 | + .add("ethType", Short.toString(ethType)) | ||
305 | + .toString(); | ||
306 | + | ||
307 | + // TODO: need to handle optionalTLVList | ||
308 | + } | ||
300 | } | 309 | } | ... | ... |
... | @@ -30,6 +30,20 @@ public class LLDPTLV { | ... | @@ -30,6 +30,20 @@ public class LLDPTLV { |
30 | protected short length; | 30 | protected short length; |
31 | protected byte[] value; | 31 | protected byte[] value; |
32 | 32 | ||
33 | + @Override | ||
34 | + public String toString() { | ||
35 | + StringBuilder sb = new StringBuilder(); | ||
36 | + sb.append("["); | ||
37 | + sb.append("type= "); | ||
38 | + sb.append(type); | ||
39 | + sb.append("length= "); | ||
40 | + sb.append(length); | ||
41 | + sb.append("value= "); | ||
42 | + sb.append(Arrays.toString(value)); | ||
43 | + sb.append("]"); | ||
44 | + return sb.toString(); | ||
45 | + } | ||
46 | + | ||
33 | /** | 47 | /** |
34 | * @return the type | 48 | * @return the type |
35 | */ | 49 | */ | ... | ... |
... | @@ -19,8 +19,12 @@ import java.nio.ByteBuffer; | ... | @@ -19,8 +19,12 @@ import java.nio.ByteBuffer; |
19 | import java.util.HashMap; | 19 | import java.util.HashMap; |
20 | import java.util.Map; | 20 | import java.util.Map; |
21 | 21 | ||
22 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
22 | import static org.onlab.packet.PacketUtils.checkInput; | 23 | import static org.onlab.packet.PacketUtils.checkInput; |
23 | 24 | ||
25 | +/** | ||
26 | + * Representation of an MPLS Packet. | ||
27 | + */ | ||
24 | public class MPLS extends BasePacket { | 28 | public class MPLS extends BasePacket { |
25 | public static final int HEADER_LENGTH = 4; | 29 | public static final int HEADER_LENGTH = 4; |
26 | 30 | ||
... | @@ -159,4 +163,14 @@ public class MPLS extends BasePacket { | ... | @@ -159,4 +163,14 @@ public class MPLS extends BasePacket { |
159 | return mpls; | 163 | return mpls; |
160 | }; | 164 | }; |
161 | } | 165 | } |
166 | + | ||
167 | + @Override | ||
168 | + public String toString() { | ||
169 | + return toStringHelper(getClass()) | ||
170 | + .add("label", Integer.toString(label)) | ||
171 | + .add("bos", Byte.toString(bos)) | ||
172 | + .add("ttl", Byte.toString(ttl)) | ||
173 | + .add("protocol", Byte.toString(protocol)) | ||
174 | + .toString(); | ||
175 | + } | ||
162 | } | 176 | } | ... | ... |
... | @@ -22,6 +22,7 @@ import java.nio.ByteBuffer; | ... | @@ -22,6 +22,7 @@ import java.nio.ByteBuffer; |
22 | import java.util.HashMap; | 22 | import java.util.HashMap; |
23 | import java.util.Map; | 23 | import java.util.Map; |
24 | 24 | ||
25 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
25 | import static org.onlab.packet.PacketUtils.checkInput; | 26 | import static org.onlab.packet.PacketUtils.checkInput; |
26 | 27 | ||
27 | /** | 28 | /** |
... | @@ -296,4 +297,14 @@ public class PIM extends BasePacket { | ... | @@ -296,4 +297,14 @@ public class PIM extends BasePacket { |
296 | return pim; | 297 | return pim; |
297 | }; | 298 | }; |
298 | } | 299 | } |
300 | + | ||
301 | + @Override | ||
302 | + public String toString() { | ||
303 | + return toStringHelper(getClass()) | ||
304 | + .add("version", Byte.toString(version)) | ||
305 | + .add("type", Byte.toString(type)) | ||
306 | + .add("reserved", Byte.toString(reserved)) | ||
307 | + .add("checksum", Short.toString(reserved)) | ||
308 | + .toString(); | ||
309 | + } | ||
299 | } | 310 | } | ... | ... |
... | @@ -30,6 +30,7 @@ import java.util.ArrayList; | ... | @@ -30,6 +30,7 @@ import java.util.ArrayList; |
30 | import java.util.Arrays; | 30 | import java.util.Arrays; |
31 | import java.util.List; | 31 | import java.util.List; |
32 | 32 | ||
33 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
33 | import static org.onlab.packet.PacketUtils.checkHeaderLength; | 34 | import static org.onlab.packet.PacketUtils.checkHeaderLength; |
34 | import static org.onlab.packet.PacketUtils.checkInput; | 35 | import static org.onlab.packet.PacketUtils.checkInput; |
35 | import static org.slf4j.LoggerFactory.getLogger; | 36 | import static org.slf4j.LoggerFactory.getLogger; |
... | @@ -420,4 +421,15 @@ public class RADIUS extends BasePacket { | ... | @@ -420,4 +421,15 @@ public class RADIUS extends BasePacket { |
420 | return this; | 421 | return this; |
421 | } | 422 | } |
422 | 423 | ||
424 | + @Override | ||
425 | + public String toString() { | ||
426 | + return toStringHelper(getClass()) | ||
427 | + .add("code", Byte.toString(code)) | ||
428 | + .add("identifier", Byte.toString(identifier)) | ||
429 | + .add("length", Short.toString(length)) | ||
430 | + .add("authenticator", Arrays.toString(authenticator)) | ||
431 | + .toString(); | ||
432 | + | ||
433 | + // TODO: need to handle attributes | ||
434 | + } | ||
423 | } | 435 | } | ... | ... |
... | @@ -18,6 +18,8 @@ | ... | @@ -18,6 +18,8 @@ |
18 | 18 | ||
19 | package org.onlab.packet; | 19 | package org.onlab.packet; |
20 | 20 | ||
21 | +import java.util.Arrays; | ||
22 | + | ||
21 | /** | 23 | /** |
22 | * An attribute in a RADIUS packet. | 24 | * An attribute in a RADIUS packet. |
23 | */ | 25 | */ |
... | @@ -139,4 +141,17 @@ public class RADIUSAttribute { | ... | @@ -139,4 +141,17 @@ public class RADIUSAttribute { |
139 | return this; | 141 | return this; |
140 | } | 142 | } |
141 | 143 | ||
144 | + @Override | ||
145 | + public String toString() { | ||
146 | + StringBuilder sb = new StringBuilder(); | ||
147 | + sb.append("["); | ||
148 | + sb.append("type= "); | ||
149 | + sb.append(type); | ||
150 | + sb.append("length= "); | ||
151 | + sb.append(length); | ||
152 | + sb.append("value= "); | ||
153 | + sb.append(Arrays.toString(value)); | ||
154 | + sb.append("]"); | ||
155 | + return sb.toString(); | ||
156 | + } | ||
142 | } | 157 | } | ... | ... |
... | @@ -21,6 +21,7 @@ package org.onlab.packet; | ... | @@ -21,6 +21,7 @@ package org.onlab.packet; |
21 | import java.nio.ByteBuffer; | 21 | import java.nio.ByteBuffer; |
22 | import java.util.Arrays; | 22 | import java.util.Arrays; |
23 | 23 | ||
24 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
24 | import static org.onlab.packet.PacketUtils.*; | 25 | import static org.onlab.packet.PacketUtils.*; |
25 | 26 | ||
26 | /** | 27 | /** |
... | @@ -459,4 +460,20 @@ public class TCP extends BasePacket { | ... | @@ -459,4 +460,20 @@ public class TCP extends BasePacket { |
459 | return tcp; | 460 | return tcp; |
460 | }; | 461 | }; |
461 | } | 462 | } |
463 | + | ||
464 | + @Override | ||
465 | + public String toString() { | ||
466 | + return toStringHelper(getClass()) | ||
467 | + .add("sourcePort", Integer.toString(sourcePort)) | ||
468 | + .add("destinationPort", Integer.toString(destinationPort)) | ||
469 | + .add("sequence", Integer.toString(sequence)) | ||
470 | + .add("acknowledge", Integer.toString(acknowledge)) | ||
471 | + .add("dataOffset", Byte.toString(dataOffset)) | ||
472 | + .add("flags", Short.toString(flags)) | ||
473 | + .add("windowSize", Short.toString(windowSize)) | ||
474 | + .add("checksum", Short.toString(checksum)) | ||
475 | + .add("urgentPointer", Short.toString(urgentPointer)) | ||
476 | + .add("options", Arrays.toString(options)) | ||
477 | + .toString(); | ||
478 | + } | ||
462 | } | 479 | } | ... | ... |
... | @@ -22,6 +22,7 @@ import java.nio.ByteBuffer; | ... | @@ -22,6 +22,7 @@ import java.nio.ByteBuffer; |
22 | import java.util.HashMap; | 22 | import java.util.HashMap; |
23 | import java.util.Map; | 23 | import java.util.Map; |
24 | 24 | ||
25 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
25 | import static org.onlab.packet.PacketUtils.*; | 26 | import static org.onlab.packet.PacketUtils.*; |
26 | 27 | ||
27 | /** | 28 | /** |
... | @@ -303,4 +304,14 @@ public class UDP extends BasePacket { | ... | @@ -303,4 +304,14 @@ public class UDP extends BasePacket { |
303 | return udp; | 304 | return udp; |
304 | }; | 305 | }; |
305 | } | 306 | } |
307 | + | ||
308 | + @Override | ||
309 | + public String toString() { | ||
310 | + return toStringHelper(getClass()) | ||
311 | + .add("sourcePort", Integer.toString(sourcePort)) | ||
312 | + .add("destinationPort", Integer.toString(destinationPort)) | ||
313 | + .add("length", Short.toString(length)) | ||
314 | + .add("checksum", Short.toString(checksum)) | ||
315 | + .toString(); | ||
316 | + } | ||
306 | } | 317 | } | ... | ... |
... | @@ -26,6 +26,7 @@ import org.onlab.packet.IPv6; | ... | @@ -26,6 +26,7 @@ import org.onlab.packet.IPv6; |
26 | import java.nio.ByteBuffer; | 26 | import java.nio.ByteBuffer; |
27 | import java.util.Arrays; | 27 | import java.util.Arrays; |
28 | 28 | ||
29 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
29 | import static org.onlab.packet.PacketUtils.checkInput; | 30 | import static org.onlab.packet.PacketUtils.checkInput; |
30 | 31 | ||
31 | /** | 32 | /** |
... | @@ -297,4 +298,15 @@ public class Authentication extends BasePacket implements IExtensionHeader { | ... | @@ -297,4 +298,15 @@ public class Authentication extends BasePacket implements IExtensionHeader { |
297 | return authentication; | 298 | return authentication; |
298 | }; | 299 | }; |
299 | } | 300 | } |
301 | + | ||
302 | + @Override | ||
303 | + public String toString() { | ||
304 | + return toStringHelper(getClass()) | ||
305 | + .add("nextHeader", Byte.toString(nextHeader)) | ||
306 | + .add("payloadLength", Byte.toString(payloadLength)) | ||
307 | + .add("securityParamIndex", Integer.toString(securityParamIndex)) | ||
308 | + .add("sequence", Integer.toString(sequence)) | ||
309 | + .add("integrityCheck", Arrays.toString(integrityCheck)) | ||
310 | + .toString(); | ||
311 | + } | ||
300 | } | 312 | } | ... | ... |
... | @@ -26,6 +26,7 @@ import org.onlab.packet.IPv6; | ... | @@ -26,6 +26,7 @@ import org.onlab.packet.IPv6; |
26 | import java.nio.ByteBuffer; | 26 | import java.nio.ByteBuffer; |
27 | import java.util.Arrays; | 27 | import java.util.Arrays; |
28 | 28 | ||
29 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
29 | import static org.onlab.packet.PacketUtils.checkHeaderLength; | 30 | import static org.onlab.packet.PacketUtils.checkHeaderLength; |
30 | import static org.onlab.packet.PacketUtils.checkInput; | 31 | import static org.onlab.packet.PacketUtils.checkInput; |
31 | 32 | ||
... | @@ -257,4 +258,14 @@ public class BaseOptions extends BasePacket implements IExtensionHeader { | ... | @@ -257,4 +258,14 @@ public class BaseOptions extends BasePacket implements IExtensionHeader { |
257 | return baseOptions; | 258 | return baseOptions; |
258 | }; | 259 | }; |
259 | } | 260 | } |
261 | + | ||
262 | + @Override | ||
263 | + public String toString() { | ||
264 | + return toStringHelper(getClass()) | ||
265 | + .add("nextHeader", Byte.toString(nextHeader)) | ||
266 | + .add("headerExtLength", Byte.toString(headerExtLength)) | ||
267 | + .add("options", Arrays.toString(options)) | ||
268 | + .add("type", Short.toString(type)) | ||
269 | + .toString(); | ||
270 | + } | ||
260 | } | 271 | } | ... | ... |
... | @@ -24,6 +24,7 @@ import org.onlab.packet.IPv6; | ... | @@ -24,6 +24,7 @@ import org.onlab.packet.IPv6; |
24 | 24 | ||
25 | import java.nio.ByteBuffer; | 25 | import java.nio.ByteBuffer; |
26 | 26 | ||
27 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
27 | import static org.onlab.packet.PacketUtils.checkInput; | 28 | import static org.onlab.packet.PacketUtils.checkInput; |
28 | 29 | ||
29 | /** | 30 | /** |
... | @@ -185,4 +186,12 @@ public class EncapSecurityPayload extends BasePacket { | ... | @@ -185,4 +186,12 @@ public class EncapSecurityPayload extends BasePacket { |
185 | return encapSecurityPayload; | 186 | return encapSecurityPayload; |
186 | }; | 187 | }; |
187 | } | 188 | } |
189 | + | ||
190 | + @Override | ||
191 | + public String toString() { | ||
192 | + return toStringHelper(getClass()) | ||
193 | + .add("securityParamIndex", Integer.toString(securityParamIndex)) | ||
194 | + .add("sequence", Integer.toString(sequence)) | ||
195 | + .toString(); | ||
196 | + } | ||
188 | } | 197 | } | ... | ... |
... | @@ -25,6 +25,7 @@ import org.onlab.packet.IPv6; | ... | @@ -25,6 +25,7 @@ import org.onlab.packet.IPv6; |
25 | 25 | ||
26 | import java.nio.ByteBuffer; | 26 | import java.nio.ByteBuffer; |
27 | 27 | ||
28 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
28 | import static org.onlab.packet.PacketUtils.checkInput; | 29 | import static org.onlab.packet.PacketUtils.checkInput; |
29 | 30 | ||
30 | /** | 31 | /** |
... | @@ -250,4 +251,14 @@ public class Fragment extends BasePacket implements IExtensionHeader { | ... | @@ -250,4 +251,14 @@ public class Fragment extends BasePacket implements IExtensionHeader { |
250 | return fragment; | 251 | return fragment; |
251 | }; | 252 | }; |
252 | } | 253 | } |
254 | + | ||
255 | + @Override | ||
256 | + public String toString() { | ||
257 | + return toStringHelper(getClass()) | ||
258 | + .add("nextHeader", Byte.toString(nextHeader)) | ||
259 | + .add("fragmentOffset", Short.toString(fragmentOffset)) | ||
260 | + .add("moreFragment", Byte.toString(moreFragment)) | ||
261 | + .add("identification", Integer.toString(identification)) | ||
262 | + .toString(); | ||
263 | + } | ||
253 | } | 264 | } | ... | ... |
... | @@ -26,6 +26,7 @@ import org.onlab.packet.IPv6; | ... | @@ -26,6 +26,7 @@ import org.onlab.packet.IPv6; |
26 | import java.nio.ByteBuffer; | 26 | import java.nio.ByteBuffer; |
27 | import java.util.Arrays; | 27 | import java.util.Arrays; |
28 | 28 | ||
29 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
29 | import static org.onlab.packet.PacketUtils.checkHeaderLength; | 30 | import static org.onlab.packet.PacketUtils.checkHeaderLength; |
30 | import static org.onlab.packet.PacketUtils.checkInput; | 31 | import static org.onlab.packet.PacketUtils.checkInput; |
31 | 32 | ||
... | @@ -288,4 +289,15 @@ public class Routing extends BasePacket implements IExtensionHeader { | ... | @@ -288,4 +289,15 @@ public class Routing extends BasePacket implements IExtensionHeader { |
288 | return routing; | 289 | return routing; |
289 | }; | 290 | }; |
290 | } | 291 | } |
292 | + | ||
293 | + @Override | ||
294 | + public String toString() { | ||
295 | + return toStringHelper(getClass()) | ||
296 | + .add("nextHeader", Byte.toString(nextHeader)) | ||
297 | + .add("headerExtLength", Byte.toString(headerExtLength)) | ||
298 | + .add("routingType", Byte.toString(routingType)) | ||
299 | + .add("segmentsLeft", Byte.toString(segmentsLeft)) | ||
300 | + .add("routingData", Arrays.toString(routingData)) | ||
301 | + .toString(); | ||
302 | + } | ||
291 | } | 303 | } | ... | ... |
... | @@ -24,6 +24,7 @@ import java.nio.ByteBuffer; | ... | @@ -24,6 +24,7 @@ import java.nio.ByteBuffer; |
24 | import java.util.Arrays; | 24 | import java.util.Arrays; |
25 | import java.util.List; | 25 | import java.util.List; |
26 | 26 | ||
27 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
27 | import static org.onlab.packet.PacketUtils.checkInput; | 28 | import static org.onlab.packet.PacketUtils.checkInput; |
28 | 29 | ||
29 | /** | 30 | /** |
... | @@ -275,4 +276,14 @@ public class NeighborAdvertisement extends BasePacket { | ... | @@ -275,4 +276,14 @@ public class NeighborAdvertisement extends BasePacket { |
275 | return neighborAdvertisement; | 276 | return neighborAdvertisement; |
276 | }; | 277 | }; |
277 | } | 278 | } |
279 | + | ||
280 | + @Override | ||
281 | + public String toString() { | ||
282 | + return toStringHelper(getClass()) | ||
283 | + .add("routerFlag", Byte.toString(routerFlag)) | ||
284 | + .add("solicitedFlag", Byte.toString(solicitedFlag)) | ||
285 | + .add("overrideFlag", Byte.toString(overrideFlag)) | ||
286 | + .add("targetAddress", Arrays.toString(targetAddress)) | ||
287 | + .toString(); | ||
288 | + } | ||
278 | } | 289 | } | ... | ... |
... | @@ -25,6 +25,7 @@ import java.util.ArrayList; | ... | @@ -25,6 +25,7 @@ import java.util.ArrayList; |
25 | import java.util.Arrays; | 25 | import java.util.Arrays; |
26 | import java.util.List; | 26 | import java.util.List; |
27 | 27 | ||
28 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
28 | import static org.onlab.packet.PacketUtils.checkInput; | 29 | import static org.onlab.packet.PacketUtils.checkInput; |
29 | 30 | ||
30 | /** | 31 | /** |
... | @@ -117,6 +118,18 @@ public class NeighborDiscoveryOptions extends BasePacket { | ... | @@ -117,6 +118,18 @@ public class NeighborDiscoveryOptions extends BasePacket { |
117 | private int optionWireLength() { | 118 | private int optionWireLength() { |
118 | return 8 * optionLengthField(); | 119 | return 8 * optionLengthField(); |
119 | } | 120 | } |
121 | + | ||
122 | + @Override | ||
123 | + public String toString() { | ||
124 | + StringBuilder sb = new StringBuilder(); | ||
125 | + sb.append("["); | ||
126 | + sb.append("type= "); | ||
127 | + sb.append(type); | ||
128 | + sb.append("data= "); | ||
129 | + sb.append(data); | ||
130 | + sb.append("]"); | ||
131 | + return sb.toString(); | ||
132 | + } | ||
120 | } | 133 | } |
121 | 134 | ||
122 | /** | 135 | /** |
... | @@ -278,4 +291,11 @@ public class NeighborDiscoveryOptions extends BasePacket { | ... | @@ -278,4 +291,11 @@ public class NeighborDiscoveryOptions extends BasePacket { |
278 | return ndo; | 291 | return ndo; |
279 | }; | 292 | }; |
280 | } | 293 | } |
294 | + | ||
295 | + @Override | ||
296 | + public String toString() { | ||
297 | + return toStringHelper(getClass()) | ||
298 | + .toString(); | ||
299 | + // TODO: need to handle options | ||
300 | + } | ||
281 | } | 301 | } | ... | ... |
... | @@ -24,6 +24,7 @@ import java.nio.ByteBuffer; | ... | @@ -24,6 +24,7 @@ import java.nio.ByteBuffer; |
24 | import java.util.Arrays; | 24 | import java.util.Arrays; |
25 | import java.util.List; | 25 | import java.util.List; |
26 | 26 | ||
27 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
27 | import static org.onlab.packet.PacketUtils.checkInput; | 28 | import static org.onlab.packet.PacketUtils.checkInput; |
28 | 29 | ||
29 | /** | 30 | /** |
... | @@ -189,4 +190,12 @@ public class NeighborSolicitation extends BasePacket { | ... | @@ -189,4 +190,12 @@ public class NeighborSolicitation extends BasePacket { |
189 | return neighborSolicitation; | 190 | return neighborSolicitation; |
190 | }; | 191 | }; |
191 | } | 192 | } |
193 | + | ||
194 | + @Override | ||
195 | + public String toString() { | ||
196 | + return toStringHelper(getClass()) | ||
197 | + .add("targetAddress", Arrays.toString(targetAddress)) | ||
198 | + .toString(); | ||
199 | + // TODO: need to handle options | ||
200 | + } | ||
192 | } | 201 | } | ... | ... |
... | @@ -24,6 +24,7 @@ import java.nio.ByteBuffer; | ... | @@ -24,6 +24,7 @@ import java.nio.ByteBuffer; |
24 | import java.util.Arrays; | 24 | import java.util.Arrays; |
25 | import java.util.List; | 25 | import java.util.List; |
26 | 26 | ||
27 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
27 | import static org.onlab.packet.PacketUtils.checkInput; | 28 | import static org.onlab.packet.PacketUtils.checkInput; |
28 | 29 | ||
29 | /** | 30 | /** |
... | @@ -222,4 +223,12 @@ public class Redirect extends BasePacket { | ... | @@ -222,4 +223,12 @@ public class Redirect extends BasePacket { |
222 | return redirect; | 223 | return redirect; |
223 | }; | 224 | }; |
224 | } | 225 | } |
226 | + | ||
227 | + @Override | ||
228 | + public String toString() { | ||
229 | + return toStringHelper(getClass()) | ||
230 | + .add("targetAddress", Arrays.toString(targetAddress)) | ||
231 | + .add("destinationAddress", Arrays.toString(destinationAddress)) | ||
232 | + .toString(); | ||
233 | + } | ||
225 | } | 234 | } | ... | ... |
... | @@ -22,6 +22,7 @@ import org.onlab.packet.IPacket; | ... | @@ -22,6 +22,7 @@ import org.onlab.packet.IPacket; |
22 | import java.nio.ByteBuffer; | 22 | import java.nio.ByteBuffer; |
23 | import java.util.List; | 23 | import java.util.List; |
24 | 24 | ||
25 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
25 | import static org.onlab.packet.PacketUtils.checkInput; | 26 | import static org.onlab.packet.PacketUtils.checkInput; |
26 | 27 | ||
27 | /** | 28 | /** |
... | @@ -322,4 +323,17 @@ public class RouterAdvertisement extends BasePacket { | ... | @@ -322,4 +323,17 @@ public class RouterAdvertisement extends BasePacket { |
322 | return routerAdvertisement; | 323 | return routerAdvertisement; |
323 | }; | 324 | }; |
324 | } | 325 | } |
326 | + | ||
327 | + @Override | ||
328 | + public String toString() { | ||
329 | + return toStringHelper(getClass()) | ||
330 | + .add("currentHopLimit", Byte.toString(currentHopLimit)) | ||
331 | + .add("mFlag", Byte.toString(mFlag)) | ||
332 | + .add("oFlag", Byte.toString(oFlag)) | ||
333 | + .add("routerLifetime", Short.toString(routerLifetime)) | ||
334 | + .add("reachableTime", Integer.toString(reachableTime)) | ||
335 | + .add("retransmitTimer", Integer.toString(retransmitTimer)) | ||
336 | + .toString(); | ||
337 | + // TODO: need to handle optionis | ||
338 | + } | ||
325 | } | 339 | } | ... | ... |
... | @@ -22,6 +22,7 @@ import org.onlab.packet.IPacket; | ... | @@ -22,6 +22,7 @@ import org.onlab.packet.IPacket; |
22 | import java.nio.ByteBuffer; | 22 | import java.nio.ByteBuffer; |
23 | import java.util.List; | 23 | import java.util.List; |
24 | 24 | ||
25 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
25 | import static org.onlab.packet.PacketUtils.checkInput; | 26 | import static org.onlab.packet.PacketUtils.checkInput; |
26 | 27 | ||
27 | /** | 28 | /** |
... | @@ -152,4 +153,11 @@ public class RouterSolicitation extends BasePacket { | ... | @@ -152,4 +153,11 @@ public class RouterSolicitation extends BasePacket { |
152 | return routerSolicitation; | 153 | return routerSolicitation; |
153 | }; | 154 | }; |
154 | } | 155 | } |
156 | + | ||
157 | + @Override | ||
158 | + public String toString() { | ||
159 | + return toStringHelper(getClass()) | ||
160 | + .toString(); | ||
161 | + // TODO: need to handle options | ||
162 | + } | ||
155 | } | 163 | } | ... | ... |
... | @@ -23,6 +23,7 @@ import java.nio.ByteBuffer; | ... | @@ -23,6 +23,7 @@ import java.nio.ByteBuffer; |
23 | import java.util.HashMap; | 23 | import java.util.HashMap; |
24 | import java.util.Map; | 24 | import java.util.Map; |
25 | 25 | ||
26 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
26 | import static org.onlab.packet.PacketUtils.checkInput; | 27 | import static org.onlab.packet.PacketUtils.checkInput; |
27 | 28 | ||
28 | public class PIMHello extends BasePacket { | 29 | public class PIMHello extends BasePacket { |
... | @@ -115,4 +116,13 @@ public class PIMHello extends BasePacket { | ... | @@ -115,4 +116,13 @@ public class PIMHello extends BasePacket { |
115 | return hello; | 116 | return hello; |
116 | }; | 117 | }; |
117 | } | 118 | } |
119 | + | ||
120 | + @Override | ||
121 | + public String toString() { | ||
122 | + return toStringHelper(getClass()) | ||
123 | + .add("nbrIpAddress", nbrIpAddress.toString()) | ||
124 | + .add("priorityPresent", Boolean.toString(priorityPresent)) | ||
125 | + .toString(); | ||
126 | + // TODO: need to handle options | ||
127 | + } | ||
118 | } | 128 | } | ... | ... |
... | @@ -23,6 +23,7 @@ import org.onlab.packet.IpPrefix; | ... | @@ -23,6 +23,7 @@ import org.onlab.packet.IpPrefix; |
23 | import java.nio.ByteBuffer; | 23 | import java.nio.ByteBuffer; |
24 | import java.util.HashMap; | 24 | import java.util.HashMap; |
25 | 25 | ||
26 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
26 | import static org.onlab.packet.PacketUtils.checkInput; | 27 | import static org.onlab.packet.PacketUtils.checkInput; |
27 | 28 | ||
28 | public class PIMJoinPrune extends BasePacket { | 29 | public class PIMJoinPrune extends BasePacket { |
... | @@ -268,4 +269,13 @@ public class PIMJoinPrune extends BasePacket { | ... | @@ -268,4 +269,13 @@ public class PIMJoinPrune extends BasePacket { |
268 | return jp; | 269 | return jp; |
269 | }; | 270 | }; |
270 | } | 271 | } |
272 | + | ||
273 | + @Override | ||
274 | + public String toString() { | ||
275 | + return toStringHelper(getClass()) | ||
276 | + .add("upstreamAddr", upstreamAddr.toString()) | ||
277 | + .add("holdTime", Short.toString(holdTime)) | ||
278 | + .toString(); | ||
279 | + // TODO: need to handle joinPrunes | ||
280 | + } | ||
271 | } | 281 | } | ... | ... |
... | @@ -16,6 +16,7 @@ | ... | @@ -16,6 +16,7 @@ |
16 | 16 | ||
17 | package org.onlab.packet; | 17 | package org.onlab.packet; |
18 | 18 | ||
19 | +import org.apache.commons.lang3.StringUtils; | ||
19 | import org.junit.Before; | 20 | import org.junit.Before; |
20 | import org.junit.Test; | 21 | import org.junit.Test; |
21 | 22 | ||
... | @@ -70,6 +71,9 @@ public class ArpTest { | ... | @@ -70,6 +71,9 @@ public class ArpTest { |
70 | PacketTestUtils.testDeserializeTruncated(deserializer, byteHeader); | 71 | PacketTestUtils.testDeserializeTruncated(deserializer, byteHeader); |
71 | } | 72 | } |
72 | 73 | ||
74 | + /** | ||
75 | + * Tests deserialize and getters. | ||
76 | + */ | ||
73 | @Test | 77 | @Test |
74 | public void testDeserialize() throws Exception { | 78 | public void testDeserialize() throws Exception { |
75 | ARP arp = deserializer.deserialize(byteHeader, 0, byteHeader.length); | 79 | ARP arp = deserializer.deserialize(byteHeader, 0, byteHeader.length); |
... | @@ -85,4 +89,19 @@ public class ArpTest { | ... | @@ -85,4 +89,19 @@ public class ArpTest { |
85 | assertTrue(Arrays.equals(targetMac.toBytes(), arp.getTargetHardwareAddress())); | 89 | assertTrue(Arrays.equals(targetMac.toBytes(), arp.getTargetHardwareAddress())); |
86 | assertTrue(Arrays.equals(targetIp.toOctets(), arp.getTargetProtocolAddress())); | 90 | assertTrue(Arrays.equals(targetIp.toOctets(), arp.getTargetProtocolAddress())); |
87 | } | 91 | } |
92 | + | ||
93 | + /** | ||
94 | + * Tests toString. | ||
95 | + */ | ||
96 | + @Test | ||
97 | + public void testToStringArp() throws Exception { | ||
98 | + ARP arp = deserializer.deserialize(byteHeader, 0, byteHeader.length); | ||
99 | + String str = arp.toString(); | ||
100 | + assertTrue(StringUtils.contains(str, "hardwareAddressLength=" + hwAddressLength)); | ||
101 | + assertTrue(StringUtils.contains(str, "protocolAddressLength=" + protoAddressLength)); | ||
102 | + assertTrue(StringUtils.contains(str, "senderHardwareAddress=" + Arrays.toString(srcMac.toBytes()))); | ||
103 | + assertTrue(StringUtils.contains(str, "senderProtocolAddress=" + Arrays.toString(srcIp.toOctets()))); | ||
104 | + assertTrue(StringUtils.contains(str, "targetHardwareAddress=" + Arrays.toString(targetMac.toBytes()))); | ||
105 | + assertTrue(StringUtils.contains(str, "targetProtocolAddress=" + Arrays.toString(targetIp.toOctets()))); | ||
106 | + } | ||
88 | } | 107 | } | ... | ... |
... | @@ -17,6 +17,7 @@ | ... | @@ -17,6 +17,7 @@ |
17 | package org.onlab.packet; | 17 | package org.onlab.packet; |
18 | 18 | ||
19 | import com.google.common.base.Charsets; | 19 | import com.google.common.base.Charsets; |
20 | +import org.apache.commons.lang3.StringUtils; | ||
20 | import org.junit.Before; | 21 | import org.junit.Before; |
21 | import org.junit.Test; | 22 | import org.junit.Test; |
22 | 23 | ||
... | @@ -111,6 +112,9 @@ public class DhcpTest { | ... | @@ -111,6 +112,9 @@ public class DhcpTest { |
111 | PacketTestUtils.testDeserializeTruncated(deserializer, byteHeader); | 112 | PacketTestUtils.testDeserializeTruncated(deserializer, byteHeader); |
112 | } | 113 | } |
113 | 114 | ||
115 | + /** | ||
116 | + * Tests deserialize and getters. | ||
117 | + */ | ||
114 | @Test | 118 | @Test |
115 | public void testDeserialize() throws Exception { | 119 | public void testDeserialize() throws Exception { |
116 | DHCP dhcp = deserializer.deserialize(byteHeader, 0, byteHeader.length); | 120 | DHCP dhcp = deserializer.deserialize(byteHeader, 0, byteHeader.length); |
... | @@ -134,4 +138,28 @@ public class DhcpTest { | ... | @@ -134,4 +138,28 @@ public class DhcpTest { |
134 | assertEquals(hostNameOption, dhcp.options.get(0)); | 138 | assertEquals(hostNameOption, dhcp.options.get(0)); |
135 | } | 139 | } |
136 | 140 | ||
141 | + /** | ||
142 | + * Tests toString. | ||
143 | + */ | ||
144 | + @Test | ||
145 | + public void testToStringDhcp() throws Exception { | ||
146 | + DHCP dhcp = deserializer.deserialize(byteHeader, 0, byteHeader.length); | ||
147 | + String str = dhcp.toString(); | ||
148 | + | ||
149 | + assertTrue(StringUtils.contains(str, "opCode=" + opCode)); | ||
150 | + assertTrue(StringUtils.contains(str, "hardwareType=" + hardwareType)); | ||
151 | + assertTrue(StringUtils.contains(str, "hardwareAddressLength=" + hardwareAddressLength)); | ||
152 | + assertTrue(StringUtils.contains(str, "hops=" + hops)); | ||
153 | + assertTrue(StringUtils.contains(str, "transactionId=" + transactionId)); | ||
154 | + assertTrue(StringUtils.contains(str, "seconds=" + seconds)); | ||
155 | + assertTrue(StringUtils.contains(str, "flags=" + flags)); | ||
156 | + assertTrue(StringUtils.contains(str, "clientIPAddress=" + clientIpAddress)); | ||
157 | + assertTrue(StringUtils.contains(str, "yourIPAddress=" + yourIpAddress)); | ||
158 | + assertTrue(StringUtils.contains(str, "serverIPAddress=" + serverIpAddress)); | ||
159 | + assertTrue(StringUtils.contains(str, "gatewayIPAddress=" + gatewayIpAddress)); | ||
160 | + assertTrue(StringUtils.contains(str, "clientHardwareAddress=" + Arrays.toString(clientHardwareAddress))); | ||
161 | + assertTrue(StringUtils.contains(str, "serverName=" + serverName)); | ||
162 | + assertTrue(StringUtils.contains(str, "bootFileName=" + bootFileName)); | ||
163 | + // TODO: add option unit test | ||
164 | + } | ||
137 | } | 165 | } | ... | ... |
... | @@ -18,6 +18,7 @@ | ... | @@ -18,6 +18,7 @@ |
18 | 18 | ||
19 | package org.onlab.packet; | 19 | package org.onlab.packet; |
20 | 20 | ||
21 | +import org.apache.commons.lang3.StringUtils; | ||
21 | import org.junit.BeforeClass; | 22 | import org.junit.BeforeClass; |
22 | import org.junit.Test; | 23 | import org.junit.Test; |
23 | 24 | ||
... | @@ -107,4 +108,17 @@ public class ICMP6Test { | ... | @@ -107,4 +108,17 @@ public class ICMP6Test { |
107 | assertTrue(icmp61.equals(icmp61)); | 108 | assertTrue(icmp61.equals(icmp61)); |
108 | assertFalse(icmp61.equals(icmp62)); | 109 | assertFalse(icmp61.equals(icmp62)); |
109 | } | 110 | } |
111 | + | ||
112 | + /** | ||
113 | + * Tests toString. | ||
114 | + */ | ||
115 | + @Test | ||
116 | + public void testToStringIcmp6() throws Exception { | ||
117 | + ICMP6 icmp6 = ICMP6.deserializer().deserialize(bytePacket, 0, bytePacket.length); | ||
118 | + String str = icmp6.toString(); | ||
119 | + | ||
120 | + assertTrue(StringUtils.contains(str, "icmpType=" + ICMP6.ECHO_REQUEST)); | ||
121 | + assertTrue(StringUtils.contains(str, "icmpCode=" + (byte) 0x00)); | ||
122 | + assertTrue(StringUtils.contains(str, "checksum=" + (short) 0x82bc)); | ||
123 | + } | ||
110 | } | 124 | } | ... | ... |
... | @@ -16,12 +16,14 @@ | ... | @@ -16,12 +16,14 @@ |
16 | 16 | ||
17 | package org.onlab.packet; | 17 | package org.onlab.packet; |
18 | 18 | ||
19 | +import org.apache.commons.lang3.StringUtils; | ||
19 | import org.junit.Before; | 20 | import org.junit.Before; |
20 | import org.junit.Test; | 21 | import org.junit.Test; |
21 | 22 | ||
22 | import java.nio.ByteBuffer; | 23 | import java.nio.ByteBuffer; |
23 | 24 | ||
24 | import static org.junit.Assert.assertEquals; | 25 | import static org.junit.Assert.assertEquals; |
26 | +import static org.junit.Assert.assertTrue; | ||
25 | 27 | ||
26 | /** | 28 | /** |
27 | * Unit tests for the ICMP class. | 29 | * Unit tests for the ICMP class. |
... | @@ -59,6 +61,9 @@ public class ICMPTest { | ... | @@ -59,6 +61,9 @@ public class ICMPTest { |
59 | PacketTestUtils.testDeserializeTruncated(deserializer, headerBytes); | 61 | PacketTestUtils.testDeserializeTruncated(deserializer, headerBytes); |
60 | } | 62 | } |
61 | 63 | ||
64 | + /** | ||
65 | + * Tests deserialize and getters. | ||
66 | + */ | ||
62 | @Test | 67 | @Test |
63 | public void testDeserialize() throws Exception { | 68 | public void testDeserialize() throws Exception { |
64 | ICMP icmp = deserializer.deserialize(headerBytes, 0, headerBytes.length); | 69 | ICMP icmp = deserializer.deserialize(headerBytes, 0, headerBytes.length); |
... | @@ -67,4 +72,17 @@ public class ICMPTest { | ... | @@ -67,4 +72,17 @@ public class ICMPTest { |
67 | assertEquals(icmpCode, icmp.getIcmpCode()); | 72 | assertEquals(icmpCode, icmp.getIcmpCode()); |
68 | assertEquals(checksum, icmp.getChecksum()); | 73 | assertEquals(checksum, icmp.getChecksum()); |
69 | } | 74 | } |
75 | + | ||
76 | + /** | ||
77 | + * Tests toString. | ||
78 | + */ | ||
79 | + @Test | ||
80 | + public void testToStringIcmp() throws Exception { | ||
81 | + ICMP icmp = deserializer.deserialize(headerBytes, 0, headerBytes.length); | ||
82 | + String str = icmp.toString(); | ||
83 | + | ||
84 | + assertTrue(StringUtils.contains(str, "icmpType=" + icmpType)); | ||
85 | + assertTrue(StringUtils.contains(str, "icmpCode=" + icmpCode)); | ||
86 | + assertTrue(StringUtils.contains(str, "checksum=" + checksum)); | ||
87 | + } | ||
70 | } | 88 | } | ... | ... |
... | @@ -93,4 +93,12 @@ public class IGMPTest { | ... | @@ -93,4 +93,12 @@ public class IGMPTest { |
93 | IGMP igmp = deserializer.deserialize(data, 0, data.length); | 93 | IGMP igmp = deserializer.deserialize(data, 0, data.length); |
94 | assertTrue(igmp.equals(igmpMembership)); | 94 | assertTrue(igmp.equals(igmpMembership)); |
95 | } | 95 | } |
96 | + | ||
97 | + /** | ||
98 | + * Tests toString. | ||
99 | + */ | ||
100 | + @Test | ||
101 | + public void testToStringIgmp() throws Exception { | ||
102 | + // TODO: add toString unit test | ||
103 | + } | ||
96 | } | 104 | } | ... | ... |
... | @@ -16,6 +16,7 @@ | ... | @@ -16,6 +16,7 @@ |
16 | 16 | ||
17 | package org.onlab.packet; | 17 | package org.onlab.packet; |
18 | 18 | ||
19 | +import org.apache.commons.lang3.StringUtils; | ||
19 | import org.junit.Before; | 20 | import org.junit.Before; |
20 | import org.junit.Test; | 21 | import org.junit.Test; |
21 | 22 | ||
... | @@ -78,6 +79,9 @@ public class IPv4Test { | ... | @@ -78,6 +79,9 @@ public class IPv4Test { |
78 | PacketTestUtils.testDeserializeTruncated(deserializer, headerBytes); | 79 | PacketTestUtils.testDeserializeTruncated(deserializer, headerBytes); |
79 | } | 80 | } |
80 | 81 | ||
82 | + /** | ||
83 | + * Tests deserialize and getters. | ||
84 | + */ | ||
81 | @Test | 85 | @Test |
82 | public void testDeserialize() throws Exception { | 86 | public void testDeserialize() throws Exception { |
83 | IPv4 ipv4 = deserializer.deserialize(headerBytes, 0, headerBytes.length); | 87 | IPv4 ipv4 = deserializer.deserialize(headerBytes, 0, headerBytes.length); |
... | @@ -96,4 +100,26 @@ public class IPv4Test { | ... | @@ -96,4 +100,26 @@ public class IPv4Test { |
96 | assertEquals(destinationAddress, ipv4.getDestinationAddress()); | 100 | assertEquals(destinationAddress, ipv4.getDestinationAddress()); |
97 | assertTrue(ipv4.isTruncated()); | 101 | assertTrue(ipv4.isTruncated()); |
98 | } | 102 | } |
103 | + | ||
104 | + /** | ||
105 | + * Tests toString. | ||
106 | + */ | ||
107 | + @Test | ||
108 | + public void testToStringIPv4() throws Exception { | ||
109 | + IPv4 ipv4 = deserializer.deserialize(headerBytes, 0, headerBytes.length); | ||
110 | + String str = ipv4.toString(); | ||
111 | + | ||
112 | + assertTrue(StringUtils.contains(str, "version=" + version)); | ||
113 | + assertTrue(StringUtils.contains(str, "headerLength=" + headerLength)); | ||
114 | + assertTrue(StringUtils.contains(str, "diffServ=" + diffServ)); | ||
115 | + assertTrue(StringUtils.contains(str, "totalLength=" + totalLength)); | ||
116 | + assertTrue(StringUtils.contains(str, "identification=" + identification)); | ||
117 | + assertTrue(StringUtils.contains(str, "flags=" + flags)); | ||
118 | + assertTrue(StringUtils.contains(str, "fragmentOffset=" + fragmentOffset)); | ||
119 | + assertTrue(StringUtils.contains(str, "ttl=" + ttl)); | ||
120 | + assertTrue(StringUtils.contains(str, "protocol=" + protocol)); | ||
121 | + assertTrue(StringUtils.contains(str, "checksum=" + checksum)); | ||
122 | + assertTrue(StringUtils.contains(str, "sourceAddress=" + sourceAddress)); | ||
123 | + assertTrue(StringUtils.contains(str, "destinationAddress=" + destinationAddress)); | ||
124 | + } | ||
99 | } | 125 | } | ... | ... |
... | @@ -18,6 +18,7 @@ | ... | @@ -18,6 +18,7 @@ |
18 | 18 | ||
19 | package org.onlab.packet; | 19 | package org.onlab.packet; |
20 | 20 | ||
21 | +import org.apache.commons.lang3.StringUtils; | ||
21 | import org.junit.Before; | 22 | import org.junit.Before; |
22 | import org.junit.BeforeClass; | 23 | import org.junit.BeforeClass; |
23 | import org.junit.Test; | 24 | import org.junit.Test; |
... | @@ -151,4 +152,20 @@ public class IPv6Test { | ... | @@ -151,4 +152,20 @@ public class IPv6Test { |
151 | assertTrue(packet1.equals(packet1)); | 152 | assertTrue(packet1.equals(packet1)); |
152 | assertFalse(packet1.equals(packet2)); | 153 | assertFalse(packet1.equals(packet2)); |
153 | } | 154 | } |
155 | + | ||
156 | + /** | ||
157 | + * Tests toString. | ||
158 | + */ | ||
159 | + @Test | ||
160 | + public void testToStringIPv6() throws Exception { | ||
161 | + IPv6 ipv6 = deserializer.deserialize(bytePacket, 0, bytePacket.length); | ||
162 | + String str = ipv6.toString(); | ||
163 | + | ||
164 | + assertTrue(StringUtils.contains(str, "version=" + (byte) 6)); | ||
165 | + assertTrue(StringUtils.contains(str, "trafficClass=" + (byte) 0x93)); | ||
166 | + assertTrue(StringUtils.contains(str, "flowLabel=" + 0x13579)); | ||
167 | + assertTrue(StringUtils.contains(str, "nextHeader=" + IPv6.PROTOCOL_UDP)); | ||
168 | + assertTrue(StringUtils.contains(str, "hopLimit=" + (byte) 32)); | ||
169 | + // TODO: test IPv6 source and destination address | ||
170 | + } | ||
154 | } | 171 | } | ... | ... |
... | @@ -16,12 +16,14 @@ | ... | @@ -16,12 +16,14 @@ |
16 | 16 | ||
17 | package org.onlab.packet; | 17 | package org.onlab.packet; |
18 | 18 | ||
19 | +import org.apache.commons.lang3.StringUtils; | ||
19 | import org.junit.Before; | 20 | import org.junit.Before; |
20 | import org.junit.Test; | 21 | import org.junit.Test; |
21 | 22 | ||
22 | import java.nio.ByteBuffer; | 23 | import java.nio.ByteBuffer; |
23 | 24 | ||
24 | import static org.junit.Assert.assertEquals; | 25 | import static org.junit.Assert.assertEquals; |
26 | +import static org.junit.Assert.assertTrue; | ||
25 | 27 | ||
26 | /** | 28 | /** |
27 | * Unit tests for LLC class. | 29 | * Unit tests for LLC class. |
... | @@ -59,6 +61,9 @@ public class LLCTest { | ... | @@ -59,6 +61,9 @@ public class LLCTest { |
59 | PacketTestUtils.testDeserializeTruncated(deserializer, bytes); | 61 | PacketTestUtils.testDeserializeTruncated(deserializer, bytes); |
60 | } | 62 | } |
61 | 63 | ||
64 | + /** | ||
65 | + * Tests deserialize and getters. | ||
66 | + */ | ||
62 | @Test | 67 | @Test |
63 | public void testDeserialize() throws Exception { | 68 | public void testDeserialize() throws Exception { |
64 | LLC llc = deserializer.deserialize(bytes, 0, bytes.length); | 69 | LLC llc = deserializer.deserialize(bytes, 0, bytes.length); |
... | @@ -67,4 +72,17 @@ public class LLCTest { | ... | @@ -67,4 +72,17 @@ public class LLCTest { |
67 | assertEquals(ssap, llc.getSsap()); | 72 | assertEquals(ssap, llc.getSsap()); |
68 | assertEquals(ctrl, llc.getCtrl()); | 73 | assertEquals(ctrl, llc.getCtrl()); |
69 | } | 74 | } |
75 | + | ||
76 | + /** | ||
77 | + * Tests toString. | ||
78 | + */ | ||
79 | + @Test | ||
80 | + public void testToStringLLC() throws Exception { | ||
81 | + LLC llc = deserializer.deserialize(bytes, 0, bytes.length); | ||
82 | + String str = llc.toString(); | ||
83 | + | ||
84 | + assertTrue(StringUtils.contains(str, "dsap=" + dsap)); | ||
85 | + assertTrue(StringUtils.contains(str, "ssap=" + ssap)); | ||
86 | + assertTrue(StringUtils.contains(str, "ctrl=" + ctrl)); | ||
87 | + } | ||
70 | } | 88 | } | ... | ... |
... | @@ -89,6 +89,9 @@ public class LLDPTest { | ... | @@ -89,6 +89,9 @@ public class LLDPTest { |
89 | PacketTestUtils.testDeserializeTruncated(deserializer, bytes); | 89 | PacketTestUtils.testDeserializeTruncated(deserializer, bytes); |
90 | } | 90 | } |
91 | 91 | ||
92 | + /** | ||
93 | + * Tests deserialize and getters. | ||
94 | + */ | ||
92 | @Test | 95 | @Test |
93 | public void testDeserialize() throws Exception { | 96 | public void testDeserialize() throws Exception { |
94 | LLDP lldp = deserializer.deserialize(bytes, 0, bytes.length); | 97 | LLDP lldp = deserializer.deserialize(bytes, 0, bytes.length); |
... | @@ -112,4 +115,15 @@ public class LLDPTest { | ... | @@ -112,4 +115,15 @@ public class LLDPTest { |
112 | assertEquals(optionalTlvSize, optionalTlv.getLength()); | 115 | assertEquals(optionalTlvSize, optionalTlv.getLength()); |
113 | assertTrue(Arrays.equals(optionalTlvValue, optionalTlv.getValue())); | 116 | assertTrue(Arrays.equals(optionalTlvValue, optionalTlv.getValue())); |
114 | } | 117 | } |
118 | + | ||
119 | + /** | ||
120 | + * Tests toString. | ||
121 | + */ | ||
122 | + @Test | ||
123 | + public void testToStringLLDP() throws Exception { | ||
124 | + LLDP lldp = deserializer.deserialize(bytes, 0, bytes.length); | ||
125 | + String str = lldp.toString(); | ||
126 | + | ||
127 | + // TODO: need to add LLDP toString unit test | ||
128 | + } | ||
115 | } | 129 | } | ... | ... |
... | @@ -16,6 +16,7 @@ | ... | @@ -16,6 +16,7 @@ |
16 | 16 | ||
17 | package org.onlab.packet; | 17 | package org.onlab.packet; |
18 | 18 | ||
19 | +import org.apache.commons.lang3.StringUtils; | ||
19 | import org.junit.Before; | 20 | import org.junit.Before; |
20 | import org.junit.Test; | 21 | import org.junit.Test; |
21 | 22 | ||
... | @@ -23,6 +24,7 @@ import java.nio.ByteBuffer; | ... | @@ -23,6 +24,7 @@ import java.nio.ByteBuffer; |
23 | import java.util.HashMap; | 24 | import java.util.HashMap; |
24 | 25 | ||
25 | import static org.junit.Assert.assertEquals; | 26 | import static org.junit.Assert.assertEquals; |
27 | +import static org.junit.Assert.assertTrue; | ||
26 | 28 | ||
27 | /** | 29 | /** |
28 | * Unit tests for MPLS class. | 30 | * Unit tests for MPLS class. |
... | @@ -62,6 +64,9 @@ public class MplsTest { | ... | @@ -62,6 +64,9 @@ public class MplsTest { |
62 | PacketTestUtils.testDeserializeTruncated(deserializer, bytes); | 64 | PacketTestUtils.testDeserializeTruncated(deserializer, bytes); |
63 | } | 65 | } |
64 | 66 | ||
67 | + /** | ||
68 | + * Tests deserialize and getters. | ||
69 | + */ | ||
65 | @Test | 70 | @Test |
66 | public void testDeserialize() throws Exception { | 71 | public void testDeserialize() throws Exception { |
67 | MPLS mpls = deserializer.deserialize(bytes, 0, bytes.length); | 72 | MPLS mpls = deserializer.deserialize(bytes, 0, bytes.length); |
... | @@ -71,4 +76,18 @@ public class MplsTest { | ... | @@ -71,4 +76,18 @@ public class MplsTest { |
71 | assertEquals(ttl, mpls.ttl); | 76 | assertEquals(ttl, mpls.ttl); |
72 | assertEquals(protocol, mpls.protocol); | 77 | assertEquals(protocol, mpls.protocol); |
73 | } | 78 | } |
79 | + | ||
80 | + /** | ||
81 | + * Tests toString. | ||
82 | + */ | ||
83 | + @Test | ||
84 | + public void testToStringMpls() throws Exception { | ||
85 | + MPLS mpls = deserializer.deserialize(bytes, 0, bytes.length); | ||
86 | + String str = mpls.toString(); | ||
87 | + | ||
88 | + assertTrue(StringUtils.contains(str, "label=" + label)); | ||
89 | + assertTrue(StringUtils.contains(str, "bos=" + bos)); | ||
90 | + assertTrue(StringUtils.contains(str, "ttl=" + ttl)); | ||
91 | + assertTrue(StringUtils.contains(str, "protocol=" + protocol)); | ||
92 | + } | ||
74 | } | 93 | } | ... | ... |
... | @@ -18,6 +18,7 @@ | ... | @@ -18,6 +18,7 @@ |
18 | 18 | ||
19 | package org.onlab.packet; | 19 | package org.onlab.packet; |
20 | 20 | ||
21 | +import org.apache.commons.lang3.StringUtils; | ||
21 | import org.junit.BeforeClass; | 22 | import org.junit.BeforeClass; |
22 | import org.junit.Test; | 23 | import org.junit.Test; |
23 | 24 | ||
... | @@ -160,4 +161,23 @@ public class TCPTest { | ... | @@ -160,4 +161,23 @@ public class TCPTest { |
160 | assertTrue(tcp1.equals(tcp1)); | 161 | assertTrue(tcp1.equals(tcp1)); |
161 | assertFalse(tcp1.equals(tcp2)); | 162 | assertFalse(tcp1.equals(tcp2)); |
162 | } | 163 | } |
164 | + | ||
165 | + /** | ||
166 | + * Tests toString. | ||
167 | + */ | ||
168 | + @Test | ||
169 | + public void testToStringTcp() throws Exception { | ||
170 | + TCP tcp = deserializer.deserialize(bytePacketTCP4, 0, bytePacketTCP4.length); | ||
171 | + String str = tcp.toString(); | ||
172 | + | ||
173 | + assertTrue(StringUtils.contains(str, "sourcePort=" + 0x50)); | ||
174 | + assertTrue(StringUtils.contains(str, "destinationPort=" + 0x60)); | ||
175 | + assertTrue(StringUtils.contains(str, "sequence=" + 0x10)); | ||
176 | + assertTrue(StringUtils.contains(str, "acknowledge=" + 0x20)); | ||
177 | + assertTrue(StringUtils.contains(str, "dataOffset=" + (byte) 0x5)); | ||
178 | + assertTrue(StringUtils.contains(str, "flags=" + (short) 0x2)); | ||
179 | + assertTrue(StringUtils.contains(str, "windowSize=" + (short) 0x1000)); | ||
180 | + assertTrue(StringUtils.contains(str, "checksum=" + (short) 0x1bae)); | ||
181 | + assertTrue(StringUtils.contains(str, "urgentPointer=" + (short) 0x1)); | ||
182 | + } | ||
163 | } | 183 | } | ... | ... |
... | @@ -18,6 +18,7 @@ | ... | @@ -18,6 +18,7 @@ |
18 | 18 | ||
19 | package org.onlab.packet; | 19 | package org.onlab.packet; |
20 | 20 | ||
21 | +import org.apache.commons.lang3.StringUtils; | ||
21 | import org.junit.BeforeClass; | 22 | import org.junit.BeforeClass; |
22 | import org.junit.Test; | 23 | import org.junit.Test; |
23 | 24 | ||
... | @@ -131,4 +132,18 @@ public class UDPTest { | ... | @@ -131,4 +132,18 @@ public class UDPTest { |
131 | assertTrue(udp1.equals(udp1)); | 132 | assertTrue(udp1.equals(udp1)); |
132 | assertFalse(udp1.equals(udp2)); | 133 | assertFalse(udp1.equals(udp2)); |
133 | } | 134 | } |
135 | + | ||
136 | + /** | ||
137 | + * Tests toString. | ||
138 | + */ | ||
139 | + @Test | ||
140 | + public void testToStringUdp() throws Exception { | ||
141 | + UDP udp = deserializer.deserialize(bytePacketUDP4, 0, bytePacketUDP4.length); | ||
142 | + String str = udp.toString(); | ||
143 | + | ||
144 | + assertTrue(StringUtils.contains(str, "sourcePort=" + 0x50)); | ||
145 | + assertTrue(StringUtils.contains(str, "destinationPort=" + 0x60)); | ||
146 | + assertTrue(StringUtils.contains(str, "length=" + (short) 8)); | ||
147 | + assertTrue(StringUtils.contains(str, "checksum=" + (short) 0x7bda)); | ||
148 | + } | ||
134 | } | 149 | } | ... | ... |
... | @@ -16,6 +16,7 @@ | ... | @@ -16,6 +16,7 @@ |
16 | 16 | ||
17 | package org.onlab.packet.ipv6; | 17 | package org.onlab.packet.ipv6; |
18 | 18 | ||
19 | +import org.apache.commons.lang3.StringUtils; | ||
19 | import org.junit.Before; | 20 | import org.junit.Before; |
20 | import org.junit.BeforeClass; | 21 | import org.junit.BeforeClass; |
21 | import org.junit.Test; | 22 | import org.junit.Test; |
... | @@ -23,11 +24,10 @@ import org.onlab.packet.Data; | ... | @@ -23,11 +24,10 @@ import org.onlab.packet.Data; |
23 | import org.onlab.packet.Deserializer; | 24 | import org.onlab.packet.Deserializer; |
24 | import org.onlab.packet.UDP; | 25 | import org.onlab.packet.UDP; |
25 | 26 | ||
27 | +import java.util.Arrays; | ||
28 | + | ||
26 | import static org.hamcrest.Matchers.is; | 29 | import static org.hamcrest.Matchers.is; |
27 | -import static org.junit.Assert.assertArrayEquals; | 30 | +import static org.junit.Assert.*; |
28 | -import static org.junit.Assert.assertFalse; | ||
29 | -import static org.junit.Assert.assertThat; | ||
30 | -import static org.junit.Assert.assertTrue; | ||
31 | 31 | ||
32 | /** | 32 | /** |
33 | * Tests for class {@link Authentication}. | 33 | * Tests for class {@link Authentication}. |
... | @@ -118,4 +118,19 @@ public class AuthenticationTest { | ... | @@ -118,4 +118,19 @@ public class AuthenticationTest { |
118 | assertTrue(auth1.equals(auth1)); | 118 | assertTrue(auth1.equals(auth1)); |
119 | assertFalse(auth1.equals(auth2)); | 119 | assertFalse(auth1.equals(auth2)); |
120 | } | 120 | } |
121 | + | ||
122 | + /** | ||
123 | + * Tests toString. | ||
124 | + */ | ||
125 | + @Test | ||
126 | + public void testToStringAuthentication() throws Exception { | ||
127 | + Authentication auth = deserializer.deserialize(bytePacket, 0, bytePacket.length); | ||
128 | + String str = auth.toString(); | ||
129 | + | ||
130 | + assertTrue(StringUtils.contains(str, "nextHeader=" + (byte) 0x11)); | ||
131 | + assertTrue(StringUtils.contains(str, "payloadLength=" + (byte) 0x02)); | ||
132 | + assertTrue(StringUtils.contains(str, "securityParamIndex=" + 0x13572468)); | ||
133 | + assertTrue(StringUtils.contains(str, "sequence=" + 0xffff00)); | ||
134 | + assertTrue(StringUtils.contains(str, "integrityCheck=" + Arrays.toString(icv))); | ||
135 | + } | ||
121 | } | 136 | } | ... | ... |
... | @@ -16,6 +16,7 @@ | ... | @@ -16,6 +16,7 @@ |
16 | 16 | ||
17 | package org.onlab.packet.ipv6; | 17 | package org.onlab.packet.ipv6; |
18 | 18 | ||
19 | +import org.apache.commons.lang3.StringUtils; | ||
19 | import org.junit.Before; | 20 | import org.junit.Before; |
20 | import org.junit.BeforeClass; | 21 | import org.junit.BeforeClass; |
21 | import org.junit.Test; | 22 | import org.junit.Test; |
... | @@ -24,11 +25,10 @@ import org.onlab.packet.Deserializer; | ... | @@ -24,11 +25,10 @@ import org.onlab.packet.Deserializer; |
24 | import org.onlab.packet.IPv6; | 25 | import org.onlab.packet.IPv6; |
25 | import org.onlab.packet.UDP; | 26 | import org.onlab.packet.UDP; |
26 | 27 | ||
28 | +import java.util.Arrays; | ||
29 | + | ||
27 | import static org.hamcrest.Matchers.is; | 30 | import static org.hamcrest.Matchers.is; |
28 | -import static org.junit.Assert.assertArrayEquals; | 31 | +import static org.junit.Assert.*; |
29 | -import static org.junit.Assert.assertFalse; | ||
30 | -import static org.junit.Assert.assertThat; | ||
31 | -import static org.junit.Assert.assertTrue; | ||
32 | 32 | ||
33 | /** | 33 | /** |
34 | * Tests for class {@link BaseOptions}. | 34 | * Tests for class {@link BaseOptions}. |
... | @@ -112,4 +112,17 @@ public class BaseOptionsTest { | ... | @@ -112,4 +112,17 @@ public class BaseOptionsTest { |
112 | assertTrue(baseopt1.equals(baseopt1)); | 112 | assertTrue(baseopt1.equals(baseopt1)); |
113 | assertFalse(baseopt1.equals(baseopt2)); | 113 | assertFalse(baseopt1.equals(baseopt2)); |
114 | } | 114 | } |
115 | + | ||
116 | + /** | ||
117 | + * Tests toString. | ||
118 | + */ | ||
119 | + @Test | ||
120 | + public void testToStringBaseOptions() throws Exception { | ||
121 | + BaseOptions baseopt = deserializer.deserialize(bytePacket, 0, bytePacket.length); | ||
122 | + String str = baseopt.toString(); | ||
123 | + | ||
124 | + assertTrue(StringUtils.contains(str, "nextHeader=" + (byte) 0x11)); | ||
125 | + assertTrue(StringUtils.contains(str, "headerExtLength=" + (byte) 0x00)); | ||
126 | + assertTrue(StringUtils.contains(str, "options=" + Arrays.toString(options))); | ||
127 | + } | ||
115 | } | 128 | } | ... | ... |
... | @@ -16,6 +16,7 @@ | ... | @@ -16,6 +16,7 @@ |
16 | 16 | ||
17 | package org.onlab.packet.ipv6; | 17 | package org.onlab.packet.ipv6; |
18 | 18 | ||
19 | +import org.apache.commons.lang3.StringUtils; | ||
19 | import org.junit.Before; | 20 | import org.junit.Before; |
20 | import org.junit.BeforeClass; | 21 | import org.junit.BeforeClass; |
21 | import org.junit.Test; | 22 | import org.junit.Test; |
... | @@ -101,4 +102,16 @@ public class EncapSecurityPayloadTest { | ... | @@ -101,4 +102,16 @@ public class EncapSecurityPayloadTest { |
101 | assertTrue(esp1.equals(esp1)); | 102 | assertTrue(esp1.equals(esp1)); |
102 | assertFalse(esp1.equals(esp2)); | 103 | assertFalse(esp1.equals(esp2)); |
103 | } | 104 | } |
105 | + | ||
106 | + /** | ||
107 | + * Tests toString. | ||
108 | + */ | ||
109 | + @Test | ||
110 | + public void testToStringESP() throws Exception { | ||
111 | + EncapSecurityPayload esp = deserializer.deserialize(bytePacket, 0, bytePacket.length); | ||
112 | + String str = esp.toString(); | ||
113 | + | ||
114 | + assertTrue(StringUtils.contains(str, "securityParamIndex=" + 0x13572468)); | ||
115 | + assertTrue(StringUtils.contains(str, "sequence=" + 0xffff00)); | ||
116 | + } | ||
104 | } | 117 | } | ... | ... |
... | @@ -16,6 +16,7 @@ | ... | @@ -16,6 +16,7 @@ |
16 | 16 | ||
17 | package org.onlab.packet.ipv6; | 17 | package org.onlab.packet.ipv6; |
18 | 18 | ||
19 | +import org.apache.commons.lang3.StringUtils; | ||
19 | import org.junit.Before; | 20 | import org.junit.Before; |
20 | import org.junit.BeforeClass; | 21 | import org.junit.BeforeClass; |
21 | import org.junit.Test; | 22 | import org.junit.Test; |
... | @@ -110,4 +111,18 @@ public class FragmentTest { | ... | @@ -110,4 +111,18 @@ public class FragmentTest { |
110 | assertTrue(frag1.equals(frag1)); | 111 | assertTrue(frag1.equals(frag1)); |
111 | assertFalse(frag1.equals(frag2)); | 112 | assertFalse(frag1.equals(frag2)); |
112 | } | 113 | } |
114 | + | ||
115 | + /** | ||
116 | + * Tests toString. | ||
117 | + */ | ||
118 | + @Test | ||
119 | + public void testToStringFragment() throws Exception { | ||
120 | + Fragment frag = deserializer.deserialize(bytePacket, 0, bytePacket.length); | ||
121 | + String str = frag.toString(); | ||
122 | + | ||
123 | + assertTrue(StringUtils.contains(str, "nextHeader=" + (byte) 0x11)); | ||
124 | + assertTrue(StringUtils.contains(str, "fragmentOffset=" + (short) 0x1f)); | ||
125 | + assertTrue(StringUtils.contains(str, "moreFragment=" + (byte) 1)); | ||
126 | + assertTrue(StringUtils.contains(str, "identification=" + 0x1357)); | ||
127 | + } | ||
113 | } | 128 | } | ... | ... |
... | @@ -16,6 +16,7 @@ | ... | @@ -16,6 +16,7 @@ |
16 | 16 | ||
17 | package org.onlab.packet.ipv6; | 17 | package org.onlab.packet.ipv6; |
18 | 18 | ||
19 | +import org.apache.commons.lang3.StringUtils; | ||
19 | import org.junit.Before; | 20 | import org.junit.Before; |
20 | import org.junit.BeforeClass; | 21 | import org.junit.BeforeClass; |
21 | import org.junit.Test; | 22 | import org.junit.Test; |
... | @@ -24,11 +25,10 @@ import org.onlab.packet.DeserializationException; | ... | @@ -24,11 +25,10 @@ import org.onlab.packet.DeserializationException; |
24 | import org.onlab.packet.Deserializer; | 25 | import org.onlab.packet.Deserializer; |
25 | import org.onlab.packet.UDP; | 26 | import org.onlab.packet.UDP; |
26 | 27 | ||
28 | +import java.util.Arrays; | ||
29 | + | ||
27 | import static org.hamcrest.Matchers.is; | 30 | import static org.hamcrest.Matchers.is; |
28 | -import static org.junit.Assert.assertArrayEquals; | 31 | +import static org.junit.Assert.*; |
29 | -import static org.junit.Assert.assertFalse; | ||
30 | -import static org.junit.Assert.assertThat; | ||
31 | -import static org.junit.Assert.assertTrue; | ||
32 | 32 | ||
33 | /** | 33 | /** |
34 | * Tests for class {@link Routing}. | 34 | * Tests for class {@link Routing}. |
... | @@ -125,4 +125,19 @@ public class RoutingTest { | ... | @@ -125,4 +125,19 @@ public class RoutingTest { |
125 | assertTrue(routing1.equals(routing1)); | 125 | assertTrue(routing1.equals(routing1)); |
126 | assertFalse(routing1.equals(routing2)); | 126 | assertFalse(routing1.equals(routing2)); |
127 | } | 127 | } |
128 | + | ||
129 | + /** | ||
130 | + * Tests toString. | ||
131 | + */ | ||
132 | + @Test | ||
133 | + public void testToStringRouting() throws Exception { | ||
134 | + Routing routing = deserializer.deserialize(bytePacket, 0, bytePacket.length); | ||
135 | + String str = routing.toString(); | ||
136 | + | ||
137 | + assertTrue(StringUtils.contains(str, "nextHeader=" + (byte) 0x11)); | ||
138 | + assertTrue(StringUtils.contains(str, "headerExtLength=" + (byte) 0x02)); | ||
139 | + assertTrue(StringUtils.contains(str, "routingType=" + (byte) 0x00)); | ||
140 | + assertTrue(StringUtils.contains(str, "segmentsLeft=" + (byte) 0x03)); | ||
141 | + assertTrue(StringUtils.contains(str, "routingData=" + Arrays.toString(routingData))); | ||
142 | + } | ||
128 | } | 143 | } | ... | ... |
... | @@ -15,6 +15,7 @@ | ... | @@ -15,6 +15,7 @@ |
15 | */ | 15 | */ |
16 | package org.onlab.packet.ndp; | 16 | package org.onlab.packet.ndp; |
17 | 17 | ||
18 | +import org.apache.commons.lang3.StringUtils; | ||
18 | import org.junit.BeforeClass; | 19 | import org.junit.BeforeClass; |
19 | import org.junit.Test; | 20 | import org.junit.Test; |
20 | import org.onlab.packet.DeserializationException; | 21 | import org.onlab.packet.DeserializationException; |
... | @@ -25,10 +26,7 @@ import org.onlab.packet.PacketTestUtils; | ... | @@ -25,10 +26,7 @@ import org.onlab.packet.PacketTestUtils; |
25 | import java.nio.ByteBuffer; | 26 | import java.nio.ByteBuffer; |
26 | 27 | ||
27 | import static org.hamcrest.Matchers.is; | 28 | import static org.hamcrest.Matchers.is; |
28 | -import static org.junit.Assert.assertArrayEquals; | 29 | +import static org.junit.Assert.*; |
29 | -import static org.junit.Assert.assertFalse; | ||
30 | -import static org.junit.Assert.assertThat; | ||
31 | -import static org.junit.Assert.assertTrue; | ||
32 | 30 | ||
33 | /** | 31 | /** |
34 | * Tests for class {@link NeighborAdvertisement}. | 32 | * Tests for class {@link NeighborAdvertisement}. |
... | @@ -137,4 +135,18 @@ public class NeighborAdvertisementTest { | ... | @@ -137,4 +135,18 @@ public class NeighborAdvertisementTest { |
137 | assertTrue(na1.equals(na1)); | 135 | assertTrue(na1.equals(na1)); |
138 | assertFalse(na1.equals(na2)); | 136 | assertFalse(na1.equals(na2)); |
139 | } | 137 | } |
138 | + | ||
139 | + /** | ||
140 | + * Tests toString. | ||
141 | + */ | ||
142 | + @Test | ||
143 | + public void testToStringNA() throws Exception { | ||
144 | + NeighborAdvertisement na = deserializer.deserialize(bytePacket, 0, bytePacket.length); | ||
145 | + String str = na.toString(); | ||
146 | + | ||
147 | + assertTrue(StringUtils.contains(str, "routerFlag=" + (byte) 1)); | ||
148 | + assertTrue(StringUtils.contains(str, "solicitedFlag=" + (byte) 1)); | ||
149 | + assertTrue(StringUtils.contains(str, "overrideFlag=" + (byte) 1)); | ||
150 | + // TODO: need to handle TARGET_ADDRESS | ||
151 | + } | ||
140 | } | 152 | } | ... | ... |
... | @@ -25,10 +25,7 @@ import org.onlab.packet.PacketTestUtils; | ... | @@ -25,10 +25,7 @@ import org.onlab.packet.PacketTestUtils; |
25 | import java.nio.ByteBuffer; | 25 | import java.nio.ByteBuffer; |
26 | 26 | ||
27 | import static org.hamcrest.Matchers.is; | 27 | import static org.hamcrest.Matchers.is; |
28 | -import static org.junit.Assert.assertArrayEquals; | 28 | +import static org.junit.Assert.*; |
29 | -import static org.junit.Assert.assertFalse; | ||
30 | -import static org.junit.Assert.assertThat; | ||
31 | -import static org.junit.Assert.assertTrue; | ||
32 | 29 | ||
33 | /** | 30 | /** |
34 | * Tests for class {@link NeighborSolicitation}. | 31 | * Tests for class {@link NeighborSolicitation}. |
... | @@ -131,4 +128,15 @@ public class NeighborSolicitationTest { | ... | @@ -131,4 +128,15 @@ public class NeighborSolicitationTest { |
131 | assertTrue(ns1.equals(ns1)); | 128 | assertTrue(ns1.equals(ns1)); |
132 | assertFalse(ns1.equals(ns2)); | 129 | assertFalse(ns1.equals(ns2)); |
133 | } | 130 | } |
131 | + | ||
132 | + /** | ||
133 | + * Tests toString. | ||
134 | + */ | ||
135 | + @Test | ||
136 | + public void testToStringNS() throws Exception { | ||
137 | + NeighborSolicitation ns = deserializer.deserialize(bytePacket, 0, bytePacket.length); | ||
138 | + String str = ns.toString(); | ||
139 | + | ||
140 | + // TODO: need to handle TARGET_ADDRESS and Options | ||
141 | + } | ||
134 | } | 142 | } | ... | ... |
... | @@ -144,4 +144,15 @@ public class RedirectTest { | ... | @@ -144,4 +144,15 @@ public class RedirectTest { |
144 | assertTrue(rd1.equals(rd1)); | 144 | assertTrue(rd1.equals(rd1)); |
145 | assertFalse(rd1.equals(rd2)); | 145 | assertFalse(rd1.equals(rd2)); |
146 | } | 146 | } |
147 | + | ||
148 | + /** | ||
149 | + * Tests toString. | ||
150 | + */ | ||
151 | + @Test | ||
152 | + public void testToStringRedirect() throws Exception { | ||
153 | + Redirect rd = deserializer.deserialize(bytePacket, 0, bytePacket.length); | ||
154 | + String str = rd.toString(); | ||
155 | + | ||
156 | + // TODO: need to handle TARGET_ADDRESS and DESTINATION_ADDRESS | ||
157 | + } | ||
147 | } | 158 | } | ... | ... |
... | @@ -15,6 +15,7 @@ | ... | @@ -15,6 +15,7 @@ |
15 | */ | 15 | */ |
16 | package org.onlab.packet.ndp; | 16 | package org.onlab.packet.ndp; |
17 | 17 | ||
18 | +import org.apache.commons.lang3.StringUtils; | ||
18 | import org.junit.BeforeClass; | 19 | import org.junit.BeforeClass; |
19 | import org.junit.Test; | 20 | import org.junit.Test; |
20 | import org.onlab.packet.DeserializationException; | 21 | import org.onlab.packet.DeserializationException; |
... | @@ -137,4 +138,22 @@ public class RouterAdvertisementTest { | ... | @@ -137,4 +138,22 @@ public class RouterAdvertisementTest { |
137 | assertTrue(ra1.equals(ra1)); | 138 | assertTrue(ra1.equals(ra1)); |
138 | assertFalse(ra1.equals(ra2)); | 139 | assertFalse(ra1.equals(ra2)); |
139 | } | 140 | } |
141 | + | ||
142 | + /** | ||
143 | + * Tests toString. | ||
144 | + */ | ||
145 | + @Test | ||
146 | + public void testToStringRA() throws Exception { | ||
147 | + RouterAdvertisement ra = deserializer.deserialize(bytePacket, 0, bytePacket.length); | ||
148 | + String str = ra.toString(); | ||
149 | + | ||
150 | + assertTrue(StringUtils.contains(str, "currentHopLimit=" + (byte) 3)); | ||
151 | + assertTrue(StringUtils.contains(str, "mFlag=" + (byte) 1)); | ||
152 | + assertTrue(StringUtils.contains(str, "oFlag=" + (byte) 1)); | ||
153 | + assertTrue(StringUtils.contains(str, "routerLifetime=" + (short) 0x258)); | ||
154 | + assertTrue(StringUtils.contains(str, "reachableTime=" + 0x3e8)); | ||
155 | + assertTrue(StringUtils.contains(str, "retransmitTimer=" + 0x1f4)); | ||
156 | + | ||
157 | + // TODO: need to handle options | ||
158 | + } | ||
140 | } | 159 | } | ... | ... |
... | @@ -24,10 +24,7 @@ import org.onlab.packet.PacketTestUtils; | ... | @@ -24,10 +24,7 @@ import org.onlab.packet.PacketTestUtils; |
24 | import java.nio.ByteBuffer; | 24 | import java.nio.ByteBuffer; |
25 | 25 | ||
26 | import static org.hamcrest.Matchers.is; | 26 | import static org.hamcrest.Matchers.is; |
27 | -import static org.junit.Assert.assertArrayEquals; | 27 | +import static org.junit.Assert.*; |
28 | -import static org.junit.Assert.assertFalse; | ||
29 | -import static org.junit.Assert.assertThat; | ||
30 | -import static org.junit.Assert.assertTrue; | ||
31 | 28 | ||
32 | /** | 29 | /** |
33 | * Tests for class {@link RouterSolicitation}. | 30 | * Tests for class {@link RouterSolicitation}. |
... | @@ -111,4 +108,15 @@ public class RouterSolicitationTest { | ... | @@ -111,4 +108,15 @@ public class RouterSolicitationTest { |
111 | assertTrue(rs1.equals(rs1)); | 108 | assertTrue(rs1.equals(rs1)); |
112 | assertFalse(rs1.equals(rs2)); | 109 | assertFalse(rs1.equals(rs2)); |
113 | } | 110 | } |
111 | + | ||
112 | + /** | ||
113 | + * Tests toString. | ||
114 | + */ | ||
115 | + @Test | ||
116 | + public void testToStringRS() throws Exception { | ||
117 | + RouterSolicitation rs = deserializer.deserialize(bytePacket, 0, bytePacket.length); | ||
118 | + String str = rs.toString(); | ||
119 | + | ||
120 | + // TODO: need to handle Options | ||
121 | + } | ||
114 | } | 122 | } | ... | ... |
-
Please register or login to post a comment