4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This file defines NIC_IP4_CONFIG_INFO structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCopyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncThis program and the accompanying materials are licensed and made available under
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncthe terms and conditions of the BSD License that accompanies this distribution.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncThe full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynchttp://opensource.org/licenses/bsd-license.php.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef __NIC_IP4_CONFIG_NVDATA_H__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define __NIC_IP4_CONFIG_NVDATA_H__
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/Ip4Config.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_NIC_IP4_CONFIG_VARIABLE_GUID \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xd8944553, 0xc4dd, 0x41f4, { 0x9b, 0x30, 0xe1, 0x39, 0x7c, 0xfb, 0x26, 0x7b } \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_NIC_IP4_CONFIG_VARIABLE L"EfiNicIp4ConfigVariable"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Config source: dhcp or static
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define IP4_CONFIG_SOURCE_DHCP 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define IP4_CONFIG_SOURCE_STATIC 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define IP4_CONFIG_SOURCE_MAX 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define IP4_NIC_NAME_LENGTH 64
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define MAX_IP4_CONFIG_IN_VARIABLE 16
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// The following structures are used by drivers/applications other
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// than EFI_IP4_PROTOCOL, such as the ifconfig shell application, to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// communicate the IP configuration information to the EFI_IP4_CONFIG_PROTOCOL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// The EFI_IP4_PROTOCOL uses the EFI_IP4_CONFIG_PROTOCOL to get
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// the default IP4 configuration.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// NIC_ADDR contains the interface's type and MAC address to identify
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// a specific NIC.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Type; ///< Interface type.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Len; ///< Length of MAC address.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_MAC_ADDRESS MacAddr; ///< MAC address of interface.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} NIC_ADDR;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// NIC_IP4_CONFIG_INFO contains the IP4 configure
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// parameters for that NIC. NIC_IP4_CONFIG_INFO is
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// of variable length.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync NIC_ADDR NicAddr; ///< Link layer address to identify the NIC.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Source; ///< Static or DHCP.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync BOOLEAN Perment; ///< Survive the reboot or not.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_IP4_IPCONFIG_DATA Ip4Info; ///< IP addresses.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} NIC_IP4_CONFIG_INFO;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gEfiNicIp4ConfigVariableGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif