public void receiveICMPPacket(ICMP_packet inPacket) throws LowLinkException {

		if (inPacket.getMessageCode() == 8) {

			echoRequest(inPacket);

		}else if (inPacket.getMessageCode() == 0) {

			receivedPackets.put(inPacket.getMessageID(), inPacket);

			// Create Layer info

			LayerInfo pingInfo = new LayerInfo(getClass().getName());

			pingInfo.setObjectName(mParentStack.getParentNodeName());

			pingInfo.setDataType("Echo Reply Packet");

			pingInfo.setLayer("Network");

			pingInfo.setDescription("Echo reply packet received from "
					+ inPacket.getSourceIPAddress());

			Simulation.addLayerInfo(pingInfo);

		}else if (inPacket.getMessageCode() == ICMP_packet.DESTINATION_UNREACHABLE){
			receivedPackets.put(inPacket.getMessageID(), inPacket);
			Simulation.addLayerInfo(getClass().getName(),
					mParentStack.getParentNodeName(), "ICMP Dst Unreach", "Network",
					"Recieved ICMP Destination Unreacheable from "
							+ inPacket.getSourceIPAddress());
		}else if (inPacket.getMessageCode() == ICMP_packet.TIME_EXCEEDED){
			receivedPackets.put(inPacket.getMessageID(), inPacket);
			Simulation.addLayerInfo(getClass().getName(),
					mParentStack.getParentNodeName(), "ICMP Time Exceeded", "Network",
					"Recieved ICMP Time Exceeded from "
							+ inPacket.getSourceIPAddress());
		}

	}