亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? net_icmp.c

?? ucos的tcpip協議占
?? C
?? 第 1 頁 / 共 5 頁
字號:
    NetICMP_ErrInvalidTypeCtr          =  0;


    NetICMP_ErrRxInvalidBufIxCtr       =  0;

    NetICMP_ErrRxHdrDataLenCtr         =  0;


    NetICMP_ErrTxInvalidBufIxCtr       =  0;

    NetICMP_ErrTxHdrPtrCtr             =  0;
#endif


#if (NET_ICMP_CFG_TX_SRC_QUENCH_EN     == DEF_ENABLED)
    NetICMP_ErrNoneAvailCtr            =  0;
#endif
#endif
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                     NetICMP_CfgTxSrcQuenchTh()
*
* Description : Configure ICMP transmit source quench entry's access-transmit threshold.
*
* Argument(s) : th          Desired number of received IP packets from a specific IP source host that trips
*                               the transmission of an additional ICMP Source Quench Error Message.
*
* Return(s)   : DEF_OK, ICMP transmit source quench threshold configured.
*
* Caller(s)   : Net_InitDflt(),
*               Application.
*
*               This function is a network protocol suite application interface (API) function & MAY be 
*               called by application function(s).
*
* Note(s)     : none.
*********************************************************************************************************
*/

#if (NET_ICMP_CFG_TX_SRC_QUENCH_EN == DEF_ENABLED)
CPU_BOOLEAN  NetICMP_CfgTxSrcQuenchTh (CPU_INT16U  th)
{
#if (CPU_CFG_CRITICAL_METHOD == CPU_CRITICAL_METHOD_STATUS_LOCAL)
    CPU_SR  cpu_sr;
#endif


#if (NET_ICMP_TX_SRC_QUENCH_TH_MIN > DEF_INT_16U_MIN_VAL)
    if (th < NET_ICMP_TX_SRC_QUENCH_TH_MIN) {
        th = NET_ICMP_TX_SRC_QUENCH_TH_MIN;
    }
#endif
#if (NET_ICMP_TX_SRC_QUENCH_TH_MAX < DEF_INT_16U_MAX_VAL)
    if (th > NET_ICMP_TX_SRC_QUENCH_TH_MAX) {
        th = NET_ICMP_TX_SRC_QUENCH_TH_MAX;
    }
#endif

    CPU_CRITICAL_ENTER();
    NetICMP_TxSrcQuenchTxTh_nbr = th;
    CPU_CRITICAL_EXIT();

    return (DEF_OK);
}
#endif


/*$PAGE*/
/*
*********************************************************************************************************
*                                            NetICMP_Rx()
*
* Description : (1) Process received messages :
*
*                   (a) Validate ICMP packet
*                   (b) Demultiplex ICMP message
*                   (c) Free ICMP packet
*                   (d) Update receive statistics
*
*               (2) Although ICMP data units are typically referred to as 'messages' (see RFC #792, Section
*                   'Introduction'), the term 'ICMP packet' (see RFC #1983, 'packet') is used for ICMP 
*                   Receive until the packet is validated as an ICMP message.
*
*
* Argument(s) : pbuf        Pointer to network buffer that received ICMP packet.
*
*               perr        Pointer to variable that will receive the return error code from this function :
*
*                               NET_ICMP_ERR_NONE               ICMP message successfully received & processed.
*                               NET_ERR_INIT_INCOMPLETE         Network initialization NOT complete.
*
*                                                               ---- RETURNED BY NetICMP_RxPktDiscard() : -----
*                               NET_ERR_RX                      Receive error; packet discarded.
*
* Return(s)   : none.
*
* Caller(s)   : NetIP_RxPktDemuxDatagram().
*
*               This function is an INTERNAL network protocol suite function & MUST NOT be called by 
*               application function(s).
*
* Note(s)     : (3) NetICMP_Rx() blocked until network initialization completes; perform NO action.
*
*               (4) #### ICMP Receive Error/Reply Messages NOT yet implemented :
*
*                   (a) Define "User Process" to report ICMP Error Messages to Transport &/or Application Layers.
*
*                   (b) Define procedure to demultiplex & enqueue ICMP Reply Messages to Application.
*
*                       (1) MUST implement mechanism to de-queue ICMP message data from single, complete
*                           datagram packet buffers or multiple, fragmented packet buffers.
*********************************************************************************************************
*/
/*$PAGE*/
void  NetICMP_Rx (NET_BUF  *pbuf,
                  NET_ERR  *perr)
{
#if ((((NET_ERR_CFG_ARG_CHK_DBG_EN == DEF_ENABLED)                    && \
       (NET_CTR_CFG_ERR_EN         == DEF_ENABLED))                   || \
       (NET_CTR_CFG_STAT_EN        == DEF_ENABLED))                   && \
       (CPU_CFG_CRITICAL_METHOD    == CPU_CRITICAL_METHOD_STATUS_LOCAL))
    CPU_SR         cpu_sr;
