Ignore:
Timestamp:
Aug 23, 2017, 9:27:43 AM (7 years ago)
Author:
coas-nagasima
Message:

文字コードを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_fsm.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
    7  *  上記著作権è€
    8 ã¯ï¼Œä»¥ä¸‹ã® (1)~(4) の条件か,Free Software Foundation
    9  *  によってå
    10 ¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
    11  *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
    12  *  を改変したものを含む.以下同じ)を使用・複製・改変・再é
    13 å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
    14  *  利用と呼ぶ)することを無償で許諾する.
    15  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    16  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    17  *      スコード中に含まれていること.
    18  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    19  *      用できる形で再é
    20 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    21 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    22  *      è€
    23 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    24  *      の無保証規定を掲載すること.
    25  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    26  *      用できない形で再é
    27 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®æ¡ä»¶ã‚’満たすこと.
    28  *    (a) 再é
    29 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    30 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    31  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    32  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    33  *      害からも,上記著作権è€
    34 ãŠã‚ˆã³TOPPERSプロジェクトをå
    35 è²¬ã™ã‚‹ã“と.
     7 *  上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
     8 *  によって公表されている GNU General Public License の Version 2 に記
     9 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     10 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     11 *  利用と呼ぶ)することを無償で許諾する.
     12 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     13 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     14 *      スコード中に含まれていること.
     15 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     16 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     17 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     18 *      の無保証規定を掲載すること.
     19 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     20 *      用できない形で再配布する場合には,次の条件を満たすこと.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3625 *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    11199
    112100/*
    113  *  å
    114 ¨åŸŸå¤‰æ•°
    115  */
    116 
    117 uint8_t ppp_open_mode = PPP_OPEN_PASSIVE;       /* オープン時の動作モード    */
    118 
    119 /*
    120  *  関数
     101 *  全域変数
     102 */
     103
     104uint8_t ppp_open_mode = PPP_OPEN_PASSIVE;       /* オープン時の動作モード  */
     105
     106/*
     107 *  関数
    121108 */
    122109
     
    132119
    133120/*
    134  *  fsm_sconfreq -- Configure-Request を送信する。
     121 *  fsm_sconfreq -- Configure-Request を送信する。
    135122 */
    136123
     
    144131              fsm->state == PPP_FSM_ACKRCVD ||
    145132              fsm->state == PPP_FSM_ACKSENT)) {
    146                 /* まだネゴをしていない。オプションをリセットする。 */
     133                /* まだネゴをしていない。オプションをリセットする。 */
    147134                if (fsm->callbacks->resetci)
    148135                        (*fsm->callbacks->resetci)(fsm);
     
    150137                }
    151138        if (retransmit == 0) {
    152                 /* 新しいリクエスト。再送カウンタをリセットし、新しい ID を設定する。 */
     139                /* 新しいリクエスト。再送カウンタをリセットし、新しい ID を設定する。 */
    153140                fsm->retrans = MAX_PPP_CONFIGURES;
    154141                fsm->reqid   = ++ fsm->id;
     
    158145
    159146        if (fsm->callbacks->cilen && fsm->callbacks->addci) {
    160                 /* 構成æƒ
    161 å ±ãƒ‘ケットを作る。 */
     147                /* 構成情報パケットを作る。 */
    162148                len = (*fsm->callbacks->cilen)(fsm);
    163149
     
    165151                (*fsm->callbacks->addci)(fsm, output);
    166152
    167                 /* 構成æƒ
    168 å ±ãƒ‘ケットを送信する。 */
     153                /* 構成情報パケットを送信する。 */
    169154                IF_SET_PROTO(output, fsm->proto);
    170155                ppp_cp_output(PPP_CONFREQ, fsm->reqid, output);
     
    176161
    177162/*
    178  *  fsm_rconfreq -- Configure-Request を受信したときの処理
     163 *  fsm_rconfreq -- Configure-Request を受信したときの処理
    179164 */
    180165
     
    199184
    200185        case PPP_FSM_OPENED:
    201                 /* 上位層を停止して、ネゴに移る。 */
     186                /* 上位層を停止して、ネゴに移る。 */
    202187                if (fsm->callbacks->down != NULL)
    203188                        (*fsm->callbacks->down)(fsm);
    204                 fsm_sconfreq(fsm, 0);           /* 最初の Configure-Request を送る。 */
     189                fsm_sconfreq(fsm, 0);           /* 最初の Configure-Request を送る。 */
    205190                break;
    206191
    207192        case PPP_FSM_STOPPED:
    208                 /* 相手からネゴが開始された */
    209                 fsm_sconfreq(fsm, 0);           /* 最初の Configure-Request を送る。 */
     193                /* 相手からネゴが開始された */
     194                fsm_sconfreq(fsm, 0);           /* 最初の Configure-Request を送る。 */
    210195                fsm->state = PPP_FSM_REQSENT;
    211196                break;
     
    215200        syscall(get_net_buf(&output, input->len));
    216201
    217         /* 上位プロトコルに要求された Configure-Request を送る。 */
    218         if (fsm->callbacks->reqci != NULL)      /* 構成æƒ
    219 å ±ã‚’チェックする。 */
     202        /* 上位プロトコルに要求された Configure-Request を送る。 */
     203        if (fsm->callbacks->reqci != NULL)      /* 構成情報をチェックする。 */
    220204                code = (*fsm->callbacks->reqci)(fsm, input, output);
    221205        else if (output->len > sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))
     
    224208                code = PPP_CONFACK;
    225209
    226         /* 相手に ACK, NAK または REJ を送信する。 */
     210        /* 相手に ACK, NAK または REJ を送信する。 */
    227211        ppp_cp_output(code, id, output);
    228212
     
    239223                }
    240224        else {
    241                 /* ACK か REJ を送る */
     225                /* ACK か REJ を送る */
    242226                if (fsm->state != PPP_FSM_ACKRCVD)
    243227                        fsm->state = PPP_FSM_REQSENT;
     
    248232
    249233/*
    250  *  fsm_rconfnakrej -- Configure-NAK/REJ を受信したときの処理
     234 *  fsm_rconfnakrej -- Configure-NAK/REJ を受信したときの処理
    251235 */
    252236
     
    257241        T_NET_BUF       *output;
    258242
    259         /* 予期した ID でないか、NAK/REJ を予期していないときは終了する。*/
     243        /* 予期した ID でないか、NAK/REJ を予期していないときは終了する。*/
    260244        if (id != fsm->reqid || fsm->seen_ack) {
    261245                syslog(LOG_WARNING, "[PPP/FSM] bad ID or unexp NAK/REJ.");
     
    290274        case PPP_FSM_ACKSENT:
    291275                untimeout((FP)fsm_timeout, fsm);
    292                 if (ret < 0)            /* 送信した Conf-Req が破損し空の NAK/REJ が届いた。*/
     276                if (ret < 0)            /* 送信した Conf-Req が破損し空の NAK/REJ が届いた。*/
    293277                        fsm->state = PPP_FSM_STOPPED;
    294278                else
     
    303287
    304288        case PPP_FSM_OPENED:
    305                 /* 再起動し、ネゴをやり直す。*/
     289                /* 再起動し、ネゴをやり直す。*/
    306290                if (fsm->callbacks->down != NULL)
    307291                        (*fsm->callbacks->down)(fsm);
     
    313297
    314298/*
    315  *  fsm_rconfack -- Configure-ACK を受信したときの処理
     299 *  fsm_rconfack -- Configure-ACK を受信したときの処理
    316300 */
    317301
     
    321305        T_NET_BUF       *output;
    322306
    323         /* 予期した ID でないか、ACK を予期していないときは終了する。*/
     307        /* 予期した ID でないか、ACK を予期していないときは終了する。*/
    324308        if (id != fsm->reqid || fsm->seen_ack) {
    325309                syslog(LOG_WARNING, "[PPP/FSM] bad ID or unexp ACK.");
     
    368352
    369353        case PPP_FSM_OPENED:
    370                 /* 再起動し、ネゴをやり直す。*/
     354                /* 再起動し、ネゴをやり直す。*/
    371355                if (fsm->callbacks->down != NULL)
    372356                        (*fsm->callbacks->down)(fsm);
     
    383367
    384368/*
    385  *  fsm_rtermreq -- Terminate-Request を受信したときの処理
     369 *  fsm_rtermreq -- Terminate-Request を受信したときの処理
    386370 */
    387371
     
    411395
    412396/*
    413  *  fsm_rtermack -- Terminate-ACK を受信したときの処理
     397 *  fsm_rtermack -- Terminate-ACK を受信したときの処理
    414398 */
    415399
     
    420404        case PPP_FSM_CLOSING:
    421405                untimeout((FP)fsm_timeout, fsm);
    422 #if 0   /* 本来の動作は CLOSED に遷移する。*/
     406#if 0   /* 本来の動作は CLOSED に遷移する。*/
    423407                fsm->state = PPP_FSM_CLOSED;
    424408#else   /* of #if 0 */
     
    449433
    450434/*
    451  *  fsm_rcoderej -- Code-REJ を受信したときの処理
     435 *  fsm_rcoderej -- Code-REJ を受信したときの処理
    452436 */
    453437
     
    457441        T_PPP_CP_HDR    *hdr;
    458442
    459         /* PPP リンク制御 (CP) ヘッダより短ければエラー */
     443        /* PPP リンク制御 (CP) ヘッダより短ければエラー */
    460444        if (input->len < sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) {
    461445                syslog(LOG_WARNING, "[PPP/FSM] bad len: %d in recv Code-REJ.", input->len);
     
    472456
    473457/*
    474  *  fsm_timeout -- タイムアウト処理
     458 *  fsm_timeout -- タイムアウト処理
    475459 */
    476460
     
    484468        case PPP_FSM_STOPPING:
    485469                if (fsm->retrans <= 0) {
    486                         /* 最大再送回数をè¶
    487 ãˆãŸã¨ãã®å‡¦ç† */
    488 #if 0   /* 本来の動作は CLOSED に遷移する。*/
     470                        /* 最大再送回数を超えたときの処理 */
     471#if 0   /* 本来の動作は CLOSED に遷移する。*/
    489472                        fsm->state = (fsm->state == PPP_FSM_CLOSING) ? PPP_FSM_CLOSED : PPP_FSM_STOPPED;
    490473#else   /* of #if 0 */
     
    495478                        }
    496479                else {
    497                         /* Terminate-Request を送信する。*/
     480                        /* Terminate-Request を送信する。*/
    498481                        fsm_stermreq(fsm, ++ fsm->id);
    499482                        }
     
    503486        case PPP_FSM_ACKSENT:
    504487                if (fsm->retrans <= 0) {
    505                         /* 最大再送回数をè¶
    506 ãˆãŸã¨ãã®å‡¦ç† */
     488                        /* 最大再送回数を超えたときの処理 */
    507489                        syslog(LOG_WARNING, "[PPP/FSM] retrans Conf-Req.");
    508490                        fsm->state = PPP_FSM_STOPPED;
     
    511493                        }
    512494                else {
    513                         /* Configure-Request を再送する。*/
     495                        /* Configure-Request を再送する。*/
    514496                        if (fsm->callbacks->retrans != NULL)
    515497                                (*fsm->callbacks->retrans)(fsm);
     
    528510
    529511/*
    530  *  fsm_stermreq -- Terminate-Request を送信する。
     512 *  fsm_stermreq -- Terminate-Request を送信する。
    531513 */
    532514
     
    545527
    546528/*
    547  *  fsm_init -- FSM モジュールの初期化
     529 *  fsm_init -- FSM モジュールの初期化
    548530 */
    549531
     
    556538
    557539/*
    558  *  fsm_lowerup -- FSM 下位層を起動する。
     540 *  fsm_lowerup -- FSM 下位層を起動する。
    559541 */
    560542
     
    583565
    584566/*
    585  *  fsm_lowerdown -- FSM 下位層を停止する。
     567 *  fsm_lowerdown -- FSM 下位層を停止する。
    586568 */
    587569
     
    626608
    627609/*
    628  *  fsm_open -- FSM のオープン
     610 *  fsm_open -- FSM のオープン
    629611 */
    630612
     
    650632        case PPP_FSM_CLOSING:
    651633                fsm->state = PPP_FSM_STOPPING;
    652                 /* nobreak;     ä¸‹ã«è½ã¡ã‚‹ */
     634                /* nobreak;     下に落ちる */
    653635
    654636        case PPP_FSM_STOPPED:
     
    661643
    662644/*
    663  *  fsm_close -- リンクの切断を開始する。
     645 *  fsm_close -- リンクの切断を開始する。
    664646 */
    665647
     
    672654                break;
    673655
    674 #if 0   /* 本来の動作は CLOSED に遷移する。*/
     656#if 0   /* 本来の動作は CLOSED に遷移する。*/
    675657        case PPP_FSM_STOPPED:
    676658                fsm->state = PPP_FSM_CLOSED;
     
    691673                        (*fsm->callbacks->down)(fsm);
    692674
    693                 /* タイムアウトを設定し、Terminate-Request を送信する。*/
     675                /* タイムアウトを設定し、Terminate-Request を送信する。*/
    694676                fsm->retrans = MAX_PPP_TERMINATES;
    695677                fsm_stermreq(fsm, fsm->reqid = ++ fsm->id);
     
    700682
    701683/*
    702  *  fsm_input -- å
    703 ¥åŠ›ã€PPP リンク制御 (CP) の制御コードにより適当な関数を呼出す
     684 *  fsm_input -- 入力、PPP リンク制御 (CP) の制御コードにより適当な関数を呼出す
    704685 */
    705686
     
    710691        T_NET_BUF       *output;
    711692
    712         /* PPP リンク制御 (CP) ヘッダより短ければエラー */
     693        /* PPP リンク制御 (CP) ヘッダより短ければエラー */
    713694        if (input->len < (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))) {
    714695                syslog(LOG_WARNING, "[PPP/FSM] short hdr: %d.", input->len);
     
    718699        hdr = GET_PPP_CP_HDR(input);
    719700
    720         /* ヘッダの長さとå
    721 ¥åŠ›ãƒ‡ãƒ¼ã‚¿ã‚µã‚¤ã‚ºãŒä¸€è‡´ã—なければエラー */
     701        /* ヘッダの長さと入力データサイズが一致しなければエラー */
    722702        if (hdr->len != input->len - sizeof(T_PPP_HDR)) {
    723703                syslog(LOG_WARNING, "[PPP/FSM] bad len: %d.", hdr->len);
     
    725705                }
    726706 
    727         /* 状æ
    728 ‹ãŒ INITIAL か STARTING ならエラー */
     707        /* 状態が INITIAL か STARTING ならエラー */
    729708        if (fsm->state == PPP_FSM_INITIAL || fsm->state == PPP_FSM_STARTING) {
    730709                syslog(LOG_WARNING, "[PPP/FSM] unexp state: %d in input.", fsm->state);
     
    733712 
    734713        /*
    735          *  制御コードにより適当な関数を呼出す
     714         *  制御コードにより適当な関数を呼出す
    736715         */
    737716
     
    774753
    775754/*
    776  *  fsm_protoreject -- Proto-REJ を受信したときの処理
     755 *  fsm_protoreject -- Proto-REJ を受信したときの処理
    777756 */
    778757
     
    784763                untimeout((FP)fsm_timeout, fsm);
    785764
    786 #if 0   /* 本来の動作は CLOSED に遷移する。*/
    787                 /* 下に落ちる */
     765#if 0   /* 本来の動作は CLOSED に遷移する。*/
     766                /* 下に落ちる */
    788767#else   /* of #if 0 */
    789768                fsm->state = PPP_FSM_STOPPED;
     
    804783        case PPP_FSM_ACKSENT:
    805784                untimeout((FP)fsm_timeout, fsm);
    806                 /* 下に落ちる */
     785                /* 下に落ちる */
    807786
    808787        case PPP_FSM_STOPPED:
     
    816795                        (*fsm->callbacks->down)(fsm);
    817796
    818                 /* タイムアウトを設定し、Terminate-Request を送信する。*/
     797                /* タイムアウトを設定し、Terminate-Request を送信する。*/
    819798                fsm->retrans = MAX_PPP_TERMINATES;
    820799                fsm_stermreq(fsm, fsm->reqid = ++ fsm->id);
Note: See TracChangeset for help on using the changeset viewer.