Defines | |
#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, IN EFI_IPv6_ADDRESS *DestinationAddress, IN UINT8 Type, IN UINT8 Code, IN UINT32 *Pointer) |
Variables | |
EFI_IP6_ICMP_TYPE | mIp6SupportedIcmp [] |
Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#define ICMP_V6_DEFAULT_CODE 0 |
#define ICMP_V6_ERROR_MAX 127 |
Referenced by Ip6IcmpHandle(), and Ip6InstanceFrameAcceptable().
#define ICMP_V6_ERROR_MESSAGE 1 |
#define ICMP_V6_INFORMATION_MESSAGE 2 |
#define ICMP_V6_INVALID_MESSAGE 0 |
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 malformated. | |
EFI_SUCCESS | The ICMPv6 message successfully processed. | |
Others | Failed to handle the ICMPv6 packet. |
References ICMP_V6_ERROR_MAX, Ip6ProcessIcmpError(), and Ip6ProcessIcmpInformation().
Referenced by Ip6AcceptFrame().
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. |
References Ip6FindPrefixListEntry(), Ip6GetPrefix(), _IP6_PREFIX_LIST_ENTRY::Prefix, and _IP6_PREFIX_LIST_ENTRY::PrefixLength.
Referenced by Ip6Output(), and Ip6SendIcmpError().
EFI_STATUS Ip6SendIcmpError | ( | IN IP6_SERVICE * | IpSb, | |
IN NET_BUF * | Packet, | |||
IN EFI_IPv6_ADDRESS * | SourceAddress, | |||
IN EFI_IPv6_ADDRESS * | DestinationAddress, | |||
IN UINT8 | Type, | |||
IN UINT8 | Code, | |||
IN UINT32 * | Pointer | |||
) |
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 malformated. | |
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. |
References Ip6IsAnycast(), Ip6Output(), and Ip6SysPacketSent().
Referenced by Ip6FreeNeighborEntry(), Ip6IsExtsValid(), Ip6IsOptionValid(), and Ip6PacketTimerTicking().
EFI_IP6_ICMP_TYPE mIp6SupportedIcmp[] |
Referenced by EfiIp6GetModeData().