#endif
#if (NET_CTR_CFG_STAT_EN == DEF_ENABLED)
    NET_CTR       *pctr;
#endif
    NET_BUF_HDR   *pbuf_hdr;
    NET_ICMP_HDR  *picmp_hdr;


#if (NET_ERR_CFG_ARG_CHK_EXT_EN == DEF_ENABLED)
    if (Net_InitDone != DEF_YES) {                              /* If init NOT complete, exit rx (see Note #3).         */
        NetICMP_RxPktDiscard(pbuf, perr);
       *perr = NET_ERR_INIT_INCOMPLETE;
        return;
    }
#endif


#if (NET_ERR_CFG_ARG_CHK_DBG_EN == DEF_ENABLED)
                                                                /* ------------------- VALIDATE PTR ------------------- */
    if (pbuf == (NET_BUF *)0) {
        NetICMP_RxPktDiscard(pbuf, perr);
        NET_CTR_ERR_INC(NetICMP_ErrNullPtrCtr);
        return;
    }
#endif


    NET_CTR_STAT_INC(NetICMP_StatRxMsgCtr);


                                                                /* ----------------- VALIDATE ICMP PKT ---------------- */
    pbuf_hdr = &pbuf->Hdr;
#if (NET_ERR_CFG_ARG_CHK_DBG_EN == DEF_ENABLED)
    NetICMP_RxPktValidateBuf(pbuf_hdr, perr);                   /* Validate rx'd buf.                                   */
    switch (*perr) {
        case NET_ICMP_ERR_NONE:                                 
             break;


        case NET_ERR_INVALID_PROTOCOL:
        case NET_BUF_ERR_INVALID_IX:
        default:
             NetICMP_RxPktDiscard(pbuf, perr);
             return;                                            /* Prevent 'break NOT reachable' compiler warning.      */
    }
#endif
    picmp_hdr = (NET_ICMP_HDR *)&pbuf->Data[pbuf_hdr->ICMP_MsgIx];
    NetICMP_RxPktValidate(pbuf, pbuf_hdr, picmp_hdr, perr);     /* Validate rx'd pkt.                                   */


