/** @file NVData structure used by the IP6 configuration component. Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _IP6_NV_DATA_H_ #define _IP6_NV_DATA_H_ #include #define FORMID_MAIN_FORM 1 #define FORMID_MANUAL_CONFIG_FORM 2 #define FORMID_HEAD_FORM 3 #define IP6_POLICY_AUTO 0 #define IP6_POLICY_MANUAL 1 #define DAD_MAX_TRANSMIT_COUNT 10 #define KEY_INTERFACE_ID 0x101 #define KEY_MANUAL_ADDRESS 0x102 #define KEY_GATEWAY_ADDRESS 0x103 #define KEY_DNS_ADDRESS 0x104 #define KEY_SAVE_CHANGES 0x105 #define KEY_SAVE_CONFIG_CHANGES 0x106 #define KEY_IGNORE_CONFIG_CHANGES 0x107 #define KEY_GET_CURRENT_SETTING 0x108 #define HOST_ADDRESS_LABEL 0x9000 #define ROUTE_TABLE_LABEL 0xa000 #define GATEWAY_ADDRESS_LABEL 0xb000 #define DNS_ADDRESS_LABEL 0xc000 #define LABEL_END 0xffff #define INTERFACE_ID_STR_MIN_SIZE 1 #define INTERFACE_ID_STR_MAX_SIZE 23 #define INTERFACE_ID_STR_STORAGE 25 #define IP6_STR_MAX_SIZE 40 #define ADDRESS_STR_MIN_SIZE 2 #define ADDRESS_STR_MAX_SIZE 255 /// /// IP6_CONFIG_IFR_NVDATA contains the IP6 configure /// parameters for that NIC. /// #pragma pack(1) typedef struct { UINT8 IfType; ///< interface type UINT8 Padding[3]; UINT32 Policy; ///< manual or automatic UINT32 DadTransmitCount; ///< dad transmits count CHAR16 InterfaceId[INTERFACE_ID_STR_STORAGE]; ///< alternative interface id CHAR16 ManualAddress[ADDRESS_STR_MAX_SIZE]; ///< IP addresses CHAR16 GatewayAddress[ADDRESS_STR_MAX_SIZE]; ///< Gateway address CHAR16 DnsAddress[ADDRESS_STR_MAX_SIZE]; ///< DNS server address } IP6_CONFIG_IFR_NVDATA; #pragma pack() #endif