ICMP (Internet Control Message Protocol) More...
#include "core/net.h"
#include "core/ip.h"
#include "ipv4/ipv4.h"
#include "ipv4/ipv4_misc.h"
#include "ipv4/icmp.h"
#include "mibs/mib2_module.h"
#include "mibs/ip_mib_module.h"
#include "debug.h"
Go to the source code of this file.
Macros | |
#define | TRACE_LEVEL ICMP_TRACE_LEVEL |
Functions | |
error_t | icmpEnableEchoRequests (NetInterface *interface, bool_t enable) |
Enable support for ICMP Echo Request messages. More... | |
error_t | icmpEnableBroadcastEchoRequests (NetInterface *interface, bool_t enable) |
Enable support for broadcast ICMP Echo Request messages. More... | |
void | icmpProcessMessage (NetInterface *interface, const Ipv4PseudoHeader *requestPseudoHeader, const NetBuffer *buffer, size_t offset) |
Incoming ICMP message processing. More... | |
void | icmpProcessEchoRequest (NetInterface *interface, const Ipv4PseudoHeader *requestPseudoHeader, const NetBuffer *request, size_t requestOffset) |
Echo Request message processing. More... | |
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. More... | |
void | icmpUpdateInStats (uint8_t type) |
Update ICMP input statistics. More... | |
void | icmpUpdateOutStats (uint8_t type) |
Update ICMP output statistics. More... | |
void | icmpDumpMessage (const IcmpHeader *message) |
Dump ICMP message for debugging purpose. More... | |
void | icmpDumpEchoMessage (const IcmpEchoMessage *message) |
Dump ICMP Echo Request or Echo Reply message. More... | |
void | icmpDumpErrorMessage (const IcmpErrorMessage *message) |
Dump generic ICMP Error message. More... | |
Detailed Description
ICMP (Internet Control Message Protocol)
License
SPDX-License-Identifier: GPL-2.0-or-later
Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.
This file is part of CycloneTCP Open.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- Version
- 2.4.4
Definition in file icmp.c.
Macro Definition Documentation
◆ TRACE_LEVEL
Function Documentation
◆ icmpDumpEchoMessage()
void icmpDumpEchoMessage | ( | const IcmpEchoMessage * | message | ) |
◆ icmpDumpErrorMessage()
void icmpDumpErrorMessage | ( | const IcmpErrorMessage * | message | ) |
◆ icmpDumpMessage()
void icmpDumpMessage | ( | const IcmpHeader * | message | ) |
◆ icmpEnableBroadcastEchoRequests()
error_t icmpEnableBroadcastEchoRequests | ( | NetInterface * | interface, |
bool_t | enable | ||
) |
Enable support for broadcast ICMP Echo Request messages.
- Parameters
-
[in] interface Underlying network interface [in] enable This flag specifies whether the host will respond to broadcast ICMP Echo Requests. When the flag is set to FALSE, incoming ICMP Echo Request messages destined to a broadcast address will be dropped
- Returns
- Error code
◆ icmpEnableEchoRequests()
error_t icmpEnableEchoRequests | ( | NetInterface * | interface, |
bool_t | enable | ||
) |
Enable support for ICMP Echo Request messages.
- Parameters
-
[in] interface Underlying network interface [in] enable This flag specifies whether the host will respond to ICMP Echo Requests. When the flag is set to FALSE, incoming ICMP Echo Request messages will be dropped
- Returns
- Error code
◆ icmpProcessEchoRequest()
void icmpProcessEchoRequest | ( | NetInterface * | interface, |
const Ipv4PseudoHeader * | requestPseudoHeader, | ||
const NetBuffer * | request, | ||
size_t | requestOffset | ||
) |
Echo Request message processing.
- Parameters
-
[in] interface Underlying network interface [in] requestPseudoHeader IPv4 pseudo header [in] request Multi-part buffer containing the incoming Echo Request message [in] requestOffset Offset to the first byte of the Echo Request message
◆ icmpProcessMessage()
void icmpProcessMessage | ( | NetInterface * | interface, |
const Ipv4PseudoHeader * | requestPseudoHeader, | ||
const NetBuffer * | buffer, | ||
size_t | offset | ||
) |
◆ icmpSendErrorMessage()
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.
- Parameters
-
[in] interface Underlying network interface [in] type Message type [in] code Specific message code [in] parameter Specific message parameter [in] ipPacket Multi-part buffer that holds the invoking IPv4 packet [in] ipPacketOffset Offset to the first byte of the IPv4 packet
- Returns
- Error code
◆ icmpUpdateInStats()
void icmpUpdateInStats | ( | uint8_t | type | ) |