⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 net_udp.h

📁 ucos的tcpip协议占
💻 H
📖 第 1 页 / 共 2 页
字号:


/*$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
	 	 			 		    	 				 	    	 	 	 		    	     	 	 	 		 	  	  	  	     	 	      	   		 	 	 	   		   			 	     			  			 		   	 			       	  	 		  	 	  	 		 		   		  	  			 	  	 		 	 	 			 	 		 		 	 		 	   		 	 	 	   		     			  			 		  	 		 	  			 	 	 	 	  		  	   		   	   	 				 		 			 			  			 		   		 		 				 		 	    		   	  		 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -