Changeset 389 for azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_var.h
- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/asp3_dcre/tinet/netinet/tcp_var.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 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$ … … 84 72 85 73 /* 86 * TCP ãããã»ãã¤ãã¼ãã¢ã¯ã»ã¹ãã¯ã74 * TCP ヘッダ・ペイロードアクセスマクロ 87 75 */ 88 76 … … 104 92 105 93 /* 106 * TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©94 * TINET 1.1 との互換性のための定義 107 95 */ 108 96 … … 117 105 118 106 /* 119 * TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©107 * TINET 1.3 との互換性のための定義 120 108 */ 121 109 … … 127 115 128 116 /* 129 * ã³ã¼ã«ããã¯é¢æ°ã®å®ç¾©117 * コールバック関数の定義 130 118 */ 131 119 … … 133 121 134 122 /* 135 * TCP ã§ä½¿ç¨ããå¤æ°ã®åã®å®ç¾©123 * TCP で使用する変数の型の定義 136 124 */ 137 125 … … 142 130 143 131 /* 144 * TCP ã¿ã¤ãå¤æ°145 */ 146 147 #define NUM_TCP_TIMERS 4 /* TCP ã®ã¿ã¤ãæ°*/148 149 /* 150 * TCP åä»å£151 */ 152 153 /* IPv6 ç¨ TCP åä»å£*/132 * TCP タイマ変数 133 */ 134 135 #define NUM_TCP_TIMERS 4 /* TCP のタイマ数 */ 136 137 /* 138 * TCP 受付口 139 */ 140 141 /* IPv6 用 TCP 受付口 */ 154 142 155 143 typedef struct t_tcp6_rep { 156 144 157 145 /* 158 * ITRON TCP/IP API ãTCP åä»å£ã¨åãã¡ã³ã146 * ITRON TCP/IP API、TCP 受付口と同じメンバ 159 147 */ 160 ATR repatr; /* åä»å£å±æ§*/161 T_IPV6EP myaddr; /* èªåã®ã¢ãã¬ã¹*/148 ATR repatr; /* 受付口属性 */ 149 T_IPV6EP myaddr; /* 自分のアドレス */ 162 150 163 151 #ifdef TCP_CFG_EXTENTIONS 164 uint16_t flags; /* åä»å£ãã©ã°*/165 ID semid_lock; /* åä»å£ããã¯*/152 uint16_t flags; /* 受付口フラグ */ 153 ID semid_lock; /* 受付口ロック */ 166 154 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 167 155 168 156 } T_TCP6_REP; 169 157 170 /* IPv4 ç¨ TCP åä»å£*/158 /* IPv4 用 TCP 受付口 */ 171 159 172 160 typedef struct t_tcp4_rep { 173 161 174 162 /* 175 * ITRON TCP/IP API ãTCP åä»å£ã¨åãã¡ã³ã163 * ITRON TCP/IP API、TCP 受付口と同じメンバ 176 164 */ 177 ATR repatr; /* åä»å£å±æ§*/178 T_IPV4EP myaddr; /* èªåã®ã¢ãã¬ã¹*/165 ATR repatr; /* 受付口属性 */ 166 T_IPV4EP myaddr; /* 自分のアドレス */ 179 167 180 168 #ifdef TCP_CFG_EXTENTIONS 181 uint16_t flags; /* åä»å£ãã©ã°*/182 ID semid_lock; /* åä»å£ããã¯*/169 uint16_t flags; /* 受付口フラグ */ 170 ID semid_lock; /* 受付口ロック */ 183 171 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 184 172 … … 202 190 203 191 /* 204 * åä»å£ãã©ã°205 */ 206 207 #define TCP_REP_FLG_DYNAMIC UINT_C(0x0400) /* åççæã»åé¤å¯è½åä»å£ã*/208 #define TCP_REP_FLG_VALID UINT_C(0x0800) /* çææ¸ã¿ã§æå¹ãªåä»å£ã*/209 210 /* 211 * TCP é信端ç¹192 * 受付口フラグ 193 */ 194 195 #define TCP_REP_FLG_DYNAMIC UINT_C(0x0400) /* 動的生成・削除可能受付口。 */ 196 #define TCP_REP_FLG_VALID UINT_C(0x0800) /* 生成済みで有効な受付口。 */ 197 198 /* 199 * TCP 通信端点 212 200 */ 213 201 … … 223 211 224 212 /* 225 * ITRON TCP/IP API ãTCP é信端ç¹ã¨åãã¡ã³ã213 * ITRON TCP/IP API、TCP 通信端点と同じメンバ 226 214 */ 227 ATR cepatr; /* é信端ç¹å±æ§*/228 void *sbuf; /* éä¿¡ç¨ã¦ã£ã³ããããã¡*/229 int_t sbufsz; /* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº*/230 void *rbuf; /* åä¿¡ç¨ã¦ã£ã³ããããã¡*/231 int_t rbufsz; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº*/232 t_tcp_callback callback; /* ã³ã¼ã«ããã¯é¢æ°*/215 ATR cepatr; /* 通信端点属性 */ 216 void *sbuf; /* 送信用ウィンドバッファ */ 217 int_t sbufsz; /* 送信用ウィンドバッファサイズ */ 218 void *rbuf; /* 受信用ウィンドバッファ */ 219 int_t rbufsz; /* 受信用ウィンドバッファサイズ */ 220 t_tcp_callback callback; /* コールバック関数 */ 233 221 234 222 /* 235 * TINET ç¬èªã®ã¡ã³ã223 * TINET 独自のメンバ 236 224 */ 237 uint32_t flags; /* é信端ç¹ãã©ã° */ 238 ID semid_lock; /* é信端ç¹ãã㯠*/ 239 ID est_flgid; /* ã³ãã¯ã·ã§ã³ç¶æ 240 ã¤ãã³ããã©ã° */ 241 ID snd_flgid; /* éä¿¡ã¤ãã³ããã©ã° */ 242 ID rcv_flgid; /* åä¿¡ã¤ãã³ããã©ã° */ 243 ID snd_tskid; /* éä¿¡ã¿ã¹ã¯èå¥å */ 244 ID rcv_tskid; /* åä¿¡ã¿ã¹ã¯èå¥å */ 245 uint8_t *sbuf_rptr; /* éä¿¡ç¨èªã¿åºããã¤ã³ã¿ */ 246 uint8_t *sbuf_wptr; /* éä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿ */ 247 uint8_t *rbuf_rptr; /* åä¿¡ç¨èªã¿åºããã¤ã³ã¿ */ 248 uint8_t *rbuf_wptr; /* åä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿ */ 249 T_TCP_SEQ snd_ssthresh; /* 輻輳ã¦ã£ã³ããµã¤ãº(snd_cwnd) */ 250 /* ã®ãããå¤ */ 251 T_TCP_TIME rxtcur; /* ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã */ 252 T_TCP_TIME srtt; /* å¹³æ»åããã RTT */ 253 T_TCP_TIME rttvar; /* å¹³æ»åãããåæ£ */ 254 T_TCP_WND snd_cwnd; /* 輻輳ã¦ã£ã³ããµã¤ãº */ 225 uint32_t flags; /* 通信端点フラグ */ 226 ID semid_lock; /* 通信端点ロック */ 227 ID est_flgid; /* コネクション状態イベントフラグ */ 228 ID snd_flgid; /* 送信イベントフラグ */ 229 ID rcv_flgid; /* 受信イベントフラグ */ 230 ID snd_tskid; /* 送信タスク識別子 */ 231 ID rcv_tskid; /* 受信タスク識別子 */ 232 uint8_t *sbuf_rptr; /* 送信用読み出しポインタ */ 233 uint8_t *sbuf_wptr; /* 送信用書き込みポインタ */ 234 uint8_t *rbuf_rptr; /* 受信用読み出しポインタ */ 235 uint8_t *rbuf_wptr; /* 受信用書き込みポインタ */ 236 T_TCP_SEQ snd_ssthresh; /* 輻輳ウィンドサイズ(snd_cwnd) */ 237 /* のしきい値 */ 238 T_TCP_TIME rxtcur; /* 現在の再送タイムアウト */ 239 T_TCP_TIME srtt; /* 平滑化された RTT */ 240 T_TCP_TIME rttvar; /* 平滑化された分散 */ 241 T_TCP_WND snd_cwnd; /* 輻輳ウィンドサイズ */ 255 242 256 243 /* 257 * ç¸æã®æ大åä¿¡ã»ã°ã¡ã³ããµã¤ãº244 * 相手の最大受信セグメントサイズ 258 245 * 259 * ãªãªã¸ãã«ã§ã¯ãä¸è¬ã®ã»ã°ã¡ã³ãã®æ大ãµã¤ãº (t_maxseg) ã¨ã 260 * ãªãã·ã§ã³ä»ãã®ã»ã°ã¡ã³ãã®æ大ãµã¤ãº (t_maxopd) ãå¥ã« 261 * ãªã£ã¦ãããããã¯ãç¾å¨ã®ã¤ã³ã¿ã¼ãããã§ã¯ããªãã·ã§ã³ä»ãã® 262 * ã»ã°ã¡ã³ãã®ã»ããå¤ãããã¨èª¬æããã¦ããããã§ããã 263 * æ¬å®è£ 264 ã§ã¯ãæ大ã»ã°ã¡ã³ããµã¤ãºãªãã·ã§ã³ä»¥å¤ã®ãªãã·ã§ã³ã¯ 265 * å®è£ 266 ããªãã®ã§ãt_maxseg ã®ä½¿ç¨ããã 246 * オリジナルでは、一般のセグメントの最大サイズ (t_maxseg) と、 247 * オプション付きのセグメントの最大サイズ (t_maxopd) が別に 248 * なっている。これは、現在のインターネットでは、オプション付きの 249 * セグメントのほうが多いからと説明されているためである。 250 * 本実装では、最大セグメントサイズオプション以外のオプションは 251 * 実装しないので、t_maxseg の使用する。 267 252 */ 268 253 T_TCP_SEG maxseg; 269 254 270 int16_t snd_tfn; /* éä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã*/271 int16_t rcv_tfn; /* åä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã*/255 int16_t snd_tfn; /* 送信動作中の API 機能コード */ 256 int16_t rcv_tfn; /* 受信動作中の API 機能コード */ 272 257 273 258 #ifdef TCP_CFG_NON_BLOCKING 274 259 275 T_IPEP *p_dstaddr; /* ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/276 T_IPEP *p_myaddr; /* èªåã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/260 T_IPEP *p_dstaddr; /* 相手のアドレスへのポインタ */ 261 T_IPEP *p_myaddr; /* 自分のアドレスへのポインタ */ 277 262 278 263 #if defined(_IP6_CFG) && defined(_IP4_CFG) 279 T_IPV4EP *p_dstaddr4; /* ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/280 T_IPV4EP *p_myaddr4; /* èªåã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/264 T_IPV4EP *p_dstaddr4; /* 相手のアドレスへのポインタ */ 265 T_IPV4EP *p_myaddr4; /* 自分のアドレスへのポインタ */ 281 266 #endif 282 267 283 int16_t snd_nblk_tfn; /* éä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã */ 284 int16_t rcv_nblk_tfn; /* åä¿¡åä½ä¸ã® API æ©è½ã³ã¼ã */ 285 void *snd_data; /* éä¿¡ãã¼ã¿é åã®å 286 é ã¢ãã¬ã¹ */ 287 int_t snd_len; /* éä¿¡ãã¼ã¿é åã®é·ã */ 288 void *rcv_data; /* åä¿¡ãã¼ã¿é åã®å 289 é ã¢ãã¬ã¹ */ 290 int_t rcv_len; /* åä¿¡ãã¼ã¿é åã®é·ã */ 291 void **snd_p_buf; /* éä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿ */ 292 void **rcv_p_buf; /* åä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿ */ 268 int16_t snd_nblk_tfn; /* 送信動作中の API 機能コード */ 269 int16_t rcv_nblk_tfn; /* 受信動作中の API 機能コード */ 270 void *snd_data; /* 送信データ領域の先頭アドレス */ 271 int_t snd_len; /* 送信データ領域の長さ */ 272 void *rcv_data; /* 受信データ領域の先頭アドレス */ 273 int_t rcv_len; /* 受信データ領域の長さ */ 274 void **snd_p_buf; /* 送信バッファへのポインタ */ 275 void **rcv_p_buf; /* 受信バッファへのポインタ */ 293 276 294 277 #endif /* of #ifdef TCP_CFG_NON_BLOCKING */ 295 278 296 279 #ifdef TCP_CFG_SWBUF_CSAVE 297 T_NET_BUF *swbufq; /* éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼*/280 T_NET_BUF *swbufq; /* 送信ウィンドバッファキュー */ 298 281 #endif 299 282 300 283 /* 301 * ãã以éã®ã¡ã³ãã¼ã¯ tcp_init_cep() é¢æ°ã§ã¼ãã¯ãªã¢ã¼ãããã284 * これ以降のメンバーは tcp_init_cep() 関数でゼロクリアーされる。 302 285 */ 303 286 304 T_TCP_TIME timer[NUM_TCP_TIMERS]; /* TCP ã®ã¿ã¤ã*/305 T_IPEP dstaddr; /* ç¸æã®ã¢ãã¬ã¹*/306 T_IPEP myaddr; /* èªåã®ã¢ãã¬ã¹*/307 T_NET_BUF *reassq; /* åä¿¡åæ§æãã¥ã¼*/287 T_TCP_TIME timer[NUM_TCP_TIMERS]; /* TCP のタイマ */ 288 T_IPEP dstaddr; /* 相手のアドレス */ 289 T_IPEP myaddr; /* 自分のアドレス */ 290 T_NET_BUF *reassq; /* 受信再構成キュー */ 308 291 309 292 #if defined(_IP6_CFG) … … 311 294 #if defined(_IP4_CFG) 312 295 313 T_TCP4_REP *rep4; /* IPv4 ç¨åä»å£*/296 T_TCP4_REP *rep4; /* IPv4 用受付口 */ 314 297 315 298 #endif /* of #if defined(_IP4_CFG) */ 316 299 317 T_TCP6_REP *rep; /* IPv6 ç¨åä»å£*/300 T_TCP6_REP *rep; /* IPv6 用受付口 */ 318 301 319 302 #else /* of #if defined(_IP6_CFG) */ … … 321 304 #if defined(_IP4_CFG) 322 305 323 T_TCP4_REP *rep; /* IPv4 ç¨åä»å£*/306 T_TCP4_REP *rep; /* IPv4 用受付口 */ 324 307 325 308 #endif /* of #if defined(_IP4_CFG) */ … … 329 312 330 313 #ifdef TCP_CFG_RWBUF_CSAVE 331 T_NET_BUF *rwbufq; /* åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼*/314 T_NET_BUF *rwbufq; /* 受信ウィンドバッファキュー */ 332 315 #endif 333 316 334 317 #ifdef TCP_CFG_EXTENTIONS 335 T_TCP_HDR *urg_tcph; /* ç·æ¥ãã¼ã¿å 336 ¥ãã®ã»ã°ã¡ã³ãã® TCP ããã */ 337 T_TCP_SEQ snd_up; /* éä¿¡ããç·æ¥ãã¤ã³ã¿ */ 338 T_TCP_SEQ rcv_up; /* åä¿¡ããç·æ¥ãã¤ã³ã¿ */ 318 T_TCP_HDR *urg_tcph; /* 緊急データ入りのセグメントの TCP ヘッダ */ 319 T_TCP_SEQ snd_up; /* 送信した緊急ポインタ */ 320 T_TCP_SEQ rcv_up; /* 受信した緊急ポインタ */ 339 321 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 340 322 341 T_TCP_SEQ snd_una; /* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã */ 342 /* 確èªãããæ大éä¿¡ SEQ */ 343 T_TCP_SEQ snd_max; /* éä¿¡ããæ大 SEQ */ 344 T_TCP_SEQ snd_nxt; /* 次ã«éä¿¡ãã SEQ */ 345 T_TCP_SEQ snd_old_nxt; /* å 346 ã® snd_nxt */ 347 T_TCP_SEQ snd_wl1; /* ååã¦ã£ã³ããæ´æ°ãã SEQ */ 348 T_TCP_SEQ snd_wl2; /* ååã¦ã£ã³ããæ´æ°ãã ACK */ 349 T_TCP_SEQ iss; /* èªåã® SEQ ã®åæå¤ */ 350 T_TCP_SEQ irs; /* ç¸æã® SEQ ã®åæå¤ */ 351 T_TCP_SEQ rcv_nxt; /* åä¿¡ãæå¾ 352 ãã¦ããæå°ã® SEQ */ 353 T_TCP_SEQ rcv_adv; /* åä¿¡ãæå¾ 354 ãã¦ããæ大㮠SEQ */ 355 T_TCP_SEQ rcv_wnd; /* åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº */ 356 T_TCP_SEQ rtseq; /* æéè¨æ¸¬ãå§ãã SEQ */ 357 T_TCP_SEQ last_ack_sent; /* æå¾ã«éä¿¡ãã ACK */ 358 T_TCP_TIME idle; /* ã¢ã¤ãã«æé */ 359 ER error; /* éåæã«çºçããã¨ã©ã¼ */ 360 ER net_error; /* ãããã¯ã¼ã¯ã®ã¨ã©ã¼ç¶æ 361 */ 362 T_TCP_WND snd_wnd; /* ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº */ 363 T_TCP_WND max_sndwnd; /* ä»ã¾ã§ã®æ大éä¿¡ã¦ã£ã³ããµã¤ãº */ 364 T_TCP_TIME rtt; /* å¾å¾©æé */ 365 uint16_t swbuf_count; /* éä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãº */ 366 uint16_t rwbuf_count; /* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãº */ 367 uint16_t rcv_buf_len; /* tcp_rcv_buf ã®å²å½ã¦é· */ 368 uint16_t get_buf_len; /* tcp_rcv_buf ã®å²å½ã¦é· */ 369 uint8_t rxtshift; /* åéä¿¡åæ°ã® log(2) */ 370 uint8_t fsm_state; /* FSM ç¶æ 371 */ 372 uint8_t dupacks; /* åé ACK æ° */ 323 T_TCP_SEQ snd_una; /* 未確認の最小送信 SEQ つまり */ 324 /* 確認された最大送信 SEQ */ 325 T_TCP_SEQ snd_max; /* 送信した最大 SEQ */ 326 T_TCP_SEQ snd_nxt; /* 次に送信する SEQ */ 327 T_TCP_SEQ snd_old_nxt; /* 元の snd_nxt */ 328 T_TCP_SEQ snd_wl1; /* 前回ウィンドを更新した SEQ */ 329 T_TCP_SEQ snd_wl2; /* 前回ウィンドを更新した ACK */ 330 T_TCP_SEQ iss; /* 自分の SEQ の初期値 */ 331 T_TCP_SEQ irs; /* 相手の SEQ の初期値 */ 332 T_TCP_SEQ rcv_nxt; /* 受信を期待している最小の SEQ */ 333 T_TCP_SEQ rcv_adv; /* 受信を期待している最大の SEQ */ 334 T_TCP_SEQ rcv_wnd; /* 受信可能なウィンドサイズ */ 335 T_TCP_SEQ rtseq; /* 時間計測を始めた SEQ */ 336 T_TCP_SEQ last_ack_sent; /* 最後に送信した ACK */ 337 T_TCP_TIME idle; /* アイドル時間 */ 338 ER error; /* 非同期に発生したエラー */ 339 ER net_error; /* ネットワークのエラー状態 */ 340 T_TCP_WND snd_wnd; /* 相手の受信可能ウィンドサイズ */ 341 T_TCP_WND max_sndwnd; /* 今までの最大送信ウィンドサイズ */ 342 T_TCP_TIME rtt; /* 往復時間 */ 343 uint16_t swbuf_count; /* 送信ウィンドバッファの使用中サイズ */ 344 uint16_t rwbuf_count; /* 受信ウィンドバッファの使用中サイズ */ 345 uint16_t rcv_buf_len; /* tcp_rcv_buf の割当て長 */ 346 uint16_t get_buf_len; /* tcp_rcv_buf の割当て長 */ 347 uint8_t rxtshift; /* 再送信回数の log(2) */ 348 uint8_t fsm_state; /* FSM 状態 */ 349 uint8_t dupacks; /* 再送 ACK 数 */ 373 350 374 351 #if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES) 375 uint16_t rwbufq_entries; /* åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã®ã¨ã³ããªæ°*/352 uint16_t rwbufq_entries; /* 受信ウィンドバッファキューのエントリ数 */ 376 353 #endif 377 354 … … 382 359 383 360 /* 384 * Time Wait ç¨ TCP é信端ç¹361 * Time Wait 用 TCP 通信端点 385 362 */ 386 363 387 364 typedef struct t_tcp_twcep { 388 int_t rbufsz; /* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº */ 389 T_TCP_TIME timer_2msl; /* 2MSL ã¿ã¤ã */ 390 T_IPEP dstaddr; /* ç¸æã®ã¢ãã¬ã¹ */ 391 T_IPEP myaddr; /* èªåã®ã¢ãã¬ã¹ */ 392 T_TCP_SEQ snd_una; /* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã */ 393 /* 確èªãããæ大éä¿¡ SEQ */ 394 T_TCP_SEQ rcv_nxt; /* åä¿¡ãæå¾ 395 ãã¦ããæå°ã® SEQ */ 396 uint16_t rwbuf_count; /* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸ãµã¤ãº */ 397 uint8_t fsm_state; /* FSM ç¶æ 398 */ 399 uint8_t flags; /* é信端ç¹ãã©ã° */ 365 int_t rbufsz; /* 受信用ウィンドバッファサイズ */ 366 T_TCP_TIME timer_2msl; /* 2MSL タイマ */ 367 T_IPEP dstaddr; /* 相手のアドレス */ 368 T_IPEP myaddr; /* 自分のアドレス */ 369 T_TCP_SEQ snd_una; /* 未確認の最小送信 SEQ つまり */ 370 /* 確認された最大送信 SEQ */ 371 T_TCP_SEQ rcv_nxt; /* 受信を期待している最小の SEQ */ 372 uint16_t rwbuf_count; /* 受信ウィンドバッファの使用中サイズ */ 373 uint8_t fsm_state; /* FSM 状態 */ 374 uint8_t flags; /* 通信端点フラグ */ 400 375 401 376 } T_TCP_TWCEP; … … 404 379 405 380 /* 406 * TCP é信端ç¹ã®ç¶æ 407 ãã©ã° 408 */ 409 410 #define TCP_CEP_FLG_IPV4 ULONG_C(0x00000001) /* IPv4 ç¨ã */ 411 #define TCP_CEP_FLG_ACK_NOW ULONG_C(0x00000100) /* ç´ã¡ã«ç¸æã« ACK ãéãã */ 412 #define TCP_CEP_FLG_DEL_ACK ULONG_C(0x00000200) /* ACK ãé 413 延ããã */ 414 #define TCP_CEP_FLG_SENT_FIN ULONG_C(0x00000400) /* FIN ãéã£ã¦ããã */ 415 #define TCP_CEP_FLG_NEED_SYN ULONG_C(0x00000800) /* SYN ãéä¿¡ããã */ 416 #define TCP_CEP_FLG_NEED_FIN ULONG_C(0x00001000) /* FIN ãéä¿¡ããã */ 417 #define TCP_CEP_FLG_FORCE ULONG_C(0x00002000) /* å¼·å¶éä¿¡ã */ 418 #define TCP_CEP_FLG_NO_PUSH ULONG_C(0x00004000) /* push ããªãã */ 419 #define TCP_CEP_FLG_NO_DELAY ULONG_C(0x00008000) /* é 420 延ããªãã */ 421 #define TCP_CEP_FLG_FORCE_CLEAR ULONG_C(0x00010000) /* å¼·å¶éä¿¡ããå¾ãã©ã°ãã¯ãªã¢ã¼ããã*/ 422 #define TCP_CEP_FLG_POST_OUTPUT ULONG_C(0x00020000) /* éä¿¡ãéå§ããã */ 423 #define TCP_CEP_FLG_RESERVE_OUTPUT ULONG_C(0x00040000) /* éä¿¡ãäºç´ããã */ 424 #define TCP_CEP_FLG_DYNAMIC ULONG_C(0x00100000) /* åççæã»åé¤å¯è½é信端ç¹ã */ 425 #define TCP_CEP_FLG_VALID ULONG_C(0x00200000) /* çææ¸ã¿ã§æå¹ãªé信端ç¹ã */ 426 #define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT ULONG_C(0x00400000) /* éä¿¡ããå¾ã³ãã¯ã·ã§ã³ãéããã*/ 427 #define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT ULONG_C(0x00800000) /* éä¿¡ããå¾ãsnd_nxt ãå 428 ã«æ»ãã*/ 429 430 /* éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ */ 431 #define TCP_CEP_FLG_WBCS_NBUF_REQ ULONG_C(0x80000000) /* ãããã¯ã¼ã¯ãããã¡å²å½ã¦è¦æ±*/ 432 #define TCP_CEP_FLG_WBCS_MASK ULONG_C(0x70000000) /* ãã¹ã¯ */ 433 #define TCP_CEP_FLG_WBCS_FREE ULONG_C(0x00000000) /* éä¿¡ã¦ã£ã³ããããã¡æªä½¿ç¨ */ 434 #define TCP_CEP_FLG_WBCS_WOPEN_PEND ULONG_C(0x10000000) /* ç¸æã®åä¿¡ã¦ã£ã³ãã®éãå¾ 435 ã¡ */ 436 #define TCP_CEP_FLG_WBCS_NBUF_PEND ULONG_C(0x20000000) /* ãããã¯ã¼ã¯ãããã¡äºç´å¾ 437 ã¡ */ 438 #define TCP_CEP_FLG_WBCS_NBUF_RSVD ULONG_C(0x30000000) /* ãããã¯ã¼ã¯ãããã¡äºç´æ¸ã¿ */ 439 #define TCP_CEP_FLG_WBCS_NBUF_READY ULONG_C(0x40000000) /* ãããã¯ã¼ã¯ãããã¡å²å½ã¦æ¸ã¿*/ 440 #define TCP_CEP_FLG_WBCS_SEND_READY ULONG_C(0x50000000) /* éä¿¡å¯è½ */ 441 #define TCP_CEP_FLG_WBCS_SENT ULONG_C(0x60000000) /* éä¿¡æ¸ã¿ã§ãACKå¾ 442 ã¡ */ 443 #define TCP_CEP_FLG_WBCS_ACKED ULONG_C(0x70000000) /* éä¿¡æ¸ã¿ã§ãACKå®äº */ 444 445 /* åæåããé¤å¤ãããã©ã°ã®å®ç¾© */ 381 * TCP 通信端点の状態フラグ 382 */ 383 384 #define TCP_CEP_FLG_IPV4 ULONG_C(0x00000001) /* IPv4 用。 */ 385 #define TCP_CEP_FLG_ACK_NOW ULONG_C(0x00000100) /* 直ちに相手に ACK を送る。 */ 386 #define TCP_CEP_FLG_DEL_ACK ULONG_C(0x00000200) /* ACK を遅延する。 */ 387 #define TCP_CEP_FLG_SENT_FIN ULONG_C(0x00000400) /* FIN を送ってある。 */ 388 #define TCP_CEP_FLG_NEED_SYN ULONG_C(0x00000800) /* SYN を送信する。 */ 389 #define TCP_CEP_FLG_NEED_FIN ULONG_C(0x00001000) /* FIN を送信する。 */ 390 #define TCP_CEP_FLG_FORCE ULONG_C(0x00002000) /* 強制送信。 */ 391 #define TCP_CEP_FLG_NO_PUSH ULONG_C(0x00004000) /* push しない。 */ 392 #define TCP_CEP_FLG_NO_DELAY ULONG_C(0x00008000) /* 遅延しない。 */ 393 #define TCP_CEP_FLG_FORCE_CLEAR ULONG_C(0x00010000) /* 強制送信した後フラグをクリアーする。*/ 394 #define TCP_CEP_FLG_POST_OUTPUT ULONG_C(0x00020000) /* 送信を開始する。 */ 395 #define TCP_CEP_FLG_RESERVE_OUTPUT ULONG_C(0x00040000) /* 送信を予約する。 */ 396 #define TCP_CEP_FLG_DYNAMIC ULONG_C(0x00100000) /* 動的生成・削除可能通信端点。 */ 397 #define TCP_CEP_FLG_VALID ULONG_C(0x00200000) /* 生成済みで有効な通信端点。 */ 398 #define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT ULONG_C(0x00400000) /* 送信した後コネクションを閉じる。*/ 399 #define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT ULONG_C(0x00800000) /* 送信した後、snd_nxt を元に戻す。*/ 400 401 /* 送受信ウィンドバッファの省コピー機能 */ 402 #define TCP_CEP_FLG_WBCS_NBUF_REQ ULONG_C(0x80000000) /* ネットワークバッファ割当て要求*/ 403 #define TCP_CEP_FLG_WBCS_MASK ULONG_C(0x70000000) /* マスク */ 404 #define TCP_CEP_FLG_WBCS_FREE ULONG_C(0x00000000) /* 送信ウィンドバッファ未使用 */ 405 #define TCP_CEP_FLG_WBCS_WOPEN_PEND ULONG_C(0x10000000) /* 相手の受信ウィンドの開き待ち */ 406 #define TCP_CEP_FLG_WBCS_NBUF_PEND ULONG_C(0x20000000) /* ネットワークバッファ予約待ち */ 407 #define TCP_CEP_FLG_WBCS_NBUF_RSVD ULONG_C(0x30000000) /* ネットワークバッファ予約済み */ 408 #define TCP_CEP_FLG_WBCS_NBUF_READY ULONG_C(0x40000000) /* ネットワークバッファ割当て済み*/ 409 #define TCP_CEP_FLG_WBCS_SEND_READY ULONG_C(0x50000000) /* 送信可能 */ 410 #define TCP_CEP_FLG_WBCS_SENT ULONG_C(0x60000000) /* 送信済みで、ACK待ち */ 411 #define TCP_CEP_FLG_WBCS_ACKED ULONG_C(0x70000000) /* 送信済みで、ACK完了 */ 412 413 /* 初期化から除外するフラグの定義 */ 446 414 #define TCP_CEP_FLG_NOT_CLEAR (TCP_CEP_FLG_WBCS_NBUF_REQ|TCP_CEP_FLG_WBCS_MASK|\ 447 415 TCP_CEP_FLG_DYNAMIC|TCP_CEP_FLG_VALID|TCP_CEP_FLG_IPV4) 448 416 449 417 /* 450 * é信端ç¹ã¤ãã³ããã©ã° 451 */ 452 453 #define TCP_CEP_EVT_ESTABLISHED ULONG_C(0x00000001) /* ã³ãã¯ã·ã§ã³ç¢ºç« */ 454 #define TCP_CEP_EVT_CLOSED ULONG_C(0x00000002) /* æªä½¿ç¨ç¶æ 455 */ 456 #define TCP_CEP_EVT_SWBUF_READY ULONG_C(0x00000004) /* éä¿¡ã¦ã£ã³ããããã¡ç©ºã */ 457 #define TCP_CEP_EVT_RWBUF_READY ULONG_C(0x00000008) /* éä¿¡ã¦ã£ã³ããããã¡ãã¼ã¿ãã*/ 458 #define TCP_CEP_EVT_ALL ULONG_C(0xffffffff) /* å 459 ¨ã¤ãã³ã */ 460 461 /* 462 * 追å API æ©è½ã»äºè±¡ã³ã¼ã 463 */ 464 465 /* TCP é¢ä¿ */ 418 * 通信端点イベントフラグ 419 */ 420 421 #define TCP_CEP_EVT_ESTABLISHED ULONG_C(0x00000001) /* コネクション確立 */ 422 #define TCP_CEP_EVT_CLOSED ULONG_C(0x00000002) /* 未使用状態 */ 423 #define TCP_CEP_EVT_SWBUF_READY ULONG_C(0x00000004) /* 送信ウィンドバッファ空き */ 424 #define TCP_CEP_EVT_RWBUF_READY ULONG_C(0x00000008) /* 送信ウィンドバッファデータあり*/ 425 #define TCP_CEP_EVT_ALL ULONG_C(0xffffffff) /* 全イベント */ 426 427 /* 428 * 追加 API 機能・事象コード 429 */ 430 431 /* TCP 関係 */ 466 432 467 433 #define TFN_TCP_UNDEF (0) 468 434 469 435 /* 470 * srtt: å¹³æ»åãããRTT471 * rttvar: å¹³æ»åãããåæ£472 * rtt: 測å®ãããå¾å¾©æé436 * srtt: 平滑化された RTT 437 * rttvar: 平滑化された分散 438 * rtt: 測定された往復時間 473 439 * 474 * å¹³æ»åããã RTT (srtt) ã¨å¹³æ»åãããåæ£ (rttvar) ã475 * æ´æ°åã§è¨ç®ããããã«ãå·¦ã·ãããã¦ã¹ã±ã¼ã«ããã476 * srtt 㯠2 é²å°æ°ç¹ä»¥ä¸ 3 ãããã477 * rttvar 㯠2 é²å°æ°ç¹ä»¥ä¸ 2 ããããä¿æããã440 * 平滑化された RTT (srtt) と平滑化された分散 (rttvar) を 441 * 整数型で計算するために、左シフトしてスケールする。 442 * srtt は 2 進小数点以下 3 ビット、 443 * rttvar は 2 進小数点以下 2 ビットを保持する。 478 444 */ 479 445 480 446 #define TCP_DELTA_SHIFT 2 481 /* å·®å = rtt/8 + srtt*7/8 ã®è¨ç®ã®ããã®ã·ããå¤*/447 /* 差分 = rtt/8 + srtt*7/8 の計算のためのシフト値 */ 482 448 #define TCP_SRTT_SHIFT (TCP_DELTA_SHIFT + 3) 483 /* srtt ã®ã·ããå¤ã3(+2)ããã*/449 /* srtt のシフト値、3(+2)ビット */ 484 450 #define TCP_RTTVAR_SHIFT (TCP_DELTA_SHIFT + 2) 485 /* rttvar ã®ã·ããå¤ã2(+2)ããã*/451 /* rttvar のシフト値、2(+2)ビット */ 486 452 #define TCP_SRTT_SCALE (1<<TCP_SRTT_SHIFT) 487 453 #define TCP_RTTVAR_SCALE (1<<TCP_RTTVAR_SHIFT) 488 454 489 455 /* 490 * é«éå転éãéå§ããåé ACK æ°ã®ãããå¤456 * 高速再転送を開始する再送 ACK 数のしきい値 491 457 */ 492 458 … … 494 460 495 461 /* 496 * åä¿¡åæ§æãã¥ã¼ã§ã® TCP ããã462 * 受信再構成キューでの TCP ヘッダ 497 463 */ 498 464 499 465 typedef struct t_tcp_q_hdr { 500 uint16_t sport; /* éä¿¡å 501 ãã¼ãçªå· */ 502 uint16_t dport; /* å®å 503 ãã¼ãçªå· */ 504 505 uint32_t seq; /* SEQ çªå· */ 506 507 T_NET_BUF *next; /* 次ã®ã»ã°ã¡ã³ããå 508 㯠ACK çªå·(ack) */ 509 510 uint8_t doff; /* ãã¼ã¿ãªãã»ãã(ä¸ä½4ããã) */ 511 uint8_t flags; /* ãã©ã°(ä¸ä½6ããã) */ 512 uint16_t soff; /* SDU ãªãã»ãããå 513 ã¯ã¦ã£ã³ããµã¤ãº(win) */ 514 515 uint16_t slen; /* SDU é·ãå 516 ã¯ãã§ãã¯ãµã (sum) */ 517 uint16_t urp; /* ç·æ¥ãã¤ã³ã¿ï¼SDU é·è£æ£ï¼ */ 466 uint16_t sport; /* 送信元ポート番号 */ 467 uint16_t dport; /* 宛先ポート番号 */ 468 469 uint32_t seq; /* SEQ 番号 */ 470 471 T_NET_BUF *next; /* 次のセグメント、元は ACK 番号(ack) */ 472 473 uint8_t doff; /* データオフセット(上位4ビット) */ 474 uint8_t flags; /* フラグ(下位6ビット) */ 475 uint16_t soff; /* SDU オフセット、元はウィンドサイズ(win) */ 476 477 uint16_t slen; /* SDU 長、元はチェックサム(sum) */ 478 uint16_t urp; /* 緊急ポインタ(SDU 長補正) */ 518 479 } __attribute__((packed, aligned(2)))T_TCP_Q_HDR; 519 480 … … 521 482 522 483 /* 523 * ãªãã¸ã§ã¯ã ID ã®æå°å¤ã®å®ç¾©524 */ 525 526 #define TMIN_TCP_REPID 1 /* TCP åä»å£ ID ã®æå°å¤*/527 #define TMIN_TCP6_REPID 1 /* TCP/IPv6 åä»å£ ID ã®æå°å¤*/528 #define TMIN_TCP4_REPID (TNUM_TCP6_REPID+1) /* TCP/IPv4 åä»å£ ID ã®æå°å¤*/529 530 #define TMIN_TCP_CEPID 1 /* TCP éä¿¡ç«¯ç¹ ID ã®æå°å¤*/531 #define TMIN_TCP6_CEPID 1 /* TCP/IPv6 éä¿¡ç«¯ç¹ ID ã®æå°å¤*/532 #define TMIN_TCP4_CEPID (TNUM_TCP6_CEPID+1) /* TCP/IPv4 éä¿¡ç«¯ç¹ ID ã®æå°å¤*/533 534 #define TMIN_TCP_TWCEPID 1 /* Time Wait ç¨ TCP éä¿¡ç«¯ç¹ ID ã®æå°å¤*/535 536 /* 537 * å¶å¾¡ã»ã°ã¡ã³ãï¼ãã¼ã¿ãªãï¼ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡484 * オブジェクト ID の最小値の定義 485 */ 486 487 #define TMIN_TCP_REPID 1 /* TCP 受付口 ID の最小値 */ 488 #define TMIN_TCP6_REPID 1 /* TCP/IPv6 受付口 ID の最小値 */ 489 #define TMIN_TCP4_REPID (TNUM_TCP6_REPID+1) /* TCP/IPv4 受付口 ID の最小値 */ 490 491 #define TMIN_TCP_CEPID 1 /* TCP 通信端点 ID の最小値 */ 492 #define TMIN_TCP6_CEPID 1 /* TCP/IPv6 通信端点 ID の最小値 */ 493 #define TMIN_TCP4_CEPID (TNUM_TCP6_CEPID+1) /* TCP/IPv4 通信端点 ID の最小値 */ 494 495 #define TMIN_TCP_TWCEPID 1 /* Time Wait 用 TCP 通信端点 ID の最小値 */ 496 497 /* 498 * 制御セグメント(データなし)サイズのネットワークバッファ 538 499 */ 539 500 … … 541 502 542 503 typedef struct t_net_buf_cseg { 543 uint16_t len; /* ãã¼ã¿ã®é·ã*/544 uint8_t idix; /* mpfid ã®ã¤ã³ããã¯ã¹*/545 uint8_t flags; /* ãã©ã°*/504 uint16_t len; /* データの長さ */ 505 uint8_t idix; /* mpfid のインデックス */ 506 uint8_t flags; /* フラグ */ 546 507 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN 547 508 uint8_t nalign[IF_ETHER_NIC_NET_BUF_ALIGN]; … … 551 512 #endif 552 513 uint8_t buf[IF_HDR_SIZE + IP_HDR_SIZE + TCP_HDR_SIZE]; 553 /* ãããã¡æ¬ä½*/514 /* バッファ本体 */ 554 515 } T_NET_BUF_CSEG; 555 516 … … 557 518 558 519 /* 559 * SNMP 㮠管çæ 560 å ±ãã¼ã¹ (MIB) 520 * SNMP の 管理情報ベース (MIB) 561 521 */ 562 522 … … 575 535 576 536 /* 577 * é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã578 */ 579 580 /* TCP åä»å£*/537 * 関数シミュレーションマクロ 538 */ 539 540 /* TCP 受付口 */ 581 541 582 542 #define VALID_TCP6_REPID(id) (TMIN_TCP6_REPID<=(id)&&(id)<=tmax_tcp6_repid) … … 604 564 #endif /* of #ifdef TCP_CFG_EXTENTIONS */ 605 565 606 /* TCP é信端ç¹*/566 /* TCP 通信端点 */ 607 567 608 568 #define VALID_TCP_CEPID(id) (TMIN_TCP_CEPID<=(id)&&(id)<=tmax_tcp_cepid) … … 634 594 635 595 /* 636 * å 637 ¨åå¤æ° 596 * 全域変数 638 597 */ 639 598 … … 642 601 extern T_TCP_STATS tcp_stats; 643 602 644 /* TCP åä»å£*/603 /* TCP 受付口 */ 645 604 646 605 extern T_TCP6_REP tcp6_rep[]; … … 663 622 #endif 664 623 665 /* TCP é信端ç¹*/624 /* TCP 通信端点 */ 666 625 667 626 extern T_TCP_CEP tcp_cep[]; … … 679 638 680 639 /* 681 * Inline é¢æ°640 * Inline 関数 682 641 */ 683 642 … … 685 644 686 645 /* 687 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã688 * ç¡å¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°689 */ 690 691 /* 692 * tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã解æ¾ããã646 * TCP 通信端点の受信ウィンドバッファの省コピー機能が 647 * 無効の場合は何もしないためのダミーの関数 648 */ 649 650 /* 651 * tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。 693 652 */ 694 653 … … 703 662 704 663 /* 705 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿ã706 * æå¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°707 */ 708 709 /* 710 * tcp_read_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèªã¿åºãã664 * TCP 通信端点の送信ウィンドバッファの省コピー機能のみが 665 * 有効の場合は何もしないためのダミーの関数 666 */ 667 668 /* 669 * tcp_read_swbuf_cs -- 送信ウィンドバッファからデータを読み出す。 711 670 */ 712 671 … … 721 680 722 681 /* 723 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã724 * ç¡å¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°725 */ 726 727 /* 728 * tcp_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡ãã¥ã¼ã解æ¾ããã682 * TCP 通信端点の送信ウィンドバッファの省コピー機能が 683 * 無効の場合は何もしないためのダミーの関数 684 */ 685 686 /* 687 * tcp_free_swbufq -- 送信ウィンドバッファキューを解放する。 729 688 */ 730 689 … … 735 694 736 695 /* 737 * tcp_alloc_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæ示ããã696 * tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。 738 697 */ 739 698 … … 744 703 745 704 /* 746 * tcp_push_res_nbuf -- ãããã¯ã¼ã¯ãããã¡ãäºç´ããã705 * tcp_push_res_nbuf -- ネットワークバッファを予約する。 747 706 */ 748 707 … … 754 713 755 714 /* 756 * tcp_pull_res_nbuf -- äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡è¿ãã715 * tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す。 757 716 */ 758 717 … … 766 725 767 726 /* 768 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®åãæ¿ããã¯ã727 * TCP 通信端点の受信ウィンドバッファの省コピー機能の切り替えマクロ 769 728 */ 770 729 … … 800 759 801 760 /* 802 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®åãæ¿ããã¯ã761 * TCP 通信端点の送信ウィンドバッファの省コピー機能の切り替えマクロ 803 762 */ 804 763 … … 851 810 852 811 /* 853 * é¢æ°812 * 関数 854 813 */ 855 814 … … 886 845 887 846 /* 888 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ç¨é¢æ°889 */ 890 891 /* 892 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã893 * é¢æ°ã®é¸æã«ä½¿ç¨ããã847 * TCP 通信端点の受信ウィンドバッファ用関数 848 */ 849 850 /* 851 * TCP 通信端点の受信ウィンドバッファの省コピー機能が有効の場合、 852 * 関数の選択に使用する。 894 853 */ 895 854 … … 901 860 902 861 /* 903 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ç¨é¢æ°862 * TCP 通信端点の受信ウィンドバッファの省コピー機能用関数 904 863 */ 905 864 … … 911 870 912 871 /* 913 * TCP é信端ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®ãéãçã³ãã¼æ©è½ç¨é¢æ°872 * TCP 通信端点の受信ウィンドバッファの【非】省コピー機能用関数 914 873 */ 915 874 … … 921 880 922 881 /* 923 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ç¨é¢æ°924 */ 925 926 /* 927 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã928 * é¢æ°ã®é¸æã«ä½¿ç¨ããã882 * TCP 通信端点の送信ウィンドバッファ用関数 883 */ 884 885 /* 886 * TCP 通信端点の送信ウィンドバッファの省コピー機能が有効の場合、 887 * 関数の選択に使用する。 929 888 */ 930 889 … … 943 902 944 903 /* 945 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ç¨é¢æ°904 * TCP 通信端点の送信ウィンドバッファの省コピー機能用関数 946 905 */ 947 906 … … 957 916 958 917 /* 959 * TCP é信端ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®ãéãçã³ãã¼æ©è½ç¨é¢æ°918 * TCP 通信端点の送信ウィンドバッファの【非】省コピー機能用関数 960 919 */ 961 920 … … 973 932 974 933 /* 975 * TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ç¨é¢æ°934 * TCP ヘッダのトレース出力機能用関数 976 935 */ 977 936 extern void tcp_output_trace (T_NET_BUF *output, T_TCP_CEP *cep); 978 937 extern void tcp_input_trace (T_NET_BUF *input, T_TCP_CEP *cep); 979 938 980 /* TCP åºåã¿ã¹ã¯*/939 /* TCP 出力タスク */ 981 940 982 941 extern void tcp_output_task(intptr_t exinf);
Note:
See TracChangeset
for help on using the changeset viewer.