/*$PAGE*/
                                                                /* ------------------ DEMUX ICMP MSG ------------------ */
    switch (*perr) {
        case NET_ICMP_ERR_MSG_TYPE_ERR:
                                                                /* See Note #4a.                                        */

#if (NET_CTR_CFG_STAT_EN == DEF_ENABLED)
             pctr = &NetICMP_StatRxMsgErrProcessedCtr;
#endif
             break;


        case NET_ICMP_ERR_MSG_TYPE_REQ:
             NetICMP_TxMsgReply(pbuf, pbuf_hdr, picmp_hdr, perr);

#if (NET_CTR_CFG_STAT_EN == DEF_ENABLED)
             pctr = &NetICMP_StatRxMsgReqProcessedCtr;
#endif
             break;


        case NET_ICMP_ERR_MSG_TYPE_REPLY:
                                                                /* See Note #4b.                                        */

#if (NET_CTR_CFG_STAT_EN == DEF_ENABLED)
             pctr = &NetICMP_StatRxMsgReplyProcessedCtr;
#endif
             break;


        case NET_ICMP_ERR_INVALID_TYPE:
        case NET_ICMP_ERR_INVALID_CODE:
        case NET_ICMP_ERR_INVALID_PTR:
        case NET_ICMP_ERR_INVALID_LEN:
        case NET_ICMP_ERR_INVALID_LEN_DATA:
        case NET_ICMP_ERR_INVALID_CHK_SUM:
        default:
             NetICMP_RxPktDiscard(pbuf, perr);
             return;                                            /* Prevent 'break NOT reachable' compiler warning.      */
    }


                                                                /* --------- FREE ICMP PKT / UPDATE RX STATS ---------- */
    switch (*perr) {                                            /* Chk err from NetICMP_TxMsg???().                     */
        case NET_ICMP_ERR_NONE:
             NetICMP_RxPktFree(pbuf);
             NET_CTR_STAT_INC(NetICMP_StatRxMsgProcessedCtr);
             NET_CTR_STAT_INC(*pctr);
             break;


        default:
             NetICMP_RxPktDiscard(pbuf, perr);
             return;                                            /* Prevent 'break NOT reachable' compiler warning.      */
    }
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                         NetICMP_TxMsgErr()
*
* Description : (1) Transmit ICMP Error Message in response to received packet with one or more errors :
*
*                   (a) Validate ICMP Error Message
*
*                   (b) Get buffer for ICMP Error Message :
*
*                       (1) Calculate  ICMP Error Message buffer size
*                       (2) Copy received packet's IP header & data into ICMP Error Message
*                       (3) Initialize ICMP Error Message buffer controls
*
*                   (c) Prepare ICMP Error Message :
*
*                       (1) Type                                    See Note #1cA
*                       (2) Code                                    See Note #1cA
*                       (3) Pointer
*                       (4) Unused
*                       (5) Check-Sum
*
*                           (A) See 'net_icmp.h  ICMP MESSAGE TYPES & CODES  Notes #2 & #3' for supported
*                               ICMP message types & codes.
*
*                   (d) Transmit ICMP Error Message
*
*                       (1) RFC #1122, Section 3.2.2 specifies that "an ICMP error message SHOULD be sent
*                           with normal (i.e., zero) TOS bits".  RFC #1349, Section 5.1 confirms that "an
*                           ICMP error message is always sent with the default TOS (0000)".
*
*                   (e) Free ICMP Error Message buffer
*
*                   (f) Update transmit statistics
*
*
* Argument(s) : pbuf        Pointer to network buffer that received a packet with error(s).
*
*               type        ICMP Error Message type (see Note #1cA) :
*
*                               NET_ICMP_MSG_TYPE_DEST_UNREACH
*                               NET_ICMP_MSG_TYPE_SRC_QUENCH
*                               NET_ICMP_MSG_TYPE_TIME_EXCEED
*                               NET_ICMP_MSG_TYPE_PARAM_PROB
*
*               code        ICMP Error Message code (see Note #1cA).
*
*               ptr         Pointer to received packet's ICMP error (optional).
*
*               perr        Pointer to variable that will receive the return error code from this function :
*
*                               NET_ICMP_ERR_NONE               ICMP Error Message successfully transmitted.
*                               NET_ERR_INIT_INCOMPLETE         Network initialization NOT complete.
*

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99久免费精品视频在线观看| 欧美一级一区二区| 欧美写真视频网站| 久久综合成人精品亚洲另类欧美| 亚洲日本在线a| 国产一区二区美女诱惑| 在线观看一区二区视频| 精品福利一二区| 日韩高清在线一区| 91电影在线观看| 国产精品黄色在线观看| 国产精品中文欧美| 日韩欧美一级二级| 日韩影院精彩在线| 成人免费视频视频在线观看免费| 午夜精品久久久久| 国产精品乱码一区二三区小蝌蚪| 日韩一区二区中文字幕| 亚洲乱码国产乱码精品精的特点| 麻豆精品国产91久久久久久| 在线看一区二区| 中文字幕一区二区不卡| 国产91对白在线观看九色| 欧美哺乳videos| 精品一区中文字幕| 日韩一区二区三区视频| 奇米888四色在线精品| 欧美午夜不卡在线观看免费| 亚洲欧美日韩国产综合| 91原创在线视频| 亚洲欧洲性图库| av午夜精品一区二区三区| 久久精品视频免费观看| 国产九九视频一区二区三区| 精品少妇一区二区三区免费观看| 青青国产91久久久久久| 欧美成人福利视频| 激情图片小说一区| 国产日本欧洲亚洲| 成人免费视频一区| 一区二区三区在线视频免费观看| 91蜜桃视频在线| 亚洲国产日韩a在线播放性色| 欧美日韩一本到| 日韩国产精品久久久久久亚洲| 91精品国产aⅴ一区二区| 麻豆免费看一区二区三区| 精品久久久久久久一区二区蜜臀| 国产精品一区2区| 曰韩精品一区二区| 91精品国产综合久久福利软件| 久久精品av麻豆的观看方式| 国产蜜臀av在线一区二区三区| 波多野结衣亚洲| 亚洲电影一区二区三区| 日韩美一区二区三区| 国产九九视频一区二区三区| 一区二区视频免费在线观看| 欧美二区在线观看| 国产成人av一区二区三区在线观看| 国产精品嫩草影院com| 欧美日韩另类一区| 国产一区二区三区日韩| 亚洲免费观看高清完整| 日韩欧美成人午夜| 99久久综合国产精品| 日韩精品一级中文字幕精品视频免费观看 | 成人av动漫在线| 香蕉乱码成人久久天堂爱免费| 欧美精品一区二区三区一线天视频| 成人国产亚洲欧美成人综合网| 日韩精品久久理论片| 欧美国产精品一区二区| 欧美精品九九99久久| 成人动漫一区二区三区| 欧美a级理论片| 亚洲日本青草视频在线怡红院| 欧美一级在线免费| 色悠久久久久综合欧美99| 韩国一区二区三区| 一区二区免费看| 国产精品你懂的| 精品99一区二区三区| 在线视频你懂得一区二区三区| 国产剧情av麻豆香蕉精品| 午夜伊人狠狠久久| 国产精品区一区二区三区| 日韩精品一区二区三区在线| 欧洲一区在线电影| 99国产精品久久久| 国产成人av资源| 久久福利视频一区二区| 日精品一区二区| 亚洲综合丝袜美腿| 成人免费在线视频| 国产午夜精品一区二区| 日韩视频在线观看一区二区| 欧美日韩视频不卡| 91成人免费在线视频| 99久久精品免费看国产| 国产91精品在线观看| 国产精品影视在线观看| 美女脱光内衣内裤视频久久网站 | 污片在线观看一区二区| 亚洲美女视频在线| 亚洲欧美色综合| 亚洲视频中文字幕| 亚洲人成精品久久久久| 中文字幕一区二区三区在线播放 | 91美女蜜桃在线| 91在线国产福利| 99re免费视频精品全部| 成人国产精品免费网站| 成人avav影音| av不卡一区二区三区| 99re这里都是精品| 色婷婷香蕉在线一区二区| 在线一区二区三区四区五区| 色婷婷综合久久久久中文一区二区| 一本色道久久综合亚洲精品按摩| 91蜜桃传媒精品久久久一区二区| 色94色欧美sute亚洲线路二| 日本黄色一区二区| 欧美精品 日韩| 欧美本精品男人aⅴ天堂| 国产日韩影视精品| 中文字幕色av一区二区三区| 一区二区国产视频| 日本免费新一区视频| 久久成人久久鬼色| 粉嫩av一区二区三区| www.亚洲色图.com| 色狠狠一区二区| 日韩三级电影网址| 欧美国产日本韩| 亚洲国产精品久久不卡毛片| 午夜精品久久久久久久99水蜜桃| 日韩**一区毛片| 成人毛片老司机大片| 色8久久精品久久久久久蜜| 3atv一区二区三区| 欧美激情一区二区三区四区| 亚洲摸摸操操av| 久久国产精品色| 91麻豆福利精品推荐| 91精品国产全国免费观看| 久久久久99精品一区| 亚洲线精品一区二区三区| 久久99精品久久久久久久久久久久 | 91日韩在线专区| 日韩色视频在线观看| 国产精品污www在线观看| 亚洲一二三四区| 国产精品一区二区三区乱码| 欧美影视一区在线| wwwwxxxxx欧美| 午夜在线电影亚洲一区| 国产成人精品免费看| 欧美福利视频一区| 国产精品久久久久久福利一牛影视| 亚洲电影激情视频网站| 东方aⅴ免费观看久久av| 欧美另类高清zo欧美| 国产精品第一页第二页第三页| 美国欧美日韩国产在线播放| 91最新地址在线播放| 26uuu亚洲综合色| 亚洲国产精品久久人人爱蜜臀| 国产乱码精品1区2区3区| 欧美电影影音先锋| 亚洲欧美一区二区三区国产精品 | 激情综合网av| 欧美日韩国产免费一区二区 | 欧美体内she精高潮| 欧美极品xxx| 激情av综合网| 91精品国产综合久久精品| 一区二区三区在线看| 成人黄色国产精品网站大全在线免费观看 | 狠狠色丁香婷婷综合久久片| 欧美色爱综合网| 亚洲欧美日韩国产一区二区三区 | 成人激情视频网站| 久久精品一区二区三区不卡 | 国产精品资源在线| 欧美一区二区三区四区久久| 亚洲午夜精品一区二区三区他趣| 成人激情动漫在线观看| 久久精品在这里| 国产成人亚洲精品青草天美| www国产成人| 国产成人小视频| 亚洲国产高清aⅴ视频| 国产麻豆一精品一av一免费| 日韩欧美亚洲另类制服综合在线| 视频一区视频二区中文字幕| 欧美久久久久久久久久| 洋洋成人永久网站入口| 欧洲精品中文字幕| 亚洲午夜影视影院在线观看|