Home | History | Annotate | Download | only in Ip6Dxe
      1 /** @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)
     56 typedef 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 
     70