Go to the documentation of this file.
38 #ifndef ICMP_STATS_SUPPORT
39 #if (MIB2_SUPPORT == ENABLED || IP_MIB_SUPPORT == ENABLED)
40 #define ICMP_STATS_SUPPORT ENABLED
42 #define ICMP_STATS_SUPPORT DISABLED
44 #elif (ICMP_STATS_SUPPORT != ENABLED && ICMP_STATS_SUPPORT != DISABLED)
45 #error ICMP_STATS_SUPPORT parameter is not valid
49 #ifndef ICMP_QUERY_ID_MIN
50 #define ICMP_QUERY_ID_MIN 0
51 #elif (ICMP_QUERY_ID_MIN < 0)
52 #error ICMP_QUERY_ID_MIN parameter is not valid
56 #ifndef ICMP_QUERY_ID_MAX
57 #define ICMP_QUERY_ID_MAX 32767
58 #elif (ICMP_QUERY_ID_MAX <= ICMP_QUERY_ID_MIN || ICMP_QUERY_ID_MAX > 65535)
59 #error ICMP_QUERY_ID_MAX parameter is not valid
63 #if (ICMP_STATS_SUPPORT == ENABLED)
64 #define ICMP_STATS_INC_COUNTER32(name, value) interface->netContext->icmpStats.name += value
66 #define ICMP_STATS_INC_COUNTER32(name, value)
132 #if defined(__CCRX__)
134 #elif defined(__CWCC__) || defined(_WIN32)
135 #pragma pack(push, 1)
241 #if defined(__CCRX__)
243 #elif defined(__CWCC__) || defined(_WIN32)
259 size_t requestOffset);
263 size_t ipPacketOffset);
@ ICMP_TYPE_ADDR_MASK_REQUEST
error_t icmpEnableEchoRequests(NetInterface *interface, bool_t enable)
Enable support for ICMP Echo Request messages.
Structure describing a buffer that spans multiple chunks.
@ ICMP_CODE_PROTOCOL_UNREACHABLE
@ ICMP_TYPE_TIME_EXCEEDED
typedef __packed_struct
ICMP header.
@ ICMP_CODE_NET_UNREACHABLE
@ ICMP_TYPE_PARAM_PROBLEM
IcmpDestUnreachableCode
Destination Unreachable message codes.
error_t icmpEnableBroadcastEchoRequests(NetInterface *interface, bool_t enable)
Enable support for broadcast ICMP Echo Request messages.
@ ICMP_CODE_HOST_UNREACHABLE
@ ICMP_TYPE_TIMESTAMP_REPLY
@ ICMP_TYPE_SOURCE_QUENCH
error_t icmpSendErrorMessage(NetInterface *interface, uint8_t type, uint8_t code, uint8_t parameter, const NetBuffer *ipPacket, size_t ipPacketOffset)
Send an ICMP Error message.
void icmpDumpEchoMessage(const IcmpEchoMessage *message)
Dump ICMP Echo Request or Echo Reply message.
IcmpTimeExceededCode
Time Exceeded message codes.
@ ICMP_CODE_SOURCE_ROUTE_FAILED
@ ICMP_TYPE_DEST_UNREACHABLE
void icmpProcessEchoRequest(NetInterface *interface, const Ipv4PseudoHeader *requestPseudoHeader, const NetBuffer *request, size_t requestOffset)
Echo Request message processing.
void icmpDumpMessage(const IcmpHeader *message)
Dump ICMP message for debugging purpose.
@ ICMP_CODE_FRAG_NEEDED_AND_DF_SET
@ ICMP_TYPE_ALTERNATE_HOST_ADDR
@ ICMP_TYPE_ADDR_MASK_REPLY
@ ICMP_CODE_PORT_UNREACHABLE
IcmpDestUnreachableMessage
void icmpProcessMessage(NetInterface *interface, const Ipv4PseudoHeader *requestPseudoHeader, const NetBuffer *buffer, size_t offset)
Incoming ICMP message processing.
void icmpDumpErrorMessage(const IcmpErrorMessage *message)
Dump generic ICMP Error message.
IcmpType
ICMP message type.
@ ICMP_TYPE_TIMESTAMP_REQUEST
@ ICMP_CODE_REASSEMBLY_TIME_EXCEEDED