/** @file
  NVData structure used by the IP6 configuration component.

  Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.<BR>

  SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef _IP6_NV_DATA_H_
#define _IP6_NV_DATA_H_

#include <Guid/Ip6ConfigHii.h>

#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

