blob: 09177613fbc9e4b8e45efe035f3fe30b59f68dd1 [file] [log] [blame]
Vishal Bhoj82c80712015-12-15 21:13:33 +05301/** @file
2 NVData structure used by the IP6 configuration component.
3
4 Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.<BR>
5
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php.
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14**/
15
16#ifndef _IP6_NV_DATA_H_
17#define _IP6_NV_DATA_H_
18
19#include <Guid/Ip6ConfigHii.h>
20
21#define FORMID_MAIN_FORM 1
22#define FORMID_MANUAL_CONFIG_FORM 2
23#define FORMID_HEAD_FORM 3
24
25#define IP6_POLICY_AUTO 0
26#define IP6_POLICY_MANUAL 1
27#define DAD_MAX_TRANSMIT_COUNT 10
28
29#define KEY_INTERFACE_ID 0x101
30#define KEY_MANUAL_ADDRESS 0x102
31#define KEY_GATEWAY_ADDRESS 0x103
32#define KEY_DNS_ADDRESS 0x104
33#define KEY_SAVE_CHANGES 0x105
34#define KEY_SAVE_CONFIG_CHANGES 0x106
35#define KEY_IGNORE_CONFIG_CHANGES 0x107
36#define KEY_GET_CURRENT_SETTING 0x108
37
38#define HOST_ADDRESS_LABEL 0x9000
39#define ROUTE_TABLE_LABEL 0xa000
40#define GATEWAY_ADDRESS_LABEL 0xb000
41#define DNS_ADDRESS_LABEL 0xc000
42#define LABEL_END 0xffff
43
44#define INTERFACE_ID_STR_MIN_SIZE 1
45#define INTERFACE_ID_STR_MAX_SIZE 23
46#define INTERFACE_ID_STR_STORAGE 25
47#define IP6_STR_MAX_SIZE 40
48#define ADDRESS_STR_MIN_SIZE 2
49#define ADDRESS_STR_MAX_SIZE 255
50
51///
52/// IP6_CONFIG_IFR_NVDATA contains the IP6 configure
53/// parameters for that NIC.
54///
55#pragma pack(1)
56typedef struct {
57 UINT8 IfType; ///< interface type
58 UINT8 Padding[3];
59 UINT32 Policy; ///< manual or automatic
60 UINT32 DadTransmitCount; ///< dad transmits count
61 CHAR16 InterfaceId[INTERFACE_ID_STR_STORAGE]; ///< alternative interface id
62 CHAR16 ManualAddress[ADDRESS_STR_MAX_SIZE]; ///< IP addresses
63 CHAR16 GatewayAddress[ADDRESS_STR_MAX_SIZE]; ///< Gateway address
64 CHAR16 DnsAddress[ADDRESS_STR_MAX_SIZE]; ///< DNS server address
65} IP6_CONFIG_IFR_NVDATA;
66#pragma pack()
67
68#endif
69