NetworkPkg/DnsDxe/DnsDhcp.h File Reference


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)

Detailed Description

Functions implementation related with DHCPv4/v6 for DNS driver.

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 Documentation

#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

#define DHCP4_TAG_EOP   255

Referenced by DnsInitSeedPacket().

#define DHCP4_TAG_PARA_LIST   55

#define DHCP4_TAG_TYPE   53

Referenced by GetDns4ServerFromDhcp4().

#define DHCP6_TAG_DNS_REQUEST   6

Referenced by GetDns6ServerFromDhcp6().

#define DHCP6_TAG_DNS_SERVER   23

#define IP4_ETHER_PROTO   0x0800

Referenced by GetDns4ServerFromDhcp4().


Function Documentation

EFI_STATUS GetDns4ServerFromDhcp4 ( IN DNS_INSTANCE Instance,
OUT UINT32 *  DnsServerCount,
OUT EFI_IPv4_ADDRESS **  DnsServerList 
)

Parse the DHCP ACK to get Dns4 server information.

Parameters:
Instance The DNS instance.
DnsServerCount Retrieved Dns4 server Ip count.
DnsServerList Retrieved Dns4 server Ip list.
Return values:
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.

Parameters:
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.
Return values:
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

Parameters:
Dhcp4 The DHCP4 protocol.
Packet Packet waiting for parse.
DnsServerInfor The required Dns4 server information.
Return values:
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.

Parameters:
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.
Return values:
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().


Generated on Mon Sep 28 08:49:05 2015 for NetworkPkg[ALL] by  doxygen 1.5.7.1