?? net_udp.h
字號:
/*$PAGE*/
/*
*********************************************************************************************************
* UDP HEADER
*
* Note(s) : (1) See RFC #768, Section 'Format' for UDP datagram header format.
*********************************************************************************************************
*/
/* ------------------- NET UDP HDR -------------------- */
typedef struct net_udp_hdr {
NET_UDP_PORT_NBR PortSrc; /* UDP datagram src port. */
NET_UDP_PORT_NBR PortDest; /* UDP datagram dest port. */
CPU_INT16U DatagramLen; /* UDP datagram msg len. */
NET_CHK_SUM ChkSum; /* UDP datagram chk sum. */
} NET_UDP_HDR;
/*
*********************************************************************************************************
* UDP PSEUDO-HEADER
*
* Note(s) : (1) See RFC #768, Section 'Fields : Checksum' for UDP datagram pseudo-header format.
*********************************************************************************************************
*/
/* ---------------- NET UDP PSEUDO-HDR ---------------- */
typedef struct net_udp_pseudo_hdr {
NET_IP_ADDR AddrSrc; /* UDP datagram src addr. */
NET_IP_ADDR AddrDest; /* UDP datagram dest addr. */
CPU_INT08U Zero; /* Field MUST be zero'd; i.e. ALL bits clr'd. */
CPU_INT08U Protocol; /* UDP datagram protocol. */
CPU_INT16U DatagramLen; /* UDP datagram tot len. */
} NET_UDP_PSEUDO_HDR;
/*$PAGE*/
/*
*********************************************************************************************************
* GLOBAL VARIABLES
*********************************************************************************************************
*/
#if (NET_CTR_CFG_STAT_EN == DEF_ENABLED) /* ------------------- NET UDP STATS ------------------ */
NET_UDP_EXT NET_CTR NetUDP_StatRxPktCtr; /* Nbr rx'd datagrams. */
NET_UDP_EXT NET_CTR NetUDP_StatRxDatagramProcessedCtr; /* Nbr rx'd datagrams delivered to app layer. */
NET_UDP_EXT NET_CTR NetUDP_StatTxDatagramCtr; /* Nbr tx'd datagrams. */
#endif
#if (NET_CTR_CFG_ERR_EN == DEF_ENABLED) /* ------------------- NET UDP ERRS ------------------- */
NET_UDP_EXT NET_CTR NetUDP_ErrNullPtrCtr; /* Nbr null UDP ptr accesses. */
NET_UDP_EXT NET_CTR NetUDP_ErrInvalidFlagsCtr; /* Nbr reqs for invalid UDP flags. */
NET_UDP_EXT NET_CTR NetUDP_ErrRxHdrDatagramLenCtr; /* Nbr rx'd datagrams with invalid len. */
NET_UDP_EXT NET_CTR NetUDP_ErrRxHdrPortSrcCtr; /* Nbr rx'd datagrams with invalid src port. */
NET_UDP_EXT NET_CTR NetUDP_ErrRxHdrPortDestCtr; /* Nbr rx'd datagrams with invalid dest port. */
NET_UDP_EXT NET_CTR NetUDP_ErrRxHdrChkSumCtr; /* Nbr rx'd datagrams with invalid chk sum. */
NET_UDP_EXT NET_CTR NetUDP_ErrRxDestCtr; /* Nbr rx'd datagrams for unavail dest. */
NET_UDP_EXT NET_CTR NetUDP_ErrRxPktDiscardedCtr; /* Nbr rx'd datagrams discarded. */
NET_UDP_EXT NET_CTR NetUDP_ErrTxPktDiscardedCtr; /* Nbr tx datagrams discarded. */
#if ((NET_ERR_CFG_ARG_CHK_EXT_EN == DEF_ENABLED) || \
(NET_ERR_CFG_ARG_CHK_DBG_EN == DEF_ENABLED))
NET_UDP_EXT NET_CTR NetUDP_ErrTxInvalidSizeCtr; /* Nbr tx reqs with invalid data size. */
#endif
#if (NET_ERR_CFG_ARG_CHK_DBG_EN == DEF_ENABLED)
NET_UDP_EXT NET_CTR NetUDP_ErrRxInvalidBufIxCtr; /* Nbr rx pkts with invalid buf ix. */
NET_UDP_EXT NET_CTR NetUDP_ErrRxHdrDataLenCtr; /* Nbr rx'd datagrams with invalid data len. */
NET_UDP_EXT NET_CTR NetUDP_ErrTxProtocolCtr; /* Nbr tx pkts with unknown/unsupported protocol. */
NET_UDP_EXT NET_CTR NetUDP_ErrTxInvalidBufIxCtr; /* Nbr tx pkts with invalid buf ix. */
NET_UDP_EXT NET_CTR NetUDP_ErrTxHdrDataLenCtr; /* Nbr tx datagrams with invalid protocol/data len. */
NET_UDP_EXT NET_CTR NetUDP_ErrTxHdrPortSrcCtr; /* Nbr tx datagrams with invalid src port. */
NET_UDP_EXT NET_CTR NetUDP_ErrTxHdrPortDestCtr; /* Nbr tx datagrams with invalid dest port. */
NET_UDP_EXT NET_CTR NetUDP_ErrTxHdrFlagsCtr; /* Nbr tx datagrams with invalid flags. */
#endif
#endif
/*$PAGE*/
/*
*********************************************************************************************************
* FUNCTION PROTOTYPES
*********************************************************************************************************
*/
void NetUDP_Init (void);
/* --------------------- RX FNCTS --------------------- */
void NetUDP_Rx (NET_BUF *pbuf,
NET_ERR *perr);
CPU_INT16U NetUDP_RxAppData (NET_BUF *pbuf,
void *pdata_buf,
CPU_INT16U data_buf_len,
CPU_INT16U flags,
void *pip_opts_buf,
CPU_INT08U ip_opts_buf_len,
CPU_INT08U *pip_opts_len,
NET_ERR *perr);
/* --------------------- TX FNCTS --------------------- */
CPU_INT16U NetUDP_TxAppData (void *p_data,
CPU_INT16U data_len,
NET_IP_ADDR src_addr,
NET_UDP_PORT_NBR src_port,
NET_IP_ADDR dest_addr,
NET_UDP_PORT_NBR dest_port,
NET_IP_TOS TOS,
NET_IP_TTL TTL,
CPU_INT16U flags_udp,
CPU_INT16U flags_ip,
void *popts_ip,
NET_ERR *perr);
/*
*********************************************************************************************************
* FUNCTION PROTOTYPES
* DEFINED IN PRODUCT'S net_bsp.c
*********************************************************************************************************
*/
#if ((NET_UDP_CFG_APP_API_SEL == NET_UDP_APP_API_SEL_APP ) || \
(NET_UDP_CFG_APP_API_SEL == NET_UDP_APP_API_SEL_SOCK_APP))
void NetUDP_RxAppDataHandler(NET_BUF *pbuf,
NET_IP_ADDR src_addr,
NET_UDP_PORT_NBR src_port,
NET_IP_ADDR dest_addr,
NET_UDP_PORT_NBR dest_port,
NET_ERR *perr);
#endif
/*$PAGE*/
/*
*********************************************************************************************************
* CONFIGURATION ERRORS
*********************************************************************************************************
*/
#ifndef NET_UDP_CFG_APP_API_SEL
#error "NET_UDP_CFG_APP_API_SEL not #define'd in 'net_cfg.h' "
#error " [MUST be NET_UDP_APP_API_SEL_SOCK ]"
#error " [ || NET_UDP_APP_API_SEL_APP ]"
#error " [ || NET_UDP_APP_API_SEL_SOCK_APP]"
#elif ((NET_UDP_CFG_APP_API_SEL != NET_UDP_APP_API_SEL_SOCK ) && \
(NET_UDP_CFG_APP_API_SEL != NET_UDP_APP_API_SEL_APP ) && \
(NET_UDP_CFG_APP_API_SEL != NET_UDP_APP_API_SEL_SOCK_APP))
#error "NET_UDP_CFG_APP_API_SEL illegally #define'd in 'net_cfg.h' "
#error " [MUST be NET_UDP_APP_API_SEL_SOCK ]"
#error " [ || NET_UDP_APP_API_SEL_APP ]"
#error " [ || NET_UDP_APP_API_SEL_SOCK_APP]"
#endif
#ifndef NET_UDP_CFG_RX_CHK_SUM_DISCARD_EN
#error "NET_UDP_CFG_RX_CHK_SUM_DISCARD_EN not #define'd in 'net_cfg.h'"
#error " [MUST be DEF_DISABLED] "
#error " [ || DEF_ENABLED ] "
#elif ((NET_UDP_CFG_RX_CHK_SUM_DISCARD_EN != DEF_DISABLED) && \
(NET_UDP_CFG_RX_CHK_SUM_DISCARD_EN != DEF_ENABLED ))
#error "NET_UDP_CFG_RX_CHK_SUM_DISCARD_EN illegally #define'd in 'net_cfg.h'"
#error " [MUST be DEF_DISABLED] "
#error " [ || DEF_ENABLED ] "
#endif
#ifndef NET_UDP_CFG_TX_CHK_SUM_EN
#error "NET_UDP_CFG_TX_CHK_SUM_EN not #define'd in 'net_cfg.h'"
#error " [MUST be DEF_DISABLED] "
#error " [ || DEF_ENABLED ] "
#elif ((NET_UDP_CFG_TX_CHK_SUM_EN != DEF_DISABLED) && \
(NET_UDP_CFG_TX_CHK_SUM_EN != DEF_ENABLED ))
#error "NET_UDP_CFG_TX_CHK_SUM_EN illegally #define'd in 'net_cfg.h'"
#error " [MUST be DEF_DISABLED] "
#error " [ || DEF_ENABLED ] "
#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -