]> git.proxmox.com Git - mirror_edk2.git/blob - NetworkPkg/Ip6Dxe/Ip6NvData.h
6c981d2aa7f7fe5a25f1c1400d7b4200addf5b62
[mirror_edk2.git] / NetworkPkg / Ip6Dxe / Ip6NvData.h
1 /** @file
2 NVData structure used by the IP6 configuration component.
3
4 Copyright (c) 2010 - 2011, 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 #define IP6_CONFIG_NVDATA_GUID \
20 { \
21 0x2eea107, 0x98db, 0x400e, { 0x98, 0x30, 0x46, 0xa, 0x15, 0x42, 0xd7, 0x99 } \
22 }
23
24 #define FORMID_MAIN_FORM 1
25 #define FORMID_MANUAL_CONFIG_FORM 2
26 #define FORMID_HEAD_FORM 3
27
28 #define IP6_POLICY_AUTO 0
29 #define IP6_POLICY_MANUAL 1
30 #define DAD_MAX_TRANSMIT_COUNT 10
31
32 #define KEY_INTERFACE_ID 0x101
33 #define KEY_MANUAL_ADDRESS 0x102
34 #define KEY_GATEWAY_ADDRESS 0x103
35 #define KEY_DNS_ADDRESS 0x104
36 #define KEY_SAVE_CHANGES 0x105
37 #define KEY_SAVE_CONFIG_CHANGES 0x106
38 #define KEY_IGNORE_CONFIG_CHANGES 0x107
39 #define KEY_GET_CURRENT_SETTING 0x108
40
41 #define HOST_ADDRESS_LABEL 0x9000
42 #define ROUTE_TABLE_LABEL 0xa000
43 #define GATEWAY_ADDRESS_LABEL 0xb000
44 #define DNS_ADDRESS_LABEL 0xc000
45 #define LABEL_END 0xffff
46
47 #define INTERFACE_ID_STR_MIN_SIZE 1
48 #define INTERFACE_ID_STR_MAX_SIZE 23
49 #define INTERFACE_ID_STR_STORAGE 24
50 #define IP6_STR_MAX_SIZE 40
51 #define ADDRESS_STR_MIN_SIZE 2
52 #define ADDRESS_STR_MAX_SIZE 255
53
54 ///
55 /// IP6_CONFIG_IFR_NVDATA contains the IP6 configure
56 /// parameters for that NIC.
57 ///
58 #pragma pack(1)
59 typedef struct {
60 UINT8 IfType; ///< interface type
61 UINT8 Padding[3];
62 UINT32 Policy; ///< manual or automatic
63 UINT32 DadTransmitCount; ///< dad transmits count
64 CHAR16 InterfaceId[INTERFACE_ID_STR_STORAGE]; ///< alternative interface id
65 CHAR16 ManualAddress[ADDRESS_STR_MAX_SIZE]; ///< IP addresses
66 CHAR16 GatewayAddress[ADDRESS_STR_MAX_SIZE]; ///< Gateway address
67 CHAR16 DnsAddress[ADDRESS_STR_MAX_SIZE]; ///< DNS server address
68 } IP6_CONFIG_IFR_NVDATA;
69 #pragma pack()
70
71 #endif
72