[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 */
+