[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/cp/ps/modem/net/inc/dhcp_api.h b/cp/ps/modem/net/inc/dhcp_api.h
new file mode 100644
index 0000000..d655051
--- /dev/null
+++ b/cp/ps/modem/net/inc/dhcp_api.h
@@ -0,0 +1,115 @@
+/**************************************************************************

+*

+*                  Copyright (c) 2012 ZTE Corporation.

+*

+***************************************************************************

+* Ä£ ¿é Ãû : P98D_DHCP

+* ÎÄ ¼þ Ãû : dhcp_api.h

+* Ïà¹ØÎļþ : 

+* ʵÏÖ¹¦ÄÜ : dhcpÄ£¿é½Ó¿Ú·â×°

+* ×÷    Õß : LiuZhengXuan

+* °æ    ±¾ : V1.0

+* Íê³ÉÈÕÆÚ : 2012-08-14

+* ÆäËü˵Ã÷ : 

+**************************************************************************/

+

+/**************************************************************************

+* Ð޸ļǼ

+**************************************************************************/

+#ifndef _DHCP_API_H    

+#define _DHCP_API_H

+

+/**************************************************************************

+* #includeÇø

+**************************************************************************/

+#include "oss_api.h"

+

+#ifdef __cplusplus

+extern "C"            

+{

+#endif

+

+/**************************************************************************

+* ³£Á¿¶¨ÒåÇø

+**************************************************************************/

+

+/**************************************************************************

+* Êý¾Ý½á¹¹¶¨ÒåÇø

+**************************************************************************/

+typedef struct

+{

+    UINT32 addr;

+}T_zDhcp_IPv4Addr;

+

+typedef struct

+{

+    UINT32 addr[4];

+}T_zDhcp_IPv6Addr;

+

+typedef union

+{

+    T_zDhcp_IPv4Addr v4Addr;

+    T_zDhcp_IPv6Addr v6Addr;

+}T_zDhcp_IPAddr;

+typedef struct 

+{

+    UINT8            pdpType;       /* IPv4-0x21 IPv6-0x57 IPv4v6-0x8d            */

+    T_zDhcp_IPv4Addr ipv4Addr;      /* Íø²àÉϱ¨µÄipv4µØÖ·                         */

+    T_zDhcp_IPv4Addr routerIp;      /* Íø¹ØipµØÖ·                                 */

+    T_zDhcp_IPv4Addr snMask;        /* ×ÓÍøÑÚÂë                                   */

+    T_zDhcp_IPv4Addr v4Dns1;        /* IPv4 DNS server addresses 1                */

+    T_zDhcp_IPv4Addr v4Dns2;        /* IPv4 DNS server addresses 2                */

+    T_zDhcp_IPv6Addr ipv6Addr;      /* Íø²àÉϱ¨µÄipv6µØÖ·,µ±Ç°Ö»Éϱ¨ÁË8×Ö½ÚµÄID   */     

+    T_zDhcp_IPv6Addr v6Dns1;        /* IPv6 DNS server addresses 1                */ 

+    T_zDhcp_IPv6Addr v6Dns2;        /* IPv6 DNS server addresses 2                */  

+}T_zDhcp_PdpCfgInf;                 /* PDP¼¤»î»ñÈ¡µÄÉÏÏÂÎÄÐÅÏ¢½á¹¹                */

+

+typedef enum

+{

+    DHCP_FRAMETYPE_IP_V4_TRANS = 0, /* IPv4ÏòÍâÍø´«ÊäÊý¾Ý   */

+    DHCP_FRAMETYPE_IP_V6_TRANS,     /* IPv6ÏòÍâÍø´«ÊäÊý¾Ý   */

+    DHCP_FRAMETYPE_IP_V4_DHCP_RSP,  /* IPv4µÄDHCPÓ¦´ðÊý¾Ý   */

+    DHCP_FRAMETYPE_IP_V6_DHCP_RSP,  /* IPv6µÄDHCPÓ¦´ðÊý¾Ý   */

+    DHCP_FRAMETYPE_ARP_RSP,         /* ARPÓ¦´ðÊý¾Ý          */

+    DHCP_FRAMETYPE_NDP_RSP,         /* NDPÓ¦´ðÊý¾Ý          */

+    DHCP_FRAMETYPE_INVALID          /* ÎÞЧÊý¾Ý             */

+}T_zDhcp_FrameType;                 /* ¶ÁÈ¡Çý¶¯Êý¾ÝÖ¡ÀàÐÍ   */

+

+/**************************************************************************

+* º¯ÊýÉùÃ÷Çø

+**************************************************************************/

+VOID zDhcp_Init(VOID);

+UINT32 zDhcp_OpenSvr(const T_zDhcp_PdpCfgInf *pPdpCfgInf);

+T_zDhcp_FrameType zDhcp_ParseEtherFrame(UINT32 handle, const UINT8 *pEtherFrame, UINT16 etherFrameSize, BOOL *pIsRecvRs);

+UINT16 zDhcp_GetRspEtherFrame(UINT32    handle, 

+                              UINT8     *pReqEtherFrame, 

+                              UINT16    reqEtherFrameSize, 

+                              UINT8     *pRspEtherFrameBuf, 

+                              UINT16    rspEtherFrameBufSize, 

+                              BOOL      *pIsDhcpOver);

+UINT16 zDhcp_GetRspArpFrame(UINT32 handle, UINT8 *pReqEtherFrame, UINT16 reqSize, UINT8 *pRspEtherFrame, UINT16 rspSize, UINT32 addr);

+UINT32 zDhcp_GetCfgInfV4addr(UINT32 handle);

+BOOL zDhcp_FillEtherFrame(UINT32 handle, UINT8 *pEtherFrame, UINT16 etherFrameSize, BOOL *pIsRecvRa);

+VOID zDhcp_CloseSvr(UINT32 handle);

+VOID zDhcp_UnInit(VOID);

+

+BOOL zDhcp_StartUfi(VOID);

+BOOL zDhcp_RecycleUfiIp(T_zDhcp_IPv4Addr *pIpv4AddrRemoved, T_zDhcp_IPv6Addr *pIpv6AddrRemoved, BOOL isIpv4Addr);

+BOOL zDhcp_StaticSetUfiIpv4(UINT8 *pMacAddr, T_zDhcp_IPv4Addr *pSetIpv4Addr);

+VOID zDhcp_StopUfi(VOID);

+

+UINT32 zDhcp_GetSrcIpPortType(UINT8 *pPacket, T_zDhcp_IPAddr *pIpAddr, UINT16 *pPort, UINT16 *pPdpType);

+UINT32 zDhcp_GetDestIpPortType(UINT8 *pPacket, T_zDhcp_IPAddr *pIpAddr, UINT16 *pPort, UINT16 *pPdpType);

+UINT32 zDhcp_UpdatePacketSrcIpv4(UINT8 *pPacket, T_zDhcp_IPv4Addr *pIpAddr);

+UINT32 zDhcp_UpdatePacketDestIpv4(UINT8 *pPacket, T_zDhcp_IPv4Addr *pIpAddr);

+BOOL zDhcp_IsDnsPacket(UINT8 *pPacket);

+/**************************************************************************

+* È«¾Ö±äÁ¿ÉùÃ÷Çø

+**************************************************************************/

+

+#ifdef __cplusplus

+}

+#endif

+ 

+#endif  /* _DHCP_API_H */

+