Package org.opennms.protocols.icmp
Class AddressMaskReply
java.lang.Object
org.opennms.protocols.icmp.ICMPHeader
org.opennms.protocols.icmp.AddressMaskReply
This is the implementation of an ICMP Address Mask Reply object. The object
can be stored in a buffer to send or loaded from a received buffer. The class
is marked final since it is not intended to be extended.
- Author:
- Brian Weaver
-
Field Summary
Fields inherited from class org.opennms.protocols.icmp.ICMPHeader
CODE_BAD_IP_HEADER, CODE_COMMUNICATIONS_ADMIN_PROHIBITIED, CODE_DESTINATION_HOST_ADMIN_PROHIBITED, CODE_DESTINATION_HOST_UNKNOWN, CODE_DESTINATION_NETWORK_ADMIN_PROHIBITED, CODE_DESTINATION_NETWORK_UNKNOWN, CODE_FRAGMENTATION_NEEDED, CODE_HOST_PRECEDENCE_VIOLATION, CODE_HOST_UNREACHABLE, CODE_HOST_UNREACHABLE_FOR_TOS, CODE_NETWORK_UNREACHABLE, CODE_NETWORK_UNREACHABLE_FOR_TOS, CODE_PORT_UNREACHABLE, CODE_PRECEDENCE_CUTOFF_IN_EFFECT, CODE_PROTOCOL_UNREACHABLE, CODE_REDIRECT_FOR_HOST, CODE_REDIRECT_FOR_NETWORK, CODE_REDIRECT_FOR_TYPE_OF_SERVICE_AND_HOST, CODE_REDIRECT_FOR_TYPE_OF_SERVICE_AND_NETWORK, CODE_REQUIRED_OPTION_MISSING, CODE_SOURCE_HOST_ISOLATED, CODE_SOURCE_ROUTE_FAILED, CODE_TTL_EQ_ZERO_IN_REASSEMBLY, CODE_TTL_EQ_ZERO_IN_TRANSIT, TYPE_ADDRESS_MASK_REPLY, TYPE_ADDRESS_MASK_REQUEST, TYPE_DESTINATION_UNREACHABLE, TYPE_ECHO_REPLY, TYPE_ECHO_REQUEST, TYPE_INFORMATION_REPLY, TYPE_INFORMATION_REQUEST, TYPE_PARAMETER_PROBLEM, TYPE_REDIRECT, TYPE_ROUTER_ADVERTISEMENT, TYPE_ROUTER_SOLICITATION, TYPE_SOURCE_QUENCH, TYPE_TIME_EXCEEDED, TYPE_TIMESTAMP_REPLY, TYPE_TIMESTAMP_REQUEST -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new ICMP Address Mask Request object.AddressMaskReply(byte[] buf, int offset) Creates a new ICMP Address mask reply from the spcified data at the specific offset. -
Method Summary
Modifier and TypeMethodDescriptionfinal voidComputes the ones compliment 16-bit checksum for the ICMP message.final intUsed to get the IPv4 32-bit address mask.final intloadFromBuffer(byte[] buf, int offset) Reads the ICMP Address Mask Reqeust from the specified buffer and sets the internal fields equal to the data.final voidsetAddressMask(int mask) Used to set the IPv4 32-bit address mask.final intstoreToBuffer(byte[] buf, int offset) Writes the ICMP address mask reply out to the specified buffer at the starting offset.final byte[]toBytes()Converts the object to a stream of bytes.Methods inherited from class org.opennms.protocols.icmp.ICMPHeader
byteToInt, byteToShort, computeChecksum, getChecksum, getCode, getHeaderSize, getIdentity, getNetworkSize, getSequenceId, getType, isEchoReply, isEchoRequest, nextSequenceId, setChecksum, setCode, setIdentity, setNextSequenceId, setSequenceId, setType
-
Constructor Details
-
AddressMaskReply
public AddressMaskReply()Creates a new ICMP Address Mask Request object. -
AddressMaskReply
public AddressMaskReply(byte[] buf, int offset) Creates a new ICMP Address mask reply from the spcified data at the specific offset.- Parameters:
buf- The buffer containing the data.offset- The start of the icmp data.- Throws:
IndexOutOfBoundsException- Thrown if there is not sufficent data in the buffer.IllegalArgumentException- Thrown if the ICMP type is not an Address Mask reply.
-
-
Method Details
-
computeChecksum
public final void computeChecksum()Computes the ones compliment 16-bit checksum for the ICMP message.- Overrides:
computeChecksumin classICMPHeader
-
storeToBuffer
public final int storeToBuffer(byte[] buf, int offset) Writes the ICMP address mask reply out to the specified buffer at the starting offset. If the buffer does not have sufficent data to store the information then an IndexOutOfBoundsException is thrown.- Overrides:
storeToBufferin classICMPHeader- Parameters:
buf- The storage buffer.offset- The location to start in buf.- Returns:
- The new offset after storing to the buffer.
- Throws:
IndexOutOfBoundsException- Thrown if the buffer does not have enough storage space.
-
loadFromBuffer
public final int loadFromBuffer(byte[] buf, int offset) Reads the ICMP Address Mask Reqeust from the specified buffer and sets the internal fields equal to the data. If the buffer does not have sufficent data to restore the header then an IndexOutOfBoundsException is thrown by the method. If the buffer does not contain an address mask reqeust then an IllegalArgumentException is thrown.- Overrides:
loadFromBufferin classICMPHeader- Parameters:
buf- The buffer to read the data from.offset- The offset to start reading data.- Returns:
- The new offset after reading the data.
- Throws:
IndexOutOfBoundsException- Thrown if there is not sufficent data in the buffer.IllegalArgumentException- Thrown if the ICMP type is not an Address Mask reply.
-
getAddressMask
public final int getAddressMask()Used to get the IPv4 32-bit address mask. -
setAddressMask
public final void setAddressMask(int mask) Used to set the IPv4 32-bit address mask. -
toBytes
public final byte[] toBytes()Converts the object to a stream of bytes.- Overrides:
toBytesin classICMPHeader
-