Data Structures | |
struct | DNS4_SERVER_INFOR |
struct | DNS6_SERVER_INFOR |
Defines | |
#define | IP4_ETHER_PROTO 0x0800 |
#define | DHCP4_OPCODE_REQUEST 1 |
#define | DHCP4_MAGIC 0x63538263 |
#define | DHCP4_TAG_EOP 255 |
#define | DHCP4_TAG_TYPE 53 |
#define | DHCP4_MSG_REQUEST 3 |
#define | DHCP4_MSG_INFORM 8 |
#define | DHCP4_TAG_PARA_LIST 55 |
#define | DHCP4_TAG_DNS_SERVER 6 |
#define | DHCP6_TAG_DNS_REQUEST 6 |
#define | DHCP6_TAG_DNS_SERVER 23 |
Functions | |
EFI_STATUS | ParseDhcp4Ack (IN EFI_DHCP4_PROTOCOL *Dhcp4, IN EFI_DHCP4_PACKET *Packet, IN DNS4_SERVER_INFOR *DnsServerInfor) |
EFI_STATUS EFIAPI | ParseDhcp6Ack (IN EFI_DHCP6_PROTOCOL *This, IN VOID *Context, IN EFI_DHCP6_PACKET *Packet) |
EFI_STATUS | GetDns4ServerFromDhcp4 (IN DNS_INSTANCE *Instance, OUT UINT32 *DnsServerCount, OUT EFI_IPv4_ADDRESS **DnsServerList) |
EFI_STATUS | GetDns6ServerFromDhcp6 (IN EFI_HANDLE Image, IN EFI_HANDLE Controller, OUT UINT32 *DnsServerCount, OUT EFI_IPv6_ADDRESS **DnsServerList) |
Copyright (c) 2015, 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 DHCP4_MAGIC 0x63538263 |
Referenced by DnsInitSeedPacket().
#define DHCP4_MSG_INFORM 8 |
Referenced by GetDns4ServerFromDhcp4().
#define DHCP4_MSG_REQUEST 3 |
#define DHCP4_OPCODE_REQUEST 1 |
Referenced by DnsInitSeedPacket().
#define DHCP4_TAG_DNS_SERVER 6 |
Referenced by GetDns4ServerFromDhcp4(), and ParseDhcp4Ack().
#define DHCP4_TAG_EOP 255 |
Referenced by DnsInitSeedPacket().
#define DHCP4_TAG_PARA_LIST 55 |
Referenced by GetDns4ServerFromDhcp4(), and IScsiDoDhcp().
#define DHCP4_TAG_TYPE 53 |
Referenced by GetDns4ServerFromDhcp4().
#define DHCP6_TAG_DNS_REQUEST 6 |
Referenced by GetDns6ServerFromDhcp6().
#define DHCP6_TAG_DNS_SERVER 23 |
Referenced by GetDns6ServerFromDhcp6(), and ParseDhcp6Ack().
#define IP4_ETHER_PROTO 0x0800 |
Referenced by GetDns4ServerFromDhcp4().
EFI_STATUS GetDns4ServerFromDhcp4 | ( | IN DNS_INSTANCE * | Instance, | |
OUT UINT32 * | DnsServerCount, | |||
OUT EFI_IPv4_ADDRESS ** | DnsServerList | |||
) |
Parse the DHCP ACK to get Dns4 server information.
Instance | The DNS instance. | |
DnsServerCount | Retrieved Dns4 server Ip count. | |
DnsServerList | Retrieved Dns4 server Ip list. |
EFI_SUCCESS | The Dns4 information is got from the DHCP ACK. | |
EFI_OUT_OF_RESOURCES | Failed to allocate memory. | |
EFI_NO_MEDIA | There was a media error. | |
Others | Other errors as indicated. |
References DHCP4_MSG_INFORM, DHCP4_TAG_DNS_SERVER, DHCP4_TAG_PARA_LIST, DHCP4_TAG_TYPE, DhcpCommonNotify(), DNS_TIME_TO_GETMAP, DnsInitSeedPacket(), DnsStartIp4(), IP4_ETHER_PROTO, ParseDhcp4Ack(), DNS4_SERVER_INFOR::ServerCount, and DNS4_SERVER_INFOR::ServerList.
Referenced by Dns4Configure().
EFI_STATUS GetDns6ServerFromDhcp6 | ( | IN EFI_HANDLE | Image, | |
IN EFI_HANDLE | Controller, | |||
OUT UINT32 * | DnsServerCount, | |||
OUT EFI_IPv6_ADDRESS ** | DnsServerList | |||
) |
Parse the DHCP ACK to get Dns6 server information.
Image | The handle of the driver image. | |
Controller | The handle of the controller. | |
DnsServerCount | Retrieved Dns6 server Ip count. | |
DnsServerList | Retrieved Dns6 server Ip list. |
EFI_SUCCESS | The Dns6 information is got from the DHCP ACK. | |
EFI_OUT_OF_RESOURCES | Failed to allocate memory. | |
EFI_NO_MEDIA | There was a media error. | |
Others | Other errors as indicated. |
References DHCP6_TAG_DNS_REQUEST, DHCP6_TAG_DNS_SERVER, DNS_TIME_TO_GETMAP, ParseDhcp6Ack(), DNS6_SERVER_INFOR::ServerCount, and DNS6_SERVER_INFOR::ServerList.
Referenced by Dns6Configure().
EFI_STATUS ParseDhcp4Ack | ( | IN EFI_DHCP4_PROTOCOL * | Dhcp4, | |
IN EFI_DHCP4_PACKET * | Packet, | |||
IN DNS4_SERVER_INFOR * | DnsServerInfor | |||
) |
Parse the ACK to get required information
Dhcp4 | The DHCP4 protocol. | |
Packet | Packet waiting for parse. | |
DnsServerInfor | The required Dns4 server information. |
EFI_SUCCESS | The DNS information is got from the DHCP ACK. | |
EFI_NO_MAPPING | DHCP failed to acquire address and other information. | |
EFI_DEVICE_ERROR | Other errors as indicated. | |
EFI_OUT_OF_RESOURCES | Failed to allocate memory. |
References DHCP4_TAG_DNS_SERVER.
Referenced by GetDns4ServerFromDhcp4().
EFI_STATUS EFIAPI ParseDhcp6Ack | ( | IN EFI_DHCP6_PROTOCOL * | This, | |
IN VOID * | Context, | |||
IN EFI_DHCP6_PACKET * | Packet | |||
) |
EFI_DHCP6_INFO_CALLBACK is provided by the consumer of the EFI DHCPv6 Protocol instance to intercept events that occurs in the DHCPv6 Information Request exchange process.
This | Pointer to the EFI_DHCP6_PROTOCOL instance that is used to configure this callback function. | |
Context | Pointer to the context that is initialized in the EFI_DHCP6_PROTOCOL.InfoRequest(). | |
Packet | Pointer to Reply packet that has been received. The EFI DHCPv6 Protocol instance is responsible for freeing the buffer. |
EFI_SUCCESS | The DNS information is got from the DHCP ACK. | |
EFI_DEVICE_ERROR | Other errors as indicated. | |
EFI_OUT_OF_RESOURCES | Failed to allocate memory. |
References DHCP6_TAG_DNS_SERVER, DNS6_SERVER_INFOR::ServerCount, and DNS6_SERVER_INFOR::ServerList.
Referenced by GetDns6ServerFromDhcp6().