📄 dnsr_if.h.svn-base
字号:
#ifndef __DNSR_IF_H__
#define __DNSR_IF_H__
#include <inc/ctypes.h>
#include <socket.h>
#include <l3/ap/dnsr/h/dnsr_db.h>
#define DNSR_DEBUG 0
/* DNS Queue Max entry */
#define DNS_MAX_QUERY 32 /* max queries occur concurrently */
#define DNSR_MAX_DATA_LEN 512
/* DNS cache parameter */
/* average rr size =80 bytes we reserve about 80*800 = 64K bytes for DNS cache */
#define MAX_DNS_CACHE_RR L3_MAX_DNS_CACHE_RR
#define MAX_DNS_CACHE_TTL 80000 /* (secs) max life time of rr in cache */
#define DNS_CACHE_MARK_PERIOD (6L*60L*60L*1000L) /* msecs */
#define DNS_CACHE_SWEEP_PERIOD (24L*60L*60L*1000L)
/* DNS Realy parameter */
#define DNSR_MAX_NAME_SERVER MAX_NAME_SERVER
#define DNSR_MAX_STATIC_TAB MAX_STATIC_DNS_NUM
#define GLUE_NOW() OS_Time_GetSystemByMiniSec()
#define OS_mem_alloc(len) OS_Layer3_Mem_Allocate(len)
#define OS_mem_free(mem) OS_Layer3_Mem_Free(mem)
struct dns_cfg
{
UI32_T n_servers; /* Maximum num of DNS Server */
UI8_T lookup_stat; /* 0:disable, 1:enable */
UI8_T cache_stat; /* 0:disable, 1:enable */
UI8_T dns_stat; /* 0:disable, 1:enable */
UI32_T ip_addr[DNSR_MAX_NAME_SERVER]; /* DNS query server IP address */
UI8_T max_tries_per_server; /* Max packets per server per query */
UI32_T max_ttl; /* Maximum TTL for received RRs */
};
struct static_dns_tab
{
UI32_T ip_addr; /* server IP address */
UI8_T dns_name[255];/*MAX_STATIC_DNS_NAME];*/ /* server Domain Name */
BOOLEAN_T stat; /* 0:disable, 1:enable */
};
/*
* Store DNSR request/reply
*/
typedef struct PENDING_DNSR_MSG_T
{
UI16_T query_id; /* client query id */
UI32_T request_server; /* the number of request server */
UI32_T udp_len;
UI8_T udp_data[DNSR_MAX_DATA_LEN];
struct sockaddr client;
UI16_T qtype;
UI16_T qclass;
unsigned char *qsec_ptr;
UI16_T qsec_len;
} PENDING_DNSR_MSG, *PENDING_DNSR_MSG_PTR ;
/*------------------------------------------------------------------------
* UI16_T DNSR_Restore_Config()
* Purpose: restore config from EEPROM
*
* Parameters:
* Input:
* Output:
* returns :
*------------------------------------------------------------------------
*/
void DNSR_Restore_Config(void);
/*------------------------------------------------------------------------
* void DNSR_Get_Max_TTL()
* Purpose: get DNSR default ttl
*
* Parameters:
* Input: status
* Output:
* returns :
*------------------------------------------------------------------------
*/
UI32_T DNSR_Get_Max_TTL(void);
/*------------------------------------------------------------------------
* void DNSR_Set_Status()
* Purpose: set DNSR status
*
* Parameters:
* Input: enable
* Output:
* returns :
*------------------------------------------------------------------------
*/
BOOLEAN_T DNSR_Set_Status(BOOLEAN_T enable);
/*------------------------------------------------------------------------
* void DNSR_Get_Status()
* Purpose: get DNSR status
*
* Parameters:
* Input: status
* Output:
* returns :
*------------------------------------------------------------------------
*/
BOOLEAN_T DNSR_Get_Status(void);
/*------------------------------------------------------------------------
* BOOLEAN_T DNSR_Set_Cache_Status()
* Purpose: set DNSR cache status
*
* Parameters:
* Input: status
* Output:
* returns :
*------------------------------------------------------------------------
*/
BOOLEAN_T DNSR_Set_Cache_Status(BOOLEAN_T enable);
/*------------------------------------------------------------------------
* void DNSR_Get_Cache_Status()
* Purpose: get DNSR status
*
* Parameters:
* Input: status
* Output:
* returns :
*------------------------------------------------------------------------
*/
BOOLEAN_T DNSR_Get_Cache_Status(void);
/*------------------------------------------------------------------------
* BOOLEAN_T DNSR_Set_LookUp_Status()
* Purpose: set DNSR Look up status
*
* Parameters:
* Input: status
* Output:
* returns :
*------------------------------------------------------------------------
*/
BOOLEAN_T DNSR_Set_Lookup_Status(BOOLEAN_T enable);
/*------------------------------------------------------------------------
* void DNSR_Get_Lookup_Status()
* Purpose: get DNSR status
*
* Parameters:
* Input: status
* Output:
* returns :
*------------------------------------------------------------------------
*/
BOOLEAN_T DNSR_Get_Lookup_Status(void);
/*------------------------------------------------------------------------
* BOOLEAN_T DNSR_Set_DNS_Server()
* Purpose: set DNS Name Server
*
* Parameters:
* Input: server IP, index
* Output:
* returns :
*------------------------------------------------------------------------
*/
BOOLEAN_T DNSR_Set_DNS_Server(UI32_T addr,UI32_T index);
/*------------------------------------------------------------------------
* BOOLEAN_T DNSR_Set_DNS_Server()
* Purpose: set DNS Name Server
*
* Parameters:
* Input: server IP, index
* Output:
* returns :
*------------------------------------------------------------------------
*/
UI32_T DNSR_Get_DNS_Server(UI32_T index);
/*------------------------------------------------------------------------
* BOOLEAN_T DNSR_Set_DNS_Server()
* Purpose: set DNS Name Server
*
* Parameters:
* Input: IP,IP Name, Name size, status, index
* Output:
* returns :
*------------------------------------------------------------------------
*/
BOOLEAN_T DNSR_Set_Static_Table(UI32_T addr,UI8_T *name,UI32_T name_size,BOOLEAN_T status ,UI32_T index);
/*------------------------------------------------------------------------
* BOOLEAN_T DNSR_Send_Packet_To_Server()
* Purpose: send pkt to socket API
*
* Parameters:
* Input:
* Output:
* returns :
*------------------------------------------------------------------------
*/
BOOLEAN_T DNSR_Send_Packet_To_Server(unsigned char *pkt,
int len,
PENDING_DNSR_MSG_PTR pMsg
);
/*------------------------------------------------------------------------
* BOOLEAN_T DNSR_Send_Packet_To_Client()
* Purpose: send pkt to socket API
*
* Parameters:
* Input:
* Output:
* returns :
*------------------------------------------------------------------------
*/
void DNSR_Send_Packet_To_Client(unsigned char *pkt,
int len,
PENDING_DNSR_MSG_PTR pMsg
);
/*------------------------------------------------------------------------
* BOOLEAN_T DNSR_Lock()
* Purpose: dns lock semaphore
*
* Parameters:
* Input:
* Output:
* returns :
*------------------------------------------------------------------------
*/
void DNSR_Lock(void);
/*------------------------------------------------------------------------
* BOOLEAN_T DNSR_UnLock()
* Purpose: dns unlock semaphore
*
* Parameters:
* Input:
* Output:
* returns :
*------------------------------------------------------------------------
*/
void DNSR_UnLock(void);
#endif /* DNSR_IF_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -