Changeset 315 for rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_fsm.h
- Timestamp:
- Jul 23, 2017, 2:29:40 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_fsm.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 5 5 * Tomakomai National College of Technology, JAPAN 6 6 * 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プロジェクトを免責すること. 36 25 * 37 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 38 ã 39 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã 40 * å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´ 41 * æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼ 26 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 27 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も 28 * 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直 29 * 接的または間接的に生じたいかなる損害に関しても,その責任を負わない. 42 30 * 43 31 * @(#) $Id$ … … 93 81 94 82 /* 95 * ç¶æ 96 管çæ§é ä½ 83 * 状態管理構造体 97 84 */ 98 85 … … 100 87 101 88 typedef struct t_fsm { 102 struct t_ppp_fsm_callbacks *callbacks; /* ã³ã¼ã«ããã¯é¢æ°*/ 103 uint16_t proto; /* ãããã³ã« */ 104 uint8_t state; /* FSM ã®ç¶æ 105 */ 106 uint8_t id; /* ç¾å¨ã® ID */ 107 uint8_t reqid; /* è¦æ± ID */ 108 uint8_t seen_ack; /* è¦æ±ã«å¯¾ãæ£å¸¸ãª ACK/NAK/REJ ãåä¿¡ */ 109 int8_t failures; /* é»èªãã NAK æ° */ 110 int8_t retrans; /* Configure-Request ã¾ãã¯ã */ 111 /* Terminate-Request ã®åéåæ° */ 89 struct t_ppp_fsm_callbacks *callbacks; /* コールバック関数*/ 90 uint16_t proto; /* プロトコル */ 91 uint8_t state; /* FSM の状態 */ 92 uint8_t id; /* 現在の ID */ 93 uint8_t reqid; /* 要求 ID */ 94 uint8_t seen_ack; /* 要求に対し正常な ACK/NAK/REJ を受信 */ 95 int8_t failures; /* 黙認した NAK 数 */ 96 int8_t retrans; /* Configure-Request または、 */ 97 /* Terminate-Request の再送回数 */ 112 98 } T_PPP_FSM; 113 99 … … 115 101 116 102 /* 117 * ã³ã¼ã«ããã¯é¢æ°æ§é ä½103 * コールバック関数構造体 118 104 */ 119 105 120 106 typedef struct t_ppp_fsm_callbacks { 121 void (*resetci) (T_PPP_FSM *); /* èªæ§ææ 122 å ±ããªã»ããããã */ 123 int_t (*cilen) (T_PPP_FSM *); /* æ§ææ 124 å ±ã®é·ããè¿ãã */ 107 void (*resetci) (T_PPP_FSM *); /* 自構成情報をリセットする。 */ 108 int_t (*cilen) (T_PPP_FSM *); /* 構成情報の長さを返す。 */ 125 109 void (*addci) (T_PPP_FSM *, T_NET_BUF *); 126 /* èªæ§ææ 127 å ±ã追å ããã */ 110 /* 自構成情報を追加する。 */ 128 111 bool_t (*ackci) (T_PPP_FSM *, T_NET_BUF *); 129 /* ACK ãåä¿¡ããã¨ãã®å¦ç*/112 /* ACK を受信したときの処理 */ 130 113 int_t (*nakci) (T_PPP_FSM *, T_NET_BUF *); 131 /* NAK ãåä¿¡ããã¨ãã®å¦ç*/114 /* NAK を受信したときの処理 */ 132 115 int_t (*rejci) (T_PPP_FSM *, T_NET_BUF *); 133 /* REJ ãåä¿¡ããã¨ãã®å¦ç*/116 /* REJ を受信したときの処理 */ 134 117 int_t (*reqci) (T_PPP_FSM *, T_NET_BUF *, T_NET_BUF *); 135 /* ç¸æã®æ§ææ 136 å ±ã確èªããã */ 137 void (*up) (T_PPP_FSM *); /* ãªã³ã¯ã®æ¥ç¶ã確ç«ããã */ 138 void (*down) (T_PPP_FSM *); /* ãªã³ã¯ã®æ¥ç¶ã解æ¾ããã */ 139 void (*starting)(T_PPP_FSM *); /* ä¸ä½å±¤ãéå§ããã */ 140 void (*finished)(T_PPP_FSM *); /* ä¸ä½å±¤ãçµäºããã */ 141 void (*retrans) (T_PPP_FSM *); /* åéããã */ 142 /* ä¸æ㪠CP ãåä¿¡ããã¨ãã®å¦ç */ 118 /* 相手の構成情報を確認する。 */ 119 void (*up) (T_PPP_FSM *); /* リンクの接続を確立する。 */ 120 void (*down) (T_PPP_FSM *); /* リンクの接続を解放する。 */ 121 void (*starting)(T_PPP_FSM *); /* 下位層を開始する。 */ 122 void (*finished)(T_PPP_FSM *); /* 下位層を終了する。 */ 123 void (*retrans) (T_PPP_FSM *); /* 再送する。 */ 124 /* 不明な CP を受信したときの処理 */ 143 125 bool_t (*extcode)(T_PPP_FSM *, uint8_t, uint8_t, T_NET_BUF *); 144 126 } T_PPP_FSM_CALLBACKS; 145 127 146 128 /* 147 * FSM ã®ç¶æ 148 129 * FSM の状態 149 130 */ 150 131 151 #define PPP_FSM_INITIAL 0 /* æªæ¥ç¶ãæªãªã¼ãã³ */ 152 #define PPP_FSM_STARTING 1 /* æªæ¥ç¶ããªã¼ãã³ */ 153 #define PPP_FSM_CLOSED 2 /* æ¥ç¶ã æªãªã¼ãã³ */ 154 #define PPP_FSM_STOPPED 3 /* ãªã¼ãã³ãåæå¾ 155 ã¡ */ 156 #define PPP_FSM_CLOSING 4 /* åæä¸ãæªãªã¼ãã³ */ 157 #define PPP_FSM_STOPPING 5 /* åæä¸ããªã¼ãã³ */ 158 #define PPP_FSM_REQSENT 6 /* Config REQ éä¿¡æ¸ã¿ */ 159 #define PPP_FSM_ACKRCVD 7 /* Config ACK åä¿¡æ¸ã¿ */ 160 #define PPP_FSM_ACKSENT 8 /* Config ACK éä¿¡æ¸ã¿ */ 161 #define PPP_FSM_OPENED 9 /* æ¥ç¶ãéä¿¡å¯è½ */ 132 #define PPP_FSM_INITIAL 0 /* 未接続、未オープン */ 133 #define PPP_FSM_STARTING 1 /* 未接続、オープン */ 134 #define PPP_FSM_CLOSED 2 /* 接続、 未オープン */ 135 #define PPP_FSM_STOPPED 3 /* オープン、切断待ち */ 136 #define PPP_FSM_CLOSING 4 /* 切断中、未オープン */ 137 #define PPP_FSM_STOPPING 5 /* 切断中、オープン */ 138 #define PPP_FSM_REQSENT 6 /* Config REQ 送信済み */ 139 #define PPP_FSM_ACKRCVD 7 /* Config ACK 受信済み */ 140 #define PPP_FSM_ACKSENT 8 /* Config ACK 送信済み */ 141 #define PPP_FSM_OPENED 9 /* 接続、通信可能 */ 162 142 163 143 /* 164 * ãªã¼ãã³æã®åä½ã¢ã¼ã144 * オープン時の動作モード 165 145 */ 166 146 167 #define PPP_OPEN_PASSIVE false /* ååãªã¼ãã³*/168 #define PPP_OPEN_ACTIVE true /* è½åãªã¼ãã³*/147 #define PPP_OPEN_PASSIVE false /* 受動オープン */ 148 #define PPP_OPEN_ACTIVE true /* 能動オープン */ 169 149 170 150 /* 171 * åéãã¿ã¤ã ã¢ã¦ãã®æ¢å®å¤151 * 再送、タイムアウトの既定値 172 152 */ 173 153 174 154 #define DEF_PPP_TIMEOUT (3*NET_TIMER_HZ) 175 /* RFC1661 ã§ã¯ 3 ç§*/176 #define MAX_PPP_TERMINATES 2 /* Terminate-Requests ã®æ大åéåæ°*/177 /* RFC1661 ã§ã¯ 2 å*/178 #define MAX_PPP_CONFIGURES 10 /* Configure-Requests ã®æ大åéåæ°*/179 /* RFC1661 ã§ã¯ 10 å*/180 #define MAX_PPP_FAILURES 5 /* Configure-NAK ã®æ大é»èªåæ°*/181 /* RFC1661 ã§ã¯ 5 å*/155 /* RFC1661 では 3 秒 */ 156 #define MAX_PPP_TERMINATES 2 /* Terminate-Requests の最大再送回数 */ 157 /* RFC1661 では 2 回 */ 158 #define MAX_PPP_CONFIGURES 10 /* Configure-Requests の最大再送回数 */ 159 /* RFC1661 では 10 回 */ 160 #define MAX_PPP_FAILURES 5 /* Configure-NAK の最大黙認回数 */ 161 /* RFC1661 では 5 回 */ 182 162 183 163 /* 184 * é¢æ°164 * 関数 185 165 */ 186 166 … … 194 174 195 175 /* 196 * å¤æ°176 * 変数 197 177 */ 198 178 -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.