TianoCore EDK2 master
|
Go to the source code of this file.
Macros | |
#define | ICMP_V6_DEFAULT_CODE 0 |
#define | ICMP_V6_ERROR_MAX 127 |
#define | ICMP_V6_INVALID_MESSAGE 0 |
#define | ICMP_V6_ERROR_MESSAGE 1 |
#define | ICMP_V6_INFORMATION_MESSAGE 2 |
Functions | |
EFI_STATUS | Ip6IcmpHandle (IN IP6_SERVICE *IpSb, IN EFI_IP6_HEADER *Head, IN NET_BUF *Packet) |
BOOLEAN | Ip6IsAnycast (IN IP6_SERVICE *IpSb, IN EFI_IPv6_ADDRESS *DestinationAddress) |
EFI_STATUS | Ip6SendIcmpError (IN IP6_SERVICE *IpSb, IN NET_BUF *Packet, IN EFI_IPv6_ADDRESS *SourceAddress OPTIONAL, IN EFI_IPv6_ADDRESS *DestinationAddress, IN UINT8 Type, IN UINT8 Code, IN UINT32 *Pointer OPTIONAL) |
Variables | |
EFI_IP6_ICMP_TYPE | mIp6SupportedIcmp [] |
Header file for ICMPv6 protocol.
Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file Ip6Icmp.h.
EFI_STATUS Ip6IcmpHandle | ( | IN IP6_SERVICE * | IpSb, |
IN EFI_IP6_HEADER * | Head, | ||
IN NET_BUF * | Packet | ||
) |
Handle the ICMPv6 packet. First validate the message format, then, according to the message types, process it as an informational packet or an error packet.
[in] | IpSb | The IP service that received the packet. |
[in] | Head | The IP head of the ICMPv6 packet. |
[in] | Packet | The content of the ICMPv6 packet with IP head removed. |
EFI_INVALID_PARAMETER | The packet is malformatted. |
EFI_SUCCESS | The ICMPv6 message successfully processed. |
Others | Failed to handle the ICMPv6 packet. |
BOOLEAN Ip6IsAnycast | ( | IN IP6_SERVICE * | IpSb, |
IN EFI_IPv6_ADDRESS * | DestinationAddress | ||
) |
Check whether the DestinationAddress is an anycast address.
[in] | IpSb | The IP service that received the packet. |
[in] | DestinationAddress | Points to the Destination Address of the packet. |
TRUE | The DestinationAddress is anycast address. |
FALSE | The DestinationAddress is not anycast address. |
EFI_STATUS Ip6SendIcmpError | ( | IN IP6_SERVICE * | IpSb, |
IN NET_BUF * | Packet, | ||
IN EFI_IPv6_ADDRESS *SourceAddress | OPTIONAL, | ||
IN EFI_IPv6_ADDRESS * | DestinationAddress, | ||
IN UINT8 | Type, | ||
IN UINT8 | Code, | ||
IN UINT32 *Pointer | OPTIONAL | ||
) |
Generate ICMPv6 error message and send it out to DestinationAddress. Currently Destination Unreachable message, Time Exceeded message and Parameter Problem message are supported.
[in] | IpSb | The IP service that received the packet. |
[in] | Packet | The packet which invoking ICMPv6 error. |
[in] | SourceAddress | If not NULL, points to the SourceAddress. Otherwise, the IP layer will select a source address according to the DestinationAddress. |
[in] | DestinationAddress | Points to the Destination Address of the ICMPv6 error message. |
[in] | Type | The type of the ICMPv6 message. |
[in] | Code | The additional level of the ICMPv6 message. |
[in] | Pointer | If not NULL, identifies the octet offset within the invoking packet where the error was detected. |
EFI_INVALID_PARAMETER | The packet is malformatted. |
EFI_OUT_OF_RESOURCES | There is no sufficient resource to complete the operation. |
EFI_SUCCESS | The ICMPv6 message was successfully sent out. |
Others | Failed to generate the ICMPv6 packet. |
|
extern |