+++ /dev/null
-/** @file\r
- Header file for ICMP protocol.\r
-\r
-Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.<BR>\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef __EFI_IP4_ICMP_H__\r
-#define __EFI_IP4_ICMP_H__\r
-\r
- //\r
- // ICMP type definations\r
- //\r
-#define ICMP_ECHO_REPLY 0\r
-#define ICMP_DEST_UNREACHABLE 3\r
-#define ICMP_SOURCE_QUENCH 4\r
-#define ICMP_REDIRECT 5\r
-#define ICMP_ECHO_REQUEST 8\r
-#define ICMP_TIME_EXCEEDED 11\r
-#define ICMP_PARAMETER_PROBLEM 12\r
-#define ICMP_TIMESTAMP 13\r
-#define ICMP_INFO_REQUEST 15\r
-#define ICMP_INFO_REPLY 16\r
-#define ICMP_TYPE_MAX ICMP_INFO_REPLY\r
-\r
-#define ICMP_DEFAULT_CODE 0\r
-\r
- //\r
- // ICMP code definations for ICMP_DEST_UNREACHABLE\r
- //\r
-#define ICMP_NET_UNREACHABLE 0\r
-#define ICMP_HOST_UNREACHABLE 1\r
-#define ICMP_PROTO_UNREACHABLE 2 // Host may generate\r
-#define ICMP_PORT_UNREACHABLE 3 // Host may generate\r
-#define ICMP_FRAGMENT_FAILED 4\r
-#define ICMP_SOURCEROUTE_FAILED 5 // Host may generate\r
-#define ICMP_NET_UNKNOWN 6\r
-#define ICMP_HOST_UNKNOWN 7\r
-#define ICMP_SOURCE_ISOLATED 8\r
-#define ICMP_NET_PROHIBITED 9\r
-#define ICMP_HOST_PROHIBITED 10\r
-#define ICMP_NET_UNREACHABLE_TOS 11\r
-#define ICMP_HOST_UNREACHABLE_TOS 12\r
-\r
- //\r
- // ICMP code definations for ICMP_TIME_EXCEEDED\r
- //\r
-#define ICMP_TIMEOUT_IN_TRANSIT 0\r
-#define ICMP_TIMEOUT_REASSEMBLE 1 // Host may generate\r
-\r
- //\r
- // ICMP code definations for ICMP_TIME_EXCEEDED\r
- //\r
-#define ICMP_NET_REDIRECT 0\r
-#define ICMP_HOST_REDIRECT 1\r
-#define ICMP_NET_TOS_REDIRECT 2\r
-#define ICMP_HOST_TOS_REDIRECT 3\r
-\r
- //\r
- // ICMP message classes, each class of ICMP message shares\r
- // a common message format. INVALID_MESSAGE is only a flag.\r
- //\r
-#define ICMP_INVALID_MESSAGE 0\r
-#define ICMP_ERROR_MESSAGE 1\r
-#define ICMP_QUERY_MESSAGE 2\r
-\r
-typedef struct {\r
- UINT8 IcmpType;\r
- UINT8 IcmpClass;\r
-} IP4_ICMP_CLASS;\r
-\r
-extern IP4_ICMP_CLASS mIcmpClass[];\r
-extern EFI_IP4_ICMP_TYPE mIp4SupportedIcmp[];\r
-\r
-/**\r
- Handle the ICMP packet. First validate the message format,\r
- then according to the message types, process it as query or\r
- error packet.\r
-\r
- @param[in] IpSb The IP4 service that receivd the packet.\r
- @param[in] Head The IP4 head of the ICMP query packet.\r
- @param[in] Packet The content of the ICMP query with IP4 head\r
- removed.\r
-\r
- @retval EFI_INVALID_PARAMETER The packet is malformated.\r
- @retval EFI_SUCCESS The ICMP message is successfully processed.\r
- @retval Others Failed to handle ICMP packet.\r
-\r
-**/\r
-EFI_STATUS\r
-Ip4IcmpHandle (\r
- IN IP4_SERVICE *IpSb,\r
- IN IP4_HEAD *Head,\r
- IN NET_BUF *Packet\r
- );\r
-#endif\r