Revert "Implements ICMPEcho packet type."
This reverts commit c90af240ebf85b2954d414afceafddca5b7d5ef6.
Change-Id: Idfd9e9aa2af8550b8bdd22305704fd368597459e
diff --git a/utils/misc/src/main/java/org/onlab/packet/ICMP.java b/utils/misc/src/main/java/org/onlab/packet/ICMP.java
index 7a5364f..68fddcb 100644
--- a/utils/misc/src/main/java/org/onlab/packet/ICMP.java
+++ b/utils/misc/src/main/java/org/onlab/packet/ICMP.java
@@ -32,14 +32,8 @@
public static final byte TYPE_ECHO_REQUEST = 0x08;
public static final byte TYPE_ECHO_REPLY = 0x00;
-
- //Uses CODE_ECHO_REPLY instead.
- @Deprecated
public static final byte SUBTYPE_ECHO_REPLY = 0x00;
- public static final byte CODE_ECHO_REPLY = 0x00;
- public static final byte CODE_ECHO_REQEUST = 0x00;
-
public static final short ICMP_HEADER_LENGTH = 4;
/**
@@ -200,20 +194,10 @@
icmp.icmpCode = bb.get();
icmp.checksum = bb.getShort();
- switch (icmp.icmpType) {
- case ICMP.TYPE_ECHO_REQUEST:
- case ICMP.TYPE_ECHO_REPLY:
- Deserializer<ICMPEcho> deserializer = ICMPEcho.deserializer();
- icmp.payload = deserializer.deserialize(data, bb.position(), ICMPEcho.ICMP_ECHO_HEADER_LENGTH);
- break;
- default:
- icmp.payload = Data.deserializer()
- .deserialize(data, bb.position(), bb.limit()
- - bb.position());
- }
-
+ icmp.payload = Data.deserializer()
+ .deserialize(data, bb.position(), bb.limit()
+ - bb.position());
icmp.payload.setParent(icmp);
-
return icmp;
};
}
diff --git a/utils/misc/src/main/java/org/onlab/packet/ICMPEcho.java b/utils/misc/src/main/java/org/onlab/packet/ICMPEcho.java
deleted file mode 100644
index aa06cc6..0000000
--- a/utils/misc/src/main/java/org/onlab/packet/ICMPEcho.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright 2018-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onlab.packet;
-
-import java.nio.ByteBuffer;
-
-import static org.onlab.packet.PacketUtils.checkInput;
-import static com.google.common.base.MoreObjects.toStringHelper;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-/**
- * ICMP packet class for echo purpose.
- */
-public class ICMPEcho extends BasePacket {
- private short identifier;
- private short sequenceNum;
-
- public static final short ICMP_ECHO_HEADER_LENGTH = 4;
-
- /**
- * Sets the identifier.
- *
- * @param identifier identifier
- * @return this
- */
- public ICMPEcho setIdentifier(final short identifier) {
- this.identifier = identifier;
- return this;
- }
-
- /**
- * Gets the identifier.
- *
- * @return identifier
- */
- public short getIdentifier() {
- return this.identifier;
- }
-
- /**
- * Sets the sequencer number.
- *
- * @param sequenceNum sequence number
- * @return this
- */
- public ICMPEcho setSequenceNum(final short sequenceNum) {
- this.sequenceNum = sequenceNum;
- return this;
- }
-
- /**
- * Gets the sequence number.
- *
- * @return sequence number
- */
- public short getSequenceNum() {
- return this.sequenceNum;
- }
-
- /**
- * Serializes the packet. Will compute and set the following fields if they
- * are set to specific values at the time serialize is called: -checksum : 0
- * -length : 0
- */
- @Override
- public byte[] serialize() {
- checkNotNull(this.identifier);
- checkNotNull(this.sequenceNum);
-
- int length = ICMP_ECHO_HEADER_LENGTH;
- byte[] payloadData = null;
- if (this.payload != null) {
- this.payload.setParent(this);
- payloadData = this.payload.serialize();
- length += payloadData.length;
- }
-
- final byte[] data = new byte[length];
- final ByteBuffer bb = ByteBuffer.wrap(data);
-
- bb.putShort(this.identifier);
- bb.putShort(this.sequenceNum);
- if (payloadData != null) {
- bb.put(payloadData);
- }
- return data;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- final int prime = 5807;
- int result = super.hashCode();
- result = prime * result + this.identifier;
- result = prime * result + this.sequenceNum;
- return result;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(final Object obj) {
- if (this == obj) {
- return true;
- }
- if (!super.equals(obj)) {
- return false;
- }
- if (!(obj instanceof ICMPEcho)) {
- return false;
- }
- final ICMPEcho other = (ICMPEcho) obj;
-
- if (this.identifier != other.identifier) {
- return false;
- }
- if (this.sequenceNum != other.sequenceNum) {
- return false;
- }
- return true;
- }
-
- /**
- * Deserializer function for ICMPEcho packets.
- *
- * @return deserializer function
- */
- public static Deserializer<ICMPEcho> deserializer() {
- return (data, offset, length) -> {
- checkInput(data, offset, length, ICMP_ECHO_HEADER_LENGTH);
-
- ICMPEcho icmp = new ICMPEcho();
-
- final ByteBuffer bb = ByteBuffer.wrap(data, offset, length);
-
- icmp.identifier = bb.getShort();
- icmp.sequenceNum = bb.getShort();
-
- return icmp;
- };
- }
-
- @Override
- public String toString() {
- return toStringHelper(getClass())
- .add("ICMP echo identifier", Short.toString(identifier))
- .add("ICMP echo sequenceNumber", Short.toString(sequenceNum))
- .toString();
- }
-}
\ No newline at end of file
diff --git a/utils/misc/src/test/java/org/onlab/packet/ICMPEchoTest.java b/utils/misc/src/test/java/org/onlab/packet/ICMPEchoTest.java
deleted file mode 100644
index b85f4c5..0000000
--- a/utils/misc/src/test/java/org/onlab/packet/ICMPEchoTest.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright 2018-present Open Networking Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.onlab.packet;
-
-import org.junit.Before;
-import org.junit.Test;
-
-import java.nio.ByteBuffer;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.onlab.packet.Ethernet.TYPE_IPV4;
-
-/**
- * Unit tests for the ICMPEcho class.
- */
-public class ICMPEchoTest {
- private Deserializer<ICMPEcho> deserializer;
-
- protected byte icmpType = ICMP.TYPE_ECHO_REQUEST;
- protected byte icmpCode = ICMP.CODE_ECHO_REQEUST;
- protected short checksum = 870;
- private short identifier = 1;
- private short sequenceNum = 2;
- private MacAddress srcMac = MacAddress.valueOf("11:22:33:44:55:66");
- private IpAddress srcIp = IpAddress.valueOf("10.0.0.3");
- private MacAddress dstMac = MacAddress.valueOf("66:55:44:33:22:11");
- private IpAddress dstIp = IpAddress.valueOf("10.0.0.1");
-
- private byte[] headerBytes;
-
- /**
- * Initial setup for this unit test.
- */
- @Before
- public void setUp() throws Exception {
- deserializer = ICMPEcho.deserializer();
-
- ByteBuffer bb = ByteBuffer.allocate(ICMPEcho.ICMP_ECHO_HEADER_LENGTH);
-
- bb.putShort(identifier);
- bb.putShort(sequenceNum);
-
- headerBytes = bb.array();
- }
-
-
- /**
- * Tests the deserializeBadInput.
- *
- * @throws Exception exception
- */
- @Test
- public void testDeserializeBadInput() throws Exception {
- PacketTestUtils.testDeserializeBadInput(deserializer);
- }
-
- /**
- * Tests the deserialzeTruncates.
- *
- * @throws Exception exception
- */
- @Test
- public void testDeserializeTruncated() throws Exception {
- PacketTestUtils.testDeserializeTruncated(deserializer, headerBytes);
- }
-
- /**
- * Tests deserialize, serialize, getters and setters.
- *
- * @throws Exception exception
- */
- @Test
- public void testIcmpEchoPacket() throws Exception {
- ICMPEcho icmpEcho = new ICMPEcho();
-
- icmpEcho.setIdentifier(identifier);
- icmpEcho.setSequenceNum(sequenceNum);
-
- ByteBuffer bb = ByteBuffer.wrap(icmpEcho.serialize());
-
- ICMPEcho deserializedIcmpEcho = deserializer.deserialize(bb.array(), 0, bb.array().length);
-
- assertTrue(deserializedIcmpEcho.equals(icmpEcho));
-
- assertEquals(deserializedIcmpEcho.getIdentifier(), icmpEcho.getIdentifier());
- assertEquals(deserializedIcmpEcho.getSequenceNum(), icmpEcho.getSequenceNum());
- }
-
- @Test
- public void testDeserializeFromIpPacket() throws Exception {
- ICMPEcho icmpEcho = new ICMPEcho();
- icmpEcho.setIdentifier(identifier)
- .setSequenceNum(sequenceNum);
- ByteBuffer byteBufferIcmpEcho = ByteBuffer.wrap(icmpEcho.serialize());
-
- ICMP icmp = new ICMP();
- icmp.setIcmpType(icmpType)
- .setIcmpCode(icmpCode)
- .setChecksum(checksum);
-
- icmp.setPayload(ICMPEcho.deserializer().deserialize(byteBufferIcmpEcho.array(),
- 0, ICMPEcho.ICMP_ECHO_HEADER_LENGTH));
- ByteBuffer byteBufferIcmp = ByteBuffer.wrap(icmp.serialize());
-
-
- IPv4 iPacket = new IPv4();
- iPacket.setDestinationAddress(dstIp.toString());
- iPacket.setSourceAddress(srcIp.toString());
- iPacket.setTtl((byte) 64);
- iPacket.setChecksum((short) 0);
- iPacket.setDiffServ((byte) 0);
- iPacket.setProtocol(IPv4.PROTOCOL_ICMP);
-
- iPacket.setPayload(ICMP.deserializer().deserialize(byteBufferIcmp.array(),
- 0,
- byteBufferIcmp.array().length));
-
- Ethernet ethPacket = new Ethernet();
-
- ethPacket.setEtherType(TYPE_IPV4);
- ethPacket.setSourceMACAddress(srcMac);
- ethPacket.setDestinationMACAddress(dstMac);
- ethPacket.setPayload(iPacket);
-
- validatePacket(ethPacket);
- }
-
- private void validatePacket(Ethernet ethPacket) {
- ICMP icmp = (ICMP) ethPacket.getPayload().getPayload();
- ICMPEcho icmpEcho = (ICMPEcho) icmp.getPayload();
-
- assertEquals(icmp.getIcmpType(), icmpType);
- assertEquals(icmp.getIcmpCode(), icmpCode);
- assertEquals(icmp.getChecksum(), checksum);
- assertEquals(icmpEcho.getIdentifier(), identifier);
- assertEquals(icmpEcho.getSequenceNum(), sequenceNum);
- }
-
-}
diff --git a/utils/misc/src/test/java/org/onlab/packet/ICMPTest.java b/utils/misc/src/test/java/org/onlab/packet/ICMPTest.java
index 24e9b19..4d215b4 100644
--- a/utils/misc/src/test/java/org/onlab/packet/ICMPTest.java
+++ b/utils/misc/src/test/java/org/onlab/packet/ICMPTest.java
@@ -40,21 +40,13 @@
@Before
public void setUp() throws Exception {
- ICMPEcho icmpEcho = new ICMPEcho();
- icmpEcho.setIdentifier((short) 0)
- .setSequenceNum((short) 0);
-
- ByteBuffer byteBufferIcmpEcho = ByteBuffer.wrap(icmpEcho.serialize());
-
deserializer = ICMP.deserializer();
- ByteBuffer bb = ByteBuffer.allocate(ICMP.ICMP_HEADER_LENGTH + ICMPEcho.ICMP_ECHO_HEADER_LENGTH);
+ ByteBuffer bb = ByteBuffer.allocate(ICMP.ICMP_HEADER_LENGTH);
bb.put(icmpType);
bb.put(icmpCode);
bb.putShort(checksum);
- bb.put(byteBufferIcmpEcho);
-
headerBytes = bb.array();
}