14#include <boost/shared_ptr.hpp>
17#include <netinet/in.h>
18#include <netinet/ip.h>
19#include <netinet/ip_icmp.h>
32typedef boost::shared_ptr<struct icmp>
ICMPPtr;
116 check_sum_ = check_sum;
144 sequence_ = sequence;
165 return (destination_);
172 destination_ = destination;
219 std::vector<uint8_t> payload_;
The IOAddress class represents an IP addresses (version agnostic).
Embodies an ICMP message.
const isc::asiolink::IOAddress & getDestination() const
Fetches the destination IP address.
uint16_t getChecksum() const
Fetches the checksum.
void setDestination(const isc::asiolink::IOAddress &destination)
Sets the destination IP address.
uint8_t getType() const
Fetches the ICMP message type (e.g.
void setPayload(const uint8_t *data, size_t length)
Sets the message payload to the given data.
uint8_t getCode() const
Fetches the ICMP message code.
const isc::asiolink::IOAddress & getSource() const
Fetches the source IP address.
static ICMPMsgPtr unpack(const uint8_t *wire_data, size_t length)
Unpacks an ICMP message from the given wire_data.
uint16_t getId() const
Fetches the message id.
void setChecksum(uint16_t check_sum)
Sets the check sum.
uint16_t getSequence() const
Fetches the message sequence number.
void setSource(const isc::asiolink::IOAddress &source)
Sets the source IP address.
ICMPPtr pack() const
Packs the message into an ICMP structure.
void setId(const uint16_t id)
Sets the message id.
virtual ~ICMPMsg()=default
Destructor.
void setSequence(uint16_t sequence)
Sets the message sequence number.
ICMPMsgType
ICMP message types.
void setCode(uint8_t code)
Sets the ICMP code.
static uint32_t calcChecksum(const uint8_t *data, size_t length)
Calculates the checksum of the given data buffer.
static constexpr size_t ICMP_HEADER_SIZE
Size in octets of ICMP message header.
void setType(uint8_t msg_type)
Sets the ICMP message type.
const std::vector< uint8_t > & getPayload() const
Fetches the message payload.
boost::shared_ptr< ICMPMsg > ICMPMsgPtr
Shared pointer type for ICMPMsg.
boost::shared_ptr< struct icmp > ICMPPtr
Shared pointer type for struct icmp.
Defines the logger used by the top-level component of kea-lfc.