/****************************************************************
 ****************************************************************
 **                                                            **
 **    (C)Copyright 2005-2006, American Megatrends Inc.        **
 **                                                            **
 **            All Rights Reserved.                            **
 **                                                            **
 **        6145-F, Northbelt Parkway, Norcross,                **
 **                                                            **
 **        Georgia - 30071, USA. Phone-(770)-246-8600.         **
 **                                                            **
 ****************************************************************
 ****************************************************************/
/*****************************************************************
 *
 * LANIfc.h
 * LAN Interface Handler
 *
 * Author: Govind Kothandapani <govindk@ami.com>
 *       : Bakka Ravinder Reddy <bakkar@ami.com>
 *
 *****************************************************************/
#ifndef LANIFC_H
#define LANIFC_H
#include <stdio.h>
#include <stdint.h>
#include "com_BmcType.h"
#include "com_Message.h"
#include "com_IPMI_LANIfc.h"


/*** External Definitions ***/
#define GRATUITOUS_ARP_REQUEST		5
#define PCI_RST_INTR				6
#define LAN_SMB_ALERT				6
#define INIT_SMB					7
#define LAN_ICTS_MODE				8
#define VLAN_SMB_REQUEST			9
#define LOOP_BACK_LAN_SMB_REQUEST	10
#define LAN_IFC_READY				11

#define LAN_CONFIG_IPV4_HEADER      12
#define LAN_RMCP_PORT_CHANGE     13
#define LAN_IFC_UP 1
#define LAN_IFC_DOWN 0
#define FLAG_SET 1
#define FLAG_UNSET 0

#pragma pack(1)

typedef struct
{
    int 	Socket;
    uint8_t   Valid;
    time_t  Time;
    uint8_t  IsLoopBackSocket;
    uint8_t  IsFixedSocket;
}  SocketTbl_T;

#pragma pack()


void *LANIfcTask (void *param);



/**
 * This variable is used to define if the packet
 * is from VLAN channel or not 
 */
//extern uint8_t	g_IsPktFromVLAN;

/**
 * @defgroup lanifc LAN Interface Module
 * LAN interface functions.
 * @{
**/
// extern BOOL	ValidateUDPChkSum	(  UDPPseudoHdr_T* pUDPPseudoHdr,   UDPHdr_T* pUDPHdr);
// extern BOOL	ValidateIPChkSum	(  IPHdr_T* pIPHdr);
// extern uint16_t CalculateUDPChkSum (  UDPPseudoHdr_T* pUDPPseudoHdr,   UDPHdr_T* pUDPHdr);
// extern uint16_t CalculateIPChkSum	(  IPHdr_T* pIPHdr);

//extern int SendSOLPkt  (uint8_t* pSOLPkt, uint16_t Len);
/** @} */

#endif /* LANIFC_H */
