Jian Li
Committed by Gerrit Code Review

[ONOS-3222] Implement toString method for each Packet class

Change-Id: I17d72338d4202117d08b3dca9463be35a87a0c1e
Showing 61 changed files with 853 additions and 162 deletions
......@@ -14,18 +14,17 @@
* limitations under the License.
*/
package org.onlab.packet;
import java.nio.ByteBuffer;
import java.util.Arrays;
import static org.onlab.packet.PacketUtils.*;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkHeaderLength;
import static org.onlab.packet.PacketUtils.checkInput;
/**
*
*
* Representation of an ARP Packet.
*/
public class ARP extends BasePacket {
public static final short HW_TYPE_ETHERNET = 0x1;
......@@ -341,27 +340,6 @@ public class ARP extends BasePacket {
return true;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "ARP [hardwareType=" + this.hardwareType + ", protocolType="
+ this.protocolType + ", hardwareAddressLength="
+ this.hardwareAddressLength + ", protocolAddressLength="
+ this.protocolAddressLength + ", opCode=" + this.opCode
+ ", senderHardwareAddress="
+ Arrays.toString(this.senderHardwareAddress)
+ ", senderProtocolAddress="
+ Arrays.toString(this.senderProtocolAddress)
+ ", targetHardwareAddress="
+ Arrays.toString(this.targetHardwareAddress)
+ ", targetProtocolAddress="
+ Arrays.toString(this.targetProtocolAddress) + "]";
}
/**
* Builds an ARP reply based on a request.
*
......@@ -436,4 +414,18 @@ public class ARP extends BasePacket {
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("hardwareType", Short.toString(hardwareType))
.add("protocolType", Short.toString(protocolType))
.add("hardwareAddressLength", Byte.toString(hardwareAddressLength))
.add("protocolAddressLength", Byte.toString(protocolAddressLength))
.add("opCode", Short.toString(opCode))
.add("senderHardwareAddress", Arrays.toString(senderHardwareAddress))
.add("senderProtocolAddress", Arrays.toString(senderProtocolAddress))
.add("targetHardwareAddress", Arrays.toString(targetHardwareAddress))
.add("targetProtocolAddress", Arrays.toString(targetProtocolAddress))
.toString();
}
}
......
......@@ -14,48 +14,32 @@
* limitations under the License.
*/
package org.onlab.packet;
/**
*
*
* Base packet class.
*/
public abstract class BasePacket implements IPacket {
protected IPacket parent;
protected IPacket payload;
/**
* @return the parent
*/
@Override
public IPacket getParent() {
return this.parent;
}
/**
* @param parent
* the parent to set
*/
@Override
public IPacket setParent(final IPacket parent) {
this.parent = parent;
return this;
}
/**
* @return the payload
*/
@Override
public IPacket getPayload() {
return this.payload;
}
/**
* @param payload
* the payload to set
*/
@Override
public IPacket setPayload(final IPacket payload) {
this.payload = payload;
......@@ -69,11 +53,6 @@ public abstract class BasePacket implements IPacket {
}
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 6733;
......@@ -83,11 +62,6 @@ public abstract class BasePacket implements IPacket {
return result;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#equals(java.lang.Object)
*/
@Override
public boolean equals(final Object obj) {
if (this == obj) {
......
......@@ -21,14 +21,16 @@ package org.onlab.packet;
import java.io.UnsupportedEncodingException;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.ListIterator;
import static com.google.common.base.Preconditions.checkArgument;
import static org.onlab.packet.PacketUtils.checkInput;
import static com.google.common.base.MoreObjects.toStringHelper;
/**
*
* Representation of an DHCP Packet.
*/
public class DHCP extends BasePacket {
/**
......@@ -629,4 +631,25 @@ public class DHCP extends BasePacket {
return dhcp;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("opCode", Byte.toString(opCode))
.add("hardwareType", Byte.toString(hardwareType))
.add("hardwareAddressLength", Byte.toString(hardwareAddressLength))
.add("hops", Byte.toString(hops))
.add("transactionId", Integer.toString(transactionId))
.add("seconds", Short.toString(seconds))
.add("flags", Short.toString(flags))
.add("clientIPAddress", Integer.toString(clientIPAddress))
.add("yourIPAddress", Integer.toString(yourIPAddress))
.add("serverIPAddress", Integer.toString(serverIPAddress))
.add("gatewayIPAddress", Integer.toString(gatewayIPAddress))
.add("clientHardwareAddress", Arrays.toString(clientHardwareAddress))
.add("serverName", serverName)
.add("bootFileName", bootFileName)
.toString();
// TODO: need to handle options
}
}
......
......@@ -14,14 +14,12 @@
* limitations under the License.
*/
package org.onlab.packet;
import java.util.Arrays;
/**
*
* Representation of DHCPOption field.
*/
public class DHCPOption {
protected byte code;
......@@ -36,8 +34,7 @@ public class DHCPOption {
}
/**
* @param code
* the code to set
* @param code the code to set
* @return this
*/
public DHCPOption setCode(final byte code) {
......@@ -53,8 +50,7 @@ public class DHCPOption {
}
/**
* @param length
* the length to set
* @param length the length to set
* @return this
*/
public DHCPOption setLength(final byte length) {
......@@ -70,8 +66,7 @@ public class DHCPOption {
}
/**
* @param data
* the data to set
* @param data the data to set
* @return this
*/
public DHCPOption setData(final byte[] data) {
......
......@@ -20,6 +20,7 @@ package org.onlab.packet;
import java.util.Arrays;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.*;
/**
......@@ -129,4 +130,10 @@ public class Data extends BasePacket {
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("data", Arrays.toString(data))
.toString();
}
}
......
......@@ -19,7 +19,9 @@
package org.onlab.packet;
import java.nio.ByteBuffer;
import java.util.Arrays;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkHeaderLength;
import static org.onlab.packet.PacketUtils.checkInput;
......@@ -54,7 +56,6 @@ public class EAP extends BasePacket {
protected byte type;
protected byte[] data;
/**
* Gets the EAP code.
*
......@@ -261,4 +262,15 @@ public class EAP extends BasePacket {
result = prime * result + this.type;
return result;
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("code", Byte.toString(code))
.add("identifier", Byte.toString(identifier))
.add("length", Short.toString(length))
.add("type", Byte.toString(type))
.add("data", Arrays.toString(data))
.toString();
}
}
......
......@@ -20,6 +20,7 @@ package org.onlab.packet;
import java.nio.ByteBuffer;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkHeaderLength;
import static org.onlab.packet.PacketUtils.checkInput;
......@@ -195,5 +196,14 @@ public class EAPOL extends BasePacket {
return this;
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("version", Byte.toString(version))
.add("eapolType", Byte.toString(eapolType))
.add("packetLength", Short.toString(packetLength))
.toString();
}
}
......
......@@ -34,7 +34,7 @@ import static org.onlab.packet.PacketUtils.checkHeaderLength;
import static org.onlab.packet.PacketUtils.checkInput;
/**
*
* Ethernet Packet.
*/
public class Ethernet extends BasePacket {
private static final String HEXES = "0123456789ABCDEF";
......@@ -714,5 +714,4 @@ public class Ethernet extends BasePacket {
return eth;
};
}
}
......
......@@ -15,16 +15,15 @@
*/
package org.onlab.packet;
import java.nio.ByteBuffer;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.*;
/**
* Implements ICMP packet format.
*
*/
public class ICMP extends BasePacket {
protected byte icmpType;
......@@ -45,8 +44,7 @@ public class ICMP extends BasePacket {
}
/**
* @param icmpType
* to set
* @param icmpType to set
* @return this
*/
public ICMP setIcmpType(final byte icmpType) {
......@@ -62,8 +60,7 @@ public class ICMP extends BasePacket {
}
/**
* @param icmpCode
* code to set
* @param icmpCode code to set
* @return this
*/
public ICMP setIcmpCode(final byte icmpCode) {
......@@ -79,8 +76,7 @@ public class ICMP extends BasePacket {
}
/**
* @param checksum
* the checksum to set
* @param checksum the checksum to set
* @return this
*/
public ICMP setChecksum(final short checksum) {
......@@ -220,4 +216,13 @@ public class ICMP extends BasePacket {
return icmp;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("icmpType", Byte.toString(icmpType))
.add("icmpCode", Byte.toString(icmpCode))
.add("checksum", Short.toString(checksum))
.toString();
}
}
......
......@@ -29,6 +29,7 @@ import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.Map;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
/**
......@@ -363,4 +364,13 @@ public class ICMP6 extends BasePacket {
return icmp6;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("icmpType", Byte.toString(icmpType))
.add("icmpCode", Byte.toString(icmpCode))
.add("checksum", Short.toString(checksum))
.toString();
}
}
......
......@@ -15,16 +15,19 @@
*/
package org.onlab.packet;
import org.slf4j.Logger;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import java.util.Arrays;
import static org.slf4j.LoggerFactory.getLogger;
import static com.google.common.base.MoreObjects.toStringHelper;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.onlab.packet.PacketUtils.checkInput;
import static org.slf4j.LoggerFactory.getLogger;
/**
......@@ -332,4 +335,15 @@ public class IGMP extends BasePacket {
result = prime * result + this.groups.hashCode();
return result;
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("igmpType", Byte.toString(igmpType))
.add("resField", Byte.toString(resField))
.add("checksum", Short.toString(checksum))
.add("unsupportTypeData", Arrays.toString(unsupportTypeData))
.toString();
// TODO: need to handle groups
}
}
......
......@@ -95,4 +95,18 @@ public abstract class IGMPGroup {
* @return The serialized message
*/
public abstract byte[] serialize(ByteBuffer bb);
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("[");
sb.append("auxInfo= ");
sb.append(auxInfo);
sb.append("gaddr= ");
sb.append(gaddr);
sb.append("sources= ");
sb.append(sources.toString());
sb.append("]");
return sb.toString();
}
}
......
/*
* Copyright 2014 Open Networking Laboratory
* Copyright 2015 Open Networking Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
......@@ -14,21 +14,22 @@
* limitations under the License.
*/
package org.onlab.packet;
/**
*
* Packet Interface.
*/
public interface IPacket {
/**
* Obtain the packet payload.
*
* @return the payload
*/
IPacket getPayload();
/**
* Assign the packet payload.
*
* @param packet new payload
* @return self
......@@ -36,12 +37,14 @@ public interface IPacket {
IPacket setPayload(IPacket packet);
/**
* Obtain the parent packet.
*
* @return parent packet
*/
IPacket getParent();
/**
* Configure a new parent packet.
*
* @param packet new parent
* @return self
......@@ -49,7 +52,7 @@ public interface IPacket {
IPacket setParent(IPacket packet);
/**
* Reset any checksums as needed, and call resetChecksum on all parents.
* Reset any checksum as needed, and call resetChecksum on all parents.
*/
void resetChecksum();
......@@ -62,7 +65,7 @@ public interface IPacket {
byte[] serialize();
/**
* Deserializes this packet layer and all possible payloads.
* Deserialize this packet layer and all possible payloads.
*
* NOTE: This method has been deprecated and will be removed in a future
* release. It is now recommended to use the Deserializer function provided
......
......@@ -25,10 +25,11 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.*;
/**
*
* Implements IPv4 packet format.
*/
public class IPv4 extends BasePacket {
public static final byte PROTOCOL_ICMP = 0x1;
......@@ -730,4 +731,24 @@ s */
return ipv4;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("version", Byte.toString(version))
.add("headerLength", Byte.toString(headerLength))
.add("diffServ", Byte.toString(diffServ))
.add("totalLength", Short.toString(totalLength))
.add("identification", Short.toString(identification))
.add("flags", Byte.toString(flags))
.add("fragmentOffset", Short.toString(fragmentOffset))
.add("ttl", Byte.toString(ttl))
.add("protocol", Byte.toString(protocol))
.add("checksum", Short.toString(checksum))
.add("sourceAddress", Integer.toString(sourceAddress))
.add("destinationAddress", Integer.toString(destinationAddress))
.add("options", Arrays.toString(options))
.add("isTruncated", Boolean.toString(isTruncated))
.toString();
}
}
......
......@@ -31,6 +31,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
/**
......@@ -381,4 +382,18 @@ public class IPv6 extends BasePacket implements IExtensionHeader {
return ipv6;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("version", Byte.toString(version))
.add("trafficClass", Byte.toString(trafficClass))
.add("flowLabel", Integer.toString(flowLabel))
.add("payloadLength", Short.toString(payloadLength))
.add("nextHeader", Byte.toString(nextHeader))
.add("hopLimit", Byte.toString(hopLimit))
.add("sourceAddress", Arrays.toString(sourceAddress))
.add("destinationAddress", Arrays.toString(destinationAddress))
.toString();
}
}
......
......@@ -20,13 +20,12 @@ package org.onlab.packet;
import java.nio.ByteBuffer;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.*;
/**
* This class represents an Link Local Control header that is used in Ethernet
* 802.3.
*
*
*/
public class LLC extends BasePacket {
......@@ -99,4 +98,13 @@ public class LLC extends BasePacket {
return llc;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("dsap", Byte.toString(dsap))
.add("ssap", Byte.toString(ssap))
.add("ctrl", Byte.toString(ctrl))
.toString();
}
}
......
......@@ -20,13 +20,15 @@
package org.onlab.packet;
import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.*;
/**
*
* Representation of an LLDP Packet.
*/
public class LLDP extends BasePacket {
public static final byte CHASSIS_TLV_TYPE = 1;
......@@ -59,8 +61,7 @@ public class LLDP extends BasePacket {
}
/**
* @param chassis
* the chassisId to set
* @param chassis the chassisId to set
* @return this
*/
public LLDP setChassisId(final LLDPTLV chassis) {
......@@ -76,8 +77,7 @@ public class LLDP extends BasePacket {
}
/**
* @param portId
* the portId to set
* @param portId the portId to set
* @return this
*/
public LLDP setPortId(final LLDPTLV portId) {
......@@ -93,8 +93,7 @@ public class LLDP extends BasePacket {
}
/**
* @param ttl
* the ttl to set
* @param ttl the ttl to set
* @return this
*/
public LLDP setTtl(final LLDPTLV ttl) {
......@@ -110,8 +109,7 @@ public class LLDP extends BasePacket {
}
/**
* @param optionalTLVList
* the optionalTLVList to set
* @param optionalTLVList the optionalTLVList to set
* @return this
*/
public LLDP setOptionalTLVList(final List<LLDPTLV> optionalTLVList) {
......@@ -162,22 +160,22 @@ public class LLDP extends BasePacket {
break;
}
switch (tlv.getType()) {
case 0x0:
// can throw this one away, its just an end delimiter
break;
case 0x1:
this.chassisId = tlv;
break;
case 0x2:
this.portId = tlv;
break;
case 0x3:
this.ttl = tlv;
break;
case 0x0:
// can throw this one away, its just an end delimiter
break;
case 0x1:
this.chassisId = tlv;
break;
case 0x2:
this.portId = tlv;
break;
case 0x3:
this.ttl = tlv;
break;
default:
this.optionalTLVList.add(tlv);
break;
default:
this.optionalTLVList.add(tlv);
break;
}
} while (tlv.getType() != 0 && bb.hasRemaining());
return this;
......@@ -273,21 +271,21 @@ public class LLDP extends BasePacket {
break;
}
switch (tlv.getType()) {
case 0x0:
// can throw this one away, it's just an end delimiter
break;
case 0x1:
lldp.chassisId = tlv;
break;
case 0x2:
lldp.portId = tlv;
break;
case 0x3:
lldp.ttl = tlv;
break;
default:
lldp.optionalTLVList.add(tlv);
break;
case 0x0:
// can throw this one away, it's just an end delimiter
break;
case 0x1:
lldp.chassisId = tlv;
break;
case 0x2:
lldp.portId = tlv;
break;
case 0x3:
lldp.ttl = tlv;
break;
default:
lldp.optionalTLVList.add(tlv);
break;
}
currentIndex += tlv.getLength();
......@@ -297,4 +295,15 @@ public class LLDP extends BasePacket {
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("chassisId", Arrays.toString(chassisId.getValue()))
.add("portId", Arrays.toString(portId.getValue()))
.add("ttl", Arrays.toString(ttl.getValue()))
.add("ethType", Short.toString(ethType))
.toString();
// TODO: need to handle optionalTLVList
}
}
......
......@@ -30,6 +30,20 @@ public class LLDPTLV {
protected short length;
protected byte[] value;
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("[");
sb.append("type= ");
sb.append(type);
sb.append("length= ");
sb.append(length);
sb.append("value= ");
sb.append(Arrays.toString(value));
sb.append("]");
return sb.toString();
}
/**
* @return the type
*/
......
......@@ -19,8 +19,12 @@ import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.Map;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
/**
* Representation of an MPLS Packet.
*/
public class MPLS extends BasePacket {
public static final int HEADER_LENGTH = 4;
......@@ -159,4 +163,14 @@ public class MPLS extends BasePacket {
return mpls;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("label", Integer.toString(label))
.add("bos", Byte.toString(bos))
.add("ttl", Byte.toString(ttl))
.add("protocol", Byte.toString(protocol))
.toString();
}
}
......
......@@ -177,9 +177,4 @@ public class ONOSLLDP extends LLDP {
}
return null;
}
}
......
......@@ -22,6 +22,7 @@ import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.Map;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
/**
......@@ -296,4 +297,14 @@ public class PIM extends BasePacket {
return pim;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("version", Byte.toString(version))
.add("type", Byte.toString(type))
.add("reserved", Byte.toString(reserved))
.add("checksum", Short.toString(reserved))
.toString();
}
}
......
......@@ -30,6 +30,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkHeaderLength;
import static org.onlab.packet.PacketUtils.checkInput;
import static org.slf4j.LoggerFactory.getLogger;
......@@ -68,7 +69,7 @@ public class RADIUS extends BasePacket {
/**
* Constructs a RADIUS packet with the given code and identifier.
*
* @param code code
* @param code code
* @param identifier identifier
*/
public RADIUS(byte code, byte identifier) {
......@@ -313,7 +314,7 @@ public class RADIUS extends BasePacket {
* Sets an attribute in the RADIUS packet.
*
* @param attrType the type field of the attribute to set
* @param value value to be set
* @param value value to be set
* @return reference to the attribute object
*/
public RADIUSAttribute setAttribute(byte attrType, byte[] value) {
......@@ -328,7 +329,7 @@ public class RADIUS extends BasePacket {
* Updates an attribute in the RADIUS packet.
*
* @param attrType the type field of the attribute to update
* @param value the value to update to
* @param value the value to update to
* @return reference to the attribute object
*/
public RADIUSAttribute updateAttribute(byte attrType, byte[] value) {
......@@ -420,4 +421,15 @@ public class RADIUS extends BasePacket {
return this;
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("code", Byte.toString(code))
.add("identifier", Byte.toString(identifier))
.add("length", Short.toString(length))
.add("authenticator", Arrays.toString(authenticator))
.toString();
// TODO: need to handle attributes
}
}
......
......@@ -18,6 +18,8 @@
package org.onlab.packet;
import java.util.Arrays;
/**
* An attribute in a RADIUS packet.
*/
......@@ -139,4 +141,17 @@ public class RADIUSAttribute {
return this;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("[");
sb.append("type= ");
sb.append(type);
sb.append("length= ");
sb.append(length);
sb.append("value= ");
sb.append(Arrays.toString(value));
sb.append("]");
return sb.toString();
}
}
......
......@@ -21,6 +21,7 @@ package org.onlab.packet;
import java.nio.ByteBuffer;
import java.util.Arrays;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.*;
/**
......@@ -459,4 +460,20 @@ public class TCP extends BasePacket {
return tcp;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("sourcePort", Integer.toString(sourcePort))
.add("destinationPort", Integer.toString(destinationPort))
.add("sequence", Integer.toString(sequence))
.add("acknowledge", Integer.toString(acknowledge))
.add("dataOffset", Byte.toString(dataOffset))
.add("flags", Short.toString(flags))
.add("windowSize", Short.toString(windowSize))
.add("checksum", Short.toString(checksum))
.add("urgentPointer", Short.toString(urgentPointer))
.add("options", Arrays.toString(options))
.toString();
}
}
......
......@@ -22,6 +22,7 @@ import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.Map;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.*;
/**
......@@ -303,4 +304,14 @@ public class UDP extends BasePacket {
return udp;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("sourcePort", Integer.toString(sourcePort))
.add("destinationPort", Integer.toString(destinationPort))
.add("length", Short.toString(length))
.add("checksum", Short.toString(checksum))
.toString();
}
}
......
......@@ -26,6 +26,7 @@ import org.onlab.packet.IPv6;
import java.nio.ByteBuffer;
import java.util.Arrays;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
/**
......@@ -297,4 +298,15 @@ public class Authentication extends BasePacket implements IExtensionHeader {
return authentication;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("nextHeader", Byte.toString(nextHeader))
.add("payloadLength", Byte.toString(payloadLength))
.add("securityParamIndex", Integer.toString(securityParamIndex))
.add("sequence", Integer.toString(sequence))
.add("integrityCheck", Arrays.toString(integrityCheck))
.toString();
}
}
......
......@@ -26,6 +26,7 @@ import org.onlab.packet.IPv6;
import java.nio.ByteBuffer;
import java.util.Arrays;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkHeaderLength;
import static org.onlab.packet.PacketUtils.checkInput;
......@@ -257,4 +258,14 @@ public class BaseOptions extends BasePacket implements IExtensionHeader {
return baseOptions;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("nextHeader", Byte.toString(nextHeader))
.add("headerExtLength", Byte.toString(headerExtLength))
.add("options", Arrays.toString(options))
.add("type", Short.toString(type))
.toString();
}
}
......
......@@ -24,6 +24,7 @@ import org.onlab.packet.IPv6;
import java.nio.ByteBuffer;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
/**
......@@ -185,4 +186,12 @@ public class EncapSecurityPayload extends BasePacket {
return encapSecurityPayload;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("securityParamIndex", Integer.toString(securityParamIndex))
.add("sequence", Integer.toString(sequence))
.toString();
}
}
......
......@@ -25,6 +25,7 @@ import org.onlab.packet.IPv6;
import java.nio.ByteBuffer;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
/**
......@@ -250,4 +251,14 @@ public class Fragment extends BasePacket implements IExtensionHeader {
return fragment;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("nextHeader", Byte.toString(nextHeader))
.add("fragmentOffset", Short.toString(fragmentOffset))
.add("moreFragment", Byte.toString(moreFragment))
.add("identification", Integer.toString(identification))
.toString();
}
}
......
......@@ -26,6 +26,7 @@ import org.onlab.packet.IPv6;
import java.nio.ByteBuffer;
import java.util.Arrays;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkHeaderLength;
import static org.onlab.packet.PacketUtils.checkInput;
......@@ -288,4 +289,15 @@ public class Routing extends BasePacket implements IExtensionHeader {
return routing;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("nextHeader", Byte.toString(nextHeader))
.add("headerExtLength", Byte.toString(headerExtLength))
.add("routingType", Byte.toString(routingType))
.add("segmentsLeft", Byte.toString(segmentsLeft))
.add("routingData", Arrays.toString(routingData))
.toString();
}
}
......
......@@ -24,6 +24,7 @@ import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.List;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
/**
......@@ -275,4 +276,14 @@ public class NeighborAdvertisement extends BasePacket {
return neighborAdvertisement;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("routerFlag", Byte.toString(routerFlag))
.add("solicitedFlag", Byte.toString(solicitedFlag))
.add("overrideFlag", Byte.toString(overrideFlag))
.add("targetAddress", Arrays.toString(targetAddress))
.toString();
}
}
......
......@@ -25,6 +25,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
/**
......@@ -117,6 +118,18 @@ public class NeighborDiscoveryOptions extends BasePacket {
private int optionWireLength() {
return 8 * optionLengthField();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("[");
sb.append("type= ");
sb.append(type);
sb.append("data= ");
sb.append(data);
sb.append("]");
return sb.toString();
}
}
/**
......@@ -278,4 +291,11 @@ public class NeighborDiscoveryOptions extends BasePacket {
return ndo;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.toString();
// TODO: need to handle options
}
}
......
......@@ -24,6 +24,7 @@ import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.List;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
/**
......@@ -189,4 +190,12 @@ public class NeighborSolicitation extends BasePacket {
return neighborSolicitation;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("targetAddress", Arrays.toString(targetAddress))
.toString();
// TODO: need to handle options
}
}
......
......@@ -24,6 +24,7 @@ import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.List;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
/**
......@@ -222,4 +223,12 @@ public class Redirect extends BasePacket {
return redirect;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("targetAddress", Arrays.toString(targetAddress))
.add("destinationAddress", Arrays.toString(destinationAddress))
.toString();
}
}
......
......@@ -22,6 +22,7 @@ import org.onlab.packet.IPacket;
import java.nio.ByteBuffer;
import java.util.List;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
/**
......@@ -322,4 +323,17 @@ public class RouterAdvertisement extends BasePacket {
return routerAdvertisement;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("currentHopLimit", Byte.toString(currentHopLimit))
.add("mFlag", Byte.toString(mFlag))
.add("oFlag", Byte.toString(oFlag))
.add("routerLifetime", Short.toString(routerLifetime))
.add("reachableTime", Integer.toString(reachableTime))
.add("retransmitTimer", Integer.toString(retransmitTimer))
.toString();
// TODO: need to handle optionis
}
}
......
......@@ -22,6 +22,7 @@ import org.onlab.packet.IPacket;
import java.nio.ByteBuffer;
import java.util.List;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
/**
......@@ -152,4 +153,11 @@ public class RouterSolicitation extends BasePacket {
return routerSolicitation;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.toString();
// TODO: need to handle options
}
}
......
......@@ -23,6 +23,7 @@ import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.Map;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
public class PIMHello extends BasePacket {
......@@ -115,4 +116,13 @@ public class PIMHello extends BasePacket {
return hello;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("nbrIpAddress", nbrIpAddress.toString())
.add("priorityPresent", Boolean.toString(priorityPresent))
.toString();
// TODO: need to handle options
}
}
......
......@@ -23,6 +23,7 @@ import org.onlab.packet.IpPrefix;
import java.nio.ByteBuffer;
import java.util.HashMap;
import static com.google.common.base.MoreObjects.toStringHelper;
import static org.onlab.packet.PacketUtils.checkInput;
public class PIMJoinPrune extends BasePacket {
......@@ -268,4 +269,13 @@ public class PIMJoinPrune extends BasePacket {
return jp;
};
}
@Override
public String toString() {
return toStringHelper(getClass())
.add("upstreamAddr", upstreamAddr.toString())
.add("holdTime", Short.toString(holdTime))
.toString();
// TODO: need to handle joinPrunes
}
}
......
......@@ -16,6 +16,7 @@
package org.onlab.packet;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.Test;
......@@ -45,7 +46,7 @@ public class ArpTest {
@Before
public void setUp() {
ByteBuffer bb = ByteBuffer.allocate(ARP.INITIAL_HEADER_LENGTH +
2 * hwAddressLength + 2 * protoAddressLength);
2 * hwAddressLength + 2 * protoAddressLength);
bb.putShort(ARP.HW_TYPE_ETHERNET);
bb.putShort(ARP.PROTO_TYPE_IP);
bb.put(hwAddressLength);
......@@ -70,6 +71,9 @@ public class ArpTest {
PacketTestUtils.testDeserializeTruncated(deserializer, byteHeader);
}
/**
* Tests deserialize and getters.
*/
@Test
public void testDeserialize() throws Exception {
ARP arp = deserializer.deserialize(byteHeader, 0, byteHeader.length);
......@@ -85,4 +89,19 @@ public class ArpTest {
assertTrue(Arrays.equals(targetMac.toBytes(), arp.getTargetHardwareAddress()));
assertTrue(Arrays.equals(targetIp.toOctets(), arp.getTargetProtocolAddress()));
}
/**
* Tests toString.
*/
@Test
public void testToStringArp() throws Exception {
ARP arp = deserializer.deserialize(byteHeader, 0, byteHeader.length);
String str = arp.toString();
assertTrue(StringUtils.contains(str, "hardwareAddressLength=" + hwAddressLength));
assertTrue(StringUtils.contains(str, "protocolAddressLength=" + protoAddressLength));
assertTrue(StringUtils.contains(str, "senderHardwareAddress=" + Arrays.toString(srcMac.toBytes())));
assertTrue(StringUtils.contains(str, "senderProtocolAddress=" + Arrays.toString(srcIp.toOctets())));
assertTrue(StringUtils.contains(str, "targetHardwareAddress=" + Arrays.toString(targetMac.toBytes())));
assertTrue(StringUtils.contains(str, "targetProtocolAddress=" + Arrays.toString(targetIp.toOctets())));
}
}
......
......@@ -17,6 +17,7 @@
package org.onlab.packet;
import com.google.common.base.Charsets;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.Test;
......@@ -111,6 +112,9 @@ public class DhcpTest {
PacketTestUtils.testDeserializeTruncated(deserializer, byteHeader);
}
/**
* Tests deserialize and getters.
*/
@Test
public void testDeserialize() throws Exception {
DHCP dhcp = deserializer.deserialize(byteHeader, 0, byteHeader.length);
......@@ -134,4 +138,28 @@ public class DhcpTest {
assertEquals(hostNameOption, dhcp.options.get(0));
}
/**
* Tests toString.
*/
@Test
public void testToStringDhcp() throws Exception {
DHCP dhcp = deserializer.deserialize(byteHeader, 0, byteHeader.length);
String str = dhcp.toString();
assertTrue(StringUtils.contains(str, "opCode=" + opCode));
assertTrue(StringUtils.contains(str, "hardwareType=" + hardwareType));
assertTrue(StringUtils.contains(str, "hardwareAddressLength=" + hardwareAddressLength));
assertTrue(StringUtils.contains(str, "hops=" + hops));
assertTrue(StringUtils.contains(str, "transactionId=" + transactionId));
assertTrue(StringUtils.contains(str, "seconds=" + seconds));
assertTrue(StringUtils.contains(str, "flags=" + flags));
assertTrue(StringUtils.contains(str, "clientIPAddress=" + clientIpAddress));
assertTrue(StringUtils.contains(str, "yourIPAddress=" + yourIpAddress));
assertTrue(StringUtils.contains(str, "serverIPAddress=" + serverIpAddress));
assertTrue(StringUtils.contains(str, "gatewayIPAddress=" + gatewayIpAddress));
assertTrue(StringUtils.contains(str, "clientHardwareAddress=" + Arrays.toString(clientHardwareAddress)));
assertTrue(StringUtils.contains(str, "serverName=" + serverName));
assertTrue(StringUtils.contains(str, "bootFileName=" + bootFileName));
// TODO: add option unit test
}
}
......
......@@ -18,6 +18,7 @@
package org.onlab.packet;
import org.apache.commons.lang3.StringUtils;
import org.junit.BeforeClass;
import org.junit.Test;
......@@ -107,4 +108,17 @@ public class ICMP6Test {
assertTrue(icmp61.equals(icmp61));
assertFalse(icmp61.equals(icmp62));
}
/**
* Tests toString.
*/
@Test
public void testToStringIcmp6() throws Exception {
ICMP6 icmp6 = ICMP6.deserializer().deserialize(bytePacket, 0, bytePacket.length);
String str = icmp6.toString();
assertTrue(StringUtils.contains(str, "icmpType=" + ICMP6.ECHO_REQUEST));
assertTrue(StringUtils.contains(str, "icmpCode=" + (byte) 0x00));
assertTrue(StringUtils.contains(str, "checksum=" + (short) 0x82bc));
}
}
......
......@@ -16,12 +16,14 @@
package org.onlab.packet;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.Test;
import java.nio.ByteBuffer;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
* Unit tests for the ICMP class.
......@@ -59,6 +61,9 @@ public class ICMPTest {
PacketTestUtils.testDeserializeTruncated(deserializer, headerBytes);
}
/**
* Tests deserialize and getters.
*/
@Test
public void testDeserialize() throws Exception {
ICMP icmp = deserializer.deserialize(headerBytes, 0, headerBytes.length);
......@@ -67,4 +72,17 @@ public class ICMPTest {
assertEquals(icmpCode, icmp.getIcmpCode());
assertEquals(checksum, icmp.getChecksum());
}
/**
* Tests toString.
*/
@Test
public void testToStringIcmp() throws Exception {
ICMP icmp = deserializer.deserialize(headerBytes, 0, headerBytes.length);
String str = icmp.toString();
assertTrue(StringUtils.contains(str, "icmpType=" + icmpType));
assertTrue(StringUtils.contains(str, "icmpCode=" + icmpCode));
assertTrue(StringUtils.contains(str, "checksum=" + checksum));
}
}
......
......@@ -93,4 +93,12 @@ public class IGMPTest {
IGMP igmp = deserializer.deserialize(data, 0, data.length);
assertTrue(igmp.equals(igmpMembership));
}
/**
* Tests toString.
*/
@Test
public void testToStringIgmp() throws Exception {
// TODO: add toString unit test
}
}
......
......@@ -16,6 +16,7 @@
package org.onlab.packet;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.Test;
......@@ -78,6 +79,9 @@ public class IPv4Test {
PacketTestUtils.testDeserializeTruncated(deserializer, headerBytes);
}
/**
* Tests deserialize and getters.
*/
@Test
public void testDeserialize() throws Exception {
IPv4 ipv4 = deserializer.deserialize(headerBytes, 0, headerBytes.length);
......@@ -96,4 +100,26 @@ public class IPv4Test {
assertEquals(destinationAddress, ipv4.getDestinationAddress());
assertTrue(ipv4.isTruncated());
}
/**
* Tests toString.
*/
@Test
public void testToStringIPv4() throws Exception {
IPv4 ipv4 = deserializer.deserialize(headerBytes, 0, headerBytes.length);
String str = ipv4.toString();
assertTrue(StringUtils.contains(str, "version=" + version));
assertTrue(StringUtils.contains(str, "headerLength=" + headerLength));
assertTrue(StringUtils.contains(str, "diffServ=" + diffServ));
assertTrue(StringUtils.contains(str, "totalLength=" + totalLength));
assertTrue(StringUtils.contains(str, "identification=" + identification));
assertTrue(StringUtils.contains(str, "flags=" + flags));
assertTrue(StringUtils.contains(str, "fragmentOffset=" + fragmentOffset));
assertTrue(StringUtils.contains(str, "ttl=" + ttl));
assertTrue(StringUtils.contains(str, "protocol=" + protocol));
assertTrue(StringUtils.contains(str, "checksum=" + checksum));
assertTrue(StringUtils.contains(str, "sourceAddress=" + sourceAddress));
assertTrue(StringUtils.contains(str, "destinationAddress=" + destinationAddress));
}
}
......
......@@ -18,6 +18,7 @@
package org.onlab.packet;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
......@@ -151,4 +152,20 @@ public class IPv6Test {
assertTrue(packet1.equals(packet1));
assertFalse(packet1.equals(packet2));
}
/**
* Tests toString.
*/
@Test
public void testToStringIPv6() throws Exception {
IPv6 ipv6 = deserializer.deserialize(bytePacket, 0, bytePacket.length);
String str = ipv6.toString();
assertTrue(StringUtils.contains(str, "version=" + (byte) 6));
assertTrue(StringUtils.contains(str, "trafficClass=" + (byte) 0x93));
assertTrue(StringUtils.contains(str, "flowLabel=" + 0x13579));
assertTrue(StringUtils.contains(str, "nextHeader=" + IPv6.PROTOCOL_UDP));
assertTrue(StringUtils.contains(str, "hopLimit=" + (byte) 32));
// TODO: test IPv6 source and destination address
}
}
......
......@@ -16,12 +16,14 @@
package org.onlab.packet;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.Test;
import java.nio.ByteBuffer;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
* Unit tests for LLC class.
......@@ -59,6 +61,9 @@ public class LLCTest {
PacketTestUtils.testDeserializeTruncated(deserializer, bytes);
}
/**
* Tests deserialize and getters.
*/
@Test
public void testDeserialize() throws Exception {
LLC llc = deserializer.deserialize(bytes, 0, bytes.length);
......@@ -67,4 +72,17 @@ public class LLCTest {
assertEquals(ssap, llc.getSsap());
assertEquals(ctrl, llc.getCtrl());
}
/**
* Tests toString.
*/
@Test
public void testToStringLLC() throws Exception {
LLC llc = deserializer.deserialize(bytes, 0, bytes.length);
String str = llc.toString();
assertTrue(StringUtils.contains(str, "dsap=" + dsap));
assertTrue(StringUtils.contains(str, "ssap=" + ssap));
assertTrue(StringUtils.contains(str, "ctrl=" + ctrl));
}
}
......
......@@ -89,6 +89,9 @@ public class LLDPTest {
PacketTestUtils.testDeserializeTruncated(deserializer, bytes);
}
/**
* Tests deserialize and getters.
*/
@Test
public void testDeserialize() throws Exception {
LLDP lldp = deserializer.deserialize(bytes, 0, bytes.length);
......@@ -112,4 +115,15 @@ public class LLDPTest {
assertEquals(optionalTlvSize, optionalTlv.getLength());
assertTrue(Arrays.equals(optionalTlvValue, optionalTlv.getValue()));
}
/**
* Tests toString.
*/
@Test
public void testToStringLLDP() throws Exception {
LLDP lldp = deserializer.deserialize(bytes, 0, bytes.length);
String str = lldp.toString();
// TODO: need to add LLDP toString unit test
}
}
......
......@@ -16,6 +16,7 @@
package org.onlab.packet;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.Test;
......@@ -23,6 +24,7 @@ import java.nio.ByteBuffer;
import java.util.HashMap;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
/**
* Unit tests for MPLS class.
......@@ -62,6 +64,9 @@ public class MplsTest {
PacketTestUtils.testDeserializeTruncated(deserializer, bytes);
}
/**
* Tests deserialize and getters.
*/
@Test
public void testDeserialize() throws Exception {
MPLS mpls = deserializer.deserialize(bytes, 0, bytes.length);
......@@ -71,4 +76,18 @@ public class MplsTest {
assertEquals(ttl, mpls.ttl);
assertEquals(protocol, mpls.protocol);
}
/**
* Tests toString.
*/
@Test
public void testToStringMpls() throws Exception {
MPLS mpls = deserializer.deserialize(bytes, 0, bytes.length);
String str = mpls.toString();
assertTrue(StringUtils.contains(str, "label=" + label));
assertTrue(StringUtils.contains(str, "bos=" + bos));
assertTrue(StringUtils.contains(str, "ttl=" + ttl));
assertTrue(StringUtils.contains(str, "protocol=" + protocol));
}
}
......
......@@ -61,7 +61,7 @@ public final class PacketTestUtils {
* deserialize the packet.
*
* @param deserializer deserializer function to test
* @param header byte array of a full-size packet
* @param header byte array of a full-size packet
*/
public static void testDeserializeTruncated(Deserializer deserializer,
byte[] header) {
......@@ -82,9 +82,9 @@ public final class PacketTestUtils {
* DeserializationException is not thrown by the deserializer function.
*
* @param deserializer deserializer function to test
* @param bytes input byte array
* @param offset input offset
* @param length input length
* @param bytes input byte array
* @param offset input offset
* @param length input length
*/
public static void expectDeserializationException(Deserializer deserializer,
byte[] bytes, int offset, int length) {
......
......@@ -18,6 +18,7 @@
package org.onlab.packet;
import org.apache.commons.lang3.StringUtils;
import org.junit.BeforeClass;
import org.junit.Test;
......@@ -160,4 +161,23 @@ public class TCPTest {
assertTrue(tcp1.equals(tcp1));
assertFalse(tcp1.equals(tcp2));
}
/**
* Tests toString.
*/
@Test
public void testToStringTcp() throws Exception {
TCP tcp = deserializer.deserialize(bytePacketTCP4, 0, bytePacketTCP4.length);
String str = tcp.toString();
assertTrue(StringUtils.contains(str, "sourcePort=" + 0x50));
assertTrue(StringUtils.contains(str, "destinationPort=" + 0x60));
assertTrue(StringUtils.contains(str, "sequence=" + 0x10));
assertTrue(StringUtils.contains(str, "acknowledge=" + 0x20));
assertTrue(StringUtils.contains(str, "dataOffset=" + (byte) 0x5));
assertTrue(StringUtils.contains(str, "flags=" + (short) 0x2));
assertTrue(StringUtils.contains(str, "windowSize=" + (short) 0x1000));
assertTrue(StringUtils.contains(str, "checksum=" + (short) 0x1bae));
assertTrue(StringUtils.contains(str, "urgentPointer=" + (short) 0x1));
}
}
......
......@@ -18,6 +18,7 @@
package org.onlab.packet;
import org.apache.commons.lang3.StringUtils;
import org.junit.BeforeClass;
import org.junit.Test;
......@@ -131,4 +132,18 @@ public class UDPTest {
assertTrue(udp1.equals(udp1));
assertFalse(udp1.equals(udp2));
}
/**
* Tests toString.
*/
@Test
public void testToStringUdp() throws Exception {
UDP udp = deserializer.deserialize(bytePacketUDP4, 0, bytePacketUDP4.length);
String str = udp.toString();
assertTrue(StringUtils.contains(str, "sourcePort=" + 0x50));
assertTrue(StringUtils.contains(str, "destinationPort=" + 0x60));
assertTrue(StringUtils.contains(str, "length=" + (short) 8));
assertTrue(StringUtils.contains(str, "checksum=" + (short) 0x7bda));
}
}
......
......@@ -16,6 +16,7 @@
package org.onlab.packet.ipv6;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
......@@ -23,11 +24,10 @@ import org.onlab.packet.Data;
import org.onlab.packet.Deserializer;
import org.onlab.packet.UDP;
import java.util.Arrays;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.*;
/**
* Tests for class {@link Authentication}.
......@@ -118,4 +118,19 @@ public class AuthenticationTest {
assertTrue(auth1.equals(auth1));
assertFalse(auth1.equals(auth2));
}
/**
* Tests toString.
*/
@Test
public void testToStringAuthentication() throws Exception {
Authentication auth = deserializer.deserialize(bytePacket, 0, bytePacket.length);
String str = auth.toString();
assertTrue(StringUtils.contains(str, "nextHeader=" + (byte) 0x11));
assertTrue(StringUtils.contains(str, "payloadLength=" + (byte) 0x02));
assertTrue(StringUtils.contains(str, "securityParamIndex=" + 0x13572468));
assertTrue(StringUtils.contains(str, "sequence=" + 0xffff00));
assertTrue(StringUtils.contains(str, "integrityCheck=" + Arrays.toString(icv)));
}
}
......
......@@ -16,6 +16,7 @@
package org.onlab.packet.ipv6;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
......@@ -24,11 +25,10 @@ import org.onlab.packet.Deserializer;
import org.onlab.packet.IPv6;
import org.onlab.packet.UDP;
import java.util.Arrays;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.*;
/**
* Tests for class {@link BaseOptions}.
......@@ -112,4 +112,17 @@ public class BaseOptionsTest {
assertTrue(baseopt1.equals(baseopt1));
assertFalse(baseopt1.equals(baseopt2));
}
/**
* Tests toString.
*/
@Test
public void testToStringBaseOptions() throws Exception {
BaseOptions baseopt = deserializer.deserialize(bytePacket, 0, bytePacket.length);
String str = baseopt.toString();
assertTrue(StringUtils.contains(str, "nextHeader=" + (byte) 0x11));
assertTrue(StringUtils.contains(str, "headerExtLength=" + (byte) 0x00));
assertTrue(StringUtils.contains(str, "options=" + Arrays.toString(options)));
}
}
......
......@@ -16,6 +16,7 @@
package org.onlab.packet.ipv6;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
......@@ -101,4 +102,16 @@ public class EncapSecurityPayloadTest {
assertTrue(esp1.equals(esp1));
assertFalse(esp1.equals(esp2));
}
/**
* Tests toString.
*/
@Test
public void testToStringESP() throws Exception {
EncapSecurityPayload esp = deserializer.deserialize(bytePacket, 0, bytePacket.length);
String str = esp.toString();
assertTrue(StringUtils.contains(str, "securityParamIndex=" + 0x13572468));
assertTrue(StringUtils.contains(str, "sequence=" + 0xffff00));
}
}
......
......@@ -16,6 +16,7 @@
package org.onlab.packet.ipv6;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
......@@ -110,4 +111,18 @@ public class FragmentTest {
assertTrue(frag1.equals(frag1));
assertFalse(frag1.equals(frag2));
}
/**
* Tests toString.
*/
@Test
public void testToStringFragment() throws Exception {
Fragment frag = deserializer.deserialize(bytePacket, 0, bytePacket.length);
String str = frag.toString();
assertTrue(StringUtils.contains(str, "nextHeader=" + (byte) 0x11));
assertTrue(StringUtils.contains(str, "fragmentOffset=" + (short) 0x1f));
assertTrue(StringUtils.contains(str, "moreFragment=" + (byte) 1));
assertTrue(StringUtils.contains(str, "identification=" + 0x1357));
}
}
......
......@@ -16,6 +16,7 @@
package org.onlab.packet.ipv6;
import org.apache.commons.lang3.StringUtils;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
......@@ -24,11 +25,10 @@ import org.onlab.packet.DeserializationException;
import org.onlab.packet.Deserializer;
import org.onlab.packet.UDP;
import java.util.Arrays;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.*;
/**
* Tests for class {@link Routing}.
......@@ -125,4 +125,19 @@ public class RoutingTest {
assertTrue(routing1.equals(routing1));
assertFalse(routing1.equals(routing2));
}
/**
* Tests toString.
*/
@Test
public void testToStringRouting() throws Exception {
Routing routing = deserializer.deserialize(bytePacket, 0, bytePacket.length);
String str = routing.toString();
assertTrue(StringUtils.contains(str, "nextHeader=" + (byte) 0x11));
assertTrue(StringUtils.contains(str, "headerExtLength=" + (byte) 0x02));
assertTrue(StringUtils.contains(str, "routingType=" + (byte) 0x00));
assertTrue(StringUtils.contains(str, "segmentsLeft=" + (byte) 0x03));
assertTrue(StringUtils.contains(str, "routingData=" + Arrays.toString(routingData)));
}
}
......
......@@ -15,6 +15,7 @@
*/
package org.onlab.packet.ndp;
import org.apache.commons.lang3.StringUtils;
import org.junit.BeforeClass;
import org.junit.Test;
import org.onlab.packet.DeserializationException;
......@@ -25,10 +26,7 @@ import org.onlab.packet.PacketTestUtils;
import java.nio.ByteBuffer;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.*;
/**
* Tests for class {@link NeighborAdvertisement}.
......@@ -137,4 +135,18 @@ public class NeighborAdvertisementTest {
assertTrue(na1.equals(na1));
assertFalse(na1.equals(na2));
}
/**
* Tests toString.
*/
@Test
public void testToStringNA() throws Exception {
NeighborAdvertisement na = deserializer.deserialize(bytePacket, 0, bytePacket.length);
String str = na.toString();
assertTrue(StringUtils.contains(str, "routerFlag=" + (byte) 1));
assertTrue(StringUtils.contains(str, "solicitedFlag=" + (byte) 1));
assertTrue(StringUtils.contains(str, "overrideFlag=" + (byte) 1));
// TODO: need to handle TARGET_ADDRESS
}
}
......
......@@ -25,10 +25,7 @@ import org.onlab.packet.PacketTestUtils;
import java.nio.ByteBuffer;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.*;
/**
* Tests for class {@link NeighborSolicitation}.
......@@ -131,4 +128,15 @@ public class NeighborSolicitationTest {
assertTrue(ns1.equals(ns1));
assertFalse(ns1.equals(ns2));
}
/**
* Tests toString.
*/
@Test
public void testToStringNS() throws Exception {
NeighborSolicitation ns = deserializer.deserialize(bytePacket, 0, bytePacket.length);
String str = ns.toString();
// TODO: need to handle TARGET_ADDRESS and Options
}
}
......
......@@ -144,4 +144,15 @@ public class RedirectTest {
assertTrue(rd1.equals(rd1));
assertFalse(rd1.equals(rd2));
}
/**
* Tests toString.
*/
@Test
public void testToStringRedirect() throws Exception {
Redirect rd = deserializer.deserialize(bytePacket, 0, bytePacket.length);
String str = rd.toString();
// TODO: need to handle TARGET_ADDRESS and DESTINATION_ADDRESS
}
}
......
......@@ -15,6 +15,7 @@
*/
package org.onlab.packet.ndp;
import org.apache.commons.lang3.StringUtils;
import org.junit.BeforeClass;
import org.junit.Test;
import org.onlab.packet.DeserializationException;
......@@ -137,4 +138,22 @@ public class RouterAdvertisementTest {
assertTrue(ra1.equals(ra1));
assertFalse(ra1.equals(ra2));
}
/**
* Tests toString.
*/
@Test
public void testToStringRA() throws Exception {
RouterAdvertisement ra = deserializer.deserialize(bytePacket, 0, bytePacket.length);
String str = ra.toString();
assertTrue(StringUtils.contains(str, "currentHopLimit=" + (byte) 3));
assertTrue(StringUtils.contains(str, "mFlag=" + (byte) 1));
assertTrue(StringUtils.contains(str, "oFlag=" + (byte) 1));
assertTrue(StringUtils.contains(str, "routerLifetime=" + (short) 0x258));
assertTrue(StringUtils.contains(str, "reachableTime=" + 0x3e8));
assertTrue(StringUtils.contains(str, "retransmitTimer=" + 0x1f4));
// TODO: need to handle options
}
}
......
......@@ -24,10 +24,7 @@ import org.onlab.packet.PacketTestUtils;
import java.nio.ByteBuffer;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.*;
/**
* Tests for class {@link RouterSolicitation}.
......@@ -111,4 +108,15 @@ public class RouterSolicitationTest {
assertTrue(rs1.equals(rs1));
assertFalse(rs1.equals(rs2));
}
/**
* Tests toString.
*/
@Test
public void testToStringRS() throws Exception {
RouterSolicitation rs = deserializer.deserialize(bytePacket, 0, bytePacket.length);
String str = rs.toString();
// TODO: need to handle Options
}
}
......