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

文字コードを設定

Location:
EcnlProtoTool/trunk/asp3_dcre/tinet
Files:
182 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.config

    • Property svn:mime-type changed from text/plain to text/x-makefile;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
    43 #   @(#) $Id: Makefile.config 497 2014-06-26 01:50:14Z coas-nagasima $
     31#   @(#) $Id$
    4432#
    4533
    4634#
    47 ã€Œã‚½ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®å®šç¾©ã€ã®å¾Œã«è¿½åŠ ã™ã‚‹ã€‚
     35「ソースファイルのディレクトリの定義」の後に追加する。
    4836#
    4937
    5038#
    51 #  TINET ソースファイルのディレクトリの定義
     39#  TINET ソースファイルのディレクトリの定義
    5240#
    5341TINET_ROOT = $(SRCDIR)/tinet
    5442
    5543#
    56 #  TINET 1.1 との互換性のための定義
     44#  TINET 1.1 との互換性のための定義
    5745#
    5846ifndef SUPPORT_INET4
     
    6351
    6452#
    65 ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚µãƒ¼ãƒ“スに関する定義
     53ネットワークサービスに関する定義
    6654#
    6755TINET_DIR = $(TINET_ROOT)/net:$(TINET_ROOT)/netinet
     
    117105ifeq ($(NET_IF),ether)
    118106
    119         #  ターゲット依存の定義のインクルード
     107        #  ターゲット依存の定義のインクルード
    120108
    121109        ifdef TOOL
     
    166154
    167155#
    168 #  å
    169 ±é€šã‚³ãƒ³ãƒ‘イルオプションの定義への追加
     156#  共通コンパイルオプションの定義への追加
    170157#
    171158CDEFS := $(CDEFS) $(TINET_CDEFS)
     
    173160
    174161#
    175 ã‚¢ãƒ—リケーションプログラムに関する定義への追加
     162アプリケーションプログラムに関する定義への追加
    176163#
    177164TINET_UTASK_CFG = tinet_$(UNAME).cfg
    178165
    179166#
    180 ã‚·ã‚¹ãƒ†ãƒ ã‚µãƒ¼ãƒ“スに関する定義への追加
     167システムサービスに関する定義への追加
    181168#
    182169STASK_DIR := $(STASK_DIR):$(TINET_DIR)
     
    185172
    186173#
    187 #  TINET コンフィギュレーションファイルの生成
     174#  TINET コンフィギュレーションファイルの生成
    188175#
    189176tinet:
  • EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.tinet

    • Property svn:mime-type changed from text/x-makefile to text/x-makefile;charset=UTF-8
    r270 r321  
    66#   Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, JAPAN
    77#
    8 #   ä¸Šè¨˜è‘—作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã® (1)~(4) の条件か,Free Software Foundation
    10 #   ã«ã‚ˆã£ã¦å
    11 ¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
    12 #   è¿°ã•ã‚Œã¦ã„る条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
    13 #   ã‚’改変したものを含む.以下同じ)を使用・複製・改変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
    15 #   åˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    16 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    18 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    19 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23 #       è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    26 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27 #       ç”¨ã§ããªã„形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®æ¡ä»¶ã‚’満たすこと.
    29 #     (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    33 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    34 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    35 ãŠã‚ˆã³TOPPERSプロジェクトをå
    36 è²¬ã™ã‚‹ã“と.
     8#   上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
     9#   によって公表されている GNU General Public License の Version 2 に記
     10#   述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     11#   を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     12#   利用と呼ぶ)することを無償で許諾する.
     13#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15#       スコード中に含まれていること.
     16#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19#       の無保証規定を掲載すること.
     20#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21#       用できない形で再配布する場合には,次の条件を満たすこと.
     22#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     24#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3726#
    38 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    39 ãŠ
    40 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    41 #   å«ã‚ã¦ï¼Œã„かなる保証も行わない.また,本ソフトウェアの利用により直
    42 #   æŽ¥çš„または間接的に生じたいかなる損害に関しても,その責任を負わない.
     27#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     28#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     29#   含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     30#   接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4331
    44 #   @(#) $Id: Makefile.tinet 497 2014-06-26 01:50:14Z coas-nagasima $
    45 #
    46 
    47 #
    48 ã€ŒãƒŸãƒ‰ãƒ«ã‚¦ã‚§ã‚¢ã® Makefile のインクルード」に追加する。
    49 #
    50 
    51 #
    52 ã‚«ãƒ¼ãƒãƒ«ã®è­˜åˆ¥
     32#   @(#) $Id$
     33#
     34
     35#
     36「ミドルウェアの Makefile のインクルード」に追加する。
     37#
     38
     39#
     40カーネルの識別
    5341#
    5442ifdef SRCLANG
     
    6149
    6250#
    63 #  TINET ソースファイルのディレクトリの定義
     51#  TINET ソースファイルのディレクトリの定義
    6452#
    6553TINET_ROOT = $(SRCDIR)/tinet
    6654
    6755#
    68 #  TINET 1.1 との互換性のための定義
     56#  TINET 1.1 との互換性のための定義
    6957#
    7058ifndef SUPPORT_INET4
     
    7563
    7664#
    77 ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚µãƒ¼ãƒ“スに関する定義
     65ネットワークサービスに関する定義
    7866#
    7967TINET_DIR = $(TINET_ROOT)/net:$(TINET_ROOT)/netinet
     
    131119endif
    132120
    133 ã‚¿ãƒ¼ã‚²ãƒƒãƒˆä¾å­˜ã®å®šç¾©ã®ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰
     121ターゲット依存の定義のインクルード
    134122
    135123ifeq ($(TARGET_KERNEL),ASP)
     
    199187
    200188#
    201 #  TINET ライブラリの定義
     189#  TINET ライブラリの定義
    202190#
    203191
     
    245233
    246234#
    247 ãƒ©ã‚¤ãƒ–ラリ化するソースファイルから生成される
    248 ã‚ªãƒ–ジェクトファイルの定義
     235ライブラリ化するソースファイルから生成される
     236オブジェクトファイルの定義
    249237#
    250238TINET_LCOBJS = $(foreach file,$(TINET_LCSRCS),$($(file:.c=)))
     
    266254
    267255#
    268 ãƒ©ã‚¤ãƒ–ラリ化するソースファイルから生成される
    269 ã‚ªãƒ–ジェクトファイルの依存関係の定義
     256ライブラリ化するソースファイルから生成される
     257オブジェクトファイルの依存関係の定義
    270258#
    271259$(tcp_usrreq) $(tcp_usrreq:.o=.s) $(tcp_usrreq:.o=.d): tcp_usrreq.c
     
    273261
    274262#
    275 #  TINET ライブラリの定義
     263#  TINET ライブラリの定義
    276264#
    277265TINET_LIB_OBJS = $(TINET_LCOBJS)
    278266
    279267#
    280 #  TINET コンフィギュレーションファイルの定義
     268#  TINET コンフィギュレーションファイルの定義
    281269#
    282270
     
    301289
    302290#
    303 #  å
    304 ±é€šã‚³ãƒ³ãƒ‘イルオプションの定義への追加
     291#  共通コンパイルオプションの定義への追加
    305292#
    306293CDEFS := $(CDEFS) $(TINET_CDEFS)
     
    308295
    309296#
    310 #  TINET コンパイルオプションの定義への追加
     297#  TINET コンパイルオプションの定義への追加
    311298#
    312299TINET_CFLAGS := $(TINET_CFLAGS) -fno-strict-aliasing
    313300
    314301#
    315 ã‚·ã‚¹ãƒ†ãƒ ã‚µãƒ¼ãƒ“ス、ミドルウェアに関する定義
     302システムサービス、ミドルウェアに関する定義
    316303#
    317304
     
    348335
    349336#
    350 #  TINET ライブラリファイルの生成
     337#  TINET ライブラリファイルの生成
    351338#
    352339libtinet.a: $(TINET_LIB_OBJS)
     
    356343
    357344#
    358 ã‚³ãƒ³ãƒ‘イルルールの定義
     345コンパイルルールの定義
    359346#
    360347
     
    377364
    378365#
    379 ã‚³ãƒ³ãƒ‘イル結果の消去
     366コンパイル結果の消去
    380367#
    381368cleantinet:
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ether_var.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    5038
    5139/*
    52  *  Ethernet 処理タスク
     40 *  Ethernet 処理タスク
    5341 */
    5442
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.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$
     
    4533
    4634/*
    47  *  Ethernet 処理タスクの本体
     35 *  Ethernet 処理タスクの本体
    4836 */
    4937
     
    9280
    9381/*
    94  *  変数
     82 *  変数
    9583 */
    9684
     
    10593
    10694/*
    107  *  変数
    108  */
    109 
    110 /* ネットワークインタフェース構造体 */
     95 *  変数
     96 */
     97
     98/* ネットワークインタフェース構造体 */
    11199
    112100#if defined(SUPPORT_INET4)
    113101
    114102static T_IFNET ether_ifnet = {
    115         NULL,                   /* ネットワークインタフェースのソフトウェアæƒ
    116 å ±     */
     103        NULL,                   /* ネットワークインタフェースのソフトウェア情報       */
    117104        {
    118                 IPV4_ADDR_LOCAL,        /* IPv4 アドレス            */
    119                 IPV4_ADDR_LOCAL_MASK,   /* サブネットマスク             */
     105                IPV4_ADDR_LOCAL,        /* IPv4 アドレス            */
     106                IPV4_ADDR_LOCAL_MASK,   /* サブネットマスク             */
    120107                },
    121108        };
     
    126113
    127114static T_IFNET ether_ifnet = {
    128         NULL,                   /* ネットワークインタフェースのソフトウェアæƒ
    129 å ±     */
    130         {0},                    /* IPv6 アドレスæƒ
    131 å ±                             */
    132         {0},                    /* マルチキャスト IPv6 アドレス                      */
    133         0,                              /* フラグ                                    */
     115        NULL,                   /* ネットワークインタフェースのソフトウェア情報       */
     116        {0},                    /* IPv6 アドレス情報                          */
     117        {0},                    /* マルチキャスト IPv6 アドレス                    */
     118        0,                              /* フラグ                                  */
    134119        };
    135120
     
    139124
    140125/*
    141  *  SNMP の 管理æƒ
    142 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     126 *  SNMP の 管理情報ベース (MIB)
    143127 */
    144128
     
    150134
    151135/*
    152  *  関数
     136 *  関数
    153137 */
    154138
     
    156140
    157141/*
    158  *  ieee_802_input -- IEEE 802.3 å
    159 ¥åŠ›å‡¦ç†
     142 *  ieee_802_input -- IEEE 802.3 入力処理
    160143 */
    161144
     
    175158
    176159/*
    177  *  ether_get_ifnet -- ネットワークインタフェース構造体を返す。
     160 *  ether_get_ifnet -- ネットワークインタフェース構造体を返す。
    178161 */
    179162
     
    187170
    188171/*
    189  *  ether_in6_resolve_multicast -- イーサネットのマルチキャストアドレスへの変換
     172 *  ether_in6_resolve_multicast -- イーサネットのマルチキャストアドレスへの変換
    190173 */
    191174
     
    193176ether_in6_resolve_multicast (T_ETHER_ADDR *ifaddr, T_IN6_ADDR *maddr)
    194177{
    195         /* マルチキャストアドレスかチェックする。*/
     178        /* マルチキャストアドレスかチェックする。*/
    196179        if (!IN6_IS_ADDR_MULTICAST(maddr))
    197180                return E_PAR;
    198181
    199         /* イーサネットのマルチキャストアドレスへの変換 */
     182        /* イーサネットのマルチキャストアドレスへの変換 */
    200183        ether_map_ipv6_multicast(ifaddr, maddr);
    201184
     
    249232
    250233/*
    251  *  ether_raw_output -- Ethernet インタフェースの出力関数、MAC アドレス解決無し
     234 *  ether_raw_output -- Ethernet インタフェースの出力関数、MAC アドレス解決無し
    252235 */
    253236
     
    257240        ER error = E_OK;
    258241
    259         /* Ethernet 出力キューに投å
    260 ¥ã™ã‚‹ã€‚*/
     242        /* Ethernet 出力キューに投入する。*/
    261243        if ((error = tsnd_dtq(DTQ_ETHER_OUTPUT, (intptr_t)output, tmout)) != E_OK) {
    262244                NET_COUNT_ETHER(net_count_ether.out_err_packets, 1);
    263245                NET_COUNT_MIB(if_stats.ifOutDiscards, 1);
    264246
    265                 /* IF でネットワークバッファを開放しないフラグをチェックする。*/
     247                /* IF でネットワークバッファを開放しないフラグをチェックする。*/
    266248                if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
    267249                        syscall(rel_net_buf(output));
     
    276258
    277259/*
    278  *  ether_output -- Ethernet インタフェースの出力関数、MAC アドレス解決有り
     260 *  ether_output -- Ethernet インタフェースの出力関数、MAC アドレス解決有り
    279261 */
    280262
     
    286268        T_ETHER_HDR *eth;
    287269
    288         /* 送信å
    289 ƒ MAC アドレスを設定する。*/
     270        /* 送信元 MAC アドレスを設定する。*/
    290271        ic = IF_ETHER_NIC_GET_SOFTC();
    291272        eth = GET_ETHER_HDR(output);
     
    298279        case ETHER_TYPE_IP:             /* IPv4 */
    299280#ifdef ETHER_CFG_MULTICAST
    300                 /* マルチキャストアドレスの場合 */
     281                /* マルチキャストアドレスの場合 */
    301282                if(IN4_IS_ADDR_MULTICAST(*(uint32_t*)dst)){
    302                         /* イーサネットのマルチキャストアドレスへの変換 */
     283                        /* イーサネットのマルチキャストアドレスへの変換 */
    303284                        ether_map_ipv4_multicast((T_ETHER_ADDR *)&eth->dhost, *(T_IN4_ADDR*)dst);
    304285                        error = ether_raw_output(output, tmout);
     
    306287                        }
    307288#endif
    308                 if (arp_resolve(&ic->ifaddr, output, *(uint32_t*)dst)) {        /* true ならアドレス解決済 */
     289                if (arp_resolve(&ic->ifaddr, output, *(uint32_t*)dst)) {        /* true ならアドレス解決済 */
    309290                        error = ether_raw_output(output, tmout);
    310291                        }
     
    321302                        error = ether_raw_output(output, tmout);
    322303
    323                 /* IF でネットワークバッファを開放しないフラグをチェックする。*/
     304                /* IF でネットワークバッファを開放しないフラグをチェックする。*/
    324305                else if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
    325306                        syscall(rel_net_buf(output));
     
    335316                NET_COUNT_MIB(if_stats.ifOutErrors, 1);
    336317
    337                 /* IF でネットワークバッファを開放しないフラグをチェックする。*/
     318                /* IF でネットワークバッファを開放しないフラグをチェックする。*/
    338319                if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
    339320                        syscall(rel_net_buf(output));
     
    352333
    353334/*
    354  *  Ethernet 出力タスク
     335 *  Ethernet 出力タスク
    355336 */
    356337
     
    406387
    407388/*
    408  *  Ethernet å
    409 ¥åŠ›ã‚¿ã‚¹ã‚¯
     389 *  Ethernet 入力タスク
    410390 */
    411391
     
    419399        uint16_t        proto;
    420400
    421         /* ネットワークインタフェース管理を初期化する。*/
     401        /* ネットワークインタフェース管理を初期化する。*/
    422402        ifinit();
    423403
    424         /* NIC を初期化する。*/
     404        /* NIC を初期化する。*/
    425405        ic = IF_ETHER_NIC_GET_SOFTC();
    426406        IF_ETHER_NIC_PROBE(ic);
    427407        IF_ETHER_NIC_INIT(ic);
    428408
    429         /* Ethernet 出力タスクを起動する */
     409        /* Ethernet 出力タスクを起動する */
    430410        syscall(act_tsk(ETHER_OUTPUT_TASK));
    431411
    432         /* ネットワークタイマタスクを起動する */
     412        /* ネットワークタイマタスクを起動する */
    433413        syscall(act_tsk(NET_TIMER_TASK));
    434414
     
    440420#if defined(SUPPORT_INET4)
    441421
    442         /* ARP を初期化する。*/
     422        /* ARP を初期化する。*/
    443423        arp_init();
    444424
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  Ethernet コンフィギュレーションファイル
     35 *  Ethernet コンフィギュレーションファイル
    4836 */
    4937
     
    5543CRE_DTQ(DTQ_ETHER_OUTPUT,  { TA_TFIFO, NUM_DTQ_ETHER_OUTPUT,  NULL });
    5644
    57 /* サポート関数 max2str 用セマフォ */
     45/* サポート関数 max2str 用セマフォ */
    5846
    5947CRE_SEM(SEM_MAC2STR_BUFF_LOCK,  { TA_TPRI, 1, 1 });
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    8876
    8977/*
    90  *  フィールド長
     78 *  フィールド長
    9179 */
    9280
     
    9684
    9785/*
    98  *  フレーム長 (Ethernet ヘッダと CRC を含む)
     86 *  フレーム長 (Ethernet ヘッダと CRC を含む)
    9987 */
    10088
     
    10391
    10492/*
    105  *  Ethernet ヘッダ
     93 *  Ethernet ヘッダ
    10694 */
    10795
     
    114102#if IF_ETHER_NIC_HDR_ALIGN != 0
    115103
    116         uint8_t         align[IF_ETHER_NIC_HDR_ALIGN];  /* アライン調整 */
     104        uint8_t         align[IF_ETHER_NIC_HDR_ALIGN];  /* アライン調整 */
    117105
    118106#endif  /* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */
     
    126114
    127115/*
    128  *  MAC アドレスの定義
    129  */
    130 
    131 #define ETHER_MCAST_ADDR        UINT_C(0x01)    /* マルチキャスト・アドレス */
    132 #define ETHER_LOCAL_ADDR        UINT_C(0x02)    /* ローカル・アドレス          */
     116 *  MAC アドレスの定義
     117 */
     118
     119#define ETHER_MCAST_ADDR        UINT_C(0x01)    /* マルチキャスト・アドレス */
     120#define ETHER_LOCAL_ADDR        UINT_C(0x02)    /* ローカル・アドレス            */
    133121
    134122typedef struct t_ether_addr {
     
    137125
    138126/*
    139  *  Type フィールド
     127 *  Type フィールド
    140128 */
    141129
     
    145133
    146134/*
    147  *  インタフェースの選択マクロ
    148  */
    149 
    150 #define T_IF_HDR                T_ETHER_HDR             /* インタフェースのヘッダ                            */
    151 #define T_IF_ADDR               T_ETHER_ADDR            /* インタフェースのアドレス                 */
    152 #define IF_HDR_ALIGN            2                       /* ヘッダのアライン単位                               */
    153 #define IF_MTU                  1500                    /* インタフェースの MTU                         */
    154 
    155 #define IF_OUTPUT(o,d,g,t)      ether_output(o,d,g,t)   /* インタフェースの出力関数                 */
    156 #define IF_RAW_OUTPUT(o,t)      ether_raw_output(o,t)   /* インタフェースの出力関数、アドレス解決無し      */
     135 *  インタフェースの選択マクロ
     136 */
     137
     138#define T_IF_HDR                T_ETHER_HDR             /* インタフェースのヘッダ                          */
     139#define T_IF_ADDR               T_ETHER_ADDR            /* インタフェースのアドレス                 */
     140#define IF_HDR_ALIGN            2                       /* ヘッダのアライン単位                           */
     141#define IF_MTU                  1500                    /* インタフェースの MTU                         */
     142
     143#define IF_OUTPUT(o,d,g,t)      ether_output(o,d,g,t)   /* インタフェースの出力関数                 */
     144#define IF_RAW_OUTPUT(o,t)      ether_raw_output(o,t)   /* インタフェースの出力関数、アドレス解決無し        */
    157145#define IF_SET_PROTO(b,p)       (GET_ETHER_HDR(b)->type = htons(p))
    158                                                         /* インタフェースのプロトコル設定関数          */
     146                                                        /* インタフェースのプロトコル設定関数            */
    159147#define IF_SOFTC_TO_IFADDR(s)   ((T_IF_ADDR*)(s)->ifaddr.lladdr)
    160                                                         /* ソフトウェアæƒ
    161 å ±ã‹ã‚‰ MAC アドレスを取り出す       */
    162 #define IF_GET_IFNET()          ether_get_ifnet()       /* ネットワークインタフェース構造体を返す。         */
    163 #define IF_TYPE                 IFT_ETHER               /* インターフェースの型                               */
    164 
    165 /* IPv4 関係 */
    166 
    167 #define IF_PROTO_IP             ETHER_TYPE_IP           /* インタフェースの IP プロトコル指定            */
    168 #define IF_PROTO_ARP            ETHER_TYPE_ARP          /* インタフェースの ARP プロトコル指定           */
    169 
    170 /* IPv6 関係 */
    171 
    172 #define MAX_IF_MADDR_CNT        2                       /* インタフェースのマルチキャストアドレスé
    173 åˆ—の最大サイズ  */
     148                                                        /* ソフトウェア情報から MAC アドレスを取り出す     */
     149#define IF_GET_IFNET()          ether_get_ifnet()       /* ネットワークインタフェース構造体を返す。         */
     150#define IF_TYPE                 IFT_ETHER               /* インターフェースの型                           */
     151
     152/* IPv4 関係 */
     153
     154#define IF_PROTO_IP             ETHER_TYPE_IP           /* インタフェースの IP プロトコル指定          */
     155#define IF_PROTO_ARP            ETHER_TYPE_ARP          /* インタフェースの ARP プロトコル指定         */
     156
     157/* IPv6 関係 */
     158
     159#define MAX_IF_MADDR_CNT        2                       /* インタフェースのマルチキャストアドレス配列の最大サイズ  */
    174160#define IF_MADDR_INIT           { { { 0, 0, 0, 0, 0, 0 } }, { { 0, 0, 0, 0, 0, 0 } } }
    175                                                         /* インタフェースのマルチキャストアドレスé
    176 åˆ—の初期化        */
    177 #define IF_PROTO_IPV6           ETHER_TYPE_IPV6         /* インタフェースの IP プロトコル指定                    */
     161                                                        /* インタフェースのマルチキャストアドレス配列の初期化    */
     162#define IF_PROTO_IPV6           ETHER_TYPE_IPV6         /* インタフェースの IP プロトコル指定                  */
    178163#define IF_ADDMULTI(s)          IF_ETHER_NIC_ADDMULTI(s)
    179                                                         /* マルチキャストアドレスの登録                           */
    180 #define IF_IN6_NEED_CACHE(i)    (true)                  /* 近隣探索キャッシュを使用する。                                */
     164                                                        /* マルチキャストアドレスの登録                               */
     165#define IF_IN6_NEED_CACHE(i)    (true)                  /* 近隣探索キャッシュを使用する。                              */
    181166#define IF_IN6_IFID(i,a)        IF_ETHER_NIC_IN6_IFID(i,a)
    182                                                         /* インタフェース識別子の設定                              */
     167                                                        /* インタフェース識別子の設定                                */
    183168#define IF_IN6_RESOLVE_MULTICAST(i,m)   \
    184169                                ether_in6_resolve_multicast(i,m)
    185                                                         /* インタフェースのマルチキャストアドレスへの変換                */
    186 
    187 /*
    188  *  前方参ç
    189 §
     170                                                        /* インタフェースのマルチキャストアドレスへの変換              */
     171
     172/*
     173 *  前方参照
    190174 */
    191175
     
    223207
    224208/*
    225  *  ネットワークインタフェースに依存しないソフトウェアæƒ
    226 å ±
     209 *  ネットワークインタフェースに依存しないソフトウェア情報
    227210 */
    228211
     
    230213
    231214struct t_if_softc {
    232         T_IF_ADDR               ifaddr;                 /* ネットワークインタフェースのアドレス       */
    233         uint16_t                timer;                  /* 送信タイムアウト                     */
    234         T_IF_ETHER_NIC_SOFTC    *sc;    /* ディバイス依存のソフトウェアæƒ
    235 å ±     */
    236         ID                      semid_txb_ready;        /* 送信セマフォ                           */
    237         ID                      semid_rxb_ready;        /* 受信セマフォ                           */
     215        T_IF_ADDR               ifaddr;                 /* ネットワークインタフェースのアドレス   */
     216        uint16_t                timer;                  /* 送信タイムアウト                     */
     217        T_IF_ETHER_NIC_SOFTC    *sc;    /* ディバイス依存のソフトウェア情報     */
     218        ID                      semid_txb_ready;        /* 送信セマフォ                               */
     219        ID                      semid_rxb_ready;        /* 受信セマフォ                               */
    238220
    239221#ifdef SUPPORT_INET6
    240222
    241         T_IF_ADDR       maddrs[MAX_IF_MADDR_CNT];       /* マルチキャストアドレスリスト   */
     223        T_IF_ADDR       maddrs[MAX_IF_MADDR_CNT];       /* マルチキャストアドレスリスト       */
    242224
    243225#endif  /* of #ifdef SUPPORT_INET6 */
     
    251233#ifdef SUPPORT_INET6
    252234
    253 /* 前方参ç
    254 § */
     235/* 前方参照 */
    255236
    256237#ifndef T_IN6_ADDR_DEFINED
     
    263244
    264245/*
    265  *  関数
     246 *  関数
    266247 */
    267248
     
    271252
    272253/*
    273  *  関数
     254 *  関数
    274255 */
    275256
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/fcstab.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/genfcstab.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if.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  *  関数
     101 *  関数
    114102 */
    115103
     
    117105
    118106/*
    119  *  if_slowtimo -- インタフェースのワッチドッグタイマ制御
     107 *  if_slowtimo -- インタフェースのワッチドッグタイマ制御
    120108 */
    121109
     
    136124
    137125/*
    138  *  ifinit -- インタフェース管理の初期化
     126 *  ifinit -- インタフェース管理の初期化
    139127 */
    140128
     
    148136
    149137/*
    150  *  if_addmulti -- マルチキャストアドレスの登録
     138 *  if_addmulti -- マルチキャストアドレスの登録
    151139 */
    152140
     
    163151                        return E_PAR;
    164152
    165                 /* IPv6 マルチキャストアドレスを登録する。*/
     153                /* IPv6 マルチキャストアドレスを登録する。*/
    166154                ifp->in_maddrs[ix] = *(T_IN6_ADDR*)maddr;
    167155
    168                 /* インタフェースのアドレスに変換し、登録する。*/
     156                /* インタフェースのアドレスに変換し、登録する。*/
    169157                error = IF_IN6_RESOLVE_MULTICAST(&llmaddr, (T_IN6_ADDR*)maddr);
    170158                if (error != E_OK)
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8472
    8573/*
    86  *  ネットワークインタフェース用タイマの定義
     74 *  ネットワークインタフェース用タイマの定義
    8775 */
    8876
    89 #define IF_TIMER_TMO            NET_TIMER_HZ    /* タイムアウト、1 [s]   */
    90 #define IF_TIMER_HZ             1               /* タイマの周波数、1 [s]        */
     77#define IF_TIMER_TMO            NET_TIMER_HZ    /* タイムアウト、1 [s] */
     78#define IF_TIMER_HZ             1               /* タイマの周波数、1 [s]        */
    9179
    9280/*
    93  *  ネットワークインタフェースのフラグ
     81 *  ネットワークインタフェースのフラグ
    9482 */
    9583
    96 #define IFF_UP                  UINT_C(0x0001)  /* 起動済み         */
    97 #define IFF_RUNNING             UINT_C(0x0002)  /* 動作中            */
     84#define IFF_UP                  UINT_C(0x0001)  /* 起動済み         */
     85#define IFF_RUNNING             UINT_C(0x0002)  /* 動作中          */
    9886
    9987/*
    100  *  汎用定義
     88 *  汎用定義
    10189 */
    10290
     
    10593
    10694/*
    107  *  関数
     95 *  関数
    10896 */
    10997
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if6_var.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8371
    8472/*
    85  *  ネットワークインタフェース構造体
     73 *  ネットワークインタフェース構造体
    8674 */
    8775
    8876struct t_ifnet {
    89         T_IF_SOFTC      *ic;            /* ネットワークインタフェースのソフトウェアæƒ
    90 å ±     */
     77        T_IF_SOFTC      *ic;            /* ネットワークインタフェースのソフトウェア情報       */
    9178        T_IN6_IFADDR    in_ifaddrs[NUM_IN6_IFADDR_ENTRY];
    92                                         /* IPv6 アドレスæƒ
    93 å ±                             */
     79                                        /* IPv6 アドレス情報                          */
    9480        T_IN6_ADDR      in_maddrs [MAX_IN6_MADDR_CNT];
    95                                         /* マルチキャスト IPv6 アドレス                      */
    96         uint8_t         flags;          /* フラグ                                    */
     81                                        /* マルチキャスト IPv6 アドレス                    */
     82        uint8_t         flags;          /* フラグ                                  */
    9783        };
    9884
     
    10692
    10793/*
    108  *  関数シミュレーションマクロ
     94 *  関数シミュレーションマクロ
    10995 */
    11096
     
    11298
    11399/*
    114  *  関数
     100 *  関数
    115101 */
    116102
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_arp.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8876 *  Address Resolution Protocol.
    8977 *
    90  *  RFC 826 参ç
    91 §
     78 *  RFC 826 参照
    9279 */
    9380
    9481/*
    95  *  構造体
     82 *  構造体
    9683 */
    9784
    98 /* ARP ヘッダ */
     85/* ARP ヘッダ */
    9986
    10087typedef struct t_arp_hdr {
    101         uint16_t        hrd_addr;       /* 物理アドレスフォーマット */
    102         uint16_t        proto;          /* プロトコル                      */
    103         uint8_t         hdr_len;        /* 物理アドレス長                */
    104         uint8_t         proto_len;      /* プロトコル長                   */
    105         uint16_t        opcode;         /* 命令コード                      */
     88        uint16_t        hrd_addr;       /* 物理アドレスフォーマット */
     89        uint16_t        proto;          /* プロトコル                        */
     90        uint8_t         hdr_len;        /* 物理アドレス長              */
     91        uint8_t         proto_len;      /* プロトコル長                       */
     92        uint16_t        opcode;         /* 命令コード                        */
    10693        } __attribute__((packed, aligned(2)))T_ARP_HDR;
    10794
     
    113100#define GET_IF_ARP_HDR_SIZE(nbuf)       (IF_HDR_SIZE + ARP_HDR_SIZE)
    114101
    115 /* hrd_addr、物理アドレスフォーマットの値 */
     102/* hrd_addr、物理アドレスフォーマットの値 */
    116103
    117104#define ARPHRD_ETHER    1       /* Ethernet     */
    118105
    119 /* opcode, 命令コードの値 */
     106/* opcode, 命令コードの値 */
    120107
    121 #define ARPOP_REQUEST           UINT_C(1)       /* アドレス解決要求             */
    122 #define ARPOP_REPLY             UINT_C(2)       /* アドレス解決応答             */
    123 #define ARPOP_REV_REQUEST       UINT_C(3)       /* プロトコル・アドレス解決要求   */
    124 #define ARPOP_REV_REPLY         UINT_C(4)       /* プロトコル・アドレス解決要求   */
    125 #define ARPOP_INV_REQUEST       UINT_C(8)       /* 終端識別要求                   */
    126 #define ARPOP_INV_REPLY         UINT_C(9)       /* 終端識別要求                   */
     108#define ARPOP_REQUEST           UINT_C(1)       /* アドレス解決要求             */
     109#define ARPOP_REPLY             UINT_C(2)       /* アドレス解決応答             */
     110#define ARPOP_REV_REQUEST       UINT_C(3)       /* プロトコル・アドレス解決要求       */
     111#define ARPOP_REV_REPLY         UINT_C(4)       /* プロトコル・アドレス解決要求       */
     112#define ARPOP_INV_REQUEST       UINT_C(8)       /* 終端識別要求                       */
     113#define ARPOP_INV_REPLY         UINT_C(9)       /* 終端識別要求                       */
    127114
    128115/*
    129  *  イーサネットドライバモジュールで使用される ARP æƒ
    130 å ±
     116 *  イーサネットドライバモジュールで使用される ARP 情報
    131117 */
    132118
     
    136122
    137123/*
    138  *  ARP キャッシュ更新タイマの定義
     124 *  ARP キャッシュ更新タイマの定義
    139125 */
    140126
    141 #define ARP_TIMER_TMO           (60*NET_TIMER_HZ)       /* タイムアウト、60 [s]  */
     127#define ARP_TIMER_TMO           (60*NET_TIMER_HZ)       /* タイムアウト、60 [s]        */
    142128
    143129/*
    144  *  変数
     130 *  変数
    145131 */
    146132
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_llc.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8674
    8775/*
    88  *  長さの定義
     76 *  長さの定義
    8977 */
    9078
     
    9381
    9482/*
    95  *  802.3 ヘッダ
     83 *  802.3 ヘッダ
    9684 */
    9785
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    121109
    122110/*
    123  *  ローカルループバックインタフェース
    124  */
    125 
    126 /*
    127  *  外部関数の定義
     111 *  ローカルループバックインタフェース
     112 */
     113
     114/*
     115 *  外部関数の定義
    128116 */
    129117
     
    131119
    132120/*
    133  *  変数
    134  */
    135 
    136 /* ネットワークインタフェース構造体 */
     121 *  変数
     122 */
     123
     124/* ネットワークインタフェース構造体 */
    137125
    138126#if defined(SUPPORT_INET4)
    139127
    140128static T_IFNET loop_ifnet = {
    141         NULL,                   /* ネットワークインタフェースのソフトウェアæƒ
    142 å ±     */
     129        NULL,                   /* ネットワークインタフェースのソフトウェア情報       */
    143130        {
    144                 IPV4_ADDR_LOOPBACK,             /* IPv4 アドレス                    */
    145                 IPV4_ADDR_LOOPBACK_MASK,        /* サブネットマスク                     */
     131                IPV4_ADDR_LOOPBACK,             /* IPv4 アドレス                    */
     132                IPV4_ADDR_LOOPBACK_MASK,        /* サブネットマスク                     */
    146133                },
    147134        };
     
    152139
    153140static T_IFNET loop_ifnet = {
    154         NULL,                   /* ネットワークインタフェースのソフトウェアæƒ
    155 å ±     */
    156         {},                     /* IPv6 アドレスæƒ
    157 å ±                             */
    158         {},                     /* マルチキャスト IPv6 アドレス                      */
     141        NULL,                   /* ネットワークインタフェースのソフトウェア情報       */
     142        {},                     /* IPv6 アドレス情報                          */
     143        {},                     /* マルチキャスト IPv6 アドレス                    */
    159144        };
    160145
     
    162147
    163148/*
    164  *  loop_get_ifnet -- ネットワークインタフェース構造体を返す。
     149 *  loop_get_ifnet -- ネットワークインタフェース構造体を返す。
    165150 */
    166151
     
    172157
    173158/*
    174  *  looutput -- ローカルループバックインタフェースの出力関数
     159 *  looutput -- ローカルループバックインタフェースの出力関数
    175160 */
    176161
     
    189174
    190175/*
    191  *  ローカルループバックインタフェース・出力タスク
     176 *  ローカルループバックインタフェース・出力タスク
    192177 */
    193178
     
    212197
    213198/*
    214  *  ローカルループバックインタフェース・å
    215 ¥åŠ›ã‚¿ã‚¹ã‚¯
     199 *  ローカルループバックインタフェース・入力タスク
    216200 */
    217201
     
    231215#if defined(SUPPORT_INET4)
    232216
    233                         /* IPv4 å
    234 ¥åŠ›é–¢æ•°ã‚’呼び出す */
     217                        /* IPv4 入力関数を呼び出す */
    235218                        if (IP4_VHL_V(GET_IP4_HDR(input)->vhl) == IPV4_VERSION)
    236219                                ip_input(input);
     
    240223#if defined(SUPPORT_INET6)
    241224
    242                         /* IPv6 å
    243 ¥åŠ›é–¢æ•°ã‚’呼び出す */
     225                        /* IPv6 入力関数を呼び出す */
    244226                        if (IP6_VCF_V(ntohl(GET_IP6_HDR(input)->vcf)) == IPV6_VERSION)
    245227                                ip6_input(input);
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  ループバックインタフェース・コンフィギュレーションファイル
     35 *  ループバックインタフェース・コンフィギュレーションファイル
    4836 */
    4937
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8472
    8573/*
    86  *  ローカルループバックインタフェース・ヘッダとアドレス
     74 *  ローカルループバックインタフェース・ヘッダとアドレス
    8775 */
    8876
     
    9179
    9280/*
    93  *  インタフェースの選択マクロ
     81 *  インタフェースの選択マクロ
    9482 */
    9583
    96 #define T_IF_HDR                T_LOOP_HDR              /* インタフェースのヘッダ    */
    97 #define T_IF_ADDR               T_LOOP_ADDR             /* インタフェースのアドレス */
    98 #define IF_HDR_ALIGN            4                       /* ヘッダのアライン単位               */
    99 #define IF_MTU                  LOMTU                   /* インタフェースの MTU         */
     84#define T_IF_HDR                T_LOOP_HDR              /* インタフェースのヘッダ  */
     85#define T_IF_ADDR               T_LOOP_ADDR             /* インタフェースのアドレス */
     86#define IF_HDR_ALIGN            4                       /* ヘッダのアライン単位           */
     87#define IF_MTU                  LOMTU                   /* インタフェースの MTU         */
    10088
    101 #define IF_OUTPUT(o,d,g,t)      looutput(o,t)           /* インタフェースの出力関数 */
    102 #define IF_RAW_OUTPUT(o,t)      looutput(o,t)           /* インタフェースの出力関数、アドレス解決無し*/
    103 #define IF_SET_PROTO(b,p)                               /* インタフェースのプロトコル設定関数  */
    104 #define IF_GET_IFNET()          loop_get_ifnet()        /* ネットワークインタフェース構造体を返す。         */
     89#define IF_OUTPUT(o,d,g,t)      looutput(o,t)           /* インタフェースの出力関数 */
     90#define IF_RAW_OUTPUT(o,t)      looutput(o,t)           /* インタフェースの出力関数、アドレス解決無し*/
     91#define IF_SET_PROTO(b,p)                               /* インタフェースのプロトコル設定関数    */
     92#define IF_GET_IFNET()          loop_get_ifnet()        /* ネットワークインタフェース構造体を返す。         */
    10593
    106 /* IPv4 関係 */
     94/* IPv4 関係 */
    10795
    108 #define IF_PROTO_IP             0                       /* インタフェースの IP プロトコル指定            */
     96#define IF_PROTO_IP             0                       /* インタフェースの IP プロトコル指定          */
    10997
    110 /* IPv6 関係 */
     98/* IPv6 関係 */
    11199
    112 #define MAX_IF_MADDR_CNT        0                       /* インタフェースのマルチキャストアドレスé
    113 åˆ—の最大サイズ  */
    114 #define IF_IN6_NEED_CACHE(i)    (false)                 /* 近隣探索キャッシュを使用する。                                */
     100#define MAX_IF_MADDR_CNT        0                       /* インタフェースのマルチキャストアドレス配列の最大サイズ  */
     101#define IF_IN6_NEED_CACHE(i)    (false)                 /* 近隣探索キャッシュを使用する。                              */
    115102
    116103/*
    117  *  前方参ç
    118 §
     104 *  前方参照
    119105 */
    120106
     
    144130
    145131/*
    146  *  ネットワークインタフェースに依存しないソフトウェアæƒ
    147 å ±
     132 *  ネットワークインタフェースに依存しないソフトウェア情報
    148133 */
    149134
     
    151136
    152137/*
    153  *  関数
     138 *  関数
    154139 */
    155140
     
    158143
    159144/*
    160  *  ローカルループバックインタフェース・処理タスク
     145 *  ローカルループバックインタフェース・処理タスク
    161146 */
    162147
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_ppp.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    7159
    7260/*
    73  *  インタフェースの選択マクロ
     61 *  インタフェースの選択マクロ
    7462 */
    7563
    76 #define T_IF_HDR                T_PPP_HDR       /* インタフェースのヘッダ                    */
    77 #define IF_HDR_ALIGN            2               /* ヘッダのアライン単位                       */
    78 #define IF_MTU                  DEF_PPP_MTU     /* インタフェースの MTU                 */
    79                                                 /* インタフェースの IPv4 アドレス           */
    80 #define IF_PROTO_IP             PPP_IP          /* インタフェースの IP プロトコル指定    */
     64#define T_IF_HDR                T_PPP_HDR       /* インタフェースのヘッダ                  */
     65#define IF_HDR_ALIGN            2               /* ヘッダのアライン単位                   */
     66#define IF_MTU                  DEF_PPP_MTU     /* インタフェースの MTU                 */
     67                                                /* インタフェースの IPv4 アドレス           */
     68#define IF_PROTO_IP             PPP_IP          /* インタフェースの IP プロトコル指定  */
    8169
    82 #define IF_OUTPUT(o,d,g,t)      ppp_output(o,t)         /* インタフェースの出力関数         */
    83 #define IF_RAW_OUTPUT(o,t)      ppp_output(o,t)         /* インタフェースの出力関数、アドレス解決無し*/
    84                                                         /* インタフェースのプロトコル設定関数  */
     70#define IF_OUTPUT(o,d,g,t)      ppp_output(o,t)         /* インタフェースの出力関数         */
     71#define IF_RAW_OUTPUT(o,t)      ppp_output(o,t)         /* インタフェースの出力関数、アドレス解決無し*/
     72                                                        /* インタフェースのプロトコル設定関数    */
    8573#define IF_SET_PROTO(b,p)       (*GET_PPP_HDR(b) = htons(p))
    86 #define IF_GET_IFNET()          ppp_get_ifnet()         /* ネットワークインタフェース構造体を返す。         */
     74#define IF_GET_IFNET()          ppp_get_ifnet()         /* ネットワークインタフェース構造体を返す。         */
    8775
    8876/*
    89  *  MTU (MRU) に関する定義
     77 *  MTU (MRU) に関する定義
    9078 */
    9179
    92 #define DEF_PPP_MTU             1500    /* PPP の 標準 MTU   */
    93 #define MAX_PPP_MTU             16384   /* PPP の 最大 MTU   */
    94 #define MIN_PPP_MTU             128     /* PPP の 最小 MTU   */
     80#define DEF_PPP_MTU             1500    /* PPP の 標準 MTU */
     81#define MAX_PPP_MTU             16384   /* PPP の 最大 MTU */
     82#define MIN_PPP_MTU             128     /* PPP の 最小 MTU */
    9583
    9684/*
    97  *  PPP ヘッダ
     85 *  PPP ヘッダ
    9886 */
    9987
    100 typedef uint16_t T_PPP_HDR;                             /* 上位プロトコル                */
     88typedef uint16_t T_PPP_HDR;                             /* 上位プロトコル              */
    10189
    10290/*
    103  *  前方参ç
    104 §
     91 *  前方参照
    10592 */
    10693
     
    130117
    131118/*
    132  *  ネットワークインタフェースに依存しないソフトウェアæƒ
    133 å ±
     119 *  ネットワークインタフェースに依存しないソフトウェア情報
    134120 */
    135121
     
    137123
    138124/*
    139  *  関数
     125 *  関数
    140126 */
    141127
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_types.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8068
    8169/*
    82  *  インタフェースの型の定義
     70 *  インタフェースの型の定義
    8371 */
    8472
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_var.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8371
    8472/*
    85  *  ネットワークインタフェース構造体
     73 *  ネットワークインタフェース構造体
    8674 */
    8775
    8876struct t_ifnet {
    89         T_IF_SOFTC      *ic;            /* ネットワークインタフェースのソフトウェアæƒ
    90 å ±     */
    91         T_IN4_IFADDR    in_ifaddr;      /* IPv4 アドレスæƒ
    92 å ±                             */
     77        T_IF_SOFTC      *ic;            /* ネットワークインタフェースのソフトウェア情報       */
     78        T_IN4_IFADDR    in_ifaddr;      /* IPv4 アドレス情報                          */
    9379        ether_status_callback_fn link_callback;
    94         uint8_t         flags;          /* フラグ                                    */
     80        uint8_t         flags;          /* フラグ                                  */
    9581        };
    9682
     
    10894
    10995/*
    110  *  SNMP の 管理æƒ
    111 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     96 *  SNMP の 管理情報ベース (MIB)
    11297 */
    11398
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  å
    48 ±é€š 汎用ネットワークコンフィギュレーションファイル
     35 *  共通 汎用ネットワークコンフィギュレーションファイル
    4936 */
    5037
    5138/*
    52  * ネットワークタイマ
     39 * ネットワークタイマ
    5340 */
    5441
     
    6956                });
    7057
    71 /* ネットワークタイマの呼出しエントリ用セマフォ */
     58/* ネットワークタイマの呼出しエントリ用セマフォ */
    7259
    7360CRE_SEM(SEM_CALL_OUT_LOCK,      { TA_TPRI, 1, 1 });
    7461CRE_SEM(SEM_CALL_OUT_TIMEOUT,   { TA_TPRI, 0, NUM_NET_CALLOUT });
    7562
    76 /* サポート関数 ip2str、ipv62str 用セマフォ */
     63/* サポート関数 ip2str、ipv62str 用セマフォ */
    7764
    7865CRE_SEM(SEM_IP2STR_BUFF_LOCK,   { TA_TPRI, 1, 1 });
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    8169
    8270/*
    83  *  バイトオーダの定義
     71 *  バイトオーダの定義
    8472 */
    8573
     
    124112
    125113/*
    126  *  バイトオーダ変換の定義
     114 *  バイトオーダ変換の定義
    127115 */
    128116
     
    140128
    141129/*
    142  *  注意: IPヘッダ以降は、4 バイト境界にアラインされている事を
    143  *        前提としているが、4 バイト境界でアクセスする
    144  *        プロセッサで、ネットワーク側のデータが、4 バイト境界にアライン
    145  *        されていない場合は、ntoahl、ahtonl、nahcmpl を使用すること。
     130 *  注意: IPヘッダ以降は、4 バイト境界にアラインされている事を
     131 *        前提としているが、4 バイト境界でアクセスする
     132 *        プロセッサで、ネットワーク側のデータが、4 バイト境界にアライン
     133 *        されていない場合は、ntoahl、ahtonl、nahcmpl を使用すること。
    146134 */
    147135
     
    177165
    178166/*
    179  *  注意: IPヘッダ以降は、4 バイト境界にアラインされている事を
    180  *        前提としているが、4 バイト境界でアクセスする
    181  *        プロセッサで、ネットワーク側のデータが、4 バイト境界にアライン
    182  *        されていない場合は、ntoahl、ahtonl、nahcmpl を使用すること。
     167 *  注意: IPヘッダ以降は、4 バイト境界にアラインされている事を
     168 *        前提としているが、4 バイト境界でアクセスする
     169 *        プロセッサで、ネットワーク側のデータが、4 バイト境界にアライン
     170 *        されていない場合は、ntoahl、ahtonl、nahcmpl を使用すること。
    183171 */
    184172
     
    201189
    202190/*
    203  *  プロトコルを識別するフラグに関する定義
    204  *
    205  *    ・統計æƒ
    206 å ±
     191 *  プロトコルを識別するフラグに関する定義
     192 *
     193 *    ・統計情報
    207194 */
    208195
     
    242229
    243230/*
    244  *  アドレス形式の定義
    245  */
    246 
    247 #define AT_ETHER                UINT_C(0x01)            /* イーサネット           */
    248 #define AT_INET4                UINT_C(0x10)            /* IPv4 アドレス    */
    249 #define AT_INET6                UINT_C(0x20)            /* IPv6 アドレス    */
     231 *  アドレス形式の定義
     232 */
     233
     234#define AT_ETHER                UINT_C(0x01)            /* イーサネット               */
     235#define AT_INET4                UINT_C(0x10)            /* IPv4 アドレス    */
     236#define AT_INET6                UINT_C(0x20)            /* IPv6 アドレス    */
    250237
    251238#if !defined(TOPPERS_MACRO_ONLY) && !defined(_MACRO_ONLY)
    252239
    253240/*
    254  *  TINET 独自関数
     241 *  TINET 独自関数
    255242 */
    256243
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_asp.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  ASP用 汎用ネットワークコンフィギュレーションファイル
     35 *  ASP用 汎用ネットワークコンフィギュレーションファイル
    4836 */
    4937
    5038/*
    51  *  å
    52 ±é€š 汎用ネットワークコンフィギュレーションファイルのインクルード
     39 *  共通 汎用ネットワークコンフィギュレーションファイルのインクルード
    5340 */
    5441
     
    5643
    5744/*
    58  * ネットワークバッファ
     45 * ネットワークバッファ
    5946 */
    6047
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.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$
     
    8472
    8573/*
    86  *  関数
     74 *  関数
    8775 */
    8876
     
    9078
    9179/*
    92  *  変数
     80 *  変数
    9381 */
    9482
     
    272260
    273261/*
    274  *  nbuf_get_tbl -- ネットワークバッファ管理表を獲得する。
     262 *  nbuf_get_tbl -- ネットワークバッファ管理表を獲得する。
    275263 *
    276  *    注意: ネットワーク統計æƒ
    277 å ±ã®è¨ˆæ¸¬ç”¨
     264 *    注意: ネットワーク統計情報の計測用
    278265 */
    279266
     
    285272
    286273/*
    287  *  nbuf_get_tbl_size -- ネットワークバッファ管理エントリ数を獲得する。
     274 *  nbuf_get_tbl_size -- ネットワークバッファ管理エントリ数を獲得する。
    288275 *
    289  *    注意: ネットワーク統計æƒ
    290 å ±ã®è¨ˆæ¸¬ç”¨
     276 *    注意: ネットワーク統計情報の計測用
    291277 */
    292278
     
    300286
    301287/*
    302  *  tget_net_buf_up -- 大きなサイズの方向に探索して、ネットワークバッファを獲得する。
     288 *  tget_net_buf_up -- 大きなサイズの方向に探索して、ネットワークバッファを獲得する。
    303289 */
    304290
     
    309295        ER      error = E_OK;
    310296
    311         /* 最適なサイズの固定長メモリプールを探す。*/
     297        /* 最適なサイズの固定長メモリプールを探す。*/
    312298        ix = sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY);
    313299        while (ix -- > 0 && minlen > net_buf_table[ix].size)
     
    337323
    338324/*
    339  *  tget_net_buf_down -- 小さなサイズの方向に探索して、ネットワークバッファを獲得する。
     325 *  tget_net_buf_down -- 小さなサイズの方向に探索して、ネットワークバッファを獲得する。
    340326 */
    341327
     
    346332        ER      error = E_OK;
    347333
    348         /* 最適なサイズの固定長メモリプールを探す。*/
     334        /* 最適なサイズの固定長メモリプールを探す。*/
    349335        ix = sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY);
    350336        while (ix -- > 0 && maxlen > net_buf_table[ix].size)
     
    375361
    376362/*
    377  *  tget_net_buf_ex -- ネットワークバッファを獲得する(拡張機能)。
     363 *  tget_net_buf_ex -- ネットワークバッファを獲得する(拡張機能)。
    378364 */
    379365
     
    381367tget_net_buf_ex (T_NET_BUF **buf, uint_t minlen, uint_t maxlen, ATR nbatr, TMO tmout)
    382368{
    383         /* 最小サイズが最大サイズをè¶
    384 ãˆã¦ã„たらエラー */
     369        /* 最小サイズが最大サイズを超えていたらエラー */
    385370        if ((nbatr & NBA_SEARCH_DESCENT) != 0 && minlen > maxlen) {
    386371                syslog(LOG_WARNING, "[NET BUF] E_PAR, minlen=%4d > maxlen=%4d.", minlen, maxlen);
     
    388373                }
    389374
    390         /* 割当て可能な最大のサイズをè¶
    391 ãˆã¦ã„たらエラー */
     375        /* 割当て可能な最大のサイズを超えていたらエラー */
    392376        if (minlen > net_buf_table[0].size || maxlen > net_buf_table[0].size) {
    393377                syslog(LOG_WARNING, "[NET BUF] E_PAR, minlen=%4d or maxlen=%4d > %4d",
     
    396380                }
    397381
    398         /* TCP で予約したネットワークバッファを取り出す。*/
     382        /* TCP で予約したネットワークバッファを取り出す。*/
    399383        if ((nbatr & NBA_RESERVE_TCP) != 0) {
    400384                if ((*buf = TCP_PULL_RES_NBUF(nbatr)) != NULL) {
     
    414398
    415399/*
    416  *  tget_net_buf -- ネットワークバッファを獲得する(互換)。
     400 *  tget_net_buf -- ネットワークバッファを獲得する(互換)。
    417401 */
    418402
     
    424408
    425409/*
    426  * rel_net_buf -- ネットワークバッファを返却する。
     410 * rel_net_buf -- ネットワークバッファを返却する。
    427411 */
    428412
     
    432416        ER      error = E_OK;
    433417
    434         /* ネットワークバッファの ID の正当性を検証する。*/
     418        /* ネットワークバッファの ID の正当性を検証する。*/
    435419        if ((int_t)buf->idix >= (int_t)(sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY))) {
    436420                syslog(LOG_WARNING, "[NET BUF] E_ID, ID=%d.", buf->idix);
     
    439423        else {
    440424
    441                 /* TCP で、ネットワークバッファを予約する。*/
     425                /* TCP で、ネットワークバッファを予約する。*/
    442426                if (TCP_PUSH_RES_NBUF(buf) == NULL)
    443427                        return E_OK;
    444428
    445                 /* 固定メモリプールに返す。*/
     429                /* 固定メモリプールに返す。*/
    446430                if ((error = rel_mpf((ID)net_buf_table[buf->idix].index, buf)) != E_OK)
    447431                        syslog(LOG_WARNING, "[NET BUF] %s, ID=%d.", itron_strerror(error), buf->idix);
     
    451435
    452436/*
    453  * rus_net_buf -- ネットワークバッファを再利用する。
     437 * rus_net_buf -- ネットワークバッファを再利用する。
    454438 */
    455439
     
    472456
    473457/*
    474  * net_buf_siz -- ネットワークバッファのサイズを返す。
     458 * net_buf_siz -- ネットワークバッファのサイズを返す。
    475459 */
    476460
     
    487471
    488472/*
    489  * net_buf_max_siz -- ネットワークバッファの最大サイズを返す。
     473 * net_buf_max_siz -- ネットワークバッファの最大サイズを返す。
    490474 */
    491475
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    4836
    4937/*
    50  *  ネットワークバッファ
     38 *  ネットワークバッファ
    5139 *
    52  *    4 オクテットでアラインするå¿
    53 è¦ã®ã‚るプロセッサを考æ
    54 ®ã—て、
    55  *    IF ヘッダサイズが 4 オクテット境界でないの場合、
    56  *    IP ヘッダ以降を 4 オクテット境界に調整する。
     40 *    4 オクテットでアラインする必要のあるプロセッサを考慮して、
     41 *    IF ヘッダサイズが 4 オクテット境界でないの場合、
     42 *    IP ヘッダ以降を 4 オクテット境界に調整する。
    5743 */
    5844
     
    6248
    6349/*
    64  *  テンプレート
     50 *  テンプレート
    6551 */
    6652
    6753struct t_net_buf {
    68         uint16_t        len;    /* データの長さ           */
    69         uint8_t         idix;   /* mpfid のインデックス  */
    70         uint8_t         flags;  /* フラグ            */
    71 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    72         uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
    73 #endif
    74 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
    75         uint8_t         halign[4 - IF_HDR_ALIGN];
    76 #endif
    77         uint8_t         buf[4]; /* バッファ本体           */
     54        uint16_t        len;    /* データの長さ               */
     55        uint8_t         idix;   /* mpfid のインデックス        */
     56        uint8_t         flags;  /* フラグ          */
     57#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
     58        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     59#endif
     60#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
     61        uint8_t         halign[4 - IF_HDR_ALIGN];
     62#endif
     63        uint8_t         buf[4]; /* バッファ本体               */
    7864        };
    7965
     
    8672#endif  /* of #ifndef T_NET_BUF_DEFINED */
    8773/*
    88  *  64 オクテット
     74 *  64 オクテット
    8975 */
    9076
    9177typedef struct t_net_buf_64 {
    92         uint16_t        len;    /* データの長さ           */
    93         uint8_t         idix;   /* mpfid のインデックス  */
    94         uint8_t         flags;  /* フラグ            */
    95 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    96         uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
    97 #endif
    98 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
    99         uint8_t         halign[4 - IF_HDR_ALIGN];
    100 #endif
    101         uint8_t         buf[64]; /* バッファ本体  */
     78        uint16_t        len;    /* データの長さ               */
     79        uint8_t         idix;   /* mpfid のインデックス        */
     80        uint8_t         flags;  /* フラグ          */
     81#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
     82        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     83#endif
     84#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
     85        uint8_t         halign[4 - IF_HDR_ALIGN];
     86#endif
     87        uint8_t         buf[64]; /* バッファ本体      */
    10288        } T_NET_BUF_64;
    10389
    10490/*
    105  *  128 オクテット
     91 *  128 オクテット
    10692 */
    10793
    10894typedef struct t_net_buf_128 {
    109         uint16_t        len;    /* データの長さ           */
    110         uint8_t         idix;   /* mpfid のインデックス  */
    111         uint8_t         flags;  /* フラグ            */
    112 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    113         uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
    114 #endif
    115 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
    116         uint8_t         halign[4 - IF_HDR_ALIGN];
    117 #endif
    118         uint8_t         buf[128]; /* バッファ本体 */
     95        uint16_t        len;    /* データの長さ               */
     96        uint8_t         idix;   /* mpfid のインデックス        */
     97        uint8_t         flags;  /* フラグ          */
     98#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
     99        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     100#endif
     101#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
     102        uint8_t         halign[4 - IF_HDR_ALIGN];
     103#endif
     104        uint8_t         buf[128]; /* バッファ本体     */
    119105        } T_NET_BUF_128;
    120106
    121107/*
    122  *  256 オクテット
     108 *  256 オクテット
    123109 */
    124110
    125111typedef struct t_net_buf_256 {
    126         uint16_t        len;    /* データの長さ           */
    127         uint8_t         idix;   /* mpfid のインデックス  */
    128         uint8_t         flags;  /* フラグ            */
    129 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    130         uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
    131 #endif
    132 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
    133         uint8_t         halign[4 - IF_HDR_ALIGN];
    134 #endif
    135         uint8_t         buf[256]; /* バッファ本体 */
     112        uint16_t        len;    /* データの長さ               */
     113        uint8_t         idix;   /* mpfid のインデックス        */
     114        uint8_t         flags;  /* フラグ          */
     115#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
     116        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     117#endif
     118#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
     119        uint8_t         halign[4 - IF_HDR_ALIGN];
     120#endif
     121        uint8_t         buf[256]; /* バッファ本体     */
    136122        } T_NET_BUF_256;
    137123
    138124/*
    139  *  512 オクテット
     125 *  512 オクテット
    140126 */
    141127
    142128typedef struct t_net_buf_512 {
    143         uint16_t        len;    /* データの長さ           */
    144         uint8_t         idix;   /* mpfid のインデックス  */
    145         uint8_t         flags;  /* フラグ            */
    146 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    147         uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
    148 #endif
    149 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
    150         uint8_t         halign[4 - IF_HDR_ALIGN];
    151 #endif
    152         uint8_t         buf[512];/* バッファ本体  */
     129        uint16_t        len;    /* データの長さ               */
     130        uint8_t         idix;   /* mpfid のインデックス        */
     131        uint8_t         flags;  /* フラグ          */
     132#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
     133        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     134#endif
     135#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
     136        uint8_t         halign[4 - IF_HDR_ALIGN];
     137#endif
     138        uint8_t         buf[512];/* バッファ本体      */
    153139        } T_NET_BUF_512;
    154140
    155141/*
    156  *  1024 オクテット
     142 *  1024 オクテット
    157143 */
    158144
    159145typedef struct t_net_buf_1024 {
    160         uint16_t        len;    /* データの長さ           */
    161         uint8_t         idix;   /* mpfid のインデックス  */
    162         uint8_t         flags;  /* フラグ            */
    163 #ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    164         uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
    165 #endif
    166 #if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
    167         uint8_t         halign[4 - IF_HDR_ALIGN];
    168 #endif
    169         uint8_t         buf[1024]; /* バッファ本体        */
     146        uint16_t        len;    /* データの長さ               */
     147        uint8_t         idix;   /* mpfid のインデックス        */
     148        uint8_t         flags;  /* フラグ          */
     149#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
     150        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     151#endif
     152#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
     153        uint8_t         halign[4 - IF_HDR_ALIGN];
     154#endif
     155        uint8_t         buf[1024]; /* バッファ本体    */
    170156        } T_NET_BUF_1024;
    171157
    172158/*
    173  *  ネットワークインタフェースの最大 PDU サイズ
     159 *  ネットワークインタフェースの最大 PDU サイズ
    174160 */
    175161
    176162typedef struct t_net_buf_if_pdu {
    177         uint16_t        len;    /* データの長さ           */
    178         uint8_t         idix;   /* mpfid のインデックス  */
    179         uint8_t         flags;  /* フラグ            */
     163        uint16_t        len;    /* データの長さ               */
     164        uint8_t         idix;   /* mpfid のインデックス        */
     165        uint8_t         flags;  /* フラグ          */
    180166#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    181167        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     
    185171#endif
    186172        uint8_t         buf[IF_PDU_SIZE];
    187                                 /* バッファ本体           */
     173                                /* バッファ本体               */
    188174#if defined(IF_PDU_HDR_PADDING)
    189175        uint8_t         padding[IF_PDU_HDR_PADDING];
    190 #endif                          /* ヘッダの余分           */
     176#endif                          /* ヘッダの余分               */
    191177        } T_NET_BUF_IF_PDU;
    192178
    193179/*
    194  *  ネットワークバッファ表
     180 *  ネットワークバッファ表
    195181 */
    196182
     
    212198
    213199/*
    214  *  ネットワークバッファ・フラグ 
    215  */
    216 
    217 /*
    218  *  ネットワークインタフェース出力後にネットワークバッファを開放しない。
    219  *  注意: 出力後にこのフラグはクリアされる。
     200 *  ネットワークバッファ・フラグ     
     201 */
     202
     203/*
     204 *  ネットワークインタフェース出力後にネットワークバッファを開放しない。
     205 *  注意: 出力後にこのフラグはクリアされる。
    220206 */
    221207#define NB_FLG_NOREL_IFOUT      UINT_C(0x80)
    222208
    223209/*
    224  *  ESP 用フラグ
     210 *  ESP 用フラグ
    225211 */
    226212#define NB_FLG_DECRYPED         UINT_C(0x40)
    227213
    228214/*
    229  *  ネットワークバッファ獲得属性
    230  */
    231 
    232 /* 探索属性 */
    233 
    234 #define NBA_SEARCH_ASCENT       UINT_C(0x1000)  /* 大きなサイズの方向に探索する。        */
    235 #define NBA_SEARCH_DESCENT      UINT_C(0x2000)  /* 小さなサイズの方向に探索する。        */
    236 #define NBA_RESERVE_TCP         UINT_C(0x4000)  /* TCP 用にネットワークバッファを予約する。*/
    237 #define NBA_ID_MASK             UINT_C(0x0fff)  /* 通信端点 ID を渡す場合のマスク値       */
    238 
    239 /*
    240  *  関数シミュレーションマクロ
     215 *  ネットワークバッファ獲得属性
     216 */
     217
     218/* 探索属性 */
     219
     220#define NBA_SEARCH_ASCENT       UINT_C(0x1000)  /* 大きなサイズの方向に探索する。      */
     221#define NBA_SEARCH_DESCENT      UINT_C(0x2000)  /* 小さなサイズの方向に探索する。      */
     222#define NBA_RESERVE_TCP         UINT_C(0x4000)  /* TCP 用にネットワークバッファを予約する。*/
     223#define NBA_ID_MASK             UINT_C(0x0fff)  /* 通信端点 ID を渡す場合のマスク値   */
     224
     225/*
     226 *  関数シミュレーションマクロ
    241227 */
    242228
     
    244230
    245231/*
    246  *  関数
     232 *  関数
    247233 */
    248234
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    11199
    112100/*
    113  *  ネットワーク統計æƒ
    114 å ±ã®è¨ˆæ¸¬
     101 *  ネットワーク統計情報の計測
    115102 */
    116103
     
    136123
    137124/*
    138  *  計測用変数
     125 *  計測用変数
    139126 */
    140127
     
    144131
    145132T_NET_COUNT     net_count_ppp;
    146 T_NET_COUNT_VAL net_count_ppp_no_bufs;          /* net_buf 割り当て失敗数        */
     133T_NET_COUNT_VAL net_count_ppp_no_bufs;          /* net_buf 割り当て失敗数      */
    147134
    148135#endif  /* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP */
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8169
    8270/*
    83  *  ネットワーク統計æƒ
    84 å ±ã®è¨ˆæ¸¬
     71 *  ネットワーク統計情報の計測
    8572 */
    8673
     
    9683
    9784typedef struct t_net_count {
    98         T_NET_COUNT_VAL in_octets;              /* 受信オクテット数     */
    99         T_NET_COUNT_VAL out_octets;             /* 送信オクテット数     */
    100         T_NET_COUNT_VAL in_packets;             /* 受信バケット数        */
    101         T_NET_COUNT_VAL out_packets;            /* 送信バケット数        */
    102         T_NET_COUNT_VAL in_err_packets;         /* 受信エラーバケット数       */
    103         T_NET_COUNT_VAL out_err_packets;        /* 送信エラーバケット数       */
     85        T_NET_COUNT_VAL in_octets;              /* 受信オクテット数     */
     86        T_NET_COUNT_VAL out_octets;             /* 送信オクテット数     */
     87        T_NET_COUNT_VAL in_packets;             /* 受信バケット数      */
     88        T_NET_COUNT_VAL out_packets;            /* 送信バケット数      */
     89        T_NET_COUNT_VAL in_err_packets;         /* 受信エラーバケット数   */
     90        T_NET_COUNT_VAL out_err_packets;        /* 送信エラーバケット数   */
    10491        } T_NET_COUNT;
    10592
     
    119106
    120107extern T_NET_COUNT      net_count_ppp;
    121 extern T_NET_COUNT_VAL  net_count_ppp_no_bufs;  /* net_buf 割り当て失敗数        */
    122 
    123 #endif  /* of #ifndef _MACRO_ONLY */
    124 
    125 #define NC_PPP_SIZE     7                       /* カウンタ数 */
     108extern T_NET_COUNT_VAL  net_count_ppp_no_bufs;  /* net_buf 割り当て失敗数      */
     109
     110#endif  /* of #ifndef _MACRO_ONLY */
     111
     112#define NC_PPP_SIZE     7                       /* カウンタ数 */
    126113
    127114#else   /* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP */
     
    229216#ifdef SUPPORT_LOOP
    230217
    231 /* ループバック */
     218/* ループバック */
    232219
    233220#if NET_COUNT_ENABLE & PROTO_FLG_LOOP
     
    273260#if NET_COUNT_ENABLE & PROTO_FLG_ETHER_NIC
    274261
    275 #define NC_ETHER_NIC_RESETS             0       /* リセット数                      */
    276 #define NC_ETHER_NIC_TXB_QOVRS          1       /* 送信セマフォ資源返却上限オーバー数*/
    277 #define NC_ETHER_NIC_TIMEOUTS           2       /* 送信タイムアウト数          */
    278 #define NC_ETHER_NIC_COLS               3       /* コリジョン数                   */
    279 #define NC_ETHER_NIC_OUT_ERR_PACKETS    4       /* 送信エラーバケット数               */
    280 #define NC_ETHER_NIC_OUT_PACKETS        5       /* 送信バケット数                */
    281 #define NC_ETHER_NIC_OUT_OCTETS         6       /* 送信オクテット数             */
    282 #define NC_ETHER_NIC_RXB_QOVRS          7       /* 受信セマフォ資源返却上限オーバー数*/
    283 #define NC_ETHER_NIC_NO_BUFS            8       /* net_buf 割り当て失敗数        */
    284 #define NC_ETHER_NIC_IN_ERR_PACKETS     9       /* 受信エラーバケット数               */
    285 #define NC_ETHER_NIC_IN_PACKETS         10      /* 受信バケット数                */
    286 #define NC_ETHER_NIC_IN_OCTETS          11      /* 受信オクテット数             */
    287 #define NC_ETHER_NIC_SIZE               12      /* カウンタ数                      */
     262#define NC_ETHER_NIC_RESETS             0       /* リセット数                        */
     263#define NC_ETHER_NIC_TXB_QOVRS          1       /* 送信セマフォ資源返却上限オーバー数*/
     264#define NC_ETHER_NIC_TIMEOUTS           2       /* 送信タイムアウト数            */
     265#define NC_ETHER_NIC_COLS               3       /* コリジョン数                       */
     266#define NC_ETHER_NIC_OUT_ERR_PACKETS    4       /* 送信エラーバケット数           */
     267#define NC_ETHER_NIC_OUT_PACKETS        5       /* 送信バケット数              */
     268#define NC_ETHER_NIC_OUT_OCTETS         6       /* 送信オクテット数             */
     269#define NC_ETHER_NIC_RXB_QOVRS          7       /* 受信セマフォ資源返却上限オーバー数*/
     270#define NC_ETHER_NIC_NO_BUFS            8       /* net_buf 割り当て失敗数      */
     271#define NC_ETHER_NIC_IN_ERR_PACKETS     9       /* 受信エラーバケット数           */
     272#define NC_ETHER_NIC_IN_PACKETS         10      /* 受信バケット数              */
     273#define NC_ETHER_NIC_IN_OCTETS          11      /* 受信オクテット数             */
     274#define NC_ETHER_NIC_SIZE               12      /* カウンタ数                        */
    288275
    289276#define NET_COUNT_ETHER_NIC(v,c)        ((v)+=(c))
     
    303290#endif  /* of #ifdef SUPPORT_ETHER */
    304291
    305 /* ネットワークバッファ */
     292/* ネットワークバッファ */
    306293
    307294#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
     
    339326#if NET_COUNT_ENABLE & PROTO_FLG_IP4
    340327
    341 #define NC_IP4_FRAG_OUT_FRAGS           0       /* 分割送信、フラグメント数 */
    342 #define NC_IP4_FRAG_OUT                 1       /* 分割送信数                      */
    343 #define NC_IP4_OUT_ERR_PACKETS          2       /* 送信エラーデータグラム数 */
    344 #define NC_IP4_OUT_PACKETS              3       /* 送信データグラム数          */
    345 #define NC_IP4_OUT_OCTETS               4       /* 送信オクテット数             */
    346 #define NC_IP4_FRAG_IN_TMOUT            5       /* 分割受信タイムアウト数            */
    347 #define NC_IP4_FRAG_IN_NO_BUF           6       /* 分割受信バッファり当て失敗数   */
    348 #define NC_IP4_FRAG_IN_DROP             7       /* 分割受信破棄数                */
    349 #define NC_IP4_FRAG_IN_OK               8       /* 分割受信再構成成功数               */
    350 #define NC_IP4_FRAG_IN_FRAGS            9       /* 分割受信フラグメント数            */
    351 #define NC_IP4_FRAG_IN                  10      /* 分割受信数                      */
    352 #define NC_IP4_OPTS                     11      /* オプションå
    353 ¥åŠ›æ•°         */
    354 #define NC_IP4_IN_ERR_PROTO             12      /* プロトコルエラー数          */
    355 #define NC_IP4_IN_ERR_ADDR              13      /* アドレスエラー数             */
    356 #define NC_IP4_IN_ERR_VER               14      /* バージョンエラー数          */
    357 #define NC_IP4_IN_ERR_SHORT             15      /* 長さエラー数                   */
    358 #define NC_IP4_IN_ERR_CKSUM             16      /* チェックサムエラー数               */
    359 #define NC_IP4_IN_ERR_PACKETS           17      /* 受信エラーデータグラム数 */
    360 #define NC_IP4_IN_PACKETS               18      /* 受信データグラム数          */
    361 #define NC_IP4_IN_OCTETS                19      /* 受信オクテット数             */
    362 #define NC_IP4_SIZE                     20      /* カウンタ数                      */
     328#define NC_IP4_FRAG_OUT_FRAGS           0       /* 分割送信、フラグメント数 */
     329#define NC_IP4_FRAG_OUT                 1       /* 分割送信数                        */
     330#define NC_IP4_OUT_ERR_PACKETS          2       /* 送信エラーデータグラム数 */
     331#define NC_IP4_OUT_PACKETS              3       /* 送信データグラム数            */
     332#define NC_IP4_OUT_OCTETS               4       /* 送信オクテット数             */
     333#define NC_IP4_FRAG_IN_TMOUT            5       /* 分割受信タイムアウト数          */
     334#define NC_IP4_FRAG_IN_NO_BUF           6       /* 分割受信バッファり当て失敗数       */
     335#define NC_IP4_FRAG_IN_DROP             7       /* 分割受信破棄数              */
     336#define NC_IP4_FRAG_IN_OK               8       /* 分割受信再構成成功数           */
     337#define NC_IP4_FRAG_IN_FRAGS            9       /* 分割受信フラグメント数          */
     338#define NC_IP4_FRAG_IN                  10      /* 分割受信数                        */
     339#define NC_IP4_OPTS                     11      /* オプション入力数             */
     340#define NC_IP4_IN_ERR_PROTO             12      /* プロトコルエラー数            */
     341#define NC_IP4_IN_ERR_ADDR              13      /* アドレスエラー数             */
     342#define NC_IP4_IN_ERR_VER               14      /* バージョンエラー数            */
     343#define NC_IP4_IN_ERR_SHORT             15      /* 長さエラー数                       */
     344#define NC_IP4_IN_ERR_CKSUM             16      /* チェックサムエラー数           */
     345#define NC_IP4_IN_ERR_PACKETS           17      /* 受信エラーデータグラム数 */
     346#define NC_IP4_IN_PACKETS               18      /* 受信データグラム数            */
     347#define NC_IP4_IN_OCTETS                19      /* 受信オクテット数             */
     348#define NC_IP4_SIZE                     20      /* カウンタ数                        */
    363349
    364350#define NET_COUNT_IP4(v,c)      ((v)+=(c))
     
    402388#if NET_COUNT_ENABLE & PROTO_FLG_IP6
    403389
    404 #define NC_IP6_FRAG_OUT_FRAGS           0       /* 分割送信、フラグメント数 */
    405 #define NC_IP6_FRAG_OUT                 1       /* 分割送信数                      */
    406 #define NC_IP6_OUT_ERR_PACKETS          2       /* 送信エラーデータグラム数 */
    407 #define NC_IP6_OUT_PACKETS              3       /* 送信データグラム数          */
    408 #define NC_IP6_OUT_OCTETS               4       /* 送信オクテット数             */
    409 #define NC_IP6_FRAG_IN_TMOUT            5       /* 分割受信タイムアウト数            */
    410 #define NC_IP6_FRAG_IN_NO_BUF           6       /* 分割受信バッファり当て失敗数   */
    411 #define NC_IP6_FRAG_IN_DROP             7       /* 分割受信破棄数                */
    412 #define NC_IP6_FRAG_IN_OK               8       /* 分割受信再構成成功数               */
    413 #define NC_IP6_FRAG_IN_FRAGS            9       /* 分割受信フラグメント数            */
    414 #define NC_IP6_FRAG_IN                  10      /* 分割受信数                      */
    415 #define NC_IP6_IN_ERR_PROTO             11      /* プロトコルエラー数          */
    416 #define NC_IP6_IN_ERR_ADDR              12      /* アドレスエラー数             */
    417 #define NC_IP6_IN_ERR_VER               13      /* バージョンエラー数          */
    418 #define NC_IP6_IN_ERR_SHORT             14      /* 長さエラー数                   */
    419 #define NC_IP6_IN_ERR_PACKETS           15      /* 受信エラーデータグラム数 */
    420 #define NC_IP6_IN_PACKETS               16      /* 受信データグラム数          */
    421 #define NC_IP6_IN_OCTETS                17      /* 受信オクテット数             */
    422 #define NC_IP6_SIZE                     18      /* カウンタ数                      */
     390#define NC_IP6_FRAG_OUT_FRAGS           0       /* 分割送信、フラグメント数 */
     391#define NC_IP6_FRAG_OUT                 1       /* 分割送信数                        */
     392#define NC_IP6_OUT_ERR_PACKETS          2       /* 送信エラーデータグラム数 */
     393#define NC_IP6_OUT_PACKETS              3       /* 送信データグラム数            */
     394#define NC_IP6_OUT_OCTETS               4       /* 送信オクテット数             */
     395#define NC_IP6_FRAG_IN_TMOUT            5       /* 分割受信タイムアウト数          */
     396#define NC_IP6_FRAG_IN_NO_BUF           6       /* 分割受信バッファり当て失敗数       */
     397#define NC_IP6_FRAG_IN_DROP             7       /* 分割受信破棄数              */
     398#define NC_IP6_FRAG_IN_OK               8       /* 分割受信再構成成功数           */
     399#define NC_IP6_FRAG_IN_FRAGS            9       /* 分割受信フラグメント数          */
     400#define NC_IP6_FRAG_IN                  10      /* 分割受信数                        */
     401#define NC_IP6_IN_ERR_PROTO             11      /* プロトコルエラー数            */
     402#define NC_IP6_IN_ERR_ADDR              12      /* アドレスエラー数             */
     403#define NC_IP6_IN_ERR_VER               13      /* バージョンエラー数            */
     404#define NC_IP6_IN_ERR_SHORT             14      /* 長さエラー数                       */
     405#define NC_IP6_IN_ERR_PACKETS           15      /* 受信エラーデータグラム数 */
     406#define NC_IP6_IN_PACKETS               16      /* 受信データグラム数            */
     407#define NC_IP6_IN_OCTETS                17      /* 受信オクテット数             */
     408#define NC_IP6_SIZE                     18      /* カウンタ数                        */
    423409
    424410#define NET_COUNT_IP6(v,c)      ((v)+=(c))
     
    438424#if NET_COUNT_ENABLE & PROTO_FLG_ICMP6
    439425
    440 #define NC_ICMP6_OUT_ERR_PACKETS        0       /* 送信エラー ICMP データ数    */
    441 #define NC_ICMP6_OUT_PACKETS            1       /* 送信 ICMP データ数             */
    442 #define NC_ICMP6_OUT_OCTETS             2       /* 送信 ICMP オクテット数               */
    443 #define NC_ICMP6_IN_ERR_CKSUM           3       /* 長さエラー数                   */
    444 #define NC_ICMP6_IN_ERR_PACKETS         4       /* 受信エラー ICMP データ数    */
    445 #define NC_ICMP6_IN_PACKETS             5       /* 受信 ICMP データ数             */
    446 #define NC_ICMP6_IN_OCTETS              6       /* 受信 ICMP オクテット数               */
    447 #define NC_ICMP6_SIZE                   7       /* カウンタ数                      */
     426#define NC_ICMP6_OUT_ERR_PACKETS        0       /* 送信エラー ICMP データ数      */
     427#define NC_ICMP6_OUT_PACKETS            1       /* 送信 ICMP データ数         */
     428#define NC_ICMP6_OUT_OCTETS             2       /* 送信 ICMP オクテット数               */
     429#define NC_ICMP6_IN_ERR_CKSUM           3       /* 長さエラー数                       */
     430#define NC_ICMP6_IN_ERR_PACKETS         4       /* 受信エラー ICMP データ数      */
     431#define NC_ICMP6_IN_PACKETS             5       /* 受信 ICMP データ数         */
     432#define NC_ICMP6_IN_OCTETS              6       /* 受信 ICMP オクテット数               */
     433#define NC_ICMP6_SIZE                   7       /* カウンタ数                        */
    448434
    449435#define NET_COUNT_ICMP6(v,c)    ((v)+=(c))
     
    463449#if NET_COUNT_ENABLE & PROTO_FLG_ND6
    464450
    465 #define NC_ND6_DAD_OUT_PACKETS          0       /* 重複アドレス検出送信数            */
    466 #define NC_ND6_NS_OUT_PACKETS           1       /* 近隣要請送信数                */
    467 #define NC_ND6_NS_IN_PACKETS            2       /* 近隣要請受信数                */
    468 #define NC_ND6_NA_OUT_PACKETS           3       /* 近隣通知送信数                */
    469 #define NC_ND6_NA_IN_PACKETS            4       /* 近隣通知受信数                */
    470 #define NC_ND6_RS_OUT_PACKETS           5       /* ルータ要請出力数             */
    471 #define NC_ND6_RA_IN_PACKETS            6       /* ルータ通知受信数             */
    472 #define NC_ND6_SIZE                     7       /* カウンタ数                      */
     451#define NC_ND6_DAD_OUT_PACKETS          0       /* 重複アドレス検出送信数          */
     452#define NC_ND6_NS_OUT_PACKETS           1       /* 近隣要請送信数              */
     453#define NC_ND6_NS_IN_PACKETS            2       /* 近隣要請受信数              */
     454#define NC_ND6_NA_OUT_PACKETS           3       /* 近隣通知送信数              */
     455#define NC_ND6_NA_IN_PACKETS            4       /* 近隣通知受信数              */
     456#define NC_ND6_RS_OUT_PACKETS           5       /* ルータ要請出力数             */
     457#define NC_ND6_RA_IN_PACKETS            6       /* ルータ通知受信数             */
     458#define NC_ND6_SIZE                     7       /* カウンタ数                        */
    473459
    474460#define NET_COUNT_ND6(v,c)      ((v)+=(c))
     
    494480#if NET_COUNT_ENABLE & PROTO_FLG_TCP
    495481
    496 #define NC_TCP_CONNECTS                 0       /* 能動オープン数                */
    497 #define NC_TCP_ACCEPTS                  1       /* 受動オープン数                */
    498 #define NC_TCP_RTT_UPDATES              2       /* RTT 更新数                        */
    499 #define NC_TCP_SEND_RSTS                3       /* 送信、RST 数                     */
    500 #define NC_TCP_SEND_ACKS                4       /* 送信、ACK 数                     */
    501 #define NC_TCP_SEND_URG_SEGS            5       /* 送信、緊急セグメント数    */
    502 #define NC_TCP_SEND_DATA_SEGS           6       /* 送信データセグメント数    */
    503 #define NC_TCP_SEND_REXMIT_SEGS         7       /* 再送信セグメント数          */
    504 #define NC_TCP_SEND_SEGS                8       /* 送信セグメント数             */
    505 #define NC_TCP_SEND_CNTL_SEGS           9       /* 送信制御セグメント数               */
    506 #define NC_TCP_SEND_DATA_OCTETS         10      /* 送信データオクテット数    */
    507 #define NC_TCP_FREE_RCV_QUEUE           11      /* 受信キュー解放数             */
    508 #define NC_TCP_RECV_DUP_SEGS            12      /* 受信、多重数                   */
    509 #define NC_TCP_RECV_DROP_SEGS           13      /* 受信、破棄数                   */
    510 #define NC_TCP_RECV_RSTS                14      /* 受信、RST 数                     */
    511 #define NC_TCP_RECV_DUP_ACKS            15      /* 受信、多重 ACK 数              */
    512 #define NC_TCP_RECV_ACKS                16      /* 受信、ACK 数                     */
    513 #define NC_TCP_RECV_BAD_CKSUMS          17      /* 受信、チェックサム不正数 */
    514 #define NC_TCP_RECV_BAD_HEADERS         18      /* 受信、ヘッダ不正数          */
    515 #define NC_TCP_RECV_URG_SEGS            19      /* 受信、緊急セグメント数    */
    516 #define NC_TCP_RECV_DATA_SEGS           20      /* 受信データセグメント数    */
    517 #define NC_TCP_RECV_SEGS                21      /* 受信セグメント数             */
    518 #define NC_TCP_RECV_DATA_OCTETS         22      /* 受信データオクテット数    */
    519 #define NC_TCP_RECV_OCTETS              23      /* 受信オクテット数             */
    520 #define NC_TCP_SIZE                     24      /* カウンタ数                      */
     482#define NC_TCP_CONNECTS                 0       /* 能動オープン数              */
     483#define NC_TCP_ACCEPTS                  1       /* 受動オープン数              */
     484#define NC_TCP_RTT_UPDATES              2       /* RTT 更新数                      */
     485#define NC_TCP_SEND_RSTS                3       /* 送信、RST 数                     */
     486#define NC_TCP_SEND_ACKS                4       /* 送信、ACK 数                     */
     487#define NC_TCP_SEND_URG_SEGS            5       /* 送信、緊急セグメント数  */
     488#define NC_TCP_SEND_DATA_SEGS           6       /* 送信データセグメント数  */
     489#define NC_TCP_SEND_REXMIT_SEGS         7       /* 再送信セグメント数            */
     490#define NC_TCP_SEND_SEGS                8       /* 送信セグメント数             */
     491#define NC_TCP_SEND_CNTL_SEGS           9       /* 送信制御セグメント数           */
     492#define NC_TCP_SEND_DATA_OCTETS         10      /* 送信データオクテット数  */
     493#define NC_TCP_FREE_RCV_QUEUE           11      /* 受信キュー解放数             */
     494#define NC_TCP_RECV_DUP_SEGS            12      /* 受信、多重数                       */
     495#define NC_TCP_RECV_DROP_SEGS           13      /* 受信、破棄数                       */
     496#define NC_TCP_RECV_RSTS                14      /* 受信、RST 数                     */
     497#define NC_TCP_RECV_DUP_ACKS            15      /* 受信、多重 ACK 数          */
     498#define NC_TCP_RECV_ACKS                16      /* 受信、ACK 数                     */
     499#define NC_TCP_RECV_BAD_CKSUMS          17      /* 受信、チェックサム不正数 */
     500#define NC_TCP_RECV_BAD_HEADERS         18      /* 受信、ヘッダ不正数            */
     501#define NC_TCP_RECV_URG_SEGS            19      /* 受信、緊急セグメント数  */
     502#define NC_TCP_RECV_DATA_SEGS           20      /* 受信データセグメント数  */
     503#define NC_TCP_RECV_SEGS                21      /* 受信セグメント数             */
     504#define NC_TCP_RECV_DATA_OCTETS         22      /* 受信データオクテット数  */
     505#define NC_TCP_RECV_OCTETS              23      /* 受信オクテット数             */
     506#define NC_TCP_SIZE                     24      /* カウンタ数                        */
    521507
    522508#define NET_COUNT_TCP(v,c)      ((v)+=(c))
     
    561547
    562548/*
    563  *  SNMP の 管理æƒ
    564 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     549 *  SNMP の 管理情報ベース (MIB)
    565550 */
    566551
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_jsp.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  JSP用 汎用ネットワークコンフィギュレーションファイル
     35 *  JSP用 汎用ネットワークコンフィギュレーションファイル
    4836 */
    4937
    5038
    5139/*
    52  *  å
    53 ±é€š 汎用ネットワークコンフィギュレーションファイルのインクルード
     40 *  共通 汎用ネットワークコンフィギュレーションファイルのインクルード
    5441 */
    5542
     
    5744
    5845/*
    59  * ネットワークバッファ
     46 * ネットワークバッファ
    6047 */
    6148
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_rename.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    4836
    4937/*
    50  *  汎用ネットワークインタフェースå†
    51 éƒ¨åã®ãƒªãƒãƒ¼ãƒ 
     38 *  汎用ネットワークインタフェース内部名のリネーム
    5239 */
    5340
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_subr.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    7866
    7967/*
    80  *  ネットワーク汎用サポートルーチン
     68 *  ネットワーク汎用サポートルーチン
    8169 */
    8270
     
    10391
    10492/*
    105  *  変数
     93 *  変数
    10694 */
    10795
     
    10997
    11098/*
    111  *  net_rand -- 乱数を返す。
     99 *  net_rand -- 乱数を返す。
    112100 */
    113101
     
    120108
    121109/*
    122  *  srand -- 乱数を初期化する。
     110 *  srand -- 乱数を初期化する。
    123111 */
    124112
     
    130118
    131119/*
    132  *  convert_hexdigit -- 16進数→文字列変換
     120 *  convert_hexdigit -- 16進数→文字列変換
    133121 */
    134122
     
    158146
    159147/*
    160  *  mac2str -- MAC アドレスを文字列に変換する。
     148 *  mac2str -- MAC アドレスを文字列に変換する。
    161149 */
    162150
     
    198186
    199187/*
    200  *  rev_memcpy_word -- 反転メモリコピー(4 バイト)
    201  *
    202  *    バイト単位にアクセスする事により、
    203  *    境界へのアラインの問題を解決する。
     188 *  rev_memcpy_word -- 反転メモリコピー(4 バイト)
     189 *
     190 *    バイト単位にアクセスする事により、
     191 *    境界へのアラインの問題を解決する。
    204192 */
    205193
     
    214202
    215203/*
    216  *  rev_memcmp_word -- 反転メモリ比較(4 バイト)
    217  *
    218  *    バイト単位にアクセスする事により、
    219  *    境界へのアラインの問題を解決する。
     204 *  rev_memcmp_word -- 反転メモリ比較(4 バイト)
     205 *
     206 *    バイト単位にアクセスする事により、
     207 *    境界へのアラインの問題を解決する。
    220208 */
    221209
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_timer.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    113101
    114102/*
    115  *  変数
     103 *  変数
    116104 */
    117105
     
    119107
    120108/*
    121  *  呼出しエントリ登録
     109 *  呼出しエントリ登録
    122110 */
    123111
     
    127115        int_t ix;
    128116
    129         /* 呼出しエントリを獲得する */
     117        /* 呼出しエントリを獲得する */
    130118        syscall(wai_sem(SEM_CALL_OUT_LOCK));
    131119        for (ix = NUM_NET_CALLOUT; callout[-- ix].func != NULL; )
     
    136124                        }
    137125
    138         /* 呼出しエントリを設定する */
     126        /* 呼出しエントリを設定する */
    139127        callout[ix].func        = func;
    140128        callout[ix].arg         = arg;
     
    144132
    145133/*
    146  *  呼出しエントリ削除
     134 *  呼出しエントリ削除
    147135 */
    148136
     
    152140        int_t ix;
    153141
    154         /* エントリを探す */
     142        /* エントリを探す */
    155143        for (ix = NUM_NET_CALLOUT; ix -- > 0; ) {
    156144                syscall(wai_sem(SEM_CALL_OUT_LOCK));
     
    165153
    166154/*
    167  *  ネットワークタイマタスク
    168  *
    169  *    注意: タスクコンテキストで実行するå¿
    170 è¦ãŒã‚るため,
    171  *          周期ハンドラは使用できない。
     155 *  ネットワークタイマタスク
     156 *
     157 *    注意: タスクコンテキストで実行する必要があるため,
     158 *          周期ハンドラは使用できない。
    172159 */
    173160
     
    193180        syslog(LOG_NOTICE, "[NET/TIMER:%d] started.", tskid);
    194181
    195         /* IP を初期化する。*/
     182        /* IP を初期化する。*/
    196183        IP_INIT();
    197184
    198185#ifdef SUPPORT_TCP
    199186
    200         /* TCP 出力タスクを起動する */
     187        /* TCP 出力タスクを起動する */
    201188        syscall(act_tsk(TCP_OUTPUT_TASK));
    202189
     
    205192#if defined(SUPPORT_UDP) && defined(UDP_CFG_NON_BLOCKING)
    206193
    207         /* UDP 出力タスクを起動する */
     194        /* UDP 出力タスクを起動する */
    208195        syscall(act_tsk(UDP_OUTPUT_TASK));
    209196
     
    211198
    212199        while (true) {
    213                 /* タイムアウトしたエントリを呼出す。*/
     200                /* タイムアウトしたエントリを呼出す。*/
    214201                syscall(wai_sem(SEM_CALL_OUT_TIMEOUT));
    215202                for (ix = NUM_NET_CALLOUT; ix -- > 0; ) {
     
    229216
    230217/*
    231  *  ネットワークタイマハンドラ
    232  *
    233  *    NET_TIMER_CYCLE (100ms) 毎に呼出される。
     218 *  ネットワークタイマハンドラ
     219 *
     220 *    NET_TIMER_CYCLE (100ms) 毎に呼出される。
    234221 */
    235222
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_timer.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8068#define _NET_TIMER_H_
    8169
    82 #include <tinet_kernel_defs.h>  /* カーネルに関する互換性定義ファイルをインクルードする。*/
     70#include <tinet_kernel_defs.h>  /* カーネルに関する互換性定義ファイルをインクルードする。*/
    8371
    8472/*
    85  *  TOPPERS/JSP カーネル、システム時刻 (SYSTIM) の周波数
     73 *  TOPPERS/JSP カーネル、システム時刻 (SYSTIM) の周波数
    8674 */
    8775
     
    8977
    9078/*
    91  *  ネットワークタイマの定義
     79 *  ネットワークタイマの定義
    9280 */
    9381
    94 #define NET_TIMER_CYCLE         ULONG_C(100)    /* [ms]、fast timeout 使用時の動作周期 */
    95                                                 /* タイマの周波数                        */
     82#define NET_TIMER_CYCLE         ULONG_C(100)    /* [ms]、fast timeout 使用時の動作周期   */
     83                                                /* タイマの周波数                      */
    9684#define NET_TIMER_HZ            (SYSTIM_HZ/NET_TIMER_CYCLE)
    9785
    9886#ifdef SUPPORT_INET6
    99 #define NUM_NET_CALLOUT         12              /* タイムアウト呼出し数、10 以上   */
     87#define NUM_NET_CALLOUT         12              /* タイムアウト呼出し数、10 以上     */
    10088#else
    101 #define NUM_NET_CALLOUT         10              /* タイムアウト呼出し数、10 以上   */
     89#define NUM_NET_CALLOUT         10              /* タイムアウト呼出し数、10 以上     */
    10290#endif
    10391
    10492/*
    105  *  タイムアウト呼出しエントリ
     93 *  タイムアウト呼出しエントリ
    10694 */
    10795
     
    10997
    11098typedef struct t_net_callout {
    111         callout_func    func;           /* 呼出す関数              */
    112         void            *arg;           /* 関数への引数           */
    113         RELTIM          timeout;        /* タイムアウト           */
     99        callout_func    func;           /* 呼出す関数                */
     100        void            *arg;           /* 関数への引数               */
     101        RELTIM          timeout;        /* タイムアウト               */
    114102        } T_NET_CALLOUT;
    115103
    116104/*
    117  *  関数
     105 *  関数
    118106 */
    119107
     
    122110
    123111/*
    124  *  ネットワークタイマタスクと周期ハンドラ
     112 *  ネットワークタイマタスクと周期ハンドラ
    125113 */
    126114
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_var.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8169
    8270/*
    83  *  関数
     71 *  関数
    8472 */
    8573
     
    8775
    8876/*
    89  *  関数
     77 *  関数
    9078 */
    9179
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.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$
     
    8068
    8169/*
    82  *  PPP 処理タスクの本体
     70 *  PPP 処理タスクの本体
    8371 */
    8472
     
    10997
    11098/*
    111  *  å
    112 ¨åŸŸå¤‰æ•°
    113  */
    114 
    115 uint8_t ppp_phase = PPP_PHASE_INITIALIZE;       /* リンクの状æ
    116 ‹               */
    117 
    118 /*
    119  *  プロトコル表
     99 *  全域変数
     100 */
     101
     102uint8_t ppp_phase = PPP_PHASE_INITIALIZE;       /* リンクの状態               */
     103
     104/*
     105 *  プロトコル表
    120106 */
    121107
     
    140126
    141127/*
    142  *  変数
     128 *  変数
    143129 */
    144130
     
    150136
    151137/*
    152  *  関数
     138 *  関数
    153139 */
    154140
     
    162148
    163149/*
    164  *  PPP å
    165 ¥åŠ›ã®è§£æž
     150 *  PPP 入力の解析
    166151 */
    167152
     
    176161        NET_COUNT_PPP(net_count_ppp.in_packets, 1);
    177162
    178         /* フレーム長をチェックする */
    179         if (input->len < sizeof(T_PPP_HDR)) {   /* FreeBSD では PPP_HDRLEN は 4 */
     163        /* フレーム長をチェックする */
     164        if (input->len < sizeof(T_PPP_HDR)) {   /* FreeBSD では PPP_HDRLEN は 4 */
    180165                syslog(LOG_NOTICE, "[PPP] recv short frame.");
    181166                goto buf_rel;
     
    184169        proto = ntohs(*GET_PPP_HDR(input));
    185170
    186         /* プロトコルが LCP 以外で、LCP がオープンされていなければエラー */
     171        /* プロトコルが LCP 以外で、LCP がオープンされていなければエラー */
    187172        if (proto != PPP_LCP && lcp_fsm.state != PPP_FSM_OPENED) {
    188173                syslog(LOG_NOTICE, "[PPP] LCP not open.");
     
    190175                }
    191176
    192         /* リンクが認証状æ
    193 ‹ä»¥å‰ã¯ã€LCP、LQR、PAP、CHAP のみ受け付ける */
     177        /* リンクが認証状態以前は、LCP、LQR、PAP、CHAP のみ受け付ける */
    194178        if (ppp_phase <= PPP_PHASE_AUTHENTICATE &&
    195179            !(proto == PPP_LCP || proto == PPP_LQR ||
     
    199183                }
    200184
    201         /* 上位プロトコルのå
    202 ¥åŠ›é–¢æ•°ã‚’呼出す */
     185        /* 上位プロトコルの入力関数を呼出す */
    203186        for (ix = 0; (entry = protocols[ix]) != NULL; ix ++) {
    204187                if (entry->proto == proto && entry->input != NULL) {
     
    222205
    223206/*
    224  *  ppp_output -- PPP インタフェースの出力関数
     207 *  ppp_output -- PPP インタフェースの出力関数
    225208 */
    226209
     
    232215#ifdef PPP_CFG_MODEM
    233216
    234 #if 0   /* 保留 */
    235         /* モデムの接続完了までå¾
    236 ã¤ã€‚*/
     217#if 0   /* 保留 */
     218        /* モデムの接続完了まで待つ。*/
    237219        if ((error = wait_modem()) != E_OK)
    238220                goto buf_ret;
     
    241223#endif  /* of #ifdef PPP_CFG_MODEM */
    242224
    243         /* IPCP の接続完了までå¾
    244 ã¤ã€‚*/
     225        /* IPCP の接続完了まで待つ。*/
    245226        if ((error = wait_ipcp()) != E_OK)
    246227                goto buf_ret;
     
    255236#endif  /* of #ifdef PPP_IDLE_TIMEOUT */
    256237
    257         /* PPP 出力キューに投å
    258 ¥ã™ã‚‹ã€‚*/
     238        /* PPP 出力キューに投入する。*/
    259239        if ((error = tsnd_dtq(DTQ_PPP_OUTPUT, output, tmout)) != E_OK)
    260240                goto buf_ret;
     
    278258
    279259/*
    280  *  ppp_cp_output -- CP フレームの送信
     260 *  ppp_cp_output -- CP フレームの送信
    281261 */
    282262
     
    286266        T_PPP_CP_HDR    *cph;
    287267
    288         /* CP ヘッダを設定する */
     268        /* CP ヘッダを設定する */
    289269        cph = GET_PPP_CP_HDR(output);
    290270        cph->code = code;
     
    292272        cph->len  = htons(output->len - sizeof(T_PPP_HDR));
    293273
    294         /* PPP 出力キューに投å
    295 ¥ã™ã‚‹ã€‚*/
     274        /* PPP 出力キューに投入する。*/
    296275        if (snd_dtq(DTQ_PPP_OUTPUT, output) != E_OK) {
    297276                syscall(rel_net_buf(output));
     
    301280
    302281/*
    303  *  PPP å
    304 ¥åŠ›ã‚¿ã‚¹ã‚¯
     282 *  PPP 入力タスク
    305283 */
    306284
     
    313291        int_t           ix;
    314292
    315         /* ポートを初期設定する */
     293        /* ポートを初期設定する */
    316294        syscall(serial_opn_por(HDLC_PORTID));
    317295        syscall(serial_ctl_por(HDLC_PORTID, IOCTL_FCSND | IOCTL_FCRCV));
     
    330308#endif  /* of #ifdef PPP_CFG_MODEM */
    331309
    332         /* ネットワークタイマタスクを起動する */
     310        /* ネットワークタイマタスクを起動する */
    333311        syscall(act_tsk(NET_TIMER_TASK));
    334312
    335         /* 上位プロトコルを初期化する */
     313        /* 上位プロトコルを初期化する */
    336314        for (ix = 0; (proto = protocols[ix]) != NULL; ix ++)
    337315                if (proto->init != NULL)
     
    341319        lcp_open(PPP_OPEN_PASSIVE);
    342320
    343         /* PPP 出力タスクを起動する */
     321        /* PPP 出力タスクを起動する */
    344322        syscall(act_tsk(PPP_OUTPUT_TASK));
    345323
     
    387365
    388366/*
    389  *  PPP 出力タスク
     367 *  PPP 出力タスク
    390368 */
    391369
     
    412390
    413391/*
    414  *  アイドルタイムアウト処理
     392 *  アイドルタイムアウト処理
    415393 */
    416394
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  PPP コンフィギュレーションファイル
     35 *  PPP コンフィギュレーションファイル
    4836 */
    4937
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8371
    8472/*
    85  *  PPP ヘッダのプロトコルフィールドの値
     73 *  PPP ヘッダのプロトコルフィールドの値
    8674 */
    8775
     
    9987
    10088/*
    101  *  リンクの状æ
    102 ‹
     89 *  リンクの状態
    10390 */
    10491
     
    114101
    115102/*
    116  *  PPP リンク制御 (CP) ヘッダ構造体
     103 *  PPP リンク制御 (CP) ヘッダ構造体
    117104 */
    118105
    119106typedef struct t_ppp_cp_hdr {
    120         uint8_t         code;           /* 制御コード      */
    121         uint8_t         id;             /* 識別子    */
    122         uint16_t        len;            /* 長さ               */
     107        uint8_t         code;           /* 制御コード        */
     108        uint8_t         id;             /* 識別子  */
     109        uint16_t        len;            /* 長さ           */
    123110        } __attribute__((packed, aligned(2)))T_PPP_CP_HDR;
    124111
     
    126113
    127114/*
    128  *  PPP リンク制御 (CP) の制御コード
     115 *  PPP リンク制御 (CP) の制御コード
    129116 */
    130117
     
    139126
    140127/*
    141  * 構成æƒ
    142 å ± (CI) ヘッダ
     128 * 構成情報 (CI) ヘッダ
    143129 */
    144130
    145131typedef struct t_ppp_ci_hdr {
    146         uint8_t         type;           /* CI の型    */
    147         uint8_t         len;            /* 長さ               */
     132        uint8_t         type;           /* CI の型        */
     133        uint8_t         len;            /* 長さ           */
    148134        } __attribute__((packed, aligned(2)))T_PPP_CI_HDR;
    149135
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_auth.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    123111
    124112/*
    125  *  定数
     113 *  定数
    126114 */
    127115
     
    132120
    133121/*
    134  *  network_phase -- コネクション確立
     122 *  network_phase -- コネクション確立
    135123 */
    136124
     
    143131        ppp_phase = PPP_PHASE_NETWORK;
    144132
    145         /* 上位プロトコルをオープンする */
     133        /* 上位プロトコルをオープンする */
    146134        num = 0;
    147135        for (ix = 0; (proto = protocols[ix]) != NULL; ix ++)
    148 #if 0   /* 保留、削除禁止 */
     136#if 0   /* 保留、削除禁止 */
    149137                if (proto->proto < 0xc000 && proto->open != NULL) {
    150138#else   /* of #if 0 */
     
    157145
    158146        if (num == 0)
    159                 /* 上位プロトコルがない */
     147                /* 上位プロトコルがない */
    160148                lcp_close();
    161149        else
     
    164152
    165153/*
    166  *  link_required -- リンクを開設する。
     154 *  link_required -- リンクを開設する。
    167155 */
    168156
     
    173161
    174162/*
    175  *  link_terminated -- ログアウトして、リンクを切断する。
     163 *  link_terminated -- ログアウトして、リンクを切断する。
    176164 */
    177165
     
    185173
    186174/*
    187  *  link_down -- リンクを解放する。
     175 *  link_down -- リンクを解放する。
    188176 */
    189177
     
    194182        T_PPP_PROTENT   *proto;
    195183
    196         /* 上位プロトコルを解放する */
     184        /* 上位プロトコルを解放する */
    197185        for (ix = 0; (proto = protocols[ix]) != NULL; ix ++) {
    198186                if (proto->proto != PPP_LCP && proto->lowerdown != NULL)
     
    207195
    208196/*
    209  *  link_established -- リンクの接続が確立した。
     197 *  link_established -- リンクの接続が確立した。
    210198 */
    211199
     
    222210#endif  /* of #if defined(LCP_CFG_CHAP) || defined(LCP_CFG_PAP) */
    223211
    224         /* 上位プロトコルを起動する */
     212        /* 上位プロトコルを起動する */
    225213        for (ix = 0; (proto = protocols[ix]) != NULL; ix ++)
    226214                if (proto->lowerup != NULL)
    227215                        (*proto->lowerup)();
    228216
    229         /* 認証オプションを確認する。【未実è£
    230 ã€‘*/
     217        /* 認証オプションを確認する。【未実装】*/
    231218
    232219        ppp_phase = PPP_PHASE_AUTHENTICATE;
     
    283270
    284271/*
    285  *  auth_reset -- 認証オプションを再確認する。
     272 *  auth_reset -- 認証オプションを再確認する。
    286273 */
    287274
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_auth.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    7260
    7361/*
    74  *  関数
     62 *  関数
    7563 */
    7664
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ccp.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    9785
    9886/*
    99  *  実è£
    100 äºˆå®šã€ç¾åœ¨ã¯ã™ã¹ã¦æ‹’否
     87 *  実装予定、現在はすべて拒否
    10188 */
    10289
     
    114101
    115102/*
    116  *  関数
     103 *  関数
    117104 */
    118105
     
    126113
    127114/*
    128  * FSM から呼出されるコールバック関
     115 * FSM から呼出されるコールバック関
    129116 */
    130117
    131118static int_t  ccp_reqci (T_PPP_FSM *fsm, T_NET_BUF *nbuf);
    132                                         /* 相手の構成æƒ
    133 å ±ã‚’確認する。   */
    134 
    135 /*
    136  *  å
    137 ¨åŸŸå¤‰æ•°
     119                                        /* 相手の構成情報を確認する。        */
     120
     121/*
     122 *  全域変数
    138123 */
    139124
    140125T_PPP_FSM_CALLBACKS ccp_callbacks = {
    141         NULL,                           /* 自構成æƒ
    142 å ±ã‚’リセットする。     */
    143         NULL,                           /* 構成æƒ
    144 å ±ã®é•·ã•ã‚’返す。                */
    145         NULL,                           /* 自構成æƒ
    146 å ±ã‚’追加する。           */
    147         NULL,                           /* ACK を受信したときの処理   */
    148         NULL,                           /* NAK を受信したときの処理   */
    149         NULL,                           /* REJ を受信したときの処理   */
    150         ccp_reqci,                      /* 相手の構成æƒ
    151 å ±ã‚’確認する。   */
    152         NULL,                           /* リンク接続を確立する。            */
    153         NULL,                           /* リンク接続を解放する。            */
    154         NULL,                           /* 下位層を開始する。          */
    155         NULL,                           /* 下位層を終了する。          */
    156         NULL,                           /* 再送する。                      */
    157         NULL,                           /* 不明な CP を受信したときの処理  */
     126        NULL,                           /* 自構成情報をリセットする。        */
     127        NULL,                           /* 構成情報の長さを返す。          */
     128        NULL,                           /* 自構成情報を追加する。          */
     129        NULL,                           /* ACK を受信したときの処理       */
     130        NULL,                           /* NAK を受信したときの処理       */
     131        NULL,                           /* REJ を受信したときの処理       */
     132        ccp_reqci,                      /* 相手の構成情報を確認する。        */
     133        NULL,                           /* リンク接続を確立する。          */
     134        NULL,                           /* リンク接続を解放する。          */
     135        NULL,                           /* 下位層を開始する。            */
     136        NULL,                           /* 下位層を終了する。            */
     137        NULL,                           /* 再送する。                        */
     138        NULL,                           /* 不明な CP を受信したときの処理    */
    158139        };
    159140
    160141T_PPP_FSM ccp_fsm = {
    161         &ccp_callbacks,                 /* コールバック関数             */
    162         PPP_CCP,                        /* プロトコル                      */
     142        &ccp_callbacks,                 /* コールバック関数             */
     143        PPP_CCP,                        /* プロトコル                        */
    163144        };
    164145
    165146T_PPP_PROTENT ccp_protent = {
    166147        PPP_CCP,
    167         ccp_init,                       /* 初期化                    */
    168         ccp_input,                      /* å
    169 ¥åŠ›                            */
    170         ccp_protrej,                    /* Proto-REJ 受信処理               */
    171         ccp_lowerup,                    /* 下位層を起動する             */
    172         ccp_lowerdown,                  /* 下位層を停止する             */
    173         ccp_open,                       /* オープンする                   */
    174         ccp_close,                      /* クローズする                   */
    175         NULL,                           /* データå
    176 ¥åŠ›                    */
     148        ccp_init,                       /* 初期化                  */
     149        ccp_input,                      /* 入力                           */
     150        ccp_protrej,                    /* Proto-REJ 受信処理               */
     151        ccp_lowerup,                    /* 下位層を起動する             */
     152        ccp_lowerdown,                  /* 下位層を停止する             */
     153        ccp_open,                       /* オープンする                       */
     154        ccp_close,                      /* クローズする                       */
     155        NULL,                           /* データ入力                        */
    177156        };
    178157
    179158/*
    180  *  ccp_init -- CCP モジュールの初期化
     159 *  ccp_init -- CCP モジュールの初期化
    181160 */
    182161
     
    188167
    189168/*
    190  *  ccp_input -- CCP å
    191 ¥åŠ›
     169 *  ccp_input -- CCP 入力
    192170 */
    193171
     
    201179
    202180/*
    203  *  ccp_reqci -- 相手の構成æƒ
    204 å ±ã‚’解析する。
     181 *  ccp_reqci -- 相手の構成情報を解析する。
    205182 */
    206183
     
    209186{
    210187/*
    211  *  実è£
    212 äºˆå®šã€ç¾åœ¨ã¯ã™ã¹ã¦ã®ã‚ªãƒ—ションを拒否する。
     188 *  実装予定、現在はすべてのオプションを拒否する。
    213189 */
    214190        return nbuf->len > (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) ? PPP_CONFREJ : PPP_CONFACK;
     
    216192
    217193/*
    218  *  ccp_protrej -- Proto-REJ を受信したときの処理
     194 *  ccp_protrej -- Proto-REJ を受信したときの処理
    219195 */
    220196
     
    226202
    227203/*
    228  *  ccp_lowerup -- CCP 下位層を起動する。
     204 *  ccp_lowerup -- CCP 下位層を起動する。
    229205 */
    230206
     
    236212
    237213/*
    238  *  ccp_lowerdown -- CCP 下位層を停止する。
     214 *  ccp_lowerdown -- CCP 下位層を停止する。
    239215 */
    240216
     
    246222
    247223/*
    248  *  ccp_open -- CCP のオープ
     224 *  ccp_open -- CCP のオープ
    249225 */
    250226
     
    256232
    257233/*
    258  *  ccp_close -- CCP のクローズ
     234 *  ccp_close -- CCP のクローズ
    259235 */
    260236
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ccp.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    10189
    10290/*
    103  *  変数
     91 *  変数
    10492 */
    10593
  • 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);
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_fsm.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    9381
    9482/*
    95  *  状æ
    96 ‹ç®¡ç†æ§‹é€ ä½“
     83 *  状態管理構造体
    9784 */
    9885
     
    10087
    10188typedef 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 の再送回数              */
    11298        } __attribute__((packed, aligned(2)))T_PPP_FSM;
    11399
     
    115101
    116102/*
    117  *  コールバック関数構造体
     103 *  コールバック関数構造体
    118104 */
    119105
    120106typedef 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 *);  /* 構成情報の長さを返す。          */
    125109        void (*addci)   (T_PPP_FSM *, T_NET_BUF *);
    126                                         /* 自構成æƒ
    127 å ±ã‚’追加する。           */
     110                                        /* 自構成情報を追加する。          */
    128111        bool_t (*ackci) (T_PPP_FSM *, T_NET_BUF *);
    129                                         /* ACK を受信したときの処理   */
     112                                        /* ACK を受信したときの処理       */
    130113        int_t  (*nakci) (T_PPP_FSM *, T_NET_BUF *);
    131                                         /* NAK を受信したときの処理   */
     114                                        /* NAK を受信したときの処理       */
    132115        int_t  (*rejci) (T_PPP_FSM *, T_NET_BUF *);
    133                                         /* REJ を受信したときの処理   */
     116                                        /* REJ を受信したときの処理       */
    134117        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 を受信したときの処理    */
    143125        bool_t  (*extcode)(T_PPP_FSM *, uint8_t, uint8_t, T_NET_BUF *);
    144126        } __attribute__((packed, aligned(2)))T_PPP_FSM_CALLBACKS;
    145127
    146128/*
    147  *  FSM の状æ
    148 ‹
     129 *  FSM の状態
    149130 */
    150131
    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       /* 接続、通信可能      */
    162142
    163143/*
    164  *  オープン時の動作モード
     144 *  オープン時の動作モード
    165145 */
    166146
    167 #define PPP_OPEN_PASSIVE        false   /* 受動オープン           */
    168 #define PPP_OPEN_ACTIVE         true    /* 能動オープン           */
     147#define PPP_OPEN_PASSIVE        false   /* 受動オープン               */
     148#define PPP_OPEN_ACTIVE         true    /* 能動オープン               */
    169149
    170150/*
    171  *  再送、タイムアウトの既定値
     151 *  再送、タイムアウトの既定値
    172152 */
    173153
    174154#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 回                      */
    182162
    183163/*
    184  *  関数
     164 *  関数
    185165 */
    186166
     
    194174
    195175/*
    196  *  変数
     176 *  変数
    197177 */
    198178
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_hdlc.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    8977
    9078/*
    91  *  RFC1171 (PPP) の HDLC 部の定義
    92  */
    93 
    94 /*
    95  *  変数
     79 *  RFC1171 (PPP) の HDLC 部の定義
     80 */
     81
     82/*
     83 *  変数
    9684 */
    9785
     
    9987
    10088/*
    101  *  関数
     89 *  関数
    10290 */
    10391
     
    10694
    10795/*
    108  *  genfcstab.c により作成した FCS のルックアップ表
    109  *  RFC1171 参ç
    110 §
     96 *  genfcstab.c により作成した FCS のルックアップ表
     97 *  RFC1171 参照
    11198 */
    11299
     
    179166
    180167/*
    181  *  インライン関数
     168 *  インライン関数
    182169 */
    183170
     
    187174
    188175/*
    189  *  HDLC_putoctet -- HDLC オクテット出力
     176 *  HDLC_putoctet -- HDLC オクテット出力
    190177 */
    191178
     
    211198
    212199/*
    213  *  HDLC_wirte -- HDLC 出力
     200 *  HDLC_wirte -- HDLC 出力
    214201 */
    215202
     
    240227        if (lcp_local_ack_cfg.options & LCP_CFG_ACCOMP) {
    241228                NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq));
    242                 /* フレーム開始フラグシーケンス を送信する    */
     229                /* フレーム開始フラグシーケンス を送信する    */
    243230                if ((error = serial_wri_dat(HDLC_PORTID, &flag_seq, sizeof(flag_seq))) < 0) {
    244231                        goto err_ret;
     
    249236
    250237                NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq_ac));
    251                 /* フレーム開始フラグシーケンス、Address と Control を送信する    */
     238                /* フレーム開始フラグシーケンス、Address と Control を送信する    */
    252239                if ((error = serial_wri_dat(HDLC_PORTID, flag_seq_ac, sizeof(flag_seq_ac))) < 0) {
    253240                        goto err_ret;
    254241                        }
    255                 /* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */
     242                /* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */
    256243                fcs = HDLC_INIT_FCS_AC;
    257244                }
     
    260247
    261248        NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq_ac));
    262         /* フレーム開始フラグシーケンス、Address と Control を送信する    */
     249        /* フレーム開始フラグシーケンス、Address と Control を送信する    */
    263250        if ((error = serial_wri_dat(HDLC_PORTID, flag_seq_ac, sizeof(flag_seq_ac))) < 0) {
    264251                goto err_ret;
    265252                }
    266         /* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */
     253        /* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */
    267254        fcs = HDLC_INIT_FCS_AC;
    268255
     
    281268#endif  /* of #ifdef LCP_CFG_PCOMP */
    282269
    283         /* データを送信する */
     270        /* データを送信する */
    284271        while (len -- > 0) {
    285272
     
    290277                }
    291278
    292         /* FCS を送信する */
     279        /* FCS を送信する */
    293280        fcs = ~fcs;
    294281        if ((error = HDLC_putoctet(fcs & 0xff)) != E_OK)
     
    297284                goto err_ret;
    298285
    299         /* フレーム終了フラグシーケンスを送信する */
     286        /* フレーム終了フラグシーケンスを送信する */
    300287        if ((error = serial_wri_dat(HDLC_PORTID, &flag_seq_ac[0], sizeof(char))) < 0)
    301288                goto err_ret;
     
    309296
    310297/*
    311  *  HDLC_getoctet -- HDLC オクテットå
    312 ¥åŠ›
    313  *
    314  *      戻り値が true ならフラグシーケンス
     298 *  HDLC_getoctet -- HDLC オクテット入力
     299 *
     300 *      戻り値が true ならフラグシーケンス
    315301 */
    316302
     
    320306        ER error;
    321307
    322         /* 1オクテットå
    323 ¥åŠ›ã™ã‚‹ */
     308        /* 1オクテット入力する */
    324309        if ((error = serial_rea_dat(HDLC_PORTID, octet, sizeof(uint8_t))) <= 0) {
    325310                return error;
    326311                }
    327312
    328         /* å
    329 ¥åŠ›ã—たオクテットがフラグシーケンスなら true を返す */
     313        /* 入力したオクテットがフラグシーケンスなら true を返す */
    330314        if (*octet == HDLC_FLAG_SEQ)
    331315                return true;
    332316
    333         /* å
    334 ¥åŠ›ã—たオクテットがエスケープなら、もう1オクテットå
    335 ¥åŠ›ã—マスクを解除する */
     317        /* 入力したオクテットがエスケープなら、もう1オクテット入力しマスクを解除する */
    336318        if (*octet == HDLC_CNTL_ESC) {
    337319                if ((error = serial_rea_dat(HDLC_PORTID, octet, sizeof(uint8_t))) <= 0)
     
    345327
    346328/*
    347  *  HDLC_read -- HDLC å
    348 ¥åŠ›
    349  *
    350  *      HDLC フレームをå
    351 ¥åŠ›ã™ã‚‹ã€‚
     329 *  HDLC_read -- HDLC 入力
     330 *
     331 *      HDLC フレームを入力する。
    352332 */
    353333
     
    361341        buf = nbuf->buf;
    362342
    363         /* フレーム開始フラグシーケンスまでå
    364 ¥åŠ›ã‚’読み飛ばす */
     343        /* フレーム開始フラグシーケンスまで入力を読み飛ばす */
    365344        while ((error = HDLC_getoctet(&octet)) != true) {
    366345
     
    371350
    372351                else if (octet == '\n') {
    373                         /* モデム制御を呼び出す。*/
     352                        /* モデム制御を呼び出す。*/
    374353                        modem_cntl(modem_getline(nbuf, size));
    375                         /* 一度、この関数を終了する。*/
     354                        /* 一度、この関数を終了する。*/
    376355                        nbuf->len = 0;
    377356                        return E_OK;
     
    382361                }
    383362
    384         /* フレーム開始フラグシーケンスの間はå
    385 ¥åŠ›ã‚’読み飛ばす */
     363        /* フレーム開始フラグシーケンスの間は入力を読み飛ばす */
    386364        while (1) {
    387365                if ((error = HDLC_getoctet(&octet)) == E_OK)
     
    393371        NET_COUNT_PPP_HDLC(net_count_hdlc.in_packets, 1);
    394372
    395         /* å
    396 ¥åŠ›ã—たオクテットは Address: All-Stations か */
     373        /* 入力したオクテットは Address: All-Stations か */
    397374        if (octet == HDLC_ADDR_ALL) {
    398375
    399                 /* 次は Control: UI */
     376                /* 次は Control: UI */
    400377                if ((error = HDLC_getoctet(&octet)) != E_OK || octet != HDLC_CNTL_UI) {
    401378                        error = E_SYS;
     
    404381                if ((error = HDLC_getoctet(&octet)) != E_OK)
    405382                        goto err_ret;
    406                 /* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */
     383                /* Address と Control の FCS の計算は HDLC_INIT_FCS_AC に含めている */
    407384                fcs = HDLC_INIT_FCS_AC;
    408385                }
     
    438415        nbuf->len ++;
    439416
    440         /* SUD + FCS をå
    441 ¥åŠ›ã™ã‚‹ */
     417        /* SUD + FCS を入力する */
    442418        while ((error = HDLC_getoctet(&octet)) == E_OK) {
    443419                fcs = Next_FCS(fcs, octet);
     
    464440                goto err_ret;
    465441
    466         /* FCS をチェックする */
     442        /* FCS をチェックする */
    467443        if (fcs != HDLC_GOOD_FCS) {
    468444                error = E_SYS;
     
    478454
    479455/*
    480  *  HDLC_dummy_read -- HDLC å
    481 ¥åŠ› (空読み)
    482  *
    483  *      HDLC フレームを空読みする。
     456 *  HDLC_dummy_read -- HDLC 入力 (空読み)
     457 *
     458 *      HDLC フレームを空読みする。
    484459 */
    485460
     
    490465        ER      error;
    491466
    492         /* フレーム開始フラグシーケンスまでå
    493 ¥åŠ›ã‚’読み飛ばす */
     467        /* フレーム開始フラグシーケンスまで入力を読み飛ばす */
    494468        while ((error = HDLC_getoctet(&octet)) != true) {
    495469                if (error != E_OK)
     
    497471                }
    498472
    499         /* フレーム開始フラグシーケンスの間はå
    500 ¥åŠ›ã‚’読み飛ばす */
     473        /* フレーム開始フラグシーケンスの間は入力を読み飛ばす */
    501474        while (octet == HDLC_FLAG_SEQ)
    502475                if (HDLC_getoctet(&octet) != E_OK)
    503476                        return;
    504477
    505         /* å
    506 ¥åŠ›ã—たオクテットは Address: All-Stations か */
     478        /* 入力したオクテットは Address: All-Stations か */
    507479        if (octet == HDLC_ADDR_ALL) {
    508480
    509                 /* 次は Control: UI */
     481                /* 次は Control: UI */
    510482                if (HDLC_getoctet(&octet) != E_OK || octet != HDLC_CNTL_UI)
    511483                        return;
     
    531503
    532504/*
    533  *  HDLC_raw_getoctet -- HDLC オクテット (Raw) å
    534 ¥åŠ›
     505 *  HDLC_raw_getoctet -- HDLC オクテット (Raw) 入力
    535506 */
    536507
     
    539510        uint8_t ch;
    540511
    541         /* 1オクテットå
    542 ¥åŠ›ã™ã‚‹ */
     512        /* 1オクテット入力する */
    543513        if (serial_rea_dat(HDLC_PORTID, &ch, sizeof(ch)) <= 0)
    544514                return '\0';
     
    549519
    550520/*
    551  *  HDLC_raw_putoctet -- HDLC オクテット (Raw) 出力
     521 *  HDLC_raw_putoctet -- HDLC オクテット (Raw) 出力
    552522 */
    553523
     
    555525{
    556526        NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, 1);
    557         /* 1オクテット出力する */
     527        /* 1オクテット出力する */
    558528        serial_wri_dat(HDLC_PORTID, &ch, sizeof(ch));
    559529        }
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_hdlc.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    7260
    7361/*
    74  *  RFC1171 (PPP) の HDLC 部の定義
     62 *  RFC1171 (PPP) の HDLC 部の定義
    7563 */
    7664
    7765/*
    78  *  既定値
     66 *  既定値
    7967 */
    8068
     
    9078
    9179/*
    92  *  関数
     80 *  関数
    9381 */
    9482
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    123111
    124112/*
    125  *  関数
     113 *  関数
    126114 */
    127115
     
    135123
    136124/*
    137  * FSM から呼出されるコールバック関
    138  */
    139 
    140 static void  ipcp_resetci(T_PPP_FSM *fsm);      /* 自構成æƒ
    141 å ±ã‚’リセットする。     */
    142 static int_t ipcp_cilen (T_PPP_FSM *fsm);       /* 構成æƒ
    143 å ±ã®é•·ã•ã‚’返す。                */
     125 * FSM から呼出されるコールバック関
     126 */
     127
     128static void  ipcp_resetci(T_PPP_FSM *fsm);      /* 自構成情報をリセットする。        */
     129static int_t ipcp_cilen (T_PPP_FSM *fsm);       /* 構成情報の長さを返す。          */
    144130static void  ipcp_addci (T_PPP_FSM *fsm, T_NET_BUF *output);
    145                                                 /* 自構成æƒ
    146 å ±ã‚’追加する。           */
     131                                                /* 自構成情報を追加する。          */
    147132static bool_t  ipcp_ackci       (T_PPP_FSM *fsm, T_NET_BUF *input);
    148                                                 /* ACK を受信したときの処理   */
     133                                                /* ACK を受信したときの処理       */
    149134static bool_t  ipcp_nakci       (T_PPP_FSM *fsm, T_NET_BUF *input);
    150                                                 /* NAK を受信したときの処理   */
     135                                                /* NAK を受信したときの処理       */
    151136static bool_t  ipcp_rejci       (T_PPP_FSM *fsm, T_NET_BUF *input);
    152                                                 /* REJ を受信したときの処理   */
     137                                                /* REJ を受信したときの処理       */
    153138static int_t ipcp_reqci (T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output);
    154                                                 /* 相手の構成æƒ
    155 å ±ã‚’確認する。   */
    156 static void ipcp_up     (T_PPP_FSM *fsm);       /* リンク接続を確立する。            */
    157 static void ipcp_down   (T_PPP_FSM *fsm);       /* リンク接続を解放する。            */
    158 static void ipcp_finished(T_PPP_FSM *fsm);      /* 下位層を終了する。          */
    159 
    160 /*
    161  *  変数
    162  */
    163 
    164 static T_IFNET ipcp_local_def_cfg = {           /* 自構成æƒ
    165 å ±ã®è¦å®šå€¤         */
     139                                                /* 相手の構成情報を確認する。        */
     140static void ipcp_up     (T_PPP_FSM *fsm);       /* リンク接続を確立する。          */
     141static void ipcp_down   (T_PPP_FSM *fsm);       /* リンク接続を解放する。          */
     142static void ipcp_finished(T_PPP_FSM *fsm);      /* 下位層を終了する。            */
     143
     144/*
     145 *  変数
     146 */
     147
     148static T_IFNET ipcp_local_def_cfg = {           /* 自構成情報の規定値            */
    166149        NULL,
    167150        {
    168                 IPV4_ADDR_LOCAL,                /* IP アドレス                      */
    169                 UINT_C(0),                      /* サブネットマスク             */
     151                IPV4_ADDR_LOCAL,                /* IP アドレス                      */
     152                UINT_C(0),                      /* サブネットマスク             */
    170153                },
    171154        };
    172155
    173 static T_IFNET ipcp_remote_def_cfg = {          /* 相手の構成æƒ
    174 å ±ã®è¦å®šå€¤ */
     156static T_IFNET ipcp_remote_def_cfg = {          /* 相手の構成情報の規定値  */
    175157        NULL,
    176158        {
    177                 IPV4_ADDR_REMOTE,               /* IP アドレス                      */
    178                 UINT_C(0),                      /* サブネットマスク             */
     159                IPV4_ADDR_REMOTE,               /* IP アドレス                      */
     160                UINT_C(0),                      /* サブネットマスク             */
    179161                }
    180162        };
    181163
    182 static T_IFNET ipcp_local_neg_cfg;              /* ネゴ中の自構成æƒ
    183 å ±             */
    184 
    185 static T_IFNET ipcp_remote_neg_cfg;             /* ネゴ中の相手の構成æƒ
    186 å ±             */
    187 
    188 /*
    189  *  å
    190 ¨åŸŸå¤‰æ•°
     164static T_IFNET ipcp_local_neg_cfg;              /* ネゴ中の自構成情報            */
     165
     166static T_IFNET ipcp_remote_neg_cfg;             /* ネゴ中の相手の構成情報          */
     167
     168/*
     169 *  全域変数
    191170 */
    192171
    193172T_PPP_FSM_CALLBACKS ipcp_callbacks = {
    194         ipcp_resetci,                   /* 自構成æƒ
    195 å ±ã‚’リセットする。     */
    196         ipcp_cilen,                     /* 構成æƒ
    197 å ±ã®é•·ã•ã‚’返す。                */
    198         ipcp_addci,                     /* 自構成æƒ
    199 å ±ã‚’追加する。           */
    200         ipcp_ackci,                     /* ACK を受信したときの処理   */
    201         ipcp_nakci,                     /* NAK を受信したときの処理   */
    202         ipcp_rejci,                     /* REJ を受信したときの処理   */
    203         ipcp_reqci,                     /* 相手の構成æƒ
    204 å ±ã‚’確認する。   */
    205         ipcp_up,                        /* リンク接続を確立する。            */
    206         ipcp_down,                      /* リンク接続を解放する。            */
    207         NULL,                           /* 下位層を開始する。          */
    208         ipcp_finished,                  /* 下位層を終了する。          */
    209         NULL,                           /* 再送する。                      */
    210         NULL,                           /* 不明な CP を受信したときの処理  */
     173        ipcp_resetci,                   /* 自構成情報をリセットする。        */
     174        ipcp_cilen,                     /* 構成情報の長さを返す。          */
     175        ipcp_addci,                     /* 自構成情報を追加する。          */
     176        ipcp_ackci,                     /* ACK を受信したときの処理       */
     177        ipcp_nakci,                     /* NAK を受信したときの処理       */
     178        ipcp_rejci,                     /* REJ を受信したときの処理       */
     179        ipcp_reqci,                     /* 相手の構成情報を確認する。        */
     180        ipcp_up,                        /* リンク接続を確立する。          */
     181        ipcp_down,                      /* リンク接続を解放する。          */
     182        NULL,                           /* 下位層を開始する。            */
     183        ipcp_finished,                  /* 下位層を終了する。            */
     184        NULL,                           /* 再送する。                        */
     185        NULL,                           /* 不明な CP を受信したときの処理    */
    211186        };
    212187
    213188T_PPP_FSM ipcp_fsm = {
    214         &ipcp_callbacks,                /* コールバック関数             */
    215         PPP_IPCP,                       /* プロトコル                      */
     189        &ipcp_callbacks,                /* コールバック関数             */
     190        PPP_IPCP,                       /* プロトコル                        */
    216191        };
    217192
    218193T_PPP_PROTENT ipcp_protent = {
    219194        PPP_IPCP,
    220         ipcp_init,                      /* 初期化                    */
    221         ipcp_input,                     /* å
    222 ¥åŠ›                            */
    223         ipcp_protrej,                   /* Proto-REJ 受信処理               */
    224         ipcp_lowerup,                   /* 下位層を起動する             */
    225         ipcp_lowerdown,                 /* 下位層を停止する             */
    226         ipcp_open,                      /* オープンする                   */
    227         ipcp_close,                     /* クローズする                   */
    228         ip_input,                       /* データå
    229 ¥åŠ›ã€IP å
    230 ¥åŠ›            */
     195        ipcp_init,                      /* 初期化                  */
     196        ipcp_input,                     /* 入力                           */
     197        ipcp_protrej,                   /* Proto-REJ 受信処理               */
     198        ipcp_lowerup,                   /* 下位層を起動する             */
     199        ipcp_lowerdown,                 /* 下位層を停止する             */
     200        ipcp_open,                      /* オープンする                       */
     201        ipcp_close,                     /* クローズする                       */
     202        ip_input,                       /* データ入力、IP 入力          */
    231203        };
    232204
    233 T_IFNET ipcp_local_ack_cfg;             /* 相手に許可されたの自構成æƒ
    234 å ±     */
    235 T_IFNET ipcp_remote_ack_cfg;            /* 相手に許可した構成æƒ
    236 å ±     */
    237 
    238 /*
    239  *  ppp_get_ifnet -- ネットワークインタフェース構造体を返す。
     205T_IFNET ipcp_local_ack_cfg;             /* 相手に許可されたの自構成情報       */
     206T_IFNET ipcp_remote_ack_cfg;            /* 相手に許可した構成情報  */
     207
     208/*
     209 *  ppp_get_ifnet -- ネットワークインタフェース構造体を返す。
    240210 */
    241211
     
    247217
    248218/*
    249  *  wait_ipcp -- IP 接続完了までå¾
    250 ã¤ã€‚
    251  *
    252  *      戻り値: 接続に失敗したら E_OBJ を返す。
     219 *  wait_ipcp -- IP 接続完了まで待つ。
     220 *
     221 *      戻り値: 接続に失敗したら E_OBJ を返す。
    253222 */
    254223
     
    264233#ifdef PPP_CFG_MODEM
    265234
    266                 /* モデムの接続完了までå¾
    267 ã¤ã€‚*/
     235                /* モデムの接続完了まで待つ。*/
    268236                if ((error = wait_modem()) != E_OK)
    269237                        return error;
     
    272240
    273241                /*
    274                  * 受動オープンし、相手からの接続å¾
    275 ã¡ãªã‚‰ LCP を一度クローズし、
    276                  * 能動オープン状æ
    277 ‹ã§ã€å†ã‚ªãƒ¼ãƒ—ンする。
     242                 * 受動オープンし、相手からの接続待ちなら LCP を一度クローズし、
     243                 * 能動オープン状態で、再オープンする。
    278244                 */
    279245                lcp_close();
     
    285251
    286252        if (ipcp_fsm.state != PPP_FSM_OPENED) {
    287                 /* IP 接続完了までå¾
    288 ã¤ã€‚*/
     253                /* IP 接続完了まで待つ。*/
    289254                wai_sem(SEM_IPCP_READY);
    290255                if (ipcp_fsm.state != PPP_FSM_OPENED)
     
    296261
    297262/*
    298  *  ipcp_init -- IPCP モジュールの初期化
     263 *  ipcp_init -- IPCP モジュールの初期化
    299264 */
    300265
     
    306271
    307272/*
    308  *  ipcp_input -- IPCP å
    309 ¥åŠ›
     273 *  ipcp_input -- IPCP 入力
    310274 */
    311275
     
    319283
    320284/*
    321  *  ipcp_resetci -- IPCPの構成æƒ
    322 å ±ã‚’リセットする。
     285 *  ipcp_resetci -- IPCPの構成情報をリセットする。
    323286 */
    324287
     
    326289ipcp_resetci (T_PPP_FSM *fsm)
    327290{
    328         /* 自構成æƒ
    329 å ±ã®åˆæœŸè¨­å®š */
     291        /* 自構成情報の初期設定 */
    330292        ipcp_local_neg_cfg = ipcp_local_def_cfg;
    331293        memset((void*)&ipcp_local_ack_cfg, 0, sizeof(T_IFNET));
    332294
    333         /* 相手の構成æƒ
    334 å ±ã®åˆæœŸè¨­å®š */
     295        /* 相手の構成情報の初期設定 */
    335296        ipcp_remote_neg_cfg = ipcp_remote_def_cfg;
    336297        memset((void*)&ipcp_remote_ack_cfg, 0, sizeof(T_IFNET));
     
    338299
    339300/*
    340  *  ipcp_cilen -- 構成æƒ
    341 å ±ã®é•·ã•ã‚’返す。
     301 *  ipcp_cilen -- 構成情報の長さを返す。
    342302 */
    343303
     
    347307        int_t cilen = 0;
    348308
    349         cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);       /* IP アドレス */
     309        cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);       /* IP アドレス */
    350310
    351311        return cilen;
     
    353313
    354314/*
    355  *  ipcp_addci -- IPCPの構成æƒ
    356 å ±ã‚’追加する。
     315 *  ipcp_addci -- IPCPの構成情報を追加する。
    357316 */
    358317
     
    364323        buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    365324
    366         /* IP アドレスオプションを追加する。 */
     325        /* IP アドレスオプションを追加する。 */
    367326        *buf ++ = IPCP_CIT_ADDR;
    368327        *buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
     
    372331
    373332/*
    374  *  ipcp_ackci -- ACK を受信したときの処理
    375  *
    376  *      戻り値:      true  ACK は正常
    377  *              false ACK は異常
     333 *  ipcp_ackci -- ACK を受信したときの処理
     334 *
     335 *      戻り値:    true  ACK は正常
     336 *              false ACK は異常
    378337 */
    379338
     
    388347
    389348        /*
    390          *  構成æƒ
    391 å ±ã¯é€ä¿¡ã—た順に完å
    392 ¨ã«ä¸€è‡´ã—なければならない。
    393          *  従って、ipcp_addci で作成した順に解析する。
     349         *  構成情報は送信した順に完全に一致しなければならない。
     350         *  従って、ipcp_addci で作成した順に解析する。
    394351         */
    395352
    396         /* ADDR オプションを解析する。 */
     353        /* ADDR オプションを解析する。 */
    397354        if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)       ||
    398355            *buf ++ != IPCP_CIT_ADDR                    ||
     
    407364
    408365/*
    409  *  ipcp_nakci -- NAK を受信したときの処理
    410  *
    411  *      戻り値:      1  NAK は正常
    412  *              0  NAK は異常
     366 *  ipcp_nakci -- NAK を受信したときの処理
     367 *
     368 *      戻り値:    1  NAK は正常
     369 *              0  NAK は異常
    413370 */
    414371
     
    426383        new_cfg = ipcp_local_neg_cfg;
    427384
    428         /* ADDR オプションを解析する。 */
     385        /* ADDR オプションを解析する。 */
    429386        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)              &&
    430387            * buf      == IPCP_CIT_ADDR                         &&
     
    436393                }
    437394
    438         /* 後は無視する。*/
     395        /* 後は無視する。*/
    439396        while (len > sizeof(T_PPP_CI_HDR)) {
    440397                cilen = *(buf + 1);
     
    445402                }
    446403
    447         /* 長さが 0 でなければエラー */
     404        /* 長さが 0 でなければエラー */
    448405        if (len != 0)
    449406                return 0;
    450407
    451         /* 新しいオプションを設定する。*/
     408        /* 新しいオプションを設定する。*/
    452409        if (fsm->state != PPP_FSM_OPENED)
    453410                ipcp_local_neg_cfg = new_cfg;
     
    457414
    458415/*
    459  *  ipcp_rejci -- REJ を受信したときの処理
    460  *
    461  *      戻り値:      1  REJ は正常
    462  *              0  REJ は異常
     416 *  ipcp_rejci -- REJ を受信したときの処理
     417 *
     418 *      戻り値:    1  REJ は正常
     419 *              0  REJ は異常
    463420 */
    464421
     
    475432        new_cfg = ipcp_local_neg_cfg;
    476433
    477         /* ADDR オプションを解析する。 */
     434        /* ADDR オプションを解析する。 */
    478435        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)              &&
    479436            * buf      == IPCP_CIT_ADDR                         &&
     
    484441                }
    485442
    486         /* 長さが 0 でなければエラー */
     443        /* 長さが 0 でなければエラー */
    487444        if (len != 0)
    488445                return 0;
    489446
    490         /* 新しいオプションを設定する。*/
     447        /* 新しいオプションを設定する。*/
    491448        if (fsm->state != PPP_FSM_OPENED)
    492449                ipcp_local_neg_cfg = new_cfg;
     
    496453
    497454/*
    498  *  ipcp_reqci -- 相手の構成æƒ
    499 å ±ã‚’解析する。
     455 *  ipcp_reqci -- 相手の構成情報を解析する。
    500456 */
    501457
     
    508464
    509465        rp = ap = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    510                                 /* rp: REJ、ap: ACK する CI のポインタ  */
    511                                 /* 拒否する場合は、引数 buf に上書きする。     */
     466                                /* rp: REJ、ap: ACK する CI のポインタ  */
     467                                /* 拒否する場合は、引数 buf に上書きする。       */
    512468        len   = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
    513469        np    = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    514         final = PPP_CONFACK;    /* 最終的に送信するコード */
     470        final = PPP_CONFACK;    /* 最終的に送信するコード */
    515471        while (len > 0) {
    516472                code = PPP_CONFACK;
    517                 cp   = ap;      /* cp: 現在処理中の CI    */
     473                cp   = ap;      /* cp: 現在処理中の CI        */
    518474
    519475                if (len < sizeof(T_PPP_CI_HDR)) {
    520476
    521                         /* 残りが CI ヘッダより短い */
     477                        /* 残りが CI ヘッダより短い */
    522478                        syslog(LOG_NOTICE, "[PPP/IPCP] bad CI len: %d.", len);
    523                         cilen = len;    /* データ長が異常の場合の処置      */
    524                         len  = 0;       /* ループから抜ける。          */
     479                        cilen = len;    /* データ長が異常の場合の処置        */
     480                        len  = 0;       /* ループから抜ける。            */
    525481                        code  = PPP_CONFREJ;
    526482                        goto endswitch;
    527483                        }
    528484
    529                 type  = *ap ++; /* CI の型            */
    530                 cilen = *ap ++; /* CI の長さ         */
     485                type  = *ap ++; /* CI の型                */
     486                cilen = *ap ++; /* CI の長さ               */
    531487                if (len < cilen) {
    532488
    533                         /* 残りが CI 長より短い */
     489                        /* 残りが CI 長より短い */
    534490                        syslog(LOG_NOTICE, "[PPP/IPCP] bad CI len: %d.", cilen);
    535                         cilen = len;    /* データ長が異常の場合の処置      */
    536                         len  = 0;       /* ループから抜ける。          */
     491                        cilen = len;    /* データ長が異常の場合の処置        */
     492                        len  = 0;       /* ループから抜ける。            */
    537493                        code  = PPP_CONFREJ;
    538494                        goto endswitch;
     
    540496                len -= sizeof(T_PPP_CI_HDR);
    541497
    542                 /* CI の型により分岐する。*/
     498                /* CI の型により分岐する。*/
    543499                switch (type) {
    544500
    545                 case IPCP_CIT_ADDR:     /* IP アドレス */
    546 
    547                         /* CI 長が、ヘッダ + 4 オクテットでなければエラー */
     501                case IPCP_CIT_ADDR:     /* IP アドレス */
     502
     503                        /* CI 長が、ヘッダ + 4 オクテットでなければエラー */
    548504                        if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t))
    549505                                code = PPP_CONFREJ;
     
    558514                                        code = PPP_CONFNAK;
    559515                                        }
    560 #if 1   /* 要確認 */
     516#if 1   /* 要確認 */
    561517                                else if (addr == 0 && ipcp_remote_neg_cfg.in_ifaddr.addr == 0)
    562518#else
     
    577533
    578534                if (code == PPP_CONFNAK) {
    579                         /* CI の型が Magic Number の場合を除いて、NAK の回数が   */
    580                         /* 最大値 MAX_PPP_FAILURES  をè¶
    581 ãˆãŸã‚‰æ‹’否する。        */
     535                        /* CI の型が Magic Number の場合を除いて、NAK の回数が */
     536                        /* 最大値 MAX_PPP_FAILURES  を超えたら拒否する。     */
    582537                        if (fsm->failures >= MAX_PPP_FAILURES)
    583538                                code = PPP_CONFREJ;
     
    586541                        }
    587542
    588                 /* この CI を拒否する */
     543                /* この CI を拒否する */
    589544                if (code == PPP_CONFREJ) {
    590                         if (rp < cp)            /* 前に詰める。*/
     545                        if (rp < cp)            /* 前に詰める。*/
    591546                                memcpy(rp, cp, cilen);
    592547                        rp += cilen;
     
    598553                }
    599554
    600         /* 最終的な長さを調整する。*/
     555        /* 最終的な長さを調整する。*/
    601556        switch (final) {
    602557        case PPP_CONFNAK:
     
    616571
    617572/*
    618  *  ipcp_up -- リンク接続を確立する。
     573 *  ipcp_up -- リンク接続を確立する。
    619574 */
    620575
     
    622577ipcp_up (T_PPP_FSM *fsm)
    623578{
    624         /* 自構成æƒ
    625 å ±ã®åˆæœŸè¨­å®š */
     579        /* 自構成情報の初期設定 */
    626580        ipcp_local_ack_cfg = ipcp_local_neg_cfg;
    627581
    628582        /*
    629          *  サブネットマスクと
    630          *  ローカル・ブロードキャスト IP アドレスを設定する。
     583         *  サブネットマスクと
     584         *  ローカル・ブロードキャスト IP アドレスを設定する。
    631585         */
    632586        ipcp_local_ack_cfg.in_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_local_neg_cfg.in_ifaddr.addr);
    633587
    634         /* 相手の構成æƒ
    635 å ±ã®åˆæœŸè¨­å®š */
     588        /* 相手の構成情報の初期設定 */
    636589        ipcp_remote_ack_cfg = ipcp_remote_neg_cfg;
    637590
    638591        /*
    639          *  サブネットマスクと
    640          *  ローカル・ブロードキャスト IP アドレスを設定する。
     592         *  サブネットマスクと
     593         *  ローカル・ブロードキャスト IP アドレスを設定する。
    641594         */
    642595        ipcp_remote_ack_cfg.in_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_remote_neg_cfg.in_ifaddr.addr);
     
    650603
    651604/*
    652  *  ipcp_down -- リンク接続を解放する。
     605 *  ipcp_down -- リンク接続を解放する。
    653606 */
    654607
     
    661614
    662615/*
    663  *  ipcp_finished -- 下位層を終了する。
     616 *  ipcp_finished -- 下位層を終了する。
    664617 */
    665618
     
    670623
    671624/*
    672  *  ipcp_protrej -- Proto-REJ を受信したときの処理
     625 *  ipcp_protrej -- Proto-REJ を受信したときの処理
    673626 */
    674627
     
    680633
    681634/*
    682  *  ipcp_lowerup -- IPCP 下位層を起動する。
     635 *  ipcp_lowerup -- IPCP 下位層を起動する。
    683636 */
    684637
     
    690643
    691644/*
    692  *  ipcp_lowerdown -- IPCP 下位層を停止する。
     645 *  ipcp_lowerdown -- IPCP 下位層を停止する。
    693646 */
    694647
     
    700653
    701654/*
    702  *  ipcp_open -- IPCP のオープン
     655 *  ipcp_open -- IPCP のオープン
    703656 */
    704657
     
    710663
    711664/*
    712  *  ipcp_close -- IPCP のクローズ
     665 *  ipcp_close -- IPCP のクローズ
    713666 */
    714667
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    9381
    9482/*
    95  *  IPCP の構成æƒ
    96 å ± (CI)
     83 *  IPCP の構成情報 (CI)
    9784 */
    9885
    9986/*
    100  *  CI の型
     87 *  CI の型
    10188 */
    10289
    103 #define IPCP_CIT_ADDRS          UINT_C(1)       /* IP アドレス (廃棄)     */
    104 #define IPCP_CIT_COMP_TYPE      UINT_C(2)       /* 圧縮方式         */
    105 #define IPCP_CIT_ADDR           UINT_C(3)       /* IP アドレス              */
     90#define IPCP_CIT_ADDRS          UINT_C(1)       /* IP アドレス (廃棄) */
     91#define IPCP_CIT_COMP_TYPE      UINT_C(2)       /* 圧縮方式         */
     92#define IPCP_CIT_ADDR           UINT_C(3)       /* IP アドレス              */
    10693
    10794/*
    108  *  前方参ç
    109 §
     95 *  前方参照
    11096 */
    11197
     
    119105
    120106/*
    121  *  変数
     107 *  変数
    122108 */
    123109
     
    134120
    135121/*
    136  *  関数
     122 *  関数
    137123 */
    138124
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_lcp.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$
     
    112100
    113101/*
    114  *  関数
     102 *  関数
    115103 */
    116104
     
    130118
    131119/*
    132  * FSM から呼出されるコールバック関数
    133  */
    134 
    135 static void  lcp_resetci(T_PPP_FSM *fsm);       /* 自構成æƒ
    136 å ±ã‚’リセットする。     */
    137 static int_t lcp_cilen  (T_PPP_FSM *fsm);       /* 構成æƒ
    138 å ±ã®é•·ã•ã‚’返す。                */
     120 * FSM から呼出されるコールバック関数
     121 */
     122
     123static void  lcp_resetci(T_PPP_FSM *fsm);       /* 自構成情報をリセットする。        */
     124static int_t lcp_cilen  (T_PPP_FSM *fsm);       /* 構成情報の長さを返す。          */
    139125static void  lcp_addci  (T_PPP_FSM *fsm, T_NET_BUF *output);
    140                                                 /* 自構成æƒ
    141 å ±ã‚’追加する。           */
     126                                                /* 自構成情報を追加する。          */
    142127static bool_t lcp_ackci (T_PPP_FSM *fsm, T_NET_BUF *input);
    143                                                 /* ACK を受信したときの処理   */
     128                                                /* ACK を受信したときの処理       */
    144129static bool_t lcp_nakci (T_PPP_FSM *fsm, T_NET_BUF *input);
    145                                                 /* NAK を受信したときの処理   */
     130                                                /* NAK を受信したときの処理       */
    146131static bool_t lcp_rejci (T_PPP_FSM *fsm, T_NET_BUF *input);
    147                                                 /* REJ を受信したときの処理   */
     132                                                /* REJ を受信したときの処理       */
    148133static int_t lcp_reqci  (T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output);
    149                                                 /* 相手の構成æƒ
    150 å ±ã‚’確認する。   */
    151 static void lcp_up      (T_PPP_FSM *fsm);       /* リンク接続を確立する。            */
    152 static void lcp_starting(T_PPP_FSM *fsm);       /* 下位層を開始する。          */
     134                                                /* 相手の構成情報を確認する。        */
     135static void lcp_up      (T_PPP_FSM *fsm);       /* リンク接続を確立する。          */
     136static void lcp_starting(T_PPP_FSM *fsm);       /* 下位層を開始する。            */
    153137static bool_t lcp_extcode       (T_PPP_FSM *fsm, uint8_t code, uint8_t id, T_NET_BUF *input);
    154                                                 /* 不明な CP を受信したときの処理  */
     138                                                /* 不明な CP を受信したときの処理    */
    155139static void lcp_rprotrej(T_PPP_FSM *fsm, T_NET_BUF *input);
    156                                                 /* Proto-REJ を受信したときの処理     */
    157 /*
    158  *  変数
    159  */
    160 
    161 static T_LCP_CONFIGS lcp_def_cfg = {            /* 構成æƒ
    162 å ±ã®åˆæœŸè¨­å®šå€¤           */
     140                                                /* Proto-REJ を受信したときの処理 */
     141/*
     142 *  変数
     143 */
     144
     145static T_LCP_CONFIGS lcp_def_cfg = {            /* 構成情報の初期設定値           */
    163146        DEF_REMOTE_ACCM,                        /* ACCM                         */
    164147
    165148#ifdef LCP_CFG_MAGIC
    166149
    167         ULONG_C(0),                             /* マジック番号                   */
     150        ULONG_C(0),                             /* マジック番号                       */
    168151
    169152#endif  /* of #ifdef LCP_CFG_MAGIC */
    170153
    171154        DEF_PPP_MTU,                            /* MRU                          */
    172         UINT_C(0),                              /* オプションフラグ             */
     155        UINT_C(0),                              /* オプションフラグ             */
    173156        };
    174157
    175 static T_LCP_CONFIGS lcp_local_def_cfg = {      /* 自構成æƒ
    176 å ±ã®è¦å®šå€¤         */
     158static T_LCP_CONFIGS lcp_local_def_cfg = {      /* 自構成情報の規定値            */
    177159        DEF_LOCAL_ACCM,                         /* ACCM                         */
    178160
    179161#ifdef LCP_CFG_MAGIC
    180162
    181         ULONG_C(0),                             /* マジック番号                   */
     163        ULONG_C(0),                             /* マジック番号                       */
    182164
    183165#endif  /* of #ifdef LCP_CFG_MAGIC */
    184166
    185167        DEF_PPP_MTU,                            /* MRU                          */
    186         DEF_LCP_LOCAL_CFGS,                     /* オプションフラグ             */
     168        DEF_LCP_LOCAL_CFGS,                     /* オプションフラグ             */
    187169        };
    188170
    189 static T_LCP_CONFIGS lcp_local_neg_cfg;         /* ネゴ中の自構成æƒ
    190 å ±             */
    191 
    192 static T_LCP_CONFIGS lcp_remote_neg_cfg;        /* ネゴ中の相手の構成æƒ
    193 å ±             */
     171static T_LCP_CONFIGS lcp_local_neg_cfg;         /* ネゴ中の自構成情報            */
     172
     173static T_LCP_CONFIGS lcp_remote_neg_cfg;        /* ネゴ中の相手の構成情報          */
    194174
    195175#if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC
     
    202182
    203183/*
    204  *  å
    205 ¨åŸŸå¤‰æ•°
     184 *  全域変数
    206185 */
    207186
    208187T_PPP_FSM_CALLBACKS lcp_callbacks = {
    209         lcp_resetci,                    /* 自構成æƒ
    210 å ±ã‚’リセットする。     */
    211         lcp_cilen,                      /* 構成æƒ
    212 å ±ã®é•·ã•ã‚’返す。                */
    213         lcp_addci,                      /* 自構成æƒ
    214 å ±ã‚’追加する。           */
    215         lcp_ackci,                      /* ACK を受信したときの処理   */
    216         lcp_nakci,                      /* NAK を受信したときの処理   */
    217         lcp_rejci,                      /* REJ を受信したときの処理   */
    218         lcp_reqci,                      /* 相手の構成æƒ
    219 å ±ã‚’確認する。   */
    220         lcp_up,                         /* リンク接続を確立する。            */
    221         lcp_down,                       /* リンク接続を解放する。            */
    222         lcp_starting,                   /* 下位層を開始する。          */
    223         lcp_finished,                   /* 下位層を終了する。          */
    224         NULL,                           /* 再送する。                      */
    225         lcp_extcode,                    /* 不明な CP を受信したときの処理  */
     188        lcp_resetci,                    /* 自構成情報をリセットする。        */
     189        lcp_cilen,                      /* 構成情報の長さを返す。          */
     190        lcp_addci,                      /* 自構成情報を追加する。          */
     191        lcp_ackci,                      /* ACK を受信したときの処理       */
     192        lcp_nakci,                      /* NAK を受信したときの処理       */
     193        lcp_rejci,                      /* REJ を受信したときの処理       */
     194        lcp_reqci,                      /* 相手の構成情報を確認する。        */
     195        lcp_up,                         /* リンク接続を確立する。          */
     196        lcp_down,                       /* リンク接続を解放する。          */
     197        lcp_starting,                   /* 下位層を開始する。            */
     198        lcp_finished,                   /* 下位層を終了する。            */
     199        NULL,                           /* 再送する。                        */
     200        lcp_extcode,                    /* 不明な CP を受信したときの処理    */
    226201        };
    227202
    228203T_PPP_FSM lcp_fsm = {
    229         &lcp_callbacks,                 /* コールバック関数             */
    230         PPP_LCP,                        /* プロトコル                      */
     204        &lcp_callbacks,                 /* コールバック関数             */
     205        PPP_LCP,                        /* プロトコル                        */
    231206        };
    232207
    233208T_PPP_PROTENT lcp_protent = {
    234209        PPP_LCP,
    235         lcp_init,                       /* 初期化                    */
    236         lcp_input,                      /* å
    237 ¥åŠ›                            */
    238         lcp_protrej,                    /* Proto-REJ 受信処理               */
    239         NULL,                           /* 下位層を起動する             */
    240         lcp_lowerdown,                  /* 下位層を停止する             */
    241         NULL,                           /* オープンする                   */
    242         lcp_close,                      /* クローズする                   */
    243         NULL,                           /* データå
    244 ¥åŠ›                    */
     210        lcp_init,                       /* 初期化                  */
     211        lcp_input,                      /* 入力                           */
     212        lcp_protrej,                    /* Proto-REJ 受信処理               */
     213        NULL,                           /* 下位層を起動する             */
     214        lcp_lowerdown,                  /* 下位層を停止する             */
     215        NULL,                           /* オープンする                       */
     216        lcp_close,                      /* クローズする                       */
     217        NULL,                           /* データ入力                        */
    245218        };
    246219
    247 T_LCP_CONFIGS lcp_local_ack_cfg;        /* 相手に許可されたの自構成æƒ
    248 å ±     */
    249 T_LCP_CONFIGS lcp_remote_ack_cfg;       /* 相手に許可した構成æƒ
    250 å ±             */
    251 
    252 /*
    253  *  lcp_init -- LCP モジュールの初期化
     220T_LCP_CONFIGS lcp_local_ack_cfg;        /* 相手に許可されたの自構成情報       */
     221T_LCP_CONFIGS lcp_remote_ack_cfg;       /* 相手に許可した構成情報          */
     222
     223/*
     224 *  lcp_init -- LCP モジュールの初期化
    254225 */
    255226
     
    261232
    262233/*
    263  *  lcp_input -- LCP å
    264 ¥åŠ›
     234 *  lcp_input -- LCP 入力
    265235 */
    266236
     
    274244
    275245/*
    276  *  lcp_resetci -- LCPの構成æƒ
    277 å ±ã‚’リセットする。
     246 *  lcp_resetci -- LCPの構成情報をリセットする。
    278247 */
    279248
     
    287256#endif  /* of #ifdef LCP_CFG_MAGIC */
    288257
    289         /* 自構成æƒ
    290 å ±ã®åˆæœŸè¨­å®š */
     258        /* 自構成情報の初期設定 */
    291259        lcp_local_neg_cfg       = lcp_local_def_cfg;
    292260        lcp_local_ack_cfg       = lcp_def_cfg;
    293261
    294         /* 相手の構成æƒ
    295 å ±ã®åˆæœŸè¨­å®š */
     262        /* 相手の構成情報の初期設定 */
    296263        lcp_remote_neg_cfg      = lcp_def_cfg;
    297264        lcp_remote_ack_cfg      = lcp_def_cfg;
     
    309276
    310277/*
    311  *  lcp_cilen -- 構成æƒ
    312 å ±ã®é•·ã•ã‚’返す。
     278 *  lcp_cilen -- 構成情報の長さを返す。
    313279 */
    314280
     
    341307
    342308        if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP)
    343                 cilen += sizeof(T_PPP_CI_HDR);                  /* プロトコル圧縮 */
     309                cilen += sizeof(T_PPP_CI_HDR);                  /* プロトコル圧縮 */
    344310
    345311#endif  /* of #ifdef LCP_CFG_PCOMP */
     
    348314
    349315        if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP)
    350                 cilen += sizeof(T_PPP_CI_HDR);                  /* アドレス・制御圧縮 */
     316                cilen += sizeof(T_PPP_CI_HDR);                  /* アドレス・制御圧縮 */
    351317
    352318#endif  /* of #ifdef LCP_CFG_ACCOMP */
     
    356322
    357323/*
    358  *  lcp_addci -- LCPの構成æƒ
    359 å ±ã‚’追加する。
     324 *  lcp_addci -- LCPの構成情報を追加する。
    360325 */
    361326
     
    367332        buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    368333
    369         /* MRU オプションを追加する。 */
     334        /* MRU オプションを追加する。 */
    370335        if (lcp_local_neg_cfg.options & LCP_CFG_MRU) {
    371336                *buf ++ = LCP_CIT_MRU;
     
    375340                }
    376341
    377         /* ACCM オプションを追加する。 */
     342        /* ACCM オプションを追加する。 */
    378343        if (lcp_local_neg_cfg.options & LCP_CFG_ACCM) {
    379344                *buf ++ = LCP_CIT_ACCM;
     
    385350#ifdef LCP_CFG_MAGIC
    386351
    387         /* Magic Number オプションを追加する。 */
     352        /* Magic Number オプションを追加する。 */
    388353        if (lcp_local_neg_cfg.options & LCP_CFG_MAGIC) {
    389354                *buf ++ = LCP_CIT_MAGIC;
     
    397362#ifdef LCP_CFG_PAP
    398363
    399         /* 認証プロトコルオプションを追加する。 */
     364        /* 認証プロトコルオプションを追加する。 */
    400365        if (lcp_local_neg_cfg.options & LCP_CFG_PAP) {
    401366                *buf ++ = LCP_CIT_AUTH;
     
    409374#ifdef LCP_CFG_PCOMP
    410375
    411         /* プロトコル圧縮オプションを追加する。 */
     376        /* プロトコル圧縮オプションを追加する。 */
    412377        if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP) {
    413378                *buf ++ = LCP_CIT_PCOMP;
     
    419384#ifdef LCP_CFG_ACCOMP
    420385
    421         /* アドレス・制御圧縮オプションを追加する。 */
     386        /* アドレス・制御圧縮オプションを追加する。 */
    422387        if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP) {
    423388                *buf ++ = LCP_CIT_ACCOMP;
     
    429394
    430395/*
    431  *  lcp_ackci -- ACK を受信したときの処理
     396 *  lcp_ackci -- ACK を受信したときの処理
    432397 *
    433  *      戻り値:      TURE  ACK は正常
    434  *              false ACK は異常
     398 *      戻り値:    TURE  ACK は正常
     399 *              false ACK は異常
    435400 */
    436401
     
    445410
    446411        /*
    447          *  構成æƒ
    448 å ±ã¯é€ä¿¡ã—た順に完å
    449 ¨ã«ä¸€è‡´ã—なければならない。
    450          *  従って、lcp_addci で作成した順に解析する。
     412         *  構成情報は送信した順に完全に一致しなければならない。
     413         *  従って、lcp_addci で作成した順に解析する。
    451414         */
    452415
    453         /* MRU オプションを解析する。 */
     416        /* MRU オプションを解析する。 */
    454417        if (lcp_local_neg_cfg.options & LCP_CFG_MRU) {
    455418                if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)       ||
     
    462425                }
    463426
    464         /* ACCM オプションを解析する。 */
     427        /* ACCM オプションを解析する。 */
    465428        if (lcp_local_neg_cfg.options & LCP_CFG_ACCM) {
    466429                if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)       ||
     
    475438#ifdef LCP_CFG_MAGIC
    476439
    477         /* Magic Number オプションを解析する。 */
     440        /* Magic Number オプションを解析する。 */
    478441        if (lcp_local_neg_cfg.options & LCP_CFG_MAGIC) {
    479442                if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)       ||
     
    490453#ifdef LCP_CFG_PAP
    491454
    492         /* 認証プロトコルオプションを解析する。 */
     455        /* 認証プロトコルオプションを解析する。 */
    493456        if (lcp_local_neg_cfg.options & LCP_CFG_PAP) {
    494457                if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)       ||
     
    505468#ifdef LCP_CFG_PCOMP
    506469
    507         /* プロトコル圧縮オプションを解析する。 */
     470        /* プロトコル圧縮オプションを解析する。 */
    508471        if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP) {
    509472                if (len < sizeof(T_PPP_CI_HDR)                  ||
     
    518481#ifdef LCP_CFG_ACCOMP
    519482
    520         /* アドレス・制御圧縮オプションを解析する。 */
     483        /* アドレス・制御圧縮オプションを解析する。 */
    521484        if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP) {
    522485                if (len < sizeof(T_PPP_CI_HDR)                  ||
     
    532495
    533496/*
    534  *  lcp_nakci -- NAK を受信したときの処理
     497 *  lcp_nakci -- NAK を受信したときの処理
    535498 *
    536  *      戻り値:      1  NAK は正常
    537  *              0  NAK は異常
     499 *      戻り値:    1  NAK は正常
     500 *              0  NAK は異常
    538501 */
    539502
     
    542505{
    543506        T_LCP_CONFIGS   new_cfg;
    544         bool_t          loop = false;   /* ループバックをチェック */
     507        bool_t          loop = false;   /* ループバックをチェック */
    545508        uint32_t        cilong;
    546509        uint16_t        cishort, len;
     
    552515        new_cfg = lcp_local_neg_cfg;
    553516
    554         /* MRU オプションを解析する。 */
     517        /* MRU オプションを解析する。 */
    555518        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)              &&
    556519            * buf      == LCP_CIT_MRU                           &&
     
    564527                }
    565528
    566         /* ACCM オプションを解析する。 */
     529        /* ACCM オプションを解析する。 */
    567530        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)              &&
    568531            * buf      == LCP_CIT_ACCM                          &&
     
    577540#ifdef LCP_CFG_MAGIC
    578541
    579         /* Magic Number オプションを解析する。 */
     542        /* Magic Number オプションを解析する。 */
    580543        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)              &&
    581544            * buf      == LCP_CIT_MAGIC                         &&
     
    593556#ifdef LCP_CFG_PAP
    594557
    595         /* 認証プロトコルオプションを解析する。 */
     558        /* 認証プロトコルオプションを解析する。 */
    596559        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)              &&
    597560            * buf      == LCP_CIT_AUTH                          &&
     
    611574#ifdef LCP_CFG_PCOMP
    612575
    613         /* プロトコル圧縮オプションを解析する。 */
     576        /* プロトコル圧縮オプションを解析する。 */
    614577        if (len >= sizeof(T_PPP_CI_HDR)                         &&
    615578            * buf      == LCP_CIT_PCOMP                         &&
     
    625588#ifdef LCP_CFG_ACCOMP
    626589
    627         /* アドレス・制御圧縮オプションを解析する。 */
     590        /* アドレス・制御圧縮オプションを解析する。 */
    628591        if (len >= sizeof(T_PPP_CI_HDR)                         &&
    629592            * buf      == LCP_CIT_ACCOMP                        &&
     
    637600#endif  /* of #ifdef LCP_CFG_ACCOMP */
    638601
    639         /* 後は無視する。*/
     602        /* 後は無視する。*/
    640603        while (len > sizeof(T_PPP_CI_HDR)) {
    641604                cilen = *(buf + 1);
     
    646609                }
    647610
    648         /* 長さが 0 でなければエラー */
     611        /* 長さが 0 でなければエラー */
    649612        if (len != 0)
    650613                return 0;
    651614
    652         /* 新しいオプションを設定する。*/
     615        /* 新しいオプションを設定する。*/
    653616        if (fsm->state != PPP_FSM_OPENED) {
    654617                if (loop) {
     
    662625
    663626/*
    664  *  lcp_rejci -- REJ を受信したときの処理
     627 *  lcp_rejci -- REJ を受信したときの処理
    665628 *
    666  *      戻り値:      1  REJ は正常
    667  *              0  REJ は異常
     629 *      戻り値:    1  REJ は正常
     630 *              0  REJ は異常
    668631 */
    669632
     
    681644        new_cfg = lcp_local_neg_cfg;
    682645
    683         /* MRU オプションを解析する。 */
     646        /* MRU オプションを解析する。 */
    684647        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)              &&
    685648            * buf      == LCP_CIT_MRU                                   &&
     
    695658                }
    696659               
    697         /* ACCM オプションを解析する。 */
     660        /* ACCM オプションを解析する。 */
    698661        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)              &&
    699662            * buf      == LCP_CIT_ACCM                                  &&
     
    711674#ifdef LCP_CFG_MAGIC
    712675
    713         /* Magic Number オプションを解析する。 */
     676        /* Magic Number オプションを解析する。 */
    714677        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)              &&
    715678            * buf      == LCP_CIT_MAGIC                                 &&
     
    729692#ifdef LCP_CFG_PAP
    730693
    731         /* 認証プロトコルオプションを解析する。 */
     694        /* 認証プロトコルオプションを解析する。 */
    732695        if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)              &&
    733696            * buf      == LCP_CIT_AUTH                                  &&
     
    747710#ifdef LCP_CFG_PCOMP
    748711
    749         /* プロトコル圧縮オプションを解析する。 */
     712        /* プロトコル圧縮オプションを解析する。 */
    750713        if (len >= sizeof(T_PPP_CI_HDR)                         &&
    751714            * buf      == LCP_CIT_PCOMP                         &&
     
    761724#ifdef LCP_CFG_ACCOMP
    762725
    763         /* アドレス・制御圧縮オプションを解析する。 */
     726        /* アドレス・制御圧縮オプションを解析する。 */
    764727        if (len >= sizeof(T_PPP_CI_HDR)                         &&
    765728            * buf      == LCP_CIT_ACCOMP                        &&
     
    773736#endif  /* of #ifdef LCP_CFG_ACCOMP */
    774737
    775         /* 長さが 0 でなければエラー */
     738        /* 長さが 0 でなければエラー */
    776739        if (len != 0)
    777740                return 0;
    778741
    779         /* 新しいオプションを設定する。*/
     742        /* 新しいオプションを設定する。*/
    780743        if (fsm->state != PPP_FSM_OPENED)
    781744                lcp_local_neg_cfg = new_cfg;
     
    785748
    786749/*
    787  *  lcp_reqci -- 相手の構成æƒ
    788 å ±ã‚’解析する。
     750 *  lcp_reqci -- 相手の構成情報を解析する。
    789751 */
    790752
     
    802764
    803765        rp = ap = input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    804                                 /* rp: REJ、ap: ACK する CI のポインタ          */
    805                                 /* 拒否する場合は、引数 input に上書きする。   */
     766                                /* rp: REJ、ap: ACK する CI のポインタ          */
     767                                /* 拒否する場合は、引数 input に上書きする。     */
    806768        len   = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
    807769        np    = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    808         final = PPP_CONFACK;    /* 最終的に送信するコード */
     770        final = PPP_CONFACK;    /* 最終的に送信するコード */
    809771        while (len > 0) {
    810772                code = PPP_CONFACK;
    811                 cp   = ap;      /* cp: 現在処理中の CI    */
     773                cp   = ap;      /* cp: 現在処理中の CI        */
    812774
    813775                if (len < sizeof(T_PPP_CI_HDR)) {
    814776
    815                         /* 残りが CI ヘッダより短い */
     777                        /* 残りが CI ヘッダより短い */
    816778                        syslog(LOG_WARNING, "[PPP/LCP] bad CI len: %d.", len);
    817                         cilen = len;    /* データ長が異常の場合の処置      */
    818                         len   = 0;      /* ループから抜ける。          */
     779                        cilen = len;    /* データ長が異常の場合の処置        */
     780                        len   = 0;      /* ループから抜ける。            */
    819781                        code  = PPP_CONFREJ;
    820782                        goto endswitch;
    821783                        }
    822784
    823                 type  = *ap ++; /* CI の型            */
    824                 cilen = *ap ++; /* CI の長さ         */
     785                type  = *ap ++; /* CI の型                */
     786                cilen = *ap ++; /* CI の長さ               */
    825787                if (len < cilen) {
    826788
    827                         /* 残りが CI 長より短い */
     789                        /* 残りが CI 長より短い */
    828790                        syslog(LOG_WARNING, "[PPP/LCP] bad CI len: %d.", cilen);
    829                         cilen = len;    /* データ長が異常の場合の処置      */
    830                         len   = 0;      /* ループから抜ける。          */
     791                        cilen = len;    /* データ長が異常の場合の処置        */
     792                        len   = 0;      /* ループから抜ける。            */
    831793                        code  = PPP_CONFREJ;
    832794                        goto endswitch;
     
    834796                len -= sizeof(T_PPP_CI_HDR);
    835797
    836                 /* CI の型により分岐する。*/
     798                /* CI の型により分岐する。*/
    837799                switch (type) {
    838800
    839                 case LCP_CIT_MRU:       /* 最大受信量 (Maximum Receive Unit) */
     801                case LCP_CIT_MRU:       /* 最大受信量 (Maximum Receive Unit) */
    840802
    841803#if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MRU) == 0
     
    845807#else   /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MRU) == 0 */
    846808
    847                         /* CI 長が、ヘッダ + 2 オクテットでなければ REJ */
     809                        /* CI 長が、ヘッダ + 2 オクテットでなければ REJ */
    848810                        if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint16_t))
    849811                                code = PPP_CONFREJ;
     
    851813                                cishort = ntohs(*(uint16_t*)ap);
    852814
    853                                 /* 最小受信量より小さければ NAK */
     815                                /* 最小受信量より小さければ NAK */
    854816                                if (cishort < MIN_PPP_MTU) {
    855817                                        *np ++ = LCP_CIT_MRU;
     
    877839#else   /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCM) == 0 */
    878840
    879                         /* CI 長が、ヘッダ + 4 オクテットでなければ REJ */
     841                        /* CI 長が、ヘッダ + 4 オクテットでなければ REJ */
    880842                        if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t))
    881843                                code = PPP_CONFREJ;
     
    889851                        break;
    890852
    891                 case LCP_CIT_MAGIC:     /* マジック番号 */
     853                case LCP_CIT_MAGIC:     /* マジック番号 */
    892854
    893855#if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC) == 0
     
    897859#else   /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC) == 0 */
    898860
    899                         /* CI 長が、ヘッダ + 4 オクテットでなければ REJ */
     861                        /* CI 長が、ヘッダ + 4 オクテットでなければ REJ */
    900862                        if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t))
    901863                                code = PPP_CONFREJ;
     
    903865                                ntoahl(cilong, ap);
    904866
    905                                 /* 番号が自分と同じなら NAK */
     867                                /* 番号が自分と同じなら NAK */
    906868                                if (cilong == lcp_local_neg_cfg.magic) {
    907869                                        cilong = net_rand();
     
    923885
    924886#ifdef LCP_CFG_PAP
    925                 /* CHAP は実è£
    926 äºˆå®š  */
    927 
    928                 case LCP_CIT_AUTH:      /* 認証プロトコル */
    929 
    930                         /* CI 長が、ヘッダ + 2 オクテットより短いときはエラー */
     887                /* CHAP は実装予定   */
     888
     889                case LCP_CIT_AUTH:      /* 認証プロトコル */
     890
     891                        /* CI 長が、ヘッダ + 2 オクテットより短いときはエラー */
    931892                        if (cilen < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t))
    932893                                code = PPP_CONFREJ;
     
    934895                                cishort = ntohs(*(uint16_t*)ap);
    935896
    936                                 /* 認証プロトコルにより分岐する   */
     897                                /* 認証プロトコルにより分岐する       */
    937898                                if (cishort == PPP_PAP &&
    938899                                    cilen   == sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) &&
     
    948909#ifdef LCP_CFG_PCOMP
    949910
    950                 case LCP_CIT_PCOMP:     /* プロトコル部圧縮は実è£
    951 äºˆå®š */
     911                case LCP_CIT_PCOMP:     /* プロトコル部圧縮は実装予定 */
    952912
    953913#if (DEF_LCP_REMOTE_CFGS & LCP_CFG_PCOMP) == 0
     
    957917#else   /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_PCOMP) == 0 */
    958918
    959                         /* CI 長が、ヘッダ長だけでなければ REJ */
     919                        /* CI 長が、ヘッダ長だけでなければ REJ */
    960920                        if (cilen != sizeof(T_PPP_CI_HDR))
    961921                                code = PPP_CONFREJ;
     
    971931#ifdef LCP_CFG_ACCOMP
    972932
    973                 case LCP_CIT_ACCOMP:    /* アドレス・制御部圧縮 */
     933                case LCP_CIT_ACCOMP:    /* アドレス・制御部圧縮 */
    974934
    975935#if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCOMP) == 0
     
    979939#else   /* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCOMP) == 0 */
    980940
    981                         /* CI 長が、ヘッダ長だけでなければ REJ */
     941                        /* CI 長が、ヘッダ長だけでなければ REJ */
    982942                        if (cilen != sizeof(T_PPP_CI_HDR))
    983943                                code = PPP_CONFREJ;
     
    998958endswitch:
    999959                if (code == PPP_CONFNAK) {
    1000                         /* CI の型が Magic Number の場合を除いて、NAK の回数が   */
    1001                         /* 最大値 MAX_PPP_FAILURES  をè¶
    1002 ãˆãŸã‚‰æ‹’否する。        */
     960                        /* CI の型が Magic Number の場合を除いて、NAK の回数が */
     961                        /* 最大値 MAX_PPP_FAILURES  を超えたら拒否する。     */
    1003962                        if (fsm->failures >= MAX_PPP_FAILURES && type != LCP_CIT_MAGIC)
    1004963                                code = PPP_CONFREJ;
     
    1007966                        }
    1008967
    1009                 /* この CI を拒否する */
     968                /* この CI を拒否する */
    1010969                if (code == PPP_CONFREJ) {
    1011                         if (rp < cp)            /* 前に詰める。*/
     970                        if (rp < cp)            /* 前に詰める。*/
    1012971                                memcpy(rp, cp, cilen);
    1013972                        rp += cilen;
     
    1019978                }
    1020979
    1021         /* 最終的な長さを調整する。*/
     980        /* 最終的な長さを調整する。*/
    1022981        switch (final) {
    1023982        case PPP_CONFNAK:
     
    1036995
    1037996/*
    1038  *  lcp_up -- リンク接続を確立する (Phase: Establish に移行する)。
     997 *  lcp_up -- リンク接続を確立する (Phase: Establish に移行する)。
    1039998 */
    1040999
     
    10421001lcp_up (T_PPP_FSM *fsm)
    10431002{
    1044         /* 自構成æƒ
    1045 å ±ã®è¨­å®š */
     1003        /* 自構成情報の設定 */
    10461004        lcp_local_ack_cfg = lcp_local_neg_cfg;
    10471005
    1048         /* 相手の構成æƒ
    1049 å ±ã®è¨­å®š */
     1006        /* 相手の構成情報の設定 */
    10501007        lcp_remote_ack_cfg = lcp_remote_neg_cfg;
    10511008
     
    10601017
    10611018/*
    1062  *  lcp_starting -- 下位層を開始する。
     1019 *  lcp_starting -- 下位層を開始する。
    10631020 */
    10641021
     
    10701027
    10711028/*
    1072  *  lcp_extcode -- LCP 特有の CP を受信したときの処理
     1029 *  lcp_extcode -- LCP 特有の CP を受信したときの処理
    10731030 */
    10741031
     
    11271084
    11281085/*
    1129  *  lcp_rprotrej -- Proto-REJ を受信したときの処理
     1086 *  lcp_rprotrej -- Proto-REJ を受信したときの処理
    11301087 */
    11311088
     
    11481105                }
    11491106
    1150         /* 上位プロトコルを初期化する */
     1107        /* 上位プロトコルを初期化する */
    11511108        for (ix = 0; (entry = protocols[ix]) != NULL; ix ++)
    11521109                if (entry->proto == proto) {
     
    11591116
    11601117/*
    1161  *  lcp_protrej -- Proto-REJ を受信したときの処理
     1118 *  lcp_protrej -- Proto-REJ を受信したときの処理
    11621119 */
    11631120
     
    11691126
    11701127/*
    1171  *  lcp_lowerup -- LCP 下位層を起動する。
     1128 *  lcp_lowerup -- LCP 下位層を起動する。
    11721129 */
    11731130
     
    11791136
    11801137/*
    1181  *  lcp_lowerdown -- LCP 下位層を停止する。
     1138 *  lcp_lowerdown -- LCP 下位層を停止する。
    11821139 */
    11831140
     
    11891146
    11901147/*
    1191  *  lcp_open -- LCP のオープ
     1148 *  lcp_open -- LCP のオープ
    11921149 */
    11931150
     
    11951152lcp_open (uint8_t open_mode)
    11961153{
    1197         ppp_open_mode = open_mode;      /* オープン時の動作モード    */
     1154        ppp_open_mode = open_mode;      /* オープン時の動作モード  */
    11981155        fsm_open(&lcp_fsm);
    11991156        }
    12001157
    12011158/*
    1202  *  lcp_close -- LCP のクローズ
     1159 *  lcp_close -- LCP のクローズ
    12031160 */
    12041161
     
    12181175
    12191176/*
    1220  *  lcp_sprotrej -- 認識できないプロトコルが送られてきたときの処理
     1177 *  lcp_sprotrej -- 認識できないプロトコルが送られてきたときの処理
    12211178 */
    12221179
     
    12261183        T_NET_BUF       *output;
    12271184        /*
    1228          *  Protocol-Reject を送り返す。
     1185         *  Protocol-Reject を送り返す。
    12291186         */
    12301187
     
    12391196
    12401197/*
    1241  *  lcp_down -- リンク接続を解放する (Phase: Dead に移行する)。
     1198 *  lcp_down -- リンク接続を解放する (Phase: Dead に移行する)。
    12421199 */
    12431200
     
    12561213
    12571214/*
    1258  *  lcp_finished -- 下位層を終了する。
     1215 *  lcp_finished -- 下位層を終了する。
    12591216 */
    12601217
     
    12681225
    12691226/*
    1270  *  recv_echo_rep -- ECHOREP を受信したときの処理
     1227 *  recv_echo_rep -- ECHOREP を受信したときの処理
    12711228 */
    12721229
     
    12791236        hdr = GET_PPP_CP_HDR(input);
    12801237
    1281         /* Magic Number の長さ以下ならエラー */
     1238        /* Magic Number の長さ以下ならエラー */
    12821239        if (hdr->len < sizeof(T_PPP_CP_HDR) + sizeof(uint32_t)) {
    12831240                syslog(LOG_WARNING, "[PPP/LCP] bad ECHOREP len: %d.", hdr->len);
     
    12871244        ntoahl(magic, input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
    12881245
    1289         /* 受信した Magic Number が自分と同じならループしている。*/
     1246        /* 受信した Magic Number が自分と同じならループしている。*/
    12901247        if ((lcp_local_ack_cfg.options & LCP_CFG_MAGIC) && magic == lcp_local_ack_cfg.magic) {
    12911248                syslog(LOG_WARNING, "[PPP/LCP] ECHOREP looped.");
     
    12971254
    12981255/*
    1299  *  echo_timeout -- ECHO REQ/REP のタイムアウト処理
     1256 *  echo_timeout -- ECHO REQ/REP のタイムアウト処理
    13001257 */
    13011258
     
    13101267
    13111268/*
    1312  *  send_echo_req -- ECHO REQ を送信する。
     1269 *  send_echo_req -- ECHO REQ を送信する。
    13131270 */
    13141271
     
    13301287        if (fsm->state == PPP_FSM_OPENED) {
    13311288
    1332                 /* ECHOREQ を送信する。*/
     1289                /* ECHOREQ を送信する。*/
    13331290                syscall(get_net_buf(&input, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR) + sizeof(uint32_t)));
    13341291                *(uint32_t*)(input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) = lcp_local_ack_cfg.magic;
     
    13371294                echo_pending ++;
    13381295
    1339                 /* タイマーをスタートする。*/
     1296                /* タイマーをスタートする。*/
    13401297                timeout((FP)echo_timeout, fsm, LCP_ECHO_INTERVAL);
    13411298                timer_running = true;
     
    13441301
    13451302/*
    1346  *  echo_lowerup -- ECHO REQ/REP の起動
     1303 *  echo_lowerup -- ECHO REQ/REP の起動
    13471304 */
    13481305
     
    13581315
    13591316/*
    1360  *  echo_lowerdown -- ECHO REQ/REP の停止
     1317 *  echo_lowerdown -- ECHO REQ/REP の停止
    13611318 */
    13621319
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_lcp.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    9381
    9482/*
    95  *  LCP 特有の PPP リンク制御 (CP) の制御コード
     83 *  LCP 特有の PPP リンク制御 (CP) の制御コード
    9684 */
    9785
     
    10290
    10391/*
    104  *  LCP の構成æƒ
    105 å ± (CI)
     92 *  LCP の構成情報 (CI)
    10693 */
    10794
    10895/*
    109  *  CI の型
     96 *  CI の型
    11097 */
    11198
    112 #define LCP_CIT_MRU             UINT_C(1)       /* 最大受信量 (Maximum Receive Unit)       */
     99#define LCP_CIT_MRU             UINT_C(1)       /* 最大受信量 (Maximum Receive Unit) */
    113100#define LCP_CIT_ACCM            UINT_C(2)       /* Async Control Character Map          */
    114 #define LCP_CIT_AUTH            UINT_C(3)       /* 認証プロトコル                        */
    115 #define LCP_CIT_QUALITY         UINT_C(4)       /* 品質プロトコルは未実è£
    116                         */
    117 #define LCP_CIT_MAGIC           UINT_C(5)       /* マジック番号                           */
    118 #define LCP_CIT_PCOMP           UINT_C(7)       /* プロトコル部圧縮は実è£
    119 äºˆå®š          */
    120 #define LCP_CIT_ACCOMP          UINT_C(8)       /* アドレス・制御部圧縮は実è£
    121 äºˆå®š          */
    122 #define LCP_CIT_FCS_ALTER       UINT_C(9)       /* FCS-Alternatives は未実è£
    123                 */
    124 #define LCP_CIT_SELF_PAD        UINT_C(10)      /* Self-Describing-Padding は未実è£
    125         */
    126 #define LCP_CIT_CALLBACK        UINT_C(13)      /* Callback は未実è£
    127                         */
    128 #define LCP_CIT_CFRAMES         UINT_C(15)      /* Compound-Frames は未実è£
    129                 */
     101#define LCP_CIT_AUTH            UINT_C(3)       /* 認証プロトコル                      */
     102#define LCP_CIT_QUALITY         UINT_C(4)       /* 品質プロトコルは未実装                  */
     103#define LCP_CIT_MAGIC           UINT_C(5)       /* マジック番号                               */
     104#define LCP_CIT_PCOMP           UINT_C(7)       /* プロトコル部圧縮は実装予定                */
     105#define LCP_CIT_ACCOMP          UINT_C(8)       /* アドレス・制御部圧縮は実装予定              */
     106#define LCP_CIT_FCS_ALTER       UINT_C(9)       /* FCS-Alternatives は未実装                */
     107#define LCP_CIT_SELF_PAD        UINT_C(10)      /* Self-Describing-Padding は未実装 */
     108#define LCP_CIT_CALLBACK        UINT_C(13)      /* Callback は未実装                        */
     109#define LCP_CIT_CFRAMES         UINT_C(15)      /* Compound-Frames は未実装         */
    130110
    131111/*
    132  *  LCP の構成æƒ
    133 å ±ã‚ªãƒ—ション
     112 *  LCP の構成情報オプション
    134113 */
    135114
     
    139118#ifdef LCP_CFG_MAGIC
    140119
    141         uint32_t        magic;          /* マジック番号           */
     120        uint32_t        magic;          /* マジック番号               */
    142121
    143122#endif  /* of #ifdef LCP_CFG_MAGIC */
    144123
    145124        uint16_t        MRU;            /* MRU                  */
    146         uint16_t        options;        /* オプションフラグ     */
     125        uint16_t        options;        /* オプションフラグ     */
    147126        } __attribute__((packed, aligned(2)))T_LCP_CONFIGS;
    148127
    149128/*
    150  *  変数
     129 *  変数
    151130 */
    152131
    153132extern T_PPP_FSM        lcp_fsm;
    154133extern T_PPP_PROTENT    lcp_protent;
    155 extern T_LCP_CONFIGS    lcp_local_ack_cfg;      /* 相手に許可されたの自構成æƒ
    156 å ±     */
    157 extern T_LCP_CONFIGS    lcp_remote_ack_cfg;     /* 相手に許可した構成æƒ
    158 å ±             */
     134extern T_LCP_CONFIGS    lcp_local_ack_cfg;      /* 相手に許可されたの自構成情報       */
     135extern T_LCP_CONFIGS    lcp_remote_ack_cfg;     /* 相手に許可した構成情報          */
    159136
    160137/*
    161  *  関数
     138 *  関数
    162139 */
    163140
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_modem.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$
     
    4533
    4634/*
    47  *  PPP モデム制御
     35 *  PPP モデム制御
    4836 */
    4937
     
    7159
    7260/*
    73  *  å
    74 ¨åŸŸå¤‰æ•°
    75  */
    76 
    77 uint8_t modem_state = PPP_MODEM_DOWN;   /* モデムの状æ
    78 ‹               */
    79 
    80 /*
    81  *  モデムå
    82 ¥åŠ›æ–‡å­—列
     61 *  全域変数
     62 */
     63
     64uint8_t modem_state = PPP_MODEM_DOWN;   /* モデムの状態               */
     65
     66/*
     67 *  モデム入力文字列
    8368 */
    8469
     
    9378
    9479/*
    95  *  変数
     80 *  変数
    9681 */
    9782
     
    11095
    11196/*
    112  *  関数
     97 *  関数
    11398 */
    11499
     
    119104
    120105/*
    121  *  modem_getline -- モデム行å
    122 ¥åŠ›
     106 *  modem_getline -- モデム行入力
    123107 */
    124108
     
    129113
    130114        buf = nbuf->buf;
    131         size --;                        /* '\0' の分 */
     115        size --;                        /* '\0' の分 */
    132116        while (size > 0 && (*buf = HDLC_raw_getoctet()) != '\r') {
    133117                buf  ++;
     
    135119                }
    136120        *buf = '\0';
    137         HDLC_raw_getoctet();            /* \n を読み飛ばす。*/
     121        HDLC_raw_getoctet();            /* \n を読み飛ばす。*/
    138122        nbuf->len = buf - nbuf->buf;
    139123        return nbuf;
     
    141125
    142126/*
    143  *  モデム制御
     127 *  モデム制御
    144128 *
    145  *      戻り値: モデムからのリザルトコード
     129 *      戻り値: モデムからのリザルトコード
    146130 */
    147131
     
    210194
    211195/*
    212  *  init_modem -- モデムを初期化する。
     196 *  init_modem -- モデムを初期化する。
    213197 */
    214198
     
    228212
    229213/*
    230  *  wait_modem -- 接続完了までå¾
    231 ã¤ã€‚
     214 *  wait_modem -- 接続完了まで待つ。
    232215 *
    233  *      戻り値: 接続に失敗したら E_OBJ を返す。
     216 *      戻り値: 接続に失敗したら E_OBJ を返す。
    234217 */
    235218
     
    244227
    245228        if (modem_state != PPP_MODEM_CONNECT) {
    246                 /* 接続完了までå¾
    247 ã¤ã€‚*/
     229                /* 接続完了まで待つ。*/
    248230                wai_sem(SEM_MODEM_READY);
    249231                if (modem_state != PPP_MODEM_CONNECT)
     
    255237
    256238/*
    257  *  dial -- ダイヤルする。リトライ回数をセットする。
     239 *  dial -- ダイヤルする。リトライ回数をセットする。
    258240 */
    259241
     
    267249
    268250/*
    269  *  do_dial -- ダイヤルする。dial() の下請け関数
     251 *  do_dial -- ダイヤルする。dial() の下請け関数
    270252 */
    271253
     
    280262
    281263/*
    282  *  modem_putstr -- モデム文字列出力
     264 *  modem_putstr -- モデム文字列出力
    283265 */
    284266
     
    291273
    292274/*
    293  *  modem_wait -- モデムから文字列をå¾
    294 ã¤
     275 *  modem_wait -- モデムから文字列を待つ
    295276 */
    296277
     
    311292
    312293/*
    313  *  modem_putline -- モデム行出力
     294 *  modem_putline -- モデム行出力
    314295 */
    315296
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_modem.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    5240
    5341/*
    54  *  モデムの状æ
    55 ‹
     42 *  モデムの状態
    5643 */
    5744
     
    6451
    6552/*
    66  *  å
    67 ¨åŸŸå¤‰æ•°
     53 *  全域変数
    6854 */
    6955
    70 extern uint8_t modem_state;     /* モデムの状æ
    71 ‹               */
     56extern uint8_t modem_state;     /* モデムの状態               */
    7257
    7358/*
    74  *  関数
     59 *  関数
    7560 */
    7661
     
    8469
    8570/*
    86  *  関数
     71 *  関数
    8772 */
    8873
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_upap.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    113101
    114102/*
    115  *  関数
     103 *  関数
    116104 */
    117105
     
    151139
    152140/*
    153  *  å
    154 ¨åŸŸå¤‰æ•°
     141 *  全域変数
    155142 */
    156143
    157144T_PPP_PROTENT pap_protent = {
    158145        PPP_PAP,
    159         upap_init,                      /* 初期化                    */
    160         upap_input,                     /* å
    161 ¥åŠ›                            */
    162         upap_protrej,                   /* Proto-REJ 受信処理               */
    163         upap_lowerup,                   /* 下位層を起動する             */
    164         upap_lowerdown,                 /* 下位層を停止する             */
    165         NULL,                           /* オープンする                   */
    166         NULL,                           /* クローズする                   */
    167         NULL,                           /* データå
    168 ¥åŠ›                    */
     146        upap_init,                      /* 初期化                  */
     147        upap_input,                     /* 入力                           */
     148        upap_protrej,                   /* Proto-REJ 受信処理               */
     149        upap_lowerup,                   /* 下位層を起動する             */
     150        upap_lowerdown,                 /* 下位層を停止する             */
     151        NULL,                           /* オープンする                       */
     152        NULL,                           /* クローズする                       */
     153        NULL,                           /* データ入力                        */
    169154        };
    170155
    171156/*
    172  *  変数
     157 *  変数
    173158 */
    174159
     
    193178
    194179/*
    195  *  upap_init -- UPAP モジュールの初期化
     180 *  upap_init -- UPAP モジュールの初期化
    196181 */
    197182
     
    214199
    215200/*
    216  *  upap_input -- UPAP å
    217 ¥åŠ›
     201 *  upap_input -- UPAP 入力
    218202 */
    219203
     
    226210        NET_COUNT_PPP_PAP(net_count_ppp_upap_in_packets, 1);
    227211
    228         /* PPP リンク制御 (CP) ヘッダより短ければエラー */
     212        /* PPP リンク制御 (CP) ヘッダより短ければエラー */
    229213        if (input->len < (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))) {
    230214                syslog(LOG_WARNING, "[PPP/PAP] short hdr: %d.", input->len);
     
    234218        hdr = GET_PPP_CP_HDR(input);
    235219
    236         /* ヘッダの長さとå
    237 ¥åŠ›ãƒ‡ãƒ¼ã‚¿ã‚µã‚¤ã‚ºãŒä¸€è‡´ã—なければエラー */
     220        /* ヘッダの長さと入力データサイズが一致しなければエラー */
    238221        if (hdr->len != input->len - sizeof(T_PPP_HDR)) {
    239222                syslog(LOG_WARNING, "[PPP/PAP] bad len: %d.", hdr->len);
     
    242225 
    243226        /*
    244          *  制御コードにより適当な関数を呼出す
     227         *  制御コードにより適当な関数を呼出す
    245228         */
    246229
     
    271254
    272255/*
    273  *  upap_protrej -- Proto-REJ を受信したときの処理
     256 *  upap_protrej -- Proto-REJ を受信したときの処理
    274257 */
    275258
     
    297280
    298281/*
    299  *  upap_lowerup -- UPAP 下位層を起動する。
     282 *  upap_lowerup -- UPAP 下位層を起動する。
    300283 */
    301284
     
    331314
    332315/*
    333  *  upap_lowerdown -- UPAP 下位層を停止する。
     316 *  upap_lowerdown -- UPAP 下位層を停止する。
    334317 */
    335318
     
    366349
    367350/*
    368  *  クライアントモードで PAP 認証を開始する。
     351 *  クライアントモードで PAP 認証を開始する。
    369352 */
    370353
     
    387370
    388371/*
    389  *  upap_rauthack -- 認証 ACK 処理
     372 *  upap_rauthack -- 認証 ACK 処理
    390373 */
    391374
     
    400383
    401384/*
    402  *  upap_rauthnak -- 認証 NAK 処理
     385 *  upap_rauthnak -- 認証 NAK 処理
    403386 */
    404387
     
    411394
    412395/*
    413  *  upap_sauthreq -- 認証要求処理
     396 *  upap_sauthreq -- 認証要求処理
    414397 */
    415398
     
    425408        data = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    426409
    427         /* ユーザ名を設定する。*/
     410        /* ユーザ名を設定する。*/
    428411        *data = sizeof(AUTH_REMOTE_USER) - 1;
    429412        strcpy(data + 1, AUTH_REMOTE_USER);
    430413
    431         /* パスワードを設定する。*/
     414        /* パスワードを設定する。*/
    432415        *(data + sizeof(AUTH_REMOTE_USER)) = sizeof(AUTH_REMOTE_PASSWD) - 1;
    433416        strcpy(data + sizeof(AUTH_REMOTE_USER) + 1, AUTH_REMOTE_PASSWD);
    434417
    435         /* 送信する */
     418        /* 送信する */
    436419        IF_SET_PROTO(output, PPP_PAP);
    437420        ppp_cp_output(PAP_AUTHREQ, ++ client_cp_id, output);
     
    450433
    451434/*
    452  *  upap_timeout -- タイムアウト処理
     435 *  upap_timeout -- タイムアウト処理
    453436 */
    454437
     
    475458
    476459/*
    477  *  サーバモードで PAP 認証を開始する。
     460 *  サーバモードで PAP 認証を開始する。
    478461 */
    479462
     
    496479
    497480/*
    498  *  upap_rauthreq -- 認証要求応答処理
     481 *  upap_rauthreq -- 認証要求応答処理
    499482 */
    500483
     
    509492
    510493        /*
    511          *  再要求があったときの処理
     494         *  再要求があったときの処理
    512495         */
    513496        id = GET_PPP_CP_HDR(input)->id;
     
    526509
    527510        /*
    528          *  ユーザ名を特定する。
     511         *  ユーザ名を特定する。
    529512         */
    530513        ulen  = *data;
     
    537520
    538521        /*
    539          *  パスワードを特定する。
     522         *  パスワードを特定する。
    540523         */
    541524        plen  = *data;
     
    546529
    547530        /*
    548          *  ユーザ名とパスワードをチェックする。
     531         *  ユーザ名とパスワードをチェックする。
    549532         */
    550533        if (compare(user,     AUTH_LOCAL_USER,   ulen) &&
     
    573556
    574557/*
    575  *  upap_sresp -- 応答を返す。
     558 *  upap_sresp -- 応答を返す。
    576559 */
    577560
     
    581564        T_NET_BUF *output;
    582565
    583         /* 送信する */
     566        /* 送信する */
    584567        syscall(get_net_buf(&output, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)));
    585568        IF_SET_PROTO(output, PPP_PAP);
     
    588571
    589572/*
    590  *  compare -- ユーザ名とパスワードの比較
     573 *  compare -- ユーザ名とパスワードの比較
    591574 */
    592575
     
    606589
    607590/*
    608  *  upap_reqtimeout -- 要求タイムアウト処理
     591 *  upap_reqtimeout -- 要求タイムアウト処理
    609592 */
    610593
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_upap.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    9381
    9482/*
    95  *  PAP の制御コード
     83 *  PAP の制御コード
    9684 */
    9785
    98 #define PAP_AUTHREQ             UINT_C(1)       /* 認証要求 */
    99 #define PAP_AUTHACK             UINT_C(2)       /* 認証 ACK   */
    100 #define PAP_AUTHNAK             UINT_C(3)       /* 認証 NAK   */
     86#define PAP_AUTHREQ             UINT_C(1)       /* 認証要求 */
     87#define PAP_AUTHACK             UINT_C(2)       /* 認証 ACK       */
     88#define PAP_AUTHNAK             UINT_C(3)       /* 認証 NAK       */
    10189
    10290/*
    103  *  クライアントの状æ
    104 ‹
     91 *  クライアントの状態
    10592 */
    10693
    107 #define PAP_CS_INIT             UINT_C(0)       /* 未接続            */
    108 #define PAP_CS_CLOSED           UINT_C(1)       /* 接続、未認証           */
    109 #define PAP_CS_PENDING          UINT_C(2)       /* 未接続、認証           */
    110 #define PAP_CS_AUTHREQ          UINT_C(3)       /* 認証要求送信済み     */
    111 #define PAP_CS_OPEN             UINT_C(4)       /* ACK 受信           */
    112 #define PAP_CS_BADAUTH          UINT_C(5)       /* NAK 受信           */
     94#define PAP_CS_INIT             UINT_C(0)       /* 未接続          */
     95#define PAP_CS_CLOSED           UINT_C(1)       /* 接続、未認証               */
     96#define PAP_CS_PENDING          UINT_C(2)       /* 未接続、認証               */
     97#define PAP_CS_AUTHREQ          UINT_C(3)       /* 認証要求送信済み     */
     98#define PAP_CS_OPEN             UINT_C(4)       /* ACK 受信               */
     99#define PAP_CS_BADAUTH          UINT_C(5)       /* NAK 受信               */
    113100
    114101/*
    115  *  サーバの状æ
    116 ‹
     102 *  サーバの状態
    117103 */
    118104
    119 #define PAP_SS_INIT             UINT_C(0)       /* 未接続            */
    120 #define PAP_SS_CLOSED           UINT_C(1)       /* 接続、未認証           */
    121 #define PAP_SS_PENDING          UINT_C(2)       /* 未接続、認証           */
    122 #define PAP_SS_LISTEN           UINT_C(3)       /* 認証要求受信å¾
    123 ã¡     */
    124 #define PAP_SS_OPEN             UINT_C(4)       /* ACK 送信           */
    125 #define PAP_SS_BADAUTH          UINT_C(5)       /* NAK 送信           */
     105#define PAP_SS_INIT             UINT_C(0)       /* 未接続          */
     106#define PAP_SS_CLOSED           UINT_C(1)       /* 接続、未認証               */
     107#define PAP_SS_PENDING          UINT_C(2)       /* 未接続、認証               */
     108#define PAP_SS_LISTEN           UINT_C(3)       /* 認証要求受信待ち     */
     109#define PAP_SS_OPEN             UINT_C(4)       /* ACK 送信               */
     110#define PAP_SS_BADAUTH          UINT_C(5)       /* NAK 送信               */
    126111
    127112/*
    128  *  変数
     113 *  変数
    129114 */
    130115
     
    132117
    133118/*
    134  *  関数
     119 *  関数
    135120 */
    136121
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_var.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8573
    8674/*
    87  *  PPP プロトコルエントリ構造体
     75 *  PPP プロトコルエントリ構造体
    8876 */
    8977
    9078typedef struct t_ppp_protent {
    91         uint16_t        proto;                  /* プロトコル番号        */
    92         void            (*init)         (void); /* 初期化関数              */
     79        uint16_t        proto;                  /* プロトコル番号      */
     80        void            (*init)         (void); /* 初期化関数                */
    9381        void            (*input)        (T_NET_BUF *data);
    94                                                 /* å
    95 ¥åŠ›é–¢æ•°              */
    96         void            (*protrej)      (void); /* Ptoto-REJ 受信処理       */
    97         void            (*lowerup)      (void); /* 下位層を起動する。  */
    98         void            (*lowerdown)    (void); /* 下位層を停止する。  */
    99         void            (*open)         (void); /* オープンする。        */
    100         void            (*close)        (void); /* クローズする。        */
     82                                                /* 入力関数         */
     83        void            (*protrej)      (void); /* Ptoto-REJ 受信処理       */
     84        void            (*lowerup)      (void); /* 下位層を起動する。    */
     85        void            (*lowerdown)    (void); /* 下位層を停止する。    */
     86        void            (*open)         (void); /* オープンする。      */
     87        void            (*close)        (void); /* クローズする。      */
    10188        void            (*datainput)    (T_NET_BUF *data);
    102                                         /* データå
    103 ¥åŠ›é–¢æ•°      */
     89                                        /* データ入力関数      */
    10490        } T_PPP_PROTENT;
    10591
     
    10793
    10894/*
    109  *  変数
     95 *  変数
    11096 */
    11197
    112 extern T_PPP_PROTENT    *protocols[];   /* プロトコル表                   */
    113 extern uint8_t          ppp_phase;      /* リンクの状æ
    114 ‹                       */
     98extern T_PPP_PROTENT    *protocols[];   /* プロトコル表                       */
     99extern uint8_t          ppp_phase;      /* リンクの状態                       */
    115100
    116101/*
    117  *  関数
     102 *  関数
    118103 */
    119104
     
    121106
    122107/*
    123  *  PPP 処理タスク
     108 *  PPP 処理タスク
    124109 */
    125110
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/route.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8472
    8573/*
    86  * TINET 1.1 との互換性確保
     74 * TINET 1.1 との互換性確保
    8775 */
    8876
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/Makefile.netapp

    • Property svn:mime-type changed from text/x-makefile to text/x-makefile;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 è²¬ã™ã‚‹ã“と.
    36 #
    37 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    38 ãŠ
    39 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40 #   å«ã‚ã¦ï¼Œã„かなる保証も行わない.また,本ソフトウェアの利用により直
    41 #   æŽ¥çš„または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25#
     26#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28#   含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29#   接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230
    43 #   @(#) $Id: Makefile.netapp 497 2014-06-26 01:50:14Z coas-nagasima $
    44 #
    45 
    46 #
    47 ã‚µãƒ³ãƒ—ルのネットワーク応用プログラムに関する定義
    48 #
    49 
    50 #
    51 ã‚«ãƒ¼ãƒãƒ«ã®è­˜åˆ¥
     31#   @(#) $Id$
     32#
     33
     34#
     35サンプルのネットワーク応用プログラムに関する定義
     36#
     37
     38#
     39カーネルの識別
    5240#
    5341ifdef SRCLANG
     
    5947endif
    6048
    61 å¿œç”¨ãƒ—ログラム
     49応用プログラム
    6250
    6351TINET_ROOT = $(SRCDIR)/tinet
     
    6553NETAPP_COBJS := $(NETAPP_COBJS) netapp_subr.o
    6654
    67 ãƒˆãƒ©ãƒ³ã‚¹ãƒãƒ¼ãƒˆå±¤ã®é¸æŠž
     55トランスポート層の選択
    6856
    6957SUPPORT_TCP = false
     
    7159
    7260#
    73 #  å
    74 ±é€šã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆãƒ»ã‚µãƒ¼ãƒãƒ—ログラムの設定
     61#  共通クライアント・サーバプログラムの設定
    7562#
    7663
     
    8471endif
    8572
    86 ifeq ($(TCP_ECHO_SRV),tcp_echo_srv1)            # 送受信タスク同一型
     73ifeq ($(TCP_ECHO_SRV),tcp_echo_srv1)            # 送受信タスク同一型
    8774        SUPPORT_TCP = true
    8875        TCP_CFG_PASSIVE_OPEN = true
     
    9380endif
    9481
    95 ifeq ($(TCP_ECHO_SRV),tcp_echo_srv2)            # 送受信タスク分離型
     82ifeq ($(TCP_ECHO_SRV),tcp_echo_srv2)            # 送受信タスク分離型
    9683        SUPPORT_TCP = true
    9784        TCP_CFG_PASSIVE_OPEN = true
     
    255242
    256243#
    257 ã‚¢ãƒ—リケーションプログラムに関する定義への追加
     244アプリケーションプログラムに関する定義への追加
    258245#
    259246
     
    275262
    276263#
    277 #  TINET コンフィギュレーションファイルの定義への追加
     264#  TINET コンフィギュレーションファイルの定義への追加
    278265#
    279266TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(NETAPP_KERNEL_CFG)
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.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$
     
    4533
    4634/*
    47  *  デバッグコンソール
     35 *  デバッグコンソール
    4836 */
    4937
     
    126114
    127115/*
    128  *  task_status -- タスクの状æ
    129 ‹ã®å‡ºåŠ›
     116 *  task_status -- タスクの状態の出力
    130117 */
    131118
    132119static const char task_stat_str[][sizeof("SUSPENDED")] = {
    133         "DORMANT",              /* 休止状æ
    134 ‹               */
    135         "RUNNABLE",             /* 実行できる状æ
    136 ‹       */
    137         "WAINTING",             /* å¾
    138 ã¡çŠ¶æ
    139 ‹               */
    140         "SUSPENDED",            /* 強制å¾
    141 ã¡çŠ¶æ
    142 ‹               */
    143         "SLEEP",                /* 起床å¾
    144 ã¡çŠ¶æ
    145 ‹               */
    146         "WOBJ",                 /* 同期・通信オブジェクトに対するå¾
    147 ã¡çŠ¶æ
    148 ‹       */
    149         "WOBJCB",               /* å
    150 ±é€šéƒ¨åˆ†ã®å¾
    151 ã¡ã‚­ãƒ¥ãƒ¼ã«ã¤ãªãŒã£ã¦ã„る。 */
     120        "DORMANT",              /* 休止状態         */
     121        "RUNNABLE",             /* 実行できる状態      */
     122        "WAINTING",             /* 待ち状態         */
     123        "SUSPENDED",            /* 強制待ち状態               */
     124        "SLEEP",                /* 起床待ち状態               */
     125        "WOBJ",                 /* 同期・通信オブジェクトに対する待ち状態  */
     126        "WOBJCB",               /* 共通部分の待ちキューにつながっている。  */
    152127        };
    153128
     
    184159
    185160/*
    186  *  tcp_status -- TCP の状æ
    187 ‹ã®å‡ºåŠ›
     161 *  tcp_status -- TCP の状態の出力
    188162 */
    189163
    190164static const char tcp_fsm_str[][sizeof("ESTABLISHED")] = {
    191         "CLOSED",               /* クローズ                 */
    192         "LISTEN",               /* 受動オープン                   */
    193         "SYN_SENT",             /* 能動オープン、SYN 送信済み        */
    194         "SYN_RECVD",            /* 受動オープン、SYN 受信済み        */
    195         "ESTABLISHED",          /* コネクション開設完了               */
    196         "CLOSE_WAIT",           /* 相手から FIN 受信、APP の終了å¾
    197 ã¡     */
    198         "FIN_WAIT_1",           /* APP が終了、FIN 送信済み、ACK å¾
    199 ã¡     */
    200         "CLOSING",              /* 同時クローズ、FIN 交換済み、ACK å¾
    201 ã¡     */
    202         "LAST_ACK",             /* APP が終了、ACK å¾
    203 ã¡                     */
    204         "FIN_WAIT_2",           /* 相手からの FIN å¾
    205 ã¡                     */
    206         "TIME_WAIT",            /* 相手からの FIN 受信済み、時間å¾
    207 ã¡     */
     165        "CLOSED",               /* クローズ                 */
     166        "LISTEN",               /* 受動オープン                       */
     167        "SYN_SENT",             /* 能動オープン、SYN 送信済み      */
     168        "SYN_RECVD",            /* 受動オープン、SYN 受信済み      */
     169        "ESTABLISHED",          /* コネクション開設完了           */
     170        "CLOSE_WAIT",           /* 相手から FIN 受信、APP の終了待ち        */
     171        "FIN_WAIT_1",           /* APP が終了、FIN 送信済み、ACK 待ち      */
     172        "CLOSING",              /* 同時クローズ、FIN 交換済み、ACK 待ち       */
     173        "LAST_ACK",             /* APP が終了、ACK 待ち                       */
     174        "FIN_WAIT_2",           /* 相手からの FIN 待ち                 */
     175        "TIME_WAIT",            /* 相手からの FIN 受信済み、時間待ち  */
    208176        };
    209177
     
    498466
    499467/*
    500  *  udp_status -- UDP の状æ
    501 ‹ã®å‡ºåŠ›
     468 *  udp_status -- UDP の状態の出力
    502469 */
    503470
     
    536503
    537504/*
    538  *  ifa_status -- ARP キャッシュ出力
     505 *  ifa_status -- ARP キャッシュ出力
    539506 */
    540507
     
    550517                    "IX Expire IP Address      MAC Address\n");
    551518
    552         /* expire の単位は [ms]。*/
     519        /* expire の単位は [ms]。*/
    553520        cache = arp_get_cache();
    554521        for (ix = 0; ix < NUM_ARP_ENTRY; ix ++) {
     
    568535
    569536/*
    570  * ifa_status -- 近隣キャッシュ状æ
    571 ‹ã®å‡ºåŠ›
     537 * ifa_status -- 近隣キャッシュ状態の出力
    572538 */
    573539
    574540static const char nd_state_str[][sizeof("INCOMPLETE")] = {
    575         "FREE",                 /* 未使用            */
    576         "NO STATE",             /* 状æ
    577 ‹æœªå®šç¾©              */
    578         "INCOMPLETE",           /* 未解決            */
    579         "REACHABLE",            /* 到達可能         */
    580         "STALE",                /* 到達可能性は未確認  */
    581         "DELAY",                /* 到達可能性の確認å¾
    582 æ©Ÿ     */
    583         "PROBE",                /* 到達可能性を確認中  */
     541        "FREE",                 /* 未使用          */
     542        "NO STATE",             /* 状態未定義                */
     543        "INCOMPLETE",           /* 未解決          */
     544        "REACHABLE",            /* 到達可能         */
     545        "STALE",                /* 到達可能性は未確認    */
     546        "DELAY",                /* 到達可能性の確認待機   */
     547        "PROBE",                /* 到達可能性を確認中    */
    584548        };
    585549
     
    596560                    "IX Expire State      MAC Address       IP Address\n");
    597561
    598         /* expire の単位は [ms]。*/
     562        /* expire の単位は [ms]。*/
    599563        get_tim(&now);
    600564        cache = nd6_get_cache();
     
    623587
    624588/*
    625  *  net_count_struct -- ネットワーク統計æƒ
    626 å ±
     589 *  net_count_struct -- ネットワーク統計情報
    627590 */
    628591
     
    631594{
    632595        cons_printf(portid, "\n%s\n", name);
    633         cons_printf(portid, "\t受信オクテット数\t%lu\n",        item->in_octets);
    634         cons_printf(portid, "\t送信オクテット数\t%lu\n",        item->out_octets);
    635         cons_printf(portid, "\t受信バケット数\t%lu\n",           item->in_packets);
    636         cons_printf(portid, "\t送信バケット数\t%lu\n",           item->out_packets);
    637         cons_printf(portid, "\t受信エラーバケット数\t%lu\n",  item->in_err_packets);
    638         cons_printf(portid, "\t送信エラーバケット数\t%lu\n",  item->out_err_packets);
     596        cons_printf(portid, "\t受信オクテット数\t%lu\n",        item->in_octets);
     597        cons_printf(portid, "\t送信オクテット数\t%lu\n",        item->out_octets);
     598        cons_printf(portid, "\t受信バケット数\t%lu\n",         item->in_packets);
     599        cons_printf(portid, "\t送信バケット数\t%lu\n",         item->out_packets);
     600        cons_printf(portid, "\t受信エラーバケット数\t%lu\n",      item->in_err_packets);
     601        cons_printf(portid, "\t送信エラーバケット数\t%lu\n",      item->out_err_packets);
    639602        }
    640603
    641604/*
    642  *  net_count -- ネットワーク統計æƒ
    643 å ±
     605 *  net_count -- ネットワーク統計情報
    644606 */
    645607
     
    653615        WAI_NET_CONS_PRINTF();
    654616        get_tim(&now);
    655         cons_printf(portid, "ネットワーク統計æƒ
    656 å ±\t経過時間[ms]\t%lu\t", now);
     617        cons_printf(portid, "ネットワーク統計情報\t経過時間[ms]\t%lu\t", now);
    657618        if (now > (1000 * 3600 * 24))
    658                 cons_printf(portid, "%3lu日 %2lu時間 %2lu分 %2lu秒\n",
     619                cons_printf(portid, "%3lu日 %2lu時間 %2lu分 %2lu秒\n",
    659620                             now / (1000 * 3600 * 24),
    660621                            (now / (1000 * 3600)) % 24,
     
    662623                            (now /  1000        ) % 60);
    663624        else
    664                 cons_printf(portid, "%2lu時間 %2lu分 %2lu秒\n",
     625                cons_printf(portid, "%2lu時間 %2lu分 %2lu秒\n",
    665626                            (now / (1000 * 3600)) % 24,
    666627                            (now / (1000 * 60  )) % 60,
     
    671632        net_count_struct(portid, "HDLC", &net_count_hdlc);
    672633        cons_printf(portid, "\nPPP\n");
    673         cons_printf(portid, "\t受信オクテット数\t%lu\n",        net_count_ppp.in_octets);
    674         cons_printf(portid, "\t送信オクテット数\t%lu\n",        net_count_ppp.out_octets);
    675         cons_printf(portid, "\t受信バケット数\t%lu\n",           net_count_ppp.in_packets);
    676         cons_printf(portid, "\t送信バケット数\t%lu\n",           net_count_ppp.out_packets);
    677         cons_printf(portid, "\t受信エラーバケット数\t%lu\n",  net_count_ppp.in_err_packets);
    678         cons_printf(portid, "\t送信エラーバケット数\t%lu\n",  net_count_ppp.out_err_packets);
    679         cons_printf(portid, "\tnet_buf 割り当て失敗数\t%lu\n",   net_count_ppp_no_bufs);
     634        cons_printf(portid, "\t受信オクテット数\t%lu\n",        net_count_ppp.in_octets);
     635        cons_printf(portid, "\t送信オクテット数\t%lu\n",        net_count_ppp.out_octets);
     636        cons_printf(portid, "\t受信バケット数\t%lu\n",         net_count_ppp.in_packets);
     637        cons_printf(portid, "\t送信バケット数\t%lu\n",         net_count_ppp.out_packets);
     638        cons_printf(portid, "\t受信エラーバケット数\t%lu\n",      net_count_ppp.in_err_packets);
     639        cons_printf(portid, "\t送信エラーバケット数\t%lu\n",      net_count_ppp.out_err_packets);
     640        cons_printf(portid, "\tnet_buf 割り当て失敗数\t%lu\n", net_count_ppp_no_bufs);
    680641
    681642        cons_printf(portid, "\nLCP\n");
    682         cons_printf(portid, "\t受信オクテット数\t%lu\n",        net_count_ppp_lcp_in_octets);
    683         cons_printf(portid, "\t受信バケット数\t%lu\n",           net_count_ppp_lcp_in_packets);
     643        cons_printf(portid, "\t受信オクテット数\t%lu\n",        net_count_ppp_lcp_in_octets);
     644        cons_printf(portid, "\t受信バケット数\t%lu\n",         net_count_ppp_lcp_in_packets);
    684645
    685646        cons_printf(portid, "\nIPCP\n");
    686         cons_printf(portid, "\t受信オクテット数\t%lu\n",        net_count_ppp_ipcp_in_octets);
    687         cons_printf(portid, "\t受信バケット数\t%lu\n",           net_count_ppp_ipcp_in_packets);
     647        cons_printf(portid, "\t受信オクテット数\t%lu\n",        net_count_ppp_ipcp_in_octets);
     648        cons_printf(portid, "\t受信バケット数\t%lu\n",         net_count_ppp_ipcp_in_packets);
    688649
    689650        cons_printf(portid, "\nPAP\n");
    690         cons_printf(portid, "\t受信オクテット数\t%lu\n",        net_count_ppp_upap_in_octets);
    691         cons_printf(portid, "\t受信バケット数\t%lu\n",           net_count_ppp_upap_in_packets);
     651        cons_printf(portid, "\t受信オクテット数\t%lu\n",        net_count_ppp_upap_in_octets);
     652        cons_printf(portid, "\t受信バケット数\t%lu\n",         net_count_ppp_upap_in_packets);
    692653
    693654#endif  /* of #ifdef SUPPORT_PPP */
     
    695656#ifdef SUPPORT_ETHER
    696657
    697         net_count_struct(portid, "イーサネット", &net_count_ether);
    698 
    699         cons_printf(portid, "\nイーサネット・ネットワークインタフェース\n");
    700         cons_printf(portid, "\t受信オクテット数\t%lu\n",                        net_count_ether_nic[NC_ETHER_NIC_IN_OCTETS]);
    701         cons_printf(portid, "\t受信バケット数\t%lu\n",                           net_count_ether_nic[NC_ETHER_NIC_IN_PACKETS]);
    702         cons_printf(portid, "\t受信エラーバケット数\t%lu\n",                  net_count_ether_nic[NC_ETHER_NIC_IN_ERR_PACKETS]);
    703         cons_printf(portid, "\tnet_buf 割り当て失敗数\t%lu\n",                   net_count_ether_nic[NC_ETHER_NIC_NO_BUFS]);
    704         cons_printf(portid, "\t受信セマフォ資源返却上限オーバー数\t%lu\n",     net_count_ether_nic[NC_ETHER_NIC_RXB_QOVRS]);
    705         cons_printf(portid, "\t送信オクテット数\t%lu\n",                        net_count_ether_nic[NC_ETHER_NIC_OUT_OCTETS]);
    706         cons_printf(portid, "\t送信バケット数\t%lu\n",                           net_count_ether_nic[NC_ETHER_NIC_OUT_PACKETS]);
    707         cons_printf(portid, "\t送信エラーバケット数\t%lu\n",                  net_count_ether_nic[NC_ETHER_NIC_OUT_ERR_PACKETS]);
    708         cons_printf(portid, "\tコリジョン数\t%lu\n",                              net_count_ether_nic[NC_ETHER_NIC_COLS]);
    709         cons_printf(portid, "\t送信セマフォ資源返却上限オーバー数\t%lu\n",     net_count_ether_nic[NC_ETHER_NIC_TXB_QOVRS]);
    710         cons_printf(portid, "\t送信タイムアウト数      \t%lu\n",               net_count_ether_nic[NC_ETHER_NIC_TIMEOUTS]);
    711         cons_printf(portid, "\tリセット数\t%lu\n",                         net_count_ether_nic[NC_ETHER_NIC_RESETS]);
     658        net_count_struct(portid, "イーサネット", &net_count_ether);
     659
     660        cons_printf(portid, "\nイーサネット・ネットワークインタフェース\n");
     661        cons_printf(portid, "\t受信オクテット数\t%lu\n",                        net_count_ether_nic[NC_ETHER_NIC_IN_OCTETS]);
     662        cons_printf(portid, "\t受信バケット数\t%lu\n",                         net_count_ether_nic[NC_ETHER_NIC_IN_PACKETS]);
     663        cons_printf(portid, "\t受信エラーバケット数\t%lu\n",                      net_count_ether_nic[NC_ETHER_NIC_IN_ERR_PACKETS]);
     664        cons_printf(portid, "\tnet_buf 割り当て失敗数\t%lu\n",                 net_count_ether_nic[NC_ETHER_NIC_NO_BUFS]);
     665        cons_printf(portid, "\t受信セマフォ資源返却上限オーバー数\t%lu\n",       net_count_ether_nic[NC_ETHER_NIC_RXB_QOVRS]);
     666        cons_printf(portid, "\t送信オクテット数\t%lu\n",                        net_count_ether_nic[NC_ETHER_NIC_OUT_OCTETS]);
     667        cons_printf(portid, "\t送信バケット数\t%lu\n",                         net_count_ether_nic[NC_ETHER_NIC_OUT_PACKETS]);
     668        cons_printf(portid, "\t送信エラーバケット数\t%lu\n",                      net_count_ether_nic[NC_ETHER_NIC_OUT_ERR_PACKETS]);
     669        cons_printf(portid, "\tコリジョン数\t%lu\n",                          net_count_ether_nic[NC_ETHER_NIC_COLS]);
     670        cons_printf(portid, "\t送信セマフォ資源返却上限オーバー数\t%lu\n",       net_count_ether_nic[NC_ETHER_NIC_TXB_QOVRS]);
     671        cons_printf(portid, "\t送信タイムアウト数        \t%lu\n",               net_count_ether_nic[NC_ETHER_NIC_TIMEOUTS]);
     672        cons_printf(portid, "\tリセット数\t%lu\n",                           net_count_ether_nic[NC_ETHER_NIC_RESETS]);
    712673
    713674#endif  /* of #ifdef SUPPORT_ETHER */
     
    722683
    723684        cons_printf(portid, "\nIPv4\n");
    724         cons_printf(portid, "\t受信オクテット数\t%lu\n",                net_count_ip4[NC_IP4_IN_OCTETS]);
    725         cons_printf(portid, "\t受信データグラム数\t%lu\n",             net_count_ip4[NC_IP4_IN_PACKETS]);
    726         cons_printf(portid, "\t受信エラーデータグラム数\t%lu\n",    net_count_ip4[NC_IP4_IN_ERR_PACKETS]);
    727         cons_printf(portid, "\tチェックサムエラー数\t%lu\n",          net_count_ip4[NC_IP4_IN_ERR_CKSUM]);
    728         cons_printf(portid, "\t長さエラー数\t%lu\n",                      net_count_ip4[NC_IP4_IN_ERR_SHORT]);
    729         cons_printf(portid, "\tバージョンエラー数\t%lu\n",             net_count_ip4[NC_IP4_IN_ERR_VER]);
    730         cons_printf(portid, "\tアドレスエラー数\t%lu\n",                net_count_ip4[NC_IP4_IN_ERR_ADDR]);
    731         cons_printf(portid, "\tプロトコルエラー数\t%lu\n",             net_count_ip4[NC_IP4_IN_ERR_PROTO]);
    732         cons_printf(portid, "\tオプションå
    733 ¥åŠ›æ•°\t%lu\n",                net_count_ip4[NC_IP4_OPTS]);
    734         cons_printf(portid, "\t分割受信数\t%lu\n",                 net_count_ip4[NC_IP4_FRAG_IN]);
    735         cons_printf(portid, "\t分割受信フラグメント数\t%lu\n",               net_count_ip4[NC_IP4_FRAG_IN_FRAGS]);
    736         cons_printf(portid, "\t分割受信再構成成功数\t%lu\n",          net_count_ip4[NC_IP4_FRAG_IN_OK]);
    737         cons_printf(portid, "\t分割受信破棄数\t%lu\n",                   net_count_ip4[NC_IP4_FRAG_IN_DROP]);
    738         cons_printf(portid, "\t分割受信バッファり当て失敗数\t%lu\n",      net_count_ip4[NC_IP4_FRAG_IN_NO_BUF]);
    739         cons_printf(portid, "\t分割受信タイムアウト数\t%lu\n",               net_count_ip4[NC_IP4_FRAG_IN_TMOUT]);
    740         cons_printf(portid, "\t送信オクテット数\t%lu\n",                net_count_ip4[NC_IP4_OUT_OCTETS]);
    741         cons_printf(portid, "\t送信データグラム数\t%lu\n",             net_count_ip4[NC_IP4_OUT_PACKETS]);
    742         cons_printf(portid, "\t送信エラーデータグラム数\t%lu\n",    net_count_ip4[NC_IP4_OUT_ERR_PACKETS]);
    743         cons_printf(portid, "\t分割送信数\t%lu\n",                 net_count_ip4[NC_IP4_FRAG_OUT]);
    744         cons_printf(portid, "\t分割送信フラグメント数\t%lu\n",               net_count_ip4[NC_IP4_FRAG_OUT_FRAGS]);
     685        cons_printf(portid, "\t受信オクテット数\t%lu\n",                net_count_ip4[NC_IP4_IN_OCTETS]);
     686        cons_printf(portid, "\t受信データグラム数\t%lu\n",               net_count_ip4[NC_IP4_IN_PACKETS]);
     687        cons_printf(portid, "\t受信エラーデータグラム数\t%lu\n",    net_count_ip4[NC_IP4_IN_ERR_PACKETS]);
     688        cons_printf(portid, "\tチェックサムエラー数\t%lu\n",              net_count_ip4[NC_IP4_IN_ERR_CKSUM]);
     689        cons_printf(portid, "\t長さエラー数\t%lu\n",                  net_count_ip4[NC_IP4_IN_ERR_SHORT]);
     690        cons_printf(portid, "\tバージョンエラー数\t%lu\n",               net_count_ip4[NC_IP4_IN_ERR_VER]);
     691        cons_printf(portid, "\tアドレスエラー数\t%lu\n",                net_count_ip4[NC_IP4_IN_ERR_ADDR]);
     692        cons_printf(portid, "\tプロトコルエラー数\t%lu\n",               net_count_ip4[NC_IP4_IN_ERR_PROTO]);
     693        cons_printf(portid, "\tオプション入力数\t%lu\n",                net_count_ip4[NC_IP4_OPTS]);
     694        cons_printf(portid, "\t分割受信数\t%lu\n",                   net_count_ip4[NC_IP4_FRAG_IN]);
     695        cons_printf(portid, "\t分割受信フラグメント数\t%lu\n",             net_count_ip4[NC_IP4_FRAG_IN_FRAGS]);
     696        cons_printf(portid, "\t分割受信再構成成功数\t%lu\n",              net_count_ip4[NC_IP4_FRAG_IN_OK]);
     697        cons_printf(portid, "\t分割受信破棄数\t%lu\n",                 net_count_ip4[NC_IP4_FRAG_IN_DROP]);
     698        cons_printf(portid, "\t分割受信バッファり当て失敗数\t%lu\n",  net_count_ip4[NC_IP4_FRAG_IN_NO_BUF]);
     699        cons_printf(portid, "\t分割受信タイムアウト数\t%lu\n",             net_count_ip4[NC_IP4_FRAG_IN_TMOUT]);
     700        cons_printf(portid, "\t送信オクテット数\t%lu\n",                net_count_ip4[NC_IP4_OUT_OCTETS]);
     701        cons_printf(portid, "\t送信データグラム数\t%lu\n",               net_count_ip4[NC_IP4_OUT_PACKETS]);
     702        cons_printf(portid, "\t送信エラーデータグラム数\t%lu\n",    net_count_ip4[NC_IP4_OUT_ERR_PACKETS]);
     703        cons_printf(portid, "\t分割送信数\t%lu\n",                   net_count_ip4[NC_IP4_FRAG_OUT]);
     704        cons_printf(portid, "\t分割送信フラグメント数\t%lu\n",             net_count_ip4[NC_IP4_FRAG_OUT_FRAGS]);
    745705
    746706        net_count_struct(portid, "ICMP", &net_count_icmp4);
     
    751711
    752712        cons_printf(portid, "\nIPv6\n");
    753         cons_printf(portid, "\t受信オクテット数\t%lu\n",                net_count_ip6[NC_IP6_IN_OCTETS]);
    754         cons_printf(portid, "\t受信データグラム数\t%lu\n",             net_count_ip6[NC_IP6_IN_PACKETS]);
    755         cons_printf(portid, "\t受信エラーデータグラム数\t%lu\n",    net_count_ip6[NC_IP6_IN_ERR_PACKETS]);
    756         cons_printf(portid, "\t長さエラー数\t%lu\n",                      net_count_ip6[NC_IP6_IN_ERR_SHORT]);
    757         cons_printf(portid, "\tバージョンエラー数\t%lu\n",             net_count_ip6[NC_IP6_IN_ERR_VER]);
    758         cons_printf(portid, "\tアドレスエラー数\t%lu\n",                net_count_ip6[NC_IP6_IN_ERR_ADDR]);
    759         cons_printf(portid, "\tプロトコルエラー数\t%lu\n",             net_count_ip6[NC_IP6_IN_ERR_PROTO]);
    760         cons_printf(portid, "\t分割受信数\t%lu\n",                 net_count_ip6[NC_IP6_FRAG_IN]);
    761         cons_printf(portid, "\t分割受信フラグメント数\t%lu\n",               net_count_ip6[NC_IP6_FRAG_IN_FRAGS]);
    762         cons_printf(portid, "\t分割受信再構成成功数\t%lu\n",          net_count_ip6[NC_IP6_FRAG_IN_OK]);
    763         cons_printf(portid, "\t分割受信破棄数\t%lu\n",                   net_count_ip6[NC_IP6_FRAG_IN_DROP]);
    764         cons_printf(portid, "\t分割受信バッファり当て失敗数\t%lu\n",      net_count_ip6[NC_IP6_FRAG_IN_NO_BUF]);
    765         cons_printf(portid, "\t分割受信タイムアウト数\t%lu\n",               net_count_ip6[NC_IP6_FRAG_IN_TMOUT]);
    766         cons_printf(portid, "\t送信オクテット数\t%lu\n",                net_count_ip6[NC_IP6_OUT_OCTETS]);
    767         cons_printf(portid, "\t送信データグラム数\t%lu\n",             net_count_ip6[NC_IP6_OUT_PACKETS]);
    768         cons_printf(portid, "\t送信エラーデータグラム数\t%lu\n",    net_count_ip6[NC_IP6_OUT_ERR_PACKETS]);
    769         cons_printf(portid, "\t分割送信数\t%lu\n",                 net_count_ip6[NC_IP6_FRAG_OUT]);
    770         cons_printf(portid, "\t分割送信フラグメント数\t%lu\n",               net_count_ip6[NC_IP6_FRAG_OUT_FRAGS]);
     713        cons_printf(portid, "\t受信オクテット数\t%lu\n",                net_count_ip6[NC_IP6_IN_OCTETS]);
     714        cons_printf(portid, "\t受信データグラム数\t%lu\n",               net_count_ip6[NC_IP6_IN_PACKETS]);
     715        cons_printf(portid, "\t受信エラーデータグラム数\t%lu\n",    net_count_ip6[NC_IP6_IN_ERR_PACKETS]);
     716        cons_printf(portid, "\t長さエラー数\t%lu\n",                  net_count_ip6[NC_IP6_IN_ERR_SHORT]);
     717        cons_printf(portid, "\tバージョンエラー数\t%lu\n",               net_count_ip6[NC_IP6_IN_ERR_VER]);
     718        cons_printf(portid, "\tアドレスエラー数\t%lu\n",                net_count_ip6[NC_IP6_IN_ERR_ADDR]);
     719        cons_printf(portid, "\tプロトコルエラー数\t%lu\n",               net_count_ip6[NC_IP6_IN_ERR_PROTO]);
     720        cons_printf(portid, "\t分割受信数\t%lu\n",                   net_count_ip6[NC_IP6_FRAG_IN]);
     721        cons_printf(portid, "\t分割受信フラグメント数\t%lu\n",             net_count_ip6[NC_IP6_FRAG_IN_FRAGS]);
     722        cons_printf(portid, "\t分割受信再構成成功数\t%lu\n",              net_count_ip6[NC_IP6_FRAG_IN_OK]);
     723        cons_printf(portid, "\t分割受信破棄数\t%lu\n",                 net_count_ip6[NC_IP6_FRAG_IN_DROP]);
     724        cons_printf(portid, "\t分割受信バッファり当て失敗数\t%lu\n",  net_count_ip6[NC_IP6_FRAG_IN_NO_BUF]);
     725        cons_printf(portid, "\t分割受信タイムアウト数\t%lu\n",             net_count_ip6[NC_IP6_FRAG_IN_TMOUT]);
     726        cons_printf(portid, "\t送信オクテット数\t%lu\n",                net_count_ip6[NC_IP6_OUT_OCTETS]);
     727        cons_printf(portid, "\t送信データグラム数\t%lu\n",               net_count_ip6[NC_IP6_OUT_PACKETS]);
     728        cons_printf(portid, "\t送信エラーデータグラム数\t%lu\n",    net_count_ip6[NC_IP6_OUT_ERR_PACKETS]);
     729        cons_printf(portid, "\t分割送信数\t%lu\n",                   net_count_ip6[NC_IP6_FRAG_OUT]);
     730        cons_printf(portid, "\t分割送信フラグメント数\t%lu\n",             net_count_ip6[NC_IP6_FRAG_OUT_FRAGS]);
    771731
    772732        cons_printf(portid, "\nICMPv6\n");
    773         cons_printf(portid, "\t受信オクテット数\t%lu\n",                net_count_icmp6[NC_ICMP6_IN_OCTETS]);
    774         cons_printf(portid, "\t受信パケット数\t%lu\n",                   net_count_icmp6[NC_ICMP6_IN_PACKETS]);
    775         cons_printf(portid, "\t受信エラーパケット数\t%lu\n",          net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS]);
    776         cons_printf(portid, "\t受信チックサムエラー数\t%lu\n",               net_count_icmp6[NC_ICMP6_IN_ERR_CKSUM]);
    777         cons_printf(portid, "\t送信オクテット数\t%lu\n",                net_count_icmp6[NC_ICMP6_OUT_OCTETS]);
    778         cons_printf(portid, "\t送信パケット数\t%lu\n",                   net_count_icmp6[NC_ICMP6_OUT_PACKETS]);
    779         cons_printf(portid, "\t送信エラーパケット数\t%lu\n",          net_count_icmp6[NC_ICMP6_OUT_ERR_PACKETS]);
    780 
    781         cons_printf(portid, "\n近隣探索\n");
    782         cons_printf(portid, "\tルータ通知受信数\t%lu\n",                net_count_nd6[NC_ND6_RA_IN_PACKETS]);
    783         cons_printf(portid, "\tルータ要請送信数\t%lu\n",                net_count_nd6[NC_ND6_RS_OUT_PACKETS]);
    784         cons_printf(portid, "\t近隣通知受信数\t%lu\n",                   net_count_nd6[NC_ND6_NA_IN_PACKETS]);
    785         cons_printf(portid, "\t近隣通知送信数\t%lu\n",                   net_count_nd6[NC_ND6_NA_OUT_PACKETS]);
    786         cons_printf(portid, "\t近隣要請受信数\t%lu\n",                   net_count_nd6[NC_ND6_NS_IN_PACKETS]);
    787         cons_printf(portid, "\t近隣要請送信数\t%lu\n",                   net_count_nd6[NC_ND6_NS_OUT_PACKETS]);
    788         cons_printf(portid, "\t重複アドレス検出送信数\t%lu\n",               net_count_nd6[NC_ND6_DAD_OUT_PACKETS]);
     733        cons_printf(portid, "\t受信オクテット数\t%lu\n",                net_count_icmp6[NC_ICMP6_IN_OCTETS]);
     734        cons_printf(portid, "\t受信パケット数\t%lu\n",                 net_count_icmp6[NC_ICMP6_IN_PACKETS]);
     735        cons_printf(portid, "\t受信エラーパケット数\t%lu\n",              net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS]);
     736        cons_printf(portid, "\t受信チックサムエラー数\t%lu\n",             net_count_icmp6[NC_ICMP6_IN_ERR_CKSUM]);
     737        cons_printf(portid, "\t送信オクテット数\t%lu\n",                net_count_icmp6[NC_ICMP6_OUT_OCTETS]);
     738        cons_printf(portid, "\t送信パケット数\t%lu\n",                 net_count_icmp6[NC_ICMP6_OUT_PACKETS]);
     739        cons_printf(portid, "\t送信エラーパケット数\t%lu\n",              net_count_icmp6[NC_ICMP6_OUT_ERR_PACKETS]);
     740
     741        cons_printf(portid, "\n近隣探索\n");
     742        cons_printf(portid, "\tルータ通知受信数\t%lu\n",                net_count_nd6[NC_ND6_RA_IN_PACKETS]);
     743        cons_printf(portid, "\tルータ要請送信数\t%lu\n",                net_count_nd6[NC_ND6_RS_OUT_PACKETS]);
     744        cons_printf(portid, "\t近隣通知受信数\t%lu\n",                 net_count_nd6[NC_ND6_NA_IN_PACKETS]);
     745        cons_printf(portid, "\t近隣通知送信数\t%lu\n",                 net_count_nd6[NC_ND6_NA_OUT_PACKETS]);
     746        cons_printf(portid, "\t近隣要請受信数\t%lu\n",                 net_count_nd6[NC_ND6_NS_IN_PACKETS]);
     747        cons_printf(portid, "\t近隣要請送信数\t%lu\n",                 net_count_nd6[NC_ND6_NS_OUT_PACKETS]);
     748        cons_printf(portid, "\t重複アドレス検出送信数\t%lu\n",             net_count_nd6[NC_ND6_DAD_OUT_PACKETS]);
    789749
    790750#endif  /* of #if defined(SUPPORT_INET6) */
     
    793753
    794754        cons_printf(portid, "\nTCP\n");
    795         cons_printf(portid, "\t受信オクテット数\t%lu\n",                net_count_tcp[NC_TCP_RECV_OCTETS]);
    796         cons_printf(portid, "\t受信データオクテット数\t%lu\n",               net_count_tcp[NC_TCP_RECV_DATA_OCTETS]);
    797         cons_printf(portid, "\t受信セグメント数\t%lu\n",                net_count_tcp[NC_TCP_RECV_SEGS]);
    798         cons_printf(portid, "\t受信データセグメント数\t%lu\n",               net_count_tcp[NC_TCP_RECV_DATA_SEGS]);
    799         cons_printf(portid, "\t受信、緊急セグメント数\t%lu\n",               net_count_tcp[NC_TCP_RECV_URG_SEGS]);
    800         cons_printf(portid, "\t受信、ヘッダ不正数\t%lu\n",             net_count_tcp[NC_TCP_RECV_BAD_HEADERS]);
    801         cons_printf(portid, "\t受信、チェックサム不正数\t%lu\n",    net_count_tcp[NC_TCP_RECV_BAD_CKSUMS]);
    802         cons_printf(portid, "\t受信、ACK 数\t%lu\n",                        net_count_tcp[NC_TCP_RECV_ACKS]);
    803         cons_printf(portid, "\t受信、多重 ACK 数\t%lu\n",         net_count_tcp[NC_TCP_RECV_DUP_ACKS]);
    804         cons_printf(portid, "\t受信、RST 数\t%lu\n",                        net_count_tcp[NC_TCP_RECV_RSTS]);
    805         cons_printf(portid, "\t受信、多重数\t%lu\n",                      net_count_tcp[NC_TCP_RECV_DUP_SEGS]);
    806         cons_printf(portid, "\t受信、破棄数\t%lu\n",                      net_count_tcp[NC_TCP_RECV_DROP_SEGS]);
    807         cons_printf(portid, "\t受信キュー解放数\t%lu\n",                net_count_tcp[NC_TCP_FREE_RCV_QUEUE]);
    808         cons_printf(portid, "\t送信データオクテット数\t%lu\n",               net_count_tcp[NC_TCP_SEND_DATA_OCTETS]);
    809         cons_printf(portid, "\t送信制御セグメント数\t%lu\n",          net_count_tcp[NC_TCP_SEND_CNTL_SEGS]);
    810         cons_printf(portid, "\t送信セグメント数\t%lu\n",                net_count_tcp[NC_TCP_SEND_SEGS]);
    811         cons_printf(portid, "\t再送信セグメント数\t%lu\n",             net_count_tcp[NC_TCP_SEND_REXMIT_SEGS]);
    812         cons_printf(portid, "\t送信データセグメント数\t%lu\n",               net_count_tcp[NC_TCP_SEND_DATA_SEGS]);
    813         cons_printf(portid, "\t送信、緊急セグメント数\t%lu\n",               net_count_tcp[NC_TCP_SEND_URG_SEGS]);
    814         cons_printf(portid, "\t送信、ACK 数\t%lu\n",                        net_count_tcp[NC_TCP_SEND_ACKS]);
    815         cons_printf(portid, "\t送信、RST 数\t%lu\n",                        net_count_tcp[NC_TCP_SEND_RSTS]);
    816         cons_printf(portid, "\tRTT 更新数\t%lu\n",                   net_count_tcp[NC_TCP_RTT_UPDATES]);
    817         cons_printf(portid, "\t受動オープン数\t%lu\n",                   net_count_tcp[NC_TCP_ACCEPTS]);
    818         cons_printf(portid, "\t能動オープン数\t%lu\n",                   net_count_tcp[NC_TCP_CONNECTS]);
     755        cons_printf(portid, "\t受信オクテット数\t%lu\n",                net_count_tcp[NC_TCP_RECV_OCTETS]);
     756        cons_printf(portid, "\t受信データオクテット数\t%lu\n",             net_count_tcp[NC_TCP_RECV_DATA_OCTETS]);
     757        cons_printf(portid, "\t受信セグメント数\t%lu\n",                net_count_tcp[NC_TCP_RECV_SEGS]);
     758        cons_printf(portid, "\t受信データセグメント数\t%lu\n",             net_count_tcp[NC_TCP_RECV_DATA_SEGS]);
     759        cons_printf(portid, "\t受信、緊急セグメント数\t%lu\n",             net_count_tcp[NC_TCP_RECV_URG_SEGS]);
     760        cons_printf(portid, "\t受信、ヘッダ不正数\t%lu\n",               net_count_tcp[NC_TCP_RECV_BAD_HEADERS]);
     761        cons_printf(portid, "\t受信、チェックサム不正数\t%lu\n",    net_count_tcp[NC_TCP_RECV_BAD_CKSUMS]);
     762        cons_printf(portid, "\t受信、ACK 数\t%lu\n",                        net_count_tcp[NC_TCP_RECV_ACKS]);
     763        cons_printf(portid, "\t受信、多重 ACK 数\t%lu\n",             net_count_tcp[NC_TCP_RECV_DUP_ACKS]);
     764        cons_printf(portid, "\t受信、RST 数\t%lu\n",                        net_count_tcp[NC_TCP_RECV_RSTS]);
     765        cons_printf(portid, "\t受信、多重数\t%lu\n",                  net_count_tcp[NC_TCP_RECV_DUP_SEGS]);
     766        cons_printf(portid, "\t受信、破棄数\t%lu\n",                  net_count_tcp[NC_TCP_RECV_DROP_SEGS]);
     767        cons_printf(portid, "\t受信キュー解放数\t%lu\n",                net_count_tcp[NC_TCP_FREE_RCV_QUEUE]);
     768        cons_printf(portid, "\t送信データオクテット数\t%lu\n",             net_count_tcp[NC_TCP_SEND_DATA_OCTETS]);
     769        cons_printf(portid, "\t送信制御セグメント数\t%lu\n",              net_count_tcp[NC_TCP_SEND_CNTL_SEGS]);
     770        cons_printf(portid, "\t送信セグメント数\t%lu\n",                net_count_tcp[NC_TCP_SEND_SEGS]);
     771        cons_printf(portid, "\t再送信セグメント数\t%lu\n",               net_count_tcp[NC_TCP_SEND_REXMIT_SEGS]);
     772        cons_printf(portid, "\t送信データセグメント数\t%lu\n",             net_count_tcp[NC_TCP_SEND_DATA_SEGS]);
     773        cons_printf(portid, "\t送信、緊急セグメント数\t%lu\n",             net_count_tcp[NC_TCP_SEND_URG_SEGS]);
     774        cons_printf(portid, "\t送信、ACK 数\t%lu\n",                        net_count_tcp[NC_TCP_SEND_ACKS]);
     775        cons_printf(portid, "\t送信、RST 数\t%lu\n",                        net_count_tcp[NC_TCP_SEND_RSTS]);
     776        cons_printf(portid, "\tRTT 更新数\t%lu\n",                 net_count_tcp[NC_TCP_RTT_UPDATES]);
     777        cons_printf(portid, "\t受動オープン数\t%lu\n",                 net_count_tcp[NC_TCP_ACCEPTS]);
     778        cons_printf(portid, "\t能動オープン数\t%lu\n",                 net_count_tcp[NC_TCP_CONNECTS]);
    819779
    820780#endif  /* of #ifdef SUPPORT_TCP */
     
    827787
    828788        tbl = nbuf_get_tbl();
    829         cons_printf(portid, "\nネットワークバッファ\n\tサイズ\t用意数\t割当要求数\t割当数\t割当てエラー数\n");
     789        cons_printf(portid, "\nネットワークバッファ\n\tサイズ\t用意数\t割当要求数\t割当数\t割当てエラー数\n");
    830790        for (ix = nbuf_get_tbl_size(); ix -- > 0; ) {
    831791                cons_printf(portid, "\t%lu\t%lu\t%lu\t%lu\t%lu\n",
     
    837797                }
    838798
    839         cons_printf(portid, "\nネットワーク統計æƒ
    840 å ±\t経過時間[ms]\t%lu\t", now);
     799        cons_printf(portid, "\nネットワーク統計情報\t経過時間[ms]\t%lu\t", now);
    841800        if (now > (1000 * 3600 * 24))
    842                 cons_printf(portid, "%3lu日 %2lu時間 %2lu分 %2lu秒\n",
     801                cons_printf(portid, "%3lu日 %2lu時間 %2lu分 %2lu秒\n",
    843802                             now / (1000 * 3600 * 24),
    844803                            (now / (1000 * 3600)) % 24,
     
    846805                            (now /  1000        ) % 60);
    847806        else
    848                 cons_printf(portid, "%2lu時間 %2lu分 %2lu秒\n",
     807                cons_printf(portid, "%2lu時間 %2lu分 %2lu秒\n",
    849808                            (now / (1000 * 3600)) % 24,
    850809                            (now / (1000 * 60  )) % 60,
     
    860819
    861820/*
    862  *  nbuf_stat_ip4_frag_queue -- IPv4 再構成キューå†
    863 ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒãƒƒãƒ•ã‚¡æƒ
    864 å ±
     821 *  nbuf_stat_ip4_frag_queue -- IPv4 再構成キュー内ネットワークバッファ情報
    865822 */
    866823
     
    872829        int_t                   ix, fix, count;
    873830
    874         cons_printf(portid, "\nIPv4再構成キューå†
    875 \nIndex\tTime");
     831        cons_printf(portid, "\nIPv4再構成キュー内\nIndex\tTime");
    876832        tbl = nbuf_get_tbl();
    877833        for (ix = nbuf_get_tbl_size(); ix -- > 0; )
     
    904860
    905861/*
    906  *  nbuf_stat_ip6_frag_queue -- IPv6 再構成キューå†
    907 ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒãƒƒãƒ•ã‚¡æƒ
    908 å ±
     862 *  nbuf_stat_ip6_frag_queue -- IPv6 再構成キュー内ネットワークバッファ情報
    909863 */
    910864
     
    916870        int_t                   ix, fix, count;
    917871
    918         cons_printf(portid, "\nIPv6再構成キューå†
    919 \nIndex\tTime");
     872        cons_printf(portid, "\nIPv6再構成キュー内\nIndex\tTime");
    920873        tbl = nbuf_get_tbl();
    921874        for (ix = nbuf_get_tbl_size(); ix -- > 0; )
     
    946899
    947900/*
    948  *  nbuf_status -- ネットワークバッファæƒ
    949 å ±
     901 *  nbuf_status -- ネットワークバッファ情報
    950902 */
    951903
     
    973925        WAI_NET_CONS_PRINTF();
    974926        get_tim(&now);
    975         cons_printf(portid, "ネットワークバッファæƒ
    976 å ±\t経過時間[ms]\t%lu\n", now);
     927        cons_printf(portid, "ネットワークバッファ情報\t経過時間[ms]\t%lu\n", now);
    977928
    978929#if NET_COUNT_ENABLE
    979930
    980         cons_printf(portid, "\nネットワークバッファ\n\tサイズ\t用意数\t割当要求数\t割当数\t割当てエラー数\n");
     931        cons_printf(portid, "\nネットワークバッファ\n\tサイズ\t用意数\t割当要求数\t割当数\t割当てエラー数\n");
    981932        tbl = nbuf_get_tbl();
    982933        for (ix = nbuf_get_tbl_size(); ix -- > 0; ) {
     
    993944#ifdef SUPPORT_TCP
    994945
    995         cons_printf(portid, "\nCEPå†
    996 \nCEPID\n");
     946        cons_printf(portid, "\nCEP内\nCEPID\n");
    997947
    998948        for (cep = tcp_cep; cep < &tcp_cep[tmax_tcp_cepid]; cep ++) {
     
    10631013
    10641014/*
    1065  *  routing_table_status -- 経路表の出力
     1015 *  routing_table_status -- 経路表の出力
    10661016 */
    10671017
     
    11201070
    11211071/*
    1122  *  defrtrlist_status -- ディフォルトルータ・リスト状æ
    1123 ‹ã®å‡ºåŠ›
     1072 *  defrtrlist_status -- ディフォルトルータ・リスト状態の出力
    11241073 */
    11251074
     
    11401089        cons_printf(portid, " IP Address\n");
    11411090
    1142         /* expire の単位は [ms]。*/
     1091        /* expire の単位は [ms]。*/
    11431092        get_tim(&now);
    11441093        dr = nd6_get_drl(&count);
     
    11841133
    11851134/*
    1186  *  prefixlist_status -- プレフィックス・リスト状æ
    1187 ‹ã®å‡ºåŠ›
     1135 *  prefixlist_status -- プレフィックス・リスト状態の出力
    11881136 */
    11891137
     
    12041152        cons_printf(portid, " Len Prefix\n");
    12051153
    1206         /* expire の単位は [s]。*/
     1154        /* expire の単位は [s]。*/
    12071155        get_tim(&now);
    12081156        now /= SYSTIM_HZ;
     
    12531201
    12541202/*
    1255  *  routing_table_status -- 経路表の出力
     1203 *  routing_table_status -- 経路表の出力
    12561204 */
    12571205
     
    12761224                }
    12771225
    1278         /* expire の単位は [s]。*/
     1226        /* expire の単位は [s]。*/
    12791227        get_tim(&now);
    12801228        now /= SYSTIM_HZ;
     
    13021250
    13031251/*
    1304  *  routing_status -- ルーティングæƒ
    1305 å ±
     1252 *  routing_status -- ルーティング情報
    13061253 */
    13071254
     
    13151262#if NUM_ND6_DEF_RTR_ENTRY > 0
    13161263
    1317         case 'l':               /* ディフォルトルータ・リストæƒ
    1318 å ± */
     1264        case 'l':               /* ディフォルトルータ・リスト情報 */
    13191265                defrtrlist_status(portid, line + 1);
    13201266                break;
    13211267
    1322         case 'p':               /* プレフィックス・リストæƒ
    1323 å ± */
     1268        case 'p':               /* プレフィックス・リスト情報 */
    13241269                prefixlist_status(portid, line + 1);
    13251270                break;
     
    13291274#endif  /* of #if defined(SUPPORT_INET6) */
    13301275
    1331         default:                /* ルーティング表æƒ
    1332 å ± */
     1276        default:                /* ルーティング表情報 */
    13331277                routing_table_status(portid, line);
    13341278                break;
     
    13411285
    13421286/*
    1343  *  network_status -- ネットワークの状æ
    1344 ‹ã®å‡ºåŠ›
     1287 *  network_status -- ネットワークの状態の出力
    13451288 */
    13461289
     
    13521295#ifdef SUPPORT_ETHER
    13531296
    1354         case 'a':               /* IF アドレスæƒ
    1355 å ± */
     1297        case 'a':               /* IF アドレス情報 */
    13561298                ifa_status(portid, line + 1);
    13571299                break;
     
    13591301#endif  /* of #ifdef SUPPORT_ETHER */
    13601302
    1361         case 'b':               /* ネットワークバッファæƒ
    1362 å ± */
     1303        case 'b':               /* ネットワークバッファ情報 */
    13631304                nbuf_status(portid, line + 1);
    13641305                break;
     
    13661307#if NET_COUNT_ENABLE
    13671308
    1368         case 'c':               /* ネットワーク統計æƒ
    1369 å ± */
     1309        case 'c':               /* ネットワーク統計情報 */
    13701310                net_count(portid, line + 1);
    13711311                break;
     
    13751315#if NUM_ROUTE_ENTRY > 0
    13761316
    1377         case 'r':               /* ルーティングæƒ
    1378 å ± */
     1317        case 'r':               /* ルーティング情報 */
    13791318                routing_status(portid, line + 1);
    13801319                break;
     
    14091348
    14101349/*
    1411  *  ifconfig -- ネットワークインタフェースの構成æƒ
    1412 å ±
     1350 *  ifconfig -- ネットワークインタフェースの構成情報
    14131351 */
    14141352
     
    14581396
    14591397/*
    1460  *  ifconfig -- ネットワークインタフェースの構成æƒ
    1461 å ±
     1398 *  ifconfig -- ネットワークインタフェースの構成情報
    14621399 */
    14631400
     
    14771414                            ic->ifaddr.lladdr);
    14781415
    1479         /* expire と vltime の単位は [s]。*/
     1416        /* expire と vltime の単位は [s]。*/
    14801417        get_tim(&now);
    14811418        now /= SYSTIM_HZ;
     
    15151452
    15161453/*
    1517  *  show_config -- コンフィギュレーション設定の表示
     1454 *  show_config -- コンフィギュレーション設定の表示
    15181455 */
    15191456
     
    19181855
    19191856/*
    1920  *  デバッグコマンド解析
     1857 *  デバッグコマンド解析
    19211858 */
    19221859
     
    23232260
    23242261/*
    2325  *  デバッグコンソールタスク
     2262 *  デバッグコンソールタスク
    23262263 */
    23272264
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  デバッグコンソールのフィギュレーションファイル
     35 *  デバッグコンソールのフィギュレーションファイル
    4836 */
    4937
    5038#ifdef USE_DBG_CONS
    5139
    52 /* タスク */
     40/* タスク */
    5341
    5442CRE_TSK(DBG_CON_TASK, {
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    4836
    4937/*
    50  *  コンソール
     38 *  コンソール
    5139 */
    5240
    53 #define DBG_CON_STACK_SIZE      1024            /* コンソールタスクのスタックサイズ */
    54 #define DBG_CON_PRIORITY        5               /* コンソールタスクの優å
    55 ˆåº¦ */
     41#define DBG_CON_STACK_SIZE      1024            /* コンソールタスクのスタックサイズ */
     42#define DBG_CON_PRIORITY        5               /* コンソールタスクの優先度 */
    5643
    5744/*
    58  *  タスク
     45 *  タスク
    5946 */
    6047
     
    6249
    6350/*
    64  *  関数
     51 *  関数
    6552 */
    6653
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/discard.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    4836
    4937/*
    50  *  DISCARD サーバ・クライアントのスタックサイズ
     38 *  DISCARD サーバ・クライアントのスタックサイズ
    5139 */
    5240
    53 #define TCP_DISCARD_SRV_STACK_SIZE      1024            /* TCP DISCARD サーバタスクのスタックサイズ */
    54 #define TCP_DISCARD_CLI_STACK_SIZE      1024            /* TCP DISCARD クライアントタスクのスタックサイズ */
    55 #define UDP_DISCARD_CLI_STACK_SIZE      1024            /* UDP DISCARD クライアントタスクのスタックサイズ */
     41#define TCP_DISCARD_SRV_STACK_SIZE      1024            /* TCP DISCARD サーバタスクのスタックサイズ */
     42#define TCP_DISCARD_CLI_STACK_SIZE      1024            /* TCP DISCARD クライアントタスクのスタックサイズ */
     43#define UDP_DISCARD_CLI_STACK_SIZE      1024            /* UDP DISCARD クライアントタスクのスタックサイズ */
    5644
    5745/*
    58  *  DISCARD サーバ・クライアントの優å
    59 ˆåº¦
     46 *  DISCARD サーバ・クライアントの優先度
    6047 */
    6148
    62 #define TCP_DISCARD_SRV_MAIN_PRIORITY   5       /* TCP DISCARD サーバタスクの優å
    63 ˆåº¦ */
    64 #define TCP_DISCARD_CLI_MAIN_PRIORITY   5       /* TCP DISCARD クライアントタスクの優å
    65 ˆåº¦ */
    66 #define UDP_DISCARD_CLI_MAIN_PRIORITY   5       /* UDP DISCARD クライアントタスクの優å
    67 ˆåº¦ */
     49#define TCP_DISCARD_SRV_MAIN_PRIORITY   5       /* TCP DISCARD サーバタスクの優先度 */
     50#define TCP_DISCARD_CLI_MAIN_PRIORITY   5       /* TCP DISCARD クライアントタスクの優先度 */
     51#define UDP_DISCARD_CLI_MAIN_PRIORITY   5       /* UDP DISCARD クライアントタスクの優先度 */
    6852
    6953/*
    70  *  TCP 送受信ウインドバッファサイズ
     54 *  TCP 送受信ウインドバッファサイズ
    7155 */
    7256
     
    9579
    9680/*
    97  *  変数
     81 *  変数
    9882 */
    9983
     
    10185extern bool_t   udp_discard_cli_valid;
    10286
    103 /* TCP 送受信バッファ */
     87/* TCP 送受信バッファ */
    10488
    10589extern uint8_t tcp_discard_cli_swbuf[];
     
    11094
    11195/*
    112  *  タスク
     96 *  タスク
    11397 */
    11498
     
    119103
    120104/*
    121  *  関数
     105 *  関数
    122106 */
    123107
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/echo.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    4836
    4937/*
    50  *  ECHO クライアント・サーバのスタックサイズ
     38 *  ECHO クライアント・サーバのスタックサイズ
    5139 */
    5240
    53 #define TCP_ECHO_SRV_STACK_SIZE         1024            /* TCP ECHO サーバタスクのスタックサイズ          */
     41#define TCP_ECHO_SRV_STACK_SIZE         1024            /* TCP ECHO サーバタスクのスタックサイズ              */
    5442
    5543#ifdef TOPPERS_S810_CLG3_85
    56 #define TCP_ECHO_CLI_RCV_STACK_SIZE     512             /* TCP ECHO クライアント受信タスクのスタックサイズ   */
    57 #define TCP_ECHO_CLI_SND_STACK_SIZE     512             /* TCP ECHO クライアント送信タスクのスタックサイズ   */
     44#define TCP_ECHO_CLI_RCV_STACK_SIZE     512             /* TCP ECHO クライアント受信タスクのスタックサイズ */
     45#define TCP_ECHO_CLI_SND_STACK_SIZE     512             /* TCP ECHO クライアント送信タスクのスタックサイズ */
    5846#else   /* of #ifdef TOPPERS_S810_CLG3_85 */
    59 #define TCP_ECHO_CLI_RCV_STACK_SIZE     1024            /* TCP ECHO クライアント受信タスクのスタックサイズ   */
    60 #define TCP_ECHO_CLI_SND_STACK_SIZE     1024            /* TCP ECHO クライアント送信タスクのスタックサイズ   */
     47#define TCP_ECHO_CLI_RCV_STACK_SIZE     1024            /* TCP ECHO クライアント受信タスクのスタックサイズ */
     48#define TCP_ECHO_CLI_SND_STACK_SIZE     1024            /* TCP ECHO クライアント送信タスクのスタックサイズ */
    6149#endif  /* of #ifdef TOPPERS_S810_CLG3_85 */
    6250
    63 #define UDP_ECHO_SRV_STACK_SIZE         1024            /* UDP ECHO サーバタスクのスタックサイズ          */
    64 #define UDP_ECHO_CLI_STACK_SIZE         1024            /* UDP ECHO クライアントタスクのスタックサイズ */
     51#define UDP_ECHO_SRV_STACK_SIZE         1024            /* UDP ECHO サーバタスクのスタックサイズ              */
     52#define UDP_ECHO_CLI_STACK_SIZE         1024            /* UDP ECHO クライアントタスクのスタックサイズ   */
    6553
    6654/*
    67  *  ECHO クライアント・サーバの優å
    68 ˆåº¦
     55 *  ECHO クライアント・サーバの優先度
    6956 */
    7057
    71 #define TCP_ECHO_SRV_MAIN_PRIORITY      5               /* TCP ECHO サーバタスクの優å
    72 ˆåº¦                    */
    73 #define TCP_ECHO_CLI_RCV_MAIN_PRIORITY  5               /* TCP ECHO クライアント受信タスクの優å
    74 ˆåº¦            */
    75 #define TCP_ECHO_CLI_SND_MAIN_PRIORITY  5               /* TCP ECHO クライアント送信タスクの優å
    76 ˆåº¦            */
     58#define TCP_ECHO_SRV_MAIN_PRIORITY      5               /* TCP ECHO サーバタスクの優先度                  */
     59#define TCP_ECHO_CLI_RCV_MAIN_PRIORITY  5               /* TCP ECHO クライアント受信タスクの優先度             */
     60#define TCP_ECHO_CLI_SND_MAIN_PRIORITY  5               /* TCP ECHO クライアント送信タスクの優先度             */
    7761
    78 #define UDP_ECHO_SRV_MAIN_PRIORITY      5               /* UDP ECHO サーバタスクの優å
    79 ˆåº¦                    */
    80 #define UDP_ECHO_CLI_MAIN_PRIORITY      5               /* UDP ECHO クライアントタスクの優å
    81 ˆåº¦            */
     62#define UDP_ECHO_SRV_MAIN_PRIORITY      5               /* UDP ECHO サーバタスクの優先度                  */
     63#define UDP_ECHO_CLI_MAIN_PRIORITY      5               /* UDP ECHO クライアントタスクの優先度               */
    8264
    8365/*
    84  *  TCP 送受信ウインドバッファサイズ
     66 *  TCP 送受信ウインドバッファサイズ
    8567 */
    8668
     
    118100
    119101/*
    120  *  タスク数
     102 *  タスク数
    121103 */
    122104
     
    129111
    130112/*
    131  *  変数
     113 *  変数
    132114 */
    133115
     
    135117extern bool_t   udp_echo_cli_valid;
    136118
    137 /* TCP 送受信バッファ */
     119/* TCP 送受信バッファ */
    138120
    139121extern uint8_t tcp_echo_cli_swbuf[];
     
    148130
    149131/*
    150  *  タスク
     132 *  タスク
    151133 */
    152134
     
    161143
    162144/*
    163  *  関数
     145 *  関数
    164146 */
    165147
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.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$
     
    4533
    4634/*
    47  *  ネットワーク経由コンソールå
    48 ¥å‡ºåŠ›
     35 *  ネットワーク経由コンソール入出力
    4936 */
    5037
     
    9279
    9380/*
    94  *  マクロ定義
    95  */
    96 
    97 /*  リネームの解除  */
     81 *  マクロ定義
     82 */
     83
     84/*  リネームの解除  */
    9885
    9986#undef syslog
     
    10390#define EOF             (-1)
    10491
    105 /*  TELNET オプション */
     92/*  TELNET オプション */
    10693
    10794#define TELNET_OPT_SE           (240)
     
    123110
    124111/*
    125  *  変数
    126  */
    127 
    128 /*  TCP 送受信ウィンドバッファ  */
     112 *  変数
     113 */
     114
     115/*  TCP 送受信ウィンドバッファ  */
    129116
    130117uint8_t net_cons_swbuf[NET_CONS_SWBUF_SIZE];
    131118uint8_t net_cons_rwbuf[NET_CONS_RWBUF_SIZE];
    132119
    133 bool_t  connected       = false;        /* コネクションの状æ
    134 ‹       */
    135 bool_t  wait_accept     = false;        /* 接続要求å¾
    136 ã¡ä¸­  */
     120bool_t  connected       = false;        /* コネクションの状態    */
     121bool_t  wait_accept     = false;        /* 接続要求待ち中      */
    137122
    138123#if defined(SUPPORT_INET4)
     
    157142
    158143/*
    159  *  ノンブロッキングコールのコールバック関数
     144 *  ノンブロッキングコールのコールバック関数
    160145 */
    161146
     
    196181
    197182/*
    198  *  送信バッファのフラッシュ
     183 *  送信バッファのフラッシュ
    199184 */
    200185
     
    218203
    219204/*
    220  *  文字送信
     205 *  文字送信
    221206 */
    222207
     
    255240
    256241/*
    257  *  文字受信(変換なし)
     242 *  文字受信(変換なし)
    258243 */
    259244
     
    292277
    293278/*
    294  *  文字受信(TELNET オプションをスキップ)
     279 *  文字受信(TELNET オプションをスキップ)
    295280 */
    296281
     
    356341
    357342/*
    358  *  コネクションを切断
     343 *  コネクションを切断
    359344 */
    360345
     
    388373
    389374/*
    390  *  シリアルポートの制御
     375 *  シリアルポートの制御
    391376 */
    392377
     
    399384
    400385/*
    401  *  ログ出力
     386 *  ログ出力
    402387 */
    403388
     
    420405                va_start(ap, format);
    421406                while ((ch = *format ++) != '\0') {
    422                         if (ch != '%') {                /* 書式指定以外 */
     407                        if (ch != '%') {                /* 書式指定以外 */
    423408                                cons_putchar(CONSOLE_PORTID, (char)ch);
    424409                                continue;
     
    429414                        padchar = ' ';
    430415
    431                         if (ch == '-') {                /* 左詰め */
     416                        if (ch == '-') {                /* 左詰め */
    432417                                format ++;
    433418                                left = -1;
     
    436421                                left = 1;
    437422
    438                         if ((ch = *format ++) == '0') { /* 上位桁の 0 */
     423                        if ((ch = *format ++) == '0') { /* 上位桁の 0 */
    439424                                padchar = '0';
    440425                                ch = *format ++;
    441426                                }
    442427
    443                         while ('0' <= ch && ch <= '9') {        /* 出力å¹
    444  */
     428                        while ('0' <= ch && ch <= '9') {        /* 出力幅 */
    445429                                width = width * 10 + ch - '0';
    446430                                ch = *format ++;
    447431                                }
    448432
    449                         while (ch == 'l') {             /* long (long) の指定 */
     433                        while (ch == 'l') {             /* long (long) の指定 */
    450434                                longflag = true;
    451435                                ch = *format ++;
     
    555539                                }
    556540
    557                         while (ch == 'l') {             /* long (long) の指定 */
     541                        while (ch == 'l') {             /* long (long) の指定 */
    558542                                longflag = true;
    559543                                ch = *format ++;
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  ネットワーク経由コンソールå
    48 ¥å‡ºåŠ›
    49  *  システムコンフィギュレーションファイル
     35 *  ネットワーク経由コンソール入出力
     36 *  システムコンフィギュレーションファイル
    5037 */
    5138
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/net_cons.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    4533
    4634/*
    47  *  ネットワーク経由コンソールå
    48 ¥å‡ºåŠ›
     35 *  ネットワーク経由コンソール入出力
    4936 */
    5037
    51 /*  TCP 送受信ウィンドバッファサイズ  */
     38/*  TCP 送受信ウィンドバッファサイズ  */
    5239
    5340#define NET_CONS_SWBUF_SIZE     512
     
    5643#ifndef _MACRO_ONLY
    5744
    58 /*  TCP 送受信ウィンドバッファ  */
     45/*  TCP 送受信ウィンドバッファ  */
    5946
    6047extern uint8_t net_cons_swbuf[];
    6148extern uint8_t net_cons_rwbuf[];
    6249
    63 /*  ノンブロッキングコールのコールバック関数  */
     50/*  ノンブロッキングコールのコールバック関数  */
    6451
    6552extern ER       callback_nblk_net_cons(ID cepid, FN fncd, void *p_parblk);
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    4836
    4937/*
    50  *  IPv4 と IPv6 の切換えマクロ
     38 *  IPv4 と IPv6 の切換えマクロ
    5139 */
    5240
     
    6048
    6149/*
    62  *  コンソールに用いるシリアルポート番号
     50 *  コンソールに用いるシリアルポート番号
    6351 */
    6452
     
    7058
    7159/*
    72  *  数値変換のための変換表
     60 *  数値変換のための変換表
    7361 */
    7462
     
    7765
    7866/*
    79  *  関数
     67 *  関数
    8068 */
    8169
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_subr.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$
     
    4533
    4634/*
    47  *  ネットワーク応用プログラムサポートルーチン
     35 *  ネットワーク応用プログラムサポートルーチン
    4836 */
    4937
     
    8472
    8573/*
    86  *  シリアルポートへの書式付文字列出力ライブラリ
     74 *  シリアルポートへの書式付文字列出力ライブラリ
    8775 */
    8876
     
    9078
    9179/*
    92  *  数値変換のための変換表
     80 *  数値変換のための変換表
    9381 */
    9482
     
    9987
    10088/*
    101  *  cons_putchar -- シリアルポートへの文字出力
     89 *  cons_putchar -- シリアルポートへの文字出力
    10290 */
    10391
     
    10997
    11098/*
    111  *  cons_getchar -- シリアルポートからの文字å
    112 ¥åŠ›
     99 *  cons_getchar -- シリアルポートからの文字入力
    113100 */
    114101
     
    127114
    128115/*
    129  *  cons_putnumber -- cons_printf の数値変換
     116 *  cons_putnumber -- cons_printf の数値変換
    130117 */
    131118
     
    160147
    161148        pad = ix;
    162         if (!left)      /* 右詰め */
     149        if (!left)      /* 右詰め */
    163150                for ( ; pad < width; pad ++)
    164151                        cons_putchar(portid, padchar);
     
    167154                cons_putchar(portid, digits[ix]);
    168155
    169         if (left)       /* 左詰め */
     156        if (left)       /* 左詰め */
    170157                for ( ; pad < width; pad ++)
    171158                        cons_putchar(portid, padchar);
     
    177164
    178165/*
    179  *  put_ipv4addr -- IPv4 アドレス出力
     166 *  put_ipv4addr -- IPv4 アドレス出力
    180167 */
    181168
     
    183170put_ipv4addr (ID portid, T_IN4_ADDR *addr, int_t width)
    184171{
    185         int_t len = 3;  /* 3 は '.' の文字数 */
     172        int_t len = 3;  /* 3 は '.' の文字数 */
    186173
    187174        len += cons_putnumber(portid, (*addr >> 24) & 0xff, 10, radhex, 0, false, ' ');
     
    206193
    207194/*
    208  *  ipv6addr -- IPv6 アドレス出力
     195 *  ipv6addr -- IPv6 アドレス出力
    209196 */
    210197
     
    258245
    259246/*
    260  *  put_macaddr -- MAC アドレス出力
     247 *  put_macaddr -- MAC アドレス出力
    261248 */
    262249
     
    279266
    280267/*
    281  *  cons_printf -- シリアルポートへの書式付文字列出力
     268 *  cons_printf -- シリアルポートへの書式付文字列出力
    282269 */
    283270
     
    296283        va_start(ap, fmt);
    297284        while ((ch = *fmt ++) != '\0') {
    298                 if (ch != '%') {                /* 書式指定以外 */
     285                if (ch != '%') {                /* 書式指定以外 */
    299286                        cons_putchar(portid, (char)ch);
    300287                        continue;
     
    304291                padchar = ' ';
    305292
    306                 if (ch == '-') {                /* 左詰め */
     293                if (ch == '-') {                /* 左詰め */
    307294                        fmt ++;
    308295                        left = -1;
     
    311298                        left = 1;
    312299
    313                 if ((ch = *fmt ++) == '0') {    /* 上位桁の 0 */
     300                if ((ch = *fmt ++) == '0') {    /* 上位桁の 0 */
    314301                        padchar = '0';
    315302                        ch = *fmt ++;
    316303                        }
    317304
    318                 while ('0' <= ch && ch <= '9') {        /* 出力å¹
    319  */
     305                while ('0' <= ch && ch <= '9') {        /* 出力幅 */
    320306                        width = width * 10 + ch - '0';
    321307                        ch = *fmt ++;
    322308                        }
    323309
    324                 while (ch == 'l') {             /* long (long) の指定 */
     310                while (ch == 'l') {             /* long (long) の指定 */
    325311                        longflag ++;
    326312                        ch = *fmt ++;
     
    410396
    411397/*
    412  *  skip_blanks -- 空白と TAB をスキップする。
     398 *  skip_blanks -- 空白と TAB をスキップする。
    413399 */
    414400
     
    422408
    423409/*
    424  *  get_ipv4addr -- 文字列の IPv4 アドレスを T_IN4_ADDR 値に変換する。
     410 *  get_ipv4addr -- 文字列の IPv4 アドレスを T_IN4_ADDR 値に変換する。
    425411 */
    426412
     
    445431
    446432/*
    447  *  get_ipv6addr -- 文字列の IPv6 アドレスを T_IN6_ADDR 値に変換する。
     433 *  get_ipv6addr -- 文字列の IPv6 アドレスを T_IN6_ADDR 値に変換する。
    448434 */
    449435
     
    491477
    492478/*
    493  *  デバッグ行å
    494 ¥åŠ›
     479 *  デバッグ行入力
    495480 */
    496481
     
    524509
    525510/*
    526  *  get_int -- 整数変換
     511 *  get_int -- 整数変換
    527512 */
    528513
     
    552537
    553538/*
    554  *  get_xuint -- 符号なし整数 (16進) 変換
     539 *  get_xuint -- 符号なし整数 (16進) 変換
    555540 */
    556541
     
    606591
    607592/*
    608  *  alloc_tcp_rep -- TCP 受付口を獲得する。
     593 *  alloc_tcp_rep -- TCP 受付口を獲得する。
    609594 */
    610595
     
    632617
    633618/*
    634  *  free_tcp_rep -- TCP 受付口を解放する。
     619 *  free_tcp_rep -- TCP 受付口を解放する。
    635620 */
    636621
     
    656641
    657642/*
    658  *  alloc_tcp_cep -- TCP 通信端点を獲得する。
     643 *  alloc_tcp_cep -- TCP 通信端点を獲得する。
    659644 */
    660645
     
    682667
    683668/*
    684  *  free_tcp_cep -- TCP 通信端点を解放する。
     669 *  free_tcp_cep -- TCP 通信端点を解放する。
    685670 */
    686671
     
    719704
    720705/*
    721  *  alloc_udp_cep -- UDP 通信端点を獲得する。
     706 *  alloc_udp_cep -- UDP 通信端点を獲得する。
    722707 */
    723708
     
    745730
    746731/*
    747  *  free_udp_cep -- UDP 通信端点を解放する。
     732 *  free_udp_cep -- UDP 通信端点を解放する。
    748733 */
    749734
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_subr.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  サンプルアプリケーションå
    48 ±é€š
    49  *  コンフィギュレーションファイル
     35 *  サンプルアプリケーション共通
     36 *  コンフィギュレーションファイル
    5037 */
    5138
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/netapp_var.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    4836
    4937/*
    50  *  マクロ定義
     38 *  マクロ定義
    5139 */
    5240
     
    6048
    6149/*
    62  *  ネットワーク経由コンソールå
    63 ¥å‡ºåŠ›
     50 *  ネットワーク経由コンソール入出力
    6451 */
    6552
    6653#ifdef USE_NET_CONS
    6754
    68 /* リネーム */
     55/* リネーム */
    6956
    7057#define syslog          net_syslog
    7158#define serial_ctl_por  net_serial_ctl_por
    7259
    73 /* 関数シミュレーションマクロ */
     60/* 関数シミュレーションマクロ */
    7461
    7562#define FLUSH_SND_BUFF()        flush_snd_buff()
     
    7966#else   /* of #ifdef USE_NET_CONS */
    8067
    81 /* 関数シミュレーションマクロ */
     68/* 関数シミュレーションマクロ */
    8269
    8370#define FLUSH_SND_BUFF()
     
    8875
    8976/*
    90  *  関数
     77 *  関数
    9178 */
    9279
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/ping.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$
     
    4533
    4634/*
    47  *  ping -- ICMP ECHO メッセージを送信する。
     35 *  ping -- ICMP ECHO メッセージを送信する。
    4836 */
    4937
     
    8775
    8876/*
    89  *  変数
     77 *  変数
    9078 */
    9179
     
    9684
    9785/*
    98  *  icmp_reply_timeout -- ICMP REPLY タイムアウト処理
     86 *  icmp_reply_timeout -- ICMP REPLY タイムアウト処理
    9987 */
    10088
     
    10694
    10795/*
    108  *  icmp_echo_reply -- ICMP ECHO REPLY メッセージを処理する。
     96 *  icmp_echo_reply -- ICMP ECHO REPLY メッセージを処理する。
    10997 */
    11098
     
    121109
    122110/*
    123  *  ping4 -- ICMP ECHO メッセージを送信する。
     111 *  ping4 -- ICMP ECHO メッセージを送信する。
    124112 */
    125113
     
    132120        int_t           ix;
    133121
    134         /* 送信用の IP データグラムを獲得する。*/
     122        /* 送信用の IP データグラムを獲得する。*/
    135123        if (in4_get_datagram(&output, ICMP4_HDR_SIZE + len, 0,
    136124                             addr, NULL, IPPROTO_ICMP,
     
    138126                return;
    139127
    140         /* ICMP ヘッダを設定する。*/
     128        /* ICMP ヘッダを設定する。*/
    141129        icmp4h                  = GET_ICMP4_HDR(output, IF_IP4_ICMP4_HDR_OFFSET);
    142130        icmp4h->type            = ICMP4_ECHO_REQUEST;
     
    145133        icmp4h->data.id_seq.seq = 0;
    146134
    147         /* データを設定する。*/
     135        /* データを設定する。*/
    148136        sdu = GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET) + len;
    149137        for (ix = len; ix -- > 0; )
    150138                *-- sdu = ('0' + icmp_id + ix) & 0xff;
    151139
    152         /* チェックサムを計算する。*/
     140        /* チェックサムを計算する。*/
    153141        icmp4h->sum = 0;
    154142        icmp4h->sum = in_cksum(icmp4h, ICMP4_HDR_SIZE + len);
    155143
    156         /* 応答チェック用の変数を設定する。*/
     144        /* 応答チェック用の変数を設定する。*/
    157145        curr_icmp_id  = icmp_id ++;
    158146        curr_icmp_len = len;
     
    161149        NET_COUNT_MIB(icmp_stats.icmpOutEchos, 1);
    162150
    163         /* 送信後、現在の時間を記憶し、タイムアウトを設定する。*/
     151        /* 送信後、現在の時間を記憶し、タイムアウトを設定する。*/
    164152        ip_output(output, TMO_FEVR);
    165153
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/ping6.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$
     
    4533
    4634/*
    47  *  ping6 -- ICMPv6 ECHO メッセージを送信する。
     35 *  ping6 -- ICMPv6 ECHO メッセージを送信する。
    4836 */
    4937
     
    9381
    9482/*
    95  *  変数
     83 *  変数
    9684 */
    9785
     
    10391
    10492/*
    105  *  icmp6_reply_timeout -- ICMP6 REPLY タイムアウト処理
     93 *  icmp6_reply_timeout -- ICMP6 REPLY タイムアウト処理
    10694 */
    10795
     
    114102
    115103/*
    116  *  icmp6_echo_reply -- ICMP6 ECHO REPLY メッセージを処理する。
     104 *  icmp6_echo_reply -- ICMP6 ECHO REPLY メッセージを処理する。
    117105 */
    118106
     
    133121
    134122/*
    135  *  ping6 -- ICMP ECHO メッセージを送信する。
     123 *  ping6 -- ICMP ECHO メッセージを送信する。
    136124 */
    137125
     
    148136
    149137        /*
    150          *  宛å
    151 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«ãµã•ã‚ã—い送信å
    152 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’、
    153          *  ネットワークインタフェースから探索して利用する。
     138         *  宛先アドレスにふさわしい送信元アドレスを、
     139         *  ネットワークインタフェースから探索して利用する。
    154140         */
    155141        if ((ia = in6_ifawithifp(ifp, addr)) == NULL)
     
    159145                ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_DEFHLIM);
    160146
    161         /* 送信用の IP データグラムを獲得する。*/
     147        /* 送信用の IP データグラムを獲得する。*/
    162148        if (in6_get_datagram(&output, ICMP6_HDR_SIZE + size, 0,
    163149                             addr, &ia->addr, IPPROTO_ICMPV6,
     
    165151                return;
    166152
    167         /* ICMP ヘッダを設定する。*/
     153        /* ICMP ヘッダを設定する。*/
    168154        icmp6h           = GET_ICMP6_HDR(output, IF_IP6_ICMP6_HDR_OFFSET);
    169155        icmp6h->type     = ICMP6_ECHO_REQUEST;
     
    172158        icmp6h->icmp6_seq= 0;
    173159
    174         /* データを設定する。*/
     160        /* データを設定する。*/
    175161        sdu = GET_ICMP6_SDU(output, IF_IP6_ICMP6_HDR_OFFSET) + size;
    176162        for (ix = size; ix -- > 0; )
    177163                *-- sdu = ('0' + send_icmp6_id + ix) & 0xff;
    178164
    179         /* チェックサムを計算する。*/
     165        /* チェックサムを計算する。*/
    180166        icmp6h->sum = 0;
    181167        icmp6h->sum = in6_cksum(output, IPPROTO_ICMPV6,
    182168                                (uint8_t*)icmp6h - output->buf, ICMP6_HDR_SIZE + size);
    183169
    184         /* 応答チェック用の変数を設定する。*/
     170        /* 応答チェック用の変数を設定する。*/
    185171        curr_icmp6_id   = send_icmp6_id ++;
    186172        curr_icmp6_size = size;
     
    192178                           ipv62str(NULL, addr), ipv62str(NULL, &ia->addr));
    193179
    194         /* 送信後、現在の時間を記憶し、タイムアウトを設定する。*/
     180        /* 送信後、現在の時間を記憶し、タイムアウトを設定する。*/
    195181        ip6_output(output, ipflags, TMO_FEVR);
    196182        NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutMsgs, 1);
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_cli.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$
     
    4533
    4634/*
    47  *  TCP DISCARD クライアント
     35 *  TCP DISCARD クライアント
    4836 *
    49  *    ・ノンブロッキングコール
    50  *    ・IPv4
    51  *    ・IPv6
     37 *    ・ノンブロッキングコール
     38 *    IPv4
     39 *    IPv6
    5240 */
    5341
     
    9381#ifdef USE_TCP_DISCARD_CLI
    9482
    95 /* discard サーバのポート番号 */
     83/* discard サーバのポート番号 */
    9684
    9785#define DISCARD_SRV_PORTNO      UINT_C(9)
    9886
    99 /* 表示 */
     87/* 表示 */
    10088
    10189/*#define SHOW_RCV_RANGE*/
    10290
    10391/*
    104  *  バッファサイズの定義
     92 *  バッファサイズの定義
    10593 */
    10694
     
    112100
    113101/*
    114  *  å
    115 ¨åŸŸå¤‰æ•°
     102 *  全域変数
    116103 */
    117104
    118105bool_t tcp_discard_cli_valid;
    119106
    120 /* TCP 送受信ウィンドバッファ */
     107/* TCP 送受信ウィンドバッファ */
    121108
    122109#ifndef TCP_CFG_SWBUF_CSAVE_ONLY
     
    127114
    128115/*
    129  *  変数
     116 *  変数
    130117 */
    131118
     
    138125
    139126/*
    140  *  ノンブロッキングコールのコールバック関数
     127 *  ノンブロッキングコールのコールバック関数
    141128 */
    142129
     
    172159
    173160/*
    174  *  send_tcp_discard -- DISCARD/TCP サーバにメッセージを送信する。
     161 *  send_tcp_discard -- DISCARD/TCP サーバにメッセージを送信する。
    175162 */
    176163
     
    200187                }
    201188
    202         /* 接続が完了するまでå¾
    203 ã¤ã€‚*/
     189        /* 接続が完了するまで待つ。*/
    204190        syscall(wai_sem(SEM_TCP_DISCARD_CLI_NBLK_READY));
    205191
     
    244230                        syslog(LOG_NOTICE, "[TDC:%02d SND] close error: %s", cepid, itron_strerror(error));
    245231
    246                 /* 開放が完了するまでå¾
    247 ã¤ã€‚*/
     232                /* 開放が完了するまで待つ。*/
    248233                syscall(wai_sem(SEM_TCP_DISCARD_CLI_NBLK_READY));
    249234                }
     
    253238
    254239/*
    255  *  send_tcp_discard -- DISCARD/TCP サーバにメッセージを送信する。
     240 *  send_tcp_discard -- DISCARD/TCP サーバにメッセージを送信する。
    256241 */
    257242
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_cli.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  TCP DISCARD クライアント
    48  *  コンフィギュレーションファイル
     35 *  TCP DISCARD クライアント
     36 *  コンフィギュレーションファイル
    4937 */
    5038
    5139#ifdef USE_TCP_DISCARD_CLI
    5240
    53 /* タスク */
     41/* タスク */
    5442
    5543#ifdef USE_TCP_EXTENTIONS
     
    7765#endif  /* of #ifdef USE_TCP_EXTENTIONS */
    7866
    79 /* コマンドキュー */
     67/* コマンドキュー */
    8068
    8169CRE_DTQ(DTQ_TCP_DISCARD_CLI,  { TA_TFIFO, 1, NULL });
    8270
    83 /* セマフォ */
     71/* セマフォ */
    8472
    8573#ifdef USE_TCP_NON_BLOCKING
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_srv.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$
     
    4533
    4634/*
    47  *  DISCARD サーバ
     35 *  DISCARD サーバ
    4836 *
    49  *    ・省コピー API
    50  *    ・IPv4
    51  *    ・IPv6
     37 *    ・省コピー API
     38 *    IPv4
     39 *    IPv6
    5240 */
    5341
     
    9381
    9482/*
    95  *  表示
     83 *  表示
    9684 */
    9785
     
    10088
    10189/*
    102  *  å
    103 ¨åŸŸå¤‰æ•°
    104  */
    105 
    106 /* TCP 送受信ウィンドバッファ */
     90 *  全域変数
     91 */
     92
     93/* TCP 送受信ウィンドバッファ */
    10794
    10895#ifndef TCP_CFG_RWBUF_CSAVE_ONLY
     
    11198
    11299/*
    113  *  TCP DISCARD サーバタスク
     100 *  TCP DISCARD サーバタスク
    114101 */
    115102
     
    249236
    250237/*
    251  *  get_tcp_rep -- TCP 受付口を獲得する。
     238 *  get_tcp_rep -- TCP 受付口を獲得する。
    252239 */
    253240
     
    275262
    276263/*
    277  *  get_tcp_cep -- TCP 通信端点とを獲得する。
     264 *  get_tcp_cep -- TCP 通信端点とを獲得する。
    278265 */
    279266
     
    302289
    303290/*
    304  *  tcp_discard_srv_task -- TCP エコーサーバタスク
     291 *  tcp_discard_srv_task -- TCP エコーサーバタスク
    305292 */
    306293
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_discard_srv.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  TCP DISCARD サーバコンフィギュレーションファイル
     35 *  TCP DISCARD サーバコンフィギュレーションファイル
    4836 */
    4937
     
    5139
    5240/*
    53  * タスク
     41 * タスク
    5442 */
    5543
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_cli.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$
     
    4533
    4634/*
    47  *  TCP ECHO クライアント
     35 *  TCP ECHO クライアント
    4836 *
    49  *    ・送受信タスク分離型
    50  *    ・ノンブロッキングコール
    51  *    ・省コピー API
    52  *    ・IPv4
    53  *    ・IPv6
     37 *    ・送受信タスク分離型
     38 *    ・ノンブロッキングコール
     39 *    ・省コピー API
     40 *    IPv4
     41 *    IPv6
    5442 */
    5543
     
    9583#ifdef USE_TCP_ECHO_CLI
    9684
    97 /* echo サーバのポート番号 */
     85/* echo サーバのポート番号 */
    9886
    9987#define ECHO_SRV_PORTNO         UINT_C(7)
    10088
    101 /* 緊急データの送信 */
     89/* 緊急データの送信 */
    10290
    10391#ifdef USE_TCP_EXTENTIONS
     
    10896#endif  /* of #ifdef USE_TCP_EXTENTIONS */
    10997
    110 /* 表示 */
     98/* 表示 */
    11199
    112100//#define SHOW_RCV_RANGE
    113101
    114 /* タイムアウト */
     102/* タイムアウト */
    115103
    116104#define CON_TMO         TMO_FEVR
    117105//#define CON_TMO               (60*SYSTIM_HZ)
    118 //#define CLS_TMO               TMO_FEVR                                /* Close Wait は標準で 60秒 */
     106//#define CLS_TMO               TMO_FEVR                                /* Close Wait は標準で 60秒 */
    119107#define CLS_TMO         (70*SYSTIM_HZ+(net_rand()%SYSTIM_HZ)*10)
    120108//#define RCV_TMO               TMO_FEVR
     
    123111#define SND_TMO         (30*SYSTIM_HZ+(net_rand()%SYSTIM_HZ)*30)
    124112
    125 /* 送信間隔 */
     113/* 送信間隔 */
    126114
    127115//#define SND_DLY                       ULONG_C(500)
     
    129117#define SLP_ITV         (60*SYSTIM_HZ)
    130118
    131 /* 自動実行 */
     119/* 自動実行 */
    132120
    133121#if 0
     
    140128
    141129/*
    142  *  バッファサイズの定義
     130 *  バッファサイズの定義
    143131 */
    144132
     
    151139
    152140/*
    153  *  å
    154 ¨åŸŸå¤‰æ•°
     141 *  全域変数
    155142 */
    156143
    157144bool_t tcp_echo_cli_valid;
    158145
    159 /* TCP 送受信ウィンドバッファ */
     146/* TCP 送受信ウィンドバッファ */
    160147
    161148#ifndef TCP_CFG_SWBUF_CSAVE
     
    168155
    169156/*
    170  *  変数
     157 *  変数
    171158 */
    172159
     
    184171
    185172/*
    186  *  ノンブロッキングコールのコールバック関数
     173 *  ノンブロッキングコールのコールバック関数
    187174 */
    188175
     
    236223
    237224/*
    238  *  send_tcp_echo -- ECHO/TCP サーバにメッセージを送信する。
     225 *  send_tcp_echo -- ECHO/TCP サーバにメッセージを送信する。
    239226 */
    240227
     
    268255                }
    269256
    270         /* 接続が完了するまでå¾
    271 ã¤ã€‚*/
     257        /* 接続が完了するまで待つ。*/
    272258        syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
    273259
     
    322308                        syslog(LOG_NOTICE, "[TEC:%02d SND] shutdown error: %s", cepid, itron_strerror(error));
    323309
    324                 /* 受信が完了するまでå¾
    325 ã¤ã€‚*/
     310                /* 受信が完了するまで待つ。*/
    326311                syscall(slp_tsk());
    327312                }
     
    331316
    332317/*
    333  *  TCP ECHO クライアント受信タスク
     318 *  TCP ECHO クライアント受信タスク
    334319 */
    335320
     
    361346                                        }
    362347
    363                                 /* 受信バッファの獲得が完了するまでå¾
    364 ã¤ã€‚*/
     348                                /* 受信バッファの獲得が完了するまで待つ。*/
    365349                                syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
    366350                                if (nblk_error < 0)
     
    391375                                syslog(LOG_NOTICE, "[TEC:%02d SND] close error: %s", cepid, itron_strerror(error));
    392376
    393                         /* 切断が完了するまでå¾
    394 ã¤ã€‚*/
     377                        /* 切断が完了するまで待つ。*/
    395378                        syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
    396379
     
    433416                                        }
    434417
    435                                 /* 受信が完了するまでå¾
    436 ã¤ã€‚*/
     418                                /* 受信が完了するまで待つ。*/
    437419                                syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
    438420                                if (nblk_error < 0)
     
    459441                                syslog(LOG_NOTICE, "[TEC:%02d SND] close error: %s", cepid, itron_strerror(error));
    460442
    461                         /* 切断が完了するまでå¾
    462 ã¤ã€‚*/
     443                        /* 切断が完了するまで待つ。*/
    463444                        syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
    464445
     
    477458
    478459/*
    479  *  send_tcp_echo -- ECHO/TCP サーバにメッセージを送信する。
     460 *  send_tcp_echo -- ECHO/TCP サーバにメッセージを送信する。
    480461 */
    481462
     
    563544                syslog(LOG_NOTICE, "[TEC:%02d SND] shutdown error: %s", cepid, itron_strerror(error));
    564545
    565         /* 受信が完了するまでå¾
    566 ã¤ã€‚*/
     546        /* 受信が完了するまで待つ。*/
    567547        syscall(slp_tsk());
    568548
     
    571551
    572552/*
    573  *  TCP ECHO クライアント受信タスク
     553 *  TCP ECHO クライアント受信タスク
    574554 */
    575555
     
    688668
    689669/*
    690  *  getcomd -- コマンドを得る。
     670 *  getcomd -- コマンドを得る。
    691671 */
    692672
     
    734714
    735715/*
    736  *  TCP ECHO クライアント送信タスク
     716 *  TCP ECHO クライアント送信タスク
    737717 */
    738718
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_cli.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  TCP ECHO クライアント
    48  *  コンフィギュレーションファイル
     35 *  TCP ECHO クライアント
     36 *  コンフィギュレーションファイル
    4937 */
    5038
    5139#ifdef USE_TCP_ECHO_CLI
    5240
    53 /* タスク */
     41/* タスク */
    5442
    5543#ifdef USE_TCP_EXTENTIONS
     
    9583#endif  /* of #ifdef USE_TCP_EXTENTIONS */
    9684
    97 /* コマンドキュー */
     85/* コマンドキュー */
    9886
    9987CRE_DTQ(DTQ_TCP_ECHO_CLI_SND,  { TA_TFIFO, 1, NULL });
    10088CRE_DTQ(DTQ_TCP_ECHO_CLI_RCV,  { TA_TFIFO, 1, NULL });
    10189
    102 /* セマフォ */
     90/* セマフォ */
    10391
    10492#ifdef USE_TCP_NON_BLOCKING
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv1.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$
     
    4533
    4634/*
    47  *  TCP ECHO サーバ #1
     35 *  TCP ECHO サーバ #1
    4836 *
    49  *    ・送受信タスク同一型
    50  *    ・ノンブロッキングコール
    51  *    ・省コピー API
    52  *    ・IPv4/IPv6
    53  *    ・緊急データの受信
     37 *    ・送受信タスク同一型
     38 *    ・ノンブロッキングコール
     39 *    ・省コピー API
     40 *    IPv4/IPv6
     41 *    ・緊急データの受信
    5442 */
    5543
     
    9785
    9886/*
    99  *  表示
     87 *  表示
    10088 */
    10189
     
    10391
    10492/*
    105  *  コネクション切断方法の指定
     93 *  コネクション切断方法の指定
    10694 */
    10795
     
    10997
    11098/*
    111  *  タイムアウト
    112  */
    113 
    114 //#define CLS_TMO               TMO_FEVR        /* Close Wait は標準で 60秒 */
     99 *  タイムアウト
     100 */
     101
     102//#define CLS_TMO               TMO_FEVR        /* Close Wait は標準で 60秒 */
    115103#define CLS_TMO         (70*SYSTIM_HZ+(net_rand()%SYSTIM_HZ)*10)
    116104//#define RCV_TMO               TMO_FEVR
     
    120108
    121109/*
    122  *  å
    123 ¨åŸŸå¤‰æ•°
    124  */
    125 
    126 /* TCP 送受信ウィンドバッファ */
     110 *  全域変数
     111 */
     112
     113/* TCP 送受信ウィンドバッファ */
    127114
    128115#ifndef TCP_CFG_SWBUF_CSAVE
     
    135122
    136123/*
    137  *  変数
    138  */
    139 
    140 /*
    141  *  注意:
     124 *  変数
     125 */
     126
     127/*
     128 *  注意:
    142129 *
    143  *    BUF_SIZE は TCP の
    144  *    送信ウインドウバッファサイズ + 受信ウインドウバッファサイズの
    145  *    3/2 倍以上の大きさがなければ、デッドロックする可能性がある。
     130 *    BUF_SIZE は TCP の
     131 *    送信ウインドウバッファサイズ + 受信ウインドウバッファサイズの
     132 *    3/2 倍以上の大きさがなければ、デッドロックする可能性がある。
    146133 */
    147134
     
    149136                          TCP_ECHO_SRV_RWBUF_SIZE) * 3 / 2)
    150137
    151 static T_IPEP           dst;                    /* 接続相手         */
     138static T_IPEP           dst;                    /* 接続相手         */
    152139
    153140#ifdef USE_TCP_NON_BLOCKING
     
    173160
    174161/*
    175  *  ノンブロッキングコールのコールバック関数
     162 *  ノンブロッキングコールのコールバック関数
    176163 */
    177164
     
    260247                }
    261248
    262         /* 相手から接続されるまでå¾
    263 ã¤ã€‚*/
     249        /* 相手から接続されるまで待つ。*/
    264250        syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
    265251
     
    286272                        }
    287273
    288                 /* 受信するまでå¾
    289 ã¤ã€‚*/
     274                /* 受信するまで待つ。*/
    290275                syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
    291276
    292                 if (nblk_rlen < 0) {    /* エラー */
     277                if (nblk_rlen < 0) {    /* エラー */
    293278                        syslog(LOG_NOTICE, "[TES:%02d RCV] error: %s",
    294279                                           cepid, itron_strerror(nblk_rlen));
    295280                        break;
    296281                        }
    297                 else if (nblk_rlen == 0)        /* 受信終了 */
     282                else if (nblk_rlen == 0)        /* 受信終了 */
    298283                        break;
    299284
    300285                rblen = nblk_rlen;
    301286
    302                 /* バッファの残りにより、受信長を調整する。*/
     287                /* バッファの残りにより、受信長を調整する。*/
    303288                if (rblen > BUF_SIZE - rlen)
    304289                        rblen = BUF_SIZE - rlen;
     
    333318                                }
    334319
    335                         /* 送信バッファの獲得が完了するまでå¾
    336 ã¤ã€‚*/
     320                        /* 送信バッファの獲得が完了するまで待つ。*/
    337321                        syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
    338322
     
    372356                syslog(LOG_NOTICE, "[TES:%02d CLS] error: %s", cepid, itron_strerror(error));
    373357
    374         /* 開放が完了するまでå¾
    375 ã¤ã€‚*/
     358        /* 開放が完了するまで待つ。*/
    376359        syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
    377360
     
    399382                }
    400383
    401         /* 相手から接続されるまでå¾
    402 ã¤ã€‚*/
     384        /* 相手から接続されるまで待つ。*/
    403385        syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
    404386
     
    426408                        }
    427409
    428                 /* 受信完了までå¾
    429 ã¤ã€‚*/
     410                /* 受信完了まで待つ。*/
    430411                syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
    431412
     
    458439                                }
    459440
    460                         /* 送信完了までå¾
    461 ã¤ã€‚*/
     441                        /* 送信完了まで待つ。*/
    462442                        syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
    463443
     
    489469                syslog(LOG_NOTICE, "[TES:%02d CLS] error: %s", cepid, itron_strerror(error));
    490470
    491         /* 開放が完了するまでå¾
    492 ã¤ã€‚*/
     471        /* 開放が完了するまで待つ。*/
    493472        syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
    494473
     
    601580
    602581/*
    603  *  tcp_echo_srv -- TCP エコーサーバ
     582 *  tcp_echo_srv -- TCP エコーサーバ
    604583 */
    605584
     
    682661
    683662/*
    684  *  get_tcp_rep -- TCP 受付口を獲得する。
     663 *  get_tcp_rep -- TCP 受付口を獲得する。
    685664 */
    686665
     
    708687
    709688/*
    710  *  get_tcp_cep -- TCP 通信端点とを獲得する。
     689 *  get_tcp_cep -- TCP 通信端点とを獲得する。
    711690 */
    712691
     
    743722
    744723/*
    745  *  tcp_echo_srv_task -- TCP エコーサーバタスク
     724 *  tcp_echo_srv_task -- TCP エコーサーバタスク
    746725 */
    747726
     
    783762
    784763/*
    785  *  tcp_echo_srv_task -- TCP エコーサーバタスク
     764 *  tcp_echo_srv_task -- TCP エコーサーバタスク
    786765 */
    787766
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv1.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  TCP ECHO サーバ #1、送受信タスク同一型
    48  *  コンフィギュレーションファイル
     35 *  TCP ECHO サーバ #1、送受信タスク同一型
     36 *  コンフィギュレーションファイル
    4937 */
    5038
    5139#ifdef USE_TCP_ECHO_SRV1
    5240
    53 /* タスク */
     41/* タスク */
    5442
    5543#ifdef USE_TCP_EXTENTIONS
     
    168156#endif  /* of #if NUM_TCP_ECHO_SRV_TASKS >= 8 */
    169157
    170 /* セマフォ */
     158/* セマフォ */
    171159
    172160#ifdef USE_TCP_NON_BLOCKING
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv2.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$
     
    4533
    4634/*
    47  *  TCP ECHO サーバ #2
     35 *  TCP ECHO サーバ #2
    4836 *
    49  *    ・送受信タスク分離型
    50  *    ・ノンブロッキングコール
    51  *    ・IPv4/IPv6
     37 *    ・送受信タスク分離型
     38 *    ・ノンブロッキングコール
     39 *    IPv4/IPv6
    5240 */
    5341
     
    9280
    9381/*
    94  *  表示
     82 *  表示
    9583 */
    9684
     
    9886
    9987/*
    100  *  コネクション切断方法の指定
     88 *  コネクション切断方法の指定
    10189 */
    10290
     
    10492
    10593/*
    106  *  å
    107 ¨åŸŸå¤‰æ•°
    108  */
    109 
    110 /* TCP 送受信ウィンドバッファ */
     94 *  全域変数
     95 */
     96
     97/* TCP 送受信ウィンドバッファ */
    11198
    11299#ifndef TCP_CFG_SWBUF_CSAVE
     
    119106
    120107/*
    121  *  変数
    122  */
    123 
    124 /*
    125  *  注意:
     108 *  変数
     109 */
     110
     111/*
     112 *  注意:
    126113 *
    127  *    BUF_SIZE は TCP の
    128  *    送信ウインドウバッファサイズ + 受信ウインドウバッファサイズの
    129  *    3/2 倍以上の大きさがなければ、デッドロックする可能性がある。
     114 *    BUF_SIZE は TCP の
     115 *    送信ウインドウバッファサイズ + 受信ウインドウバッファサイズの
     116 *    3/2 倍以上の大きさがなければ、デッドロックする可能性がある。
    130117 */
    131118
     
    133120                          TCP_ECHO_SRV_RWBUF_SIZE) * 3 / 2)
    134121
    135 static char     buffer[BUF_SIZE];       /* バッファ         */
    136 
    137 static T_IPEP   dst;                    /* 接続相手         */
    138 static bool_t   ena_rcv;                /* 受信可能フラグ        */
    139 static char     *rptr = buffer;         /* 受信ポインタ           */
    140 static char     *sptr = buffer;         /* 送信ポインタ           */
    141 static uint32_t rcv_total;              /* 受信文字数              */
    142 static uint32_t snd_total;              /* 送信文字数              */
    143 static uint16_t chars;                  /* バッファå†
    144 ã®æ–‡å­—æ•°    */
    145 static uint16_t rcv_count;              /* 受信回数         */
    146 static uint16_t snd_count;              /* 送信回数         */
     122static char     buffer[BUF_SIZE];       /* バッファ         */
     123
     124static T_IPEP   dst;                    /* 接続相手         */
     125static bool_t   ena_rcv;                /* 受信可能フラグ      */
     126static char     *rptr = buffer;         /* 受信ポインタ               */
     127static char     *sptr = buffer;         /* 送信ポインタ               */
     128static uint32_t rcv_total;              /* 受信文字数                */
     129static uint32_t snd_total;              /* 送信文字数                */
     130static uint16_t chars;                  /* バッファ内の文字数    */
     131static uint16_t rcv_count;              /* 受信回数         */
     132static uint16_t snd_count;              /* 送信回数         */
    147133
    148134#ifdef USE_TCP_NON_BLOCKING
    149135
    150 static ER       rcv_error = E_OK;       /* 受信、ノンブロッキングコールエラー */
    151 static ER       snd_error = 1;          /* 送信、ノンブロッキングコールエラー */
    152 
    153 /*
    154  *  ノンブロッキングコールのコールバック関数
     136static ER       rcv_error = E_OK;       /* 受信、ノンブロッキングコールエラー */
     137static ER       snd_error = 1;          /* 送信、ノンブロッキングコールエラー */
     138
     139/*
     140 *  ノンブロッキングコールのコールバック関数
    155141 */
    156142
     
    198184                        syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
    199185
    200                         /* 送信ポインタを進める。*/
     186                        /* 送信ポインタを進める。*/
    201187                        if (sptr - buffer + slen >= sizeof(buffer))
    202188                                sptr -= sizeof(buffer) - slen;
     
    204190                                sptr += slen;
    205191
    206                         /* バッファå†
    207 ã®æ–‡å­—数を減らす。*/
     192                        /* バッファ内の文字数を減らす。*/
    208193                        last   = chars;
    209194                        chars -= slen;
    210195
    211                         /* バッファå†
    212 ã«æ–‡å­—があれば、送信タスクを起床する。*/
     196                        /* バッファ内に文字があれば、送信タスクを起床する。*/
    213197                        if (chars > 0 || (!ena_rcv && chars == 0))
    214198                                sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
    215199
    216                         /* 受信可能で、バッファå†
    217 ã«ç©ºããŒã§ãã‚Œã°ã€å—信タスクを起床する。*/
     200                        /* 受信可能で、バッファ内に空きができれば、受信タスクを起床する。*/
    218201                        if (ena_rcv && last == sizeof(buffer) && sizeof(buffer) - chars > 0)
    219202                                syscall(sig_sem(SEM_TCP_ECHO_SRV_RCV_READY));
     
    241224                        syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
    242225
    243                         /* 受信ポインタを進める。*/
     226                        /* 受信ポインタを進める。*/
    244227                        if (rptr - buffer + rlen >= sizeof(buffer))
    245228                                rptr -= sizeof(buffer) - rlen;
     
    247230                                rptr += rlen;
    248231
    249                         /* バッファå†
    250 ã®æ–‡å­—数を増やす。*/
     232                        /* バッファ内の文字数を増やす。*/
    251233                        last   = chars;
    252234                        chars += rlen;
    253235
    254                         /* バッファå†
    255 ã«æ–‡å­—がå
    256 ¥ã‚Œã°ã€é€ä¿¡ã‚¿ã‚¹ã‚¯ã‚’起床する。*/
     236                        /* バッファ内に文字が入れば、送信タスクを起床する。*/
    257237                        if (last == 0 && chars > 0)
    258238                                sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
    259239
    260                         /* バッファå†
    261 ã«ç©ºããŒã‚れば、受信タスクを起床する。*/
     240                        /* バッファ内に空きがあれば、受信タスクを起床する。*/
    262241                        if (sizeof(buffer) - chars > 0)
    263242                                sig_sem(SEM_TCP_ECHO_SRV_RCV_READY);
     
    294273
    295274/*
    296  *  TCP ECHO サーバ受信ルーチン (ノンブロッキングコール使用)
     275 *  TCP ECHO サーバ受信ルーチン (ノンブロッキングコール使用)
    297276 */
    298277
     
    313292                }
    314293
    315         /* コネクション開設完了までå¾
    316 ã¤ã€‚*/
     294        /* コネクション開設完了まで待つ。*/
    317295        syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY));
    318296
    319         /* å¾
    320 ã£ã¦ã„る間にエラーになったら、コネクションの開設å¾
    321 ã¡ã«æˆ»ã‚‹ã€‚*/
     297        /* 待っている間にエラーになったら、コネクションの開設待ちに戻る。*/
    322298        if (rcv_error != E_OK)
    323299                return rcv_error;
     
    332308        while (true) {
    333309
    334                 /* 受信サイズを計算する。*/
     310                /* 受信サイズを計算する。*/
    335311                syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
    336312                if (sptr > rptr)
     
    340316                syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
    341317
    342                 /* 受信する。*/
     318                /* 受信する。*/
    343319                if ((error = tcp_rcv_dat(cepid, rptr, blen, TMO_NBLK)) != E_WBLK) {
    344320                        syslog(LOG_NOTICE, "[TES:%02d RCV] recv error = %s", cepid, itron_strerror(error));
     
    346322                        }
    347323
    348                 /* 受信バッファに空ができるまでå¾
    349 ã¤ã€‚*/
     324                /* 受信バッファに空ができるまで待つ。*/
    350325                syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY));
    351326
    352                 /* å¾
    353 ã£ã¦ã„る間に、受信文字数が 0 になるか、エラーになったら終了する。*/
     327                /* 待っている間に、受信文字数が 0 になるか、エラーになったら終了する。*/
    354328                if (rcv_error <= 0)
    355329                        break;
     
    357331                }
    358332
    359         /* 受信完了 */
     333        /* 受信完了 */
    360334        ena_rcv = false;
    361335
    362         /* 受信バッファに文字がå
    363 ¥ã‚‹ã®ã‚’å¾
    364 ã£ã¦ã„る送信タスクを起床する。*/
     336        /* 受信バッファに文字が入るのを待っている送信タスクを起床する。*/
    365337        if (chars == 0)
    366338                sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
    367339
    368         /* コネクション切断完了までå¾
    369 ã¤ã€‚*/
     340        /* コネクション切断完了まで待つ。*/
    370341        syscall(wai_sem(SEM_TCP_ECHO_SRV_CLS_READY));
    371342
     
    374345
    375346/*
    376  *  TCP ECHO サーバ送信タスク (ノンブロッキングコール使用)
     347 *  TCP ECHO サーバ送信タスク (ノンブロッキングコール使用)
    377348 */
    378349
     
    395366                while (true) {
    396367
    397                         /* バッファに文字がå
    398 ¥ã‚‹ã¾ã§å¾
    399 ã¤ã€‚*/
     368                        /* バッファに文字が入るまで待つ。*/
    400369                        syscall(wai_sem(SEM_TCP_ECHO_SRV_SND_READY));
    401370
    402                         /* å¾
    403 ã£ã¦ã„る間にエラーになったら終了する。*/
     371                        /* 待っている間にエラーになったら終了する。*/
    404372                        if (snd_error <= 0)
    405373                                break;
    406374
    407                         /* 受信完了で、バッファに文字がなければ終了する。*/
     375                        /* 受信完了で、バッファに文字がなければ終了する。*/
    408376                        if (!ena_rcv && chars == 0)
    409377                                break;
    410378
    411                         /* 送信サイズを計算する。*/
     379                        /* 送信サイズを計算する。*/
    412380                        syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
    413381                        if (rptr > sptr)
     
    417385                        syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
    418386
    419                         /* 送信する。*/
     387                        /* 送信する。*/
    420388                        if ((error = tcp_snd_dat(cepid, sptr, blen, TMO_NBLK)) != E_WBLK) {
    421389                                syslog(LOG_NOTICE, "[TES:%02d SND] send error = %s", cepid, itron_strerror(error));
     
    424392                        }
    425393
    426                 /* 受信バッファに空ができるをå¾
    427 ã£ã¦ã„る受信タスクを起床する。*/
     394                /* 受信バッファに空ができるを待っている受信タスクを起床する。*/
    428395                if (chars == sizeof(buffer))
    429396                        sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
     
    446413
    447414/*
    448  *  TCP ECHO サーバ受信ルーチン
     415 *  TCP ECHO サーバ受信ルーチン
    449416 */
    450417
     
    483450        while (true) {
    484451
    485                 /* 受信サイズを計算する。*/
     452                /* 受信サイズを計算する。*/
    486453                syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
    487454                if (sptr > rptr)
     
    491458                syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
    492459
    493                 /* 受信する。*/
     460                /* 受信する。*/
    494461                if ((rlen = tcp_rcv_dat(cepid, rptr, blen, TMO_FEVR)) <= 0) {
    495462                        if (rlen < 0)
     
    509476                syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
    510477
    511                 /* 受信ポインタを進める。*/
     478                /* 受信ポインタを進める。*/
    512479                if (rptr - buffer + rlen >= sizeof(buffer))
    513480                        rptr -= sizeof(buffer) - rlen;
     
    515482                        rptr += rlen;
    516483
    517                 /* バッファå†
    518 ã®æ–‡å­—数を増やす。*/
     484                /* バッファ内の文字数を増やす。*/
    519485                last   =     chars;
    520486                chars += (uint16_t)rlen;
    521487
    522                                 /* バッファå†
    523 ã«æ–‡å­—がå
    524 ¥ã‚Œã°ã€é€ä¿¡ã‚¿ã‚¹ã‚¯ã‚’起床する。*/
     488                                /* バッファ内に文字が入れば、送信タスクを起床する。*/
    525489                if (last == 0 && chars > 0)
    526490                        sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
    527491
    528                                 /* バッファå†
    529 ã«ç©ºããŒã‚れば、受信タスクを起床する。*/
     492                                /* バッファ内に空きがあれば、受信タスクを起床する。*/
    530493                if (sizeof(buffer) - chars > 0)
    531494                        sig_sem(SEM_TCP_ECHO_SRV_RCV_READY);
     
    533496                syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
    534497
    535                 /* バッファに空きができるまでå¾
    536 ã¤ã€‚*/
     498                /* バッファに空きができるまで待つ。*/
    537499                syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY));
    538500                }
    539501
    540         /* 受信完了 */
     502        /* 受信完了 */
    541503        ena_rcv = false;
    542504
    543         /* 受信バッファに文字がå
    544 ¥ã‚‹ã®ã‚’å¾
    545 ã£ã¦ã„る送信タスクを起床する。*/
     505        /* 受信バッファに文字が入るのを待っている送信タスクを起床する。*/
    546506        if (chars == 0)
    547507                sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
    548508
    549         /* コネクションの切断が完了するまでå¾
    550 ã¤ã€‚*/
     509        /* コネクションの切断が完了するまで待つ。*/
    551510        syscall(wai_sem(SEM_TCP_ECHO_SRV_CLS_READY));
    552511
     
    555514
    556515/*
    557  *  TCP ECHO サーバ送信タスク
     516 *  TCP ECHO サーバ送信タスク
    558517 */
    559518
     
    579538                while (true) {
    580539
    581                         /* バッファに文字がå
    582 ¥ã‚‹ã¾ã§å¾
    583 ã¤ã€‚*/
     540                        /* バッファに文字が入るまで待つ。*/
    584541                        syscall(wai_sem(SEM_TCP_ECHO_SRV_SND_READY));
    585542
    586                         /* 受信完了で、バッファに文字がなければ終了する。*/
     543                        /* 受信完了で、バッファに文字がなければ終了する。*/
    587544                        if (!ena_rcv && chars == 0)
    588545                                break;
    589546
    590                         /* 送信サイズを計算する。*/
     547                        /* 送信サイズを計算する。*/
    591548                        syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
    592549                        if (rptr > sptr)
     
    612569                        syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
    613570
    614                         /* 送信ポインタを進める。*/
     571                        /* 送信ポインタを進める。*/
    615572                        if (sptr - buffer + slen >= sizeof(buffer))
    616573                                sptr -= sizeof(buffer) - slen;
     
    618575                                sptr += slen;
    619576
    620                         /* バッファå†
    621 ã®æ–‡å­—数を減らす。*/
     577                        /* バッファ内の文字数を減らす。*/
    622578                        last   =     chars;
    623579                        chars -= (uint16_t)slen;
    624580
    625                         /* 受信完了で、バッファに文字がなければ終了する。*/
     581                        /* 受信完了で、バッファに文字がなければ終了する。*/
    626582                        if (!ena_rcv && chars == 0) {
    627583                                syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
     
    629585                                }
    630586
    631                         /* バッファå†
    632 ã«æ–‡å­—があれば、送信タスクを起床する。*/
     587                        /* バッファ内に文字があれば、送信タスクを起床する。*/
    633588                        if (chars > 0)
    634589                                sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
    635590
    636                         /* 受信可能で、バッファå†
    637 ã«ç©ºããŒã§ãã‚Œã°ã€å—信タスクを起床する。*/
     591                        /* 受信可能で、バッファ内に空きができれば、受信タスクを起床する。*/
    638592                        if (ena_rcv && last == sizeof(buffer) && sizeof(buffer) - chars > 0)
    639593                                sig_sem(SEM_TCP_ECHO_SRV_RCV_READY);
     
    642596                        }
    643597
    644                 /* 受信バッファに空ができるをå¾
    645 ã£ã¦ã„る受信タスクを起床する。*/
     598                /* 受信バッファに空ができるを待っている受信タスクを起床する。*/
    646599                if (chars == sizeof(buffer))
    647600                        sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
     
    671624
    672625/*
    673  *  get_tcp_rep -- TCP 受付口を獲得する。
     626 *  get_tcp_rep -- TCP 受付口を獲得する。
    674627 */
    675628
     
    697650
    698651/*
    699  *  get_tcp_cep -- TCP 通信端点を獲得する。
     652 *  get_tcp_cep -- TCP 通信端点を獲得する。
    700653 */
    701654
     
    732685
    733686/*
    734  *  TCP ECHO サーバ受信タスク
     687 *  TCP ECHO サーバ受信タスク
    735688 */
    736689
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tcp_echo_srv2.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  TCP ECHO サーバ #2、送受信タスク分離型
    48  *  コンフィギュレーションファイル
     35 *  TCP ECHO サーバ #2、送受信タスク分離型
     36 *  コンフィギュレーションファイル
    4937 */
    5038
    5139#ifdef USE_TCP_ECHO_SRV2
    5240
    53 /* タスク */
     41/* タスク */
    5442
    5543#ifdef USE_TCP_EXTENTIONS
     
    9583#endif  /* of #ifdef USE_TCP_EXTENTIONS */
    9684
    97 /* コマンドキュー */
     85/* コマンドキュー */
    9886
    9987CRE_DTQ(DTQ_TCP_ECHO_SRV_SND,  { TA_TFIFO, 1, NULL });
    10088
    101 /* セマフォ */
     89/* セマフォ */
    10290
    10391CRE_SEM(SEM_TCP_ECHO_SRV_LOCK,          { TA_TPRI, 1, 1 });
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_dbg_cons.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  デバッグコンソール
    48  *  TCP/IP コンフィギュレーションファイル
     35 *  デバッグコンソール
     36 *  TCP/IP コンフィギュレーションファイル
    4937 */
    5038
     
    5341#ifdef USE_TCP_EXTENTIONS
    5442
    55 /* TCP 受付口 */
     43/* TCP 受付口 */
    5644
    5745#ifdef SUPPORT_INET4
     
    7967#endif  /* of #ifdef SUPPORT_INET6 */
    8068
    81 /* TCP 通信端点 */
     69/* TCP 通信端点 */
    8270
    8371#ifdef SUPPORT_INET4
     
    125113#ifdef USE_UDP_EXTENTIONS
    126114
    127 /* UDP 通信端点 */
     115/* UDP 通信端点 */
    128116
    129117#ifdef SUPPORT_INET4
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_net_cons.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  ネットワーク経由コンソールå
    48 ¥å‡ºåŠ›
    49  *  TCP/IP コンフィギュレーションファイル
     35 *  ネットワーク経由コンソール入出力
     36 *  TCP/IP コンフィギュレーションファイル
    5037 */
    5138
    5239#ifdef USE_NET_CONS
    5340
    54 /* TCP 受付口 */
     41/* TCP 受付口 */
    5542
    5643#ifdef SUPPORT_INET4
     
    7259#endif  /* of #ifdef SUPPORT_INET6 */
    7360
    74 /* TCP 通信端点 */
     61/* TCP 通信端点 */
    7562
    7663#ifdef SUPPORT_INET4
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_discard_cli.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  TCP DISCARD クライアント
    48  *  TCP/IP コンフィギュレーションファイル
     35 *  TCP DISCARD クライアント
     36 *  TCP/IP コンフィギュレーションファイル
    4937 */
    5038
     
    5341#ifndef USE_TCP_EXTENTIONS
    5442
    55 /* TCP 通信端点 */
     43/* TCP 通信端点 */
    5644
    5745#ifdef SUPPORT_INET4
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_discard_srv.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  TCP DISCARD サーバの TCP/IP コンフィギュレーションファイル
     35 *  TCP DISCARD サーバの TCP/IP コンフィギュレーションファイル
    4836 */
    4937
     
    5240#ifndef USE_TCP_EXTENTIONS
    5341
    54 /* TCP 受付口 */
     42/* TCP 受付口 */
    5543
    5644#ifdef SUPPORT_INET4
     
    7260#endif  /* of #ifdef SUPPORT_INET6 */
    7361
    74 /* TCP 通信端点 */
     62/* TCP 通信端点 */
    7563
    7664#ifdef SUPPORT_INET4
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_echo_cli.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  TCP ECHO クライアント
    48  *  TCP/IP コンフィギュレーションファイル
     35 *  TCP ECHO クライアント
     36 *  TCP/IP コンフィギュレーションファイル
    4937 */
    5038
     
    5341#ifndef USE_TCP_EXTENTIONS
    5442
    55 /* TCP 通信端点 */
     43/* TCP 通信端点 */
    5644
    5745#ifdef SUPPORT_INET4
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_tcp_echo_srv.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  TCP ECHO サーバの TCP/IP コンフィギュレーションファイル
     35 *  TCP ECHO サーバの TCP/IP コンフィギュレーションファイル
    4836 */
    4937
     
    5240#ifndef USE_TCP_EXTENTIONS
    5341
    54 /* TCP 受付口 */
     42/* TCP 受付口 */
    5543
    5644#ifdef SUPPORT_INET4
     
    7260#endif  /* of #ifdef SUPPORT_INET6 */
    7361
    74 /* TCP 通信端点 */
     62/* TCP 通信端点 */
    7563
    7664#ifdef SUPPORT_INET4
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_discard_cli.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  UDP DISCARD クライアント
    48  *  UDP/IP コンフィギュレーションファイル
     35 *  UDP DISCARD クライアント
     36 *  UDP/IP コンフィギュレーションファイル
    4937 */
    5038
     
    5341#ifndef USE_UDP_EXTENTIONS
    5442
    55 /* UDP 通信端点 */
     43/* UDP 通信端点 */
    5644
    5745#ifdef SUPPORT_INET4
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_echo_cli.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  UDP ECHO クライアント
    48  *  TCP/IP コンフィギュレーションファイル
     35 *  UDP ECHO クライアント
     36 *  TCP/IP コンフィギュレーションファイル
    4937 */
    5038
     
    5341#ifndef USE_UDP_EXTENTIONS
    5442
    55 /* UDP 通信端点 */
     43/* UDP 通信端点 */
    5644
    5745#ifdef SUPPORT_INET4
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_udp_echo_srv.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  UDP ECHO サーバ
    48  *  UDP/IP コンフィギュレーションファイル
     35 *  UDP ECHO サーバ
     36 *  UDP/IP コンフィギュレーションファイル
    4937 */
    5038
     
    5341#ifndef USE_UDP_EXTENTIONS
    5442
    55 /* UDP 通信端点 */
     43/* UDP 通信端点 */
    5644
    5745#ifdef SUPPORT_INET4
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/tinet_wwws.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  WWW サーバの TCP/IP コンフィギュレーションファイル
     35 *  WWW サーバの TCP/IP コンフィギュレーションファイル
    4836 */
    4937
     
    5240#ifndef USE_TCP_EXTENTIONS
    5341
    54 /* TCP 受付口 */
     42/* TCP 受付口 */
    5543
    5644#ifdef SUPPORT_INET4
     
    7260#endif  /* of #ifdef SUPPORT_INET6 */
    7361
    74 /* TCP 通信端点 */
     62/* TCP 通信端点 */
    7563
    7664#ifdef SUPPORT_INET4
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_discard_cli.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$
     
    4533
    4634/*
    47  *  UDP DISCARD クライアント
     35 *  UDP DISCARD クライアント
    4836 */
    4937
     
    9280#ifdef USE_UDP_DISCARD_CLI
    9381
    94 /* discard サーバのポート番号 */
     82/* discard サーバのポート番号 */
    9583
    9684#define DISCARD_SRV_PORTNO      UINT_C(9)
    9785
    9886/*
    99  * 変数
     87 * 変数
    10088 */
    10189
     
    10492
    10593/*
    106  *  å
    107 ¨åŸŸå¤‰æ•°
     94 *  全域変数
    10895 */
    10996
     
    11198
    11299/*
    113  *  send_udp_discard -- DISCARD/UDP サーバにメッセージを送信する。
     100 *  send_udp_discard -- DISCARD/UDP サーバにメッセージを送信する。
    114101 */
    115102
     
    159146
    160147/*
    161  *  UDP DISCARD クライアント送信タスク
     148 *  UDP DISCARD クライアント送信タスク
    162149 */
    163150
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_discard_cli.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  UDP DISCARD クライアント
    48  *  コンフィギュレーションファイル
     35 *  UDP DISCARD クライアント
     36 *  コンフィギュレーションファイル
    4937 */
    5038
    5139#ifdef USE_UDP_DISCARD_CLI
    5240
    53 /* タスク */
     41/* タスク */
    5442
    5543#ifdef USE_UDP_EXTENTIONS
     
    7765#endif  /* of #ifdef USE_UDP_EXTENTIONS */
    7866
    79 /* コマンドキュー */
     67/* コマンドキュー */
    8068
    8169CRE_DTQ(DTQ_UDP_DISCARD_CLI,  { TA_TFIFO, 1, NULL });
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_cli.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$
     
    4533
    4634/*
    47  *  UDP ECHO クライアント
     35 *  UDP ECHO クライアント
    4836 */
    4937
     
    8371#ifdef USE_UDP_ECHO_CLI
    8472
    85 /* echo サーバのポート番号 */
     73/* echo サーバのポート番号 */
    8674
    8775#define ECHO_SRV_PORTNO         UINT_C(7)
    8876
    8977/*
    90  *  å
    91 ¨åŸŸå¤‰æ•°
     78 *  全域変数
    9279 */
    9380
     
    9582
    9683/*
    97  * 変数
     84 * 変数
    9885 */
    9986
     
    10895
    10996/*
    110  *  ノンブロッキングコールのコールバック関数
     97 *  ノンブロッキングコールのコールバック関数
    11198 */
    11299
     
    120107
    121108/*
    122  *  send_udp_echo -- ECHO/UDP サーバにメッセージを送信する (ノンブロッキングコール使用)。
     109 *  send_udp_echo -- ECHO/UDP サーバにメッセージを送信する (ノンブロッキングコール使用)。
    123110 */
    124111
     
    141128
    142129        syscall(slp_tsk());
    143         if (nblk_len < 0) {     /* 0 以下の場合は、エラーコード */
     130        if (nblk_len < 0) {     /* 0 以下の場合は、エラーコード */
    144131                syslog(LOG_NOTICE, "[UEC:%02d CBR] error: %s", cepid, itron_strerror(nblk_len));
    145132                return nblk_len;
     
    152139
    153140        syscall(slp_tsk());
    154         if (nblk_len < 0) {     /* 0 以下の場合は、エラーコード */
     141        if (nblk_len < 0) {     /* 0 以下の場合は、エラーコード */
    155142                syslog(LOG_NOTICE, "[UEC:%02d RCV] error: %s", cepid, itron_strerror(nblk_len));
    156143                return nblk_len;
     
    171158
    172159/*
    173  *  コールバック関数
     160 *  コールバック関数
    174161 */
    175162
     
    191178
    192179/*
    193  *  send_udp_echo -- ECHO/UDP サーバにメッセージを送信する (コールバック関数使用)。
     180 *  send_udp_echo -- ECHO/UDP サーバにメッセージを送信する (コールバック関数使用)。
    194181 */
    195182
     
    213200
    214201/*
    215  *  send_udp_echo -- ECHO/UDP サーバにメッセージを送信する (コールバック関数未使用)。
     202 *  send_udp_echo -- ECHO/UDP サーバにメッセージを送信する (コールバック関数未使用)。
    216203 */
    217204
     
    250237
    251238/*
    252  *  UDP ECHO クライアント送信タスク
     239 *  UDP ECHO クライアント送信タスク
    253240 */
    254241
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_cli.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  ECHO サーバ試験プログラムのシステムコンフィギュレーションファイル
     35 *  ECHO サーバ試験プログラムのシステムコンフィギュレーションファイル
    4836 */
    4937
    5038#ifdef USE_UDP_ECHO_CLI
    5139
    52 /* タスク */
     40/* タスク */
    5341
    5442#ifdef USE_UDP_EXTENTIONS
     
    7664#endif  /* of #ifdef USE_UDP_EXTENTIONS */
    7765
    78 /* コマンドキュー */
     66/* コマンドキュー */
    7967
    8068CRE_DTQ(DTQ_UDP_ECHO_CLI,  { TA_TFIFO, 1, NULL });
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_srv.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$
     
    4533
    4634/*
    47  *  UDP ECHO サーバ
     35 *  UDP ECHO サーバ
    4836 */
    4937
     
    8371
    8472/*
    85  *  受信タイムアウト
     73 *  受信タイムアウト
    8674 */
    8775
     
    9785
    9886/*
    99  *  コールバック関数
     87 *  コールバック関数
    10088 */
    10189
     
    138126
    139127/*
    140  *  変数
     128 *  変数
    141129 */
    142130
     
    144132
    145133/*
    146  *  ノンブロッキングコールのコールバック関数
     134 *  ノンブロッキングコールのコールバック関数
    147135 */
    148136
     
    154142        get_tim(&now);
    155143        nblk_len = *(ER_UINT*)p_parblk;
    156         if (nblk_len < 0) {     /* 0 以下の場合は、エラーコード */
     144        if (nblk_len < 0) {     /* 0 以下の場合は、エラーコード */
    157145                syslog(LOG_NOTICE, "[UES:%02d CBR] error,      %6ld: %s, fncd: %s",
    158146                                   cepid, now / SYSTIM_HZ, itron_strerror(nblk_len), in_strtfn(fncd));
     
    169157
    170158/*
    171  *  UDP ECHO サーバ
     159 *  UDP ECHO サーバ
    172160 */
    173161
     
    211199
    212200/*
    213  *  UDP ECHO サーバ
     201 *  UDP ECHO サーバ
    214202 */
    215203
     
    248236
    249237/*
    250  *  UDP ECHO サーバタスク
     238 *  UDP ECHO サーバタスク
    251239 */
    252240
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/udp_echo_srv.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  UDP ECHO サーバコンフィギュレーションファイル
     35 *  UDP ECHO サーバコンフィギュレーションファイル
    4836 */
    4937
     
    5139
    5240/*
    53  * タスク
     41 * タスク
    5442 */
    5543
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.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$
     
    4533
    4634/*
    47  *  WWW サーバ
     35 *  WWW サーバ
    4836 *
    49  *    ・送受信タスク同一型
    50  *    ・ノンブロッキングコール
    51  *    ・省コピー API
    52  *    ・IPv4/IPv6
     37 *    ・送受信タスク同一型
     38 *    ・ノンブロッキングコール
     39 *    ・省コピー API
     40 *    IPv4/IPv6
    5341 */
    5442
     
    10391
    10492/*
    105  *  送受信 API の選択
     93 *  送受信 API の選択
    10694 */
    10795
     
    119107
    120108/*
    121  *  関数
     109 *  関数
    122110 */
    123111
     
    131119
    132120/*
    133  *  å
    134 ¨åŸŸå¤‰æ•°
    135  */
    136 
    137 /* TCP 送受信ウィンドバッファ */
     121 *  全域変数
     122 */
     123
     124/* TCP 送受信ウィンドバッファ */
    138125
    139126#ifndef TCP_CFG_SWBUF_CSAVE
     
    146133
    147134/*
    148  *  変数
     135 *  変数
    149136 */
    150137
     
    177164
    178165/*
    179  *  get_char -- 一文字å
    180 ¥åŠ›ã™ã‚‹ã€‚
     166 *  get_char -- 一文字入力する。
    181167 */
    182168
     
    213199
    214200/*
    215  *  flush_sbuf -- 送信バッファをフラッシュする。
     201 *  flush_sbuf -- 送信バッファをフラッシュする。
    216202 */
    217203
     
    228214
    229215/*
    230  *  put_str -- 文字列を出力する。
     216 *  put_str -- 文字列を出力する。
    231217 */
    232218
     
    270256
    271257/*
    272  *  get_char -- 一文字å
    273 ¥åŠ›ã™ã‚‹ã€‚
     258 *  get_char -- 一文字入力する。
    274259 */
    275260
     
    303288
    304289/*
    305  *  flush_sbuf -- 送信バッファをフラッシュする。
     290 *  flush_sbuf -- 送信バッファをフラッシュする。
    306291 */
    307292
     
    323308
    324309/*
    325  *  put_str -- 文字列を出力する。
     310 *  put_str -- 文字列を出力する。
    326311 */
    327312
     
    355340
    356341/*
    357  *  get_line -- 一行å
    358 ¥åŠ›ã™ã‚‹ã€‚
     342 *  get_line -- 一行入力する。
    359343 */
    360344
     
    396380
    397381/*
    398  *  convert -- 数値変換
     382 *  convert -- 数値変換
    399383 */
    400384
     
    426410
    427411/*
    428  * split_fields -- フィールドに分割する。
     412 * split_fields -- フィールドに分割する。
    429413 */
    430414
     
    450434
    451435/*
    452  *  put_status -- status line を出力する。
     436 *  put_status -- status line を出力する。
    453437 */
    454438
     
    465449
    466450/*
    467  *  put_content_length -- Content-length を出力する。
     451 *  put_content_length -- Content-length を出力する。
    468452 */
    469453
     
    484468
    485469/*
    486  *  get_method -- GET メソッドの処理
     470 *  get_method -- GET メソッドの処理
    487471 */
    488472
     
    501485
    502486/*
    503  *  parse_request -- リクエストを解析する。
     487 *  parse_request -- リクエストを解析する。
    504488 */
    505489
     
    534518                }
    535519
    536         while ((len = get_line(cepid, line, srbuf)) > 0) {      /* ヘッダをスキップする。*/
     520        while ((len = get_line(cepid, line, srbuf)) > 0) {      /* ヘッダをスキップする。*/
    537521                split_fields(line, ": ");
    538522                if (strcmp("Content-Length", &line->buf[line->off[0]]) == 0)
     
    540524                }
    541525        while (blen > 0 && (len = get_line(cepid, line, srbuf)) > 0) {
    542                 /* エンティティ・ボディをスキップする。*/
     526                /* エンティティ・ボディをスキップする。*/
    543527                blen -= line->len;
    544528                }
     
    562546
    563547/*
    564  *  index_html -- /index.html ファイル
     548 *  index_html -- /index.html ファイル
    565549 */
    566550
     
    580564                "<title>TINET TCP/IP Protocol Stack</title>\r\n"
    581565                "</head><body bgcolor=\"#ffffbb\">\r\n"
    582                 "<hr>この WWW サーバは<br>"
     566                "<hr>この WWW サーバは<br>"
    583567
    584568#ifdef TARGET_KERNEL_ASP
    585                 "ASP Kernel Release 1.3 (patchlevel = 2) for " TARGET_NAME " (" __DATE__ "," __TIME__ ") と<br>\r\n"
     569                "ASP Kernel Release 1.3 (patchlevel = 2) for " TARGET_NAME " (" __DATE__ "," __TIME__ ") <br>\r\n"
    586570#endif
    587571
    588572#ifdef TARGET_KERNEL_JSP
    589                 "JSP Kernel Release 1.4 (patchlevel = 3) for " TARGET_NAME " (" __DATE__ "," __TIME__ ") と<br>\r\n"
     573                "JSP Kernel Release 1.4 (patchlevel = 3) for " TARGET_NAME " (" __DATE__ "," __TIME__ ") <br>\r\n"
    590574#endif
    591575
    592                 "TINET TCP/IP プロトコルスタックによりサービスしています。<br><hr>\r\n"
    593                 "<ul><li type=\"square\"><a href=\"stat.html\">ネットワーク統計æƒ
    594 å ±</a></ul><hr>\r\n"
     576                "TINET TCP/IP プロトコルスタックによりサービスしています。<br><hr>\r\n"
     577                "<ul><li type=\"square\"><a href=\"stat.html\">ネットワーク統計情報</a></ul><hr>\r\n"
    595578                "FreeBSD: Copyright (c) 1982, 1986, 1988, 1990, 1993, 1994, 1995<br>\r\n"
    596579                "The Regents of the University of California.  All rights reserved.<br><br>\r\n"
     
    643626        get_tim(&start);
    644627        len += put_status(cepid, srbuf, ST_OK);
    645         len += put_content_length(cepid, srbuf, strlen(response) - 2);  /* 2 は最初の \r\n */
     628        len += put_content_length(cepid, srbuf, strlen(response) - 2);  /* 2 は最初の \r\n */
    646629        len += put_str(cepid, srbuf, response);
    647630        get_tim(&finish);
     
    664647
    665648static const char time_prefix[] =
    666         "経過時間: "
     649        "経過時間: "
    667650        ;
    668651
     
    677660static const char table_prefix_ip4[] =
    678661        "<h2>IPv4</h2><table border>\r\n"
    679         "<tr><th>é 
    680 ç›®</th><th>カウント</th></tr>\r\n"
     662        "<tr><th>項目</th><th>カウント</th></tr>\r\n"
    681663        ;
    682664
     
    687669static const char table_prefix_ip6[] =
    688670        "<h2>IPv6</h2><table border>\r\n"
    689         "<tr><th>é 
    690 ç›®</th><th>カウント</th></tr>\r\n"
     671        "<tr><th>項目</th><th>カウント</th></tr>\r\n"
    691672        ;
    692673
    693674static const char table_prefix_icmp6[] =
    694675        "<h2>ICMPv6</h2><table border>\r\n"
    695         "<tr><th>é 
    696 ç›®</th><th>カウント</th></tr>\r\n"
     676        "<tr><th>項目</th><th>カウント</th></tr>\r\n"
    697677        ;
    698678
    699679static const char table_prefix_nd6[] =
    700         "<h2>近隣探索</h2><table border>\r\n"
    701         "<tr><th>é 
    702 ç›®</th><th>カウント</th></tr>\r\n"
     680        "<h2>近隣探索</h2><table border>\r\n"
     681        "<tr><th>項目</th><th>カウント</th></tr>\r\n"
    703682        ;
    704683
     
    707686static const char table_prefix_tcp[] =
    708687        "<h2>TCP</h2><table border>\r\n"
    709         "<tr><th>é 
    710 ç›®</th><th>カウント</th></tr>\r\n"
     688        "<tr><th>項目</th><th>カウント</th></tr>\r\n"
    711689        ;
    712690
    713691static const char table_prefix_net_buf[] =
    714         "<h2>ネットワークバッファ</h2><table border>\r\n"
    715         "<tr><th>サイズ</th>"
    716         "<th>用意数</th>"
    717         "<th>割当要求数</th>"
    718         "<th>割当数</th>"
    719         "<th>割当て<br>エラー数</th></tr>\r\n"
     692        "<h2>ネットワークバッファ</h2><table border>\r\n"
     693        "<tr><th>サイズ</th>"
     694        "<th>用意数</th>"
     695        "<th>割当要求数</th>"
     696        "<th>割当数</th>"
     697        "<th>割当て<br>エラー数</th></tr>\r\n"
    720698        ;
    721699
     
    723701
    724702static const char table_prefix_ppp[] =
    725         "<h2>PPP ネットワークインタフェース</h2><table border>\r\n"
    726         "<tr><th>é 
    727 ç›®</th><th>カウント</th></tr>\r\n"
     703        "<h2>PPP ネットワークインタフェース</h2><table border>\r\n"
     704        "<tr><th>項目</th><th>カウント</th></tr>\r\n"
    728705        ;
    729706
    730707static const char *ppp_item[NC_PPP_SIZE] = {
    731         "受信オクテット数",
    732         "送信オクテット数",
    733         "受信フレーム数",
    734         "送信フレーム数",
    735         "受信エラーフレーム数",
    736         "送信エラーフレーム数",
    737         "バッファ割り当て失敗数",
     708        "受信オクテット数",
     709        "送信オクテット数",
     710        "受信フレーム数",
     711        "送信フレーム数",
     712        "受信エラーフレーム数",
     713        "送信エラーフレーム数",
     714        "バッファ割り当て失敗数",
    738715        };
    739716
     
    743720
    744721static const char table_prefix_ether_nic[] =
    745         "<h2>イーサネット・ネットワークインタフェース</h2><table border>\r\n"
    746         "<tr><th>é 
    747 ç›®</th><th>カウント</th></tr>\r\n"
     722        "<h2>イーサネット・ネットワークインタフェース</h2><table border>\r\n"
     723        "<tr><th>項目</th><th>カウント</th></tr>\r\n"
    748724        ;
    749725
    750726static const char *ether_nic_item[NC_ETHER_NIC_SIZE] = {
    751         "リセット数",
    752         "送信セマフォ資源返却オーバー数",
    753         "送信タイムアウト数",
    754         "衝突数",
    755         "送信エラーフレーム数",
    756         "送信フレーム数",
    757         "送信オクテット数",
    758         "受信セマフォ資源返却オーバー数",
    759         "受信バッファ割り当て失敗数",
    760         "受信エラーフレーム数",
    761         "受信フレーム数",
    762         "受信オクテット数",
     727        "リセット数",
     728        "送信セマフォ資源返却オーバー数",
     729        "送信タイムアウト数",
     730        "衝突数",
     731        "送信エラーフレーム数",
     732        "送信フレーム数",
     733        "送信オクテット数",
     734        "受信セマフォ資源返却オーバー数",
     735        "受信バッファ割り当て失敗数",
     736        "受信エラーフレーム数",
     737        "受信フレーム数",
     738        "受信オクテット数",
    763739        };
    764740
     
    768744
    769745static const char *ip4_item[NC_IP4_SIZE] = {
    770         "分割送信、フラグメント数",
    771         "分割送信数",
    772         "送信エラーデータグラム数",
    773         "送信データグラム数",
    774         "送信オクテット数",
    775         "分割受信タイムアウト数",
    776         "分割受信バッファ割り当て失敗数",
    777         "分割受信破棄数",
    778         "分割受信再構成成功数",
    779         "分割受信フラグメント数",
    780         "分割受信数",
    781         "オプションå
    782 ¥åŠ›æ•°",
    783         "プロトコルエラー数",
    784         "アドレスエラー数",
    785         "バージョンエラー数",
    786         "長さエラー数",
    787         "チェックサムエラー数",
    788         "受信エラーデータグラム数",
    789         "受信データグラム数",
    790         "受信オクテット数",
     746        "分割送信、フラグメント数",
     747        "分割送信数",
     748        "送信エラーデータグラム数",
     749        "送信データグラム数",
     750        "送信オクテット数",
     751        "分割受信タイムアウト数",
     752        "分割受信バッファ割り当て失敗数",
     753        "分割受信破棄数",
     754        "分割受信再構成成功数",
     755        "分割受信フラグメント数",
     756        "分割受信数",
     757        "オプション入力数",
     758        "プロトコルエラー数",
     759        "アドレスエラー数",
     760        "バージョンエラー数",
     761        "長さエラー数",
     762        "チェックサムエラー数",
     763        "受信エラーデータグラム数",
     764        "受信データグラム数",
     765        "受信オクテット数",
    791766        };
    792767
     
    796771
    797772static const char *ip6_item[NC_IP6_SIZE] = {
    798         "分割送信、フラグメント数",
    799         "分割送信数",
    800         "送信エラーデータグラム数",
    801         "送信データグラム数",
    802         "送信オクテット数       ",
    803         "分割受信タイムアウト数",
    804         "分割受信バッファ割り当て失敗数",
    805         "分割受信破棄数",
    806         "分割受信再構成成功数",
    807         "分割受信フラグメント数",
    808         "分割受信数",
    809         "プロトコルエラー数    ",
    810         "アドレスエラー数       ",
    811         "バージョンエラー数    ",
    812         "長さエラー数",
    813         "受信エラーデータグラム数",
    814         "受信データグラム数",
    815         "受信オクテット数       ",
     773        "分割送信、フラグメント数",
     774        "分割送信数",
     775        "送信エラーデータグラム数",
     776        "送信データグラム数",
     777        "送信オクテット数       ",
     778        "分割受信タイムアウト数",
     779        "分割受信バッファ割り当て失敗数",
     780        "分割受信破棄数",
     781        "分割受信再構成成功数",
     782        "分割受信フラグメント数",
     783        "分割受信数",
     784        "プロトコルエラー数      ",
     785        "アドレスエラー数       ",
     786        "バージョンエラー数      ",
     787        "長さエラー数",
     788        "受信エラーデータグラム数",
     789        "受信データグラム数",
     790        "受信オクテット数       ",
    816791        };
    817792
    818793static const char *icmp6_item[NC_ICMP6_SIZE] = {
    819         "送信エラー ICMP データ数      ",
    820         "送信 ICMP データ数",
    821         "送信 ICMP オクテット数",
    822         "長さエラー数",
    823         "受信エラー ICMP データ数      ",
    824         "受信 ICMP データ数",
    825         "受信 ICMP オクテット数",
     794        "送信エラー ICMP データ数        ",
     795        "送信 ICMP データ数",
     796        "送信 ICMP オクテット数",
     797        "長さエラー数",
     798        "受信エラー ICMP データ数        ",
     799        "受信 ICMP データ数",
     800        "受信 ICMP オクテット数",
    826801        };
    827802
    828803static const char *nd6_item[NC_ND6_SIZE] = {
    829         "重複アドレス検出送信数",
    830         "近隣要請送信数",
    831         "近隣要請受信数",
    832         "近隣通知送信数",
    833         "近隣通知受信数",
    834         "ルータ要請出力数",
    835         "ルータ通知受信数",
     804        "重複アドレス検出送信数",
     805        "近隣要請送信数",
     806        "近隣要請受信数",
     807        "近隣通知送信数",
     808        "近隣通知受信数",
     809        "ルータ要請出力数",
     810        "ルータ通知受信数",
    836811        };
    837812
     
    839814
    840815static const char *tcp_item[NC_TCP_SIZE] = {
    841         "能動オープン数",
    842         "受動オープン数",
    843         "RTT 更新数",
    844         "送信 RST 数",
    845         "送信 ACK 数",
    846         "送信緊急セグメント数",
    847         "送信データセグメント数",
    848         "再送セグメント数",
    849         "送信セグメント数",
    850         "送信制御セグメント数",
    851         "送信データオクテット数",
    852         "受信キュー解放数",
    853         "受信多重数",
    854         "受信破棄数",
    855         "受信 RST 数",
    856         "受信多重 ACK 数",
    857         "受信 ACK 数",
    858         "受信チェックサム不正数",
    859         "受信ヘッダ不正数",
    860         "受信緊急セグメント数",
    861         "受信データセグメント数",
    862         "受信セグメント数",
    863         "受信データオクテット数",
    864         "受信オクテット数",
     816        "能動オープン数",
     817        "受動オープン数",
     818        "RTT 更新数",
     819        "送信 RST 数",
     820        "送信 ACK 数",
     821        "送信緊急セグメント数",
     822        "送信データセグメント数",
     823        "再送セグメント数",
     824        "送信セグメント数",
     825        "送信制御セグメント数",
     826        "送信データオクテット数",
     827        "受信キュー解放数",
     828        "受信多重数",
     829        "受信破棄数",
     830        "受信 RST 数",
     831        "受信多重 ACK 数",
     832        "受信 ACK 数",
     833        "受信チェックサム不正数",
     834        "受信ヘッダ不正数",
     835        "受信緊急セグメント数",
     836        "受信データセグメント数",
     837        "受信セグメント数",
     838        "受信データオクテット数",
     839        "受信オクテット数",
    865840        };
    866841
    867842/*
    868  *  put_count_item1 -- カウンタのå†
    869 å®¹ã‚’出力する。グループ 1
     843 *  put_count_item1 -- カウンタの内容を出力する。グループ 1
    870844 */
    871845
     
    910884
    911885/*
    912  *  put_count_item2 -- カウンタのå†
    913 å®¹ã‚’出力する。グループ 2
     886 *  put_count_item2 -- カウンタの内容を出力する。グループ 2
    914887 */
    915888
     
    936909
    937910/*
    938  *  td_len_ppp -- put_count_ppp で出力する文字数。
     911 *  td_len_ppp -- put_count_ppp で出力する文字数。
    939912 */
    940913
     
    951924
    952925/*
    953  *  put_count_ppp -- カウンタ (PPP) のå†
    954 å®¹ã‚’出力する。
     926 *  put_count_ppp -- カウンタ (PPP) の内容を出力する。
    955927 */
    956928
     
    1023995
    1024996/*
    1025  *  td_len_ip4 -- put_count_ip4 で出力する文字数。
     997 *  td_len_ip4 -- put_count_ip4 で出力する文字数。
    1026998 */
    1027999
     
    10381010
    10391011/*
    1040  *  put_count_ip4 -- カウンタ (IP4) のå†
    1041 å®¹ã‚’出力する。
     1012 *  put_count_ip4 -- カウンタ (IP4) の内容を出力する。
    10421013 */
    10431014
     
    10681039
    10691040/*
    1070  *  td_len_nd6 -- put_count_nd6 で出力する文字数。
     1041 *  td_len_nd6 -- put_count_nd6 で出力する文字数。
    10711042 */
    10721043
     
    10831054
    10841055/*
    1085  *  put_count_nd6 -- カウンタ (ND6) のå†
    1086 å®¹ã‚’出力する。
     1056 *  put_count_nd6 -- カウンタ (ND6) の内容を出力する。
    10871057 */
    10881058
     
    11091079
    11101080/*
    1111  *  td_len_icmp6 -- put_count_icmp6 で出力する文字数。
     1081 *  td_len_icmp6 -- put_count_icmp6 で出力する文字数。
    11121082 */
    11131083
     
    11241094
    11251095/*
    1126  *  put_count_icmp6 -- カウンタ (ICMP6) のå†
    1127 å®¹ã‚’出力する。
     1096 *  put_count_icmp6 -- カウンタ (ICMP6) の内容を出力する。
    11281097 */
    11291098
     
    11501119
    11511120/*
    1152  *  td_len_ip6 -- put_count_ip6 で出力する文字数。
     1121 *  td_len_ip6 -- put_count_ip6 で出力する文字数。
    11531122 */
    11541123
     
    11651134
    11661135/*
    1167  *  put_count_ip6 -- カウンタ (IP6) のå†
    1168 å®¹ã‚’出力する。
     1136 *  put_count_ip6 -- カウンタ (IP6) の内容を出力する。
    11691137 */
    11701138
     
    11931161
    11941162/*
    1195  *  td_len_tcp -- put_count_tcp で出力する文字数。
     1163 *  td_len_tcp -- put_count_tcp で出力する文字数。
    11961164 */
    11971165
     
    12081176
    12091177/*
    1210  *  put_count_tcp -- カウンタ (TCP) のå†
    1211 å®¹ã‚’出力する。
     1178 *  put_count_tcp -- カウンタ (TCP) の内容を出力する。
    12121179 */
    12131180
     
    12341201
    12351202/*
    1236  *  put_elapse_time -- 経過時間を出力する。
     1203 *  put_elapse_time -- 経過時間を出力する。
    12371204 */
    12381205
     
    12661233
    12671234/*
    1268  *  put_count_net_buf -- カウンタ (TCP) のå†
    1269 å®¹ã‚’出力する。
     1235 *  put_count_net_buf -- カウンタ (TCP) の内容を出力する。
    12701236 */
    12711237
     
    13071273
    13081274/*
    1309  *  td_len_ether_nic -- put_count_ether_nic で出力する文字数。
     1275 *  td_len_ether_nic -- put_count_ether_nic で出力する文字数。
    13101276 */
    13111277
     
    13221288
    13231289/*
    1324  *  put_count_ether_nic -- カウンタ (ETHER_NIC) のå†
    1325 å®¹ã‚’出力する。
     1290 *  put_count_ether_nic -- カウンタ (ETHER_NIC) の内容を出力する。
    13261291 */
    13271292
     
    13501315
    13511316/*
    1352  *  stat_html -- /stat.html ファイル
     1317 *  stat_html -- /stat.html ファイル
    13531318 */
    13541319
     
    13661331#endif
    13671332
    1368                 "<title>ネットワーク統計æƒ
    1369 å ±</title>\r\n"
     1333                "<title>ネットワーク統計情報</title>\r\n"
    13701334                "</head><body bgcolor=\"#ffffbb\">\r\n"
    1371                 "<hr><h1 align=\"center\">ネットワーク統計æƒ
    1372 å ±</h1><hr>\r\n"
     1335                "<hr><h1 align=\"center\">ネットワーク統計情報</h1><hr>\r\n"
    13731336                ;
    13741337
     
    13781341
    13791342        static const char table_prefix1[] =
    1380                 "<h2>グループ 1</h2><table border>\r\n"
    1381                 "<tr><th>é 
    1382 ç›®</th>\r\n"
    1383                 "<th>受信オクテット数</th>"
    1384                 "<th>送信オクテット数</th>\r\n"
    1385                 "<th>受信パケット数</th>"
    1386                 "<th>送信パケット数</th>\r\n"
    1387                 "<th>受信エラー<br>パケット数</th>"
    1388                 "<th>送信エラー<br>パケット数</th></tr>\r\n"
     1343                "<h2>グループ 1</h2><table border>\r\n"
     1344                "<tr><th>項目</th>\r\n"
     1345                "<th>受信オクテット数</th>"
     1346                "<th>送信オクテット数</th>\r\n"
     1347                "<th>受信パケット数</th>"
     1348                "<th>送信パケット数</th>\r\n"
     1349                "<th>受信エラー<br>パケット数</th>"
     1350                "<th>送信エラー<br>パケット数</th></tr>\r\n"
    13891351                ;
    13901352
     
    13921354
    13931355        static const char table_prefix2[] =
    1394                 "<h2>グループ 2</h2><table border>\r\n"
    1395                 "<tr><th>é 
    1396 ç›®</th>"
    1397                 "<th>受信オクテット数</th>"
    1398                 "<th>受信フレーム数</th></tr>\r\n"
     1356                "<h2>グループ 2</h2><table border>\r\n"
     1357                "<tr><th>項目</th>"
     1358                "<th>受信オクテット数</th>"
     1359                "<th>受信フレーム数</th></tr>\r\n"
    13991360                ;
    14001361
     
    14891450
    14901451                                + content_len
    1491                                 - 2);   /* 2 は最初の \r\n */
     1452                                - 2);   /* 2 は最初の \r\n */
    14921453
    14931454        len += put_str(cepid, srbuf, res_prefix);
     
    15771538
    15781539/*
    1579  *  WWW サーバ
     1540 *  WWW サーバ
    15801541 */
    15811542
     
    16531614
    16541615/*
    1655  *  get_tcp_rep -- TCP 受付口を獲得する。
     1616 *  get_tcp_rep -- TCP 受付口を獲得する。
    16561617 */
    16571618
     
    16801641
    16811642/*
    1682  *  get_tcp_cep -- TCP 通信端点とを獲得する。
     1643 *  get_tcp_cep -- TCP 通信端点とを獲得する。
    16831644 */
    16841645
     
    17111672
    17121673/*
    1713  *  WWW サーバタスク
     1674 *  WWW サーバタスク
    17141675 */
    17151676
     
    17511712
    17521713/*
    1753  *  WWW サーバタスク
     1714 *  WWW サーバタスク
    17541715 */
    17551716
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  WWW サーバのシステムコンフィギュレーションファイル
     35 *  WWW サーバのシステムコンフィギュレーションファイル
    4836 */
    4937
    5038#ifdef USE_WWW_SRV
    5139
    52 /* タスク */
     40/* タスク */
    5341
    5442#ifdef USE_TCP_EXTENTIONS
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    4836
    4937/*
    50  *  WWW サーバ
     38 *  WWW サーバ
    5139 */
    5240
     
    6452
    6553#ifdef TOPPERS_S810_CLG3_85
    66 #define WWW_SRV_STACK_SIZE              768             /* タスクのスタックサイズ    */
     54#define WWW_SRV_STACK_SIZE              768             /* タスクのスタックサイズ  */
    6755#else   /* of #ifdef TOPPERS_S810_CLG3_85 */
    68 #define WWW_SRV_STACK_SIZE              1024            /* タスクのスタックサイズ    */
     56#define WWW_SRV_STACK_SIZE              1024            /* タスクのスタックサイズ  */
    6957#endif  /* of #ifdef TOPPERS_S810_CLG3_85 */
    70 #define WWW_SRV_MAIN_PRIORITY           5               /* タスクの優å
    71 ˆåº¦            */
     58#define WWW_SRV_MAIN_PRIORITY           5               /* タスクの優先度              */
    7259
    7360/*
    74  *  TCP 送受信ウインドバッファサイズ
     61 *  TCP 送受信ウインドバッファサイズ
    7562 */
    7663
     
    136123        } T_WWW_RWBUF;
    137124
    138 /* タスク */
     125/* タスク */
    139126
    140127extern void     www_srv_task (intptr_t exinf);
    141128
    142129/*
    143  *  TCP 送受信バッファ
     130 *  TCP 送受信バッファ
    144131 */
    145132
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws_asp.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  ASP 用 WWW サーバのシステムコンフィギュレーションファイル
     35 *  ASP 用 WWW サーバのシステムコンフィギュレーションファイル
    4836 */
    4937
    5038/*
    51  *  å
    52 ±é€š WWW サーバのシステムコンフィギュレーションファイルのインクルード
     39 *  共通 WWW サーバのシステムコンフィギュレーションファイルのインクルード
    5340 */
    5441
     
    5643
    5744/*
    58  * 固定メモリプール
     45 * 固定メモリプール
    5946 */
    6047
    61 /* 受信バッファ */
     48/* 受信バッファ */
    6249
    6350CRE_MPF(MPF_WWW_RWBUF, {
     
    6956        });
    7057
    71 /* 行バッファ */
     58/* 行バッファ */
    7259
    7360CRE_MPF(MPF_WWW_LINE, {
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/wwws_jsp.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  JSP 用 WWW サーバのシステムコンフィギュレーションファイル
     35 *  JSP 用 WWW サーバのシステムコンフィギュレーションファイル
    4836 */
    4937
    5038/*
    51  *  å
    52 ±é€š WWW サーバのシステムコンフィギュレーションファイルのインクルード
     39 *  共通 WWW サーバのシステムコンフィギュレーションファイルのインクルード
    5340 */
    5441
     
    5845
    5946/*
    60  * 固定メモリプール
     47 * 固定メモリプール
    6148 */
    6249
    63 /* 受信バッファ */
     50/* 受信バッファ */
    6451
    6552CRE_MPF(MPF_WWW_RWBUF, {
     
    7057        });
    7158
    72 /* 行バッファ */
     59/* 行バッファ */
    7360
    7461CRE_MPF(MPF_WWW_LINE, {
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/Makefile.tinet

    • Property svn:mime-type changed from text/x-makefile to text/x-makefile;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
    43 #   @(#) $Id: Makefile.tinet,v 1.6 2012/07/18 04:13:23 abe Exp abe $
     31#   @(#) $Id$
    4432#
    4533
    4634#
    47 ã‚³ãƒ³ãƒ‘イルオプション
     35コンパイルオプション
    4836#
    4937INCLUDES        := $(INCLUDES) -I$(TINET_ROOT)/netdev/$(NET_DEV)
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r270 r321  
    66 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
    44  *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
     30 *
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  @(#) $Id$
     
    116101
    117102/*
    118  *  ネットワークインタフェースに依存するソフトウェアæƒ
    119 å ±
     103 *  ネットワークインタフェースに依存するソフトウェア情報
    120104 */
    121105
     
    127111
    128112/*
    129  *  ネットワークインタフェースのソフトウェアæƒ
    130 å ±
    131  */
    132 
    133 /* ネットワークインタフェースに依存するソフトウェアæƒ
    134 å ± */
     113 *  ネットワークインタフェースのソフトウェア情報
     114 */
     115
     116/* ネットワークインタフェースに依存するソフトウェア情報 */
    135117
    136118static T_MBED_SOFTC mbed_softc;
    137119
    138 /* ネットワークインタフェースに依存しないソフトウェアæƒ
    139 å ± */
     120/* ネットワークインタフェースに依存しないソフトウェア情報 */
    140121
    141122T_IF_SOFTC if_softc = {
    142         {0,},                                           /* ネットワークインタフェースのアドレス       */
    143         0,                                                      /* 送信タイムアウト                     */
    144         &mbed_softc,                            /* ディバイス依存のソフトウェアæƒ
    145 å ±     */
    146         SEM_IF_MBED_SBUF_READY, /* 送信セマフォ                   */
    147         SEM_IF_MBED_RBUF_READY, /* 受信セマフォ                   */
     123        {0,},                                           /* ネットワークインタフェースのアドレス   */
     124        0,                                                      /* 送信タイムアウト                     */
     125        &mbed_softc,                            /* ディバイス依存のソフトウェア情報     */
     126        SEM_IF_MBED_SBUF_READY, /* 送信セマフォ                       */
     127        SEM_IF_MBED_RBUF_READY, /* 受信セマフォ                       */
    148128
    149129#ifdef SUPPORT_INET6
    150130
    151         IF_MADDR_INIT,                          /* マルチキャストアドレスリスト   */
     131        IF_MADDR_INIT,                          /* マルチキャストアドレスリスト       */
    152132
    153133#endif  /* of #ifdef SUPPORT_INET6 */
     
    155135
    156136/*
    157  *  局所変数
     137 *  局所変数
    158138 */
    159139
     
    167147
    168148/*
    169  *  ds_crc -- イーサネットアドレスの CRC を計算する。
     149 *  ds_crc -- イーサネットアドレスの CRC を計算する。
    170150 */
    171151
     
    195175
    196176/*
    197  *  ds_getmcaf -- マルチキャストアドレスのリストからマルチキャストアドレス
    198  *                フィルタを計算する。
     177 *  ds_getmcaf -- マルチキャストアドレスのリストからマルチキャストアドレス
     178 *                フィルタを計算する。
    199179 */
    200180
     
    214194
    215195/*
    216  * mbed_setrcr -- 受信構成レジスタ (RCR) を設定する。
     196 * mbed_setrcr -- 受信構成レジスタ (RCR) を設定する。
    217197 */
    218198
     
    224204
    225205/*
    226  * mbed_addmulti -- マルチキャストアドレスを追加する。
     206 * mbed_addmulti -- マルチキャストアドレスを追加する。
    227207 */
    228208
     
    237217
    238218/*
    239  *  mbed_stop -- ネットワークインタフェースを停止する。
     219 *  mbed_stop -- ネットワークインタフェースを停止する。
    240220 *
    241  *    注意: NIC 割り込み禁止状æ
    242 ‹ã§å‘¼ã³å‡ºã™ã“と。
     221 *    注意: NIC 割り込み禁止状態で呼び出すこと。
    243222 */
    244223
     
    278257
    279258/*
    280  * mbed_reset -- ネットワークインタフェースをリセットする。
     259 * mbed_reset -- ネットワークインタフェースをリセットする。
    281260 */
    282261
     
    294273
    295274/*
    296  *  get_mbed_softc -- ネットワークインタフェースのソフトウェアæƒ
    297 å ±ã‚’返す。
     275 *  get_mbed_softc -- ネットワークインタフェースのソフトウェア情報を返す。
    298276 */
    299277
     
    305283
    306284/*
    307  * mbed_watchdog -- ネットワークインタフェースのワッチドッグタイムアウト
     285 * mbed_watchdog -- ネットワークインタフェースのワッチドッグタイムアウト
    308286 */
    309287
     
    315293
    316294/*
    317  * mbed_probe -- ネットワークインタフェースの検出
     295 * mbed_probe -- ネットワークインタフェースの検出
    318296 */
    319297
     
    334312
    335313/*
    336  * mbed_init -- ネットワークインタフェースの初期化
     314 * mbed_init -- ネットワークインタフェースの初期化
    337315 */
    338316
     
    342320        T_MBED_SOFTC *sc = ic->sc;
    343321
    344         /* mbed_init 本体を呼び出す。*/
     322        /* mbed_init 本体を呼び出す。*/
    345323        if_mbed_init_sub(ic);
    346324
     
    389367
    390368/*
    391  * mbed_read -- フレームの読み込み
     369 * mbed_read -- フレームの読み込み
    392370 */
    393371
     
    422400
    423401/*
    424  * mbed_start -- 送信フレームをバッファリングする。
     402 * mbed_start -- 送信フレームをバッファリングする。
    425403 */
    426404
     
    445423
    446424/*
    447  *  MBED Ethernet Controler 送受信割り込みハンドラ
     425 *  MBED Ethernet Controler 送受信割り込みハンドラ
    448426 */
    449427
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;charset=UTF-8
    r270 r321  
    66 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  @(#) $Id$
     
    5439
    5540/*
    56  *  if_mbed コンフィギュレーションファイル
     41 *  if_mbed コンフィギュレーションファイル
    5742 */
    5843
     
    6146INCLUDE("<ethernet_api.h>");
    6247
    63 /* PHY用 */
     48/* PHY */
    6449CRE_TSK(IF_MBED_PHY_TASK, { TA_NULL, 1, if_mbed_phy_task, IF_MBED_PHY_PRIORITY, IF_MBED_PHY_STACK_SIZE, NULL });
    6550
    66 /* 割り込みハンドラ */
     51/* 割り込みハンドラ */
    6752
    6853DEF_INH(INHNO_IF_MBED, { TA_HLNG, if_mbed_eth_handler });
    6954
    70 /* å
    71 ¥å‡ºåŠ›åŒæœŸç”¨ã‚»ãƒžãƒ•ã‚© */
     55/* 入出力同期用セマフォ */
    7256
    7357CRE_SEM(SEM_IF_MBED_SBUF_READY, { TA_TPRI, NUM_IF_MBED_TXBUF, NUM_IF_MBED_TXBUF });
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/if_mbed.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    66 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  @(#) $Id$
     
    6853
    6954/*
    70  *  NIC の選択マクロ
     55 *  NIC の選択マクロ
    7156 */
    7257
     
    8166#define T_IF_ETHER_NIC_SOFTC            struct t_mbed_softc
    8267
    83 /* IPv6 関係 */
     68/* IPv6 関係 */
    8469
    85 #define IF_ETHER_NIC_IN6_IFID(i,a)      get_mac6_ifid(i,a)      /* インタフェース識別子の設定              */
    86 #define IF_ETHER_NIC_ADDMULTI(s)        if_mbed_addmulti(s)             /* マルチキャストアドレスの登録           */
     70#define IF_ETHER_NIC_IN6_IFID(i,a)      get_mac6_ifid(i,a)      /* インタフェース識別子の設定                */
     71#define IF_ETHER_NIC_ADDMULTI(s)        if_mbed_addmulti(s)             /* マルチキャストアドレスの登録               */
    8772
    8873#define PHY_TASK_WAIT                           200000
     
    9378
    9479/*
    95  *  前方参ç
    96 §
     80 *  前方参照
    9781 */
    9882
     
    11498
    11599/*
    116  *  関数
     100 *  関数
    117101 */
    118102
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;charset=UTF-8
    r270 r321  
    66 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  @(#) $Id$
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_asp.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;charset=UTF-8
    r270 r321  
    66 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  @(#) $Id$
     
    5439
    5540/*
    56  *  if_mbed コンフィギュレーションファイル
     41 *  if_mbed コンフィギュレーションファイル
    5742 */
    5843
     
    6247#include "tinet_target_config.h"
    6348
    64 /* PHY用 */
     49/* PHY */
    6550CRE_TSK(IF_MBED_PHY_TASK, { TA_ACT, 1, if_mbed_phy_task, IF_MBED_PHY_PRIORITY, IF_MBED_PHY_STACK_SIZE, NULL });
    6651
    67 /* 割り込みハンドラ */
     52/* 割り込みハンドラ */
    6853
    6954DEF_INH(INHNO_IF_MBED, { TA_NULL, if_mbed_eth_handler });
    7055CFG_INT(INTNO_IF_MBED, { INTATR_IF_MBED, INTPRI_IF_MBED });
    7156
    72 /* å
    73 ¥å‡ºåŠ›åŒæœŸç”¨ã‚»ãƒžãƒ•ã‚© */
     57/* 入出力同期用セマフォ */
    7458
    7559CRE_SEM(SEM_IF_MBED_SBUF_READY, { TA_TPRI, NUM_IF_MBED_TXBUF, NUM_IF_MBED_TXBUF });
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/nic_rename.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    66 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  @(#) $Id$
     
    5742
    5843/*
    59  *  ネットワークインタフェースå†
    60 éƒ¨åã®ãƒªãƒãƒ¼ãƒ 
     44 *  ネットワークインタフェース内部名のリネーム
    6145 */
    6246
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_config.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    66 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  @(#) $Id$
     
    5742
    5843/*
    59  *  ネットワークインタフェースのå†
    60 éƒ¨è­˜åˆ¥åã®ãƒªãƒãƒ¼ãƒ 
     44 *  ネットワークインタフェースの内部識別名のリネーム
    6145 */
    6246
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netdev/if_mbed/tinet_nic_defs.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    66 *  Copyright (C) 2014 Cores Co., Ltd. Japan
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10  *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    11  *  変・再é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    15  *      スコード中に含まれていること.
    16  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17  *      用できる形で再é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20  *      è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22  *      の無保証規定を掲載すること.
    23  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24  *      用できない形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26  *      と.
    27  *    (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    31  *    (b) 再é
    32 å¸ƒã®å½¢æ
    33 ‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
    34  *        報告すること.
    35  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    36  *      害からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトをå
    38 è²¬ã™ã‚‹ã“と.
    39  *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
    40  *      由に基づく請求からも,上記著作権è€
    41 ãŠã‚ˆã³TOPPERSプロジェクトを
    42  *      å
    43 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9 *  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10 *  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13 *      スコード中に含まれていること.
     14 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17 *      の無保証規定を掲載すること.
     18 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19 *      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20 *      と.
     21 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     23 *    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
     24 *        報告すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     27 *      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     28 *      由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     29 *      免責すること.
    4430 *
    45  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    46 ãŠ
    47  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    48  *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
    49  *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
    50  *  の責任を負わない.
     31 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     32 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     33 *  に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     34 *  アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     35 *  の責任を負わない.
    5136 *
    5237 *  @(#) $Id$
     
    5742
    5843/*
    59  *  T_ETHER_HDR で、アラインを調整する場合は、調整量を指定する。
    60  *  調整しない場合は、0 を指定する。
     44 *  T_ETHER_HDR で、アラインを調整する場合は、調整量を指定する。
     45 *  調整しない場合は、0 を指定する。
    6146 */
    6247#define IF_ETHER_NIC_HDR_ALIGN          0
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/icmp6.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    117105
    118106/*
    119  *  ICMPv6 ヘッダ
     107 *  ICMPv6 ヘッダ
    120108 */
    121109
    122110typedef struct t_icmp6_hdr {
    123         uint8_t         type;           /* メッセージの型        */
    124         uint8_t         code;           /* サブ型            */
    125         uint16_t        sum;            /* チェックサム           */
     111        uint8_t         type;           /* メッセージの型      */
     112        uint8_t         code;           /* サブ型          */
     113        uint16_t        sum;            /* チェックサム               */
    126114        union {
    127115                uint32_t        data32;
     
    134122#define icmp6_data16                    data.data16
    135123#define icmp6_data8                     data.data8
    136 #define icmp6_pptr                      data.data32             /* パラメータ異常        */
    137 #define icmp6_mtu                       data.data32             /* パラメータ異常        */
    138 #define icmp6_id                        data.data16[0]          /* エコー要求と応答     */
    139 #define icmp6_seq                       data.data16[1]          /* エコー要求と応答     */
     124#define icmp6_pptr                      data.data32             /* パラメータ異常      */
     125#define icmp6_mtu                       data.data32             /* パラメータ異常      */
     126#define icmp6_id                        data.data16[0]          /* エコー要求と応答     */
     127#define icmp6_seq                       data.data16[1]          /* エコー要求と応答     */
    140128
    141129#define ICMP6_HDR_SIZE                  (sizeof(T_ICMP6_HDR))
     
    149137
    150138/*
    151  *  ICMP6 タイプ
    152  */
    153 
    154 #define ICMP6_DST_UNREACH               UINT_C(1)       /* 宛å
    155 ˆåˆ°é”不可能                */
    156 #define ICMP6_PACKET_TOO_BIG            UINT_C(2)       /* パケットが大きすぎる。    */
    157 #define ICMP6_TIME_EXCEEDED             UINT_C(3)       /* TTL をè¶
    158 éŽã—た。            */
    159 #define ICMP6_PARAM_PROB                UINT_C(4)       /* IPv6 ヘッダが不正。           */
    160 
    161 #define ICMP6_ECHO_REQUEST              UINT_C(128)     /* エコー要求                      */
    162 #define ICMP6_ECHO_REPLY                UINT_C(129)     /* エコー応答                      */
    163 
    164 #define ICMP6_MEMBERSHIP_QUERY          UINT_C(130)     /* グループメンバç
    165 §ä¼š            */
    166 #define ICMP6_MEMBERSHIP_REPORT         UINT_C(131)     /* グループメンバ報告          */
    167 #define ICMP6_MEMBERSHIP_REDUCTION      UINT_C(132)     /* グループメンバ終了          */
    168 
    169 #define MLD_LISTENER_QUERY              UINT_C(130)     /* マルチキャスト受信è€
    170 ç
    171 §ä¼š    */
    172 #define MLD_LISTENER_REPORT             UINT_C(131)     /* マルチキャスト受信è€
    173 å ±å‘Š  */
    174 #define MLD_LISTENER_DONE               UINT_C(132)     /* マルチキャスト受信è€
    175 çµ‚了  */
    176 
    177 #define ND_ROUTER_SOLICIT               UINT_C(133)     /* ルータ要請                      */
    178 #define ND_ROUTER_ADVERT                UINT_C(134)     /* ルータ通知                      */
    179 #define ND_NEIGHBOR_SOLICIT             UINT_C(135)     /* 近隣要請                 */
    180 #define ND_NEIGHBOR_ADVERT              UINT_C(136)     /* 近隣通知                 */
    181 #define ND_REDIRECT                     UINT_C(137)     /* 向け直し                 */
    182 
    183 #define ICMP6_ROUTER_RENUMBERING        UINT_C(138)     /* ルータ番号再設定             */
    184 
    185 #define ICMP6_WRU_REQUEST               UINT_C(139)     /* 要求ノード探索                */
    186 #define ICMP6_WRU_REPLY                 UINT_C(140)     /* 応答ノード探索                */
    187 
    188 #define ICMP6_FQDN_QUERY                UINT_C(139)     /* FQDN ç
    189 §ä¼š                    */
    190 #define ICMP6_FQDN_REPLY                UINT_C(140)     /* FQDN 応答                  */
    191 
    192 #define ICMP6_NI_QUERY                  UINT_C(139)     /* ノードæƒ
    193 å ±ç
    194 §ä¼š            */
    195 #define ICMP6_NI_REPLY                  UINT_C(140)     /* ノードæƒ
    196 å ±å¿œç­”               */
    197 
    198 #define ICMP6_MAX_TYPE                  UINT_C(203)     /* ICMP6 タイプの最大値          */
    199 
    200 /*
    201  *  ICMP6 コード
    202  */
    203 
    204 /* 宛å
    205 ˆåˆ°é”不可能 */
    206 
    207 #define ICMP6_DST_UNREACH_NOROUTE       UINT_C(0)       /* 到達ルートなし。             */
    208 #define ICMP6_DST_UNREACH_ADMIN         UINT_C(1)       /* 管理è€
    209 ã«ã‚ˆã‚Šç„¡åŠ¹åŒ–中。        */
    210 #define ICMP6_DST_UNREACH_NOTEIGHBOR    UINT_C(2)       /* 近隣è€
    211 ã§ã¯ãªããªã£ãŸã€‚        */
    212 #define ICMP6_DST_UNREACH_BEYOND_SCOPE  UINT_C(2)       /* スコープをè¶
    213 ãˆã¦ã„る。 */
    214 #define ICMP6_DST_UNREACH_ADDR          UINT_C(3)       /* 宛å
    215 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«åˆ°é”不可能。      */
    216 #define ICMP6_DST_UNREACH_NOPORT        UINT_C(4)       /* 宛å
    217 ˆãƒãƒ¼ãƒˆã«åˆ°é”不可能。 */
    218 
    219 /* TTL è¶
    220 éŽ */
    221 
    222 #define ICMP6_TIME_EXCEED_TRANSIT       UINT_C(0)       /* 転送時に TTL==0 になった。  */
    223 #define ICMP6_TIME_EXCEED_REASSEMBLY    UINT_C(1)       /* IP 再構成でタイムアウトした。*/
    224 
    225 /* ヘッダ不正 */
    226 
    227 #define ICMP6_PARAMPROB_HEADER          UINT_C(0)       /* ヘッダに不正があった。    */
    228 #define ICMP6_PARAMPROB_NEXT_HEADER     UINT_C(1)       /* 次ヘッダが認識できない。 */
    229 #define ICMP6_PARAMPROB_OPTION          UINT_C(2)       /* オプションが認識できない。      */
    230 
    231 /* å†
    232 éƒ¨ä½¿ç”¨ */
    233 #define ND_REDIRECT_ONLINK              UINT_C(0)       /* オンリンクへの向け直し    */
    234 #define ND_REDIRECT_ROUTER              UINT_C(1)       /* ルータへの向け直し          */
    235 
    236 /*
    237  *  制限値
    238  */
    239 
    240                                                         /* ICMPv6 の最大ペイロード長   */
     139 *  ICMP6 タイプ
     140 */
     141
     142#define ICMP6_DST_UNREACH               UINT_C(1)       /* 宛先到達不可能              */
     143#define ICMP6_PACKET_TOO_BIG            UINT_C(2)       /* パケットが大きすぎる。  */
     144#define ICMP6_TIME_EXCEEDED             UINT_C(3)       /* TTL を超過した。           */
     145#define ICMP6_PARAM_PROB                UINT_C(4)       /* IPv6 ヘッダが不正。         */
     146
     147#define ICMP6_ECHO_REQUEST              UINT_C(128)     /* エコー要求                        */
     148#define ICMP6_ECHO_REPLY                UINT_C(129)     /* エコー応答                        */
     149
     150#define ICMP6_MEMBERSHIP_QUERY          UINT_C(130)     /* グループメンバ照会            */
     151#define ICMP6_MEMBERSHIP_REPORT         UINT_C(131)     /* グループメンバ報告            */
     152#define ICMP6_MEMBERSHIP_REDUCTION      UINT_C(132)     /* グループメンバ終了            */
     153
     154#define MLD_LISTENER_QUERY              UINT_C(130)     /* マルチキャスト受信者照会 */
     155#define MLD_LISTENER_REPORT             UINT_C(131)     /* マルチキャスト受信者報告 */
     156#define MLD_LISTENER_DONE               UINT_C(132)     /* マルチキャスト受信者終了 */
     157
     158#define ND_ROUTER_SOLICIT               UINT_C(133)     /* ルータ要請                        */
     159#define ND_ROUTER_ADVERT                UINT_C(134)     /* ルータ通知                        */
     160#define ND_NEIGHBOR_SOLICIT             UINT_C(135)     /* 近隣要請                 */
     161#define ND_NEIGHBOR_ADVERT              UINT_C(136)     /* 近隣通知                 */
     162#define ND_REDIRECT                     UINT_C(137)     /* 向け直し                 */
     163
     164#define ICMP6_ROUTER_RENUMBERING        UINT_C(138)     /* ルータ番号再設定             */
     165
     166#define ICMP6_WRU_REQUEST               UINT_C(139)     /* 要求ノード探索              */
     167#define ICMP6_WRU_REPLY                 UINT_C(140)     /* 応答ノード探索              */
     168
     169#define ICMP6_FQDN_QUERY                UINT_C(139)     /* FQDN 照会                      */
     170#define ICMP6_FQDN_REPLY                UINT_C(140)     /* FQDN 応答                      */
     171
     172#define ICMP6_NI_QUERY                  UINT_C(139)     /* ノード情報照会              */
     173#define ICMP6_NI_REPLY                  UINT_C(140)     /* ノード情報応答              */
     174
     175#define ICMP6_MAX_TYPE                  UINT_C(203)     /* ICMP6 タイプの最大値                */
     176
     177/*
     178 *  ICMP6 コード
     179 */
     180
     181/* 宛先到達不可能 */
     182
     183#define ICMP6_DST_UNREACH_NOROUTE       UINT_C(0)       /* 到達ルートなし。             */
     184#define ICMP6_DST_UNREACH_ADMIN         UINT_C(1)       /* 管理者により無効化中。  */
     185#define ICMP6_DST_UNREACH_NOTEIGHBOR    UINT_C(2)       /* 近隣者ではなくなった。  */
     186#define ICMP6_DST_UNREACH_BEYOND_SCOPE  UINT_C(2)       /* スコープを超えている。  */
     187#define ICMP6_DST_UNREACH_ADDR          UINT_C(3)       /* 宛先アドレスに到達不可能。        */
     188#define ICMP6_DST_UNREACH_NOPORT        UINT_C(4)       /* 宛先ポートに到達不可能。 */
     189
     190/* TTL 超過 */
     191
     192#define ICMP6_TIME_EXCEED_TRANSIT       UINT_C(0)       /* 転送時に TTL==0 になった。    */
     193#define ICMP6_TIME_EXCEED_REASSEMBLY    UINT_C(1)       /* IP 再構成でタイムアウトした。*/
     194
     195/* ヘッダ不正 */
     196
     197#define ICMP6_PARAMPROB_HEADER          UINT_C(0)       /* ヘッダに不正があった。  */
     198#define ICMP6_PARAMPROB_NEXT_HEADER     UINT_C(1)       /* 次ヘッダが認識できない。 */
     199#define ICMP6_PARAMPROB_OPTION          UINT_C(2)       /* オプションが認識できない。        */
     200
     201/* 内部使用 */
     202#define ND_REDIRECT_ONLINK              UINT_C(0)       /* オンリンクへの向け直し  */
     203#define ND_REDIRECT_ROUTER              UINT_C(1)       /* ルータへの向け直し            */
     204
     205/*
     206 *  制限値
     207 */
     208
     209                                                        /* ICMPv6 の最大ペイロード長     */
    241210#define ICMPV6_PAYLOAD_MAXLEN           (IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE))
    242211
    243212/*
    244  *  近隣要請
     213 *  近隣要請
    245214 */
    246215
     
    248217        T_ICMP6_HDR     hdr;
    249218        T_IN6_ADDR      target;
    250         /* この後にオプションが続く */
     219        /* この後にオプションが続く */
    251220        } __attribute__((packed, aligned(2)))T_NEIGHBOR_SOLICIT_HDR;
    252221
     
    266235
    267236/*
    268  *  近隣通知
     237 *  近隣通知
    269238 */
    270239
     
    272241        T_ICMP6_HDR     hdr;
    273242        T_IN6_ADDR      target;
    274         /* この後にオプションが続く */
     243        /* この後にオプションが続く */
    275244        } __attribute__((packed, aligned(2)))T_NEIGHBOR_ADVERT_HDR;
    276245
    277 /* ICMP6 ヘッダのデータ部の定義 */
     246/* ICMP6 ヘッダのデータ部の定義 */
    278247
    279248#define nd_na_flags_reserved            hdr.data.data32
     
    297266
    298267/*
    299  *  近隣通知フラグ、nd_na_flags_reserved (hdr.data32) に設定する。
     268 *  近隣通知フラグ、nd_na_flags_reserved (hdr.data32) に設定する。
    300269 */
    301270
    302271#if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
    303272
    304 #define ND_NA_FLG_OVERRIDE              ULONG_C(0x20000000)     /* 近隣キャッシュ上書き       */
    305 #define ND_NA_FLG_SOLICITED             ULONG_C(0x40000000)     /* 近隣要請への応答     */
    306 #define ND_NA_FLG_ROUTER                ULONG_C(0x80000000)     /* ルータ通知              */
     273#define ND_NA_FLG_OVERRIDE              ULONG_C(0x20000000)     /* 近隣キャッシュ上書き   */
     274#define ND_NA_FLG_SOLICITED             ULONG_C(0x40000000)     /* 近隣要請への応答     */
     275#define ND_NA_FLG_ROUTER                ULONG_C(0x80000000)     /* ルータ通知                */
    307276
    308277#elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
    309278
    310 #define ND_NA_FLG_OVERRIDE              ULONG_C(0x00000020)     /* 近隣キャッシュ上書き       */
    311 #define ND_NA_FLG_SOLICITED             ULONG_C(0x00000040)     /* 近隣要請への応答     */
    312 #define ND_NA_FLG_ROUTER                ULONG_C(0x00000080)     /* ルータ通知              */
     279#define ND_NA_FLG_OVERRIDE              ULONG_C(0x00000020)     /* 近隣キャッシュ上書き   */
     280#define ND_NA_FLG_SOLICITED             ULONG_C(0x00000040)     /* 近隣要請への応答     */
     281#define ND_NA_FLG_ROUTER                ULONG_C(0x00000080)     /* ルータ通知                */
    313282
    314283#endif  /* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
    315284
    316285/*
    317  *  ルータ通知
     286 *  ルータ通知
    318287 */
    319288
    320289typedef struct t_router_advert_hdr {
    321290        T_ICMP6_HDR     hdr;
    322         uint32_t        reachable;              /* [ms] 到達可能時間      */
    323         uint32_t        retransmit;             /* [ms] 近隣要請送信間隔        */
    324         /* この後にオプションが続く */
     291        uint32_t        reachable;              /* [ms] 到達可能時間  */
     292        uint32_t        retransmit;             /* [ms] 近隣要請送信間隔        */
     293        /* この後にオプションが続く */
    325294        } __attribute__((packed, aligned(2)))T_ROUTER_ADVERT_HDR;
    326295
    327 /* ICMP6 ヘッダのデータ部の定義 */
     296/* ICMP6 ヘッダのデータ部の定義 */
    328297
    329298#define nd_ra_current_hoplimit          hdr.data.data8[0]
    330299#define nd_ra_flags                     hdr.data.data8[1]
    331 #define nd_ra_router_lifetime           hdr.data.data16[1]      /* [s] ルータ有効時間    */
     300#define nd_ra_router_lifetime           hdr.data.data16[1]      /* [s] ルータ有効時間  */
    332301
    333302#define ROUTER_ADVERT_HDR_SIZE          (sizeof(T_ROUTER_ADVERT_HDR))
     
    347316
    348317/*
    349  *  ルータ通知ヘッダのフラグ
     318 *  ルータ通知ヘッダのフラグ
    350319 */
    351320
     
    355324
    356325/*
    357  *  ルータ要請
     326 *  ルータ要請
    358327 */
    359328
     
    362331        } __attribute__((packed, aligned(2)))T_ROUTER_SOLICIT_HDR;
    363332
    364 /* ICMP6 ヘッダのデータ部の定義 */
     333/* ICMP6 ヘッダのデータ部の定義 */
    365334
    366335#define nd_rs_reserved                  hdr.data.data32
     
    383352
    384353/*
    385  *  近隣探索オプション
    386  */
    387 
    388 /* 近隣探索ヘッダ */
     354 *  近隣探索オプション
     355 */
     356
     357/* 近隣探索ヘッダ */
    389358
    390359typedef struct t_neighbor_hdr {
     
    393362        } __attribute__((packed, aligned(2)))T_NEIGHBOR_HDR;
    394363
    395 /* 近隣探索オプションヘッダ */
     364/* 近隣探索オプションヘッダ */
    396365
    397366typedef struct t_nd_opt_hdr {
    398         uint8_t         type;                   /* オプションタイプ                     */
    399         uint8_t         len;                    /* オプション長、単位は 8 バイト   */
     367        uint8_t         type;                   /* オプションタイプ                     */
     368        uint8_t         len;                    /* オプション長、単位は 8 バイト     */
    400369        } __attribute__((packed, aligned(2)))T_ND_OPT_HDR;
    401370
    402371#define ND_OPT_HDR_SIZE                 (sizeof(T_ND_OPT_HDR))
    403372
    404 #define ND_OPT_SOURCE_LINKADDR          UINT_C(1)       /* 送信å
    405 ˆãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ */
    406 #define ND_OPT_TARGET_LINKADDR          UINT_C(2)       /* 対象ネットワークインタフェースのアドレス */
    407 #define ND_OPT_PREFIX_INFORMATION       UINT_C(3)       /* プレフィックスæƒ
    408 å ±                             */
    409 #define ND_OPT_REDIRECTED_HEADER        UINT_C(4)       /* リダイレクト・ヘッダ                               */
     373#define ND_OPT_SOURCE_LINKADDR          UINT_C(1)       /* 送信先ネットワークインタフェースのアドレス        */
     374#define ND_OPT_TARGET_LINKADDR          UINT_C(2)       /* 対象ネットワークインタフェースのアドレス */
     375#define ND_OPT_PREFIX_INFORMATION       UINT_C(3)       /* プレフィックス情報                            */
     376#define ND_OPT_REDIRECTED_HEADER        UINT_C(4)       /* リダイレクト・ヘッダ                           */
    410377#define ND_OPT_MTU                      UINT_C(5)       /* MTU                                          */
    411378
    412 #define ND_OPT_PREFIX_INFO_COUNT        UINT_C(6)       /* プレフィックスæƒ
    413 å ±ã®å€‹æ•°                    */
    414 #define ND_OPT_OFF_ARRAY_SIZE           UINT_C(7)       /* ND オプションのオフセットを記録するé
    415 åˆ—サイズ*/
    416 
    417 #define ND_OPT_OFF_ARRAY_IX(t)          ((t)-1)         /* オフセットé
    418 åˆ—のインデックス                       */
    419 
    420 /* プレフィックスオプション */
     379#define ND_OPT_PREFIX_INFO_COUNT        UINT_C(6)       /* プレフィックス情報の個数                 */
     380#define ND_OPT_OFF_ARRAY_SIZE           UINT_C(7)       /* ND オプションのオフセットを記録する配列サイズ*/
     381
     382#define ND_OPT_OFF_ARRAY_IX(t)          ((t)-1)         /* オフセット配列のインデックス                       */
     383
     384/* プレフィックスオプション */
    421385
    422386typedef struct t_nd_opt_prefix_info {
    423         uint8_t         type;           /* 近隣探索オプションタイプ = 3     */
    424         uint8_t         len;            /* オプション長 = 8×4=32 */
    425         uint8_t         prefix_len;     /* プレフィックス長             */
    426         uint8_t         flags;          /* フラグ                    */
    427         uint32_t        valid;          /* [s] 有効時間                     */
    428         uint32_t        preferred;      /* [s] 推奨有効時間               */
     387        uint8_t         type;           /* 近隣探索オプションタイプ = 3     */
     388        uint8_t         len;            /* オプション長 = 8×4=32      */
     389        uint8_t         prefix_len;     /* プレフィックス長             */
     390        uint8_t         flags;          /* フラグ                  */
     391        uint32_t        valid;          /* [s] 有効時間                     */
     392        uint32_t        preferred;      /* [s] 推奨有効時間           */
    429393        uint32_t        reserved;
    430         T_IN6_ADDR      prefix;         /* プレフィックス                */
     394        T_IN6_ADDR      prefix;         /* プレフィックス              */
    431395        } __attribute__((packed, aligned(2)))T_ND_OPT_PREFIX_INFO;
    432396
    433 #define ND_OPT_PI_FLAG_ONLINK   UINT_C(0x80)            /* オンリンクプレフィックス */
    434 #define ND_OPT_PI_FLAG_AUTO     UINT_C(0x40)            /* ステートレス・アドレス自動設定*/
    435 
    436 /* MTU オプションヘッダ */
     397#define ND_OPT_PI_FLAG_ONLINK   UINT_C(0x80)            /* オンリンクプレフィックス */
     398#define ND_OPT_PI_FLAG_AUTO     UINT_C(0x40)            /* ステートレス・アドレス自動設定*/
     399
     400/* MTU オプションヘッダ */
    437401
    438402typedef struct t_nd_opt_mtu_hdr {
    439         uint8_t         type;           /* オプションタイプ             */
    440         uint8_t         len;            /* オプション長、単位は 8 バイト*/
     403        uint8_t         type;           /* オプションタイプ             */
     404        uint8_t         len;            /* オプション長、単位は 8 バイト*/
    441405        uint16_t        reserved;
    442406        uint32_t        mtu;            /* MTU                          */
     
    444408
    445409/*
    446  *  向け直し
     410 *  向け直し
    447411 */
    448412
    449413typedef struct t_nd_redirect_hdr {
    450414        T_ICMP6_HDR     hdr;
    451         T_IN6_ADDR      target;         /* ルータのアドレス             */
    452         T_IN6_ADDR      dst;            /* 向け直しの終点アドレス            */
    453         /* この後にオプションが続く */
     415        T_IN6_ADDR      target;         /* ルータのアドレス             */
     416        T_IN6_ADDR      dst;            /* 向け直しの終点アドレス          */
     417        /* この後にオプションが続く */
    454418        } __attribute__((packed, aligned(2)))T_ND_REDIRECT_HDR;
    455419
     
    459423
    460424/*
    461  *  SNMP の 管理æƒ
    462 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     425 *  SNMP の 管理情報ベース (MIB)
    463426 */
    464427
     
    505468
    506469/*
    507  *  関数
     470 *  関数
    508471 */
    509472
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/icmp_var.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8674
    8775/*
    88  *  SNMP の 管理æƒ
    89 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     76 *  SNMP の 管理情報ベース (MIB)
    9077 */
    9178
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    121109
    122110/*
    123  *  ARP キャッシュエントリ
     111 *  ARP キャッシュエントリ
    124112 */
    125113
     
    127115
    128116/*
    129  *  関数
     117 *  関数
    130118 */
    131119
     
    135123
    136124/*
    137  *  arp_lookup -- ARP キャッシュの探索と登録
    138  *
    139  *    注意: SEM_ARP_CACHE_LOCK を獲得した状æ
    140 ‹ã§å‘¼å‡ºã™ã“と
     125 *  arp_lookup -- ARP キャッシュの探索と登録
     126 *
     127 *    注意: SEM_ARP_CACHE_LOCK を獲得した状態で呼出すこと
    141128 */
    142129
     
    152139                }
    153140
    154         /* create が真なら、新たなエントリを登録する。*/
     141        /* create が真なら、新たなエントリを登録する。*/
    155142        if (create) {
    156143
    157                 /* まず、空きがあれば、その空きを利用する。*/
     144                /* まず、空きがあれば、その空きを利用する。*/
    158145                for (ix = NUM_ARP_ENTRY; ix -- > 0; ) {
    159146                        if (arp_cache[ix].expire == 0) {
     
    164151
    165152                /*
    166                  *  空きがなければ、タイムアウトまで時間が最短の
    167                  *  エントリーを破棄して利用する。
     153                 *  空きがなければ、タイムアウトまで時間が最短の
     154                 *  エントリーを破棄して利用する。
    168155                 */
    169156                syslog(LOG_NOTICE, "[ARP] cache busy, size=%d", NUM_ARP_ENTRY);
     
    183170
    184171/*
    185  *  in_arpinput -- TCP/IP 用 ARP のå
    186 ¥åŠ›é–¢æ•°
     172 *  in_arpinput -- TCP/IP 用 ARP の入力関数
    187173 */
    188174
     
    200186        et_arph = GET_ETHER_ARP_HDR(input);
    201187
    202         ntoahl(saddr, et_arph->sproto);         /* 送信å
    203 ƒ IP アドレス       */
    204         ntoahl(taddr, et_arph->tproto);         /* 解決対象 IP アドレス */
    205 
    206         /*
    207          *  以下の場合はエラー
    208          *    ・送信ホストの物理アドレスが自分
    209          *    ・送信ホストの物理アドレスがブロードキャスト
     188        ntoahl(saddr, et_arph->sproto);         /* 送信元 IP アドレス  */
     189        ntoahl(taddr, et_arph->tproto);         /* 解決対象 IP アドレス */
     190
     191        /*
     192         *  以下の場合はエラー
     193         *    ・送信ホストの物理アドレスが自分
     194         *    ・送信ホストの物理アドレスがブロードキャスト
    210195         */
    211196        if (memcmp(et_arph->shost, ifaddr->lladdr,        ETHER_ADDR_LEN) == 0 ||
     
    214199
    215200        /*
    216          *  送信ホストの IP アドレスが自分の場合は、重複しているので
    217          *  相手にも知らせる。
     201         *  送信ホストの IP アドレスが自分の場合は、重複しているので
     202         *  相手にも知らせる。
    218203         */
    219204        if (saddr == ifp->in_ifaddr.addr) {
     
    240225
    241226        /*
    242          *  以下の場合は何もしない。
    243          *    ・解決対象 IP アドレスが自分ではない、注: å
    244 ƒã® FreeBSD の
    245          *      実è£
    246 ã§ã¯ã€ARP PROXY 等のため、自分以外の IP アドレスの
    247          *      解決も行っているが、本実è£
    248 ã§ã¯ã€è‡ªåˆ†ä»¥å¤–の IP
    249          *      アドレスの解決は行わない。
     227         *  以下の場合は何もしない。
     228         *    ・解決対象 IP アドレスが自分ではない、注: 元の FreeBSD の
     229         *      実装では、ARP PROXY 等のため、自分以外の IP アドレスの
     230         *      解決も行っているが、本実装では、自分以外の IP
     231         *      アドレスの解決は行わない。
    250232         */
    251233        if (taddr != ifp->in_ifaddr.addr)
     
    253235
    254236        /*
    255          *  送信å
    256 ƒ IP アドレスが ARP キャッシュにあるか調べる。
    257          *  キャッシュになければ、新たにエントリを登録する。
     237         *  送信元 IP アドレスが ARP キャッシュにあるか調べる。
     238         *  キャッシュになければ、新たにエントリを登録する。
    258239         */
    259240        syscall(wai_sem(SEM_ARP_CACHE_LOCK));
     
    264245
    265246        /*
    266          *  送信がペンデングされているフレームがあれば送信する。
     247         *  送信がペンデングされているフレームがあれば送信する。
    267248         */
    268249        if (ent->hold) {
    269250
    270                 /* フレームの Ethernet ヘッダを設定する。*/
     251                /* フレームの Ethernet ヘッダを設定する。*/
    271252                memcpy(GET_ETHER_HDR(ent->hold)->dhost, ent->mac_addr, ETHER_ADDR_LEN);
    272253
     
    275256                syscall(sig_sem(SEM_ARP_CACHE_LOCK));
    276257
    277                 /* ペンディングされているフレームを送信する。*/
     258                /* ペンディングされているフレームを送信する。*/
    278259                IF_RAW_OUTPUT(pending, TMO_FEVR);
    279260
     
    286267        arph = GET_ARP_HDR(input);
    287268
    288         /* アドレス解決要求でなければ終了 */
     269        /* アドレス解決要求でなければ終了 */
    289270        if (ntohs(arph->opcode) != ARPOP_REQUEST)
    290271                goto buf_rel;
    291272
    292         /* Ethernet ARP ヘッダを設定する。*/
     273        /* Ethernet ARP ヘッダを設定する。*/
    293274        memcpy(et_arph->thost, et_arph->shost, ETHER_ADDR_LEN);
    294275        memcpy(et_arph->shost, ifaddr->lladdr, ETHER_ADDR_LEN);
     
    296277        ahtonl(et_arph->sproto, taddr);
    297278
    298         /* Ethernet ARP ヘッダを設定する。*/
     279        /* Ethernet ARP ヘッダを設定する。*/
    299280        arph->opcode = htons(ARPOP_REPLY);
    300281
    301         /* Ethernet ヘッダを設定する。*/
     282        /* Ethernet ヘッダを設定する。*/
    302283        eth = GET_ETHER_HDR(input);
    303284        memcpy(eth->dhost, eth->shost,     ETHER_ADDR_LEN);
    304285        memcpy(eth->shost, ifaddr->lladdr, ETHER_ADDR_LEN);
    305286
    306         /* ARP 応答を送信する。*/
     287        /* ARP 応答を送信する。*/
    307288        IF_RAW_OUTPUT(input, TMO_FEVR);
    308289        return;
     
    315296
    316297/*
    317  *  arp_timer -- ARP キャッシュの更新
     298 *  arp_timer -- ARP キャッシュの更新
    318299 */
    319300
     
    329310                        arp_cache[ix].expire -= ARP_TIMER_TMO;
    330311                        if (arp_cache[ix].expire == 0) {
    331                                 /* 送信がペンデングされているフレームがあれば捨てる。*/
     312                                /* 送信がペンデングされているフレームがあれば捨てる。*/
    332313                                if (arp_cache[ix].hold) {
    333314                                        NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
     
    344325
    345326/*
    346  *  arp_request -- MAC アドレス解決要求
     327 *  arp_request -- MAC アドレス解決要求
    347328 */
    348329
     
    362343        if ((error = tget_net_buf(&arp_req, IF_ARP_ETHER_HDR_SIZE, TMO_ARP_GET_NET_BUF)) == E_OK) {
    363344
    364                 /* イーサネットヘッダを設定する。*/
     345                /* イーサネットヘッダを設定する。*/
    365346                eth     = GET_ETHER_HDR(arp_req);
    366347                memcpy(eth->dhost, ether_broad_cast_addr, ETHER_ADDR_LEN);
     
    368349                eth->type = htons(ETHER_TYPE_ARP);
    369350
    370                 /* ARP ヘッダを設定する。*/
     351                /* ARP ヘッダを設定する。*/
    371352                arph    = GET_ARP_HDR(arp_req);
    372353                arph->hrd_addr  = htons(ARPHRD_ETHER);
     
    376357                arph->opcode    = htons(ARPOP_REQUEST);
    377358
    378                 /* イーサネット ARP ヘッダを設定する。*/
     359                /* イーサネット ARP ヘッダを設定する。*/
    379360                et_arph = GET_ETHER_ARP_HDR(arp_req);
    380361                src     = IF_GET_IFNET()->in_ifaddr.addr;
     
    384365                ahtonl(et_arph->tproto, dst);
    385366
    386                 /* 送信する。*/
     367                /* 送信する。*/
    387368                error = IF_RAW_OUTPUT(arp_req, TMO_ARP_OUTPUT);
    388369                }
     
    393374
    394375/*
    395  *  arp_get_cache -- ARP キャッシュを獲得する。
     376 *  arp_get_cache -- ARP キャッシュを獲得する。
    396377 */
    397378
     
    403384
    404385/*
    405  *  arp_input -- ARP のå
    406 ¥åŠ›é–¢æ•°
     386 *  arp_input -- ARP の入力関数
    407387 */
    408388
     
    415395        NET_COUNT_ARP(net_count_arp.in_packets, 1);
    416396
    417         /* ARP ヘッダの長さをチェックする。*/
     397        /* ARP ヘッダの長さをチェックする。*/
    418398        if (input->len < IF_ARP_HDR_SIZE)
    419399                goto buf_rel;
     
    422402
    423403        /*
    424          *  物理アドレスフォーマットが Ehternet 以外
    425          *  または、プロトコルが IP 以外はエラー。
     404         *  物理アドレスフォーマットが Ehternet 以外
     405         *  または、プロトコルが IP 以外はエラー。
    426406         */
    427407        if (ntohs(arph->hrd_addr) != ARPHRD_ETHER ||
     
    429409                goto buf_rel;
    430410
    431         /* ARP ヘッダ + Ether ARP ヘッダの長さをチェックする。*/
     411        /* ARP ヘッダ + Ether ARP ヘッダの長さをチェックする。*/
    432412        if (input->len < IF_ARP_ETHER_HDR_SIZE)
    433413                goto buf_rel;
     
    442422
    443423/*
    444  *  arp_resolve -- MAC アドレス解決
    445  *
    446  *    アドレス解決ができれば、戻り値は true を返し、できなければ
    447  *    送信をペンディングして、戻り値は false を返す。
     424 *  arp_resolve -- MAC アドレス解決
     425 *
     426 *    アドレス解決ができれば、戻り値は true を返し、できなければ
     427 *    送信をペンディングして、戻り値は false を返す。
    448428 */
    449429
     
    458438
    459439        /*
    460          *  次の場合は、イーサネットのブロードキャストアドレスを返す。
     440         *  次の場合は、イーサネットのブロードキャストアドレスを返す。
    461441         *
    462          *    ・å
    463 ¨ãƒ“ットが 1
    464          *    ・ホスト部のå
    465 ¨ãƒ“ットが 1 で、ネットワーク部がローカルアドレス
     442         *    ・全ビットが 1
     443         *    ・ホスト部の全ビットが 1 で、ネットワーク部がローカルアドレス
    466444         */
    467445        if (gw == IPV4_ADDR_BROADCAST ||
     
    471449                }
    472450
    473         /* 送信å
    474 ˆ GW の IP アドレスが ARP キャッシュにあるか調べる。*/
     451        /* 送信先 GW の IP アドレスが ARP キャッシュにあるか調べる。*/
    475452        syscall(wai_sem(SEM_ARP_CACHE_LOCK));
    476453        ent = arp_lookup(gw, true);
     
    481458                }
    482459        else {
    483                 /* 送信がペンデングされているフレームがあれば捨てる。*/
     460                /* 送信がペンデングされているフレームがあれば捨てる。*/
    484461                if (ent->hold) {
    485462                        NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
     
    488465
    489466                /*
    490                  *  送信をペンディングする。
    491                  *  IF でネットワークバッファを開放しないフラグが設定されているときは、
    492                  *  送信をペンディングしない。
     467                 *  送信をペンディングする。
     468                 *  IF でネットワークバッファを開放しないフラグが設定されているときは、
     469                 *  送信をペンディングしない。
    493470                 */
    494471                if ((output->flags & NB_FLG_NOREL_IFOUT) == 0)
     
    500477                syscall(sig_sem(SEM_ARP_CACHE_LOCK));
    501478
    502                 /* アドレス解決要求を送信する。*/
     479                /* アドレス解決要求を送信する。*/
    503480                arp_request(ifaddr, gw);
    504481                return false;
     
    507484
    508485/*
    509  *  arp_init -- ARP 初期化
     486 *  arp_init -- ARP 初期化
    510487 */
    511488
     
    518495#ifdef ETHER_CFG_MULTICAST
    519496/*
    520  *  ether_map_ipv4_multicast -- IPv4 マルチキャストアドレスからイーサネット・マルチキャストアドレスへの変換
     497 *  ether_map_ipv4_multicast -- IPv4 マルチキャストアドレスからイーサネット・マルチキャストアドレスへの変換
    521498 */
    522499
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  Ethernet ARP コンフィギュレーションファイル
     35 *  Ethernet ARP コンフィギュレーションファイル
    4836 */
    4937
    5038#ifdef SUPPORT_ETHER
    5139
    52 /* ARP キャッシュ更新用セマフォ */
     40/* ARP キャッシュ更新用セマフォ */
    5341
    5442CRE_SEM(SEM_ARP_CACHE_LOCK, { TA_TPRI, 1, 1 });
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/if_ether.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8876 *  Ethernet Address Resolution Protocol.
    8977 *
    90  *  RFC 826 参ç
    91 §
     78 *  RFC 826 参照
    9279 */
    9380
    9481typedef struct t_ether_arp_hdr {
    95         uint8_t         shost[ETHER_ADDR_LEN];  /* 送信ホストの物理アドレス */
    96         uint8_t         sproto[IPV4_ADDR_LEN];  /* 送信ホストの IP アドレス   */
    97         uint8_t         thost[ETHER_ADDR_LEN];  /* 解決対象物理アドレス               */
    98         uint8_t         tproto[IPV4_ADDR_LEN];  /* 解決対象 IP アドレス         */
     82        uint8_t         shost[ETHER_ADDR_LEN];  /* 送信ホストの物理アドレス */
     83        uint8_t         sproto[IPV4_ADDR_LEN];  /* 送信ホストの IP アドレス       */
     84        uint8_t         thost[ETHER_ADDR_LEN];  /* 解決対象物理アドレス           */
     85        uint8_t         tproto[IPV4_ADDR_LEN];  /* 解決対象 IP アドレス         */
    9986        } __attribute__((packed, aligned(2)))T_ETHER_ARP_HDR;
    10087
     
    10592
    10693/*
    107  *  ARP キャッシュエントリ
     94 *  ARP キャッシュエントリ
    10895 */
    10996
    11097typedef struct arp_entry {
    111         T_NET_BUF       *hold;          /* ARP の解決å¾
    112 ã¡å‡ºåŠ›ãƒ•ãƒ¬ãƒ¼ãƒ    */
    113         T_IN4_ADDR      ip_addr;        /* IP アドレス                      */
    114         uint16_t        expire;         /* 破棄までの時間、0 なら未使用    */
    115         uint8_t         mac_addr[ETHER_ADDR_LEN];       /* MAC アドレス     */
     98        T_NET_BUF       *hold;          /* ARP の解決待ち出力フレーム      */
     99        T_IN4_ADDR      ip_addr;        /* IP アドレス                      */
     100        uint16_t        expire;         /* 破棄までの時間、0 なら未使用      */
     101        uint8_t         mac_addr[ETHER_ADDR_LEN];       /* MAC アドレス     */
    116102        } __attribute__((packed, aligned(2)))T_ARP_ENTRY;
    117103
    118104/*
    119  *  関数
     105 *  関数
    120106 */
    121107
     
    131117
    132118/*
    133  *  TINET 独自 API
     119 *  TINET 独自 API
    134120 */
    135121
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    8876
    8977/*
    90  *  TINET のバージョンæƒ
    91 å ±
    92  */
    93 
    94 #define TINET_PRVER             UINT_C(0x1054)  /* TINET のバージョン番号 */
    95 
    96 /*
    97  *  インターネットシステムの定義、RFC790 参ç
    98 §
    99  */
    100 
    101 /*
    102  *  プロトコル (RFC1700)
    103  */
    104 
    105 #define IPPROTO_IP              UINT_C(0)       /* IP のダミー                              */
    106 #define IPPROTO_HOPOPTS         UINT_C(0)       /* IPv6 中継点 (Hop-by-Hop) オプション  */
     78 *  TINET のバージョン情報
     79 */
     80
     81#define TINET_PRVER             UINT_C(0x1054)  /* TINET のバージョン番号 */
     82
     83/*
     84 *  インターネットシステムの定義、RFC790 参照
     85 */
     86
     87/*
     88 *  プロトコル (RFC1700)
     89 */
     90
     91#define IPPROTO_IP              UINT_C(0)       /* IP のダミー                              */
     92#define IPPROTO_HOPOPTS         UINT_C(0)       /* IPv6 中継点 (Hop-by-Hop) オプション  */
    10793#define IPPROTO_ICMP            UINT_C(1)       /* ICMP                                 */
    10894#define IPPROTO_TCP             UINT_C(6)       /* TCP                                  */
    10995#define IPPROTO_UDP             UINT_C(17)      /* UDP                                  */
    11096#define IPPROTO_IPV6            UINT_C(41)      /* IPv6                                 */
    111 #define IPPROTO_ROUTING         UINT_C(43)      /* 経路制御オプション                  */
    112 #define IPPROTO_FRAGMENT        UINT_C(44)      /* 断片化オプション                     */
     97#define IPPROTO_ROUTING         UINT_C(43)      /* 経路制御オプション                    */
     98#define IPPROTO_FRAGMENT        UINT_C(44)      /* 断片化オプション                     */
    11399#define IPPROTO_RSVP            UINT_C(46)      /* RSVP                                 */
    114 #define IPPROTO_ESP             UINT_C(50)      /* IPv6 暗号化オプション                */
    115 #define IPPROTO_AH              UINT_C(51)      /* IPv6 認証オプション                   */
     100#define IPPROTO_ESP             UINT_C(50)      /* IPv6 暗号化オプション                */
     101#define IPPROTO_AH              UINT_C(51)      /* IPv6 認証オプション                 */
    116102#define IPPROTO_ICMPV6          UINT_C(58)      /* ICMPv6                               */
    117 #define IPPROTO_NONE            UINT_C(59)      /* IPv6 次ヘッダ無し                      */
    118 #define IPPROTO_DSTOPTS         UINT_C(60)      /* IPv6 終点オプション                   */
    119 #define IPPROTO_IPCOMP          UINT_C(108)     /* ペイロード圧縮                        */
    120 #define IPPROTO_DONE            UINT_C(257)     /* IPv6 で上位プロトコルå
    121 ¥åŠ›çµ‚了      */
    122 
    123 /*
    124  *  IPv4 アドレス
    125  */
    126 
    127 /* 前方参ç
    128 § */
     103#define IPPROTO_NONE            UINT_C(59)      /* IPv6 次ヘッダ無し                  */
     104#define IPPROTO_DSTOPTS         UINT_C(60)      /* IPv6 終点オプション                 */
     105#define IPPROTO_IPCOMP          UINT_C(108)     /* ペイロード圧縮                      */
     106#define IPPROTO_DONE            UINT_C(257)     /* IPv6 で上位プロトコル入力終了    */
     107
     108/*
     109 *  IPv4 アドレス
     110 */
     111
     112/* 前方参照 */
    129113
    130114#ifndef T_IN4_ADDR_DEFINED
     
    137121
    138122/*
    139  *  ITRON TCP/IPv4 アドレス/ポート番号の定義
     123 *  ITRON TCP/IPv4 アドレス/ポート番号の定義
    140124 */
    141125
    142126typedef struct t_ipv4ep {
    143         uint32_t        ipaddr;         /* IPv4 アドレス    */
    144         uint16_t        portno;         /* ポート番号              */
     127        uint32_t        ipaddr;         /* IPv4 アドレス    */
     128        uint16_t        portno;         /* ポート番号                */
    145129        } T_IPV4EP;
    146130
    147131/*
    148  *  アドレス/ポートの長さ
     132 *  アドレス/ポートの長さ
    149133 */
    150134
     
    153137
    154138/*
    155  *  ポート番号の定義
    156  */
    157 
    158 #define TCP_PORTANY                     UINT_C(0x0000)  /* ITRON TCP/IP 標準  */
    159 #define UDP_PORTANY                     UINT_C(0x0000)  /* ITRON TCP/IP 標準  */
    160 
    161 #define TCP_PORT_LAST_WELL_KNOWN        UINT_C(1023)    /* Well Known 終了番号      */
    162 #define TCP_PORT_FIRST_AUTO             UINT_C(1024)    /* 自動割り当て開始番号       */
    163 #define TCP_PORT_LAST_AUTO              UINT_C(4999)    /* 自動割り当て終了番号       */
    164 
    165 #define UDP_PORT_LAST_WELL_KNOWN        UINT_C(1023)    /* Well Known 終了番号      */
    166 #define UDP_PORT_FIRST_AUTO             UINT_C(1024)    /* 自動割り当て開始番号       */
    167 #define UDP_PORT_LAST_AUTO              UINT_C(4999)    /* 自動割り当て終了番号       */
    168 
    169 /*
    170  *  IP アドレスの定義
    171  */
    172 
    173 #define IPV4_ADDRANY            ULONG_C(0x00000000)     /* ITRON TCP/IP 標準  */
     139 *  ポート番号の定義
     140 */
     141
     142#define TCP_PORTANY                     UINT_C(0x0000)  /* ITRON TCP/IP 標準      */
     143#define UDP_PORTANY                     UINT_C(0x0000)  /* ITRON TCP/IP 標準      */
     144
     145#define TCP_PORT_LAST_WELL_KNOWN        UINT_C(1023)    /* Well Known 終了番号      */
     146#define TCP_PORT_FIRST_AUTO             UINT_C(1024)    /* 自動割り当て開始番号   */
     147#define TCP_PORT_LAST_AUTO              UINT_C(4999)    /* 自動割り当て終了番号   */
     148
     149#define UDP_PORT_LAST_WELL_KNOWN        UINT_C(1023)    /* Well Known 終了番号      */
     150#define UDP_PORT_FIRST_AUTO             UINT_C(1024)    /* 自動割り当て開始番号   */
     151#define UDP_PORT_LAST_AUTO              UINT_C(4999)    /* 自動割り当て終了番号   */
     152
     153/*
     154 *  IP アドレスの定義
     155 */
     156
     157#define IPV4_ADDRANY            ULONG_C(0x00000000)     /* ITRON TCP/IP 標準      */
    174158
    175159#define IPV4_ADDR_LOOPBACK      ULONG_C(0x7f000001)
     
    209193
    210194/*
    211  *  動的生成用 TCP 通信端点
     195 *  動的生成用 TCP 通信端点
    212196 */
    213197
    214198typedef struct t_tcp_ccep {
    215         /* 標準 */
    216         ATR             cepatr;         /* 通信端点属性                   */
    217         void            *sbuf;          /* 送信用ウィンドバッファ    */
    218         int_t           sbufsz;         /* 送信用ウィンドバッファサイズ   */
    219         void            *rbuf;          /* 受信用ウィンドバッファ    */
    220         int_t           rbufsz;         /* 受信用ウィンドバッファサイズ   */
    221         FP              callback;       /* コールバック                   */
    222         /* 実è£
    223 ä¾å­˜ */
     199        /* 標準 */
     200        ATR             cepatr;         /* 通信端点属性                       */
     201        void            *sbuf;          /* 送信用ウィンドバッファ  */
     202        int_t           sbufsz;         /* 送信用ウィンドバッファサイズ       */
     203        void            *rbuf;          /* 受信用ウィンドバッファ  */
     204        int_t           rbufsz;         /* 受信用ウィンドバッファサイズ       */
     205        FP              callback;       /* コールバック                       */
     206        /* 実装依存 */
    224207        } T_TCP_CCEP;
    225208
    226209/*
    227  *  動的生成用 TCP 受付口
     210 *  動的生成用 TCP 受付口
    228211 */
    229212
     
    231214
    232215typedef struct t_tcp_crep {
    233         /* 標準 */
    234         ATR             repatr;         /* 受付口属性              */
    235         T_IPV4EP        myaddr;         /* 自分のアドレス        */
    236         /* 実è£
    237 ä¾å­˜ */
     216        /* 標準 */
     217        ATR             repatr;         /* 受付口属性                */
     218        T_IPV4EP        myaddr;         /* 自分のアドレス      */
     219        /* 実装依存 */
    238220        } T_TCP_CREP;
    239221
     
    241223
    242224/*
    243  *  動的生成用 UDP 通信端点
     225 *  動的生成用 UDP 通信端点
    244226 */
    245227
     
    247229
    248230typedef struct t_udp_ccep {
    249         /* 標準 */
    250         ATR             cepatr;         /* UDP 通信端点属性               */
    251         T_IPV4EP        myaddr;         /* 自分のアドレス                */
    252         FP              callback;       /* コールバック関数             */
    253         /* 実è£
    254 ä¾å­˜ */
     231        /* 標準 */
     232        ATR             cepatr;         /* UDP 通信端点属性           */
     233        T_IPV4EP        myaddr;         /* 自分のアドレス              */
     234        FP              callback;       /* コールバック関数             */
     235        /* 実装依存 */
    255236        } T_UDP_CCEP;
    256237
     
    258239
    259240/*
    260  *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
     241 *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
    261242 */
    262243
     
    278259
    279260/*
    280  *  TINET 独自 API
     261 *  TINET 独自 API
    281262 */
    282263
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_itron.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    4836
    4937/*
    50  *  API 機能・事象コード
     38 *  API 機能・事象コード
    5139 */
    5240
    53 /* TCP 関係 */
     41/* TCP 関係 */
    5442
    5543#define TFN_TCP_CRE_REP         (-0x201)
     
    7664#define TEV_TCP_RCV_OOB         (-0x201)
    7765
    78 /* UDP 関係 */
     66/* UDP 関係 */
    7967
    8068#define TFN_UDP_CRE_CEP         (-0x221)
     
    8977#define TEV_UDP_RCV_DAT         (-0x221)
    9078
    91 /* 一般 */
     79/* 一般 */
    9280
    93 #define NADR                    ((void*)(-1))   /* 無効アドレス */
     81#define NADR                    ((void*)(-1))   /* 無効アドレス */
    9482#define IS_PTR_DEFINED(a)       ((void*)(a)!=NADR&&(void*)(a)!=NULL)
    9583#define TCP_REP_NONE            UINT_C(0)
     
    9886
    9987/*
    100  *  関数
     88 *  関数
    10189 */
    10290
    103 /* TCP 関係 */
     91/* TCP 関係 */
    10492
    105 /* 【標準機能】 */
     93/* 【標準機能】 */
    10694
    10795extern ER       tcp_acp_cep (ID cepid, ID repid, T_IPV4EP *p_dstaddr, TMO tmout);
     
    120108extern ER       tcp6_con_cep (ID cepid, T_IPV6EP *p_myaddr, T_IPV6EP *p_dstaddr, TMO tmout);
    121109
    122 /* 【拡張機能】 */
     110/* 【拡張機能】 */
    123111
    124112extern ER       tcp_del_rep (ID cepid);
     
    133121extern ER       tcp6_cre_rep (ID repid, T_TCP6_CREP *pk_crep);
    134122
    135 /* UDP 関係 */
     123/* UDP 関係 */
    136124
    137 /* 【標準機能】 */
     125/* 【標準機能】 */
    138126
    139127extern ER_UINT  udp_snd_dat (ID cepid, T_IPV4EP *p_dstaddr, void *data, int_t len, TMO tmout);
     
    144132extern ER_UINT  udp6_rcv_dat (ID cepid, T_IPV6EP *p_dstaddr, void *data, int_t len, TMO tmout);
    145133
    146 /* 【拡張機能】 */
     134/* 【拡張機能】 */
    147135
    148136extern ER       udp_del_cep (ID cepid);
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_rename.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    4836
    4937/*
    50  *  TCP/IP プロトコルスタックå†
    51 éƒ¨åã®ãƒªãƒãƒ¼ãƒ 
     38 *  TCP/IP プロトコルスタック内部名のリネーム
    5239 */
    5340
     
    154141#define tmax_tcp_repid          _tinet_tmax_tcp_repid
    155142#define tmax_tcp_cepid          _tinet_tmax_tcp_cepid
    156 #define tmax_tcp_crepid         _tinet_tmax_tcp_repid   /* TINET 1.3 との互換性のための定義 */
    157 #define tmax_tcp_ccepid         _tinet_tmax_tcp_cepid   /* TINET 1.3 との互換性のための定義 */
     143#define tmax_tcp_crepid         _tinet_tmax_tcp_repid   /* TINET 1.3 との互換性のための定義 */
     144#define tmax_tcp_ccepid         _tinet_tmax_tcp_cepid   /* TINET 1.3 との互換性のための定義 */
    158145
    159146/* netinet/udp_input.c */
     
    179166#define udp_cep                 _tinet_udp_cep
    180167#define tmax_udp_cepid          _tinet_tmax_udp_cepid
    181 #define tmax_udp_ccepid         _tinet_tmax_udp_cepid   /* TINET 1.3 との互換性のための定義 */
     168#define tmax_udp_ccepid         _tinet_tmax_udp_cepid   /* TINET 1.3 との互換性のための定義 */
    182169
    183170/* netinet/ip_icmp.c */
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_subr.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    122110
    123111/*
    124  *  in4_get_ifaddr -- インタフェースに設定されているアドレスを返す。
     112 *  in4_get_ifaddr -- インタフェースに設定されているアドレスを返す。
    125113 */
    126114
     
    134122
    135123/*
    136  *  ip2str -- IPv4 アドレスを文字列に変換する。
     124 *  ip2str -- IPv4 アドレスを文字列に変換する。
    137125 */
    138126
     
    166154
    167155/*
    168  *  in4_set_header -- IPv4 ヘッダを設定する。
     156 *  in4_set_header -- IPv4 ヘッダを設定する。
    169157 */
    170158
     
    176164        T_IFNET         *ifp = IF_GET_IFNET();
    177165
    178         /* IP ヘッダを設定する。*/
     166        /* IP ヘッダを設定する。*/
    179167        ip4h->vhl       = IP4_MAKE_VHL(IPV4_VERSION, IP4_HDR_SIZE >> 2);
    180168        ip4h->len       = htons(IP4_HDR_SIZE + len);
     
    184172        ip4h->id        = ip4h->flg_off = ip4h->sum = 0;
    185173
    186         /* IP アドレスを設定する。*/
     174        /* IP アドレスを設定する。*/
    187175        ip4h->dst       = htonl(*dstaddr);
    188176
     
    196184
    197185/*
    198  *  in4_get_datagram -- IPv4 データグラムを獲得し、ヘッダを設定する。
     186 *  in4_get_datagram -- IPv4 データグラムを獲得し、ヘッダを設定する。
    199187 */
    200188
     
    207195        uint_t  align;
    208196
    209         /* データ長を 4 オクテット境界に調整する。*/
     197        /* データ長を 4 オクテット境界に調整する。*/
    210198        align = (len + 3) >> 2 << 2;
    211199
    212         /* ネットワークバッファを獲得する。*/
     200        /* ネットワークバッファを獲得する。*/
    213201        if ((error = tget_net_buf_ex(nbuf, (uint_t)(IF_IP4_HDR_SIZE + align),
    214202                                           (uint_t)(IF_IP4_HDR_SIZE + maxlen), nbatr, tmout)) != E_OK)
     
    216204
    217205        /*
    218          *  より大きなサイズのネットワークバッファを獲得する場合のみ長さを調整する。
    219          *  より小さなサイズのネットワークバッファの獲得は、送信ウィンドバッファの
    220          *  省コピー機能で使用され、実際に送信するまで、データサイズは決定できない。
     206         *  より大きなサイズのネットワークバッファを獲得する場合のみ長さを調整する。
     207         *  より小さなサイズのネットワークバッファの獲得は、送信ウィンドバッファの
     208         *  省コピー機能で使用され、実際に送信するまで、データサイズは決定できない。
    221209         */
    222210        if ((nbatr & NBA_SEARCH_ASCENT) != 0)
    223211                (*nbuf)->len = (uint16_t)(IF_IP4_HDR_SIZE + len);
    224212
    225         /* IP ヘッダを設定する。*/
     213        /* IP ヘッダを設定する。*/
    226214        if ((error = in4_set_header(*nbuf, len, dstaddr, srcaddr, proto, ttl)) != E_OK)
    227215                return error;
    228216
    229         /* 4 オクテット境界までパディングで埋める。*/
     217        /* 4 オクテット境界までパディングで埋める。*/
    230218        if (align > len)
    231219                memset((GET_IP4_SDU(*nbuf) + len), 0, (size_t)(align - len));
     
    235223
    236224/*
    237  *  in4_cksum -- IPv4 のトランスポート層ヘッダのチェックサムを計算する。
    238  *
    239  *  注意: 戻り値はネットワークバイトオーダ
     225 *  in4_cksum -- IPv4 のトランスポート層ヘッダのチェックサムを計算する。
     226 *
     227 *  注意: 戻り値はネットワークバイトオーダ
    240228 */
    241229
     
    246234        uint_t          align;
    247235
    248         /* 4 オクテット境界のデータ長 */
     236        /* 4 オクテット境界のデータ長 */
    249237        align = (len + 3) >> 2 << 2;
    250238
    251         /* 4 オクテット境界までパディングで埋める。*/
     239        /* 4 オクテット境界までパディングで埋める。*/
    252240        if (align > len)
    253241                memset((uint8_t*)nbuf->buf + off + len, 0, (size_t)(align - len));
     
    262250
    263251/*
    264  *  in_cksum -- チェックサム計算関数、IPv4、ICMPv4 用
    265  *
    266  *  注意: data は 4 オクテット単位でパディングすること。
    267  *        data が 2 オクテット単位にアラインされていないと
    268  *        例外が発生する可能性がある。
    269  *        len  は 4 オクテット単位にアラインされていること。
    270  *
    271  *        戻り値はネットワークバイトオーダ
     252 *  in_cksum -- チェックサム計算関数、IPv4、ICMPv4 用
     253 *
     254 *  注意: data は 4 オクテット単位でパディングすること。
     255 *        data が 2 オクテット単位にアラインされていないと
     256 *        例外が発生する可能性がある。
     257 *        len  は 4 オクテット単位にアラインされていること。
     258 *
     259 *        戻り値はネットワークバイトオーダ
    272260 */
    273261
    274262uint16_t
    275 in_cksum (void *data, uint_t len /*オクテット単位*/)
     263in_cksum (void *data, uint_t len /*オクテット単位*/)
    276264{
    277265        uint16_t        sum;
     
    282270
    283271/*
    284  *  in4_is_dstaddr_accept -- 宛å
    285 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ã—て正しいかチェックする。
    286  *
    287  *    注意: dstaddr は、
    288  *          TINET-1.2 からネットワークバイトオーダ、
    289  *          TINET-1.1 までは、ホストバイトオーダ
     272 *  in4_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。
     273 *
     274 *    注意: dstaddr は、
     275 *          TINET-1.2 からネットワークバイトオーダ、
     276 *          TINET-1.1 までは、ホストバイトオーダ
    290277 */
    291278
     
    300287
    301288/*
    302  * in4_ifawithifp -- 宛å
    303 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«ãµã•ã‚ã—い送信å
    304 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’、
    305  *                   ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã‹ã‚‰æŽ¢ç´¢ã™ã‚‹ã€‚
    306  *                   in6_ifawithifp をシミュレートするだけで、
    307  *                   ã‚¨ãƒ©ãƒ¼ã‚’返すことはない。
     289 * in4_ifawithifp -- 宛先アドレスにふさわしい送信元アドレスを、
     290 *                   ネットワークインタフェースから探索する。
     291 *                   in6_ifawithifp をシミュレートするだけで、
     292 *                   エラーを返すことはない。
    308293 */
    309294
     
    315300
    316301/*
    317  *  in4_add_ifaddr -- インタフェースに IPv4 アドレスを設定する。
     302 *  in4_add_ifaddr -- インタフェースに IPv4 アドレスを設定する。
    318303 */
    319304
     
    331316
    332317/*
    333  *  in4_add_route -- 経路表にエントリを設定する。
     318 *  in4_add_route -- 経路表にエントリを設定する。
    334319 */
    335320
     
    351336
    352337/*
    353  *  in4_rtalloc -- ルーティング表を探索する。
     338 *  in4_rtalloc -- ルーティング表を探索する。
    354339 */
    355340
     
    374359
    375360/*
    376  *  in4_rtredirect -- ルーティング表にエントリを登録する。
    377  *
    378  *    注意: 引数 tmo の単位は [ms]。
     361 *  in4_rtredirect -- ルーティング表にエントリを登録する。
     362 *
     363 *    注意: 引数 tmo の単位は [ms]。
    379364 */
    380365
     
    393378
    394379/*
    395  *  in4_timer -- IPv4 å
    396 ±é€šã‚¿ã‚¤ãƒžãƒ¼
    397  *
    398  *    1秒周期で起動される。
     380 *  in4_timer -- IPv4 共通タイマー
     381 *
     382 *    1秒周期で起動される。
    399383 */
    400384
     
    418402
    419403/*
    420  *  in4_init -- IPv4 å
    421 ±é€šæ©Ÿèƒ½ã‚’初期化する。
     404 *  in4_init -- IPv4 共通機能を初期化する。
    422405 */
    423406
     
    439422
    440423/*
    441  *  in_rtinit -- ルーティング表を初期化する。
     424 *  in_rtinit -- ルーティング表を初期化する。
    442425 */
    443426
     
    455438
    456439/*
    457  *  in_rtnewentry -- 新しいエントリを獲得する。
     440 *  in_rtnewentry -- 新しいエントリを獲得する。
    458441 */
    459442
     
    465448        int_t           ix;
    466449
    467         /* 空きエントリを探す。*/
     450        /* 空きエントリを探す。*/
    468451        for (ix = NUM_STATIC_ROUTE_ENTRY; ix < NUM_ROUTE_ENTRY; ix ++) {
    469452                rt = &routing_tbl[ix];
     
    474457                }
    475458
    476         /* expire の単位は [s]。*/
     459        /* expire の単位は [s]。*/
    477460        syscall(get_tim(&now));
    478461        now /= SYSTIM_HZ;
    479462
    480463        if (frt == NULL) {
    481                 /* 空きがなければ、有効時間がもっとも短いエントリを空きにする。*/
     464                /* 空きがなければ、有効時間がもっとも短いエントリを空きにする。*/
    482465                T_IN_RTENTRY    *srt = NULL;
    483466                int_t           diff, sdiff = INT_MAX;
     
    488471                        diff = (int_t)(rt->expire - now);
    489472                        if (diff <= 0) {        /* rt->expire <= now */
    490                                 /* 既に、有効時間が過ぎている。*/
     473                                /* 既に、有効時間が過ぎている。*/
    491474                                frt = rt;
    492475                                break;
     
    509492
    510493/*
    511  *  in_rttimer -- ルーティング表の管理タイマー
     494 *  in_rttimer -- ルーティング表の管理タイマー
    512495 */
    513496
     
    518501        int_t   ix;
    519502
    520         /* expire の単位は [s]。*/
     503        /* expire の単位は [s]。*/
    521504        syscall(get_tim(&now));
    522505        now /= SYSTIM_HZ;
     
    533516
    534517/*
    535  *  in_cksum_sum -- チェックサムの合計計算関数
    536  *
    537  *  注意: data は 4 オクテット単位でパディングすること。
    538  *        data が 2 オクテット単位にアラインされていないと
    539  *        例外が発生する可能性がある。
    540  *        len  は 4 オクテット単位にアラインされていること。
    541  *
    542  *        戻り値はホストバイトオーダ
     518 *  in_cksum_sum -- チェックサムの合計計算関数
     519 *
     520 *  注意: data は 4 オクテット単位でパディングすること。
     521 *        data が 2 オクテット単位にアラインされていないと
     522 *        例外が発生する可能性がある。
     523 *        len  は 4 オクテット単位にアラインされていること。
     524 *
     525 *        戻り値はホストバイトオーダ
    543526 */
    544527
    545528uint32_t
    546 in_cksum_sum (void *data, uint_t len /*オクテット単位*/)
     529in_cksum_sum (void *data, uint_t len /*オクテット単位*/)
    547530{
    548531        uint32_t sum = 0;
     
    562545
    563546/*
    564  *  in_cksum_carry -- チェックサムの桁上げ計算関数
    565  *
    566  *  注意: data は 4 オクテット単位でパディングすること。
    567  *        data が 2 オクテット単位にアラインされていないと
    568  *        例外が発生する可能性がある。
    569  *        len  は 4 オクテット単位にアラインされていること。
     547 *  in_cksum_carry -- チェックサムの桁上げ計算関数
     548 *
     549 *  注意: data は 4 オクテット単位でパディングすること。
     550 *        data が 2 オクテット単位にアラインされていないと
     551 *        例外が発生する可能性がある。
     552 *        len  は 4 オクテット単位にアラインされていること。
    570553 */
    571554
     
    584567
    585568/*
    586  *  in_strtfn -- API 機能コードの文字表現を返す。
     569 *  in_strtfn -- API 機能コードの文字表現を返す。
    587570 */
    588571
     
    592575        switch (fncd) {
    593576
    594         /* TCP 関係 */
     577        /* TCP 関係 */
    595578
    596579        case TFN_TCP_CRE_REP:
     
    655638                break;
    656639
    657         /* UDP 関係 */
     640        /* UDP 関係 */
    658641
    659642        case TFN_UDP_CRE_CEP:
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_var.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    9078
    9179/*
    92  *  独自のエラーコード
    93  */
    94 
    95 #define EV_NOPND                (-97)           /* ペンディングしていない */
    96 
    97 /*
    98  *  ネットワークエラーコード
    99  */
    100 
    101 #define EV_MSIZE                (-98)           /* データグラム長è¶
    102 éŽ     */
    103 #define EV_NURCH                (-99)           /* ネットワーク到達不能       */
    104 #define EV_HDOWN                (-100)          /* ホストダウン           */
    105 #define EV_HURCH                (-101)          /* ホスト到達不能        */
    106 #define EV_CNNRF                (-102)          /* 接続不能         */
    107 #define EV_CNRST                (-103)          /* 接続リセット           */
    108 #define EV_REXMTMO              (-104)          /* 再送タイムアウト     */
    109 
    110 /*
    111  *  å
    112 ±é€šã‚¿ã‚¤ãƒžã®èµ·å‹•å‘¨æœŸã®å®šç¾©
     80 *  独自のエラーコード
     81 */
     82
     83#define EV_NOPND                (-97)           /* ペンディングしていない */
     84
     85/*
     86 *  ネットワークエラーコード
     87 */
     88
     89#define EV_MSIZE                (-98)           /* データグラム長超過    */
     90#define EV_NURCH                (-99)           /* ネットワーク到達不能   */
     91#define EV_HDOWN                (-100)          /* ホストダウン               */
     92#define EV_HURCH                (-101)          /* ホスト到達不能      */
     93#define EV_CNNRF                (-102)          /* 接続不能         */
     94#define EV_CNRST                (-103)          /* 接続リセット               */
     95#define EV_REXMTMO              (-104)          /* 再送タイムアウト     */
     96
     97/*
     98 *  共通タイマの起動周期の定義
    11399 */
    114100
     
    116102
    117103/*
    118  *  インタフェースアドレス構造体
     104 *  インタフェースアドレス構造体
    119105 */
    120106
    121107typedef struct t_in4_ifaddr {
    122         T_IN4_ADDR              addr;           /* IPv4 アドレス    */
    123         T_IN4_ADDR              mask;           /* サブネットマスク     */
     108        T_IN4_ADDR              addr;           /* IPv4 アドレス    */
     109        T_IN4_ADDR              mask;           /* サブネットマスク     */
    124110        } T_IN4_IFADDR;
    125111
    126112/*
    127  *  ルーティング表エントリ構造体
     113 *  ルーティング表エントリ構造体
    128114 */
    129115
    130116typedef struct t_in4_rtentry {
    131         T_IN4_ADDR      target;         /* 目標ネットワークアドレス                 */
    132         T_IN4_ADDR      mask;           /* 目標ネットワークアドレスのサブネットマスク      */
    133         T_IN4_ADDR      gateway;        /* ゲートウェイの IP アドレス                        */
    134         uint32_t        expire;         /* 有効時間が切れる時刻 [s]                   */
    135         uint8_t         flags;          /* フラグ                                    */
     117        T_IN4_ADDR      target;         /* 目標ネットワークアドレス                 */
     118        T_IN4_ADDR      mask;           /* 目標ネットワークアドレスのサブネットマスク        */
     119        T_IN4_ADDR      gateway;        /* ゲートウェイの IP アドレス                      */
     120        uint32_t        expire;         /* 有効時間が切れる時刻 [s]                       */
     121        uint8_t         flags;          /* フラグ                                  */
    136122        } T_IN4_RTENTRY;
    137123
    138124/*
    139  *  TINET 1.1 との互換性のための定義
     125 *  TINET 1.1 との互換性のための定義
    140126 */
    141127
     
    150136#define NUM_ROUTE_ENTRY                 \
    151137        (NUM_STATIC_ROUTE_ENTRY + NUM_REDIRECT_ROUTE_ENTRY)
    152                                         /* ルーティング表のエントリ数      */
     138                                        /* ルーティング表のエントリ数        */
    153139
    154140#endif  /* of #ifdef NUM_ROUTE_ENTRY */
    155141
    156142/*
    157  *  ルーティングエントリ状æ
    158 ‹ãƒ•ãƒ©ã‚°
    159  */
    160 
    161 #define IN_RTF_DEFINED          UINT_C(0x01)    /* 定義済み                 */
    162 #define IN_RTF_REDIRECT         UINT_C(0x10)    /* 向け直しにより自動設定された   */
    163 
    164 /*
    165  *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
     143 *  ルーティングエントリ状態フラグ
     144 */
     145
     146#define IN_RTF_DEFINED          UINT_C(0x01)    /* 定義済み                 */
     147#define IN_RTF_REDIRECT         UINT_C(0x10)    /* 向け直しにより自動設定された       */
     148
     149/*
     150 *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
    166151 */
    167152
     
    182167
    183168/*
    184  *  ルーティング表
     169 *  ルーティング表
    185170 */
    186171
     
    188173
    189174/*
    190  *  前方参ç
    191 §
     175 *  前方参照
    192176 */
    193177
     
    203187
    204188/*
    205  *  関数
     189 *  関数
    206190 */
    207191
     
    223207
    224208/*
    225  *  in4_is_dstaddr_accept -- 宛å
    226 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ã—て正しいかチェックする。
    227  *
    228  *    注意: dstaddr は、
    229  *          TINET-1.2 からネットワークバイトオーダ、
    230  *          TINET-1.1 までは、ホストバイトオーダ
     209 *  in4_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。
     210 *
     211 *    注意: dstaddr は、
     212 *          TINET-1.2 からネットワークバイトオーダ、
     213 *          TINET-1.1 までは、ホストバイトオーダ
    231214 */
    232215extern bool_t in4_is_dstaddr_accept (T_IN4_ADDR *myaddr, T_IN4_ADDR *dstaddr);
    233216
    234217/*
    235  *  in_cksum -- チェックサム計算関数、IPv4、ICMPv4 用
    236  *
    237  *  注意: data は 4 オクテット単位でパディングすること。
    238  *        data が 2 オクテット単位にアラインされていないと
    239  *        例外が発生する可能性がある。
    240  *        len  は 4 オクテット単位にアラインされていること。
    241  */
    242 extern uint16_t in_cksum(void *data, uint_t len /*オクテット単位*/);
    243 
    244 /*
    245  *  in_cksum_sum -- チェックサムの合計計算関数
    246  *
    247  *  注意: data は 4 オクテット単位でパディングすること。
    248  *        data が 2 オクテット単位にアラインされていないと
    249  *        例外が発生する可能性がある。
    250  *        len  は 4 オクテット単位にアラインされていること。
    251  */
    252 extern uint32_t in_cksum_sum (void *data, uint_t len /*オクテット単位*/);
    253 
    254 /*
    255  *  in_cksum_carry -- チェックサムの桁上げ計算関数
    256  *
    257  *  注意: data は 4 オクテット単位でパディングすること。
    258  *        data が 2 オクテット単位にアラインされていないと
    259  *        例外が発生する可能性がある。
    260  *        len  は 4 オクテット単位にアラインされていること。
     218 *  in_cksum -- チェックサム計算関数、IPv4、ICMPv4 用
     219 *
     220 *  注意: data は 4 オクテット単位でパディングすること。
     221 *        data が 2 オクテット単位にアラインされていないと
     222 *        例外が発生する可能性がある。
     223 *        len  は 4 オクテット単位にアラインされていること。
     224 */
     225extern uint16_t in_cksum(void *data, uint_t len /*オクテット単位*/);
     226
     227/*
     228 *  in_cksum_sum -- チェックサムの合計計算関数
     229 *
     230 *  注意: data は 4 オクテット単位でパディングすること。
     231 *        data が 2 オクテット単位にアラインされていないと
     232 *        例外が発生する可能性がある。
     233 *        len  は 4 オクテット単位にアラインされていること。
     234 */
     235extern uint32_t in_cksum_sum (void *data, uint_t len /*オクテット単位*/);
     236
     237/*
     238 *  in_cksum_carry -- チェックサムの桁上げ計算関数
     239 *
     240 *  注意: data は 4 オクテット単位でパディングすること。
     241 *        data が 2 オクテット単位にアラインされていないと
     242 *        例外が発生する可能性がある。
     243 *        len  は 4 オクテット単位にアラインされていること。
    261244 */
    262245extern uint32_t in_cksum_carry (uint32_t sum);
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  IPv4 で使用するカーネルオブジェクト
     35 *  IPv4 で使用するカーネルオブジェクト
    4836 */
    4937
     
    5240#ifdef IP4_CFG_FRAGMENT
    5341
    54 /* データグラムの分割・再構成 */
     42/* データグラムの分割・再構成 */
    5543
    5644CRE_SEM(SEM_IP4_FRAG_QUEUE, { TA_TPRI, 1, 1 });
     
    6048#if NUM_REDIRECT_ROUTE_ENTRY > 0
    6149
    62 /* ルーティング表(向け直し)*/
     50/* ルーティング表(向け直し)*/
    6351
    6452CRE_SEM(SEM_IN_ROUTING_TBL, { TA_TPRI, 1, 1 });
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8472
    8573/*
    86  *  IPv4 の定義、RFC791 参ç
    87 §
     74 *  IPv4 の定義、RFC791 参照
    8875 */
    8976
     
    9178
    9279/*
    93  *  IPv4 ヘッダの定義
     80 *  IPv4 ヘッダの定義
    9481 */
    9582
    9683typedef struct t_ip4_hdr {
    9784        uint8_t         vhl;            /* version << 4 | header length >> 2    */
    98                                         /* length は 4 octets 単位           */
     85                                        /* length は 4 octets 単位         */
    9986        uint8_t         type;           /* type of services                     */
    10087        uint16_t        len;            /* total length                         */
     
    114101
    115102/*
    116  *  IPv4 ヘッダ構造体メンバアクセスマクロ
     103 *  IPv4 ヘッダ構造体メンバアクセスマクロ
    117104 */
    118105
     
    126113
    127114/*
    128  *  IPv4 ヘッダのフィールドの値の定義
     115 *  IPv4 ヘッダのフィールドの値の定義
    129116 */
    130117
    131 #define IP4_VHL_BORING  UINT_C(0x45)    /* オプションがない VHL 値     */
    132 #define IP4_RF          UINT_C(0x8000)  /* off: 予約                  */
    133 #define IP4_DF          UINT_C(0x4000)  /* off: 分割禁止                    */
    134 #define IP4_MF          UINT_C(0x2000)  /* off: 分割あり                    */
    135 #define IP4_OFFMASK     UINT_C(0x1fff)  /* オフセット部のマスク値            */
     118#define IP4_VHL_BORING  UINT_C(0x45)    /* オプションがない VHL 値       */
     119#define IP4_RF          UINT_C(0x8000)  /* off: 予約                      */
     120#define IP4_DF          UINT_C(0x4000)  /* off: 分割禁止                    */
     121#define IP4_MF          UINT_C(0x2000)  /* off: 分割あり                    */
     122#define IP4_OFFMASK     UINT_C(0x1fff)  /* オフセット部のマスク値          */
    136123
    137124/*
    138  *  制限値
     125 *  制限値
    139126 */
    140127
    141 #define IP4_MAXPACKET   UINT_C(65535)   /* 最大パケットサイズ          */
    142 #define IP4_MAXTTL      UINT_C(255)     /* TTL 最大値                        */
    143 #define IP4_DEFTTL      UINT_C(64)      /* TTL 規定値 (RFC1340)              */
    144 #define IP4_FRAGTTL     UINT_C(60)      /* 分割されたデータグラムの生存時間(秒)*/
    145 #define IP4_MSS         UINT_C(576)     /* 最大セグメントサイズの規定値   */
     128#define IP4_MAXPACKET   UINT_C(65535)   /* 最大パケットサイズ            */
     129#define IP4_MAXTTL      UINT_C(255)     /* TTL 最大値                      */
     130#define IP4_DEFTTL      UINT_C(64)      /* TTL 規定値 (RFC1340)            */
     131#define IP4_FRAGTTL     UINT_C(60)      /* 分割されたデータグラムの生存時間(秒)*/
     132#define IP4_MSS         UINT_C(576)     /* 最大セグメントサイズの規定値       */
    146133
    147 /* IPv4 と IPv6 をコンパイル時に選択するためのマクロ */
     134/* IPv4 と IPv6 をコンパイル時に選択するためのマクロ */
    148135
    149136#if defined(SUPPORT_INET4)
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip6.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    117105
    118106/*
    119  *  IPv6 の定義、RFC2460 参ç
    120 §
     107 *  IPv6 の定義、RFC2460 参照
    121108 */
    122109
     
    124111
    125112/*
    126  *  IPv6 ヘッダの定義
     113 *  IPv6 ヘッダの定義
    127114 */
    128115
     
    141128
    142129/*
    143  *  IPv6 ヘッダ構造体メンバアクセスマクロ
     130 *  IPv6 ヘッダ構造体メンバアクセスマクロ
    144131 */
    145132
     
    151138
    152139/*
    153  *  拡張ヘッダ
     140 *  拡張ヘッダ
    154141 */
    155142
    156143typedef struct t_ip6_ext_hdr {
    157144        uint8_t         next;           /* Next Header                  */
    158         uint8_t         len;            /* 8 オクテット単位の長さ     */
     145        uint8_t         len;            /* 8 オクテット単位の長さ */
    159146        } __attribute__((packed, aligned(2)))T_IP6_EXT_HDR;
    160147
    161148/*
    162  *  中継点 (Hop-by-Hop) オプションヘッダ
     149 *  中継点 (Hop-by-Hop) オプションヘッダ
    163150 */
    164151
    165152typedef struct t_ip6_hbh_hdr {
    166153        uint8_t         next;           /* Next Header                  */
    167         uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
    168                                          * このオプションヘッダå
    169 ¨ä½“のオクテット数を
    170                                          * 8 で割った値の - 1 がå
    171 ¥ã‚‹ã€‚
     154        uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
     155                                         * このオプションヘッダ全体のオクテット数を
     156                                         * 8 で割った値の - 1 が入る。
    172157                                         */
    173158        } __attribute__((packed, aligned(2)))T_IP6_HBH_HDR;
    174159
    175160/*
    176  *  終点 (Destination) オプションヘッダ
     161 *  終点 (Destination) オプションヘッダ
    177162 */
    178163
    179164typedef struct t_ip6_dest_hdr {
    180165        uint8_t         next;           /* Next Header                  */
    181         uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
    182                                          * このオプションヘッダå
    183 ¨ä½“のオクテット数を
    184                                          * 8 で割った値の - 1 がå
    185 ¥ã‚‹ã€‚
     166        uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
     167                                         * このオプションヘッダ全体のオクテット数を
     168                                         * 8 で割った値の - 1 が入る。
    186169                                         */
    187170        } __attribute__((packed, aligned(2)))T_IP6_DEST_HDR;
    188171
    189 /* 中継点 (Hop-by-Hop) オプション */
     172/* 中継点 (Hop-by-Hop) オプション */
    190173
    191174#define IP6OPT_PAD1             UINT_C(0x00)    /* 00 0 00000 */
     
    196179#define IP6OPT_RTR_ALERT        UINT_C(0x05)    /* 00 0 00101 */
    197180
    198 #define IP6OPT_MINLEN           2       /* オプションの最短長          */
    199 
    200 /* 未知のオプションの処理の指定 */
    201 
    202 #define IP6OPT_TYPE_SKIP        UINT_C(0x00)    /* 無視する。                      */
    203 #define IP6OPT_TYPE_DISCARD     UINT_C(0x40)    /* データグラムを破棄する。 */
    204 #define IP6OPT_TYPE_FORCEICMP   UINT_C(0x80)    /* 破棄して、ICMP を返送する。       */
     181#define IP6OPT_MINLEN           2       /* オプションの最短長            */
     182
     183/* 未知のオプションの処理の指定 */
     184
     185#define IP6OPT_TYPE_SKIP        UINT_C(0x00)    /* 無視する。                        */
     186#define IP6OPT_TYPE_DISCARD     UINT_C(0x40)    /* データグラムを破棄する。 */
     187#define IP6OPT_TYPE_FORCEICMP   UINT_C(0x80)    /* 破棄して、ICMP を返送する。     */
    205188#define IP6OPT_TYPE_ICMP        UINT_C(0xc0)
    206                 /* 破棄して、マルチキャストでなければ ICMP を返送する。  */
     189                /* 破棄して、マルチキャストでなければ ICMP を返送する。        */
    207190
    208191#define IP6OPT_TYPE(o)          ((o)&UINT_C(0xc0))
    209192
    210193/*
    211  *  経路制御ヘッダ
     194 *  経路制御ヘッダ
    212195 */
    213196
    214197typedef struct t_ip6_rt_hdr {
    215198        uint8_t         next;           /* Next Header                  */
    216         uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
    217                                          * このオプションヘッダå
    218 ¨ä½“のオクテット数を
    219                                          * 8 で割った値の - 1 がå
    220 ¥ã‚‹ã€‚
    221                                          */
    222         uint8_t         type;           /* 経路制御タイプ                */
    223         uint8_t         segleft;        /* セグメントの残り             */
     199        uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
     200                                         * このオプションヘッダ全体のオクテット数を
     201                                         * 8 で割った値の - 1 が入る。
     202                                         */
     203        uint8_t         type;           /* 経路制御タイプ              */
     204        uint8_t         segleft;        /* セグメントの残り             */
    224205        } __attribute__((packed, aligned(2)))T_IP6_RT_HDR;
    225206
    226207/*
    227  *  タイプ 0 経路制御ヘッダ
     208 *  タイプ 0 経路制御ヘッダ
    228209 */
    229210
    230211typedef struct t_ip6_rt0_hdr {
    231212        uint8_t         next;           /* Next Header                  */
    232         uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
    233                                          * このオプションヘッダå
    234 ¨ä½“のオクテット数を
    235                                          * 8 で割った値の - 1 がå
    236 ¥ã‚‹ã€‚
    237                                          */
    238         uint8_t         type;           /* 経路制御タイプ                */
    239         uint8_t         segleft;        /* セグメントの残り             */
    240         uint32_t        reserved;       /* 予約                               */
     213        uint8_t         len;            /* 8 オクテット単位の長さ。ただし、
     214                                         * このオプションヘッダ全体のオクテット数を
     215                                         * 8 で割った値の - 1 が入る。
     216                                         */
     217        uint8_t         type;           /* 経路制御タイプ              */
     218        uint8_t         segleft;        /* セグメントの残り             */
     219        uint32_t        reserved;       /* 予約                           */
    241220        } __attribute__((packed, aligned(2)))T_IP6_RT0_HDR;
    242221
    243222/*
    244  *  断片ヘッダ
     223 *  断片ヘッダ
    245224 */
    246225
     
    248227        uint8_t         next;           /* Next Header                  */
    249228        uint8_t         reserved;
    250         uint16_t        off_flag;       /* オフセットとフラグ          */
    251         uint32_t        ident;          /* 分割識別子                      */
     229        uint16_t        off_flag;       /* オフセットとフラグ            */
     230        uint32_t        ident;          /* 分割識別子                        */
    252231        } __attribute__((packed, aligned(2)))T_IP6_FRAG_HDR;
    253232
    254 /* 断片ヘッダのオフセットとフラグ */
     233/* 断片ヘッダのオフセットとフラグ */
    255234
    256235#ifdef _NET_CFG_BYTE_ORDER
     
    258237#if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
    259238
    260 #define IP6F_OFF_MASK           UINT_C(0xfff8)          /* オフセットを取出すマスク */
    261 #define IP6F_RESERVED_MASK      UINT_C(0x0006)          /* 予約を取出すマスク          */
    262 #define IP6F_MORE_FRAG          UINT_C(0x0001)          /* 中間フラグメント             */
     239#define IP6F_OFF_MASK           UINT_C(0xfff8)          /* オフセットを取出すマスク */
     240#define IP6F_RESERVED_MASK      UINT_C(0x0006)          /* 予約を取出すマスク            */
     241#define IP6F_MORE_FRAG          UINT_C(0x0001)          /* 中間フラグメント             */
    263242
    264243#elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
    265244
    266 #define IP6F_OFF_MASK           UINT_C(0xf8ff)          /* オフセットを取出すマスク */
    267 #define IP6F_RESERVED_MASK      UINT_C(0x0600)          /* 予約を取出すマスク          */
    268 #define IP6F_MORE_FRAG          UINT_C(0x0100)          /* 中間フラグメント             */
     245#define IP6F_OFF_MASK           UINT_C(0xf8ff)          /* オフセットを取出すマスク */
     246#define IP6F_RESERVED_MASK      UINT_C(0x0600)          /* 予約を取出すマスク            */
     247#define IP6F_MORE_FRAG          UINT_C(0x0100)          /* 中間フラグメント             */
    269248
    270249#endif  /* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
     
    273252
    274253/*
    275  *  制限値
    276  */
    277 
    278 #define IPV6_MAXHLIM    UINT_C(255)     /* ホップリミットの最大値                            */
    279 #define IPV6_DEFHLIM    UINT_C(64)      /* ホップリミットの規定値                            */
    280 #define IPV6_FRAGTTL    UINT_C(60)      /* 分割されたデータグラムの生存時間(秒)    */
    281 #define IPV6_MMTU       UINT_C(1280)    /* 最小 MTU。ペイロード (1024) + ヘッダ (256)        */
    282 #define IPV6_MAXPACKET  UINT_C(65535)   /* ジャンボペイロードを除く最大パケットサイズ      */
    283 
    284 /*
    285  *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
    286  */
    287 
    288 /*
    289  *  ホップリミットの規定値は、ルータ通知により変更されることがある
     254 *  制限値
     255 */
     256
     257#define IPV6_MAXHLIM    UINT_C(255)     /* ホップリミットの最大値                          */
     258#define IPV6_DEFHLIM    UINT_C(64)      /* ホップリミットの規定値                          */
     259#define IPV6_FRAGTTL    UINT_C(60)      /* 分割されたデータグラムの生存時間(秒)  */
     260#define IPV6_MMTU       UINT_C(1280)    /* 最小 MTU。ペイロード (1024) + ヘッダ (256)      */
     261#define IPV6_MAXPACKET  UINT_C(65535)   /* ジャンボペイロードを除く最大パケットサイズ        */
     262
     263/*
     264 *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
     265 */
     266
     267/*
     268 *  ホップリミットの規定値は、ルータ通知により変更されることがある
    290269 */
    291270
    292271#if NUM_ND6_DEF_RTR_ENTRY > 0
    293272
    294 /* ルータ通知を受信する場合は、通知された値 */
     273/* ルータ通知を受信する場合は、通知された値 */
    295274
    296275#define IP_DEFTTL       ip6_defhlim
     
    298277#else   /* #if NUM_ND6_DEF_RTR_ENTRY > 0 */
    299278
    300 /* ルータ通知を受信しない場合の値は既定値 */
     279/* ルータ通知を受信しない場合の値は既定値 */
    301280
    302281#define IP_DEFTTL       IPV6_DEFHLIM
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_icmp.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    122110
    123111/*
    124  *  変数
     112 *  変数
    125113 */
    126114
     
    128116
    129117/*
    130  *  SNMP の 管理æƒ
    131 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     118 *  SNMP の 管理情報ベース (MIB)
    132119 */
    133120
     
    137124
    138125/*
    139  *  関数
     126 *  関数
    140127 */
    141128
     
    150137
    151138/*
    152  *  icmp_echo -- エコー要求を受信したときの処理
    153  *
    154  *    input には IF ヘッダと IP ヘッダも含まれている。
     139 *  icmp_echo -- エコー要求を受信したときの処理
     140 *
     141 *    input には IF ヘッダと IP ヘッダも含まれている。
    155142 */
    156143
     
    164151        NET_COUNT_MIB(icmp_stats.icmpInEchos, 1);
    165152
    166         /* メッセージの型をエコー要求 (8) から エコー応答 (0) に   */
    167         /* 変更して送り返す。                                  */
     153        /* メッセージの型をエコー要求 (8) から エコー応答 (0) に     */
     154        /* 変更して送り返す。                                    */
    168155
    169156        icmp4h = GET_ICMP4_HDR(input, ihoff);
    170157        icmp4h->type = ICMP4_ECHO_REPLY;
    171158
    172         /* IP ヘッダの宛å
    173 ˆã¨ç™ºä¿¡å
    174 ƒã‚’交換する。*/
     159        /* IP ヘッダの宛先と発信元を交換する。*/
    175160        ip4h      = GET_IP4_HDR(input);
    176161        addr      = ip4h->src;
     
    178163        ip4h->dst = addr;
    179164
    180         /* チェックサムを計算する。*/
     165        /* チェックサムを計算する。*/
    181166        icmp4h->sum = 0;
    182167        icmp4h->sum = in_cksum(icmp4h,
    183168                               (uint_t)(((input->len - GET_IF_IP4_HDR_SIZE(input)) + 3) >> 2 << 2));
    184169
    185         /* 送信する。*/
     170        /* 送信する。*/
    186171        NET_COUNT_ICMP4(net_count_icmp4.out_octets,
    187172                       input->len - GET_IF_IP4_HDR_SIZE(input));
     
    193178
    194179/*
    195  *  icmp_unreach -- ICMP4_UNREACH を受信したときの処理
     180 *  icmp_unreach -- ICMP4_UNREACH を受信したときの処理
    196181 */
    197182
     
    245230
    246231/*
    247  *  icmp_redirect -- 向け直しメッセージを受信したときの処理
    248  *
    249  *    input には IF ヘッダと IP ヘッダも含まれている。
     232 *  icmp_redirect -- 向け直しメッセージを受信したときの処理
     233 *
     234 *    input には IF ヘッダと IP ヘッダも含まれている。
    250235 */
    251236
     
    261246
    262247        /*
    263          *  å†
    264 å®¹ãƒã‚§ãƒƒã‚¯ã€ä»¥ä¸‹ã®å ´åˆã¯ã‚¨ãƒ©ãƒ¼
     248         *  内容チェック、以下の場合はエラー
    265249         *
    266          *    ・ICMP コードが、ICMP4_REDIRECT_PORT_AND_HOST (3) 以上
    267          *    ・データグラム長が、ICMP の最小長より短い (IP ヘッダ + ICMP ヘッダ + IP ヘッダ + 8)
    268          *    ・データグラム長が、ICMP の最大長より短い
    269          *    ・
     250         *    ・ICMP コードが、ICMP4_REDIRECT_PORT_AND_HOST (3) 以上
     251         *    ・データグラム長が、ICMP の最小長より短い (IP ヘッダ + ICMP ヘッダ + IP ヘッダ + 8)
     252         *    ・データグラム長が、ICMP の最大長より短い
     253         *   
    270254         */
    271255        if (icmp4h->code > ICMP4_REDIRECT_PORT_AND_HOST ||
     
    282266
    283267/*
    284  *  icmp_input -- ICMP のå
    285 ¥åŠ›é–¢æ•°
    286  *
    287  *    input には IF ヘッダと IP ヘッダも含まれている。
     268 *  icmp_input -- ICMP の入力関数
     269 *
     270 *    input には IF ヘッダと IP ヘッダも含まれている。
    288271 */
    289272
     
    300283        NET_COUNT_ICMP4(net_count_icmp4.in_packets, 1);
    301284
    302         /* ICMP ヘッダの長さをチェックする。*/
     285        /* ICMP ヘッダの長さをチェックする。*/
    303286        if (input->len < IF_IP4_ICMP4_HDR_SIZE) {
    304287                NET_COUNT_ICMP4(net_count_icmp4.in_err_packets, 1);
     
    309292        icmp4h = (T_ICMP4_HDR *)(input->buf + *offp);
    310293
    311         /* 4 オクテット境界のデータ長 */
     294        /* 4 オクテット境界のデータ長 */
    312295        len   = input->len - *offp;
    313296        align = (len + 3) >> 2 << 2;
    314297
    315         /* 4 オクテット境界までパディングで埋める。*/
     298        /* 4 オクテット境界までパディングで埋める。*/
    316299        if (align > len)
    317300                memset((uint8_t*)input->buf + input->len, 0, (size_t)(align - len));
    318301
    319         /* チェックサムを計算する。*/
     302        /* チェックサムを計算する。*/
    320303        if (in_cksum(icmp4h, align) != 0) {
    321304                NET_COUNT_ICMP4(net_count_icmp4.in_err_packets, 1);
     
    323306                }
    324307
    325         /* メッセージの型により分岐する。*/
     308        /* メッセージの型により分岐する。*/
    326309        switch (icmp4h->type) {
    327310        case ICMP4_ECHO_REQUEST:
     
    371354
    372355/*
    373  *  icmp_error -- ICMP エラー送信関数。
    374  *
    375  *    input には IF ヘッダと IP ヘッダも含まれている。
    376  *    icmp_error では、ネットワークバッファ input を返却しないので、
    377  *    呼出し側で、開放してから終了する。       
     356 *  icmp_error -- ICMP エラー送信関数。
     357 *
     358 *    input には IF ヘッダと IP ヘッダも含まれている。
     359 *    icmp_error では、ネットワークバッファ input を返却しないので、
     360 *    呼出し側で、開放してから終了する。
    378361 */
    379362
     
    390373        ip4hl = GET_IP4_HDR_SIZE(ip4h);
    391374
    392         /* 送信用の IP データグラムを獲得する。*/
     375        /* 送信用の IP データグラムを獲得する。*/
    393376        if (input->len - ip4hl < 8)
    394377                len = input->len - ip4hl;
     
    402385                return;
    403386
    404         /* ICMP ヘッダを設定する。*/
     387        /* ICMP ヘッダを設定する。*/
    405388        icmp4h          = GET_ICMP4_HDR(output, IF_IP4_ICMP4_HDR_OFFSET);
    406389        icmp4h->type    = ICMP4_UNREACH;
     
    408391        icmp4h->data.addr= 0;
    409392
    410         /* エラーが発生した IP ヘッダと データ 8 オクテットをコピーする。*/
     393        /* エラーが発生した IP ヘッダと データ 8 オクテットをコピーする。*/
    411394        memcpy(GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET),
    412395               GET_IP4_HDR(input), (size_t)(ip4hl + len));
    413396
    414         /* 4 オクテット境界のデータ長 */
     397        /* 4 オクテット境界のデータ長 */
    415398        align = (len + 3) >> 2 << 2;
    416399
    417         /* 4 オクテット境界までパディングで埋める。*/
     400        /* 4 オクテット境界までパディングで埋める。*/
    418401        if (align > len)
    419402                memset((uint8_t*)GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET) + ip4hl + len,
    420403                       0, (size_t)(align - len));
    421404
    422         /* チェックサムを計算する。*/
     405        /* チェックサムを計算する。*/
    423406        icmp4h->sum = 0;
    424407        icmp4h->sum = in_cksum(icmp4h, (uint_t)(ICMP4_HDR_SIZE + ip4hl + align));
    425408
    426         /* 送信する。*/
     409        /* 送信する。*/
    427410        NET_COUNT_ICMP4(net_count_icmp4.out_octets,
    428411                       output->len - GET_IF_IP4_HDR_SIZE(output));
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_icmp.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8472
    8573/*
    86  *  ICMP ヘッダの定義、RFC 792
     74 *  ICMP ヘッダの定義、RFC 792
    8775 */
    8876
    8977typedef struct t_icmp_hdr {
    90         uint8_t         type;           /* メッセージの型        */
    91         uint8_t         code;           /* サブ型            */
    92         uint16_t        sum;            /* チェックサム           */
     78        uint8_t         type;           /* メッセージの型      */
     79        uint8_t         code;           /* サブ型          */
     80        uint16_t        sum;            /* チェックサム               */
    9381        union {
    9482                struct id_seq {
     
    114102
    115103/*
    116  *  メッセージの型
     104 *  メッセージの型
    117105 */
    118106
    119 #define ICMP4_ECHO_REPLY        UINT_C(0)       /* エコー応答              */
    120 #define ICMP4_UNREACH           UINT_C(3)       /* エラー            */
    121 #define ICMP4_SOURCE_QUENCH     UINT_C(4)       /* 発信制限         */
    122 #define ICMP4_REDIRECT          UINT_C(5)       /* 方向変更         */
    123 #define ICMP4_ECHO_REQUEST      UINT_C(8)       /* エコー要求              */
    124 #define ICMP4_TIME_EXCEEDED     UINT_C(11)      /* 発信制限         */
    125 #define ICMP4_PARAMETER         UINT_C(12)      /* パラメータ異常        */
    126 #define ICMP4_TIME_REQUEST      UINT_C(13)      /* タイムスタンプ要求  */
    127 #define ICMP4_TIME_REPLY        UINT_C(14)      /* タイムスタンプ応答  */
    128 #define ICMP4_MASK_REQUEST      UINT_C(17)      /* アドレスマスク要求  */
    129 #define ICMP4_MASK_REPLY        UINT_C(18)      /* アドレスマスク応答  */
     107#define ICMP4_ECHO_REPLY        UINT_C(0)       /* エコー応答                */
     108#define ICMP4_UNREACH           UINT_C(3)       /* エラー          */
     109#define ICMP4_SOURCE_QUENCH     UINT_C(4)       /* 発信制限         */
     110#define ICMP4_REDIRECT          UINT_C(5)       /* 方向変更         */
     111#define ICMP4_ECHO_REQUEST      UINT_C(8)       /* エコー要求                */
     112#define ICMP4_TIME_EXCEEDED     UINT_C(11)      /* 発信制限         */
     113#define ICMP4_PARAMETER         UINT_C(12)      /* パラメータ異常      */
     114#define ICMP4_TIME_REQUEST      UINT_C(13)      /* タイムスタンプ要求    */
     115#define ICMP4_TIME_REPLY        UINT_C(14)      /* タイムスタンプ応答    */
     116#define ICMP4_MASK_REQUEST      UINT_C(17)      /* アドレスマスク要求    */
     117#define ICMP4_MASK_REPLY        UINT_C(18)      /* アドレスマスク応答    */
    130118
    131119/*
    132  *  サブ型
     120 *  サブ型
    133121 */
    134122
    135123/* ICMP4_UNREACH (3)    */
    136124
    137 #define ICMP4_UNREACH_NET               UINT_C(0)       /* ネットワーク           */
    138 #define ICMP4_UNREACH_HOST              UINT_C(1)       /* ホスト            */
    139 #define ICMP4_UNREACH_PROTOCOL          UINT_C(2)       /* プロトコル              */
    140 #define ICMP4_UNREACH_PORT              UINT_C(3)       /* ポート            */
    141 #define ICMP4_UNREACH_FLAG              UINT_C(4)       /* 分割                       */
    142 #define ICMP4_UNREACH_SRC_FAIL          UINT_C(5)       /* ソース経路              */
    143 #define ICMP4_UNREACH_NET_UNKNOWN       UINT_C(6)       /* ネットワーク不明     */
    144 #define ICMP4_UNREACH_HOST_UNKNOWN      UINT_C(7)       /* ホスト不明              */
    145 #define ICMP4_UNREACH_ISOLATED          UINT_C(8)       /* 分離                       */
     125#define ICMP4_UNREACH_NET               UINT_C(0)       /* ネットワーク               */
     126#define ICMP4_UNREACH_HOST              UINT_C(1)       /* ホスト          */
     127#define ICMP4_UNREACH_PROTOCOL          UINT_C(2)       /* プロトコル                */
     128#define ICMP4_UNREACH_PORT              UINT_C(3)       /* ポート          */
     129#define ICMP4_UNREACH_FLAG              UINT_C(4)       /* 分割                   */
     130#define ICMP4_UNREACH_SRC_FAIL          UINT_C(5)       /* ソース経路                */
     131#define ICMP4_UNREACH_NET_UNKNOWN       UINT_C(6)       /* ネットワーク不明     */
     132#define ICMP4_UNREACH_HOST_UNKNOWN      UINT_C(7)       /* ホスト不明                */
     133#define ICMP4_UNREACH_ISOLATED          UINT_C(8)       /* 分離                   */
    146134#define ICMP4_UNREACH_NET_PROHIB        UINT_C(9)       /*                      */
    147135#define ICMP4_UNREACH_HOST_PROHIB       UINT_C(10)      /*                      */
    148 #define ICMP4_UNREACH_TOS_NET           UINT_C(11)      /* ネットワークへの不正TOS*/
    149 #define ICMP4_UNREACH_TOS_HOST          UINT_C(12)      /* ホストへの不正TOS     */
     136#define ICMP4_UNREACH_TOS_NET           UINT_C(11)      /* ネットワークへの不正TOS*/
     137#define ICMP4_UNREACH_TOS_HOST          UINT_C(12)      /* ホストへの不正TOS   */
    150138#define ICMP4_UNREACH_FILTER_PROHIB     UINT_C(13)      /*                      */
    151139#define ICMP4_UNREACH_HOST_PRECEDENCE   UINT_C(14)      /*                      */
     
    154142/* ICMP4_REDIRECT (5)   */
    155143
    156 #define ICMP4_REDIRECT_NET              UINT_C(0)       /* ネットワーク           */
    157 #define ICMP4_REDIRECT_HOST             UINT_C(1)       /* ホスト            */
    158 #define ICMP4_REDIRECT_PORT_AND_NET     UINT_C(2)       /* ポート番号とネット  */
    159 #define ICMP4_REDIRECT_PORT_AND_HOST    UINT_C(3)       /* ポート番号とホスト  */
     144#define ICMP4_REDIRECT_NET              UINT_C(0)       /* ネットワーク               */
     145#define ICMP4_REDIRECT_HOST             UINT_C(1)       /* ホスト          */
     146#define ICMP4_REDIRECT_PORT_AND_NET     UINT_C(2)       /* ポート番号とネット    */
     147#define ICMP4_REDIRECT_PORT_AND_HOST    UINT_C(3)       /* ポート番号とホスト    */
    160148
    161149/*
    162  *  å
    163 ¨åŸŸå¤‰æ•°
     150 *  全域変数
    164151 */
    165152
    166153/*
    167  *  関数シミュレーションマクロ
     154 *  関数シミュレーションマクロ
    168155 */
    169156
     
    175162
    176163/*
    177  *  関数
     164 *  関数
    178165 */
    179166
     
    187174
    188175/*
    189  *  TINET 独自 API
     176 *  TINET 独自 API
    190177 */
    191178
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_input.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$
     
    136124
    137125/*
    138  *  変数
     126 *  変数
    139127 */
    140128
     
    142130
    143131/*
    144  *  SNMP の 管理æƒ
    145 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     132 *  SNMP の 管理情報ベース (MIB)
    146133 */
    147134
     
    153140
    154141/*
    155  *  データグラム再構成キュー
     142 *  データグラム再構成キュー
    156143 */
    157144
     
    160147
    161148/*
    162  *  関数
     149 *  関数
    163150 */
    164151
     
    167154
    168155/*
    169  *  ip_get_frag_queue -- データグラム再構成キューを獲得する。
     156 *  ip_get_frag_queue -- データグラム再構成キューを獲得する。
    170157 */
    171158
     
    177164
    178165/*
    179  *  ip_freef -- データグラム再構成キューを解放する。
     166 *  ip_freef -- データグラム再構成キューを解放する。
    180167 */
    181168
     
    195182
    196183/*
    197  *  ip_frag_timer -- データグラム再構成管理タイマ
     184 *  ip_frag_timer -- データグラム再構成管理タイマ
    198185 */
    199186
     
    218205
    219206/*
    220  *  ip_reass -- データグラムを再構成する。
     207 *  ip_reass -- データグラムを再構成する。
    221208 */
    222209
     
    242229
    243230        /*
    244          *  ID、IPアドレス、上位プロトコルが異なるフラグメントがキューに有れば破棄する。
     231         *  ID、IPアドレス、上位プロトコルが異なるフラグメントがキューに有れば破棄する。
    245232         */
    246233        frag = ip_frag_queue[ix];
     
    259246                NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN], 1);
    260247
    261                 /* 新規の ID なら、宛å
    262 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’保存して、キューにつなぐ。*/
     248                /* 新規の ID なら、宛先アドレスを保存して、キューにつなぐ。*/
    263249                frag_dst  [ix] = dst;
    264250                ip_frag_queue[ix] = input;
     
    266252                input = NULL;
    267253
    268                 /* 再構成タイムアウトを設定する。*/
     254                /* 再構成タイムアウトを設定する。*/
    269255                ip4h->ttl = IP4_FRAGTTL;
    270256                }
    271257        else {
    272258
    273                 /* 正しい位置に挿å
    274 ¥ã™ã‚‹ã€‚*/
     259                /* 正しい位置に挿入する。*/
    275260                prev = NULL;
    276261                while (frag != NULL &&
     
    289274                input = NULL;
    290275
    291                 /* å
    292 ¨ã¦ã®ãƒ•ãƒ©ã‚°ãƒ¡ãƒ³ãƒˆãŒæƒã£ã¦ã„るか調べる。*/
     276                /* 全てのフラグメントが揃っているか調べる。*/
    293277                off = 0;
    294278                for (frag = ip_frag_queue[ix]; frag != NULL; frag = GET_QIP4_HDR(frag)->next) {
    295279                        if ((IP4_FLGOFF_OFF(GET_QIP4_HDR(frag)->flg_off) << 3) != off) {
    296                                 /* 途中が抜けていたら終了する。*/
     280                                /* 途中が抜けていたら終了する。*/
    297281                                syscall(sig_sem(SEM_IP4_FRAG_QUEUE));
    298282                                return NULL;
     
    302286                        }
    303287
    304                 /* å
    305 ¨ã¦ã®ãƒ•ãƒ©ã‚°ãƒ¡ãƒ³ãƒˆãŒæƒã£ãŸã‚‰å†æ§‹æˆã™ã‚‹ã€‚*/
     288                /* 全てのフラグメントが揃ったら再構成する。*/
    306289                if ((GET_QIP4_HDR(prev)->flg_off & IP4_MF) == 0) {
    307290
    308                         /* ネットワークバッファを獲得する。*/
     291                        /* ネットワークバッファを獲得する。*/
    309292                        if (tget_net_buf(&input, IF_IP4_HDR_SIZE + off, TMO_IP4_FRAG_GET_NET_BUF) == E_OK) {
    310293                                NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN_OK], 1);
    311294                                NET_COUNT_MIB(ip_stats.ipReasmOKs, 1);
    312295
    313                                 /* IPv4 ヘッダを設定する。*/
     296                                /* IPv4 ヘッダを設定する。*/
    314297                                frag  = ip_frag_queue[ix];
    315298                                ip4h  = GET_IP4_HDR(input);
     
    321304                                ip4h->flg_off = ip4h->id = 0;
    322305
    323                                 /* データグラムを再構成する。*/
     306                                /* データグラムを再構成する。*/
    324307                                off = IP4_HDR_SIZE;
    325308                                while (frag != NULL) {
     
    335318                                NET_COUNT_MIB(ip_stats.ipReasmFails, 1);
    336319                                }
    337                         /* キューを空にする。*/
     320                        /* キューを空にする。*/
    338321                        ip_freef(ix);
    339322                        }
     
    346329
    347330/*
    348  *  ip_init -- IP の初期化
     331 *  ip_init -- IP の初期化
    349332 */
    350333
     
    356339
    357340/*
    358  *  ip_remove_options -- IPv4 ヘッダのオプションを削除し、以降を前に詰める。
     341 *  ip_remove_options -- IPv4 ヘッダのオプションを削除し、以降を前に詰める。
    359342 */
    360343
     
    378361
    379362/*
    380  *  ip_input -- IP のå
    381 ¥åŠ›é–¢æ•°
     363 *  ip_input -- IP の入力関数
    382364 */
    383365
    384366#if defined(SUPPORT_IPSEC)
    385367/*
    386  * TODO: IPsec SPを検索し、パケットをリジェクトするかどうか判定する処理を実è£
    387 ã™ã‚‹
     368 * TODO: IPsec SPを検索し、パケットをリジェクトするかどうか判定する処理を実装する
    388369 */
    389370#endif /* of defined(SUPPORT_IPSEC) */
     
    401382        NET_COUNT_MIB(ip_stats.ipInReceives, 1);
    402383
    403         /* IP ヘッダの長さをチェックする。*/
     384        /* IP ヘッダの長さをチェックする。*/
    404385        if (input->len < IF_IP4_HDR_SIZE) {
    405386                NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_SHORT], 1);
     
    411392        hlen = GET_IP4_HDR_SIZE(ip4h);
    412393
    413         /* バージョンをチェックする。*/
     394        /* バージョンをチェックする。*/
    414395        if (IP4_VHL_V(ip4h->vhl) != IPV4_VERSION) {
    415396                NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_VER], 1);
     
    418399                }
    419400
    420         /* IP ヘッダの長さをチェックし、オプションを解析する。*/
     401        /* IP ヘッダの長さをチェックし、オプションを解析する。*/
    421402        if (hlen > IP4_HDR_SIZE) {
    422403                NET_COUNT_IP4(net_count_ip4[NC_IP4_OPTS], 1);
    423                 /* %%% オプションの解析 %%% */
    424                 }
    425 
    426         /* データグラム長をチェックする。*/
     404                /* %%% オプションの解析 %%% */
     405                }
     406
     407        /* データグラム長をチェックする。*/
    427408        if (ntohs(ip4h->len) > input->len - IF_HDR_SIZE) {
    428409                NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_SHORT], 1);
     
    431412                }
    432413
    433         /* ネットワークバッファの長さをデータグラム長に調整する。*/
     414        /* ネットワークバッファの長さをデータグラム長に調整する。*/
    434415        input->len = (uint16_t)(ntohs(ip4h->len) + IF_HDR_SIZE);
    435416
    436         /* チェックサムをチェックする。*/
     417        /* チェックサムをチェックする。*/
    437418        if (in_cksum(ip4h, hlen) != 0) {
    438419                NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_CKSUM], 1);
     
    441422                }
    442423
    443         /* IP ヘッダの長さをチェックし、上位が ICMP 以外はオプションを消去する。*/
     424        /* IP ヘッダの長さをチェックし、上位が ICMP 以外はオプションを消去する。*/
    444425        if (hlen > IP4_HDR_SIZE && ip4h->proto != IPPROTO_ICMP) {
    445426                memset((uint8_t*)ip4h + IP4_HDR_SIZE, 0, hlen - IP4_HDR_SIZE);
    446427                }
    447428
    448         /* 送信å
    449 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’チェックする。*/
     429        /* 送信元アドレスをチェックする。*/
    450430        src = ntohl(ip4h->src);
    451431        bc  = (ifp->in_ifaddr.addr & ifp->in_ifaddr.mask) | ~ifp->in_ifaddr.mask;
     
    469449#endif  /* of #ifdef SUPPORT_LOOP */
    470450
    471         /* あてå
    472 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’チェックする。*/
     451        /* あて先アドレスをチェックする。*/
    473452        dst = ntohl(ip4h->dst);
    474453
     
    476455
    477456        /*
    478          *  DHCP_CFG が定義されているときは、ローカルアドレスが未定義の
    479          *  場合もデータグラムを受信する。
     457         *  DHCP_CFG が定義されているときは、ローカルアドレスが未定義の
     458         *  場合もデータグラムを受信する。
    480459         */
    481460
     
    511490#ifdef IP4_CFG_FRAGMENT
    512491
    513         /* 分割されているかチェックする。*/
     492        /* 分割されているかチェックする。*/
    514493        if (ntohs(ip4h->flg_off) & (IP4_MF | IP4_OFFMASK)) {
    515494                if ((input = ip_reass(ip4h, input)) == NULL)
     
    519498#else   /* of #ifdef IP4_CFG_FRAGMENT */
    520499
    521         /* 分割されているかチェックする。*/
     500        /* 分割されているかチェックする。*/
    522501        if (ntohs(ip4h->flg_off) & (IP4_MF | IP4_OFFMASK)) {
    523502                T_IN4_ADDR      src;
     
    537516
    538517#if defined(SUPPORT_IPSEC)
    539         /* ここでipsec4_in_rejectを実行する */
     518        /* ここでipsec4_in_rejectを実行する */
    540519        if ((ip4h->proto != IPPROTO_ESP) && ipsec4_in_reject (input)) {
    541520                goto buf_rel;
     
    543522#endif /* of #if defined(SUPPORT_IPSEC) */
    544523
    545         /* プロトコルを選択する */
     524        /* プロトコルを選択する */
    546525        switch (ip4h->proto) {
    547526
     
    580559                NET_COUNT_MIB(ip_stats.ipInUnknownProtos, 1);
    581560
    582                 /* ローカル IP アドレスに届いたデータグラムのみ ICMP エラーを通知する。*/
     561                /* ローカル IP アドレスに届いたデータグラムのみ ICMP エラーを通知する。*/
    583562                if (dst == ifp->in_ifaddr.addr) {
    584563                        T_IN4_ADDR      src;
     
    589568                        }
    590569                /*
    591                  *  icmp_error では、ネットワークバッファ input を返却しないので
    592                  *  開放してから終了する。
     570                 *  icmp_error では、ネットワークバッファ input を返却しないので
     571                 *  開放してから終了する。
    593572                 */
    594573                break;
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_output.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    120108
    121109/*
    122  *  IP output -- IP の出力関数
    123  *
    124  *    注意: バージョンとヘッダ長は上位層で設定する。
     110 *  IP output -- IP の出力関数
     111 *
     112 *    注意: バージョンとヘッダ長は上位層で設定する。
    125113 */
    126114
     
    141129
    142130#ifdef SUPPORT_IPSEC
    143         /* XXX: IPsecの処理はパケット断片化の前に行われる */
    144 
    145         /* SPDを取得する */
     131        /* XXX: IPsecの処理はパケット断片化の前に行われる */
     132
     133        /* SPDを取得する */
    146134        sp = ipsec4_getpolicybyaddr(output, IPSEC_DIR_OUTBOUND, &ipsec_error);
    147135        if (sp==NULL) {
     
    150138        }
    151139
    152         /* ポリシをチェックする*/
     140        /* ポリシをチェックする*/
    153141#if 0
    154142        switch (sp->policy) {
     
    162150
    163151        case  IPSEC_POLICY_IPSEC:
    164                 /* XXX: SH2ではここでillegal Instructionが発生する。コンパイラのバグ? */
     152                /* XXX: SH2ではここでillegal Instructionが発生する。コンパイラのバグ? */
    165153                if (sp->req == NULL) {
    166                         /* 鍵交換デーモンに対してSAの取得を要求する */
     154                        /* 鍵交換デーモンに対してSAの取得を要求する */
    167155                        goto bad;
    168156                }
     
    170158
    171159        default:
    172                 /* 不正なポリシ */
     160                /* 不正なポリシ */
    173161                goto bad;
    174162                break;
    175163        }
    176164#else /* 0 */
    177         /* XXX: コンパイラの不å
    178 ·åˆå›žé¿ã®ãŸã‚ switchをやめif文で書き直した */
     165        /* XXX: コンパイラの不具合回避のため switchをやめif文で書き直した */
    179166        policy = sp->spinitb->policy;
    180167
     
    185172        else if (policy == IPSEC_POLICY_IPSEC) {
    186173                if (sp->req == NULL)
    187                         /* 鍵交換デーモンに対してSAの取得を要求する */
     174                        /* 鍵交換デーモンに対してSAの取得を要求する */
    188175                        goto bad;
    189176        } else
     
    196183
    197184                        state.m = output;
    198                         /* XXX: ipsec4_output()å†
    199 ã§ã¯ã€ip->{len,off}をネットワークバイトオーダとする */
     185                        /* XXX: ipsec4_output()内では、ip->{len,off}をネットワークバイトオーダとする */
    200186                        error = ipsec4_output (&state, sp, 0 /* flags */ );
    201187                        output = state.m;
    202188
    203189                        if (error) {
    204                                 /* net_buf はipsec4_outputによって既に解放されている */
     190                                /* net_buf はipsec4_outputによって既に解放されている */
    205191                                switch (error) {
    206192                                default:
     
    210196                }
    211197
    212         /* ipsec4_outputに影響を受けた値を更新する */
    213         /* XXX: å¿
    214 è¦ã‹? */
     198        /* ipsec4_outputに影響を受けた値を更新する */
     199        /* XXX: 必要か? */
    215200
    216201skip_ipsec:
     
    224209
    225210        /*
    226          *  データグラムサイズがネットワークの MTU をè¶
    227 ãˆã¦ã„れば、
    228          *  分割して送信する。
     211         *  データグラムサイズがネットワークの MTU を超えていれば、
     212         *  分割して送信する。
    229213         */
    230214        if (ntohs(ip4h->len) > IF_MTU) {
     
    244228                                flen = len - off;
    245229
    246                         /* データ長は 4 オクテット境界に調整する。    */
     230                        /* データ長は 4 オクテット境界に調整する。        */
    247231                        align = (flen + 3) >> 2 << 2;
    248232
    249                         /* ネットワークバッファを獲得する。*/
     233                        /* ネットワークバッファを獲得する。*/
    250234                        if (tget_net_buf(&frag, align + IF_IP4_HDR_SIZE, TMO_IP4_FRAG_GET_NET_BUF) == E_OK) {
    251235
    252                                 /* フラグメントをコピーする。*/
     236                                /* フラグメントをコピーする。*/
    253237                                memcpy(GET_IP4_SDU(frag), (uint8_t *)ip4h + off, flen);
    254238
    255                                 /* ヘッダを埋める。*/
     239                                /* ヘッダを埋める。*/
    256240                                fip4h           = GET_IP4_HDR(frag);
    257241                                *fip4h          = *ip4h;
     
    276260                                }
    277261                        else {
    278                                 /* 獲得できなければ、送信をあきらめる。*/
     262                                /* 獲得できなければ、送信をあきらめる。*/
    279263                                syscall(rel_net_buf(output));
    280264                                NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
     
    291275        else {
    292276
    293                 /* ヘッダを埋める。*/
     277                /* ヘッダを埋める。*/
    294278                ip4h->id  = htons(frag_id);
    295279                frag_id ++;
     
    309293        ip4h = GET_IP4_HDR(output);
    310294
    311         /* データグラムサイズがネットワークの MTU をè¶
    312 ãˆã¦ã„ればエラー */
     295        /* データグラムサイズがネットワークの MTU を超えていればエラー */
    313296        if (ntohs(ip4h->len) > IF_MTU)
    314297                return E_PAR;
    315298
    316         /* ヘッダを埋める。*/
     299        /* ヘッダを埋める。*/
    317300        ip4h->id  = htons(frag_id);
    318301        frag_id ++;
     
    324307
    325308#ifdef ETHER_CFG_MULTICAST
    326         /* マルチキャストアドレスの場合はIPアドレスはそのまま */
     309        /* マルチキャストアドレスの場合はIPアドレスはそのまま */
    327310        gw = ntohl(ip4h->dst);
    328311        if(!IN4_IS_ADDR_MULTICAST(gw))
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/ip_var.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    8472
    8573/*
    86  *  IPv4 ヘッダ・ペイロードアクセスマクロ
     74 *  IPv4 ヘッダ・ペイロードアクセスマクロ
    8775 */
    8876
     
    9987
    10088/*
    101  *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
     89 *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
    10290 */
    10391
     
    124112
    125113/*
    126  *  IP の MSS サイズのネットワークバッファ
     114 *  IP の MSS サイズのネットワークバッファ
    127115 */
    128116
    129117typedef struct t_net_buf_ip_mss {
    130         uint16_t        len;    /* データの長さ           */
    131         uint8_t         idix;   /* mpfid のインデックス  */
    132         uint8_t         flags;  /* フラグ            */
     118        uint16_t        len;    /* データの長さ               */
     119        uint8_t         idix;   /* mpfid のインデックス        */
     120        uint8_t         flags;  /* フラグ          */
    133121#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    134122        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     
    138126#endif
    139127        uint8_t         buf[IF_HDR_SIZE + IP4_MSS];
    140                                 /* バッファ本体           */
     128                                /* バッファ本体               */
    141129        } T_NET_BUF_IP_MSS;
    142130
    143131/*
    144  *  65536 オクテットサイズのネットワークバッファ
     132 *  65536 オクテットサイズのネットワークバッファ
    145133 */
    146134
    147135typedef struct t_net_buf4_65536 {
    148         uint16_t        len;    /* データの長さ           */
    149         uint8_t         idix;   /* mpfid のインデックス  */
    150         uint8_t         flags;  /* フラグ            */
     136        uint16_t        len;    /* データの長さ               */
     137        uint8_t         idix;   /* mpfid のインデックス        */
     138        uint8_t         flags;  /* フラグ          */
    151139#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    152140        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     
    156144#endif
    157145        uint8_t         buf[IF_IP4_HDR_SIZE + 65536];
    158                                 /* バッファ本体           */
     146                                /* バッファ本体               */
    159147#if defined(IF_PDU_HDR_PADDING)
    160148        uint8_t         padding[IF_PDU_HDR_PADDING];
    161 #endif                          /* ヘッダの余分           */
     149#endif                          /* ヘッダの余分               */
    162150        } T_NET_BUF4_65536;
    163151
     
    165153
    166154/*
    167  *  再構成キュー用 IPv4 ヘッダの定義
     155 *  再構成キュー用 IPv4 ヘッダの定義
    168156 */
    169157
    170158typedef struct t_qip4_hdr {
    171159        uint8_t         vhl;            /* version << 4 | header length >> 2    */
    172                                         /* length は 4 octets 単位           */
     160                                        /* length は 4 octets 単位         */
    173161        uint8_t         type;           /* type of services                     */
    174162        uint16_t        len;            /* total length                         */
     
    183171        uint32_t        src;            /* source address                       */
    184172
    185         T_NET_BUF       *next;          /* 次の IPv4 フラグメント                       */
     173        T_NET_BUF       *next;          /* 次の IPv4 フラグメント                       */
    186174        } __attribute__((packed, aligned(2)))T_QIP4_HDR;
    187175
     
    196184
    197185/*
    198  *  データグラム再構成用ネットワークバッファ
     186 *  データグラム再構成用ネットワークバッファ
    199187 */
    200188
    201189typedef struct t_net_buf4_reassm {
    202         uint16_t        len;    /* データの長さ           */
    203         uint8_t         idix;   /* mpfid のインデックス  */
    204         uint8_t         flags;  /* フラグ            */
     190        uint16_t        len;    /* データの長さ               */
     191        uint8_t         idix;   /* mpfid のインデックス        */
     192        uint8_t         flags;  /* フラグ          */
    205193#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    206194        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     
    210198#endif
    211199        uint8_t         buf[IP4_CFG_FRAG_REASSM_SIZE];
    212                                 /* バッファ本体           */
     200                                /* バッファ本体               */
    213201        } T_NET_BUF4_REASSM;
    214202
     
    216204
    217205/*
    218  *  TCP の再構成キューにおける IPv4 ヘッダの定義
     206 *  TCP の再構成キューにおける IPv4 ヘッダの定義
    219207 */
    220208
    221209typedef struct t_tcp_ip4_q_hdr {
    222210        uint8_t         vhl;            /* version << 4 | header length >> 2    */
    223                                         /* length は 4 octets 単位           */
     211                                        /* length は 4 octets 単位         */
    224212        uint8_t         type;           /* type of services                     */
    225213        uint16_t        len;            /* total length                         */
     
    230218        uint8_t         ttl;            /* time to live                         */
    231219        uint8_t         proto;          /* protocol                             */
    232         uint16_t        thoff;          /* TCP ヘッダのオフセット              */
     220        uint16_t        thoff;          /* TCP ヘッダのオフセット                */
    233221
    234222        T_IN4_ADDR      src;            /* source address                       */
     
    239227
    240228/*
    241  *  SNMP の 管理æƒ
    242 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     229 *  SNMP の 管理情報ベース (MIB)
    243230 */
    244231
     
    282269
    283270/*
    284  *  関数
     271 *  関数
    285272 */
    286273
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  TCP で使用するカーネルオブジェクト
     35 *  TCP で使用するカーネルオブジェクト
    4836 */
    4937
    5038#ifdef SUPPORT_TCP
    5139
    52 /* 出力タスク */
     40/* 出力タスク */
    5341
    5442CRE_TSK(TCP_OUTPUT_TASK, {
     
    6149        });
    6250
    63 /* セマフォ */
     51/* セマフォ */
    6452
    6553CRE_SEM(SEM_TCP_POST_OUTPUT,    { TA_TPRI, 0, 1 });
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8472
    8573/*
    86  *  TCP ヘッダ、RFC 793 参ç
    87 §
     74 *  TCP ヘッダ、RFC 793 参照
    8875 */
    8976
    9077typedef struct t_tcp_hdr {
    91         uint16_t        sport;          /* 送信å
    92 ƒãƒãƒ¼ãƒˆç•ªå·                        */
    93         uint16_t        dport;          /* 宛å
    94 ˆãƒãƒ¼ãƒˆç•ªå·                        */
     78        uint16_t        sport;          /* 送信元ポート番号                     */
     79        uint16_t        dport;          /* 宛先ポート番号                      */
    9580
    96         uint32_t        seq;            /* SEQ 番号                           */
     81        uint32_t        seq;            /* SEQ 番号                               */
    9782
    98         uint32_t        ack;            /* ACK 番号                           */
     83        uint32_t        ack;            /* ACK 番号                               */
    9984
    100         uint8_t         doff;           /* データオフセット(上位4ビット)   */
    101         uint8_t         flags;          /* フラグ(下位6ビット)                  */
    102         uint16_t        win;            /* ウィンドサイズ                        */
     85        uint8_t         doff;           /* データオフセット(上位4ビット)     */
     86        uint8_t         flags;          /* フラグ(下位6ビット)                  */
     87        uint16_t        win;            /* ウィンドサイズ                      */
    10388
    104         uint16_t        sum;            /* チェックサム                           */
    105         uint16_t        urp;            /* 緊急ポインタ                           */
     89        uint16_t        sum;            /* チェックサム                               */
     90        uint16_t        urp;            /* 緊急ポインタ                               */
    10691        } __attribute__((packed, aligned(2)))T_TCP_HDR;
    10792
     
    10994
    11095/*
    111  *  TCP ヘッダ構造体メンバアクセスマクロ
     96 *  TCP ヘッダ構造体メンバアクセスマクロ
    11297 */
    11398
     
    117102
    118103/*
    119  *  TCP ヘッダのフラグフィールドの値の定義
     104 *  TCP ヘッダのフラグフィールドの値の定義
    120105 */
    121106
    122 #define TCP_FLG_FIN             UINT_C(0x01)    /* FIN: 最終                  */
    123 #define TCP_FLG_SYN             UINT_C(0x02)    /* SYN: 同期                  */
    124 #define TCP_FLG_RST             UINT_C(0x04)    /* RST: コネクションのリセット       */
    125 #define TCP_FLG_PUSH            UINT_C(0x08)    /* PUSH:プッシュ機能              */
    126 #define TCP_FLG_ACK             UINT_C(0x10)    /* ACK: 肯定応答            */
    127 #define TCP_FLG_URG             UINT_C(0x20)    /* URG: 緊急æƒ
    128 å ±             */
     107#define TCP_FLG_FIN             UINT_C(0x01)    /* FIN: 最終                      */
     108#define TCP_FLG_SYN             UINT_C(0x02)    /* SYN: 同期                      */
     109#define TCP_FLG_RST             UINT_C(0x04)    /* RST: コネクションのリセット     */
     110#define TCP_FLG_PUSH            UINT_C(0x08)    /* PUSH:プッシュ機能          */
     111#define TCP_FLG_ACK             UINT_C(0x10)    /* ACK: 肯定応答            */
     112#define TCP_FLG_URG             UINT_C(0x20)    /* URG: 緊急情報            */
    129113
    130114/*
    131  *  TCP オプションの定義
     115 *  TCP オプションの定義
    132116 */
    133117
    134 /* オプションの型 */
     118/* オプションの型 */
    135119
    136 #define TCP_OPT_EOL             UINT_C(0)       /* 最終                               */
    137 #define TCP_OPT_NOP             UINT_C(1)       /* 何もしない                      */
    138 #define TCP_OPT_MAXSEG          UINT_C(2)       /* 最大セグメント長             */
    139 #define TCP_OPT_WINDOW          UINT_C(3)       /* ウィンドスケーリング               */
    140 #define TCP_OPT_SACK_PERM       UINT_C(4)       /* 選択 ACK 許可            */
    141 #define TCP_OPT_SACK            UINT_C(5)       /* 選択 ACK                   */
    142 #define TCP_OPT_TIMESTAMP       UINT_C(8)       /* タイムスタンプ                */
    143 #define TCP_OPT_CC              UINT_C(11)      /* 接続カウント                   */
    144 #define TCP_OPT_CCNEW           UINT_C(12)      /* 接続カウント                   */
    145 #define TCP_OPT_CCECHO          UINT_C(13)      /* 接続カウント                   */
     120#define TCP_OPT_EOL             UINT_C(0)       /* 最終                           */
     121#define TCP_OPT_NOP             UINT_C(1)       /* 何もしない                        */
     122#define TCP_OPT_MAXSEG          UINT_C(2)       /* 最大セグメント長             */
     123#define TCP_OPT_WINDOW          UINT_C(3)       /* ウィンドスケーリング           */
     124#define TCP_OPT_SACK_PERM       UINT_C(4)       /* 選択 ACK 許可            */
     125#define TCP_OPT_SACK            UINT_C(5)       /* 選択 ACK                       */
     126#define TCP_OPT_TIMESTAMP       UINT_C(8)       /* タイムスタンプ              */
     127#define TCP_OPT_CC              UINT_C(11)      /* 接続カウント                       */
     128#define TCP_OPT_CCNEW           UINT_C(12)      /* 接続カウント                       */
     129#define TCP_OPT_CCECHO          UINT_C(13)      /* 接続カウント                       */
    146130
    147 /* オプションの長さ */
     131/* オプションの長さ */
    148132
    149 #define TCP_OPT_LEN_MAXSEG      4               /* 最大セグメント長             */
    150 #define TCP_OPT_LEN_WINDOW      3               /* ウィンドスケーリング               */
    151 #define TCP_OPT_LEN_SACK_PERM   4               /* 選択 ACK 許可            */
    152 #define TCP_OPT_LEN_SACK        5               /* 選択 ACK                   */
    153 #define TCP_OPT_LEN_TIMESTAMP   10              /* タイムスタンプ                */
    154 #define TCP_OPT_LEN_CC          6               /* 接続カウント                   */
    155 #define TCP_OPT_LEN_CCNEW       6               /* 接続カウント                   */
    156 #define TCP_OPT_LEN_CCECHO      6               /* 接続カウント                   */
     133#define TCP_OPT_LEN_MAXSEG      4               /* 最大セグメント長             */
     134#define TCP_OPT_LEN_WINDOW      3               /* ウィンドスケーリング           */
     135#define TCP_OPT_LEN_SACK_PERM   4               /* 選択 ACK 許可            */
     136#define TCP_OPT_LEN_SACK        5               /* 選択 ACK                       */
     137#define TCP_OPT_LEN_TIMESTAMP   10              /* タイムスタンプ              */
     138#define TCP_OPT_LEN_CC          6               /* 接続カウント                       */
     139#define TCP_OPT_LEN_CCNEW       6               /* 接続カウント                       */
     140#define TCP_OPT_LEN_CCECHO      6               /* 接続カウント                       */
    157141
    158142/*
    159  *  TCP 最大セグメントサイズ
     143 *  TCP 最大セグメントサイズ
    160144 */
    161145
    162146/*
    163  *  IPv4 の TCP 最大セグメントサイズ
    164  *  IP4_MSS は 576 で、標準の IPv4 ヘッダ長 (20) と
    165  *  TCP ヘッダ長 (20) を引いた値 536 であるが、512 を標準とする。
     147 *  IPv4 の TCP 最大セグメントサイズ
     148 *  IP4_MSS は 576 で、標準の IPv4 ヘッダ長 (20) と
     149 *  TCP ヘッダ長 (20) を引いた値 536 であるが、512 を標準とする。
    166150 */
    167151
     
    169153
    170154/*
    171  *  IPv6 の TCP 最大セグメントサイズ
    172  *  IPV6_MMTU は 1280 で、標準の IPv6 ヘッダ長 (40) と
    173  *  TCP ヘッダ長 (20) を引いた値 1220 であるが、1024 を標準とする。
     155 *  IPv6 の TCP 最大セグメントサイズ
     156 *  IPV6_MMTU は 1280 で、標準の IPv6 ヘッダ長 (40) と
     157 *  TCP ヘッダ長 (20) を引いた値 1220 であるが、1024 を標準とする。
    174158 */
    175159
     
    177161
    178162/*
    179  *  TCP 最小セグメントサイズ
     163 *  TCP 最小セグメントサイズ
    180164 *
    181  *  256(最小リンク MTU)- 40 = 216
     165 *  256(最小リンク MTU)- 40 = 216
    182166 */
    183167
     
    185169
    186170/*
    187  *  TCP 最大ウィンドウサイズ
     171 *  TCP 最大ウィンドウサイズ
    188172 */
    189173
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_fsm.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8472
    8573/*
    86  *  TCP FSM 状æ
    87 ‹ã®å®šç¾©ã€RFC 793 参ç
    88 §
     74 *  TCP FSM 状態の定義、RFC 793 参照
    8975 */
    9076
    91 #define TCP_FSM_CLOSED          0       /* クローズ                         */
    92 #define TCP_FSM_LISTEN          1       /* 受動オープン                           */
    93 #define TCP_FSM_SYN_SENT        2       /* 能動オープン、SYN 送信済み                */
    94 #define TCP_FSM_SYN_RECVD       3       /* 受動オープン、SYN 受信済み                */
    95 #define TCP_FSM_ESTABLISHED     4       /* コネクション開設完了                       */
    96 #define TCP_FSM_CLOSE_WAIT      5       /* 相手から FIN 受信、APP の終了å¾
    97 ã¡     */
    98 #define TCP_FSM_FIN_WAIT_1      6       /* APP が終了、FIN 送信済み、ACK å¾
    99 ã¡     */
    100 #define TCP_FSM_CLOSING         7       /* 同時クローズ、FIN 交換済み、ACK å¾
    101 ã¡     */
    102 #define TCP_FSM_LAST_ACK        8       /* APP が終了、ACK å¾
    103 ã¡                     */
    104 #define TCP_FSM_FIN_WAIT_2      9       /* 相手からの FIN å¾
    105 ã¡                     */
    106 #define TCP_FSM_TIME_WAIT       10      /* 相手からの FIN 受信済み、時間å¾
    107 ã¡     */
     77#define TCP_FSM_CLOSED          0       /* クローズ                         */
     78#define TCP_FSM_LISTEN          1       /* 受動オープン                               */
     79#define TCP_FSM_SYN_SENT        2       /* 能動オープン、SYN 送信済み              */
     80#define TCP_FSM_SYN_RECVD       3       /* 受動オープン、SYN 受信済み              */
     81#define TCP_FSM_ESTABLISHED     4       /* コネクション開設完了                   */
     82#define TCP_FSM_CLOSE_WAIT      5       /* 相手から FIN 受信、APP の終了待ち        */
     83#define TCP_FSM_FIN_WAIT_1      6       /* APP が終了、FIN 送信済み、ACK 待ち      */
     84#define TCP_FSM_CLOSING         7       /* 同時クローズ、FIN 交換済み、ACK 待ち       */
     85#define TCP_FSM_LAST_ACK        8       /* APP が終了、ACK 待ち                       */
     86#define TCP_FSM_FIN_WAIT_2      9       /* 相手からの FIN 待ち                 */
     87#define TCP_FSM_TIME_WAIT       10      /* 相手からの FIN 受信済み、時間待ち  */
    10888
    10989/*
    110  *  関数シミュレーションマクロ
     90 *  関数シミュレーションマクロ
    11191 */
    11292
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_input.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$
     
    132120
    133121/*
    134  *  戻り値
     122 *  戻り値
    135123 *
    136  *      RET_OK          正常
    137  *      RET_DROP        エラー、セグメントを破棄する。
    138  *      RET_RST_DROP    エラー、RST を送信し、セグメントを破棄する。
     124 *      RET_OK          正常
     125 *      RET_DROP        エラー、セグメントを破棄する。
     126 *      RET_RST_DROP    エラー、RST を送信し、セグメントを破棄する。
    139127 */
    140128
     
    146134
    147135/*
    148  *  関数
     136 *  関数
    149137 */
    150138
     
    165153
    166154/*
    167  *  タスクからの Time Wait 状æ
    168 ‹ CEP 分離機能
    169  */
    170 
    171 /*
    172  *  関数
     155 *  タスクからの Time Wait 状態 CEP 分離機能
     156 */
     157
     158/*
     159 *  関数
    173160 */
    174161
     
    177164
    178165/*
    179  *  変数
     166 *  変数
    180167 */
    181168
     
    183170
    184171/*
    185  *  tcp_find_twcep -- ポート番号から Time Wait 用 TCP 通信端点を得る。
     172 *  tcp_find_twcep -- ポート番号から Time Wait 用 TCP 通信端点を得る。
    186173 *
    187  *    注意: dstaddr は、ネットワークバイトオーダ
     174 *    注意: dstaddr は、ネットワークバイトオーダ
    188175 */
    189176
     
    194181       
    195182        /*
    196          *  状æ
    197 ‹ãŒ TIME WAIT で、
    198          *  IP アドレスとポート番号が一致する通信端点を探索する。
     183         *  状態が TIME WAIT で、
     184         *  IP アドレスとポート番号が一致する通信端点を探索する。
    199185         */
    200186        for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; ) {
     
    211197
    212198/*
    213  *  å¿
    214 è¦ãªæƒ
    215 å ±ã‚’ Time Wait 用 TCP 通信端点に移して、
    216  *  標準の TCP 通信端点を開放する。
     199 *  必要な情報を Time Wait 用 TCP 通信端点に移して、
     200 *  標準の TCP 通信端点を開放する。
    217201 */
    218202
     
    222206        T_TCP_TWCEP*    twcep;
    223207
    224         /* 空きの Time Wait 用 TCP 通信端点を探索する。*/
     208        /* 空きの Time Wait 用 TCP 通信端点を探索する。*/
    225209        for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; ) {
    226210                if (twcep->fsm_state != TCP_FSM_TIME_WAIT) {
    227211
    228212                        /*
    229                          *  通信端点をロックし、
    230                          *  å¿
    231 è¦ãªæƒ
    232 å ±ã‚’ Time Wait 用 TCP 通信端点に移す。
     213                         *  通信端点をロックし、
     214                         *  必要な情報を Time Wait 用 TCP 通信端点に移す。
    233215                         */
    234216                        syscall(wai_sem(cep->semid_lock));
     
    242224                        twcep->timer_2msl       = cep->timer[TCP_TIM_2MSL];
    243225
    244                         /* 通信端点をロックを解除する。*/
     226                        /* 通信端点をロックを解除する。*/
    245227                        syscall(sig_sem(cep->semid_lock));
    246228
    247                         /* 標準 TCP 通信端点を開放する。*/
     229                        /* 標準 TCP 通信端点を開放する。*/
    248230                        tcp_close(cep);
    249231
     
    256238
    257239/*
    258  *  parse_option -- TCP ヘッダのオプションを解析する。
     240 *  parse_option -- TCP ヘッダのオプションを解析する。
    259241 */
    260242
     
    311293
    312294/*
    313  *  set_rexmt_timer -- 新しい往復時間を収集し、再送タイマを更新する。
     295 *  set_rexmt_timer -- 新しい往復時間を収集し、再送タイマを更新する。
    314296 */
    315297
     
    322304        if (cep->srtt != 0) {
    323305                /*
    324                  *  srtt: 平滑化された RTT
     306                 *  srtt: 平滑化された RTT
    325307                 *
    326                  *  計測された RTT (rtt) と現在の平滑化された RTT (srtt) の差 (delta) を求める。
     308                 *  計測された RTT (rtt) と現在の平滑化された RTT (srtt) の差 (delta) を求める。
    327309                 *
    328                  *  delta は 2 ビット左シフト ( 4 倍) した値で保持する。
    329                  *  srtt  は 5 ビット左シフト (32 倍) した値で保持されている。
     310                 *  delta は 2 ビット左シフト ( 4 倍) した値で保持する。
     311                 *  srtt  は 5 ビット左シフト (32 倍) した値で保持されている。
    330312                 *
    331313                 *    delta = rtt / 8 - srtt / 8
    332314                 *
    333                  *  新しい srtt は
     315                 *  新しい srtt は
    334316                 *
    335317                 *    srtt = rtt / 8 + srtt * 7 / 8
    336318                 *         = srtt + (rtt / 8 - srtt / 8)
    337319                 *
    338                  *  で計算する。
    339                  *  このため、rtt を 2 ビット左シフトし、srtt を (5 - 2) ビット右シフトして delta を求める。
     320                 *  で計算する。
     321                 *  このため、rtt を 2 ビット左シフトし、srtt を (5 - 2) ビット右シフトして delta を求める。
    340322                 */
    341323                delta = ((rtt - 1) << TCP_DELTA_SHIFT) - (cep->srtt >> (TCP_SRTT_SHIFT - TCP_DELTA_SHIFT));
     
    345327
    346328                /*
    347                  *  delta の絶対値 | delta | を求める。
     329                 *  delta の絶対値 | delta | を求める。
    348330                 */
    349331                if (delta < 0)
     
    351333
    352334                /*
    353                  *  rttvar: 平滑化された分散
     335                 *  rttvar: 平滑化された分散
    354336                 *
    355                  *  rttvar は 4 ビット左シフト (16 倍) した値で保持されている。
     337                 *  rttvar は 4 ビット左シフト (16 倍) した値で保持されている。
    356338                 *
    357339                 *    delta = |delta| / 4 - rttvar / 4
    358340                 *
    359                  *  新しい rttvar は
     341                 *  新しい rttvar は
    360342                 *
    361343                 *    rttvar = |delta|/ 4 + rttvar * 3 /4
    362344                 *           = rttvar + (|delta| / 4 - rttvar / 4)
    363345                 *
    364                  *  で計算する。
     346                 *  で計算する。
    365347                 */
    366348                delta -= cep->rttvar >> (TCP_RTTVAR_SHIFT - TCP_DELTA_SHIFT);
     
    371353        else {
    372354                /*
    373                  *  まだ srtt の設定が行われていないときは、今回計測された RTT を使用する。
    374                  *  平滑化された RTT (srtt) には、RTT を 5 ビット左シフト (32倍) した値。
    375                  *  平滑化された分散 (rttvar) には、RTT の 1/2 を 4 ビット左シフト (16倍) した値。
     355                 *  まだ srtt の設定が行われていないときは、今回計測された RTT を使用する。
     356                 *  平滑化された RTT (srtt) には、RTT を 5 ビット左シフト (32倍) した値。
     357                 *  平滑化された分散 (rttvar) には、RTT の 1/2 を 4 ビット左シフト (16倍) した値。
    376358                 */
    377359                cep->srtt   = rtt <<  TCP_SRTT_SHIFT;
     
    380362
    381363        /*
    382          *  rtt の測定を終了し、再送回数をリセットする。
     364         *  rtt の測定を終了し、再送回数をリセットする。
    383365         */
    384366        cep->rtt = cep->rxtshift = 0;
    385367
    386368        /*
    387          *  RTT に許される最小値 と rtt + 2 の大きな値の方を再送タイムアウトの最小値にする。
     369         *  RTT に許される最小値 と rtt + 2 の大きな値の方を再送タイムアウトの最小値にする。
    388370         */
    389371        if (rtt + 2 < TCP_TVAL_MIN)
     
    398380
    399381/*
    400  *  reassemble -- 受信セグメントを再構成する。順番通りに受信したときの処理
     382 *  reassemble -- 受信セグメントを再構成する。順番通りに受信したときの処理
    401383 */
    402384
     
    410392        if (tcph->sum > cep->rbufsz - cep->rwbuf_count) {
    411393                /*
    412                  *  受信ウィンドバッファに空きがないときは破棄する。
     394                 *  受信ウィンドバッファに空きがないときは破棄する。
    413395                 */
    414396                NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DROP_SEGS], 1);
     
    421403                 cep->fsm_state == TCP_FSM_ESTABLISHED) {
    422404                /*
    423                  *  順番通りにセグメントを受信した時の処理
    424                  *  受信セグメントの並べ替えは不要なので
    425                  *  そのまま受信ウィンドバッファに書き込む。
     405                 *  順番通りにセグメントを受信した時の処理
     406                 *  受信セグメントの並べ替えは不要なので
     407                 *  そのまま受信ウィンドバッファに書き込む。
    426408                 */
    427409
     
    438420                qhdr = GET_TCP_Q_HDR(input, thoff);
    439421
    440                 /*  TCP ヘッダの位置を保存する。*/
     422                /*  TCP ヘッダの位置を保存する。*/
    441423                GET_TCP_IP_Q_HDR(input)->thoff = thoff;
    442424
    443                 /* SDU のオフセット(å
    444 ƒã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚µã‚¤ã‚ºï¼‰ã‚’リセットする。*/
     425                /* SDU のオフセット(元はウィンドサイズ)をリセットする。*/
    445426                qhdr->soff = 0;
    446427
    447                 /* データを受信ウィンドバッファに書き込む。*/
     428                /* データを受信ウィンドバッファに書き込む。*/
    448429                TCP_WRITE_RWBUF(cep, input, thoff);
    449430                }
     
    456437
    457438/*
    458  *  listening -- 受動オープンして,状æ
    459 ‹ãŒ LISTEN の処理
     439 *  listening -- 受動オープンして,状態が LISTEN の処理
    460440 *
    461  *    戻り値:
    462  *      RET_OK          正常
    463  *      RET_DROP        エラー、セグメントを破棄する。
    464  *      RET_RST_DROP    エラー、RST を送信し、セグメントを破棄する。
     441 *    戻り値:
     442 *      RET_OK          正常
     443 *      RET_DROP        エラー、セグメントを破棄する。
     444 *      RET_RST_DROP    エラー、RST を送信し、セグメントを破棄する。
    465445 */
    466446
     
    475455
    476456        /*
    477          *  フラグに RST がセットされていれば破棄する。
     457         *  フラグに RST がセットされていれば破棄する。
    478458         */
    479459        if (tcph->flags & TCP_FLG_RST)
     
    481461
    482462        /* 
    483          *  フラグに ACK がセットさてれいれば、
    484          *  リセットを送って破棄する。
     463         *  フラグに ACK がセットさてれいれば、
     464         *  リセットを送って破棄する。
    485465         */
    486466        if (tcph->flags & TCP_FLG_ACK)
     
    488468
    489469        /*
    490          *  フラグに SYN がセットされていなければれば破棄する。
     470         *  フラグに SYN がセットされていなければれば破棄する。
    491471         */
    492472        if ((tcph->flags & TCP_FLG_SYN) == 0)
     
    498478
    499479        /*
    500          *  次のときは破棄する。
    501          *    ・ポート番号が同一で、送受信 IP アドレス が同一。
    502          *      ただし、ローカルループバック (127.0.0.1) なら良い。
    503          *    ・マルチキャストアドレス
     480         *  次のときは破棄する。
     481         *    ・ポート番号が同一で、送受信 IP アドレス が同一。
     482         *      ただし、ローカルループバック (127.0.0.1) なら良い。
     483         *    ・マルチキャストアドレス
    504484         */
    505485
     
    511491
    512492        /*
    513          *  次のときは破棄する。
    514          *    ・ポート番号が同一で、送受信 IP アドレス が同一。
    515          *    ・マルチキャストアドレス
     493         *  次のときは破棄する。
     494         *    ・ポート番号が同一で、送受信 IP アドレス が同一。
     495         *    ・マルチキャストアドレス
    516496         */
    517497
     
    526506
    527507        /*
    528          *  次のときは破棄する。
    529          *    ・ポート番号が同一で、送受信 IP アドレス が同一。
    530          *    ・マルチキャストアドレス
     508         *  次のときは破棄する。
     509         *    ・ポート番号が同一で、送受信 IP アドレス が同一。
     510         *    ・マルチキャストアドレス
    531511         */
    532512
     
    539519                return RET_DROP;
    540520
    541         /* 相手のアドレスを記録する。*/
     521        /* 相手のアドレスを記録する。*/
    542522        IN_COPY_TO_HOST(&cep->dstaddr.ipaddr, &iph->src);
    543523        cep->dstaddr.portno = tcph->sport;
    544524
    545         /* オプションを処理する。*/
     525        /* オプションを処理する。*/
    546526        parse_option(tcph, cep);
    547527
    548         /* シーケンス番号を初期化する。*/
     528        /* シーケンス番号を初期化する。*/
    549529        if (tcp_iss == 0)
    550530                tcp_init_iss();
    551531
    552         /* 自分のシーケンス番号の初期値を記録する。*/
     532        /* 自分のシーケンス番号の初期値を記録する。*/
    553533        if (iss != 0)
    554534                cep->iss = iss;
     
    558538        tcp_iss += TCP_ISS_INCR() / 4;
    559539
    560         /* 相手のシーケンス番号の初期値を記録する。*/
     540        /* 相手のシーケンス番号の初期値を記録する。*/
    561541        cep->irs = tcph->seq;
    562542
    563         /* 送受信シーケンス番号を初期化する。*/
     543        /* 送受信シーケンス番号を初期化する。*/
    564544        init_send_seq(cep);
    565545        init_receive_seq(cep);
    566546
    567         /* 送信ウインドサイズを設定する。*/
     547        /* 送信ウインドサイズを設定する。*/
    568548        cep->snd_wnd = tcph->win;
    569549
    570         /* 最終設定 */
     550        /* 最終設定 */
    571551        cep->flags    |= TCP_CEP_FLG_ACK_NOW;
    572552        cep->fsm_state = TCP_FSM_SYN_RECVD;
     
    577557
    578558/*
    579  *  syn_sent -- 能動オープンして、状æ
    580 ‹ãŒ SYN 送信済の処理
     559 *  syn_sent -- 能動オープンして、状態が SYN 送信済の処理
    581560 *
    582  *    戻り値:
    583  *      RET_OK          正常
    584  *      RET_DROP        エラー、セグメントを破棄する。
    585  *      RET_RST_DROP    エラー、RST を送信し、セグメントを破棄する。
     561 *    戻り値:
     562 *      RET_OK          正常
     563 *      RET_DROP        エラー、セグメントを破棄する。
     564 *      RET_RST_DROP    エラー、RST を送信し、セグメントを破棄する。
    586565 */
    587566
     
    592571
    593572        /*
    594          *  相手から受信確認が送られて来ても、
     573         *  相手から受信確認が送られて来ても、
    595574         *
    596          *    ACK <= iss && 送信した最大 SEQ (snd_max) < ACK
     575         *    ACK <= iss && 送信した最大 SEQ (snd_max) < ACK
    597576         *
    598          *  なら、リセットを送ってセグメントを破棄する。
     577         *  なら、リセットを送ってセグメントを破棄する。
    599578         */
    600579        if ((tcph->flags & TCP_FLG_ACK) &&
     
    603582
    604583        /*
    605          *  RST/ACK フラグの応答があれば、ポートが開いていない
    606          *  ことを意味している。
     584         *  RST/ACK フラグの応答があれば、ポートが開いていない
     585         *  ことを意味している。
    607586         */
    608587        if (tcph->flags & TCP_FLG_RST) {
     
    615594
    616595        /*
    617          *  SYN フラグがなければセグメントを破棄する。
     596         *  SYN フラグがなければセグメントを破棄する。
    618597         */
    619598        if ((tcph->flags & TCP_FLG_SYN) == 0)
    620599                return RET_DROP;
    621600
    622         cep->snd_wnd = tcph->win;       /* snd_wnd: 相手の受信可能ウィンドサイズ  */
    623         cep->irs     = tcph->seq;       /* irs:     ç›¸æ‰‹ã®ã‚·ãƒ¼ã‚±ãƒ³ã‚¹ç•ªå·ã®åˆæœŸå€¤  */
    624         init_receive_seq(cep);          /* 送受信シーケンス番号を初期化する。          */
     601        cep->snd_wnd = tcph->win;       /* snd_wnd: 相手の受信可能ウィンドサイズ      */
     602        cep->irs     = tcph->seq;       /* irs:     相手のシーケンス番号の初期値      */
     603        init_receive_seq(cep);          /* 送受信シーケンス番号を初期化する。            */
    625604
    626605        if (tcph->flags & TCP_FLG_ACK) {
    627606                /*
    628                  *  ACK フラグがあるときの処理
     607                 *  ACK フラグがあるときの処理
    629608                 *
    630                  *  受信を期å¾
    631 ã—ている最大の SEQ (rcv_adv) を
    632                  *  受信可能なウィンドサイズ (rcv_wnd) 分進める。
    633                  */
    634                 cep->rcv_adv += cep->rcv_wnd;   /* rcv_adv: 受信を期å¾
    635 ã—ている最大の SEQ       */
    636                                                 /* rcv_wnd: 受信可能なウィンドサイズ                */
    637 
    638                 /* 未確認の最小送信 SEQ (snd_una) を SYN 分 (1 オクテット) 進める。*/
     609                 *  受信を期待している最大の SEQ (rcv_adv) を
     610                 *  受信可能なウィンドサイズ (rcv_wnd) 分進める。
     611                 */
     612                cep->rcv_adv += cep->rcv_wnd;   /* rcv_adv: 受信を期待している最大の SEQ    */
     613                                                /* rcv_wnd: 受信可能なウィンドサイズ                */
     614
     615                /* 未確認の最小送信 SEQ (snd_una) を SYN 分 (1 オクテット) 進める。*/
    639616                cep->snd_una ++;
    640617
    641618#ifdef TCP_CFG_DELAY_ACK
    642619
    643                 if (tcph->sum != 0)             /* tcph->sum は SDU 長 */
     620                if (tcph->sum != 0)             /* tcph->sum は SDU 長 */
    644621                        cep->flags |= TCP_CEP_FLG_DEL_ACK;
    645622                else
     
    654631                if (cep->flags & TCP_CEP_FLG_NEED_FIN) {
    655632                        /*
    656                          *  CEP で FIN 送信が要求されていれば、
    657                          *  切断処理を開始し、
    658                          *  CEP の状æ
    659 ‹ã‚’ FIN Wait 1 にする。
     633                         *  CEP で FIN 送信が要求されていれば、
     634                         *  切断処理を開始し、
     635                         *  CEP の状態を FIN Wait 1 にする。
    660636                         */
    661637                        cep->fsm_state = TCP_FSM_FIN_WAIT_1;
     
    665641                else {
    666642                        /*
    667                          *  相手から ACK が応答されたので、
    668                          *  CEP の状æ
    669 ‹ã‚’ コネクション開設完了状æ
    670 ‹ã«ã™ã‚‹ã€‚
     643                         *  相手から ACK が応答されたので、
     644                         *  CEP の状態を コネクション開設完了状態にする。
    671645                         */
    672646                        cep->timer[TCP_TIM_KEEP] = TCP_TVAL_KEEP_IDLE;
     
    679653                        if (cep->snd_nblk_tfn == TFN_TCP_CON_CEP) {
    680654
    681                                 /* 相手のアドレスをコピーする。*/
     655                                /* 相手のアドレスをコピーする。*/
    682656                                *cep->p_dstaddr = cep->dstaddr;
    683657
     
    715689                }
    716690        else {
    717                 /* ACK フラグがないときは、ACK を送って、CEP の状æ
    718 ‹ã‚’ SYN 受信済みにする。*/
     691                /* ACK フラグがないときは、ACK を送って、CEP の状態を SYN 受信済みにする。*/
    719692                cep->flags |= TCP_CEP_FLG_ACK_NOW;
    720693                cep->timer[TCP_TIM_REXMT] = 0;
     
    726699
    727700/*
    728  *  trim_length -- 受信した SDU 長を調整する。
     701 *  trim_length -- 受信した SDU 長を調整する。
    729702 */
    730703
     
    733706{
    734707        tcph->seq ++;
    735         if (tcph->sum > cep->rcv_wnd) {         /* 注意: tcph->sum は SDU 長 */
    736                 /*
    737                  *  SDU 長が受信ウィンドサイズより大きいときは、受信ウィンドサイズ以降は
    738                  *  破棄し、FIN に応答しないことで、破棄したデータを再送させる。
     708        if (tcph->sum > cep->rcv_wnd) {         /* 注意: tcph->sum は SDU 長 */
     709                /*
     710                 *  SDU 長が受信ウィンドサイズより大きいときは、受信ウィンドサイズ以降は
     711                 *  破棄し、FIN に応答しないことで、破棄したデータを再送させる。
    739712                 */
    740713                tcph->sum    = (uint16_t)cep->rcv_wnd;
    741714                tcph->flags &= ~TCP_FLG_FIN;
    742715                }
    743         cep->snd_wl1 = tcph->seq - 1;           /* cep->snd_wl1: ウィンド更新 SEQ 番号  */
     716        cep->snd_wl1 = tcph->seq - 1;           /* cep->snd_wl1: ウィンド更新 SEQ 番号  */
    744717
    745718#ifdef TCP_CFG_EXTENTIONS
    746         cep->rcv_up  = tcph->seq;               /* cep->rcv_up : 受信した緊急ポインタ */
     719        cep->rcv_up  = tcph->seq;               /* cep->rcv_up : 受信した緊急ポインタ     */
    747720#endif
    748721        }
    749722
    750723/*
    751  *  proc_ack2 -- ACK の処理 (2)
     724 *  proc_ack2 -- ACK の処理 (2)
    752725 *
    753  *    戻り値
     726 *    戻り値
    754727 *
    755  *      RET_OK          正常
    756  *      RET_RETURN      正常、リターンする。
    757  *      RET_DROP        エラー、セグメントを破棄する。
    758  *      RET_RST_DROP    エラー、RST を送信し、セグメントを破棄する。
     728 *      RET_OK          正常
     729 *      RET_RETURN      正常、リターンする。
     730 *      RET_DROP        エラー、セグメントを破棄する。
     731 *      RET_RST_DROP    エラー、RST を送信し、セグメントを破棄する。
    759732 */
    760733
     
    770743
    771744        /*
    772          *  相手に受信確認された ACK から、まだ確認されていない
    773          *  最小送信 SEQ (snd_una) を引くと、送信ウィンドバッファから
    774          *  削除してよいオクテット数 (acked) になる。
     745         *  相手に受信確認された ACK から、まだ確認されていない
     746         *  最小送信 SEQ (snd_una) を引くと、送信ウィンドバッファから
     747         *  削除してよいオクテット数 (acked) になる。
    775748         */
    776749        acked = tcph->ack - cep->snd_una;
     
    778751
    779752        /*
    780          *  往復時間計測 (rtt) が設定されていて、計測開始 SEQ より
    781          *  後の ACK を受信したら、タイマバックオフをキャンセルし、
    782          *  再送タイマを再設定する。
     753         *  往復時間計測 (rtt) が設定されていて、計測開始 SEQ より
     754         *  後の ACK を受信したら、タイマバックオフをキャンセルし、
     755         *  再送タイマを再設定する。
    783756         */
    784757        if (cep->rtt && SEQ_GT(tcph->ack, cep->rtseq)) {
     
    787760
    788761        /*
    789          *  å
    790 ¨ã¦ã®æœªç¢ºèªãƒ‡ãƒ¼ã‚¿ãŒ ACK されたら、再送タイマを停止し、
    791          *  再開を記憶する (さらに出力か持続)。
    792          *  もし、ACK すべき、さらに多くのデータがあるなら、再送タイマに
    793          *  現在の再送タイムアウトを設定する。
    794          */
    795         if (tcph->ack == cep->snd_max) {        /* cep->snd_max: 送信した最大 SEQ */
     762         *  全ての未確認データが ACK されたら、再送タイマを停止し、
     763         *  再開を記憶する (さらに出力か持続)。
     764         *  もし、ACK すべき、さらに多くのデータがあるなら、再送タイマに
     765         *  現在の再送タイムアウトを設定する。
     766         */
     767        if (tcph->ack == cep->snd_max) {        /* cep->snd_max: 送信した最大 SEQ */
    796768
    797769#ifdef TCP_CFG_SWBUF_CSAVE
    798770
    799771                /*
    800                  * 送信ウィンドバッファの省コピー機能が有効の場合は、
    801                  * 送信済みで、ACKが完了するまで再送タイマを変更しない。
     772                 * 送信ウィンドバッファの省コピー機能が有効の場合は、
     773                 * 送信済みで、ACKが完了するまで再送タイマを変更しない。
    802774                 */
    803775                if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_ACKED)
     
    813785                }
    814786        else if (cep->timer[TCP_TIM_PERSIST] == 0) {
    815                 cep->timer[TCP_TIM_REXMT] = cep->rxtcur;        /* cep->rxtcur: 現在の再送タイムアウト */
    816                 }
    817 
    818         /* 相手が受信確認したデータがあるときの処理 */
     787                cep->timer[TCP_TIM_REXMT] = cep->rxtcur;        /* cep->rxtcur: 現在の再送タイムアウト */
     788                }
     789
     790        /* 相手が受信確認したデータがあるときの処理 */
    819791        if (acked) {
    820                 uint32_t cw   = cep->snd_cwnd;  /* cep->snd_cwnd: 輻輳ウィンドサイズ   */
    821                 uint32_t incr = cep->maxseg;            /* cep->maxseg:   æœ€å¤§ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚µã‚¤ã‚º        */
    822 
    823                 /*
    824                  *  新たに相手が受信確認したデータがあったときは、
    825                  *  輻輳ウィンドサイズを大きくする。
    826                  *  輻輳ウィンドサイズ (snd_cwnd) が
    827                  *  輻輳ウィンドサイズのしきい値 (snd_ssthresh) より大きいときは
    828                  *  輻輳回避制御を行い。
     792                uint32_t cw   = cep->snd_cwnd;  /* cep->snd_cwnd: 輻輳ウィンドサイズ     */
     793                uint32_t incr = cep->maxseg;            /* cep->maxseg:   最大セグメントサイズ    */
     794
     795                /*
     796                 *  新たに相手が受信確認したデータがあったときは、
     797                 *  輻輳ウィンドサイズを大きくする。
     798                 *  輻輳ウィンドサイズ (snd_cwnd) が
     799                 *  輻輳ウィンドサイズのしきい値 (snd_ssthresh) より大きいときは
     800                 *  輻輳回避制御を行い。
    829801                 *
    830802                 *    snd_cwnd = snd_cwnd + maxseg * maxseg / snd_cwnd;
    831803                 *
    832                  *  等しいか小さいときは、スロースタート制御を行う。
     804                 *  等しいか小さいときは、スロースタート制御を行う。
    833805                 *
    834806                 *    snd_cwnd = snd_cwnd + maxseg
     
    836808                 */
    837809                if (cw > cep->snd_ssthresh)
    838                         /* 輻輳回避制御 */
     810                        /* 輻輳回避制御 */
    839811                        incr = incr * incr / cw;
    840812
     
    845817
    846818                /*
    847                  *  送信ウィンドバッファから、相手が受信確認したデータ数 (acked) のデータを削除する。
     819                 *  送信ウィンドバッファから、相手が受信確認したデータ数 (acked) のデータを削除する。
    848820                 */
    849821                if (acked > cep->swbuf_count) {
     
    858830                        }
    859831
    860                 /* 送信ウィンドバッファに空きができたことを知らせる。*/
     832                /* 送信ウィンドバッファに空きができたことを知らせる。*/
    861833                syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
    862834
    863835                /*
    864                  *  送達確認されていない最小送信 SEQ (snd_una) を
    865                  *  今回送達確認された ACK まで進め、
    866                  *  次の送信データの SEQ (snd_nxt) も、新しい
    867                  *  送達確認されていない最小送信 SEQ (snd_una)
    868                  *  まで進める。
     836                 *  送達確認されていない最小送信 SEQ (snd_una) を
     837                 *  今回送達確認された ACK まで進め、
     838                 *  次の送信データの SEQ (snd_nxt) も、新しい
     839                 *  送達確認されていない最小送信 SEQ (snd_una)
     840                 *  まで進める。
    869841                 */
    870842                cep->snd_una += acked;
     
    873845
    874846                /*
    875                  *  状æ
    876 ‹ã«ã‚ˆã‚Šåˆ†å²
     847                 *  状態により分岐
    877848                 */
    878849                switch (cep->fsm_state) {
    879                 case TCP_FSM_FIN_WAIT_1:        /* APP が終了、FIN 送信済み、ACK å¾
    880 ã¡ */
     850                case TCP_FSM_FIN_WAIT_1:        /* APP が終了、FIN 送信済み、ACK 待ち */
    881851                        if (ourfinisacked) {
    882852                                cep->fsm_state = TCP_FSM_FIN_WAIT_2;
     
    884854                                }
    885855                        break;
    886                 case TCP_FSM_CLOSING:           /* 同時クローズ、FIN 交換済み、ACK å¾
    887 ã¡ */
     856                case TCP_FSM_CLOSING:           /* 同時クローズ、FIN 交換済み、ACK 待ち */
    888857                        if (ourfinisacked) {
    889858                                /*
    890                                  *  送信した FIN が確認されていれば状æ
    891 ‹ã‚’変更し、
    892                                  *  すべてのタイマをリセットした後、2MSL タイマを設定する。
     859                                 *  送信した FIN が確認されていれば状態を変更し、
     860                                 *  すべてのタイマをリセットした後、2MSL タイマを設定する。
    893861                                 */
    894862                                cep->fsm_state = TCP_FSM_TIME_WAIT;
     
    897865                                }
    898866                        break;
    899                 case TCP_FSM_LAST_ACK:          /* APP が終了、ACK å¾
    900 ã¡ */
     867                case TCP_FSM_LAST_ACK:          /* APP が終了、ACK 待ち */
    901868                        if (ourfinisacked) {
    902869                                /*
    903                                  *  送信した FIN が確認されていれば、cep をクローズし、
    904                                  *  セグメントを破棄する。
     870                                 *  送信した FIN が確認されていれば、cep をクローズし、
     871                                 *  セグメントを破棄する。
    905872                                 */
    906873                                cep = tcp_close(cep);
     
    908875                                }
    909876                        break;
    910                 case TCP_FSM_TIME_WAIT:         /* 相手からの FIN 受信済み、時間å¾
    911 ã¡ */
     877                case TCP_FSM_TIME_WAIT:         /* 相手からの FIN 受信済み、時間待ち */
    912878                        /*
    913                          *  相手から FIN が再送された。もう一度2MSL タイマを設定し、
    914                          *  ACK 送信後、セグメントを破棄する。
     879                         *  相手から FIN が再送された。もう一度2MSL タイマを設定し、
     880                         *  ACK 送信後、セグメントを破棄する。
    915881                         */
    916882                        cep->timer[TCP_TIM_2MSL] = 2 * TCP_TVAL_MSL;
     
    923889
    924890/*
    925  *  proc_ack1 -- ACK の処理 (1)
     891 *  proc_ack1 -- ACK の処理 (1)
    926892 *
    927  *    戻り値:
    928  *      RET_OK          正常
    929  *      RET_RETURN      正常、リターンする。
    930  *      RET_DROP        エラー、セグメントを破棄する。
    931  *      RET_RST_DROP    エラー、RST を送信し、セグメントを破棄する。
     893 *    戻り値:
     894 *      RET_OK          正常
     895 *      RET_RETURN      正常、リターンする。
     896 *      RET_DROP        エラー、セグメントを破棄する。
     897 *      RET_RST_DROP    エラー、RST を送信し、セグメントを破棄する。
    932898 *
    933899 */
     
    939905
    940906        switch (cep->fsm_state) {
    941         case TCP_FSM_SYN_RECVD:         /* SYN を受信し、SYN 送信済み  */
    942 
    943                 /* 状æ
    944 ‹ã‚’変更する。*/
     907        case TCP_FSM_SYN_RECVD:         /* SYN を受信し、SYN 送信済み    */
     908
     909                /* 状態を変更する。*/
    945910                if (cep->flags & TCP_CEP_FLG_NEED_FIN) {
    946911                        cep->fsm_state  = TCP_FSM_FIN_WAIT_1;
     
    951916                        cep->fsm_state  = TCP_FSM_ESTABLISHED;
    952917
    953                         /* TCP 通信端点からTCP 受付口を解放する。*/
     918                        /* TCP 通信端点からTCP 受付口を解放する。*/
    954919                        cep->rep = NULL;
    955920
     
    960925                        if (cep->rcv_nblk_tfn == TFN_TCP_ACP_CEP) {
    961926
    962                                 /* 相手のアドレスをコピーする。*/
     927                                /* 相手のアドレスをコピーする。*/
    963928                                *cep->p_dstaddr = cep->dstaddr;
    964929
     
    996961                        if (cep->snd_nblk_tfn == TFN_TCP_CON_CEP) {
    997962
    998                                 /* 相手のアドレスをコピーする。*/
     963                                /* 相手のアドレスをコピーする。*/
    999964                                *cep->p_dstaddr = cep->dstaddr;
    1000965
     
    10441009
    10451010                /*
    1046                  *  SDU がなく FIN がついていなければ、tcp_move_ra2rw() を呼出す。
    1047                  */
    1048                 if (tcph->sum == 0 && (tcph->flags & TCP_FLG_FIN) == 0)         /* tcph->sum は SDU 長 */
     1011                 *  SDU がなく FIN がついていなければ、tcp_move_ra2rw() を呼出す。
     1012                 */
     1013                if (tcph->sum == 0 && (tcph->flags & TCP_FLG_FIN) == 0)         /* tcph->sum は SDU 長 */
    10491014                        tcph->flags = tcp_move_ra2rw(cep, tcph->flags);
    10501015               
    1051                 cep->snd_wl1 = tcph->seq - 1;   /* snd_wl1: ウィンド更新 SEQ */
    1052 
    1053                 /* break; 下に落ちる。*/
     1016                cep->snd_wl1 = tcph->seq - 1;   /* snd_wl1: ウィンド更新 SEQ */
     1017
     1018                /* break; 下に落ちる。*/
    10541019       
    1055         case TCP_FSM_ESTABLISHED:       /* コネクション開設完了               */
    1056         case TCP_FSM_FIN_WAIT_1:        /* 終了して、FIN 送信済み              */
    1057         case TCP_FSM_FIN_WAIT_2:        /* 終了、FIN 伝達確認受信、FINå¾
    1058 ã¡*/
    1059         case TCP_FSM_CLOSE_WAIT:        /* FIN 受信、クローズå¾
    1060 ã¡             */
    1061         case TCP_FSM_CLOSING:           /* 終了、FIN 交換済み、ACK å¾
    1062 ã¡     */
    1063         case TCP_FSM_LAST_ACK:          /* FIN 受信、終了、ACK å¾
    1064 ã¡     */
    1065         case TCP_FSM_TIME_WAIT:         /* 終了、時間å¾
    1066 ã¡             */
     1020        case TCP_FSM_ESTABLISHED:       /* コネクション開設完了           */
     1021        case TCP_FSM_FIN_WAIT_1:        /* 終了して、FIN 送信済み                */
     1022        case TCP_FSM_FIN_WAIT_2:        /* 終了、FIN 伝達確認受信、FIN待ち*/
     1023        case TCP_FSM_CLOSE_WAIT:        /* FIN 受信、クローズ待ち                */
     1024        case TCP_FSM_CLOSING:           /* 終了、FIN 交換済み、ACK 待ち   */
     1025        case TCP_FSM_LAST_ACK:          /* FIN 受信、終了、ACK 待ち     */
     1026        case TCP_FSM_TIME_WAIT:         /* 終了、時間待ち              */
    10671027
    10681028                if (SEQ_LE(tcph->ack, cep->snd_una)) {
    10691029
    10701030                        /*
    1071                          *  受信確認 ACK が 未確認の最小送信 SEQ (snd_una) と同じか以前のときの処理
    1072                          *  つまり、多重に ACK を受信したことを意味している。
     1031                         *  受信確認 ACK が 未確認の最小送信 SEQ (snd_una) と同じか以前のときの処理
     1032                         *  つまり、多重に ACK を受信したことを意味している。
    10731033                         */
    10741034
    1075                         if (tcph->sum == 0 && tcph->win == cep->snd_wnd) {      /* tcph->sum は SDU 長 */
     1035                        if (tcph->sum == 0 && tcph->win == cep->snd_wnd) {      /* tcph->sum は SDU 長 */
    10761036
    10771037                                /*
    1078                                  *  SDU がなく、相手のウィンドサイズが変更されていなければ、
    1079                                  *  すでに送信したセグメントの中で、ACK (tcph->ack) と
    1080                                  *  同じ SEQ から始まるセグメントが、途中で消失した可能性がある。
    1081                                  *  この場合は、高速再転送と高速リカバリを行う。
     1038                                 *  SDU がなく、相手のウィンドサイズが変更されていなければ、
     1039                                 *  すでに送信したセグメントの中で、ACK (tcph->ack) と
     1040                                 *  同じ SEQ から始まるセグメントが、途中で消失した可能性がある。
     1041                                 *  この場合は、高速再転送と高速リカバリを行う。
    10821042                                 */
    10831043                                NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DUP_ACKS], 1);
     
    10861046
    10871047                                        /*
    1088                                          *  再送タイマがセットされていないとき、
    1089                                          *  または、ACK (tcph->ack) と未確認の最小送信 SEQが
    1090                                          *  一致しないときは、多重 ACK 数を 0 にする。
     1048                                         *  再送タイマがセットされていないとき、
     1049                                         *  または、ACK (tcph->ack) と未確認の最小送信 SEQが
     1050                                         *  一致しないときは、多重 ACK 数を 0 にする。
    10911051                                         */
    10921052                                        cep->dupacks = 0;
     
    10961056
    10971057                                        /*
    1098                                          *  多重 ACK 数がしきい値 (標準 3) になったら
    1099                                          *  高速再転送処理を開始する。
     1058                                         *  多重 ACK 数がしきい値 (標準 3) になったら
     1059                                         *  高速再転送処理を開始する。
    11001060                                         */
    11011061                                        uint_t          win;
    11021062
    11031063                                        /*
    1104                                          *  輻輳ウィンドサイズ(snd_cwnd)のしきい値を設定する。
     1064                                         *  輻輳ウィンドサイズ(snd_cwnd)のしきい値を設定する。
    11051065                                         *
    1106                                          *    相手の受信可能ウィンドサイズ (snd_wnd) か
    1107                                          *    輻輳ウィンドサイズ (snd_cwnd) の 1/2。
    1108                                          *    ただし、2 * maxseg 以上。
     1066                                         *    相手の受信可能ウィンドサイズ (snd_wnd) か
     1067                                         *    輻輳ウィンドサイズ (snd_cwnd) の 1/2。
     1068                                         *    ただし、2 * maxseg 以上。
    11091069                                         *
    11101070                                         */
     
    11171077                                        cep->snd_ssthresh = win * cep->maxseg;
    11181078
    1119                                         /* 再送タイマと往復時間をリセットする。*/
     1079                                        /* 再送タイマと往復時間をリセットする。*/
    11201080                                        cep->timer[TCP_TIM_REXMT] = 0;
    11211081                                        cep->rtt = 0;
    11221082
    1123                                         /* 消失したセグメントを送信する。*/
     1083                                        /* 消失したセグメントを送信する。*/
    11241084                                        cep->snd_old_nxt = cep->snd_nxt;
    11251085                                        cep->snd_nxt     = tcph->ack;
     
    11271087
    11281088                                        /*
    1129                                          *  snd_nxt をå
    1130 ƒã«æˆ»ã™ã‚ˆã†ã«è¨­å®šã—て
    1131                                          *  送信を指示する。
     1089                                         *  snd_nxt を元に戻すように設定して
     1090                                         *  送信を指示する。
    11321091                                         */
    11331092                                        cep->flags |=  TCP_CEP_FLG_POST_OUTPUT |
     
    11371096                                        sig_sem(SEM_TCP_POST_OUTPUT);
    11381097
    1139                                         /* 輻輳ウィンドサイズを更新する。*/
     1098                                        /* 輻輳ウィンドサイズを更新する。*/
    11401099                                        cep->snd_cwnd = (uint16_t)(cep->snd_ssthresh
    11411100                                                           + cep->maxseg * cep->dupacks);
     
    11471106
    11481107                                        /*
    1149                                          *  多重 ACK 数がしきい値 (標準 3) をè¶
    1150 ãˆãŸã‚‰
    1151                                          *  輻輳ウィンドサイズを増加しながら再送する。
     1108                                         *  多重 ACK 数がしきい値 (標準 3) を超えたら
     1109                                         *  輻輳ウィンドサイズを増加しながら再送する。
    11521110                                         */
    11531111                                        cep->snd_cwnd += cep->maxseg;
    11541112
    1155                                         /* 送信を指示する。*/
     1113                                        /* 送信を指示する。*/
    11561114                                        cep->flags |=  TCP_CEP_FLG_POST_OUTPUT;
    11571115                                        sig_sem(SEM_TCP_POST_OUTPUT);
     
    11661124
    11671125                /*
    1168                  *  受信確認 ACK が 未確認の最小送信 SEQ (snd_una) 以降のときの処理
     1126                 *  受信確認 ACK が 未確認の最小送信 SEQ (snd_una) 以降のときの処理
    11691127                 */
    11701128                if (cep->dupacks >= MAX_TCP_REXMT_THRESH && cep->snd_cwnd > cep->snd_ssthresh)
    11711129                        /*
    1172                          *  高速再転送を行っていたときは、輻輳ウィンドサイズをしきい値まで戻す。
     1130                         *  高速再転送を行っていたときは、輻輳ウィンドサイズをしきい値まで戻す。
    11731131                         */
    11741132                        cep->snd_cwnd = (uint16_t)cep->snd_ssthresh;
     
    11781136                if (SEQ_GT(tcph->ack, cep->snd_max))
    11791137                        /*
    1180                          *  受信した ACK が送信した最大 SEQ をè¶
    1181 ãˆã¦ã„たときの処理
     1138                         *  受信した ACK が送信した最大 SEQ を超えていたときの処理
    11821139                         */
    11831140                        return drop_after_ack(input, cep, thoff);
     
    11851142                if (cep->flags & TCP_CEP_FLG_NEED_SYN) {
    11861143                        /*
    1187                          *  SYN 送信要求を取り消して、未確認の最小送信 SEQ を進める。
     1144                         *  SYN 送信要求を取り消して、未確認の最小送信 SEQ を進める。
    11881145                         */
    11891146                        cep->flags &= ~TCP_CEP_FLG_NEED_SYN;
     
    11981155
    11991156/*
    1200  *  update_wnd -- ウィンドサイズを更新する。
     1157 *  update_wnd -- ウィンドサイズを更新する。
    12011158 *
    1202  *    戻り値: 送信がå¿
    1203 è¦ãªã‚‰ true を返す。
     1159 *    戻り値: 送信が必要なら true を返す。
    12041160 */
    12051161
     
    12091165
    12101166        /*
    1211          *  更新条件
     1167         *  更新条件
    12121168         *
    1213          *    ACK フラグがセットされている &&
    1214          *    (前回ウィンドを更新した SEQ (snd_wl1) が SEQ より前 ||
    1215          *     å‰å›žã‚¦ã‚£ãƒ³ãƒ‰ã‚’更新した SEQ (snd_wl1) が SEQ と同じ &&
    1216          *     (前回ウィンドを更新した ACK (snd_wl2) が ACK より前 ||
    1217          *      (前回ウィンドを更新した ACK (snd_wl2) が ACK と同じ &&
    1218          *       WIN が相手の受信可能ウィンドサイズ (snd_wnd) より大きい
     1169         *    ACK フラグがセットされている &&
     1170         *    (前回ウィンドを更新した SEQ (snd_wl1) が SEQ より前 ||
     1171         *     前回ウィンドを更新した SEQ (snd_wl1) が SEQ と同じ &&
     1172         *     (前回ウィンドを更新した ACK (snd_wl2) が ACK より前 ||
     1173         *      (前回ウィンドを更新した ACK (snd_wl2) が ACK と同じ &&
     1174         *       WIN が相手の受信可能ウィンドサイズ (snd_wnd) より大きい
    12191175         *       )
    12201176         *      )
     
    12321188
    12331189                if (cep->snd_wnd > cep->max_sndwnd)
    1234                         /* 今までの最大送信ウィンドサイズを更新する。*/
     1190                        /* 今までの最大送信ウィンドサイズを更新する。*/
    12351191                        cep->max_sndwnd = cep->snd_wnd;
    12361192
     
    12401196
    12411197                        /*
    1242                          *  送信ウィンドバッファ用のネットワークバッファ割り当て中で、
    1243                          *  相手の受信ウィンドが空くのをå¾
    1244 ã£ã¦ã„るときの処理
     1198                         *  送信ウィンドバッファ用のネットワークバッファ割り当て中で、
     1199                         *  相手の受信ウィンドが空くのを待っているときの処理
    12451200                         */
    12461201                        if (cep->snd_wnd > 0) {
    12471202
    12481203                                /*
    1249                                  *  相手の受信ウィンドが空いたときは、
    1250                                  *  送信ウィンドバッファ用のネットワークバッファ割り当てを再開する。
     1204                                 *  相手の受信ウィンドが空いたときは、
     1205                                 *  送信ウィンドバッファ用のネットワークバッファ割り当てを再開する。
    12511206                                 */
    12521207                                cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK)
     
    12651220
    12661221/*
    1267  *  proc_urg -- 緊急データつきのセグメントの処理
     1222 *  proc_urg -- 緊急データつきのセグメントの処理
    12681223 */
    12691224
     
    12761231            TCP_FSM_HAVE_RCVD_FIN(cep->fsm_state) == 0) {
    12771232
    1278                 /* 緊急データつきのセグメントの処理 */
     1233                /* 緊急データつきのセグメントの処理 */
    12791234
    12801235                NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_URG_SEGS], 1);
     
    12821237
    12831238                        /*
    1284                          *  緊急ポインタの位置が受信ウィンドバッファの
    1285                          *  範囲をè¶
    1286 ãˆã‚‹ã¨ãã¯ä½•ã‚‚しない。
     1239                         *  緊急ポインタの位置が受信ウィンドバッファの
     1240                         *  範囲を超えるときは何もしない。
    12871241                         */
    12881242                        tcph->urp    = 0;
     
    12911245
    12921246                if (SEQ_GT(tcph->seq + tcph->urp, cep->rcv_up))
    1293                         /* 緊急ポインタが更新されたときの処理 */
     1247                        /* 緊急ポインタが更新されたときの処理 */
    12941248                        cep->rcv_up = tcph->seq + tcph->urp;
    12951249
    1296                 if ((tcph->flags & TCP_FLG_URG) && (tcph->urp + TCP_CFG_URG_OFFSET) < tcph->sum) {      /* tcph->sum は TCP の SDU 長 */
     1250                if ((tcph->flags & TCP_FLG_URG) && (tcph->urp + TCP_CFG_URG_OFFSET) < tcph->sum) {      /* tcph->sum は TCP の SDU 長 */
    12971251
    12981252                        /*
    1299                          *  緊急ポインタの位置が、今回受信したセグメントå†
    1300 ã®å ´åˆã¯ã€
    1301                          *  コールバック関数を呼び出す。
     1253                         *  緊急ポインタの位置が、今回受信したセグメント内の場合は、
     1254                         *  コールバック関数を呼び出す。
    13021255                         */
    13031256                        cep->urg_tcph = tcph;
     
    13221275
    13231276                        if (cep->urg_tcph != NULL) {
    1324                                 /* コールバック関数å†
    1325 ã§ tcp_rcv_oob() を呼出さなかった。*/
     1277                                /* コールバック関数内で tcp_rcv_oob() を呼出さなかった。*/
    13261278                                cep->urg_tcph = NULL;
    13271279                                tcph->urp = 0;
     
    13291281                        else {
    13301282                                /*
    1331                                  *  コールバック関数å†
    1332 ã§ tcp_rcv_oob() を呼出した時は、
    1333                                  *  SDU 長の補正値を設定する。
     1283                                 *  コールバック関数内で tcp_rcv_oob() を呼出した時は、
     1284                                 *  SDU 長の補正値を設定する。
    13341285                                 */
    13351286                                tcph->urp = 1;
     
    13581309
    13591310/*
    1360  *  drop_after_ack -- 受信セグメントを破棄した後、ACK を返す (注意: 名前とは合っていない)。
     1311 *  drop_after_ack -- 受信セグメントを破棄した後、ACK を返す (注意: 名前とは合っていない)。
    13611312 *
    1362  *    戻り値:
    1363  *      RET_RETURN      正常、リターンする。
    1364  *      RET_RST_DROP    エラー、RST を送信し、セグメントを破棄する。
     1313 *    戻り値:
     1314 *      RET_RETURN      正常、リターンする。
     1315 *      RET_RST_DROP    エラー、RST を送信し、セグメントを破棄する。
    13651316 */
    13661317
     
    13711322
    13721323        /*
    1373          *    SYN 受信状æ
    1374 ‹ã§ã€ACK が送達確認されていない最小送信 SEQ (snd_una) より
    1375          *    前の値か、送信された最大 SEQ (snd_max) より後の値の場合は、相手に RST を
    1376          *    送って終了する。これは、"LAND" DoS 攻撃への防御であり、偽造された SYN
    1377          *    セグメントを送信しつづけるポート間での ACK ストームを防ぐ。
     1324         *    SYN 受信状態で、ACK が送達確認されていない最小送信 SEQ (snd_una) より
     1325         *    前の値か、送信された最大 SEQ (snd_max) より後の値の場合は、相手に RST を
     1326         *    送って終了する。これは、"LAND" DoS 攻撃への防御であり、偽造された SYN
     1327         *    セグメントを送信しつづけるポート間での ACK ストームを防ぐ。
    13781328         */
    13791329        if (cep->fsm_state == TCP_FSM_SYN_RECVD && (tcph->flags & TCP_FLG_ACK) &&
     
    13841334        syscall(rel_net_buf(input));
    13851335
    1386         /* 送信を指示する。*/
     1336        /* 送信を指示する。*/
    13871337        cep->flags |=  TCP_CEP_FLG_ACK_NOW | TCP_CEP_FLG_POST_OUTPUT;
    13881338        sig_sem(SEM_TCP_POST_OUTPUT);
     
    13911341
    13921342/*
    1393  *  close_connection -- コネクション開放処理、相手から FIN を受信した。
     1343 *  close_connection -- コネクション開放処理、相手から FIN を受信した。
    13941344 */
    13951345
     
    14161366
    14171367        switch (cep->fsm_state) {
    1418         case TCP_FSM_SYN_RECVD:         /* SYN を受信し、SYN 送信済み  */
    1419         case TCP_FSM_ESTABLISHED:       /* コネクション開設完了               */
     1368        case TCP_FSM_SYN_RECVD:         /* SYN を受信し、SYN 送信済み    */
     1369        case TCP_FSM_ESTABLISHED:       /* コネクション開設完了           */
    14201370                cep->fsm_state = TCP_FSM_CLOSE_WAIT;
    14211371                break;
    14221372
    1423         case TCP_FSM_FIN_WAIT_1:        /* APP が終了、FIN 送信済み、ACK å¾
    1424 ã¡ */
     1373        case TCP_FSM_FIN_WAIT_1:        /* APP が終了、FIN 送信済み、ACK 待ち */
    14251374                cep->fsm_state = TCP_FSM_CLOSING;
    14261375                break;
    14271376
    1428         case TCP_FSM_FIN_WAIT_2:        /* 相手からの FIN å¾
    1429 ã¡ */
     1377        case TCP_FSM_FIN_WAIT_2:        /* 相手からの FIN 待ち */
    14301378                cep->fsm_state = TCP_FSM_TIME_WAIT;
    14311379                tcp_cancel_timers(cep);
     
    14331381
    14341382                /*
    1435                  *  FIN WAIT 2 状æ
    1436 ‹ã§ã¯ã€
    1437                  *  受信は可能であるが、すでに送信は終了している。
    1438                  *  相手の送信も終了したので、å
    1439 ¥åŠ›ã‚¿ã‚¹ã‚¯ã®ã¿èµ·åºŠã™ã‚‹ã€‚
     1383                 *  FIN WAIT 2 状態では、
     1384                 *  受信は可能であるが、すでに送信は終了している。
     1385                 *  相手の送信も終了したので、入力タスクのみ起床する。
    14401386                 */
    14411387                syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
     
    14431389#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
    14441390
    1445                 /* 相手からの FIN に対して応答を返す。*/
     1391                /* 相手からの FIN に対して応答を返す。*/
    14461392                tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una,
    14471393                            cep->rbufsz - cep->rwbuf_count, TCP_FLG_ACK);
     
    14501396
    14511397                /*
    1452                  *  å¿
    1453 è¦ãªæƒ
    1454 å ±ã‚’ Time Wait 用 TCP 通信端点に移して、
    1455                  *  標準の TCP 通信端点を開放する。
     1398                 *  必要な情報を Time Wait 用 TCP 通信端点に移して、
     1399                 *  標準の TCP 通信端点を開放する。
    14561400                 */
    14571401                tcp_move_twcep(cep);
     
    14611405                break;
    14621406
    1463         case TCP_FSM_TIME_WAIT:         /* 相手からの FIN 受信済み、時間å¾
    1464 ã¡ */
     1407        case TCP_FSM_TIME_WAIT:         /* 相手からの FIN 受信済み、時間待ち */
    14651408                cep->timer[TCP_TIM_2MSL] = 2 * TCP_TVAL_MSL;
    14661409                break;
     
    14691412
    14701413/*
    1471  *  tcp_input -- TCP のå
    1472 ¥åŠ›é–¢æ•°
     1414 *  tcp_input -- TCP の入力関数
    14731415 *
    1474  *      注意: input には IF ヘッダと IP ヘッダがå
    1475 ˆé ­ã«ã‚る。
     1416 *      注意: input には IF ヘッダと IP ヘッダが先頭にある。
    14761417 */
    14771418
     
    15001441        NET_COUNT_MIB(tcp_stats.tcpInSegs, 1);
    15011442
    1502         /* ヘッダ長をチェックする。*/
     1443        /* ヘッダ長をチェックする。*/
    15031444        if (input->len < IF_IP_TCP_HDR_SIZE) {
    15041445                NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_BAD_HEADERS], 1);
     
    15091450        tcph = GET_TCP_HDR(input, *offp);
    15101451
    1511         seglen  = input->len - *offp;                           /* TCP のセグメント長 */
     1452        seglen  = input->len - *offp;                           /* TCP のセグメント長 */
    15121453
    15131454        if (IN_CKSUM(input, IPPROTO_TCP, *offp, (uint_t)seglen) != 0) {
     
    15161457                }
    15171458
    1518         /* TCP ヘッダ長をチェックする。*/
     1459        /* TCP ヘッダ長をチェックする。*/
    15191460        if (TCP_HDR_LEN(tcph->doff) < TCP_HDR_SIZE || TCP_HDR_LEN(tcph->doff) > seglen) {
    15201461                NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_BAD_HEADERS], 1);
    15211462                goto drop;
    15221463                }
    1523         tcph->sum = seglen - TCP_HDR_LEN(tcph->doff);           /* ここから tcph->sum は TCP の SDU 長 */
    1524 
    1525         /*
    1526          *  SYN と FIN の両ビットがセットされていれば破棄する。nmap 等の対策
    1527          *  ただし、RFC1644 T/TCP 拡張機能と競合する。
     1464        tcph->sum = seglen - TCP_HDR_LEN(tcph->doff);           /* ここから tcph->sum は TCP の SDU 長 */
     1465
     1466        /*
     1467         *  SYN と FIN の両ビットがセットされていれば破棄する。nmap 等の対策
     1468         *  ただし、RFC1644 T/TCP 拡張機能と競合する。
    15281469         */
    15291470        if ((tcph->flags & (TCP_FLG_SYN | TCP_FLG_FIN)) == (TCP_FLG_SYN | TCP_FLG_FIN))
    15301471                goto drop;
    15311472
    1532         /* ネットワークオーダーからホストオーダーに変換する。*/
     1473        /* ネットワークオーダーからホストオーダーに変換する。*/
    15331474
    15341475        NTOHL(tcph->seq);
     
    15441485
    15451486        /*
    1546          *  状æ
    1547 ‹ãŒ Time Wait 中の CEP を探索する。
     1487         *  状態が Time Wait 中の CEP を探索する。
    15481488         */
    15491489        twcep = tcp_find_twcep(&iph->dst, tcph->dport, &iph->src, tcph->sport);
    15501490        if (twcep != NULL) {
    15511491
    1552                 if (tcph->flags & TCP_FLG_RST)          /* RST フラグを受信したときは無視する。*/
     1492                if (tcph->flags & TCP_FLG_RST)          /* RST フラグを受信したときは無視する。*/
    15531493                        goto drop;
    15541494                else {
    15551495
    15561496                        /*
    1557                          *    TCP 通信端点が Time Wait の時、相手ホストからセグメントが来たときは、
    1558                          *    相手ホストの FIN に対する自ホストの ACK セグメントが途中で
    1559                          *    損失したことを意味しているので、ACK セグメントを再送する。
     1497                         *    TCP 通信端点が Time Wait の時、相手ホストからセグメントが来たときは、
     1498                         *    相手ホストの FIN に対する自ホストの ACK セグメントが途中で
     1499                         *    損失したことを意味しているので、ACK セグメントを再送する。
    15601500                         */
    15611501
    1562                         /* ホストオーダーからネットワークオーダーに戻す。*/
     1502                        /* ホストオーダーからネットワークオーダーに戻す。*/
    15631503                        HTONS(tcph->sport);
    15641504                        HTONS(tcph->dport);
     
    15691509                }
    15701510        else
    1571                 /* 標準の TCP 通信端点を得る。*/
     1511                /* 標準の TCP 通信端点を得る。*/
    15721512                cep = tcp_find_cep(&iph->dst, tcph->dport, &iph->src, tcph->sport);
    15731513
    15741514#else   /* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
    15751515
    1576         /* TCP 通信端点を得る。*/
     1516        /* TCP 通信端点を得る。*/
    15771517        cep = tcp_find_cep(&iph->dst, tcph->dport, &iph->src, tcph->sport);
    15781518
     
    15801520
    15811521        /*
    1582          *  TCP 通信端点がない場合と CEP の状æ
    1583 ‹ãŒã‚¯ãƒ­ãƒ¼ã‚ºãªã‚‰ç ´æ£„する。
     1522         *  TCP 通信端点がない場合と CEP の状態がクローズなら破棄する。
    15841523         */
    15851524        if (cep == NULL) {
     
    15991538
    16001539        /*
    1601          *  コネクション開設済みでセグメントを受信したときは、
    1602          *  アイドル時間と生存確認タイマをリセットする。
     1540         *  コネクション開設済みでセグメントを受信したときは、
     1541         *  アイドル時間と生存確認タイマをリセットする。
    16031542         */
    16041543        cep->idle = 0;
     
    16071546                }
    16081547
    1609         /* CEP の状æ
    1610 ‹ãŒ LISTEN 以外の時は、オプションを処理する。*/
     1548        /* CEP の状態が LISTEN 以外の時は、オプションを処理する。*/
    16111549        if (cep->fsm_state != TCP_FSM_LISTEN)
    16121550                parse_option(tcph, cep);
    16131551
    16141552        /*
    1615          *  受信可能ウィンドサイズを計算する。
     1553         *  受信可能ウィンドサイズを計算する。
    16161554         *
    1617          *  rcv_nxt:     å—信を期å¾
    1618 ã—ている最小の SEQ(これ以前は受信済み)
    1619          *  rcv_adv:     å—信を期å¾
    1620 ã—ている最大の SEQ
    1621          *  rbufsz:      受信ウィンドバッファサイズ
    1622          *  rwbuf_count:  受信ウィンドバッファにあるデータ量
    1623          *  tcph->sum:   ä»Šå›žå—信した SDU サイズ
     1555         *  rcv_nxt:     受信を期待している最小の SEQ(これ以前は受信済み)
     1556         *  rcv_adv:     受信を期待している最大の SEQ
     1557         *  rbufsz:      受信ウィンドバッファサイズ
     1558         *  rwbuf_count:  受信ウィンドバッファにあるデータ量
     1559         *  tcph->sum:   今回受信した SDU サイズ
    16241560         *
    1625          *  今回受信したセグメントを順序整列キューに連結する
    1626          *  可能性があるので tcph->sum を考æ
    1627 ®ã™ã‚‹ã€‚
     1561         *  今回受信したセグメントを順序整列キューに連結する
     1562         *  可能性があるので tcph->sum を考慮する。
    16281563         *
    16291564         */
     
    16361571                cep->rcv_wnd = cep->rcv_adv - cep->rcv_nxt;
    16371572
    1638         /* CEP の状æ
    1639 ‹ã«ã‚ˆã‚Šå‡¦ç†ã‚’行う。*/
    1640 
    1641         if (cep->fsm_state == TCP_FSM_LISTEN) {         /* 受動オープン (LISTEN) の処理。*/
     1573        /* CEP の状態により処理を行う。*/
     1574
     1575        if (cep->fsm_state == TCP_FSM_LISTEN) {         /* 受動オープン (LISTEN) の処理。*/
    16421576                if ((ret = listening(input, cep, *offp, iss)) == RET_RST_DROP)
    16431577                        goto reset_drop;
    16441578                else if (ret == RET_DROP)
    16451579                        goto drop;
    1646                 trim_length(tcph, cep);                 /* 受信した SDU 長を調整する。*/
    1647 
    1648                 if (tcph->flags & TCP_FLG_ACK) {        /* ACK フラグの処理 */
     1580                trim_length(tcph, cep);                 /* 受信した SDU 長を調整する。*/
     1581
     1582                if (tcph->flags & TCP_FLG_ACK) {        /* ACK フラグの処理 */
    16491583                        if ((ret = proc_ack2(input, cep, *offp, &needoutput)) == RET_DROP)
    16501584                                goto drop;
     
    16551589                        }
    16561590                }
    1657         else if (cep->fsm_state == TCP_FSM_SYN_SENT) {  /* 能動オープン、SYN 送信済み        */
     1591        else if (cep->fsm_state == TCP_FSM_SYN_SENT) {  /* 能動オープン、SYN 送信済み      */
    16581592                if ((ret = syn_sent(tcph, cep)) == RET_RST_DROP)
    16591593                        goto reset_drop;
    16601594                else if (ret == RET_DROP)
    16611595                        goto drop;
    1662                 trim_length(tcph, cep);                 /* 受信した SDU 長を調整する。*/
    1663 
    1664                 if (tcph->flags & TCP_FLG_ACK) {        /* ACK フラグの処理 */
     1596                trim_length(tcph, cep);                 /* 受信した SDU 長を調整する。*/
     1597
     1598                if (tcph->flags & TCP_FLG_ACK) {        /* ACK フラグの処理 */
    16651599                        if ((ret = proc_ack2(input, cep, *offp, &needoutput)) == RET_DROP)
    16661600                                goto drop;
     
    16721606                }
    16731607        else {
    1674                 if (cep->fsm_state == TCP_FSM_SYN_RECVD) {      /* SYN を受信、SYN 送信済み     */
     1608                if (cep->fsm_state == TCP_FSM_SYN_RECVD) {      /* SYN を受信、SYN 送信済み     */
    16751609                        /*
    1676                          *  相手から受信確認が送られて来ても、
     1610                         *  相手から受信確認が送られて来ても、
    16771611                         *
    1678                          *    ACK <= 未確認の最小送信 SEQ (snd_una) &&
    1679                          *           é€ä¿¡ã—た最大     SEQ (snd_max) < ACK
     1612                         *    ACK <= 未確認の最小送信 SEQ (snd_una) &&
     1613                         *           送信した最大     SEQ (snd_max) < ACK
    16801614                         *
    1681                          *  なら、リセットを送ってセグメントを破棄する。
     1615                         *  なら、リセットを送ってセグメントを破棄する。
    16821616                         */
    16831617                        if ((tcph->flags & TCP_FLG_ACK) &&
     
    16881622
    16891623                /*
    1690                  *  RST フラグを受信したときの処理 (異常切断)
     1624                 *  RST フラグを受信したときの処理 (異常切断)
    16911625                 */
    16921626                if (tcph->flags & TCP_FLG_RST) {
     
    16941628                            SEQ_LT(tcph->seq, cep->last_ack_sent + cep->rcv_wnd)) {
    16951629                                /*
    1696                                  *  受信したセグメントの SEQ が、最後に送信した ACK (last_ack_sent)
    1697                                  *  から、受信ウインドウサイズまでの間の処理
     1630                                 *  受信したセグメントの SEQ が、最後に送信した ACK (last_ack_sent)
     1631                                 *  から、受信ウインドウサイズまでの間の処理
    16981632                                 */
    16991633                                switch (cep->fsm_state) {
    1700                                 case TCP_FSM_SYN_RECVD:         /* SYN を受信し、SYN 送信済み          */
    1701 
    1702                                         cep->net_error = EV_CNNRF;      /* 接続不能 */
     1634                                case TCP_FSM_SYN_RECVD:         /* SYN を受信し、SYN 送信済み            */
     1635
     1636                                        cep->net_error = EV_CNNRF;      /* 接続不能 */
    17031637                                        cep->error     = E_CLS;
    17041638                                        NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_RSTS], 1);
     
    17071641                                        break;
    17081642
    1709                                 case TCP_FSM_ESTABLISHED:       /* コネクション開設完了                       */
    1710                                 case TCP_FSM_CLOSE_WAIT:        /* FIN 受信、クローズå¾
    1711 ã¡             */
     1643                                case TCP_FSM_ESTABLISHED:       /* コネクション開設完了                   */
     1644                                case TCP_FSM_CLOSE_WAIT:        /* FIN 受信、クローズ待ち                */
    17121645                                        NET_COUNT_MIB(tcp_stats.tcpEstabResets, 1);
    17131646                                        /* fallthrough */
    17141647
    1715                                 case TCP_FSM_FIN_WAIT_1:        /* 終了して、FIN 送信済み              */
    1716                                 case TCP_FSM_FIN_WAIT_2:        /* 終了、FIN 伝達確認受信、FINå¾
    1717 ã¡     */
    1718 
    1719                                         cep->net_error = EV_CNRST;      /* 接続リセット */
     1648                                case TCP_FSM_FIN_WAIT_1:        /* 終了して、FIN 送信済み                */
     1649                                case TCP_FSM_FIN_WAIT_2:        /* 終了、FIN 伝達確認受信、FIN待ち  */
     1650
     1651                                        cep->net_error = EV_CNRST;      /* 接続リセット */
    17201652                                        cep->error     = E_CLS;
    17211653                                        NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_RSTS], 1);
    17221654                                        /* no break; */
    17231655
    1724                                 case TCP_FSM_CLOSING:           /* 終了、FIN 交換済み、ACK å¾
    1725 ã¡     */
    1726                                 case TCP_FSM_LAST_ACK:          /* FIN 受信、終了、ACK å¾
    1727 ã¡     */
     1656                                case TCP_FSM_CLOSING:           /* 終了、FIN 交換済み、ACK 待ち   */
     1657                                case TCP_FSM_LAST_ACK:          /* FIN 受信、終了、ACK 待ち     */
    17281658
    17291659                                        cep = tcp_close(cep);
     
    17351665
    17361666                /*
    1737                  *  CEP の状æ
    1738 ‹ãŒ SYN を受信し、SYN 送信済みの場合は、
    1739                  *  受信ウィンドに収まるようにデータを
    1740                  *  調整する前に、この接続によるパケットかどうかを検証する。
     1667                 *  CEP の状態が SYN を受信し、SYN 送信済みの場合は、
     1668                 *  受信ウィンドに収まるようにデータを
     1669                 *  調整する前に、この接続によるパケットかどうかを検証する。
    17411670                 *
    1742                  *    受信した相手の SEQ < 相手の SEQ の初期値 (irs)
     1671                 *    受信した相手の SEQ < 相手の SEQ の初期値 (irs)
    17431672                 *
    1744                  *  これは、"LAND" DoS 攻撃の防御である。
     1673                 *  これは、"LAND" DoS 攻撃の防御である。
    17451674                 */
    17461675                if (cep->fsm_state == TCP_FSM_SYN_RECVD && SEQ_LT(tcph->seq, cep->irs)) {
     
    17491678
    17501679                /*
    1751                  *  受信を期å¾
    1752 ã—ている最小の SEQ (rcv_nxt) - 受信した相手の SEQ が
    1753                  *  正なら、rcv_nxt 以前のデータはすでに受信しているので、その部分を
    1754                  *  削除する。
     1680                 *  受信を期待している最小の SEQ (rcv_nxt) - 受信した相手の SEQ が
     1681                 *  正なら、rcv_nxt 以前のデータはすでに受信しているので、その部分を
     1682                 *  削除する。
    17551683                 *                           <---------- rcv_wnd --------->
    17561684                 *                           rcv_nxt                      rcv_nxt + rcv_wnd
     
    17641692                 *           ^                      ^
    17651693                 *           seq                    seq + len
    1766                  *           <---------------> 削除する。
     1694                 *           <---------------> 削除する。
    17671695                 */
    17681696                todrop = cep->rcv_nxt - tcph->seq;
     
    17701698
    17711699                        /*
    1772                          *  SYN フラグがついているときは、その分 (1 オクテット)
    1773                          *  SEQ を進め、緊急ポインタと削除する長さを調整する。
     1700                         *  SYN フラグがついているときは、その分 (1 オクテット)
     1701                         *  SEQ を進め、緊急ポインタと削除する長さを調整する。
    17741702                         */
    17751703                        if (tcph->flags & TCP_FLG_SYN) {
     
    17841712
    17851713                        /*
    1786                          *  削除する長さが SDU より長い、つまり、受信を期å¾
    1787 ã—ている
    1788                          *  最小の SEQ (rcv_nxt) に達していないか、
    1789                          *  削除する長さが SDU と同じで、FIN フラグがついてなければ
    1790                          *  å
    1791 ¨ã¦å‰Šé™¤ã™ã‚‹ã€‚
     1714                         *  削除する長さが SDU より長い、つまり、受信を期待している
     1715                         *  最小の SEQ (rcv_nxt) に達していないか、
     1716                         *  削除する長さが SDU と同じで、FIN フラグがついてなければ
     1717                         *  全て削除する。
    17921718                         */
    1793                         if ( todrop >  tcph->sum ||             /* tcph->sum は TCP の SDU 長 */
     1719                        if ( todrop >  tcph->sum ||             /* tcph->sum は TCP の SDU 長 */
    17941720                            (todrop == tcph->sum && (tcph->flags & TCP_FLG_FIN) == 0)) {
    17951721                                tcph->flags &= ~TCP_FLG_FIN;
    17961722                                cep->flags |= TCP_CEP_FLG_ACK_NOW;
    1797                                 todrop = tcph->sum;             /* tcph->sum は TCP の SDU 長 */
     1723                                todrop = tcph->sum;             /* tcph->sum は TCP の SDU 長 */
    17981724                                }
    17991725
    18001726                        /*
    1801                          *  SDU を前に詰める。
     1727                         *  SDU を前に詰める。
    18021728                         */
    1803                         if (todrop < tcph->sum) {               /* tcph->sum は TCP の SDU 長 */
     1729                        if (todrop < tcph->sum) {               /* tcph->sum は TCP の SDU 長 */
    18041730                                memcpy(GET_TCP_SDU(input, *offp),
    18051731                                       GET_TCP_SDU(input, *offp) + todrop, (size_t)(tcph->sum - todrop));
     
    18071733
    18081734                        /*
    1809                          *  SEQ と SDU 長を調整する。
     1735                         *  SEQ と SDU 長を調整する。
    18101736                         */
    18111737                        tcph->seq +=     todrop;
    1812                         tcph->sum -= (uint16_t)todrop;  /* tcph->sum は TCP の SDU 長 */
     1738                        tcph->sum -= (uint16_t)todrop;  /* tcph->sum は TCP の SDU 長 */
    18131739
    18141740                        /*
    1815                          *  緊急ポインタを調整する。
     1741                         *  緊急ポインタを調整する。
    18161742                         */
    18171743                        if (tcph->urp > todrop)
     
    18261752
    18271753                /* 
    1828                  *  もしユーザタスクが終了した後に、データを受信した
    1829                  *  場合は、RST を送る。
    1830                  */
    1831                 if (cep->fsm_state == TCP_FSM_LAST_ACK && tcph->sum > 0) {      /* tcph->sum は TCP の SDU 長 */
     1754                 *  もしユーザタスクが終了した後に、データを受信した
     1755                 *  場合は、RST を送る。
     1756                 */
     1757                if (cep->fsm_state == TCP_FSM_LAST_ACK && tcph->sum > 0) {      /* tcph->sum は TCP の SDU 長 */
    18321758                        cep = tcp_close(cep);
    18331759                        goto reset_drop;
     
    18351761
    18361762                /*
    1837                  *  受信セグメントが受信ウィンドをè¶
    1838 ãˆã‚‹å ´åˆã¯ã€
    1839                  *  è¶
    1840 ãˆãŸåˆ†ã‚’削る。
     1763                 *  受信セグメントが受信ウィンドを超える場合は、
     1764                 *  超えた分を削る。
    18411765                 *
    18421766                 *       <---------- rcv_wnd --------->
     
    18511775                 *                    ^                      ^
    18521776                 *                    seq                    seq + len
    1853                  *                                     <-----> 削除する。
    1854                  */
    1855                 todrop = (tcph->seq + tcph->sum) - (cep->rcv_nxt + cep->rcv_wnd);       /* tcph->sum は TCP の SDU 長 */
     1777                 *                                     <-----> 削除する。
     1778                 */
     1779                todrop = (tcph->seq + tcph->sum) - (cep->rcv_nxt + cep->rcv_wnd);       /* tcph->sum は TCP の SDU 長 */
    18561780                if (todrop > 0) {
    1857                         if (todrop > tcph->sum) {                                       /* tcph->sum は TCP の SDU 長 */
     1781                        if (todrop > tcph->sum) {                                       /* tcph->sum は TCP の SDU 長 */
    18581782                                /*
    1859                                  *  受信した SDU のå
    1860 ¨ã¦ãŒå—信ウィンドをè¶
    1861 ãˆã‚‹å ´åˆã€‚
     1783                                 *  受信した SDU の全てが受信ウィンドを超える場合。
    18621784                                 *
    1863                                  *  TIME_WAIT 中に、新たな接続要求を受信したら
    1864                                  *  古い接続を破棄し、新たな接続を開始する。
    1865                                  *  ただし、SEQ は前より進んでいなければならない。
     1785                                 *  TIME_WAIT 中に、新たな接続要求を受信したら
     1786                                 *  古い接続を破棄し、新たな接続を開始する。
     1787                                 *  ただし、SEQ は前より進んでいなければならない。
    18661788                                 */
    18671789                                if ((tcph->flags & TCP_FLG_SYN) &&
     
    18751797
    18761798                                /*
    1877                                  *  受信ウィンドが 0 で、受信した SEQ と
    1878                                  *  受信を期å¾
    1879 ã—ている最小の SEQ が一致したときは
    1880                                  *  ACK を返す。それ以外はデータを破棄し、ACK を返す。
     1799                                 *  受信ウィンドが 0 で、受信した SEQ と
     1800                                 *  受信を期待している最小の SEQ が一致したときは
     1801                                 *  ACK を返す。それ以外はデータを破棄し、ACK を返す。
    18811802                                 */
    18821803                                if (cep->rcv_wnd == 0 && (tcph->seq == cep->rcv_nxt || tcph->sum == 0)) {
     
    18891810                                        }
    18901811                                }
    1891                         tcph->sum -= (uint16_t)todrop;  /* tcph->sum は TCP の SDU 長 */
     1812                        tcph->sum -= (uint16_t)todrop;  /* tcph->sum は TCP の SDU 長 */
    18921813                        tcph->flags &= ~(TCP_FLG_PUSH | TCP_FLG_FIN);
    18931814                        }
    18941815
    18951816                /*
    1896                  *  もし、SYN がセットされていれば、
    1897                  *  エラーなので RST を送り、接続を破棄する。
     1817                 *  もし、SYN がセットされていれば、
     1818                 *  エラーなので RST を送り、接続を破棄する。
    18981819                 */
    18991820                if (tcph->flags & TCP_FLG_SYN) {
     
    19041825
    19051826                /*
    1906                  *  もし、ACK がセットされていない場合は、
    1907                  *  状æ
    1908 ‹ãŒ SYN 受信済みか
    1909                  *  SYN を送信しようとしていれば、処理を続けるが、
    1910                  *  それ以外はセグメントを破棄して終了する。
     1827                 *  もし、ACK がセットされていない場合は、
     1828                 *  状態が SYN 受信済みか
     1829                 *  SYN を送信しようとしていれば、処理を続けるが、
     1830                 *  それ以外はセグメントを破棄して終了する。
    19111831                 */
    19121832                if ((tcph->flags & TCP_FLG_ACK) == 0) {
     
    19161836                else {
    19171837                        /*
    1918                          * ACK の処理
     1838                         * ACK の処理
    19191839                         */
    19201840                        ret = proc_ack1(input, cep, *offp, &needoutput);
     
    19301850/* step 6 */
    19311851
    1932         /* 送信ウィンドを更新する。*/
     1852        /* 送信ウィンドを更新する。*/
    19331853        if (update_wnd(tcph, cep) == true)
    19341854                needoutput = true;
    19351855
    1936         /* 緊急データを処理する。*/
     1856        /* 緊急データを処理する。*/
    19371857        proc_urg(tcph, cep);
    19381858
     
    19401860
    19411861        /*
    1942          *  SDU があるか、FIN を未受信の状æ
    1943 ‹ã§ã€æœ€åˆã« FIN を受信したとき、
    1944          *  受信セグメントキューに net_buf を追加する。
    1945          *  それ以外の場合は、セグメントを破棄する。
     1862         *  SDU があるか、FIN を未受信の状態で、最初に FIN を受信したとき、
     1863         *  受信セグメントキューに net_buf を追加する。
     1864         *  それ以外の場合は、セグメントを破棄する。
    19461865         */
    19471866        flags = tcph->flags;
    1948         if ((tcph->sum > 0 || (flags & TCP_FLG_FIN)) &&         /* tcph->sum は TCP の SDU 長 */
     1867        if ((tcph->sum > 0 || (flags & TCP_FLG_FIN)) &&         /* tcph->sum は TCP の SDU 長 */
    19491868            TCP_FSM_HAVE_RCVD_FIN(cep->fsm_state) == 0) {
    19501869                flags = reassemble(input, cep, *offp, flags);
     
    19561875
    19571876        /*
    1958          *  FIN を受信したらコネクションをクローズする。
     1877         *  FIN を受信したらコネクションをクローズする。
    19591878         */
    19601879        if (flags & TCP_FLG_FIN)
    19611880                close_connection(cep, &needoutput);
    19621881
    1963         /* 出力を行った後終了する。*/
     1882        /* 出力を行った後終了する。*/
    19641883        if (needoutput == true || (cep->flags & TCP_CEP_FLG_ACK_NOW)) {
    1965                 /* 送信を指示する。*/
     1884                /* 送信を指示する。*/
    19661885                cep->flags |=  TCP_CEP_FLG_POST_OUTPUT;
    19671886                sig_sem(SEM_TCP_POST_OUTPUT);
     
    19721891reset_drop:
    19731892        /*
    1974          *  RST 送信処理
     1893         *  RST 送信処理
    19751894         */
    19761895
     
    19781897                goto drop;
    19791898
    1980         /* ホストオーダーからネットワークオーダーに戻す。*/
     1899        /* ホストオーダーからネットワークオーダーに戻す。*/
    19811900
    19821901        HTONS(tcph->sport);
     
    19931912        else {
    19941913                if (tcph->flags & TCP_FLG_SYN)
    1995                         tcph->sum ++;           /* tcph->sum は SDU 長 */
     1914                        tcph->sum ++;           /* tcph->sum は SDU 長 */
    19961915                tcp_respond(input, cep, tcph->seq + tcph->sum, 0, rbfree, TCP_FLG_RST | TCP_FLG_ACK);
    19971916                }
    19981917
    1999         /* input は tcp_respoond で返却される。*/
     1918        /* input は tcp_respoond で返却される。*/
    20001919        NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_RSTS], 1);
    20011920        NET_COUNT_MIB(tcp_stats.tcpOutRsts, 1);
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_output.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$
     
    127115
    128116/*
    129  *  関数
     117 *  関数
    130118 */
    131119
     
    134122
    135123/*
    136  *  変数
     124 *  変数
    137125 */
    138126
    139 /* 出力時のフラグを FSM 状æ
    140 ‹ã«ã‚ˆã‚Šé¸æŠžã™ã‚‹ãŸã‚ã®è¡¨ */
     127/* 出力時のフラグを FSM 状態により選択するための表 */
    141128
    142129const static uint8_t tcp_outflags[] = {
    143         TCP_FLG_RST | TCP_FLG_ACK,      /*  0, クローズ                             */
    144         0,                              /*  1, 受動オープン                       */
    145         TCP_FLG_SYN,                    /*  2, 能動オープン、SYN 送信済み    */
    146         TCP_FLG_SYN | TCP_FLG_ACK,      /*  3, SYM を受信し、SYN 送信済み      */
    147         TCP_FLG_ACK,                    /*  4, コネクション開設完了           */
    148         TCP_FLG_ACK,                    /*  5, FIN 受信、クローズå¾
    149 ã¡             */
    150         TCP_FLG_FIN | TCP_FLG_ACK,      /*  6, 終了して、FIN 送信済み          */
    151         TCP_FLG_FIN | TCP_FLG_ACK,      /*  7, 終了、FIN 交換済み、ACK å¾
    152 ã¡     */
    153         TCP_FLG_FIN | TCP_FLG_ACK,      /*  8, FIN 受信、終了、ACK å¾
    154 ã¡             */
    155         TCP_FLG_ACK,                    /*  9, 終了、FIN 伝達確認受信、FINå¾
    156 ã¡     */
    157         TCP_FLG_ACK,                    /* 10, 終了、時間å¾
    158 ã¡                     */
     130        TCP_FLG_RST | TCP_FLG_ACK,      /*  0, クローズ                             */
     131        0,                              /*  1, 受動オープン                   */
     132        TCP_FLG_SYN,                    /*  2, 能動オープン、SYN 送信済み  */
     133        TCP_FLG_SYN | TCP_FLG_ACK,      /*  3, SYM を受信し、SYN 送信済み        */
     134        TCP_FLG_ACK,                    /*  4, コネクション開設完了               */
     135        TCP_FLG_ACK,                    /*  5, FIN 受信、クローズ待ち            */
     136        TCP_FLG_FIN | TCP_FLG_ACK,      /*  6, 終了して、FIN 送信済み            */
     137        TCP_FLG_FIN | TCP_FLG_ACK,      /*  7, 終了、FIN 交換済み、ACK 待ち       */
     138        TCP_FLG_FIN | TCP_FLG_ACK,      /*  8, FIN 受信、終了、ACK 待ち         */
     139        TCP_FLG_ACK,                    /*  9, 終了、FIN 伝達確認受信、FIN待ち      */
     140        TCP_FLG_ACK,                    /* 10, 終了、時間待ち                  */
    159141        };
    160142
    161143/*
    162  *  send_segment -- TCP 出力処理
     144 *  send_segment -- TCP 出力処理
    163145 */
    164146
     
    190172
    191173        /*
    192          *  セグメント長を、相手の最大受信セグメント長に調整する。
    193          *  もし、è¶
    194 ãˆã¦ã„る場合は、è¶
    195 ãˆãŸåˆ†ã‚’後で送信する。
    196          *  このため、FIN ビットをクリアする。
     174         *  セグメント長を、相手の最大受信セグメント長に調整する。
     175         *  もし、超えている場合は、超えた分を後で送信する。
     176         *  このため、FIN ビットをクリアする。
    197177         *
    198          *  オリジナルでは、t_maxopd を制限長にしているが、
    199          *  本実è£
    200 ã§ã¯ã€ç›¸æ‰‹ã®æœ€å¤§å—信セグメントにする。
     178         *  オリジナルでは、t_maxopd を制限長にしているが、
     179         *  本実装では、相手の最大受信セグメントにする。
    201180         */
    202181        if (len + optlen > cep->maxseg) {
     
    207186
    208187        /*
    209          *  送信バッファが空になるときは PUSH フラグを設定する。
     188         *  送信バッファが空になるときは PUSH フラグを設定する。
    210189         */
    211190        if (len && doff + len >= cep->swbuf_count)
     
    218197
    219198                /*
    220                  *  送信ウインドバッファが開放されないようにして、
    221                  *  ネットワークバッファを出力に移す。
     199                 *  送信ウインドバッファが開放されないようにして、
     200                 *  ネットワークバッファを出力に移す。
    222201                 */
    223202                cep->swbufq->flags |= NB_FLG_NOREL_IFOUT;
     
    227206
    228207                /*
    229                  *  ACK 完了状æ
    230 ‹ã§ã€ã“の関数が呼び出されることもある。
    231                  *  この時は、len を 0 にして、処理を継続する。
     208                 *  ACK 完了状態で、この関数が呼び出されることもある。
     209                 *  この時は、len を 0 にして、処理を継続する。
    232210                 */
    233211                len = 0;
     
    256234
    257235                /*
    258                  *  送信ウインドバッファが開放されないようにして、
    259                  *  ネットワークバッファを出力に移す。
     236                 *  送信ウインドバッファが開放されないようにして、
     237                 *  ネットワークバッファを出力に移す。
    260238                 */
    261239                cep->swbufq->flags |= NB_FLG_NOREL_IFOUT;
     
    265243
    266244                /*
    267                  *  ACK 完了状æ
    268 ‹ã§ã€ã“の関数が呼び出されることもある。
    269                  *  この時は、len を 0 にして、処理を継続する。
     245                 *  ACK 完了状態で、この関数が呼び出されることもある。
     246                 *  この時は、len を 0 にして、処理を継続する。
    270247                 */
    271248                len = 0;
     
    292269
    293270        /*
    294          *  TCP オプションの設定を行う。
    295          *  本実è£
    296 ã§ã¯ã€æœ€å¤§ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚µã‚¤ã‚ºã®ã¿è¨­å®šã™ã‚‹ã€‚
     271         *  TCP オプションの設定を行う。
     272         *  本実装では、最大セグメントサイズのみ設定する。
    297273         */
    298274        if (flags & TCP_FLG_SYN) {
     
    310286                }
    311287
    312         /* TCP SDU に送信データをコピーする。*/
     288        /* TCP SDU に送信データをコピーする。*/
    313289
    314290        if (len > 0) {
     
    336312
    337313        /*
    338          * snd_max: 送信した最大 SEQ
    339          * snd_nxt: 次に送信する SEQ
     314         * snd_max: 送信した最大 SEQ
     315         * snd_nxt: 次に送信する SEQ
    340316         *
    341          *  相手から FIN を受信し、まだ FIN を送信していないか、
    342          *  送るデータがないときは、FIN を相手に届けるため、
    343          *  セグメントを送信するが、SEQ は進めない。
     317         *  相手から FIN を受信し、まだ FIN を送信していないか、
     318         *  送るデータがないときは、FIN を相手に届けるため、
     319         *  セグメントを送信するが、SEQ は進めない。
    344320         */
    345321        if ((flags & TCP_FLG_FIN) && (cep->flags & TCP_CEP_FLG_SENT_FIN) &&
     
    351327
    352328        /*
    353          *  SEQ、ACK、フラグの設定。
     329         *  SEQ、ACK、フラグの設定。
    354330         */
    355331        if (len > 0 || (flags & (TCP_FLG_SYN | TCP_FLG_FIN)) || cep->timer[TCP_TIM_PERSIST] != 0)
     
    359335
    360336        /*
    361          *  rcv_nxt: 受信を期å¾
    362 ã—ている最小の SEQ
     337         *  rcv_nxt: 受信を期待している最小の SEQ
    363338         */
    364339        tcph->ack   = htonl(cep->rcv_nxt);
     
    366341
    367342        /*
    368          *  受信ウィンドの計算
     343         *  受信ウィンドの計算
    369344         *
    370          *  rbufsz: 受信用バッファサイズ
    371          *  maxseg: 相手の最大受信セグメントサイズ       
     345         *  rbufsz: 受信用バッファサイズ
     346         *  maxseg: 相手の最大受信セグメントサイズ     
    372347         */
    373348        if (win < (cep->rbufsz / 4) && win < cep->maxseg)
     
    375350
    376351        /*
    377          *  rcv_nxt: 受信を期å¾
    378 ã—ている最小の SEQ
    379          *  rcv_adv: 受信を期å¾
    380 ã—ている最大の SEQ
     352         *  rcv_nxt: 受信を期待している最小の SEQ
     353         *  rcv_adv: 受信を期待している最大の SEQ
    381354         */
    382355        if ((int32_t)win < (int32_t)(cep->rcv_adv - cep->rcv_nxt))
     
    388361
    389362        /*
    390          *  緊急ポインタの設定
     363         *  緊急ポインタの設定
    391364         */
    392365        if (SEQ_GT(cep->snd_up, cep->snd_nxt)) {
     
    403376
    404377        /*
    405          *  チェックサムを設定する。
     378         *  チェックサムを設定する。
    406379         */
    407380        tcph->sum = 0;
     
    409382                             GET_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET) + len);
    410383
    411         /* ネットワークバッファ長を調整する。*/
     384        /* ネットワークバッファ長を調整する。*/
    412385        output->len = (uint16_t)(GET_IF_IP_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET) + len);
    413386
    414387        /*
    415          *  タイマの調整
     388         *  タイマの調整
    416389         */
    417390        if ((cep->flags & TCP_CEP_FLG_FORCE) == 0 || cep->timer[TCP_TIM_PERSIST] == 0) {
     
    419392
    420393                /*
    421                  *  次に送信する SEQ (snd_nxt) を今回送信するデータ数分進める。
     394                 *  次に送信する SEQ (snd_nxt) を今回送信するデータ数分進める。
    422395                 */
    423396                if (flags & TCP_FLG_SYN)
     
    431404
    432405                /*
    433                  *  次に送信する SEQ (snd_nxt) が
    434                  *  送信した最大 SEQ (snd_max) より進んでいれば、
    435                  *  送信した最大 SEQ (snd_max) を更新する。
     406                 *  次に送信する SEQ (snd_nxt) が
     407                 *  送信した最大 SEQ (snd_max) より進んでいれば、
     408                 *  送信した最大 SEQ (snd_max) を更新する。
    436409                 */
    437410                if (SEQ_GT(cep->snd_nxt, cep->snd_max)) {
    438411                        cep->snd_max = cep->snd_nxt;
    439412                        /*
    440                          *  もし、往復時間計測を行っていなければ、
    441                          *  この送信に時間を合わせる。
     413                         *  もし、往復時間計測を行っていなければ、
     414                         *  この送信に時間を合わせる。
    442415                         */
    443416                        if (cep->rtt == 0) {
    444417                                cep->rtt   = 1;
    445                                 cep->rtseq = startseq;  /* 更新前の cep->snd_nxt */
    446                                 }
    447                         }
    448 
    449                 /*
    450                  *  もし設定されていないか、ACK または保留が発生していなければ、
    451                  *  再送タイマを設定する。設定する初期値は、
    452                  * 「滑らかな往復時間 + 2 × 往復時間変動」である。
    453                  *  再送時間のバックオフに使われるシフトカウントも初期化する。
     418                                cep->rtseq = startseq;  /* 更新前の cep->snd_nxt */
     419                                }
     420                        }
     421
     422                /*
     423                 *  もし設定されていないか、ACK または保留が発生していなければ、
     424                 *  再送タイマを設定する。設定する初期値は、
     425                 * 「滑らかな往復時間 + 2 × 往復時間変動」である。
     426                 *  再送時間のバックオフに使われるシフトカウントも初期化する。
    454427                 */
    455428                if (cep->timer[TCP_TIM_REXMT] == 0 && cep->snd_nxt != cep->snd_una) {
     
    463436
    464437        /*
    465          *  次に送信する SEQ (snd_nxt) + 今回送信するデータ数 (len) が
    466          *  送信した最大 SEQ (snd_max) より進んでいれば、
    467          *  送信した最大 SEQ (snd_max) を更新する。
     438         *  次に送信する SEQ (snd_nxt) + 今回送信するデータ数 (len) が
     439         *  送信した最大 SEQ (snd_max) より進んでいれば、
     440         *  送信した最大 SEQ (snd_max) を更新する。
    468441         */
    469442        else if (SEQ_GT(cep->snd_nxt + len, cep->snd_max))
     
    483456#endif  /* of #ifdef TCP_CFG_TRACE */
    484457
    485         /* ネットワーク層 (IP) の出力関数を呼び出す。*/
     458        /* ネットワーク層 (IP) の出力関数を呼び出す。*/
    486459        if ((error = IP_OUTPUT(output, TMO_TCP_OUTPUT)) != E_OK)
    487460                goto err_ret;
    488461
    489462        /*
    490          *  相手に伝えたウィンドウサイズ (win) が 0 以上で、
    491          *  受信を期å¾
    492 ã—ている最小の SEQ (rcv_nxt) + win が
    493          *  受信を期å¾
    494 ã—ている最大の SEQ (rcv_adv) より進んでいれば
    495          *  受信を期å¾
    496 ã—ている最大の SEQ を更新する。
     463         *  相手に伝えたウィンドウサイズ (win) が 0 以上で、
     464         *  受信を期待している最小の SEQ (rcv_nxt) + win が
     465         *  受信を期待している最大の SEQ (rcv_adv) より進んでいれば
     466         *  受信を期待している最大の SEQ を更新する。
    497467         */
    498468        if (win > 0 && SEQ_GT(cep->rcv_nxt + win, cep->rcv_adv)) {
     
    501471
    502472        /*
    503          *  最後に送信した ACK (last_ack_sent) を更新する。
     473         *  最後に送信した ACK (last_ack_sent) を更新する。
    504474         */
    505475        cep->last_ack_sent = cep->rcv_nxt;
    506476
    507477        /*
    508          *  フラグの設定を行う。
     478         *  フラグの設定を行う。
    509479         */
    510480        cep->flags &= ~(TCP_CEP_FLG_ACK_NOW | TCP_CEP_FLG_DEL_ACK);
     
    516486err_ret:
    517487        /*
    518          * 以下に関係しないフラグをクリアーする。
    519          * ・送受信ウィンドバッファの省コピー機能
    520          * ・動的な通信端点の生成・削除機能
     488         * 以下に関係しないフラグをクリアーする。
     489         * ・送受信ウィンドバッファの省コピー機能
     490         * ・動的な通信端点の生成・削除機能
    521491         */
    522492        cep->flags &= (TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK |
     
    527497
    528498/*
    529  *  tcp_output -- TCP 出力処理
     499 *  tcp_output -- TCP 出力処理
    530500 */
    531501
     
    540510
    541511        /*
    542          *  snd_una: 未確認の最小送信 SEQ        または、確認された最大送信 SEQ
    543          *  snd_max: 送信した最大 SEQ
     512         *  snd_una: 未確認の最小送信 SEQ        または、確認された最大送信 SEQ
     513         *  snd_max: 送信した最大 SEQ
    544514         */
    545515        idle = (cep->snd_max == cep->snd_una);
    546516
    547517        /*
    548          *  idle:   ã‚¢ã‚¤ãƒ‰ãƒ«æ™‚é–“
    549          *  rxtcur: 現在の再送タイムアウト
     518         *  idle:   アイドル時間
     519         *  rxtcur: 現在の再送タイムアウト
    550520         */
    551521        if (idle && cep->idle >= cep->rxtcur)
    552522
    553523                /*
    554                  *  snd_cwnd: 輻輳ウィンドサイズ
    555                  *  maxseg  : 相手の最大受信セグメントサイズ
     524                 *  snd_cwnd: 輻輳ウィンドサイズ
     525                 *  maxseg  : 相手の最大受信セグメントサイズ
    556526                 *
    557                  *  長時間アイドルだったのでスロースタート制御に設定する。
     527                 *  長時間アイドルだったのでスロースタート制御に設定する。
    558528                 */
    559529                cep->snd_cwnd = cep->maxseg;
     
    563533
    564534                /*
    565                  *  snd_nxt: 次に送信する SEQ、この時点では、前回送信した SEQ
    566                  *  snd_una: 未確認の最小送信 SEQ、または確認された最大送信 SEQ
     535                 *  snd_nxt: 次に送信する SEQ、この時点では、前回送信した SEQ
     536                 *  snd_una: 未確認の最小送信 SEQ、または確認された最大送信 SEQ
    567537                 *
    568                  *  doff: 送信を開始するオフセット。
    569                  *                                    swbuf_count (送信バッファにあるオクテット数)
     538                 *  doff: 送信を開始するオフセット。
     539                 *                                    swbuf_count (送信バッファにあるオクテット数)
    570540                 *    0                               V
    571541                 *    +-------------------------------------------+
     
    573543                 *    +-------------------------------------------+
    574544                 *    ^               ^
    575                  *    |<------------->snd_nxt (前回送信した SEQ)
     545                 *    |<------------->snd_nxt (前回送信した SEQ)
    576546                 *    |       doff
    577                  *    snd_una (まだ確認されていない)
     547                 *    snd_una (まだ確認されていない)
    578548                 */
    579549                doff = (uint_t)(cep->snd_nxt - cep->snd_una);
    580550
    581551                /*
    582                  *  snd_wnd:  相手の受信可能ウィンドサイズ
    583                  *  snd_cwnd: 輻輳ウィンドサイズ
     552                 *  snd_wnd:  相手の受信可能ウィンドサイズ
     553                 *  snd_cwnd: 輻輳ウィンドサイズ
    584554                 *
    585                  *  win: どちらか小さいウィンドサイズに設定する。
     555                 *  win: どちらか小さいウィンドサイズに設定する。
    586556                 */
    587557                win   = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd;
    588558       
    589                 /* 出力フラグの設定 */
     559                /* 出力フラグの設定 */
    590560                flags = tcp_outflags[cep->fsm_state];
    591561                if (cep->flags & TCP_CEP_FLG_NEED_FIN)
     
    596566
    597567                        /*
    598                          *  もし、送信ウインドサイズ (win) が 0 なら 1 オクテット送信する。
    599                          *  そうでなければ、持続タイムアウトをキャンセルし、
    600                          *  再送信回数 (rxtshift) を 0 にする。
     568                         *  もし、送信ウインドサイズ (win) が 0 なら 1 オクテット送信する。
     569                         *  そうでなければ、持続タイムアウトをキャンセルし、
     570                         *  再送信回数 (rxtshift) を 0 にする。
    601571                         */
    602572                        if (win == 0) {
    603573
    604574                                /*
    605                                  *  doff:        送信するオクテット数。
    606                                  *  swbuf_count: 送信バッファの使用中サイズ
     575                                 *  doff:        送信するオクテット数。
     576                                 *  swbuf_count: 送信バッファの使用中サイズ
    607577                                 *
    608                                  *  送信バッファに残っているオクテットが、これから
    609                                  *  送信しようとしているオクテット数より多ければ
    610                                  *  FIN フラグをクリアする。
     578                                 *  送信バッファに残っているオクテットが、これから
     579                                 *  送信しようとしているオクテット数より多ければ
     580                                 *  FIN フラグをクリアする。
    611581                                 */
    612582                                if (doff < cep->swbuf_count)
     
    616586                        else {
    617587                                /*
    618                                  *  TCP_TIM_PERSIST: 持続タイマ
    619                                  *  rxtshift:        再送信回数の log(2)
     588                                 *  TCP_TIM_PERSIST: 持続タイマ
     589                                 *  rxtshift:        再送信回数の log(2)
    620590                                 */
    621591                                cep->timer[TCP_TIM_PERSIST] = 0;
     
    625595
    626596                /*
    627                  *  len: 今回送信するオクテット数
    628                  *        swbuf_count (送信バッファにあるオクテット数)
     597                 *  len: 今回送信するオクテット数
     598                 *        swbuf_count (送信バッファにあるオクテット数)
    629599                 *                                    |
    630600                 *    0                               V
     
    634604                 *    ^               ^<------------->
    635605                 *    |               |      len
    636                  *    |<------------->snd_nxt (前回送信した SEQ)
     606                 *    |<------------->snd_nxt (前回送信した SEQ)
    637607                 *    |       doff
    638                  *    snd_una (まだ確認されていない)
     608                 *    snd_una (まだ確認されていない)
    639609                 */
    640610                if (cep->swbuf_count < win)
     
    644614
    645615                /*
    646                  *  すでに送信されていれば、SYN ビットをオフする。
    647                  *  しかし、以下の条件では送信を控える。
     616                 *  すでに送信されていれば、SYN ビットをオフする。
     617                 *  しかし、以下の条件では送信を控える。
    648618                 *
    649                  *    ・状æ
    650 ‹ãŒ SYN 送信。
    651                  *    ・セグメントがデータを含んでいる。
     619                 *    ・状態が SYN 送信。
     620                 *    ・セグメントがデータを含んでいる。
    652621                 */
    653622                if ((flags & TCP_FLG_SYN) && SEQ_GT(cep->snd_nxt, cep->snd_una)) {
    654623                        flags &= ~TCP_FLG_SYN;
    655                         doff --;                /* -1 は SYN フラグ分 */
    656                         len ++;                 /* +1 は SYN フラグ分 */
     624                        doff --;                /* -1 は SYN フラグ分 */
     625                        len ++;                 /* +1 は SYN フラグ分 */
    657626                        if (len > 0 && cep->fsm_state == TCP_FSM_SYN_SENT)
    658627                                break;
     
    667636
    668637                        /*
    669                          *  len が 0 以下なら、0 に設定する。
    670                          *  もし、送信ウィンドウサイズが 0 なら、
    671                          *  再送信タイマをキャンセルし、
    672                          *  前回送信した SEQ (snd_nxt) を
    673                          *  確認された最大送信 SEQ (snd_una) に戻す。
    674                          *  そして、持続タイマーが止まっていれば、再設定する。
     638                         *  len が 0 以下なら、0 に設定する。
     639                         *  もし、送信ウィンドウサイズが 0 なら、
     640                         *  再送信タイマをキャンセルし、
     641                         *  前回送信した SEQ (snd_nxt) を
     642                         *  確認された最大送信 SEQ (snd_una) に戻す。
     643                         *  そして、持続タイマーが止まっていれば、再設定する。
    675644                         */
    676645                        len = 0;
     
    686655
    687656                /*
    688                  *  今回送信するオクテット数 (len) は、
    689                  *  相手の最大受信セグメントサイズ (maxseg) をè¶
    690 ãˆãªã„ようにする。
     657                 *  今回送信するオクテット数 (len) は、
     658                 *  相手の最大受信セグメントサイズ (maxseg) を超えないようにする。
    691659                 */
    692660                if (len > cep->maxseg) {
     
    696664
    697665                /*
    698                  *        swbuf_count (送信バッファにあるオクテット数)
     666                 *        swbuf_count (送信バッファにあるオクテット数)
    699667                 *                                           |
    700668                 *    0                                      V
     
    704672                 *    ^               ^<------------->
    705673                 *    |               |      len
    706                  *    |<------------->snd_nxt (前回送信した SEQ)
     674                 *    |<------------->snd_nxt (前回送信した SEQ)
    707675                 *    |       doff
    708                  *    snd_una (まだ確認されていない)
     676                 *    snd_una (まだ確認されていない)
    709677                 *
    710                  *  今回送信後も、送信バッファにデータが残っていれば
    711                  *  FIN フラグをクリアする。
     678                 *  今回送信後も、送信バッファにデータが残っていれば
     679                 *  FIN フラグをクリアする。
    712680                 */
    713681                if (SEQ_LT(cep->snd_nxt + len, cep->snd_una + cep->swbuf_count))
     
    715683
    716684                /*
    717                  *  ここから win は、受信ウィンドウサイズ。
    718                  *  受信バッファの空き容量
     685                 *  ここから win は、受信ウィンドウサイズ。
     686                 *  受信バッファの空き容量
    719687                 */
    720688                win = cep->rbufsz - cep->rwbuf_count;
    721689
    722690                /*
    723                  *  愚かなウィンドウ・シンドロームの回避処理 (送信側)
     691                 *  愚かなウィンドウ・シンドロームの回避処理 (送信側)
    724692                 *
    725                  *  以下の条件で、送信を行う。
     693                 *  以下の条件で、送信を行う。
    726694                 *
    727                  *    ・フルサイズ (maxseg) のセグメントを送ることができる。
    728                  *    ・相手の最大の受信ウィンドウサイズの 1/2 のデータを
    729                  *      送ることができる。
    730                  *    ・送信バッファを空にでき、アイドルか非é
    731 å»¶ã‚ªãƒ—ションが有効なとき。
     695                 *    ・フルサイズ (maxseg) のセグメントを送ることができる。
     696                 *    ・相手の最大の受信ウィンドウサイズの 1/2 のデータを
     697                 *      送ることができる。
     698                 *    ・送信バッファを空にでき、アイドルか非遅延オプションが有効なとき。
    732699                 */
    733700                if (len) {
    734701
    735702                        /*
    736                          *  今回送信するオクテット数 (len) が
    737                          *  相手の最大受信セグメントサイズ (maxseg) に
    738                          *  一致するときは送信する。
     703                         *  今回送信するオクテット数 (len) が
     704                         *  相手の最大受信セグメントサイズ (maxseg) に
     705                         *  一致するときは送信する。
    739706                         */
    740707                        if (len == cep->maxseg) {
     
    744711
    745712                        /*
    746                          *  今回の送信で、送信バッファを空にでき、
    747                          *  アイドルか非 PUSH オプションが有効なとき。
     713                         *  今回の送信で、送信バッファを空にでき、
     714                         *  アイドルか非 PUSH オプションが有効なとき。
    748715                         */
    749716                        if ((idle || (cep->flags & TCP_CEP_FLG_NO_DELAY)) &&
     
    755722
    756723                        /*
    757                          *  max_sndwnd: 今までの最大送信ウィンドサイズ
    758                          *  snd_nxt:    次に送信する SEQ
    759                          *  snd_max:    送信した最大 SEQ
     724                         *  max_sndwnd: 今までの最大送信ウィンドサイズ
     725                         *  snd_nxt:    次に送信する SEQ
     726                         *  snd_max:    送信した最大 SEQ
    760727                         *
    761                          *  次の条件では送信を行う。
     728                         *  次の条件では送信を行う。
    762729                         *
    763                          *    ・強制送信フラグがセットされている。
    764                          *    ・データ長が相手の最大の受信ウィンドウサイズの 1/2 以上で、
    765                          *      相手の最大の受信ウィンドウサイズが 0 より大きい。
    766                          *    ・次に送信する SEQ が送信した最大 SEQ より小さい、
    767                          *      つまり、再送するとき。
     730                         *    ・強制送信フラグがセットされている。
     731                         *    ・データ長が相手の最大の受信ウィンドウサイズの 1/2 以上で、
     732                         *      相手の最大の受信ウィンドウサイズが 0 より大きい。
     733                         *    ・次に送信する SEQ が送信した最大 SEQ より小さい、
     734                         *      つまり、再送するとき。
    768735                         */
    769736                        if ((cep->flags & TCP_CEP_FLG_FORCE) ||
     
    777744
    778745                /*
    779                  *  愚かなウィンドウ・シンドロームの回避処理 (受信側)
     746                 *  愚かなウィンドウ・シンドロームの回避処理 (受信側)
    780747                 *
    781                  *  ウィンドウサイズがフルサイズの 2 倍のセグメント、あるいは
    782                  *  受信バッファ容量の 1/2 の、いずれか小さいほうの
    783                  *  サイズで増加される場合は、ウィンドウサイズの更新を行う。
     748                 *  ウィンドウサイズがフルサイズの 2 倍のセグメント、あるいは
     749                 *  受信バッファ容量の 1/2 の、いずれか小さいほうの
     750                 *  サイズで増加される場合は、ウィンドウサイズの更新を行う。
    784751                 */
    785752                if (win > 0) {
     
    787754
    788755                        /*
    789                          *  win:              受信バッファの空き容量
    790                          *  MAX_TCP_WIN_SIZE: TCP ヘッダの win フィールドに設定できる最大値
    791                          *  rcv_adv:          受信を期å¾
    792 ã—ている最大の SEQ
    793                          *  rcv_nxt:          受信を期å¾
    794 ã—ている最小の SEQ
     756                         *  win:              受信バッファの空き容量
     757                         *  MAX_TCP_WIN_SIZE: TCP ヘッダの win フィールドに設定できる最大値
     758                         *  rcv_adv:          受信を期待している最大の SEQ
     759                         *  rcv_nxt:          受信を期待している最小の SEQ
    795760                         */
    796761                        if (win < MAX_TCP_WIN_SIZE)
     
    807772       
    808773                /*
    809                  *  ACK を送信する。
     774                 *  ACK を送信する。
    810775                 */
    811776                if (cep->flags & TCP_CEP_FLG_ACK_NOW) {
     
    830795
    831796                /*
    832                  *  snd_nxt: 次に送信する SEQ
    833                  *  snd_una: 未確認の最小送信 SEQ、または確認された最大送信 SEQ
     797                 *  snd_nxt: 次に送信する SEQ
     798                 *  snd_una: 未確認の最小送信 SEQ、または確認された最大送信 SEQ
    834799                 *
    835                  *  相手から FIN を受信し、まだ FIN を送信していないか、
    836                  *  送るデータがないときは、FIN を相手に届けるため、
    837                  *  セグメントを送信する。
     800                 *  相手から FIN を受信し、まだ FIN を送信していないか、
     801                 *  送るデータがないときは、FIN を相手に届けるため、
     802                 *  セグメントを送信する。
    838803                 */
    839804                if ((flags & TCP_FLG_FIN) &&
     
    844809
    845810                /*
    846                  *  送信すべきデータがあり、再送タイマと持続タイマが切れているときは
    847                  *  持続タイマを設定する。
     811                 *  送信すべきデータがあり、再送タイマと持続タイマが切れているときは
     812                 *  持続タイマを設定する。
    848813                 */
    849814                if (cep->swbuf_count && cep->timer[TCP_TIM_REXMT  ] == 0 &&
     
    860825
    861826/*
    862  *  tcptsk_alloc_swbufq -- 送信ウィンドバッファ割り当て
     827 *  tcptsk_alloc_swbufq -- 送信ウィンドバッファ割り当て
    863828 */
    864829
     
    870835
    871836        /*
    872          *  snd_wnd:  相手の受信可能ウィンドサイズ
    873          *  snd_cwnd: 輻輳ウィンドサイズ
     837         *  snd_wnd:  相手の受信可能ウィンドサイズ
     838         *  snd_cwnd: 輻輳ウィンドサイズ
    874839         *
    875          *  win: どちらか小さいウィンドサイズに設定する。
     840         *  win: どちらか小さいウィンドサイズに設定する。
    876841         */
    877842        win = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd;
    878843
    879844        /*
    880          *  相手の受信ウィンドが閉じている場合は、開くまでå¾
    881 æ©Ÿã™ã‚‹ã€‚
     845         *  相手の受信ウィンドが閉じている場合は、開くまで待機する。
    882846         */
    883847        if (win == 0) {
     
    888852#ifdef TCP_CFG_NON_BLOCKING
    889853
    890                 /* ノンブロッキングコール */
     854                /* ノンブロッキングコール */
    891855                if (!IS_PTR_DEFINED(cep->callback)) {
    892856                        syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
    893857
    894                         /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     858                        /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    895859                        cep->snd_tskid = TA_NULL;
    896860                        cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
     
    907871                                                   (GET_TCP_CEPID(cep) & NBA_ID_MASK)), TMO_POL)) != E_OK) {
    908872
    909                         /* ネットワークバッファを予約する。*/
     873                        /* ネットワークバッファを予約する。*/
    910874                        cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_NBUF_PEND;
    911875                        }
    912876                else {
    913877
    914                         /* 送信ウィンドバッファを初期化する。*/
     878                        /* 送信ウィンドバッファを初期化する。*/
    915879                        tcp_init_swbuf(cep);
    916880
     
    921885                                uint_t len;
    922886
    923                                 /* 送信ウィンドバッファの書き込みアドレスを設定する。*/
     887                                /* 送信ウィンドバッファの書き込みアドレスを設定する。*/
    924888                                len = TCP_GET_SWBUF_ADDR(cep, cep->snd_p_buf);
    925889
    926890#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    927891
    928                                 /* コールバック関数を呼び出す。*/
     892                                /* コールバック関数を呼び出す。*/
    929893                                (*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)(uint32_t)len);
    930894
    931895#else   /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
    932896
    933                                 /* コールバック関数を呼び出す。*/
     897                                /* コールバック関数を呼び出す。*/
    934898                                (*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&len);
    935899
     
    937901
    938902
    939                                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     903                                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    940904                                cep->snd_tskid = TA_NULL;
    941905                                cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
     
    947911                                uint_t len;
    948912
    949                                 /* 送信ウィンドバッファにデータを書き込む。*/
     913                                /* 送信ウィンドバッファにデータを書き込む。*/
    950914                                len = TCP_WRITE_SWBUF(cep, cep->snd_data, (uint_t)cep->snd_len);
    951915
    952916#ifdef TCP_CFG_EXTENTIONS
    953917
    954                                 /* 送信緊急ポインタを設定する。*/
     918                                /* 送信緊急ポインタを設定する。*/
    955919                                if (cep->snd_nblk_tfn == TFN_TCP_SND_OOB)
    956920                                        cep->snd_up = cep->snd_una + len;
     
    958922#endif  /* of #ifdef TCP_CFG_EXTENTIONS */
    959923
    960                                 /* フラグを、送信可能に設定し、強制的に送信する。*/
     924                                /* フラグを、送信可能に設定し、強制的に送信する。*/
    961925                                cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR | TCP_CEP_FLG_POST_OUTPUT;
    962926#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    963927
    964                                 /* コールバック関数を呼び出す。*/
     928                                /* コールバック関数を呼び出す。*/
    965929                                (*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)(uint32_t)len);
    966930
    967931#else   /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
    968932
    969                                 /* コールバック関数を呼び出す。*/
     933                                /* コールバック関数を呼び出す。*/
    970934                                (*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&len);
    971935
     
    973937
    974938
    975                                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     939                                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    976940                                cep->snd_tskid = TA_NULL;
    977941                                cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
     
    985949
    986950/*
    987  *  tcptsk_free_swbufq -- 送信ウィンドバッファ開放
     951 *  tcptsk_free_swbufq -- 送信ウィンドバッファ開放
    988952 */
    989953
     
    992956{
    993957        /*
    994          *  受信確認が完了し、ネットワークインタフェースからの
    995          *  出力も完了したときは、送信ウィンドバッファキューを解放する。
    996          */
    997 
    998         /* 送信ウィンドバッファの使用中サイズをリセットする。*/
     958         *  受信確認が完了し、ネットワークインタフェースからの
     959         *  出力も完了したときは、送信ウィンドバッファキューを解放する。
     960         */
     961
     962        /* 送信ウィンドバッファの使用中サイズをリセットする。*/
    999963        cep->swbuf_count = 0;
    1000964
    1001         /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
     965        /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
    1002966        syscall(rel_net_buf(cep->swbufq));
    1003967        cep->swbufq = NULL;
    1004968
    1005         /* フラグを空きに設定する。*/
     969        /* フラグを空きに設定する。*/
    1006970        cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_FREE;
    1007971
    1008         /* 送信ウィンドバッファに空きができたことを知らせる。*/
     972        /* 送信ウィンドバッファに空きができたことを知らせる。*/
    1009973        syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
    1010974
    1011         /* 送信ウィンドバッファの空きå¾
    1012 ã¡ã®ã¨ãã¯ã€TCP 出力タスクを起動する。*/
     975        /* 送信ウィンドバッファの空き待ちのときは、TCP 出力タスクを起動する。*/
    1013976        if ((cep->flags & TCP_CEP_FLG_WBCS_NBUF_REQ) != 0) {
    1014977                sig_sem(SEM_TCP_POST_OUTPUT);
     
    1019982
    1020983/*
    1021  *  TCP 出力タスク
     984 *  TCP 出力タスク
    1022985 */
    1023986
     
    10381001#ifdef SUPPORT_INET6
    10391002
    1040         /* IPv6 のステートレス・アドレス自動設定を実行する。*/
     1003        /* IPv6 のステートレス・アドレス自動設定を実行する。*/
    10411004        in6_if_up(IF_GET_IFNET());
    10421005
     
    10451008        while (true) {
    10461009
    1047                 /* 出力がポストされるまでå¾
    1048 ã¤ã€‚*/
     1010                /* 出力がポストされるまで待つ。*/
    10491011                syscall(wai_sem(SEM_TCP_POST_OUTPUT));
    10501012
     
    10711033
    10721034                        /*
    1073                          *  ネットワークインタフェースから送信が終わっていないときは、
    1074                          *  送信を予約する。
     1035                         *  ネットワークインタフェースから送信が終わっていないときは、
     1036                         *  送信を予約する。
    10751037                         */
    10761038                        if (cep->flags & TCP_CEP_FLG_POST_OUTPUT &&
     
    10871049
    10881050                        /*
    1089                          *  送信予約中に、ネットワークインタフェースから送信が終了したら、
    1090                          *  送信を開始する。ただし、完å
    1091 ¨ã«é€ä¿¡ãŒçµ‚了したときは何もしない。
     1051                         *  送信予約中に、ネットワークインタフェースから送信が終了したら、
     1052                         *  送信を開始する。ただし、完全に送信が終了したときは何もしない。
    10921053                         */
    10931054                        if (cep->flags & TCP_CEP_FLG_RESERVE_OUTPUT) {
     
    11121073
    11131074                                        /*
    1114                                          *  tcp_con_cep のノンブロッキングコールで、
    1115                                          *  未割当のの場合は、ポート番号を割り当てる。
    1116                                          *  p_myaddr が NADR (-1) か、
    1117                                          *  自ポート番号が TCP_PORTANY なら、自動で割り当てる。
     1075                                         *  tcp_con_cep のノンブロッキングコールで、
     1076                                         *  未割当のの場合は、ポート番号を割り当てる。
     1077                                         *  p_myaddr が NADR (-1) か、
     1078                                         *  自ポート番号が TCP_PORTANY なら、自動で割り当てる。
    11181079                                         */
    11191080                                        if (cep->p_myaddr == NADR || cep->p_myaddr->portno == TCP_PORTANY)
     
    11361097                                                        syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
    11371098
    1138                                                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     1099                                                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    11391100                                                cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
    11401101                                                cep->snd_tskid = TA_NULL;
     
    11481109
    11491110                                if (cep->flags & TCP_CEP_FLG_CLOSE_AFTER_OUTPUT) {
    1150                                         /* コネクションを閉じる。*/
     1111                                        /* コネクションを閉じる。*/
    11511112                                        tcp_close(cep);
    11521113                                        cep->flags &= ~TCP_CEP_FLG_CLOSE_AFTER_OUTPUT;
     
    11541115
    11551116                                if (cep->flags & TCP_CEP_FLG_RESTORE_NEXT_OUTPUT) {
    1156                                         /* snd_nxt をå
    1157 ƒã«æˆ»ã™ã€‚*/
     1117                                        /* snd_nxt を元に戻す。*/
    11581118                                        if (SEQ_GT(cep->snd_old_nxt, cep->snd_nxt))
    11591119                                                cep->snd_nxt = cep->snd_old_nxt;
     
    11681128                        } while (ix != last_ix);
    11691129
    1170                 /* 次回は、処理した通信端点を後回しにする。*/
     1130                /* 次回は、処理した通信端点を後回しにする。*/
    11711131                last_ix = sel_ix;
    11721132                }
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_seq.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8472
    8573/*
    86  *  SEQ と ACK 番号は、32 ビット符号付整数で比較する。
     74 *  SEQ と ACK 番号は、32 ビット符号付整数で比較する。
    8775 */
    8876
     
    9381
    9482/*
    95  *  関数シミュレーションマクロ
     83 *  関数シミュレーションマクロ
    9684 */
    9785
     
    9987
    10088/*
    101  *  å
    102 ¨åŸŸå¤‰æ•°
     89 *  全域変数
    10390 */
    10491
    105 extern T_TCP_SEQ tcp_iss;               /* TCP の SEQ の初期値 */
     92extern T_TCP_SEQ tcp_iss;               /* TCP の SEQ の初期値 */
    10693
    10794/*
    108  *  インライン関数
     95 *  インライン関数
    10996 */
    11097
    11198/*
    112  *  init_receive_seq -- 受信 SEQ 番号を初期化する。
     99 *  init_receive_seq -- 受信 SEQ 番号を初期化する。
    113100 */
    114101
     
    120107
    121108/*
    122  *  init_send_seq -- 送信 SEQ 番号を初期化する。
     109 *  init_send_seq -- 送信 SEQ 番号を初期化する。
    123110 */
    124111
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr.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$
     
    135123
    136124/*
    137  *  å
    138 ¨åŸŸå¤‰æ•°
    139  */
    140 
    141 /*
    142  *  TCP の SEQ の初期値、プログラムが起動して、最初に TCP セグメントを
    143  *  送受信するときに、get_tim() により初期化する。
     125 *  全域変数
     126 */
     127
     128/*
     129 *  TCP の SEQ の初期値、プログラムが起動して、最初に TCP セグメントを
     130 *  送受信するときに、get_tim() により初期化する。
    144131 */
    145132T_TCP_SEQ tcp_iss = 0;
     
    148135
    149136/*
    150  *  SNMP の 管理æƒ
    151 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     137 *  SNMP の 管理情報ベース (MIB)
    152138 */
    153139
     
    157143
    158144/*
    159  *  局所変数
    160  */
    161 
    162 static uint16_t tcp_port_auto = TCP_PORT_FIRST_AUTO;    /* 自動割り当て番号     */
    163 
    164 /*
    165  *  tcp_free_reassq -- 受信再構成キューのネットワークバッファを解放する。
     145 *  局所変数
     146 */
     147
     148static uint16_t tcp_port_auto = TCP_PORT_FIRST_AUTO;    /* 自動割り当て番号     */
     149
     150/*
     151 *  tcp_free_reassq -- 受信再構成キューのネットワークバッファを解放する。
    166152 *
    167  *    注意:
    168  *      å¿
    169 è¦ã§ã‚れば、この関数を呼び出す前に、通信端点をロックし、
    170  *      戻った後、解除するå¿
    171 è¦ãŒã‚る。
     153 *    注意:
     154 *      必要であれば、この関数を呼び出す前に、通信端点をロックし、
     155 *      戻った後、解除する必要がある。
    172156 */
    173157
     
    186170
    187171/*
    188  *  tcp_alloc_auto_port -- 自動割り当てポート番号を設定する。
     172 *  tcp_alloc_auto_port -- 自動割り当てポート番号を設定する。
    189173 */
    190174
     
    245229
    246230/*
    247  *  tcp_alloc_port -- 指定されたポート番号を設定する。
     231 *  tcp_alloc_port -- 指定されたポート番号を設定する。
    248232 */
    249233
     
    265249
    266250/*
    267  *  tcp_init -- TCP モジュールの初期化
     251 *  tcp_init -- TCP モジュールの初期化
    268252 */
    269253
     
    281265
    282266/*
    283  * tcp_init_iss シーケンス番号を初期化する。
     267 * tcp_init_iss シーケンス番号を初期化する。
    284268 */
    285269
     
    311295
    312296/*
    313  *  tcp_close -- コネクションを開放する。
     297 *  tcp_close -- コネクションを開放する。
    314298 */
    315299
     
    317301tcp_close (T_TCP_CEP *cep)
    318302{
    319         /* タイマーを停止する。*/
     303        /* タイマーを停止する。*/
    320304        tcp_cancel_timers(cep);
    321305
    322306        /*
    323          *  通信端点をロックし、
    324          *  受信再構成キューのネットワークバッファを解放する。
     307         *  通信端点をロックし、
     308         *  受信再構成キューのネットワークバッファを解放する。
    325309         */
    326310        syscall(wai_sem(cep->semid_lock));
     
    328312        syscall(sig_sem(cep->semid_lock));
    329313
    330         /* 状æ
    331 ‹ã‚’未使用にする。*/
     314        /* 状態を未使用にする。*/
    332315        cep->fsm_state = TCP_FSM_CLOSED;
    333316
    334317        /*
    335          * 以下に関係しないフラグをクリアーする。
    336          * ・送受信ウィンドバッファの省コピー機能
    337          * ・動的な通信端点の生成・削除機能
     318         * 以下に関係しないフラグをクリアーする。
     319         * ・送受信ウィンドバッファの省コピー機能
     320         * ・動的な通信端点の生成・削除機能
    338321         */
    339322        cep->flags &= (TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK |
     
    343326
    344327        if (cep->snd_nblk_tfn != TFN_TCP_UNDEF || cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {
    345                 /* ノンブロッキングコール */
     328                /* ノンブロッキングコール */
    346329
    347330#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
     
    356339
    357340                                case TFN_TCP_ACP_CEP:
    358                                         /* TCP 通信端点からTCP 受付口を解放する。*/
     341                                        /* TCP 通信端点からTCP 受付口を解放する。*/
    359342                                        cep->rep = NULL;
    360343                                        (*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)E_CLS);
     
    363346                                case TFN_TCP_RCV_BUF:
    364347
    365                                         /* 受信ウィンドバッファの空アドレスを獲得する。*/
     348                                        /* 受信ウィンドバッファの空アドレスを獲得する。*/
    366349                                        len = TCP_GET_RWBUF_ADDR(cep, cep->rcv_p_buf);
    367350
    368                                         /* 異常切断等のエラーを設定する。*/
     351                                        /* 異常切断等のエラーを設定する。*/
    369352                                        if (cep->error == E_TMOUT)
    370353                                                len = E_CLS;
     
    377360                                case TFN_TCP_RCV_DAT:
    378361
    379                                         /* 受信ウィンドバッファからデータを取り出す。*/
     362                                        /* 受信ウィンドバッファからデータを取り出す。*/
    380363                                        len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len);
    381364
    382                                         /* 異常切断等のエラーを設定する。*/
     365                                        /* 異常切断等のエラーを設定する。*/
    383366                                        if (cep->error == E_TMOUT)
    384367                                                len = E_CLS;
     
    402385                                        }
    403386
    404                                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     387                                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    405388                                cep->rcv_tskid = TA_NULL;
    406389                                cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
     
    412395
    413396                                case TFN_TCP_CON_CEP:
    414                                         /* TCP 通信端点から TCP 受付口を解放する。*/
     397                                        /* TCP 通信端点から TCP 受付口を解放する。*/
    415398                                        cep->rep = NULL;
    416399                                        (*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)E_CLS);
     
    430413                                        }
    431414
    432                                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     415                                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    433416                                cep->snd_tskid = TA_NULL;
    434417                                cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
     
    448431
    449432                                case TFN_TCP_ACP_CEP:
    450                                         /* TCP 通信端点からTCP 受付口を解放する。*/
     433                                        /* TCP 通信端点からTCP 受付口を解放する。*/
    451434                                        cep->rep = NULL;
    452435                                        len      = E_CLS;
     
    456439                                case TFN_TCP_RCV_BUF:
    457440
    458                                         /* 受信ウィンドバッファの空アドレスを獲得する。*/
     441                                        /* 受信ウィンドバッファの空アドレスを獲得する。*/
    459442                                        len = TCP_GET_RWBUF_ADDR(cep, cep->rcv_p_buf);
    460443
    461                                         /* 異常切断等のエラーを設定する。*/
     444                                        /* 異常切断等のエラーを設定する。*/
    462445                                        if (cep->error == E_TMOUT)
    463446                                                len = E_CLS;
     
    470453                                case TFN_TCP_RCV_DAT:
    471454
    472                                         /* 受信ウィンドバッファからデータを取り出す。*/
     455                                        /* 受信ウィンドバッファからデータを取り出す。*/
    473456                                        len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len);
    474457
    475                                         /* 異常切断等のエラーを設定する。*/
     458                                        /* 異常切断等のエラーを設定する。*/
    476459                                        if (cep->error == E_TMOUT)
    477460                                                len = E_CLS;
     
    495478                                        }
    496479
    497                                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     480                                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    498481                                cep->rcv_tskid = TA_NULL;
    499482                                cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
     
    506489
    507490                                case TFN_TCP_CON_CEP:
    508                                         /* TCP 通信端点から TCP 受付口を解放する。*/
     491                                        /* TCP 通信端点から TCP 受付口を解放する。*/
    509492                                        cep->rep = NULL;
    510493                                        len      = E_CLS;
     
    526509                                        }
    527510
    528                                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     511                                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    529512                                cep->snd_tskid = TA_NULL;
    530513                                cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
     
    536519
    537520                /*
    538                  *  通信端点をロックし、
    539                  *  送受信ウィンドバッファキューのネットワークバッファを解放する。
     521                 *  通信端点をロックし、
     522                 *  送受信ウィンドバッファキューのネットワークバッファを解放する。
    540523                 */
    541524                syscall(wai_sem(cep->semid_lock));
     
    544527                syscall(sig_sem(cep->semid_lock));
    545528
    546                 /* 未使用になったことを知らせる。*/
     529                /* 未使用になったことを知らせる。*/
    547530                syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
    548531                }
    549         else {  /* 非ノンブロッキングコール */
     532        else {  /* 非ノンブロッキングコール */
    550533
    551534#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    552535
    553                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     536                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    554537                cep->snd_tskid = cep->rcv_tskid = TA_NULL;
    555538                cep->snd_tfn   = cep->rcv_tfn   = TFN_TCP_UNDEF;
    556539
    557540                /*
    558                  *  通信端点をロックし、
    559                  *  送受信ウィンドバッファキューのネットワークバッファを解放する。
     541                 *  通信端点をロックし、
     542                 *  送受信ウィンドバッファキューのネットワークバッファを解放する。
    560543                 */
    561544                syscall(wai_sem(cep->semid_lock));
     
    564547                syscall(sig_sem(cep->semid_lock));
    565548
    566                 /* 未使用になったことを知らせる。*/
     549                /* 未使用になったことを知らせる。*/
    567550                syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
    568551
    569552                /*
    570                  * å
    571 ¥å‡ºåŠ›ã‚¿ã‚¹ã‚¯ã‚’起床して、
    572                  * 送受信不可になったことを知らせる。
     553                 * 入出力タスクを起床して、
     554                 * 送受信不可になったことを知らせる。
    573555                 */
    574556                syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
     
    585567
    586568/*
    587  *  tcp_drop -- TCP 接続を破棄する。
     569 *  tcp_drop -- TCP 接続を破棄する。
    588570 */
    589571
     
    603585                cep->fsm_state = TCP_FSM_CLOSED;
    604586
    605                 /* 送信と、送信後コネクションの切断を指示する。*/
     587                /* 送信と、送信後コネクションの切断を指示する。*/
    606588                cep->flags |=  TCP_CEP_FLG_POST_OUTPUT | TCP_CEP_FLG_CLOSE_AFTER_OUTPUT;
    607589                sig_sem(SEM_TCP_POST_OUTPUT);
     
    613595
    614596/*
    615  *  tcp_respond -- TCP の単一メッセージを送信する。
     597 *  tcp_respond -- TCP の単一メッセージを送信する。
    616598 */
    617599
     
    628610
    629611        /*
    630          *  output が NULL でなければ、これはå
    631 ¥åŠ›ã—たセグメントの
    632          *  net_buf で、そのまま再利用する。
     612         *  output が NULL でなければ、これは入力したセグメントの
     613         *  net_buf で、そのまま再利用する。
    633614         */
    634615        if (output != NULL) {
     
    637618
    638619                /*
    639                  * IPv4 では、IP ヘッダのオプションを削除する。
    640                  * IPv6 では、拡張ヘッダを削除する。
     620                 * IPv4 では、IP ヘッダのオプションを削除する。
     621                 * IPv6 では、拡張ヘッダを削除する。
    641622                 */
    642623                if (IP_REMOVE_OPTIONS(output) != E_OK) {
     
    647628                iph  = GET_IP_HDR(output);
    648629
    649                 /* IP アドレスを交換する。*/
     630                /* IP アドレスを交換する。*/
    650631                ipaddr = iph->src;
    651632                iph->src = iph->dst;
     
    654635#if defined(SUPPORT_INET6)
    655636
    656                 /* トラヒッククラスとフローラベルをクリアする。*/
     637                /* トラヒッククラスとフローラベルをクリアする。*/
    657638                iph->vcf = htonl(IP6_MAKE_VCF(IP6_VCF_V(ntohl(iph->vcf)), 0));
    658639
    659640#endif  /* of #if defined(SUPPORT_INET6) */
    660641
    661                 /* TCP SDU 長を 0 にする。*/
     642                /* TCP SDU 長を 0 にする。*/
    662643                SET_IP_SDU_SIZE(iph, TCP_HDR_SIZE);
    663644
    664645                tcph = GET_TCP_HDR(output, IF_IP_TCP_HDR_OFFSET);
    665646
    666                 /* ポート番号を交換する。*/
     647                /* ポート番号を交換する。*/
    667648                portno = tcph->sport;
    668649                tcph->sport = tcph->dport;
    669650                tcph->dport = portno;
    670651
    671                 /* TCP ヘッダにæƒ
    672 å ±ã‚’設定する。*/
     652                /* TCP ヘッダに情報を設定する。*/
    673653                tcph->doff = TCP_MAKE_DATA_OFF(TCP_HDR_SIZE);
    674654                }
    675655       
    676         /* cep が NULL であれば、何もしないで終了する。*/
     656        /* cep が NULL であれば、何もしないで終了する。*/
    677657        else if (cep == NULL)
    678658                return;
     
    693673
    694674        /*
    695          *  チェックサムを設定する。
     675         *  チェックサムを設定する。
    696676         */
    697677        tcph->sum = IN_CKSUM(output, IPPROTO_TCP, IF_IP_TCP_HDR_OFFSET,
    698678                             (uint_t)GET_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET));
    699679
    700         /* ネットワークバッファ長を調整する。*/
     680        /* ネットワークバッファ長を調整する。*/
    701681        output->len = (uint16_t)GET_IF_IP_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET);
    702682
     
    707687#endif  /* of #ifdef TCP_CFG_TRACE */
    708688
    709         /* ネットワーク層 (IP) の出力関数を呼び出す。*/
     689        /* ネットワーク層 (IP) の出力関数を呼び出す。*/
    710690        IP_OUTPUT(output, TMO_TCP_OUTPUT);
    711691        }
    712692
    713693/*
    714  *  tcp_set_header -- TCP ヘッダを設定する。
     694 *  tcp_set_header -- TCP ヘッダを設定する。
    715695 */
    716696
     
    720700        T_TCP_HDR       *tcph = GET_TCP_HDR(nbuf, thoff);
    721701
    722         /* TCP ヘッダにæƒ
    723 å ±ã‚’設定する。*/
     702        /* TCP ヘッダに情報を設定する。*/
    724703        tcph->sport     = htons(cep->myaddr.portno);
    725704        tcph->dport     = htons(cep->dstaddr.portno);
     
    729708
    730709/*
    731  *  tcp_get_segment -- TCP セグメントを獲得し、ヘッダを設定する。
     710 *  tcp_get_segment -- TCP セグメントを獲得し、ヘッダを設定する。
    732711 *
    733  *    戻り値 エラーコード
    734  *    optlen    オプションサイズ、4 オクテット単位
    735  *    len       TCP SDU サイズ
     712 *    戻り値       エラーコード
     713 *    optlen    オプションサイズ、4 オクテット単位
     714 *    len       TCP SDU サイズ
    736715 */
    737716
     
    742721        ER              error;
    743722
    744         /* IP データグラムを獲得する。*/
     723        /* IP データグラムを獲得する。*/
    745724        if ((error = IN_GET_DATAGRAM(nbuf,
    746725                                     (uint_t)(TCP_HDR_SIZE + optlen + len),
     
    754733                }
    755734
    756         /* TCP ヘッダにæƒ
    757 å ±ã‚’設定する。*/
     735        /* TCP ヘッダに情報を設定する。*/
    758736        tcp_set_header(*nbuf, cep, IF_IP_TCP_HDR_OFFSET, optlen);
    759737
     
    762740
    763741/*
    764  *  tcp_can_send_more -- 送信できるか、通信端点の状æ
    765 ‹ã‚’見る。
     742 *  tcp_can_send_more -- 送信できるか、通信端点の状態を見る。
    766743 */
    767744
     
    771748        ER      error;
    772749
    773         /* 送信できるか、CEP の FSM 状æ
    774 ‹ã‚’見る。*/
     750        /* 送信できるか、CEP の FSM 状態を見る。*/
    775751        if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) {
    776752                if ((error = cep->error) == E_OK)
     
    779755#ifdef TCP_CFG_NON_BLOCKING
    780756
    781                 /* タイムアウトをチェックする。*/
    782                 if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
     757                /* タイムアウトをチェックする。*/
     758                if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
    783759
    784760                        if (!IS_PTR_DEFINED(cep->callback))
     
    788764#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    789765
    790                                 /* コールバック関数を呼び出す。*/
     766                                /* コールバック関数を呼び出す。*/
    791767                                (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error);
    792768
    793769#else   /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
    794770
    795                                 /* コールバック関数を呼び出す。*/
     771                                /* コールバック関数を呼び出す。*/
    796772                                (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)&error);
    797773
     
    817793#ifdef TCP_CFG_NON_BLOCKING
    818794
    819                         /* タイムアウトをチェックする。*/
    820                         if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
     795                        /* タイムアウトをチェックする。*/
     796                        if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
    821797                                if (!IS_PTR_DEFINED(cep->callback))
    822798                                        error = E_OBJ;
     
    825801#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    826802
    827                                         /* コールバック関数を呼び出す。*/
     803                                        /* コールバック関数を呼び出す。*/
    828804                                        (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)E_OBJ);
    829805
    830806#else   /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
    831807
    832                                         /* コールバック関数を呼び出す。*/
     808                                        /* コールバック関数を呼び出す。*/
    833809                                        error = E_OBJ;
    834810                                        (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)&error);
     
    856832
    857833/*
    858  *  tcp_can_recv_more -- 受信できるか、通信端点の状æ
    859 ‹ã‚’見る。
     834 *  tcp_can_recv_more -- 受信できるか、通信端点の状態を見る。
    860835 *
    861  *  注意: 戻り値
     836 *  注意: 戻り値
    862837 *
    863  *      E_OK    受信可能
    864  *      E_OBJ   ç›¸æ‰‹ã‹ã‚‰åˆ‡æ–­ã•ã‚ŒãŸã‹ã€ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—た。
     838 *      E_OK    受信可能
     839 *      E_OBJ   相手から切断されたか、エラーが発生した。
    865840 */
    866841
     
    869844{
    870845        /*
    871          *  受信できるか、fsm_state を見る。受信できない場合は
    872          *  長さ 0、またはエラーを返す。
     846         *  受信できるか、fsm_state を見る。受信できない場合は
     847         *  長さ 0、またはエラーを返す。
    873848         */
    874849        if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state) &&
     
    878853#ifdef TCP_CFG_NON_BLOCKING
    879854
    880                 /* タイムアウトをチェックする。*/
    881                 if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
     855                /* タイムアウトをチェックする。*/
     856                if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
    882857
    883858                        if (!IS_PTR_DEFINED(cep->callback))
     
    886861#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    887862
    888                                 /* コールバック関数を呼び出す。*/
     863                                /* コールバック関数を呼び出す。*/
    889864                                (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)*error);
    890865
    891866#else   /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
    892867
    893                                 /* コールバック関数を呼び出す。*/
     868                                /* コールバック関数を呼び出す。*/
    894869                                (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error);
    895870
     
    903878
    904879                /*
    905                  *  通信端点をロックして、
    906                  *  受信ウィンドバッファキューのネットワークバッファを解放する。
     880                 *  通信端点をロックして、
     881                 *  受信ウィンドバッファキューのネットワークバッファを解放する。
    907882                 */
    908883                syscall(wai_sem(cep->semid_lock));
     
    920895#ifdef TCP_CFG_NON_BLOCKING
    921896
    922                         /* タイムアウトをチェックする。*/
    923                         if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
     897                        /* タイムアウトをチェックする。*/
     898                        if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
    924899                                if (!IS_PTR_DEFINED(cep->callback))
    925900                                        *error = E_OBJ;
     
    928903#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    929904
    930                                         /* コールバック関数を呼び出す。*/
     905                                        /* コールバック関数を呼び出す。*/
    931906                                        (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)E_OBJ);
    932907
    933908#else   /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
    934909
    935                                         /* コールバック関数を呼び出す。*/
     910                                        /* コールバック関数を呼び出す。*/
    936911                                        *error = E_OBJ;
    937912                                        (*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error);
     
    958933
    959934/*
    960  *  tcp_wait_rwbuf -- 受信ウィンドバッファにデータがå
    961 ¥ã‚‹ã®ã‚’å¾
    962 ã¤ã€‚
     935 *  tcp_wait_rwbuf -- 受信ウィンドバッファにデータが入るのを待つ。
    963936 */
    964937
     
    970943
    971944        if (cep->rwbuf_count == 0) {
    972                 /* 受信ウィンドバッファにデータがなければ、å
    973 ¥åŠ›ãŒã‚るまでå¾
    974 ã¤ã€‚*/
     945                /* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/
    975946                while (cep->rwbuf_count == 0) {
    976947                        if ((error = twai_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY, TWF_ORW, &flag, tmout)) != E_OK) {
     
    980951
    981952                        /*
    982                          *  受信できるか、fsm_state を見る。受信できない状æ
    983 ‹ã§ã€
    984                          *  受信ウィンドバッファに文字がない場合は終了する。
     953                         *  受信できるか、fsm_state を見る。受信できない状態で、
     954                         *  受信ウィンドバッファに文字がない場合は終了する。
    985955                         */
    986956                        if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state) &&
     
    988958
    989959                                /*
    990                                  *  通信端点をロックして、
    991                                  *  受信ウィンドバッファキューのネットワークバッファを解放する。
     960                                 *  通信端点をロックして、
     961                                 *  受信ウィンドバッファキューのネットワークバッファを解放する。
    992962                                 */
    993963#ifdef TCP_CFG_RWBUF_CSAVE
     
    1008978
    1009979/*
    1010  *  tcp_move_ra2rw -- 受信再構成キューで再構成したセグメントを受信ウィンドバッファに書き込む。
     980 *  tcp_move_ra2rw -- 受信再構成キューで再構成したセグメントを受信ウィンドバッファに書き込む。
    1011981 */
    1012982
     
    1018988
    1019989        /*
    1020          *  受信データを受信ウィンドバッファに書き込み、
    1021          *  rcv_nxt を完了した SEQ だけ進める。
     990         *  受信データを受信ウィンドバッファに書き込み、
     991         *  rcv_nxt を完了した SEQ だけ進める。
    1022992         */
    1023993        if (TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) {
     
    1028998                                break;
    1029999
    1030                         /* 次のセグメントに進む。*/
     1000                        /* 次のセグメントに進む。*/
    10311001                        cep->reassq = qhdr->next;
    10321002
    1033                         /* FIN フラグのみ残す。*/
     1003                        /* FIN フラグのみ残す。*/
    10341004                        flags &= TCP_FLG_FIN;
    10351005
    1036                         /* データを受信ウィンドバッファに書き込む。*/
     1006                        /* データを受信ウィンドバッファに書き込む。*/
    10371007                        TCP_WRITE_RWBUF(cep, q, (uint_t)(GET_TCP_IP_Q_HDR(q)->thoff));
    10381008                        }
     
    10461016
    10471017/*
    1048  *  tcp_write_raque -- 受信セグメントを再構成して、受信再構成キューに繋ぐ。
     1018 *  tcp_write_raque -- 受信セグメントを再構成して、受信再構成キューに繋ぐ。
    10491019 */
    10501020
     
    10571027        int32_t         len;
    10581028
    1059         /*  TCP ヘッダの位置を保存する。*/
     1029        /*  TCP ヘッダの位置を保存する。*/
    10601030        GET_TCP_IP_Q_HDR(input)->thoff = thoff;
    10611031
    10621032        /*
    1063          *  MAX_TCP_REALLOC_SIZE 以下の場合は、新たにネットワークバッファを
    1064          *  割当てて、データをコピーする。
    1065          *  このとき、IP のオプション(拡張ヘッダ)と TCP のオプションは削除する。
     1033         *  MAX_TCP_REALLOC_SIZE 以下の場合は、新たにネットワークバッファを
     1034         *  割当てて、データをコピーする。
     1035         *  このとき、IP のオプション(拡張ヘッダ)と TCP のオプションは削除する。
    10661036         */
    10671037        len  = IF_IP_TCP_HDR_SIZE + inqhdr->slen;
     
    10701040
    10711041                /*
    1072                  *  ネットワークバッファが確保できないときは割当てない。
     1042                 *  ネットワークバッファが確保できないときは割当てない。
    10731043                 */
    10741044                if (tget_net_buf(&new, (uint_t)len, TMO_TCP_GET_NET_BUF) != E_OK)
     
    10951065
    10961066        /*
    1097          *  今回追加するセグメントより前(p)と後(q)のセグメントを探す。
     1067         *  今回追加するセグメントより前(p)と後(q)のセグメントを探す。
    10981068         *
    10991069         *    +-------------------------+
     
    11181088
    11191089        /*
    1120          *  前(p)のセグメントがあれば、既に、今回と同じセグメントが
    1121          *  あることもある。その場合は、その部分またはå
    1122 ¨ã¦ã‚’破棄する。
     1090         *  前(p)のセグメントがあれば、既に、今回と同じセグメントが
     1091         *  あることもある。その場合は、その部分または全てを破棄する。
    11231092         *
    11241093         *    qhdr->seq
     
    11421111
    11431112                        /*
    1144                          *  len が正であれば、前(p) のセグメントと今回の
    1145                          *  セグメントが重なっている。
     1113                         *  len が正であれば、前(p) のセグメントと今回の
     1114                         *  セグメントが重なっている。
    11461115                         */
    11471116                        if (len >= inqhdr->slen) {
    11481117
    11491118                                /*
    1150                                  *  len が今回のセグメントと同じなら
    1151                                  *  まったく同じセグメントなので何もしない。
     1119                                 *  len が今回のセグメントと同じなら
     1120                                 *  まったく同じセグメントなので何もしない。
    11521121                                 */
    11531122                                if (new != NULL) {
     
    11601129
    11611130                        /*
    1162                          *  追加するセグメントの SDU を len 分前に詰める。
     1131                         *  追加するセグメントの SDU を len 分前に詰める。
    11631132                         */
    11641133                        inqhdr->seq  += len;
     
    11691138
    11701139        /*
    1171          *  キューにつなぐ前に、新しいネットワークバッファにデータを移す。
    1172          *  TCP のオプションは削除する。
     1140         *  キューにつなぐ前に、新しいネットワークバッファにデータを移す。
     1141         *  TCP のオプションは削除する。
    11731142         */
    11741143        if (new != NULL) {
     
    11831152
    11841153        /*
    1185          *  重なる後(q)のセグメントを調整する。
     1154         *  重なる後(q)のセグメントを調整する。
    11861155         *
    11871156         *    inqhdr->seq
     
    12031172                len = inqhdr->seq + inqhdr->slen - qhdr->seq;
    12041173                if (len <= 0)
    1205                         /* len が負なら重なっていない。*/
     1174                        /* len が負なら重なっていない。*/
    12061175                        break;
    12071176                else if (len < qhdr->slen) {
    12081177
    12091178                        /*
    1210                          *  後ろで重なっているセグメントの SDU を len 分前に詰める。
     1179                         *  後ろで重なっているセグメントの SDU を len 分前に詰める。
    12111180                         *
    12121181                         *    inqhdr->seq
     
    12521221
    12531222/*
    1254  *  tcp_rexmt_val -- 再送タイムアウト値を返す。
     1223 *  tcp_rexmt_val -- 再送タイムアウト値を返す。
    12551224 */
    12561225
     
    12681237
    12691238/*
    1270  *  tcp_init_cep -- 通信端点を初期化する。
     1239 *  tcp_init_cep -- 通信端点を初期化する。
    12711240 */
    12721241
     
    12761245#ifdef TCP_CFG_RWBUF_CSAVE
    12771246        /*
    1278          * 受信ウィンドバッファの省コピー機能を有効にした場合、
    1279          * 受信ウィンドバッファがå
    1280 ¨ã¦è§£æ”¾ã•ã‚Œãªã„ことがあるので、
    1281          * ここで解放する。
     1247         * 受信ウィンドバッファの省コピー機能を有効にした場合、
     1248         * 受信ウィンドバッファが全て解放されないことがあるので、
     1249         * ここで解放する。
    12821250         */
    12831251        if (cep->rwbufq != NULL) {
     
    12931261        cep->rbuf_rptr  = cep->rbuf_wptr = cep->rbuf;
    12941262
    1295         cep->maxseg     = DEF_TCP_SND_SEG;              /* 送信最大セグメントサイズ         */
    1296         cep->srtt       = TCP_TVAL_SRTT_BASE;           /* 滑らかな移動平均                     */
     1263        cep->maxseg     = DEF_TCP_SND_SEG;              /* 送信最大セグメントサイズ         */
     1264        cep->srtt       = TCP_TVAL_SRTT_BASE;           /* 滑らかな移動平均                     */
    12971265        cep->rttvar     = ((TCP_TVAL_RTO_BASE - TCP_TVAL_SRTT_BASE) << TCP_RTTVAR_SHIFT) / 4;
    1298                                                         /* 滑らかな分散                           */
    1299         cep->rxtcur     = TCP_TVAL_RTO_BASE;            /* 現在の再送値                           */
    1300         cep->snd_cwnd   =  MAX_TCP_WIN_SIZE;            /* 輻輳ウィンドサイズ                  */
    1301         cep->snd_ssthresh= MAX_TCP_WIN_SIZE;            /* 輻輳ウィンドサイズ(snd_cwnd)の     åˆ¶é™å€¤       */
     1266                                                        /* 滑らかな分散                               */
     1267        cep->rxtcur     = TCP_TVAL_RTO_BASE;            /* 現在の再送値                               */
     1268        cep->snd_cwnd   =  MAX_TCP_WIN_SIZE;            /* 輻輳ウィンドサイズ                    */
     1269        cep->snd_ssthresh= MAX_TCP_WIN_SIZE;            /* 輻輳ウィンドサイズ(snd_cwnd)の 制限値     */
    13021270
    13031271        /*
    1304          * 以下に関係しないフラグをクリアーする。
    1305          * ・送受信ウィンドバッファの省コピー機能
    1306          * ・動的な通信端点の生成・削除機能
     1272         * 以下に関係しないフラグをクリアーする。
     1273         * ・送受信ウィンドバッファの省コピー機能
     1274         * ・動的な通信端点の生成・削除機能
    13071275         */
    13081276        cep->flags &= (TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK |
    13091277                       TCP_CEP_FLG_DYNAMIC       | TCP_CEP_FLG_VALID);
    13101278
    1311         /* セマフォを初期化する。*/
     1279        /* セマフォを初期化する。*/
    13121280        sig_sem (cep->semid_lock);
    13131281
    1314         /* フラグを初期化する。*/
     1282        /* フラグを初期化する。*/
    13151283        syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
    13161284        syscall(clr_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY));
     
    13181286
    13191287/*
    1320  *  tcp_notify -- ICMP エラーの処理
     1288 *  tcp_notify -- ICMP エラーの処理
    13211289 */
    13221290
     
    13341302
    13351303                /*
    1336                  *  コネクション開設済で、ホスト到達不能エラーの場合は、
    1337                  *  再送により処理する。
     1304                 *  コネクション開設済で、ホスト到達不能エラーの場合は、
     1305                 *  再送により処理する。
    13381306                 */
    13391307                if (cep->fsm_state == TCP_FSM_ESTABLISHED &&
     
    13421310
    13431311                /*
    1344                  *  コネクション開設中、同じエラーを何度か受信した場合は、
    1345                  *  å¾
    1346 ã¡çŠ¶æ
    1347 ‹ã‚’解除し、対応する関数にエラーを返させる。
     1312                 *  コネクション開設中、同じエラーを何度か受信した場合は、
     1313                 *  待ち状態を解除し、対応する関数にエラーを返させる。
    13481314                 */
    13491315                if (cep->fsm_state < TCP_FSM_ESTABLISHED && cep->rxtshift > 3 && cep->net_error != E_OK) {
     
    13541320                        cep->net_error = error;
    13551321
    1356                         /* 送信を指示する。*/
     1322                        /* 送信を指示する。*/
    13571323                        cep->flags |=  TCP_CEP_FLG_POST_OUTPUT;
    13581324                        sig_sem(SEM_TCP_POST_OUTPUT);
     
    13621328
    13631329/*
    1364  *  tcp_find_cep -- ポート番号から TCP 通信端点を得る。
     1330 *  tcp_find_cep -- ポート番号から TCP 通信端点を得る。
    13651331 *
    1366  *    注意: dstaddr は、
    1367  *          TINET-1.2 からネットワークバイトオーダ、
    1368  *          TINET-1.1 までは、ホストバイトオーダ
     1332 *    注意: dstaddr は、
     1333 *          TINET-1.2 からネットワークバイトオーダ、
     1334 *          TINET-1.1 までは、ホストバイトオーダ
    13691335 */
    13701336
     
    13751341       
    13761342        /*
    1377          *  状æ
    1378 ‹ãŒ SYN 送信済み以後は、
    1379          *  IP アドレスとポート番号が一致する通信端点を探索する。
     1343         *  状態が SYN 送信済み以後は、
     1344         *  IP アドレスとポート番号が一致する通信端点を探索する。
    13801345         */
    13811346        for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) {
     
    13881353                }
    13891354
    1390         /* 受動オープン中の通信端点を探索する。*/     
     1355        /* 受動オープン中の通信端点を探索する。*/
    13911356        for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) {
    13921357                if (cep->fsm_state == TCP_FSM_LISTEN &&
     
    14001365
    14011366/*
    1402  *  tcp_lock_cep -- TCP 通信端点をロックする。
     1367 *  tcp_lock_cep -- TCP 通信端点をロックする。
    14031368 */
    14041369
     
    14111376        *p_cep = NULL;
    14121377
    1413         /* TCP 通信端点 ID をチェックする。*/
     1378        /* TCP 通信端点 ID をチェックする。*/
    14141379        if (!VAID_TCP_CEPID(cepid))
    14151380                return E_ID;
    14161381
    1417         /* TCP 通信端点を得る。*/
     1382        /* TCP 通信端点を得る。*/
    14181383        cep = GET_TCP_CEP(cepid);
    14191384
    1420         /* TCP 通信端点をロックする。*/
     1385        /* TCP 通信端点をロックする。*/
    14211386        syscall(wai_sem(cep->semid_lock));
    14221387
    1423         /* TCP 通信端点をチェックする。*/
     1388        /* TCP 通信端点をチェックする。*/
    14241389        if (!VALID_TCP_CEP(cep)) {
    14251390                syscall(sig_sem(cep->semid_lock));
     
    14281393
    14291394        /*
    1430          *  API 機能コードとタスク識別子を記録する。
    1431          *  すでに記録されていれば、ペンディング中なのでエラー
     1395         *  API 機能コードとタスク識別子を記録する。
     1396         *  すでに記録されていれば、ペンディング中なのでエラー
    14321397         */
    14331398        if (IS_TFN_TCP_RCV(tfn)) {
     
    14511416                }
    14521417
    1453         /* 通信端点のロックを解除する。*/
     1418        /* 通信端点のロックを解除する。*/
    14541419        syscall(sig_sem(cep->semid_lock));
    14551420
     
    14651430
    14661431/*
    1467  *  コネクションの状æ
    1468 ‹
     1432 *  コネクションの状態
    14691433 */
    14701434
     
    14841448
    14851449/*
    1486  *  trace_putchar -- シリアルポートへの文字出力
     1450 *  trace_putchar -- シリアルポートへの文字出力
    14871451 */
    14881452
     
    14951459
    14961460/*
    1497  *  シリアルポートへの書式付文字列出力ライブラリ
    1498  */
    1499 
    1500 /*
    1501  *  数値変換のための変換表
     1461 *  シリアルポートへの書式付文字列出力ライブラリ
     1462 */
     1463
     1464/*
     1465 *  数値変換のための変換表
    15021466 */
    15031467
     
    15061470
    15071471/*
    1508  *  convert -- trace_printf の数値変換
     1472 *  convert -- trace_printf の数値変換
    15091473 */
    15101474
     
    15431507
    15441508/*
    1545  *  trace_printf -- シリアルポートへの書式付文字列出力
     1509 *  trace_printf -- シリアルポートへの書式付文字列出力
    15461510 */
    15471511
     
    15561520        va_start(ap, fmt);
    15571521        while ((ch = *fmt ++) != '\0') {
    1558                 if (ch != '%') {                /* 書式指定以外 */
     1522                if (ch != '%') {                /* 書式指定以外 */
    15591523                        trace_putchar(portid, (char)ch);
    15601524                        continue;
     
    15631527                width = longflag = 0;
    15641528                padchar = ' ';
    1565                 if ((ch = *fmt ++) == '0') {    /* 上位桁の 0 */
     1529                if ((ch = *fmt ++) == '0') {    /* 上位桁の 0 */
    15661530                        padchar = '0';
    15671531                        ch = *fmt ++;
    15681532                        }
    15691533
    1570                 while ('0' <= ch && ch <= '9') {        /* 出力å¹
    1571  */
     1534                while ('0' <= ch && ch <= '9') {        /* 出力幅 */
    15721535                        width = width * 10 + ch - '0';
    15731536                        ch = *fmt ++;
    15741537                        }
    15751538
    1576                 while (ch == 'l') {             /* long (long) の指定 */
     1539                while (ch == 'l') {             /* long (long) の指定 */
    15771540                        longflag ++;
    15781541                        ch = *fmt ++;
     
    16351598
    16361599/*
    1637  *  TCP フラグ文字列
     1600 *  TCP フラグ文字列
    16381601 */
    16391602
     
    16541617
    16551618/*
    1656  *  送信 TCP ヘッダのトレース出力
     1619 *  送信 TCP ヘッダのトレース出力
    16571620 */
    16581621
     
    17051668
    17061669/*
    1707  *  受信 TCP ヘッダのトレース出力
     1670 *  受信 TCP ヘッダのトレース出力
    17081671 *
    1709  *    注意: TCP ヘッダå†
    1710 ã¯ã€ã™ã§ã«ãƒ›ã‚¹ãƒˆãƒã‚¤ãƒˆã‚ªãƒ¼ãƒ€
     1672 *    注意: TCP ヘッダ内は、すでにホストバイトオーダ
    17111673 */
    17121674
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr_cs.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$
     
    137125
    138126/*
    139  *  TCP 通信端点の送信ウィンドバッファの省コピー機能が有効な場合
    140  *  ただし、通信端点の送信ウィンドバッファ(cep->sbuf)の値により、
    141  *  TCP 通信端点毎に送信ウィンドバッファの省コピー機能を使用するか、
    142  *  使用しないかを切り替える。
    143  */
    144 
    145 /*
    146  *  tcp_drop_swbuf -- 送信ウィンドバッファから指定されたオクテット分削除する(選択)。
     127 *  TCP 通信端点の送信ウィンドバッファの省コピー機能が有効な場合
     128 *  ただし、通信端点の送信ウィンドバッファ(cep->sbuf)の値により、
     129 *  TCP 通信端点毎に送信ウィンドバッファの省コピー機能を使用するか、
     130 *  使用しないかを切り替える。
     131 */
     132
     133/*
     134 *  tcp_drop_swbuf -- 送信ウィンドバッファから指定されたオクテット分削除する(選択)。
    147135 */
    148136
     
    157145
    158146/*
    159  *  tcp_write_swbuf -- 送信ウィンドバッファにデータを書き込む(選択)。
     147 *  tcp_write_swbuf -- 送信ウィンドバッファにデータを書き込む(選択)。
    160148 */
    161149
     
    170158
    171159/*
    172  *  tcp_read_swbuf -- 送信ウィンドバッファからデータを読み出す(選択)。
     160 *  tcp_read_swbuf -- 送信ウィンドバッファからデータを読み出す(選択)。
    173161 */
    174162
     
    181169
    182170/*
    183  *  tcp_wait_swbuf -- 送信ウィンドバッファと相手の受信ウィンドが開くのをå¾
    184 ã¤ï¼ˆé¸æŠžï¼‰ã€‚
     171 *  tcp_wait_swbuf -- 送信ウィンドバッファと相手の受信ウィンドが開くのを待つ(選択)。
    185172 */
    186173
     
    195182
    196183/*
    197  *  tcp_get_swbuf_addr -- 送信ウィンドバッファの空きアドレスを獲得する(選択)。
     184 *  tcp_get_swbuf_addr -- 送信ウィンドバッファの空きアドレスを獲得する(選択)。
    198185 */
    199186
     
    208195
    209196/*
    210  *  tcp_send_swbuf -- 送信ウィンドバッファのデータを送信可能にする(選択)。
     197 *  tcp_send_swbuf -- 送信ウィンドバッファのデータを送信可能にする(選択)。
    211198 */
    212199
     
    221208
    222209/*
    223  *  tcp_free_swbufq -- 送信ウィンドバッファキューの解放を指示する(選択)。
     210 *  tcp_free_swbufq -- 送信ウィンドバッファキューの解放を指示する(選択)。
    224211 */
    225212
     
    232219
    233220/*
    234  *  tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する(選択)。
     221 *  tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する(選択)。
    235222 */
    236223
     
    243230
    244231/*
    245  *  tcp_is_swbuf_full -- 送信ウィンドバッファが満杯かチェックする(選択)。
     232 *  tcp_is_swbuf_full -- 送信ウィンドバッファが満杯かチェックする(選択)。
    246233 */
    247234
     
    258245
    259246/*
    260  *  tcp_drop_swbuf_cs -- 送信ウィンドバッファから指定されたオクテット分削除する(専用)。
     247 *  tcp_drop_swbuf_cs -- 送信ウィンドバッファから指定されたオクテット分削除する(専用)。
    261248 */
    262249
     
    265252{
    266253
    267         /*送信ウィンドバッファから指定されたオクテット分削除する。*/
     254        /*送信ウィンドバッファから指定されたオクテット分削除する。*/
    268255        cep->swbuf_count -= (uint16_t)len;
    269256
    270         /* 送信済みで、ACKå¾
    271 ã¡ã®æ™‚は、ACK完了に変更する。*/
     257        /* 送信済みで、ACK待ちの時は、ACK完了に変更する。*/
    272258        if (len > 0 && (cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_SENT) {
    273259                cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_ACKED;
     
    277263
    278264/*
    279  *  tcp_write_swbuf_cs -- 送信ウィンドバッファにデータを書き込む(専用)。
     265 *  tcp_write_swbuf_cs -- 送信ウィンドバッファにデータを書き込む(専用)。
    280266 */
    281267
     
    285271        ER_UINT error;
    286272
    287         /* 通信端点をロックする。*/
     273        /* 通信端点をロックする。*/
    288274        syscall(wai_sem(cep->semid_lock));
    289275
     
    298284                 *   <---------------- error --------------->
    299285                 *              ^
    300                  *              net_buf で 4 オクテット境界にアラインされている。
     286                 *              net_buf で 4 オクテット境界にアラインされている。
    301287                 *
    302                  *  tcp_output と ip_output で、チェックサムを計算するとき、
    303                  *  n が 4 オクテット境界になるように SDU の後ろに 0 を
    304                  *  パッディングする。その分を考æ
    305 ®ã—て送信ウィンドバッファの
    306                  *  空きサイズを 4 オクテット境界に調整する。
     288                 *  tcp_output と ip_output で、チェックサムを計算するとき、
     289                 *  n が 4 オクテット境界になるように SDU の後ろに 0 を
     290                 *  パッディングする。その分を考慮して送信ウィンドバッファの
     291                 *  空きサイズを 4 オクテット境界に調整する。
    307292                 */
    308293                error = (uint_t)(((error - IF_IP_TCP_HDR_SIZE) >> 2 << 2) + IF_IP_TCP_HDR_SIZE);
     
    313298                        len = (uint_t)(error - IF_IP_TCP_HDR_SIZE);
    314299
    315                 /* 送信ウインドサイズによりサイズを調整する。*/
     300                /* 送信ウインドサイズによりサイズを調整する。*/
    316301                if (len > cep->snd_wnd)
    317302                        len = cep->snd_wnd;
     
    319304                        len = cep->snd_cwnd;
    320305
    321                 /* 相手の最大受信セグメントサイズ (maxseg) をè¶
    322 ãˆãªã„ようにする。*/
     306                /* 相手の最大受信セグメントサイズ (maxseg) を超えないようにする。*/
    323307                if (len > cep->maxseg)
    324308                        len = cep->maxseg;
    325309
    326                 /* データを移す。*/
     310                /* データを移す。*/
    327311                memcpy(cep->sbuf_wptr, (void*)((uint8_t*)data), (size_t)len);
    328312                cep->sbuf_wptr   += len;
     
    330314                error             = len;
    331315
    332                 /* ネットワークバッファ長と IP データグラム長を設定する。*/
     316                /* ネットワークバッファ長と IP データグラム長を設定する。*/
    333317                cep->swbufq->len = (uint16_t)(cep->swbuf_count + IF_IP_TCP_HDR_SIZE);
    334318                SET_IP_SDU_SIZE(GET_IP_HDR(cep->swbufq), cep->swbuf_count + TCP_HDR_SIZE);
    335319
    336                 /* フラグを、送信可能に設定する。*/
     320                /* フラグを、送信可能に設定する。*/
    337321                cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_SEND_READY;
    338322                }
    339323
    340         else {  /* 送信ウインドバッファが不正 */
     324        else {  /* 送信ウインドバッファが不正 */
    341325                syslog(LOG_WARNING, "[TCP] illegal window buff for send, CEP: %d, %4d < %4d.",
    342326                                    GET_TCP_CEPID(cep), error, IF_IP_TCP_HDR_SIZE);
    343327
    344                 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
     328                /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
    345329                tcp_free_swbufq_cs(cep);
    346330                }
    347331
    348         /* 通信端点のロックを解除する。*/
     332        /* 通信端点のロックを解除する。*/
    349333        syscall(sig_sem(cep->semid_lock));
    350334
     
    353337
    354338/*
    355  *  tcp_wait_swbuf_cs -- 送信ウィンドバッファと相手の受信ウィンドが開くのをå¾
    356 ã¤ï¼ˆå°‚用)。
     339 *  tcp_wait_swbuf_cs -- 送信ウィンドバッファと相手の受信ウィンドが開くのを待つ(専用)。
    357340 */
    358341
     
    366349
    367350
    368         /* 送信ウィンドバッファが割当て済みで、空きがあれば終了する。*/
     351        /* 送信ウィンドバッファが割当て済みで、空きがあれば終了する。*/
    369352        if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_READY &&
    370353            (cep->swbuf_count + IF_IP_TCP_HDR_SIZE) < net_buf_siz(cep->swbufq))
    371354                return E_OK;
    372355
    373         /* 送信中であれば、終了するまでå¾
    374 æ©Ÿã™ã‚‹ã€‚*/
     356        /* 送信中であれば、終了するまで待機する。*/
    375357        while ((cep->flags & TCP_CEP_FLG_WBCS_MASK) != TCP_CEP_FLG_WBCS_FREE) {
    376358
    377                 /* 送信å¾
    378 ã¡ã®æ™‚é–“ã‚’ tmout から減ずる。*/
     359                /* 送信待ちの時間を tmout から減ずる。*/
    379360                if (!(tmout == TMO_POL || tmout == TMO_FEVR))
    380361                        syscall(get_tim(&before));
     
    385366                syscall(clr_flg(cep->snd_flgid, (FLGPTN)(~TCP_CEP_EVT_SWBUF_READY)));
    386367
    387                 /* 送信å¾
    388 ã¡ã®æ™‚é–“ã‚’ tmout から減ずる。*/
     368                /* 送信待ちの時間を tmout から減ずる。*/
    389369                if (!(tmout == TMO_POL || tmout == TMO_FEVR)) {
    390370                        syscall(get_tim(&after));
     
    395375
    396376                /*
    397                  *  送信できるか、CEP の FSM 状æ
    398 ‹ã‚’見る。
    399                  *  送信ウインドバッファが空くまでå¾
    400 ã¤é–“に、送信不能になった場合は、
    401                  *  コネクションが切断されたことを意味している。
     377                 *  送信できるか、CEP の FSM 状態を見る。
     378                 *  送信ウインドバッファが空くまで待つ間に、送信不能になった場合は、
     379                 *  コネクションが切断されたことを意味している。
    402380                 */
    403381                if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state))
     
    405383                }
    406384
    407         /* 相手の受信ウィンドが閉じている場合は、開くまでå¾
    408 æ©Ÿã™ã‚‹ã€‚*/
     385        /* 相手の受信ウィンドが閉じている場合は、開くまで待機する。*/
    409386        while (true) {
    410387
    411388                /*
    412                  *  snd_wnd:  相手の受信可能ウィンドサイズ
    413                  *  snd_cwnd: 輻輳ウィンドサイズ
     389                 *  snd_wnd:  相手の受信可能ウィンドサイズ
     390                 *  snd_cwnd: 輻輳ウィンドサイズ
    414391                 *
    415                  *  win: どちらか小さいウィンドサイズに設定する。
     392                 *  win: どちらか小さいウィンドサイズに設定する。
    416393                 */
    417394                win = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd;
     
    419396                        break;
    420397
    421                 /* 開きå¾
    422 ã¡ã®æ™‚é–“ã‚’ tmout から減ずる。*/
     398                /* 開き待ちの時間を tmout から減ずる。*/
    423399                if (!(tmout == TMO_POL || tmout == TMO_FEVR))
    424400                        syscall(get_tim(&before));
     
    429405                syscall(clr_flg(cep->snd_flgid, (FLGPTN)(~TCP_CEP_EVT_SWBUF_READY)));
    430406
    431                 /* 開きå¾
    432 ã¡ã®æ™‚é–“ã‚’ tmout から減ずる。*/
     407                /* 開き待ちの時間を tmout から減ずる。*/
    433408                if (!(tmout == TMO_POL || tmout == TMO_FEVR)) {
    434409                        syscall(get_tim(&after));
     
    439414
    440415                /*
    441                  *  送信できるか、CEP の FSM 状æ
    442 ‹ã‚’見る。
    443                  *  送信ウインドバッファが空くまでå¾
    444 ã¤é–“に、送信不能になった場合は、
    445                  *  コネクションが切断されたことを意味している。
     416                 *  送信できるか、CEP の FSM 状態を見る。
     417                 *  送信ウインドバッファが空くまで待つ間に、送信不能になった場合は、
     418                 *  コネクションが切断されたことを意味している。
    446419                 */
    447420                if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state))
     
    449422                }
    450423
    451         /* ネットワークバッファを獲得する。*/
     424        /* ネットワークバッファを獲得する。*/
    452425        if ((error = tcp_get_segment(&cep->swbufq, cep, 0,
    453426                                     TCP_CFG_SWBUF_CSAVE_MIN_SIZE,
     
    456429                return error;
    457430
    458         /* 送信ウィンドバッファを初期化する。*/
     431        /* 送信ウィンドバッファを初期化する。*/
    459432        tcp_init_swbuf(cep);
    460433
     
    463436
    464437/*
    465  *  tcp_get_swbuf_addr_cs -- 送信ウィンドバッファの空きアドレスを獲得する(専用)。
     438 *  tcp_get_swbuf_addr_cs -- 送信ウィンドバッファの空きアドレスを獲得する(専用)。
    466439 */
    467440
     
    471444        ER_UINT error;
    472445
    473         /* 通信端点をロックする。*/
     446        /* 通信端点をロックする。*/
    474447        syscall(wai_sem(cep->semid_lock));
    475448
     
    483456                 *   <---------------- error --------------->
    484457                 *              ^
    485                  *              net_buf で 4 オクテット境界にアラインされている。
     458                 *              net_buf で 4 オクテット境界にアラインされている。
    486459                 *
    487                  *  tcp_output と ip_output で、チェックサムを計算するとき、
    488                  *  n が 4 オクテット境界になるように SDU の後ろに 0 を
    489                  *  パッディングする。その分を考æ
    490 ®ã—て送信ウィンドバッファの
    491                  *  空きサイズを 4 オクテット境界に調整する。
     460                 *  tcp_output と ip_output で、チェックサムを計算するとき、
     461                 *  n が 4 オクテット境界になるように SDU の後ろに 0 を
     462                 *  パッディングする。その分を考慮して送信ウィンドバッファの
     463                 *  空きサイズを 4 オクテット境界に調整する。
    492464                 */
    493465                error = (uint_t)(((error - IF_IP_TCP_HDR_SIZE) >> 2 << 2) - cep->swbuf_count);
    494466
    495                 /* 送信ウインドサイズによりサイズを調整する。*/
     467                /* 送信ウインドサイズによりサイズを調整する。*/
    496468                if (error > cep->snd_wnd)
    497469                        error = cep->snd_wnd;
     
    499471                        error = cep->snd_cwnd;
    500472
    501                 /* 相手の最大受信セグメントサイズ (maxseg) をè¶
    502 ãˆãªã„ようにする。*/
     473                /* 相手の最大受信セグメントサイズ (maxseg) を超えないようにする。*/
    503474                if (error > cep->maxseg)
    504475                        error = cep->maxseg;
    505476
    506                 /* 送信ウィンドバッファの空きデータ長を設定し、その値を返す。*/
     477                /* 送信ウィンドバッファの空きデータ長を設定し、その値を返す。*/
    507478                cep->get_buf_len = error;
    508479
    509                 /* 送信ウィンドバッファの空きアドレスのå
    510 ˆé ­ã‚’設定する。*/
     480                /* 送信ウィンドバッファの空きアドレスの先頭を設定する。*/
    511481                *p_buf = cep->sbuf_wptr;
    512482                }
    513483
    514         else {  /* ネットワークバッファが不正 */
    515 
    516                 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
     484        else {  /* ネットワークバッファが不正 */
     485
     486                /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
    517487                tcp_free_swbufq_cs(cep);
    518488                }
    519489
    520         /* 通信端点のロックを解除する。*/
     490        /* 通信端点のロックを解除する。*/
    521491        syscall(sig_sem(cep->semid_lock));
    522492
     
    525495
    526496/*
    527  *  tcp_send_swbuf_cs -- 送信ウィンドバッファのデータを送信可能にする(専用)。
     497 *  tcp_send_swbuf_cs -- 送信ウィンドバッファのデータを送信可能にする(専用)。
    528498 */
    529499
     
    531501tcp_send_swbuf_cs (T_TCP_CEP *cep, uint_t len)
    532502{
    533         /* 通信端点をロックする。*/
     503        /* 通信端点をロックする。*/
    534504        syscall(wai_sem(cep->semid_lock));
    535505
     
    537507        cep->swbuf_count += len;
    538508
    539         /* ネットワークバッファ長と IP データグラム長を設定する。*/
     509        /* ネットワークバッファ長と IP データグラム長を設定する。*/
    540510        cep->swbufq->len = (uint16_t)(cep->swbuf_count + IF_IP_TCP_HDR_SIZE);
    541511        SET_IP_SDU_SIZE(GET_IP_HDR(cep->swbufq), len + TCP_HDR_SIZE);
    542512
    543         /* tcp_get_buf の割当て長をリセットする。*/
     513        /* tcp_get_buf の割当て長をリセットする。*/
    544514        cep->get_buf_len = 0;
    545515
    546         /* 通信端点のロックを解除する。*/
     516        /* 通信端点のロックを解除する。*/
    547517        syscall(sig_sem(cep->semid_lock));
    548518
    549         /* フラグを、送信可能に設定し、強制的に送信する。*/
     519        /* フラグを、送信可能に設定し、強制的に送信する。*/
    550520        cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_SEND_READY
    551521                                                       | TCP_CEP_FLG_FORCE
     
    555525
    556526/*
    557  *  tcp_free_swbufq_cs -- 送信ウィンドバッファキューの解放を指示する(専用)。
     527 *  tcp_free_swbufq_cs -- 送信ウィンドバッファキューの解放を指示する(専用)。
    558528 *
    559  *    注意:
    560  *      å¿
    561 è¦ã§ã‚れば、この関数を呼び出す前に、通信端点をロックし、
    562  *      戻った後、解除するå¿
    563 è¦ãŒã‚る。
     529 *    注意:
     530 *      必要であれば、この関数を呼び出す前に、通信端点をロックし、
     531 *      戻った後、解除する必要がある。
    564532 */
    565533
     
    567535tcp_free_swbufq_cs (T_TCP_CEP *cep)
    568536{
    569         /* 送信ウィンドバッファの空きå¾
    570 ã¡ã‚’取り消す。*/
     537        /* 送信ウィンドバッファの空き待ちを取り消す。*/
    571538        cep->flags &= ~TCP_CEP_FLG_WBCS_NBUF_REQ;
    572539
    573540        if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) != TCP_CEP_FLG_WBCS_FREE) {
    574541                /*
    575                  *  送信ウィンドバッファを削除するために、フラグを ACK 完了に設定し、
    576                  *  TCP 出力タスクを起動する。
     542                 *  送信ウィンドバッファを削除するために、フラグを ACK 完了に設定し、
     543                 *  TCP 出力タスクを起動する。
    577544                 */
    578545                cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_ACKED;
     
    582549
    583550/*
    584  *  tcp_alloc_swbuf_cs -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する(専用)。
     551 *  tcp_alloc_swbuf_cs -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する(専用)。
    585552 */
    586553
     
    591558
    592559        /*
    593          *  送信ウィンドバッファが未使用の場合のみ、
    594          *  送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。
     560         *  送信ウィンドバッファが未使用の場合のみ、
     561         *  送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。
    595562         */
    596563        if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_FREE)
     
    599566
    600567/*
    601  *  tcp_is_swbuf_full_cs -- 送信ウィンドバッファが満杯かチェックする(専用)。
     568 *  tcp_is_swbuf_full_cs -- 送信ウィンドバッファが満杯かチェックする(専用)。
    602569 */
    603570
     
    610577
    611578/*
    612  *  tcp_init_swbuf -- 送信ウィンドバッファを初期化する(専用)。
     579 *  tcp_init_swbuf -- 送信ウィンドバッファを初期化する(専用)。
    613580 *
    614  *    注意: tcp_get_segment でネットワークバッファを獲得した
    615  *          直後に呼び出すこと。
     581 *    注意: tcp_get_segment でネットワークバッファを獲得した
     582 *          直後に呼び出すこと。
    616583 */
    617584
     
    619586tcp_init_swbuf (T_TCP_CEP *cep)
    620587{
    621         /* 送信ウインドバッファの使用中サイズをリセットする。*/
     588        /* 送信ウインドバッファの使用中サイズをリセットする。*/
    622589        cep->swbuf_count = 0;
    623590
    624         /* 送信ウインドバッファのアドレスを設定する。*/
     591        /* 送信ウインドバッファのアドレスを設定する。*/
    625592        cep->sbuf_wptr = cep->sbuf_rptr = GET_TCP_SDU(cep->swbufq, IF_IP_TCP_HDR_OFFSET);
    626593
    627         /* フラグを、ネットワークバッファ割当て済みに設定する。*/
     594        /* フラグを、ネットワークバッファ割当て済みに設定する。*/
    628595        cep->flags = (cep->flags & ~(TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK))
    629596                                 |   TCP_CEP_FLG_WBCS_NBUF_READY;
     
    631598
    632599/*
    633  *  tcp_push_res_nbuf -- ネットワークバッファを予約する(専用)。
     600 *  tcp_push_res_nbuf -- ネットワークバッファを予約する(専用)。
    634601 */
    635602
     
    649616                if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_PEND) {
    650617
    651                         /* ネットワークバッファを予約する。*/
     618                        /* ネットワークバッファを予約する。*/
    652619                        cep->swbufq = nbuf;
    653620                        nbuf = NULL;
    654621
    655                         /* フラグを予約に設定する。*/
     622                        /* フラグを予約に設定する。*/
    656623                        cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_NBUF_RSVD;
    657624                        sel_ix = ix;
     
    668635
    669636/*
    670  *  tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す(専用)。
     637 *  tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す(専用)。
    671638 */
    672639
     
    680647        if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_RSVD) {
    681648
    682                 /* 予約してあるネットワークバッファを返す。*/
     649                /* 予約してあるネットワークバッファを返す。*/
    683650                nbuf = cep->swbufq;
    684651                cep->swbufq = NULL;
    685652
    686                 /* TCP 出力タスクを起動する。*/
     653                /* TCP 出力タスクを起動する。*/
    687654                sig_sem(SEM_TCP_POST_OUTPUT);
    688655                }
     
    700667
    701668/*
    702  *  TCP 通信端点の受信ウィンドバッファの省コピー機能が有効な場合
    703  *  ただし、通信端点の受信ウィンドバッファ(cep->rbuf)の値により、
    704  *  TCP 通信端点毎に受信ウィンドバッファの省コピー機能を使用するか、
    705  *  使用しないかを切り替える。
    706  */
    707 
    708 /*
    709  *  tcp_drop_rwbuf -- 受信ウィンドバッファキューの最初のネットワークバッファを解放する。
     669 *  TCP 通信端点の受信ウィンドバッファの省コピー機能が有効な場合
     670 *  ただし、通信端点の受信ウィンドバッファ(cep->rbuf)の値により、
     671 *  TCP 通信端点毎に受信ウィンドバッファの省コピー機能を使用するか、
     672 *  使用しないかを切り替える。
     673 */
     674
     675/*
     676 *  tcp_drop_rwbuf -- 受信ウィンドバッファキューの最初のネットワークバッファを解放する。
    710677 */
    711678
     
    720687
    721688/*
    722  *  tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。
     689 *  tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。
    723690 */
    724691
     
    733700
    734701/*
    735  *  tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。
     702 *  tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。
    736703 */
    737704
     
    746713
    747714/*
    748  *  tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。
     715 *  tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。
    749716 */
    750717
     
    757724
    758725/*
    759  *  tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。
     726 *  tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。
    760727 */
    761728
     
    772739
    773740/*
    774  *  TCP 通信端点の受信ウィンドバッファの省コピー機能が有効
    775  */
    776 
    777 /*
    778  *  tcp_drop_rwbuf -- 受信ウィンドバッファキューの最初のネットワークバッファを解放する。
     741 *  TCP 通信端点の受信ウィンドバッファの省コピー機能が有効
     742 */
     743
     744/*
     745 *  tcp_drop_rwbuf -- 受信ウィンドバッファキューの最初のネットワークバッファを解放する。
    779746 */
    780747
     
    789756                cep->rwbuf_count -= len;
    790757
    791                 /* ネットワークバッファにデータが無くなったら解放する。*/
     758                /* ネットワークバッファにデータが無くなったら解放する。*/
    792759                if (len == qhdr->slen) {
    793760                        T_NET_BUF *next;
     
    811778
    812779/*
    813  *  tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。
     780 *  tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。
    814781 */
    815782
     
    821788        uint8_t         *buf = (uint8_t*)data;
    822789
    823         /* 通信端点をロックする。*/
     790        /* 通信端点をロックする。*/
    824791        syscall(wai_sem(cep->semid_lock));
    825792
    826793        /*
    827          *  受信ウィンドバッファキューにネットワークバッファが無くなるか
    828          *  len が 0 になるまで続ける。
     794         *  受信ウィンドバッファキューにネットワークバッファが無くなるか
     795         *  len が 0 になるまで続ける。
    829796         */
    830797        while (cep->rwbufq != NULL && len > 0) {
     
    832799
    833800                /*
    834                  *  len と受信ウィンドバッファキューのå
    835 ˆé ­ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ãƒãƒƒãƒ•ã‚¡ã®
    836                  *  データ数の小さい方を移すデータ数にする。
     801                 *  len と受信ウィンドバッファキューの先頭ネットワークバッファの
     802                 *  データ数の小さい方を移すデータ数にする。
    837803                 */
    838804                if (len > qhdr->slen)
     
    846812
    847813                /*
    848                  *  受信ウィンドバッファキューのネットワークバッファに
    849                  *  データが無くなったら解放する。
     814                 *  受信ウィンドバッファキューのネットワークバッファに
     815                 *  データが無くなったら解放する。
    850816                 */
    851817                tcp_drop_rwbuf_cs(cep, blen);
     
    856822                }
    857823
    858         /* 通信端点のロックを解除する。*/
     824        /* 通信端点のロックを解除する。*/
    859825        syscall(sig_sem(cep->semid_lock));
    860826
     
    863829
    864830/*
    865  *  tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。
     831 *  tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。
    866832 */
    867833
     
    872838        uint_t          len;
    873839
    874         /* 通信端点をロックする。*/
     840        /* 通信端点をロックする。*/
    875841        syscall(wai_sem(cep->semid_lock));
    876842
    877843        if (cep->rwbufq == NULL) {
    878844
    879                 /* 受信ウィンドバッファがå
    880 ¨ã¦é–‹æ”¾ã•ã‚Œã¦ã„るとき。*/
     845                /* 受信ウィンドバッファが全て開放されているとき。*/
    881846                *p_buf = NULL;
    882847                len = 0;
     
    884849        else {
    885850
    886                 /* 受信ウィンドバッファのデータのアドレスのå
    887 ˆé ­ã‚’設定する。*/
     851                /* 受信ウィンドバッファのデータのアドレスの先頭を設定する。*/
    888852                qhdr = GET_TCP_Q_HDR(cep->rwbufq, GET_TCP_IP_Q_HDR(cep->rwbufq)->thoff);
    889853                *p_buf = GET_TCP_SDU(cep->rwbufq, GET_TCP_IP_Q_HDR(cep->rwbufq)->thoff) + qhdr->soff;
    890854
    891                 /* 受信ウィンドバッファのデータ長を計算する。*/
     855                /* 受信ウィンドバッファのデータ長を計算する。*/
    892856                len = qhdr->slen;
    893857                }
    894858
    895         /* 通信端点のロックを解除する。*/
     859        /* 通信端点のロックを解除する。*/
    896860        syscall(sig_sem(cep->semid_lock));
    897861
    898         /* 受信ウィンドバッファのデータ長を設定し、その値を返す。*/
     862        /* 受信ウィンドバッファのデータ長を設定し、その値を返す。*/
    899863        cep->rcv_buf_len = len;
    900864        return len;
     
    902866
    903867/*
    904  *  tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。
     868 *  tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。
    905869 *
    906  *    注意:
    907  *      å¿
    908 è¦ã§ã‚れば、この関数を呼び出す前に、通信端点をロックし、
    909  *      戻った後、解除するå¿
    910 è¦ãŒã‚る。
     870 *    注意:
     871 *      必要であれば、この関数を呼び出す前に、通信端点をロックし、
     872 *      戻った後、解除する必要がある。
    911873 */
    912874
     
    930892                        }
    931893
    932                 /* 受信ウィンドバッファの使用中サイズをリセットする。*/
     894                /* 受信ウィンドバッファの使用中サイズをリセットする。*/
    933895                cep->rwbuf_count = 0;
    934896                }
     
    936898
    937899/*
    938  *  tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。
     900 *  tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。
    939901 *
    940  *    注意:
    941  *      å
    942 ¥åŠ› input は、T_TCP_Q_HDR によりリンクされ、
    943  *      並べ替えが終了していなければならない。また、
    944  *      追加するデータは、受信ウィンドバッファに収まること。
     902 *    注意:
     903 *      入力 input は、T_TCP_Q_HDR によりリンクされ、
     904 *      並べ替えが終了していなければならない。また、
     905 *      追加するデータは、受信ウィンドバッファに収まること。
    945906 */
    946907
     
    952913        uint_t          inlen, last;
    953914
    954         /* 通信端点をロックする。*/
     915        /* 通信端点をロックする。*/
    955916        syscall(wai_sem(cep->semid_lock));
    956917
     
    965926
    966927                /*
    967                  *  TCP 通信端点の受信ウィンドバッファの省コピー機能の、
    968                  *  受信ウィンドバッファキューの最大エントリ数をè¶
    969 ãˆã‚‹ã¨ãã¯ã€
    970                  *  受信したセグメントを破棄する。
    971                  *  ただし、SDU 長が 0 のセグメントと FIN セグメントは破棄しない。
    972                  *  なお、正常に受信したセグメントも破棄するため、再送回数が増加する。
     928                 *  TCP 通信端点の受信ウィンドバッファの省コピー機能の、
     929                 *  受信ウィンドバッファキューの最大エントリ数を超えるときは、
     930                 *  受信したセグメントを破棄する。
     931                 *  ただし、SDU 長が 0 のセグメントと FIN セグメントは破棄しない。
     932                 *  なお、正常に受信したセグメントも破棄するため、再送回数が増加する。
    973933                 */
    974934                syscall(rel_net_buf(input));
    975935
    976                 /* 通信端点のロックを解除する。*/
     936                /* 通信端点のロックを解除する。*/
    977937                syscall(sig_sem(cep->semid_lock));
    978938                return;
     
    985945        qhdr  = (T_TCP_Q_HDR*)GET_TCP_HDR(input, thoff);
    986946
    987         /* 受信済みシーケンス番号を更新する。*/
     947        /* 受信済みシーケンス番号を更新する。*/
    988948        cep->rcv_nxt += inlen;
    989949
    990         /* 緊急データの SDU 補正を行う。*/
     950        /* 緊急データの SDU 補正を行う。*/
    991951        if (qhdr->urp > 0 && inlen > 0) {
    992952                inlen      -= qhdr->urp;
     
    997957        last  = cep->rwbuf_count;
    998958
    999         /* ネットワークバッファを受信ウィンドバッファキューの最後に連結する。*/
     959        /* ネットワークバッファを受信ウィンドバッファキューの最後に連結する。*/
    1000960        qhdr->next = NULL;
    1001961        nextp = &cep->rwbufq;
     
    1005965
    1006966        /*
    1007          *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
    1008          *  これは、アプリケーションに、相手からこれ以上データが送られて
    1009          *  こないことを知らせるためである。
     967         *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
     968         *  これは、アプリケーションに、相手からこれ以上データが送られて
     969         *  こないことを知らせるためである。
    1010970         */
    1011971        if (inlen > 0) {
     
    1015975                }
    1016976
    1017         /* 通信端点のロックを解除する。*/
     977        /* 通信端点のロックを解除する。*/
    1018978        syscall(sig_sem(cep->semid_lock));
    1019979
    1020980#ifdef TCP_CFG_NON_BLOCKING
    1021981
    1022         if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) {     /* ノンブロッキングコール */
     982        if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) {     /* ノンブロッキングコール */
    1023983
    1024984                int_t   len;
     
    1028988
    1029989                /*
    1030                  *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
    1031                  *  これは、アプリケーションに、相手からこれ以上データが送られて
    1032                  *  こないことを知らせるためである。
     990                 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
     991                 *  これは、アプリケーションに、相手からこれ以上データが送られて
     992                 *  こないことを知らせるためである。
    1033993                 */
    1034994                if (len > 0 || inlen == 0) {
    1035995
    1036                         /* tcp_rcv_buf の割当て長を設定する。*/
     996                        /* tcp_rcv_buf の割当て長を設定する。*/
    1037997                        cep->rcv_buf_len = len;
    1038998
    1039                         /* 受信ウィンドバッファのアドレスを返す。*/
     999                        /* 受信ウィンドバッファのアドレスを返す。*/
    10401000                        *cep->rcv_p_buf = GET_TCP_SDU(cep->rwbufq,
    10411001                                          GET_TCP_IP_Q_HDR(cep->rwbufq)->thoff) + qhdr->soff;
     
    10591019
    10601020                                /*
    1061                                  *  通信端点をロックして、
    1062                                  *  受信ウィンドバッファキューのネットワークバッファを解放する。
     1021                                 *  通信端点をロックして、
     1022                                 *  受信ウィンドバッファキューのネットワークバッファを解放する。
    10631023                                 */
    10641024                                syscall(wai_sem(cep->semid_lock));
     
    10681028                        }
    10691029
    1070                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     1030                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    10711031                cep->rcv_tskid = TA_NULL;
    10721032                cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
    10731033                }
    10741034
    1075         else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) {        /* ノンブロッキングコール */
     1035        else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) {        /* ノンブロッキングコール */
    10761036                int_t   len;
    10771037
    1078                 /* 受信ウィンドバッファからデータを取り出す。*/
     1038                /* 受信ウィンドバッファからデータを取り出す。*/
    10791039                if ((len = tcp_read_rwbuf_cs(cep, cep->rcv_data, (uint_t)cep->rcv_len)) > 0) {
    1080                         /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
     1040                        /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
    10811041                        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    10821042                        sig_sem(SEM_TCP_POST_OUTPUT);
     
    10841044
    10851045                /*
    1086                  *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
    1087                  *  これは、アプリケーションに、相手からこれ以上データが送られて
    1088                  *  こないことを知らせるためである。
     1046                 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
     1047                 *  これは、アプリケーションに、相手からこれ以上データが送られて
     1048                 *  こないことを知らせるためである。
    10891049                 */
    10901050                if (len > 0 || inlen == 0) {
     
    11061066                        }
    11071067
    1108                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     1068                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    11091069                cep->rcv_tskid = TA_NULL;
    11101070                cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
     
    11161076                if (inlen == 0 && cep->rwbuf_count == 0) {
    11171077                        /*
    1118                          *  受信ウィンドバッファå†
    1119 ã®ãƒ‡ãƒ¼ã‚¿æ•°ãŒ 0 で、
    1120                          *  相手から FIN フラグが付いたセグメントを受信したときは、
    1121                          *  通信端点をロックして、
    1122                          *  受信ウィンドバッファキューのネットワークバッファを解放する。
     1078                         *  受信ウィンドバッファ内のデータ数が 0 で、
     1079                         *  相手から FIN フラグが付いたセグメントを受信したときは、
     1080                         *  通信端点をロックして、
     1081                         *  受信ウィンドバッファキューのネットワークバッファを解放する。
    11231082                         */
    11241083                        syscall(wai_sem(cep->semid_lock));
     
    11281087
    11291088                /*
    1130                  *  受信ウィンドバッファにデータがå
    1131 ¥ã‚‹ã‹ã€ inlen == 0 の時、å
    1132 ¥åŠ›ã‚¿ã‚¹ã‚¯ã‚’起床する。
    1133                  *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
    1134                  *  これは、アプリケーションに、相手からこれ以上データが送られて
    1135                  *  こないことを知らせるためである。
     1089                 *  受信ウィンドバッファにデータが入るか、 inlen == 0 の時、入力タスクを起床する。
     1090                 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
     1091                 *  これは、アプリケーションに、相手からこれ以上データが送られて
     1092                 *  こないことを知らせるためである。
    11361093                 */
    11371094                if ((last == 0 && cep->rwbuf_count > 0) || inlen == 0) {
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_subr_ncs.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$
     
    135123
    136124/*
    137  *  TCP 通信端点の送信ウィンドバッファの省コピー機能が無効
    138  */
    139 
    140 /*
    141  *  tcp_read_swbuf -- 送信ウィンドバッファからデータを読み出す。
     125 *  TCP 通信端点の送信ウィンドバッファの省コピー機能が無効
     126 */
     127
     128/*
     129 *  tcp_read_swbuf -- 送信ウィンドバッファからデータを読み出す。
    142130 */
    143131
     
    147135        uint8_t *wptr, *rptr;
    148136
    149         /* SDU の大きさをチェックする。*/
     137        /* SDU の大きさをチェックする。*/
    150138        if (GET_IP_SDU_SIZE(GET_IP_HDR(output)) < GET_TCP_HDR_SIZE2(output, IF_IP_TCP_HDR_OFFSET) + len) {
    151139                syslog(LOG_INFO, "[TCP] shrink SUD len: %d -> %d",
     
    156144        wptr = GET_TCP_SDU(output, IF_IP_TCP_HDR_OFFSET);
    157145
    158         /* 通信端点をロックする。*/
     146        /* 通信端点をロックする。*/
    159147        syscall(wai_sem(cep->semid_lock));
    160148
     
    162150        if (rptr - (uint8_t*)cep->sbuf > cep->sbufsz) {
    163151
    164                 /* 転送開始が送信ウィンドバッファの終わりをè¶
    165 ãˆã‚‹ã¨ãã®å‡¦ç†ã€€*/
     152                /* 転送開始が送信ウィンドバッファの終わりを超えるときの処理 */
    166153                rptr = (uint8_t*)cep->sbuf_rptr - (cep->sbufsz - doff);
    167154                }
     
    169156                uint_t sub;
    170157
    171                 /* 転送範囲がラウンドするときの処理 */
     158                /* 転送範囲がラウンドするときの処理 */
    172159                sub = (uint_t)(cep->sbufsz - (rptr - (uint8_t*)cep->sbuf));
    173160                memcpy((void*)wptr, rptr, (size_t)sub);
     
    181168        NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_DATA_OCTETS], len);
    182169
    183         /* 通信端点のロックを解除する。*/
     170        /* 通信端点のロックを解除する。*/
    184171        syscall(sig_sem(cep->semid_lock));
    185172        }
    186173
    187174/*
    188  *  tcp_drop_swbuf -- 送信ウィンドバッファから指定されたオクテット分削除する。
     175 *  tcp_drop_swbuf -- 送信ウィンドバッファから指定されたオクテット分削除する。
    189176 */
    190177
     
    194181        uint_t  last;
    195182
    196         /* 通信端点をロックする。*/
     183        /* 通信端点をロックする。*/
    197184        syscall(wai_sem(cep->semid_lock));
    198185
     
    200187
    201188        if (cep->sbuf_rptr + len > (uint8_t*)cep->sbuf + cep->sbufsz)
    202                 /* ラウンドするときの計算 */
     189                /* ラウンドするときの計算 */
    203190                cep->sbuf_rptr -= cep->sbufsz - len;
    204191        else
     
    206193        cep->swbuf_count -= (uint16_t)len;
    207194
    208         /* 通信端点のロックを解除する。*/
     195        /* 通信端点のロックを解除する。*/
    209196        syscall(sig_sem(cep->semid_lock));
    210197
    211198#ifdef TCP_CFG_NON_BLOCKING
    212199
    213         if (cep->snd_nblk_tfn == TFN_TCP_GET_BUF) {     /* ノンブロッキングコール */
    214 
    215                 /* 通信端点をロックする。*/
     200        if (cep->snd_nblk_tfn == TFN_TCP_GET_BUF) {     /* ノンブロッキングコール */
     201
     202                /* 通信端点をロックする。*/
    216203                syscall(wai_sem(cep->semid_lock));
    217204
    218                 /* 送信データ長を計算する。*/
     205                /* 送信データ長を計算する。*/
    219206                if (cep->sbufsz - cep->swbuf_count > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf))
    220                         /* 書込みポインタがラウンドするときは、書込みポインタから送信ウィンドバッファの終わりまで */
     207                        /* 書込みポインタがラウンドするときは、書込みポインタから送信ウィンドバッファの終わりまで */
    221208                        len = (uint_t)(cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf));
    222209                else
    223210                        len = cep->sbufsz - cep->swbuf_count;
    224211
    225                 /* 通信端点のロックを解除する。*/
     212                /* 通信端点のロックを解除する。*/
    226213                syscall(sig_sem(cep->semid_lock));
    227214
    228215                if (len > 0) {
    229216
    230                         /* tcp_get_buf の割当て長を設定する。*/
     217                        /* tcp_get_buf の割当て長を設定する。*/
    231218                        cep->get_buf_len = len;
    232219
    233                         /* 送信ウィンドバッファのアドレスを返す。*/
     220                        /* 送信ウィンドバッファのアドレスを返す。*/
    234221                        *cep->snd_p_buf = cep->sbuf_wptr;
    235222
     
    248235                                syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
    249236
    250                         /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     237                        /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    251238                        cep->snd_tskid = TA_NULL;
    252239                        cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
     
    257244
    258245        else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT ||
    259                  cep->snd_nblk_tfn == TFN_TCP_SND_OOB) {        /* ノンブロッキングコール */
     246                 cep->snd_nblk_tfn == TFN_TCP_SND_OOB) {        /* ノンブロッキングコール */
    260247
    261248#else   /* of #ifdef TCP_CFG_EXTENTIONS */
    262249
    263         else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT) {        /* ノンブロッキングコール */
     250        else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT) {        /* ノンブロッキングコール */
    264251
    265252#endif  /* of #ifdef TCP_CFG_EXTENTIONS */
     
    267254                ER_UINT error;
    268255
    269                 /* 送信ウィンドバッファにデータを書き込む。*/
     256                /* 送信ウィンドバッファにデータを書き込む。*/
    270257                error = TCP_WRITE_SWBUF(cep, cep->snd_data, (uint_t)cep->snd_len);
    271258
    272259#ifdef TCP_CFG_EXTENTIONS
    273260
    274                 /* 送信緊急ポインタを設定する。*/
     261                /* 送信緊急ポインタを設定する。*/
    275262                if (cep->snd_nblk_tfn == TFN_TCP_SND_OOB)
    276263                        cep->snd_up = cep->snd_una + error;
     
    293280                        syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
    294281
    295                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     282                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    296283                cep->snd_tskid = TA_NULL;
    297284                cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
     
    301288#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    302289
    303                 /* 送信ウィンドバッファに空きが出来たら出力タスクを起床する。*/
     290                /* 送信ウィンドバッファに空きが出来たら出力タスクを起床する。*/
    304291                if (last == cep->sbufsz && cep->swbuf_count < cep->sbufsz)
    305292                        syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
     
    312299
    313300        if (cep->swbuf_count > 0) {
    314                 /* 送信ウィンドバッファにデータがあれば出力をポストする。*/
     301                /* 送信ウィンドバッファにデータがあれば出力をポストする。*/
    315302                cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    316303                sig_sem(SEM_TCP_POST_OUTPUT);
     
    319306
    320307/*
    321  *  tcp_write_swbuf -- 送信ウィンドバッファにデータを書き込む。
     308 *  tcp_write_swbuf -- 送信ウィンドバッファにデータを書き込む。
    322309 */
    323310
     
    327314        uint_t  offset;
    328315
    329         /* 通信端点をロックする。*/
     316        /* 通信端点をロックする。*/
    330317        syscall(wai_sem(cep->semid_lock));
    331318
    332         /* len と送信ウィンドバッファの空きの小さい方を移すデータ数にする。*/
     319        /* len と送信ウィンドバッファの空きの小さい方を移すデータ数にする。*/
    333320        if (len > (cep->sbufsz - cep->swbuf_count))
    334321                len = cep->sbufsz - cep->swbuf_count;
    335322
    336         /* 書き込みポインタがラウンドするときの処理 */
     323        /* 書き込みポインタがラウンドするときの処理 */
    337324        if (len > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf)) {
    338325                offset = (uint_t)(cep->sbufsz - (cep->sbuf_wptr -(uint8_t*)cep->sbuf));
     
    348335        cep->swbuf_count += len - offset;
    349336
    350         /* 通信端点のロックを解除する。*/
     337        /* 通信端点のロックを解除する。*/
    351338        syscall(sig_sem(cep->semid_lock));
    352339
     
    355342
    356343/*
    357  *  tcp_wait_swbuf -- 送信ウィンドバッファが空くのをå¾
    358 ã¤ã€‚
     344 *  tcp_wait_swbuf -- 送信ウィンドバッファが空くのを待つ。
    359345 */
    360346
     
    367353        while (cep->swbuf_count >= cep->sbufsz) {
    368354                /*
    369                  *  送信ウィンドバッファの空きがなければ、出力をポストして、
    370                  *  送信ウィンドバッファが空くまでå¾
    371 ã¤ã€‚
     355                 *  送信ウィンドバッファの空きがなければ、出力をポストして、
     356                 *  送信ウィンドバッファが空くまで待つ。
    372357                 */
    373358                cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
     
    380365
    381366                /*
    382                  *  送信できるか、CEP の FSM 状æ
    383 ‹ã‚’見る。
    384                  *  送信ウィンドバッファが空くまでå¾
    385 ã¤é–“に、送信不能になった場合は、
    386                  *  コネクションが切断されたことを意味している。
     367                 *  送信できるか、CEP の FSM 状態を見る。
     368                 *  送信ウィンドバッファが空くまで待つ間に、送信不能になった場合は、
     369                 *  コネクションが切断されたことを意味している。
    387370                 */
    388371                if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) {
     
    394377        }
    395378/*
    396  *  tcp_get_swbuf_addr -- 送信ウィンドバッファの空きアドレスを獲得する。
     379 *  tcp_get_swbuf_addr -- 送信ウィンドバッファの空きアドレスを獲得する。
    397380 */
    398381
     
    402385        uint_t  len;
    403386
    404         /* 通信端点をロックする。*/
     387        /* 通信端点をロックする。*/
    405388        syscall(wai_sem(cep->semid_lock));
    406389
    407         /* 送信ウィンドバッファの空きアドレスのå
    408 ˆé ­ã‚’設定する。*/
     390        /* 送信ウィンドバッファの空きアドレスの先頭を設定する。*/
    409391        *p_buf = cep->sbuf_wptr;
    410392
    411         /* 送信ウィンドバッファの空きサイズを計算する。*/
     393        /* 送信ウィンドバッファの空きサイズを計算する。*/
    412394        if (cep->sbufsz - cep->swbuf_count > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf))
    413                 /* 書込みポインタがラウンドするときは、書込みポインタから送信ウィンドバッファの終わりまで */
     395                /* 書込みポインタがラウンドするときは、書込みポインタから送信ウィンドバッファの終わりまで */
    414396                len = (uint_t)(cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf));
    415397        else
    416398                len = cep->sbufsz - cep->swbuf_count;
    417399
    418         /* 通信端点のロックを解除する。*/
     400        /* 通信端点のロックを解除する。*/
    419401        syscall(sig_sem(cep->semid_lock));
    420402
    421         /* 送信ウィンドバッファの空きデータ長を設定し、その値を返す。*/
     403        /* 送信ウィンドバッファの空きデータ長を設定し、その値を返す。*/
    422404        cep->get_buf_len = len;
    423405        return (ER_UINT)len;
     
    425407
    426408/*
    427  *  tcp_send_swbuf -- 送信ウィンドバッファのデータを送信可能にする。
     409 *  tcp_send_swbuf -- 送信ウィンドバッファのデータを送信可能にする。
    428410 */
    429411
     
    431413tcp_send_swbuf_ncs (T_TCP_CEP *cep, uint_t len)
    432414{
    433         /* 通信端点をロックする。*/
     415        /* 通信端点をロックする。*/
    434416        syscall(wai_sem(cep->semid_lock));
    435417
     
    437419        cep->swbuf_count += len;
    438420
    439         /* 書込みポインタがラウンドするときの処理 */
     421        /* 書込みポインタがラウンドするときの処理 */
    440422        if (cep->sbuf_wptr >= (uint8_t*)cep->sbuf + cep->sbufsz)
    441423                cep->sbuf_wptr  = (uint8_t*)cep->sbuf;
    442424
    443         /* tcp_get_buf の割当て長をリセットする。*/
     425        /* tcp_get_buf の割当て長をリセットする。*/
    444426        cep->get_buf_len = 0;
    445427
    446         /* 通信端点のロックを解除する。*/
     428        /* 通信端点のロックを解除する。*/
    447429        syscall(sig_sem(cep->semid_lock));
    448430
    449         /* 送信ウィンドバッファがフルのときは強制的に送信する。*/
     431        /* 送信ウィンドバッファがフルのときは強制的に送信する。*/
    450432        if (cep->swbuf_count >= cep->sbufsz)
    451433                cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR;
     
    453435
    454436/*
    455  *  tcp_is_swbuf_full -- 送信ウィンドバッファが満杯かチェックする。
     437 *  tcp_is_swbuf_full -- 送信ウィンドバッファが満杯かチェックする。
    456438 */
    457439
     
    467449
    468450/*
    469  *  TCP 通信端点の受信ウィンドバッファの省コピー機能が無効
    470  */
    471 
    472 /*
    473  *  tcp_drop_rwbuf -- 受信ウィンドバッファから指定されたオクテット分削除する。
     451 *  TCP 通信端点の受信ウィンドバッファの省コピー機能が無効
     452 */
     453
     454/*
     455 *  tcp_drop_rwbuf -- 受信ウィンドバッファから指定されたオクテット分削除する。
    474456 */
    475457
     
    480462        cep->rbuf_rptr  += len;
    481463
    482         /* 読み出しポインタがラウンドするときの処理 */
     464        /* 読み出しポインタがラウンドするときの処理 */
    483465        if (cep->rbuf_rptr >= (uint8_t*)cep->rbuf + cep->rbufsz)
    484466                cep->rbuf_rptr  = (uint8_t*)cep->rbuf;
     
    486468
    487469/*
    488  *  tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。
     470 *  tcp_read_rwbuf -- 受信ウィンドバッファから指定されたオクテット分読み出す。
    489471 */
    490472
     
    494476        uint_t  offset;
    495477
    496         /* 通信端点をロックする。*/
     478        /* 通信端点をロックする。*/
    497479        syscall(wai_sem(cep->semid_lock));
    498480
    499         /* len と受信ウィンドバッファのデータ数の小さい方を取り出すデータ数にする。*/
     481        /* len と受信ウィンドバッファのデータ数の小さい方を取り出すデータ数にする。*/
    500482        if (len > cep->rwbuf_count)
    501483                len = cep->rwbuf_count;
    502484
    503         /* 読み出しポインタがラウンドするときの処理 */
     485        /* 読み出しポインタがラウンドするときの処理 */
    504486        if (len > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)) {
    505487                offset = (uint_t)(cep->rbufsz - (cep->rbuf_rptr -(uint8_t*)cep->rbuf));
     
    515497        cep->rbuf_rptr  += len - offset;
    516498
    517         /* 通信端点のロックを解除する。*/
     499        /* 通信端点のロックを解除する。*/
    518500        syscall(sig_sem(cep->semid_lock));
    519501
     
    522504
    523505/*
    524  *  tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。
     506 *  tcp_get_rwbuf_addr -- 受信ウィンドバッファの空きアドレスを獲得する。
    525507 */
    526508
     
    530512        uint_t  len;
    531513
    532         /* 通信端点をロックする。*/
     514        /* 通信端点をロックする。*/
    533515        syscall(wai_sem(cep->semid_lock));
    534516
    535         /* 受信ウィンドバッファのデータ長を計算する。*/
     517        /* 受信ウィンドバッファのデータ長を計算する。*/
    536518        if (cep->rwbuf_count > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf))
    537                 /* ポインタがラウンドするときは受信ウィンドバッファの終わりまで */
     519                /* ポインタがラウンドするときは受信ウィンドバッファの終わりまで */
    538520                len = (uint_t)(cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf));
    539521        else
    540522                len = cep->rwbuf_count;
    541523
    542         /* 受信ウィンドバッファのデータのアドレスのå
    543 ˆé ­ã‚’設定する。*/
     524        /* 受信ウィンドバッファのデータのアドレスの先頭を設定する。*/
    544525        *p_buf = cep->rbuf_rptr;
    545526
    546         /* 通信端点のロックを解除する。*/
     527        /* 通信端点のロックを解除する。*/
    547528        syscall(sig_sem(cep->semid_lock));
    548529
    549         /* 受信ウィンドバッファのデータ長を設定し、その値を返す。*/
     530        /* 受信ウィンドバッファのデータ長を設定し、その値を返す。*/
    550531        cep->rcv_buf_len = len;
    551532        return len;
     
    553534
    554535/*
    555  *  tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。
     536 *  tcp_write_rwbuf -- 受信ウィンドバッファにデータを書き込む。
    556537 *
    557  *    注意:
    558  *      å
    559 ¥åŠ› input は、T_TCP_Q_HDR によりリンクされ、
    560  *      並べ替えが終了していなければならない。また、
    561  *      追加するデータは、受信ウィンドバッファに収まること。
     538 *    注意:
     539 *      入力 input は、T_TCP_Q_HDR によりリンクされ、
     540 *      並べ替えが終了していなければならない。また、
     541 *      追加するデータは、受信ウィンドバッファに収まること。
    562542 */
    563543
     
    568548        uint_t          offset, inlen, last;
    569549
    570         /* 通信端点をロックする。*/
     550        /* 通信端点をロックする。*/
    571551        syscall(wai_sem(cep->semid_lock));
    572552
    573553        qhdr  = (T_TCP_Q_HDR*)GET_TCP_HDR(input, thoff);
    574554
    575         /* 受信済みシーケンス番号を更新する。*/
     555        /* 受信済みシーケンス番号を更新する。*/
    576556        cep->rcv_nxt += qhdr->slen;
    577557
     
    579559        inlen = qhdr->slen;
    580560
    581         /* 緊急データの SDU 補正を行う。*/
     561        /* 緊急データの SDU 補正を行う。*/
    582562        if (qhdr->urp > 0 && inlen > 0) {
    583563                inlen      -= qhdr->urp;
     
    587567
    588568        /*
    589          *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
    590          *  これは、アプリケーションに、相手からこれ以上データが送られて
    591          *  こないことを知らせるためである。
     569         *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
     570         *  これは、アプリケーションに、相手からこれ以上データが送られて
     571         *  こないことを知らせるためである。
    592572         */
    593573        if (inlen > 0) {
    594574
    595                 /* 書き込みポインタがラウンドするときの処理 */
     575                /* 書き込みポインタがラウンドするときの処理 */
    596576                if (inlen > cep->rbufsz - (cep->rbuf_wptr - (uint8_t*)cep->rbuf)) {
    597577                        offset = (uint_t)(cep->rbufsz - (cep->rbuf_wptr - (uint8_t*)cep->rbuf));
     
    616596#ifdef TCP_CFG_NON_BLOCKING
    617597
    618         if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) {     /* ノンブロッキングコール */
     598        if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) {     /* ノンブロッキングコール */
    619599
    620600                int_t   len;
    621601
    622                 /* 受信ウィンドバッファの空きデータ長を計算する。*/
     602                /* 受信ウィンドバッファの空きデータ長を計算する。*/
    623603                if (cep->rwbuf_count > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)) {
    624                         /* ポインタがラウンドするときは受信ウィンドバッファの終わりまで */
     604                        /* ポインタがラウンドするときは受信ウィンドバッファの終わりまで */
    625605                        len = (uint_t)(cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf));
    626606                        }
     
    628608                        len = cep->rwbuf_count;
    629609
    630                 /* 通信端点のロックを解除する。*/
     610                /* 通信端点のロックを解除する。*/
    631611                syscall(sig_sem(cep->semid_lock));
    632612
    633613                /*
    634                  *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
    635                  *  これは、アプリケーションに、相手からこれ以上データが送られて
    636                  *  こないことを知らせるためである。
     614                 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
     615                 *  これは、アプリケーションに、相手からこれ以上データが送られて
     616                 *  こないことを知らせるためである。
    637617                 */
    638618                if (len > 0 || inlen == 0) {
    639619
    640                         /* tcp_rcv_buf の割当て長を設定する。*/
     620                        /* tcp_rcv_buf の割当て長を設定する。*/
    641621                        cep->rcv_buf_len = len;
    642622
    643                         /* 受信ウィンドバッファのアドレスを返す。*/
     623                        /* 受信ウィンドバッファのアドレスを返す。*/
    644624                        *cep->rcv_p_buf = cep->rbuf_rptr;
    645625
     
    663643
    664644                                /*
    665                                  *  通信端点をロックして、
    666                                  *  受信ウィンドバッファキューのネットワークバッファを解放する。
     645                                 *  通信端点をロックして、
     646                                 *  受信ウィンドバッファキューのネットワークバッファを解放する。
    667647                                 */
    668648                                syscall(wai_sem(cep->semid_lock));
     
    672652                        }
    673653
    674                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     654                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    675655                cep->rcv_tskid = TA_NULL;
    676656                cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
    677657                }
    678658
    679         else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) {        /* ノンブロッキングコール */
     659        else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) {        /* ノンブロッキングコール */
    680660                ER_UINT len;
    681661
    682                 /* 通信端点のロックを解除する。*/
     662                /* 通信端点のロックを解除する。*/
    683663                syscall(sig_sem(cep->semid_lock));
    684664
    685                 /* 受信ウィンドバッファからデータを取り出す。*/
     665                /* 受信ウィンドバッファからデータを取り出す。*/
    686666                if ((len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len)) > 0) {
    687                         /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
     667                        /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
    688668                        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    689669                        sig_sem(SEM_TCP_POST_OUTPUT);
     
    691671
    692672                /*
    693                  *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
    694                  *  これは、アプリケーションに、相手からこれ以上データが送られて
    695                  *  こないことを知らせるためである。
     673                 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
     674                 *  これは、アプリケーションに、相手からこれ以上データが送られて
     675                 *  こないことを知らせるためである。
    696676                 */
    697677                if (len > 0 || inlen == 0) {
     
    713693                        }
    714694
    715                 /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
     695                /* 記憶されているタスク ID と API 機能コードをクリアーする。*/
    716696                cep->rcv_tskid = TA_NULL;
    717697                cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
     
    722702#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    723703
    724                 /* 通信端点のロックを解除する。*/
     704                /* 通信端点のロックを解除する。*/
    725705                syscall(sig_sem(cep->semid_lock));
    726706
    727707                if (inlen == 0 && cep->rwbuf_count == 0) {
    728708                        /*
    729                          *  受信ウィンドバッファå†
    730 ã®ãƒ‡ãƒ¼ã‚¿æ•°ãŒ 0 で、
    731                          *  相手から FIN フラグが付いたセグメントを受信したときは、
    732                          *  通信端点をロックして、
    733                          *  受信ウィンドバッファキューのネットワークバッファを解放する。
     709                         *  受信ウィンドバッファ内のデータ数が 0 で、
     710                         *  相手から FIN フラグが付いたセグメントを受信したときは、
     711                         *  通信端点をロックして、
     712                         *  受信ウィンドバッファキューのネットワークバッファを解放する。
    734713                         */
    735714                        syscall(wai_sem(cep->semid_lock));
     
    739718
    740719                /*
    741                  *  受信ウィンドバッファにデータがå
    742 ¥ã‚‹ã‹ã€ inlen == 0 の時、å
    743 ¥åŠ›ã‚¿ã‚¹ã‚¯ã‚’起床する。
    744                  *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
    745                  *  これは、アプリケーションに、相手からこれ以上データが送られて
    746                  *  こないことを知らせるためである。
     720                 *  受信ウィンドバッファにデータが入るか、 inlen == 0 の時、入力タスクを起床する。
     721                 *  FIN フラグが付いたセグメントは inlen == 0 になることもある。
     722                 *  これは、アプリケーションに、相手からこれ以上データが送られて
     723                 *  こないことを知らせるためである。
    747724                 */
    748725                if ((last == 0 && cep->rwbuf_count > 0) || inlen == 0)
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_timer.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$
     
    123111
    124112/*
    125  *  局所関数
     113 *  局所関数
    126114 */
    127115
     
    135123
    136124/*
    137  *  バックオフ時間
     125 *  バックオフ時間
    138126 *
    139  *  再送を行うたびに、タイムアウトの時間を延長する。
     127 *  再送を行うたびに、タイムアウトの時間を延長する。
    140128 */
    141129
     
    147135        };
    148136
    149 #define TCP_TOTAL_BACK_OFF      511     /* バックオフ時間の合計 */
    150 
    151 /*
    152  *  tcp_timers -- タイムアウト処理
     137#define TCP_TOTAL_BACK_OFF      511     /* バックオフ時間の合計 */
     138
     139/*
     140 *  tcp_timers -- タイムアウト処理
    153141 */
    154142
     
    162150
    163151        /*
    164          *  再送タイマ
     152         *  再送タイマ
    165153         */
    166154        case TCP_TIM_REXMT:
    167155       
    168156                /*
    169                  *  最大再送回数 (TCP_MAX_REXMT_SHIFT、標準 12 回) になったときは、
    170                  *  コネクションを切断する。
     157                 *  最大再送回数 (TCP_MAX_REXMT_SHIFT、標準 12 回) になったときは、
     158                 *  コネクションを切断する。
    171159                 */
    172160                if (++ cep->rxtshift > TCP_MAX_REXMT_SHIFT) {
     
    178166
    179167                /*
    180                  *  再送タイムアウトを計算する。
     168                 *  再送タイムアウトを計算する。
    181169                 */
    182170                cep->rxtcur = tcp_range_set((T_TCP_TIME)(tcp_rexmt_val(cep) * tcp_back_off[cep->rxtshift]),
     
    186174
    187175                /*
    188                  *  srtt:   å¹³æ»‘化された RTT
    189                  *  rttvar: 平滑化された分散
     176                 *  srtt:   平滑化された RTT
     177                 *  rttvar: 平滑化された分散
    190178                 *
    191                  *  再送回数が最大再送回数の 1/4 になったときは、
    192                  *  平滑化された分散 (rttvar) に srtt を加算し、
    193                  *  平滑化された RTT を 0 にする。
     179                 *  再送回数が最大再送回数の 1/4 になったときは、
     180                 *  平滑化された分散 (rttvar) に srtt を加算し、
     181                 *  平滑化された RTT を 0 にする。
    194182                 * 
    195183                 */
     
    200188
    201189                /*
    202                  *  snd_nxt: 次に送信する SEQ、この時点では、前回送信した SEQ
    203                  *  snd_una: 未確認の最小送信 SEQ        または、確認された最大送信 SEQ
     190                 *  snd_nxt: 次に送信する SEQ、この時点では、前回送信した SEQ
     191                 *  snd_una: 未確認の最小送信 SEQ        または、確認された最大送信 SEQ
    204192                 *
    205                  *  前回送信した SEQ (snd_nxt) を
    206                  *  確認された最大送信 SEQ (snd_una) まで戻す。
     193                 *  前回送信した SEQ (snd_nxt) を
     194                 *  確認された最大送信 SEQ (snd_una) まで戻す。
    207195                 */
    208196                cep->snd_nxt = cep->snd_una;
     
    210198
    211199                /*
    212                  *  rtt: 往復時間の計測を中止する。
     200                 *  rtt: 往復時間の計測を中止する。
    213201                 */
    214202                cep->rtt     = 0;
    215203
    216204                /*
    217                  *  送信ウインドの設定
     205                 *  送信ウインドの設定
    218206                 *
    219                  *  snd_wnd:  相手の受信可能ウィンドサイズ
    220                  *  snd_cwnd: 輻輳ウィンドサイズ
    221                  *  maxseg  : 相手の最大受信セグメントサイズ
     207                 *  snd_wnd:  相手の受信可能ウィンドサイズ
     208                 *  snd_cwnd: 輻輳ウィンドサイズ
     209                 *  maxseg  : 相手の最大受信セグメントサイズ
    222210                 *
    223                  *  相手の受信可能ウィンドサイズ (snd_wnd) か、
    224                  *  輻輳ウィンドサイズ (snd_cwnd) の
    225                  *  どちらか小さいサイズの 1/2 を、更に
    226                  *  相手の最大受信セグメントサイズ (maxseg) で割った値。
    227                  *  ただし、2 以上
     211                 *  相手の受信可能ウィンドサイズ (snd_wnd) か、
     212                 *  輻輳ウィンドサイズ (snd_cwnd) の
     213                 *  どちらか小さいサイズの 1/2 を、更に
     214                 *  相手の最大受信セグメントサイズ (maxseg) で割った値。
     215                 *  ただし、2 以上
    228216                 */
    229217                if (cep->snd_wnd < cep->snd_cwnd)
     
    236224
    237225                /*
    238                  *  輻輳ウィンドサイズ (snd_cwnd) は
    239                  *  相手の受信可能ウィンドサイズ (snd_wnd) に、
    240                  *  輻輳ウィンドサイズのしきい値 (snd_ssthresh) は
    241                  *  相手の受信可能ウィンドサイズ (snd_wnd) の win 倍に
    242                  *  設定する。
     226                 *  輻輳ウィンドサイズ (snd_cwnd) は
     227                 *  相手の受信可能ウィンドサイズ (snd_wnd) に、
     228                 *  輻輳ウィンドサイズのしきい値 (snd_ssthresh) は
     229                 *  相手の受信可能ウィンドサイズ (snd_wnd) の win 倍に
     230                 *  設定する。
    243231                 */
    244232                cep->snd_cwnd     = cep->maxseg;
     
    246234                cep->dupacks      = 0;
    247235
    248                 /* 出力をポストする。*/
     236                /* 出力をポストする。*/
    249237                cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    250238                sig_sem(SEM_TCP_POST_OUTPUT);
     
    252240
    253241        /*
    254          *  持続タイマ     
     242         *  持続タイマ       
    255243         */
    256244        case TCP_TIM_PERSIST:
    257245
    258246                /*
    259                  *  最大再送回数 (TCP_MAX_REXMT_SHIFT、標準 12 回) をè¶
    260 ãˆã¦ã„て、
    261                  *  アイドル時間が、保留タイマの標準値 (TCP_TVAL_KEEP_IDLE、
    262                  *  標準 2 * 60 * 60 秒) 以上か、
    263                  *  再送タイムアウト値 * バックオフ時間の合計以上なら
    264                  *  コネクションを切断する。
     247                 *  最大再送回数 (TCP_MAX_REXMT_SHIFT、標準 12 回) を超えていて、
     248                 *  アイドル時間が、保留タイマの標準値 (TCP_TVAL_KEEP_IDLE、
     249                 *  標準 2 * 60 * 60 秒) 以上か、
     250                 *  再送タイムアウト値 * バックオフ時間の合計以上なら
     251                 *  コネクションを切断する。
    265252                 */
    266253                if (cep->rxtshift > TCP_MAX_REXMT_SHIFT &&
     
    272259                        }
    273260
    274                 /* 持続タイマを再設定し、出力をポストする。*/
     261                /* 持続タイマを再設定し、出力をポストする。*/
    275262                tcp_set_persist_timer(cep);
    276263
     
    280267
    281268        /*
    282          *  保留 (keep alive) タイマ
     269         *  保留 (keep alive) タイマ
    283270         */
    284271        case TCP_TIM_KEEP:
    285272
    286273                /*
    287                  *  コネクションが開設されるまでにタイムアウトしたら
    288                  *  コネクションの開設を中止する。
     274                 *  コネクションが開設されるまでにタイムアウトしたら
     275                 *  コネクションの開設を中止する。
    289276                 */
    290277                if (cep->fsm_state < TCP_FSM_ESTABLISHED) {
     
    320307
    321308        /*
    322          *  2MSL タイマ             
     309         *  2MSL タイマ           
    323310         */
    324311        case TCP_TIM_2MSL:
     
    336323
    337324/*
    338  *  tcp_cancel_timers -- å
    339 ¨ã¦ã®ã‚¿ã‚¤ãƒžã‚’キャンセルする。
     325 *  tcp_cancel_timers -- 全てのタイマをキャンセルする。
    340326 */
    341327
     
    352338
    353339/*
    354  *  tcp_tw_timo -- Time Wait 用 TCP 通信端点のタイムアウト処理
     340 *  tcp_tw_timo -- Time Wait 用 TCP 通信端点のタイムアウト処理
    355341 */
    356342
     
    364350
    365351        /*
    366          *  Time Wait 用 TCP 通信端点でタイムアウトのエントリを探索し、
    367          *  探索したエントリを空きにする。
     352         *  Time Wait 用 TCP 通信端点でタイムアウトのエントリを探索し、
     353         *  探索したエントリを空きにする。
    368354         */
    369355        frees = 0;
     
    375361
    376362        /*
    377          *  Time Wait 用 TCP 通信端点の空きエントリが発生したら
    378          *  標準 TCP 通信端点で Time Wait 中の TCP 通信端点を探索し、
    379          *  å¿
    380 è¦ãªæƒ
    381 å ±ã‚’ Time Wait 用 TCP 通信端点に移して、
    382          *  標準の TCP 通信端点を開放する。
     363         *  Time Wait 用 TCP 通信端点の空きエントリが発生したら
     364         *  標準 TCP 通信端点で Time Wait 中の TCP 通信端点を探索し、
     365         *  必要な情報を Time Wait 用 TCP 通信端点に移して、
     366         *  標準の TCP 通信端点を開放する。
    383367         */
    384368        if (frees > 0) {
     
    391375
    392376                /*
    393                  *  もっとも長い間 Time Wait している TCP 通信端点を開放する。
     377                 *  もっとも長い間 Time Wait している TCP 通信端点を開放する。
    394378                 */
    395379                while (waits > 0) {
     
    414398
    415399/*
    416  *  tcp_slow_timo -- 500 [ms] 毎に呼出される TCP タイムアウト関数
     400 *  tcp_slow_timo -- 500 [ms] 毎に呼出される TCP タイムアウト関数
    417401 */
    418402
     
    456440
    457441/*
    458  *  tcp_fast_timo -- 200 [ms] 毎に呼出される TCP タイムアウト関数
     442 *  tcp_fast_timo -- 200 [ms] 毎に呼出される TCP タイムアウト関数
    459443 */
    460444
     
    480464
    481465/*
    482  *  tcp_range_set -- 時間を指定した範囲に設定する。
     466 *  tcp_range_set -- 時間を指定した範囲に設定する。
    483467 */
    484468
     
    495479
    496480/*
    497  *  tcp_set_persist_timer -- 持続タイマの設定
     481 *  tcp_set_persist_timer -- 持続タイマの設定
    498482 */
    499483
     
    504488
    505489        /*
    506          *  srtt:   å¹³æ»‘化された RTT
    507          *  rttvar: 平滑化された分散
     490         *  srtt:   平滑化された RTT
     491         *  rttvar: 平滑化された分散
    508492         */
    509493        time = ((cep->srtt >> 2) + cep->rttvar) >> 1;
    510494
    511495        /*
    512          *  再送タイマも設定されていれば回復不能エラー
     496         *  再送タイマも設定されていれば回復不能エラー
    513497         */
    514498        if (cep->timer[TCP_TIM_REXMT])
     
    516500
    517501        /*
    518          *  持続タイマを設定する。
     502         *  持続タイマを設定する。
    519503         */
    520504        cep->timer[TCP_TIM_PERSIST] = tcp_range_set((T_TCP_TIME)(time * tcp_back_off[cep->rxtshift]),
     
    523507
    524508        /*
    525          *  再送回数を更新する。
     509         *  再送回数を更新する。
    526510         */
    527511        if (cep->rxtshift < TCP_MAX_REXMT_SHIFT)
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_timer.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8371#define _TCP_TIMER_H_
    8472
    85 /* TCP タイマ変数 */
     73/* TCP タイマ変数 */
    8674
    87 #define NUM_TCP_TIMERS          4       /* TCP のタイマ数  */
     75#define NUM_TCP_TIMERS          4       /* TCP のタイマ数    */
    8876
    89 #define TCP_TIM_REXMT           0       /* 再送タイマ              */
    90 #define TCP_TIM_PERSIST         1       /* 持続タイマ              */
    91 #define TCP_TIM_KEEP            2       /* 保留 (keep alive) タイマ*/
    92 #define TCP_TIM_2MSL            3       /* 2MSL タイマ               */
     77#define TCP_TIM_REXMT           0       /* 再送タイマ                */
     78#define TCP_TIM_PERSIST         1       /* 持続タイマ                */
     79#define TCP_TIM_KEEP            2       /* 保留 (keep alive) タイマ*/
     80#define TCP_TIM_2MSL            3       /* 2MSL タイマ             */
    9381
    94 /* MSL: Maximum Segment Lifetime, 最大セグメント生存時間             */
     82/* MSL: Maximum Segment Lifetime, 最大セグメント生存時間           */
    9583
    9684/*
    97  *  TCP/IP のタイマの定義
     85 *  TCP/IP のタイマの定義
    9886 */
    9987
     
    10391#define TCP_SLOW_HZ             (ULONG_C(1000)/TCP_SLOW_TMO/NET_TIMER_CYCLE)    /* Hz   */
    10492
    105 /* TCP タイマ値 */
     93/* TCP タイマ値 */
    10694
    10795#define TCP_TVAL_MSL            (TCP_SLOW_HZ * 30)
    108                                         /* 最大セグメント生存時間    */
     96                                        /* 最大セグメント生存時間  */
    10997
    110 #define TCP_TVAL_SRTT_BASE      0       /* 滑らかな往復時間の基準値*/
     98#define TCP_TVAL_SRTT_BASE      0       /* 滑らかな往復時間の基準値*/
    11199
    112100#define TCP_TVAL_RTO_BASE       (TCP_SLOW_HZ * 3)
    113                 /* æƒ
    114 å ±ãŒå¾—られない場合の再送タイムアウトの基準値      */
     101                /* 情報が得られない場合の再送タイムアウトの基準値      */
    115102
    116103#define TCP_TVAL_MIN_PERSIST    (TCP_SLOW_HZ * 5)
    117                                 /* 持続タイムアウトの最小値 */
     104                                /* 持続タイムアウトの最小値 */
    118105#define TCP_TVAL_MAX_PERSIST    (TCP_SLOW_HZ * 60)
    119                                 /* 持続タイムアウトの最大値 */
     106                                /* 持続タイムアウトの最大値 */
    120107
    121108#define TCP_TVAL_KEEP_INIT      (TCP_SLOW_HZ * 75)
    122                                         /* 保留タイマの初期値  */
     109                                        /* 保留タイマの初期値    */
    123110#define TCP_TVAL_KEEP_IDLE      (TCP_SLOW_HZ * 2 * 60 * 60)
    124                                         /* 保留タイマ起動までの標準値*/
     111                                        /* 保留タイマ起動までの標準値*/
    125112#define TCP_TVAL_KEEP_INTERVAL  (TCP_SLOW_HZ * 75)
    126                                         /* 保留タイマインターバルの標準値*/
    127 #define TCP_TVAL_KEEP_COUNT     8       /* 保留タイムアウトの最大値*/
     113                                        /* 保留タイマインターバルの標準値*/
     114#define TCP_TVAL_KEEP_COUNT     8       /* 保留タイムアウトの最大値*/
    128115
    129116#define TCP_TVAL_MIN            (TCP_SLOW_HZ * 3)
    130                                         /* 時間の最小単位        */
     117                                        /* 時間の最小単位      */
    131118#define TCP_TVAL_MAX_REXMT      (TCP_SLOW_HZ * 64)
    132                                         /* 最大再送時間           */
     119                                        /* 最大再送時間               */
    133120
    134121/*
    135  *  以下の変数の値はマクロで設定する。
     122 *  以下の変数の値はマクロで設定する。
    136123 *
    137124 *  tcp_maixidle   = tcp_keepcnt * tcp_keepintvl
     
    143130
    144131/*
    145  *  その他の定数
     132 *  その他の定数
    146133 */
    147134
    148 #define TCP_MAX_REXMT_SHIFT     12      /* 最大再送回数           */
     135#define TCP_MAX_REXMT_SHIFT     12      /* 最大再送回数               */
    149136
    150 /* TCP タイマ値の型 */
     137/* TCP タイマ値の型 */
    151138
    152139typedef int16_t T_TCP_TIME;
    153140
    154141/*
    155  *  関数
     142 *  関数
    156143 */
    157144
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_usrreq.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$
     
    132120
    133121/*
    134  *  IPv4 と IPv6 の切り替えマクロ
     122 *  IPv4 と IPv6 の切り替えマクロ
    135123 */
    136124
     
    152140
    153141/*
    154  *  TINET をライブラリ化しない場合は、å
    155 ¨ã¦ã®æ©Ÿèƒ½ã‚’
    156  *  オブジェクトファイルに出力するため、マクロを有効にする。
     142 *  TINET をライブラリ化しない場合は、全ての機能を
     143 *  オブジェクトファイルに出力するため、マクロを有効にする。
    157144 */
    158145
     
    182169
    183170/*
    184  *  tcp_cre_rep -- TCP 受付口の生成【拡張機能】
     171 *  tcp_cre_rep -- TCP 受付口の生成【拡張機能】
    185172 */
    186173
     
    195182        ER              error;
    196183
    197         /* TCP 受付口 ID をチェックする。*/
     184        /* TCP 受付口 ID をチェックする。*/
    198185        if (!VAID_TCP_REPID(repid))
    199186                return E_ID;
    200187
    201         /* pk_crep が NULL ならエラー */
     188        /* pk_crep が NULL ならエラー */
    202189        if (pk_crep == NULL)
    203190                return E_PAR;
    204191
    205         /* TCP 受付口を得る。*/
     192        /* TCP 受付口を得る。*/
    206193        rep = GET_TCP_REP(repid);
    207194
    208         /* TCP 受付口が、動的生成用でなければエラー */
     195        /* TCP 受付口が、動的生成用でなければエラー */
    209196        if (!DYNAMIC_TCP_REP(rep))
    210197                return E_ID;
    211198
    212         /* 受付口をロックする。*/
     199        /* 受付口をロックする。*/
    213200        syscall(wai_sem(rep->semid_lock));
    214201
    215202        /*
    216          * TCP 受付口をチェックする。生成済みであればエラー
     203         * TCP 受付口をチェックする。生成済みであればエラー
    217204         */
    218205        if (VALID_TCP_REP(rep))
     
    220207        else {
    221208
    222                 /* TCP 受付口生成æƒ
    223 å ±ã‚’コピーする。*/
    224                 rep->repatr = pk_crep->repatr;          /* 受付口属性              */
    225                 rep->myaddr = pk_crep->myaddr;          /* 自分のアドレス        */
    226 
    227                 /* TCP 受付口を生成済みにする。*/
     209                /* TCP 受付口生成情報をコピーする。*/
     210                rep->repatr = pk_crep->repatr;          /* 受付口属性                */
     211                rep->myaddr = pk_crep->myaddr;          /* 自分のアドレス      */
     212
     213                /* TCP 受付口を生成済みにする。*/
    228214                rep->flags |= TCP_REP_FLG_VALID;
    229215                error = E_OK;
    230216                }
    231217
    232         /* 受付口のロックを解除する。*/
     218        /* 受付口のロックを解除する。*/
    233219        syscall(sig_sem(rep->semid_lock));
    234220
     
    245231
    246232/*
    247  *  tcp_find_cep_rep -- TCP 受付口をリンクしている TCP 通信端点を得る。
     233 *  tcp_find_cep_rep -- TCP 受付口をリンクしている TCP 通信端点を得る。
    248234 */
    249235
     
    262248
    263249/*
    264  *  tcp_del_rep -- TCP 受付口の削除【拡張機能】
     250 *  tcp_del_rep -- TCP 受付口の削除【拡張機能】
    265251 */
    266252
     
    273259        ER              error = E_OK;
    274260
    275         /* TCP 受付口 ID をチェックする。*/
     261        /* TCP 受付口 ID をチェックする。*/
    276262        if (!VAID_TCP_REPID(repid))
    277263                return E_ID;
    278264
    279         /* TCP 受付口を得る。*/
     265        /* TCP 受付口を得る。*/
    280266        rep = GET_TCP_REP(repid);
    281267
    282         /* TCP 受付口が、動的生成用でなければエラー */
     268        /* TCP 受付口が、動的生成用でなければエラー */
    283269        if (!DYNAMIC_TCP_REP(rep))
    284270                return E_ID;
    285271
    286         /* 受付口をロックする。*/
     272        /* 受付口をロックする。*/
    287273        syscall(wai_sem(rep->semid_lock));
    288274
    289         /* TCP 受付口をチェックする。未生成の場合はエラー */
     275        /* TCP 受付口をチェックする。未生成の場合はエラー */
    290276        if (!VALID_TCP_REP(rep))
    291277                error = E_NOEXS;
     
    293279                if ((cep = tcp_find_cep_rep(rep)) != NULL) {
    294280                        /*
    295                          * すでに受動オープンしているとき
    296                          *(tcp_acp_cep が呼ばれているとき)は、
    297                          * tcp_acp_cep を終了させる。
     281                         * すでに受動オープンしているとき
     282                         *(tcp_acp_cep が呼ばれているとき)は、
     283                         * tcp_acp_cep を終了させる。
    298284                         */
    299285
    300                         /* 通信端点をロックする。*/
     286                        /* 通信端点をロックする。*/
    301287                        syscall(wai_sem(cep->semid_lock));
    302288
    303289                        /*
    304                          *  通信端点から受付口を解放し、
    305                          *  イベントフラグをクローズに設定する。
     290                         *  通信端点から受付口を解放し、
     291                         *  イベントフラグをクローズに設定する。
    306292                         */
    307293                        cep->rep = NULL;
     
    338324                        cep->rcv_tfn   = TFN_TCP_UNDEF;
    339325
    340                         /* 通信端点のロックを解除する。*/
     326                        /* 通信端点のロックを解除する。*/
    341327                        syscall(sig_sem(cep->semid_lock));
    342328
     
    345331                        error = E_OK;
    346332
    347                 /* TCP 受付口を未生成にする。*/
     333                /* TCP 受付口を未生成にする。*/
    348334                rep->flags &= ~TCP_REP_FLG_VALID;
    349335                }
    350336
    351         /* 受付口のロックを解除する。*/
     337        /* 受付口のロックを解除する。*/
    352338        syscall(sig_sem(rep->semid_lock));
    353339
     
    360346
    361347/*
    362  *  tcp_cre_cep -- TCP 通信端点の生成【拡張機能】
     348 *  tcp_cre_cep -- TCP 通信端点の生成【拡張機能】
    363349 */
    364350
     
    373359        ER              error;
    374360
    375         /* TCP 通信端点 ID をチェックする。*/
     361        /* TCP 通信端点 ID をチェックする。*/
    376362        if (!VAID_TCP_CEPID(cepid))
    377363                return E_ID;
    378364
    379         /* pk_ccep が NULL ならエラー */
     365        /* pk_ccep が NULL ならエラー */
    380366        if (pk_ccep == NULL)
    381367                return E_PAR;
    382368
    383         /* TCP 通信端点を得る。*/
     369        /* TCP 通信端点を得る。*/
    384370        cep = GET_TCP_CEP(cepid);
    385371
    386         /* TCP 通信端点が、動的生成用でなければエラー */
     372        /* TCP 通信端点が、動的生成用でなければエラー */
    387373        if (!DYNAMIC_TCP_CEP(cep))
    388374                return E_ID;
    389375
    390         /* 通信端点をロックする。*/
     376        /* 通信端点をロックする。*/
    391377        syscall(wai_sem(cep->semid_lock));
    392378
    393379        /*
    394          * TCP 通信端点をチェックする。生成済みであればエラー
     380         * TCP 通信端点をチェックする。生成済みであればエラー
    395381         */
    396382        if (VALID_TCP_CEP(cep))
     
    398384        else {
    399385
    400                 /* TCP 通信端点生成æƒ
    401 å ±ã‚’コピーする。*/
    402                 cep->cepatr   = pk_ccep->cepatr;                /* 通信端点属性                   */
    403                 cep->sbuf     = pk_ccep->sbuf;                  /* 送信用ウィンドバッファ    */
    404                 cep->sbufsz   = pk_ccep->sbufsz;                /* 送信用ウィンドバッファサイズ   */
    405                 cep->rbuf     = pk_ccep->rbuf;                  /* 受信用ウィンドバッファ    */
    406                 cep->rbufsz   = pk_ccep->rbufsz;                /* 受信用ウィンドバッファサイズ   */
    407                 cep->callback = (void*)pk_ccep->callback;       /* コールバック                   */
    408 
    409                 /* TCP 通信端点を生成済みにする。*/
     386                /* TCP 通信端点生成情報をコピーする。*/
     387                cep->cepatr   = pk_ccep->cepatr;                /* 通信端点属性                       */
     388                cep->sbuf     = pk_ccep->sbuf;                  /* 送信用ウィンドバッファ  */
     389                cep->sbufsz   = pk_ccep->sbufsz;                /* 送信用ウィンドバッファサイズ       */
     390                cep->rbuf     = pk_ccep->rbuf;                  /* 受信用ウィンドバッファ  */
     391                cep->rbufsz   = pk_ccep->rbufsz;                /* 受信用ウィンドバッファサイズ       */
     392                cep->callback = (void*)pk_ccep->callback;       /* コールバック                       */
     393
     394                /* TCP 通信端点を生成済みにする。*/
    410395                cep->flags |= TCP_CEP_FLG_VALID;
    411396                error = E_OK;
    412397                }
    413398
    414         /* 通信端点のロックを解除する。*/
     399        /* 通信端点のロックを解除する。*/
    415400        syscall(sig_sem(cep->semid_lock));
    416401
     
    423408
    424409/*
    425  *  tcp_del_cep -- TCP 通信端点の削除【拡張機能】
     410 *  tcp_del_cep -- TCP 通信端点の削除【拡張機能】
    426411 */
    427412
     
    436421        ER              error;
    437422
    438         /* TCP 通信端点 ID をチェックする。*/
     423        /* TCP 通信端点 ID をチェックする。*/
    439424        if (!VAID_TCP_CEPID(cepid))
    440425                return E_ID;
    441426
    442         /* TCP 通信端点を得る。*/
     427        /* TCP 通信端点を得る。*/
    443428        cep = GET_TCP_CEP(cepid);
    444429
    445         /* TCP 通信端点が、動的生成用でなければエラー */
     430        /* TCP 通信端点が、動的生成用でなければエラー */
    446431        if (!DYNAMIC_TCP_CEP(cep))
    447432                return E_ID;
    448433
    449         /* 通信端点をロックする。*/
     434        /* 通信端点をロックする。*/
    450435        syscall(wai_sem(cep->semid_lock));
    451436
    452437        /*
    453          * TCP 通信端点をチェックする。以下の場合はエラー
    454          * ・未生成。
    455          * ・使用中。
     438         * TCP 通信端点をチェックする。以下の場合はエラー
     439         * ・未生成。
     440         * ・使用中。
    456441         */
    457442        if (!VALID_TCP_CEP(cep))
     
    461446        else {
    462447
    463                 /* TCP 通信端点を未生成にする。*/
     448                /* TCP 通信端点を未生成にする。*/
    464449                cep->flags &= ~TCP_CEP_FLG_VALID;
    465450                error = E_OK;
    466451                }
    467452
    468         /* 通信端点のロックを解除する。*/
     453        /* 通信端点のロックを解除する。*/
    469454        syscall(sig_sem(cep->semid_lock));
    470455
     
    479464
    480465/*
    481  *  tcp_acp_cep -- 接続要求å¾
    482 ã¡ (受動オープン)【標準機能】
     466 *  tcp_acp_cep -- 接続要求待ち (受動オープン)【標準機能】
    483467 */
    484468
     
    493477        FLGPTN          flag;
    494478
    495         /* TCP 受付口をチェックする。*/
     479        /* TCP 受付口をチェックする。*/
    496480        if (!VAID_TCP_REPID(repid))
    497481                return E_ID;
     
    499483#ifdef TCP_CFG_NON_BLOCKING
    500484
    501         /* p_dstaddr が NULL ならエラー */
     485        /* p_dstaddr が NULL ならエラー */
    502486        if (p_dstaddr == NULL)
    503487                return E_PAR;
     
    505489#else   /* of #ifdef TCP_CFG_NON_BLOCKING */
    506490
    507         /* p_dstaddr が NULL か、tmout が TMO_NBLK ならエラー */
     491        /* p_dstaddr が NULL か、tmout が TMO_NBLK ならエラー */
    508492        if (p_dstaddr == NULL || tmout == TMO_NBLK)
    509493                return E_PAR;
     
    512496
    513497        /*
    514          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    515          *  すでに記録されていれば、ペンディング中なのでエラー
     498         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     499         *  すでに記録されていれば、ペンディング中なのでエラー
    516500         */
    517501        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_ACP_CEP)) != E_OK)
    518502                return error;
    519503
    520         /* CEP の FSM がクローズ状æ
    521 ‹ã§ãªã‘ればエラー。*/
     504        /* CEP の FSM がクローズ状態でなければエラー。*/
    522505        if (cep->fsm_state != TCP_FSM_CLOSED) {
    523506                error = E_OBJ;
     
    526509        syscall(clr_flg(cep->est_flgid, (FLGPTN)(~TCP_CEP_EVT_CLOSED)));
    527510
    528         /* TCP 通信端点を初期化する。*/
     511        /* TCP 通信端点を初期化する。*/
    529512        tcp_init_cep(cep);
    530513
    531         /* TCP 受付口を得る。*/
     514        /* TCP 受付口を得る。*/
    532515        rep = GET_TCP_REP(repid);
    533516
    534517#ifdef TCP_CFG_EXTENTIONS
    535518
    536         /* TCP 受付口をロックする。*/
     519        /* TCP 受付口をロックする。*/
    537520        syscall(wai_sem(rep->semid_lock));
    538521
    539         /* TCP 受付口をチェックする。*/
     522        /* TCP 受付口をチェックする。*/
    540523        if (!VALID_TCP_REP(rep)) {
    541524                syscall(sig_sem(rep->semid_lock));
     
    546529#endif  /* of #ifdef TCP_CFG_EXTENTIONS */
    547530
    548         /* TCP 通信端点にTCP受付口を記録する。*/
     531        /* TCP 通信端点にTCP受付口を記録する。*/
    549532        cep->rep = rep;
    550533
    551534#ifdef TCP_CFG_EXTENTIONS
    552535
    553         /* TCP 受付口のロックを解除する。*/
     536        /* TCP 受付口のロックを解除する。*/
    554537        syscall(sig_sem(rep->semid_lock));
    555538
    556539#endif  /* of #ifdef TCP_CFG_EXTENTIONS */
    557540
    558         /* TCP 受付口のアドレスをコピーする。*/
     541        /* TCP 受付口のアドレスをコピーする。*/
    559542        cep->myaddr = rep->myaddr;
    560543
    561         /* 通信端点を設定する。*/
     544        /* 通信端点を設定する。*/
    562545        cep->fsm_state = TCP_FSM_LISTEN;
    563546
    564547#ifdef TCP_CFG_NON_BLOCKING
    565548
    566         /* タイムアウトをチェックする。*/
     549        /* タイムアウトをチェックする。*/
    567550        if (tmout == TMO_NBLK) {
    568                 /* ノンブロッキングコール */
     551                /* ノンブロッキングコール */
    569552                cep->p_dstaddr    = p_dstaddr;
    570553                cep->rcv_nblk_tfn = TFN_TCP_ACP_CEP;
     
    576559
    577560                /*
    578                  *  FSM が ESTABLISHED になるまでå¾
    579 ã¤ã€‚
    580                  *  FSM が CLOSED になった場合は、エラーが発生したことを意味している。
     561                 *  FSM が ESTABLISHED になるまで待つ。
     562                 *  FSM が CLOSED になった場合は、エラーが発生したことを意味している。
    581563                 */
    582564                error = twai_flg(cep->est_flgid, (TCP_CEP_EVT_CLOSED |
     
    592574
    593575                if (error == E_OK) {
    594                         /* 相手のアドレスをコピーする。*/
     576                        /* 相手のアドレスをコピーする。*/
    595577                        *p_dstaddr = cep->dstaddr;
    596578                        }
    597579                else {
    598580                        /*
    599                          *  通信端点から受付口を解放し、
    600                          *  イベントフラグをクローズに設定する。
     581                         *  通信端点から受付口を解放し、
     582                         *  イベントフラグをクローズに設定する。
    601583                         */
    602584                        cep->rep = NULL;
     
    622604
    623605/*
    624  *  tcp_con_cep -- 接続要求 (能動オープン)【標準機能】
     606 *  tcp_con_cep -- 接続要求 (能動オープン)【標準機能】
    625607 */
    626608
     
    637619
    638620        /*
    639          *  p_dstaddr または p_myaddr が NULL か、
    640          *  あてå
    641 ˆãŒãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ãªã‚‰ã‚¨ãƒ©ãƒ¼
     621         *  p_dstaddr または p_myaddr が NULL か、
     622         *  あて先がマルチキャストアドレスならエラー
    642623         */
    643624        if (p_myaddr == NULL || p_dstaddr == NULL || IN_IS_ADDR_MULTICAST(&p_dstaddr->ipaddr))
     
    647628
    648629        /*
    649          *  p_dstaddr または p_myaddr が NULL 、
    650          *  あてå
    651 ˆãŒãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‹ã€
    652          *  tmout が TMO_NBLK ならエラー
     630         *  p_dstaddr または p_myaddr が NULL 、
     631         *  あて先がマルチキャストアドレスか、
     632         *  tmout が TMO_NBLK ならエラー
    653633         */
    654634        if (p_myaddr == NULL || p_dstaddr == NULL ||
     
    659639
    660640        /*
    661          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    662          *  すでに記録されていれば、ペンディング中なのでエラー
     641         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     642         *  すでに記録されていれば、ペンディング中なのでエラー
    663643         */
    664644        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_CON_CEP)) != E_OK)
    665645                return error;
    666646
    667         /* CEP の FSM がクローズ状æ
    668 ‹ã§ãªã‘ればエラー。*/
     647        /* CEP の FSM がクローズ状態でなければエラー。*/
    669648        if (cep->fsm_state != TCP_FSM_CLOSED) {
    670649                error = E_OBJ;
     
    673652        syscall(clr_flg(cep->est_flgid, (FLGPTN)(~TCP_CEP_EVT_CLOSED)));
    674653
    675         /* シーケンス番号を初期化する。*/
     654        /* シーケンス番号を初期化する。*/
    676655        if (tcp_iss == 0)
    677656                tcp_init_iss();
    678657
    679         /* 通信端点を初期化する。*/
     658        /* 通信端点を初期化する。*/
    680659        tcp_init_cep(cep);
    681660
    682661        /*
    683          *  p_myaddr が NADR (-1) ではなく、自 IP アドレスが ANY でなければ、
    684          *  指定された IP アドレスを割り当てる。
     662         *  p_myaddr が NADR (-1) ではなく、自 IP アドレスが ANY でなければ、
     663         *  指定された IP アドレスを割り当てる。
    685664         */
    686665        if (p_myaddr != NADR && !IN_IS_ADDR_ANY(&p_myaddr->ipaddr))
     
    696675                }
    697676
    698         /* 通信端点を設定する。*/
     677        /* 通信端点を設定する。*/
    699678        cep->fsm_state = TCP_FSM_SYN_SENT;
    700679        cep->dstaddr   = *p_dstaddr;
     
    706685#ifdef TCP_CFG_NON_BLOCKING
    707686
    708         /* タイムアウトをチェックする。*/
     687        /* タイムアウトをチェックする。*/
    709688        if (tmout == TMO_NBLK) {
    710                 /* ノンブロッキングコール */
     689                /* ノンブロッキングコール */
    711690                cep->p_dstaddr    = p_dstaddr;
    712691                cep->p_myaddr     = p_myaddr;
    713692                cep->snd_nblk_tfn = TFN_TCP_CON_CEP;
    714693
    715                 /* コネクションの開設をポストする。*/
     694                /* コネクションの開設をポストする。*/
    716695                cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    717696                sig_sem(SEM_TCP_POST_OUTPUT);
     
    723702
    724703                /*
    725                  *  p_myaddr が NADR (-1) か、
    726                  *  自ポート番号が TCP_PORTANY なら、自動で割り当てる。
     704                 *  p_myaddr が NADR (-1) か、
     705                 *  自ポート番号が TCP_PORTANY なら、自動で割り当てる。
    727706                 */
    728707                if (p_myaddr == NADR || p_myaddr->portno == TCP_PORTANY)
     
    731710                        goto err_ret;
    732711
    733                 /* コネクションの開設をポストする。*/
     712                /* コネクションの開設をポストする。*/
    734713                cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    735714                sig_sem(SEM_TCP_POST_OUTPUT);
    736715
    737716                /*
    738                  *  イベントが ESTABLISHED になるまでå¾
    739 ã¤ã€‚
    740                  *  イベントが CLOSED になった場合は、何らかのエラーが発生したか、
    741                  *  接続要求が拒否されたことを意味している。
     717                 *  イベントが ESTABLISHED になるまで待つ。
     718                 *  イベントが CLOSED になった場合は、何らかのエラーが発生したか、
     719                 *  接続要求が拒否されたことを意味している。
    742720                 */
    743721                error = twai_flg(cep->est_flgid, (TCP_CEP_EVT_CLOSED |
     
    754732                if (error != E_OK) {
    755733                        /*
    756                          *  通信端点から受付口を解放し、
    757                          *  イベントフラグをクローズに設定する。
     734                         *  通信端点から受付口を解放し、
     735                         *  イベントフラグをクローズに設定する。
    758736                         */
    759737                        cep->rep = NULL;
     
    779757
    780758/*
    781  *  tcp_user_closed -- ユーザからのコネクションの開放
     759 *  tcp_user_closed -- ユーザからのコネクションの開放
    782760 */
    783761
     
    787765        switch (cep->fsm_state) {
    788766
    789         case TCP_FSM_CLOSED:            /* クローズ */
    790         case TCP_FSM_LISTEN:            /* 受動オープン   */
     767        case TCP_FSM_CLOSED:            /* クローズ */
     768        case TCP_FSM_LISTEN:            /* 受動オープン       */
    791769                cep->fsm_state = TCP_FSM_CLOSED;
    792770                cep = tcp_close(cep);
    793771                break;
    794772
    795         case TCP_FSM_SYN_SENT:          /* 能動オープン、SYN 送信済み        */
    796         case TCP_FSM_SYN_RECVD:         /* SYN を受信し、SYN 送信済み  */
     773        case TCP_FSM_SYN_SENT:          /* 能動オープン、SYN 送信済み      */
     774        case TCP_FSM_SYN_RECVD:         /* SYN を受信し、SYN 送信済み    */
    797775                cep->flags |= TCP_CEP_FLG_NEED_FIN;
    798776                break;
    799777
    800         case TCP_FSM_ESTABLISHED:       /* コネクション開設完了       */
     778        case TCP_FSM_ESTABLISHED:       /* コネクション開設完了   */
    801779                cep->fsm_state = TCP_FSM_FIN_WAIT_1;
    802780                break;
    803781
    804         case TCP_FSM_CLOSE_WAIT:        /* 相手から FIN 受信、APP の終了å¾
    805 ã¡ */
     782        case TCP_FSM_CLOSE_WAIT:        /* 相手から FIN 受信、APP の終了待ち */
    806783                cep->fsm_state = TCP_FSM_LAST_ACK;
    807784                break;
     
    814791
    815792/*
    816  *  tcp_cls_cep -- 通信端点のクローズ【標準機能】
     793 *  tcp_cls_cep -- 通信端点のクローズ【標準機能】
    817794 */
    818795
     
    826803#ifndef TCP_CFG_NON_BLOCKING
    827804
    828         /* tmout が TMO_NBLK ならエラー */
     805        /* tmout が TMO_NBLK ならエラー */
    829806        if (tmout == TMO_NBLK)
    830807                return E_PAR;
     
    833810
    834811        /*
    835          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    836          *  すでに記録されていれば、ペンディング中なのでエラー
     812         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     813         *  すでに記録されていれば、ペンディング中なのでエラー
    837814         */
    838815        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_CLS_CEP)) != E_OK)
     
    841818#ifdef TCP_CFG_NON_BLOCKING
    842819
    843         /* タイムアウトをチェックする。*/
    844         if (tmout == TMO_NBLK) {                                /* ノンブロッキングコール */
     820        /* タイムアウトをチェックする。*/
     821        if (tmout == TMO_NBLK) {                                /* ノンブロッキングコール */
    845822
    846823                if (!IS_PTR_DEFINED(cep->callback))
    847824                        error = E_OBJ;
    848                 else if (cep->fsm_state == TCP_FSM_CLOSED) {    /* すでにクローズされているとき */
     825                else if (cep->fsm_state == TCP_FSM_CLOSED) {    /* すでにクローズされているとき */
    849826
    850827#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
     
    864841                        }
    865842                else {
    866                         /* NBLK のAPI 機能コードを設定する。*/
     843                        /* NBLK のAPI 機能コードを設定する。*/
    867844                        cep->rcv_nblk_tfn = TFN_TCP_CLS_CEP;
    868845
    869                         if ((cep = tcp_user_closed(cep)) != NULL) {     /* コネクションを切断する。*/
    870                                 /* 切断セグメント出力をポストする。*/
     846                        if ((cep = tcp_user_closed(cep)) != NULL) {     /* コネクションを切断する。*/
     847                                /* 切断セグメント出力をポストする。*/
    871848                                cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    872849                                sig_sem(SEM_TCP_POST_OUTPUT);
    873850                                }
    874851
    875                         /*  cep が NULL で戻ってきた場合は、
    876                          *  既にコネクションが切断されていることを意味している。
    877                          *  また、この場合コールバック関数が呼び出されている。
     852                        /*  cep が NULL で戻ってきた場合は、
     853                         *  既にコネクションが切断されていることを意味している。
     854                         *  また、この場合コールバック関数が呼び出されている。
    878855                         */
    879856                        return E_WBLK;
    880857                        }
    881858                }
    882         else {                                                  /* 非ノンブロッキングコール */
    883 
    884 #endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    885 
    886                 if ((cep = tcp_user_closed(cep)) == NULL) {     /* コネクションを切断する。*/
    887 
    888                         /*  cep が NULL で戻ってきた場合は、
    889                          *  既にコネクションが切断されていることを意味している。
     859        else {                                                  /* 非ノンブロッキングコール */
     860
     861#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
     862
     863                if ((cep = tcp_user_closed(cep)) == NULL) {     /* コネクションを切断する。*/
     864
     865                        /*  cep が NULL で戻ってきた場合は、
     866                         *  既にコネクションが切断されていることを意味している。
    890867                         */
    891868                        return error;
    892869                        }
    893870                else {
    894                         /* 切断セグメント出力をポストする。*/
     871                        /* 切断セグメント出力をポストする。*/
    895872                        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    896873                        sig_sem(SEM_TCP_POST_OUTPUT);
    897874
    898                         /* イベントフラグが CLOSED になるまでå¾
    899 ã¤ã€‚*/
     875                        /* イベントフラグが CLOSED になるまで待つ。*/
    900876                        error = twai_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED, TWF_ORW, &flag, tmout);
    901877                        if (error == E_OK && cep->error != E_OK)
     
    904880                        if (error != E_OK) {
    905881                                if (error == E_RLWAI) {
    906                                         /* tcp_cls_cep がキャンセルされたときは、RST を送信する。*/
     882                                        /* tcp_cls_cep がキャンセルされたときは、RST を送信する。*/
    907883                                        tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una - 1,
    908884                                                    cep->rbufsz - cep->rwbuf_count, TCP_FLG_RST);
    909885                                        }
    910886
    911                                 /* タイマーを停止する。*/
     887                                /* タイマーを停止する。*/
    912888                                tcp_cancel_timers(cep);
    913889
    914890                                /*
    915                                  *  通信端点をロックし、
    916                                  *  受信再構成キューのネットワークバッファを解放する。
     891                                 *  通信端点をロックし、
     892                                 *  受信再構成キューのネットワークバッファを解放する。
    917893                                 */
    918894                                syscall(wai_sem(cep->semid_lock));
     
    920896                                syscall(sig_sem(cep->semid_lock));
    921897
    922                                 /* 状æ
    923 ‹ã‚’未使用にする。*/
     898                                /* 状態を未使用にする。*/
    924899                                cep->fsm_state = TCP_FSM_CLOSED;
    925900
    926901                                /*
    927                                  * 以下に関係しないフラグをクリアーする。
    928                                  * ・送受信ウィンドバッファの省コピー機能
    929                                  * ・動的な通信端点の生成・削除機能
     902                                 * 以下に関係しないフラグをクリアーする。
     903                                 * ・送受信ウィンドバッファの省コピー機能
     904                                 * ・動的な通信端点の生成・削除機能
    930905                                 */
    931906                                cep->flags &= (TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK |
     
    933908
    934909                                /*
    935                                  *  通信端点をロックし、
    936                                  *  送受信ウィンドバッファキューのネットワークバッファを解放する。
     910                                 *  通信端点をロックし、
     911                                 *  送受信ウィンドバッファキューのネットワークバッファを解放する。
    937912                                 */
    938913                                cep->rwbuf_count = 0;
     
    962937
    963938/*
    964  *  tcp_sht_cep  -- データ送信の終了【標準機能】
     939 *  tcp_sht_cep  -- データ送信の終了【標準機能】
    965940 */
    966941
     
    972947
    973948        /*
    974          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    975          *  すでに記録されていれば、ペンディング中なのでエラー
     949         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     950         *  すでに記録されていれば、ペンディング中なのでエラー
    976951         */
    977952        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SHT_CEP)) != E_OK)
    978953                return error;
    979954
    980         /* TCP 通信端点のコネクションが確立状æ
    981 ‹ã§ãªã‘ればエラー */
     955        /* TCP 通信端点のコネクションが確立状態でなければエラー */
    982956        if (!TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) {
    983957                if ((error = cep->error) == E_OK)
     
    985959                }
    986960
    987         else if ((cep = tcp_user_closed(cep)) != NULL) {                /* コネクションを切断する。*/
    988 
    989                 /* 切断セグメント出力をポストする。*/
     961        else if ((cep = tcp_user_closed(cep)) != NULL) {                /* コネクションを切断する。*/
     962
     963                /* 切断セグメント出力をポストする。*/
    990964                cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    991965                sig_sem(SEM_TCP_POST_OUTPUT);
     
    1002976
    1003977/*
    1004  *  tcp_snd_dat -- パケットの送信【標準機能】
     978 *  tcp_snd_dat -- パケットの送信【標準機能】
    1005979 */
    1006980
     
    1013987#ifdef TCP_CFG_NON_BLOCKING
    1014988
    1015         /* data が NULL か、len < 0 ならエラー */
     989        /* data が NULL か、len < 0 ならエラー */
    1016990        if (data == NULL || len < 0)
    1017991                return E_PAR;
     
    1019993#else   /* of #ifdef TCP_CFG_NON_BLOCKING */
    1020994
    1021         /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
     995        /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
    1022996        if (data == NULL || len < 0 || tmout == TMO_NBLK)
    1023997                return E_PAR;
     
    10261000
    10271001        /*
    1028          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    1029          *  すでに記録されていれば、ペンディング中なのでエラー
     1002         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     1003         *  すでに記録されていれば、ペンディング中なのでエラー
    10301004         */
    10311005        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_DAT)) != E_OK)
    10321006                return error;
    10331007
    1034         /* 送信できるか、通信端点の状æ
    1035 ‹ã‚’見る。*/
     1008        /* 送信できるか、通信端点の状態を見る。*/
    10361009        if ((error = tcp_can_send_more(cep, TFN_TCP_SND_DAT, tmout)) != E_OK)
    10371010                goto err_ret;
     
    10391012#ifdef TCP_CFG_NON_BLOCKING
    10401013
    1041         /* タイムアウトをチェックする。*/
    1042         if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
    1043 
    1044                 /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
     1014        /* タイムアウトをチェックする。*/
     1015        if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
     1016
     1017                /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
    10451018                if (!TCP_IS_SWBUF_FULL(cep)) {
    10461019
    1047                         /* 送信ウィンドバッファにデータを書き込む。*/
     1020                        /* 送信ウィンドバッファにデータを書き込む。*/
    10481021                        error = TCP_WRITE_SWBUF(cep, data, (uint_t)len);
    10491022
    1050                         /* 出力をポストする。*/
     1023                        /* 出力をポストする。*/
    10511024                        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    10521025                        sig_sem(SEM_TCP_POST_OUTPUT);
     
    10541027#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    10551028
    1056                         /* コールバック関数を呼び出す。*/
     1029                        /* コールバック関数を呼び出す。*/
    10571030                        (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_DAT, (void*)error);
    10581031
    10591032#else   /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
    10601033
    1061                         /* コールバック関数を呼び出す。*/
     1034                        /* コールバック関数を呼び出す。*/
    10621035                        (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_DAT, (void*)&error);
    10631036
     
    10761049                        }
    10771050                }
    1078         else {          /* 非ノンブロッキングコール */
    1079 
    1080 #endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    1081 
    1082                 /* 送信ウィンドバッファが空くのをå¾
    1083 ã¤ã€‚*/
     1051        else {          /* 非ノンブロッキングコール */
     1052
     1053#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
     1054
     1055                /* 送信ウィンドバッファが空くのを待つ。*/
    10841056                if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
    10851057                        goto err_ret;
    10861058
    1087                 /* 送信ウィンドバッファにデータを書き込む。*/
     1059                /* 送信ウィンドバッファにデータを書き込む。*/
    10881060                if ((error = TCP_WRITE_SWBUF(cep, data, (uint_t)len)) > 0) {
    10891061
    1090                         /* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/
     1062                        /* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/
    10911063                        if (TCP_IS_SWBUF_FULL(cep))
    10921064                                cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR;
    10931065
    1094                         /* 出力をポストする。*/
     1066                        /* 出力をポストする。*/
    10951067                        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    10961068                        sig_sem(SEM_TCP_POST_OUTPUT);
     
    11161088
    11171089/*
    1118  *  tcp_snd_oob -- 緊急データの送信【拡張機能】
     1090 *  tcp_snd_oob -- 緊急データの送信【拡張機能】
    11191091 */
    11201092
     
    11271099#ifdef TCP_CFG_NON_BLOCKING
    11281100
    1129         /* data が NULL か、len < 0 ならエラー */
     1101        /* data が NULL か、len < 0 ならエラー */
    11301102        if (data == NULL || len < 0)
    11311103                return E_PAR;
     
    11331105#else   /* of #ifdef TCP_CFG_NON_BLOCKING */
    11341106
    1135         /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
     1107        /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
    11361108        if (data == NULL || len < 0 || tmout == TMO_NBLK)
    11371109                return E_PAR;
     
    11401112
    11411113        /*
    1142          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    1143          *  すでに記録されていれば、ペンディング中なのでエラー
     1114         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     1115         *  すでに記録されていれば、ペンディング中なのでエラー
    11441116         */
    11451117        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_OOB)) != E_OK)
    11461118                return error;
    11471119
    1148         /* 送信できるか、通信端点の状æ
    1149 ‹ã‚’見る。*/
     1120        /* 送信できるか、通信端点の状態を見る。*/
    11501121        if ((error = tcp_can_send_more(cep, TFN_TCP_SND_OOB, tmout)) != E_OK)
    11511122                goto err_ret;
     
    11531124#ifdef TCP_CFG_NON_BLOCKING
    11541125
    1155         /* タイムアウトをチェックする。*/
    1156         if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
    1157 
    1158                 /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
     1126        /* タイムアウトをチェックする。*/
     1127        if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
     1128
     1129                /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
    11591130                if (!TCP_IS_SWBUF_FULL(cep)) {
    11601131
    1161                         /* 送信ウィンドバッファにデータを書き込む。*/
     1132                        /* 送信ウィンドバッファにデータを書き込む。*/
    11621133                        error = TCP_WRITE_SWBUF(cep, data, (uint_t)len);
    11631134
    1164                         /* 送信緊急ポインタを設定する。*/
     1135                        /* 送信緊急ポインタを設定する。*/
    11651136                        cep->snd_up = cep->snd_una + cep->swbuf_count;
    11661137
    1167                         /* 出力をポストする。*/
     1138                        /* 出力をポストする。*/
    11681139                        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    11691140                        sig_sem(SEM_TCP_POST_OUTPUT);
     
    11711142#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    11721143
    1173                         /* コールバック関数を呼び出す。*/
     1144                        /* コールバック関数を呼び出す。*/
    11741145                        (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_OOB, (void*)error);
    11751146
    11761147#else   /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
    11771148
    1178                         /* コールバック関数を呼び出す。*/
     1149                        /* コールバック関数を呼び出す。*/
    11791150                        (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_OOB, (void*)&error);
    11801151
     
    11931164                        }
    11941165                }
    1195         else {          /* 非ノンブロッキングコール */
    1196 
    1197 #endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    1198 
    1199                 /* 送信ウィンドバッファが空くのをå¾
    1200 ã¤ã€‚*/
     1166        else {          /* 非ノンブロッキングコール */
     1167
     1168#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
     1169
     1170                /* 送信ウィンドバッファが空くのを待つ。*/
    12011171                if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
    12021172                        goto err_ret;
    12031173
    1204                 /* 送信ウィンドバッファにデータを書き込む。*/
     1174                /* 送信ウィンドバッファにデータを書き込む。*/
    12051175                if ((error = TCP_WRITE_SWBUF(cep, data, (uint_t)len)) > 0) {
    12061176
    1207                         /* 送信緊急ポインタを設定する。*/
     1177                        /* 送信緊急ポインタを設定する。*/
    12081178                        cep->snd_up = cep->snd_una + cep->swbuf_count;
    12091179
    1210                         /* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/
     1180                        /* データを送信する。送信ウィンドバッファがフルのときは強制的に送信する。*/
    12111181                        if (TCP_IS_SWBUF_FULL(cep))
    12121182                                cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR;
    12131183
    1214                         /* 出力をポストする。*/
     1184                        /* 出力をポストする。*/
    12151185                        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    12161186                        sig_sem(SEM_TCP_POST_OUTPUT);
     
    12361206
    12371207/*
    1238  *  tcp_get_buf -- 送信用バッファの獲得【標準機能】
     1208 *  tcp_get_buf -- 送信用バッファの獲得【標準機能】
    12391209 */
    12401210
     
    12471217#ifdef TCP_CFG_NON_BLOCKING
    12481218
    1249         /* p_buf が NULL ならエラー */
     1219        /* p_buf が NULL ならエラー */
    12501220        if (p_buf == NULL)
    12511221                return E_PAR;
     
    12531223#else   /* of #ifdef TCP_CFG_NON_BLOCKING */
    12541224
    1255         /* p_buf が NULL か、tmout が TMO_NBLK ならエラー */
     1225        /* p_buf が NULL か、tmout が TMO_NBLK ならエラー */
    12561226        if (p_buf == NULL || tmout == TMO_NBLK)
    12571227                return E_PAR;
     
    12601230
    12611231        /*
    1262          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    1263          *  すでに記録されていれば、ペンディング中なのでエラー
     1232         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     1233         *  すでに記録されていれば、ペンディング中なのでエラー
    12641234         */
    12651235        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_GET_BUF)) != E_OK)
    12661236                return error;
    12671237
    1268         /* 送信できるか、通信端点の状æ
    1269 ‹ã‚’見る。*/
     1238        /* 送信できるか、通信端点の状態を見る。*/
    12701239        if ((error = tcp_can_send_more(cep, TFN_TCP_GET_BUF, tmout)) != E_OK)
    12711240                goto err_ret;
     
    12731242#ifdef TCP_CFG_NON_BLOCKING
    12741243
    1275         /* タイムアウトをチェックする。*/
    1276         if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
     1244        /* タイムアウトをチェックする。*/
     1245        if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
    12771246
    12781247                if (!TCP_IS_SWBUF_FULL(cep)) {
    12791248
    1280                         /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
     1249                        /* 送信ウィンドバッファに空きがあればコールバック関数を呼び出す。*/
    12811250                        error = TCP_GET_SWBUF_ADDR(cep, p_buf);
    12821251
    12831252#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    12841253
    1285                         /* コールバック関数を呼び出す。*/
     1254                        /* コールバック関数を呼び出す。*/
    12861255                        (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_GET_BUF, (void*)error);
    12871256
    12881257#else   /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
    12891258
    1290                         /* コールバック関数を呼び出す。*/
     1259                        /* コールバック関数を呼び出す。*/
    12911260                        (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_GET_BUF, (void*)&error);
    12921261
     
    13041273                }
    13051274
    1306         else {          /* 非ノンブロッキングコール */
    1307 
    1308 #endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    1309 
    1310                 /* 送信ウィンドバッファが空くのをå¾
    1311 ã¤ã€‚*/
     1275        else {          /* 非ノンブロッキングコール */
     1276
     1277#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
     1278
     1279                /* 送信ウィンドバッファが空くのを待つ。*/
    13121280                if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
    13131281                        goto err_ret;
    13141282
    1315                 /* 送信ウィンドバッファの空アドレスを獲得する。*/
     1283                /* 送信ウィンドバッファの空アドレスを獲得する。*/
    13161284                error = TCP_GET_SWBUF_ADDR(cep, p_buf);
    13171285
     
    13331301
    13341302/*
    1335  *  tcp_snd_buf -- バッファå†
    1336 ã®ãƒ‡ãƒ¼ã‚¿ã®é€ä¿¡ã€æ¨™æº–機能】
     1303 *  tcp_snd_buf -- バッファ内のデータの送信【標準機能】
    13371304 */
    13381305
     
    13431310        ER              error;
    13441311
    1345         /* 送信する長さ len をチェックする。*/
     1312        /* 送信する長さ len をチェックする。*/
    13461313        if (len < 0)
    13471314                return E_PAR;
    13481315
    1349         /* 送信する長さlen が 0 であれば、何もしないで戻る。*/
     1316        /* 送信する長さlen が 0 であれば、何もしないで戻る。*/
    13501317        if (len == 0)
    13511318                return E_OK;
    13521319
    13531320        /*
    1354          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    1355          *  すでに記録されていれば、ペンディング中なのでエラー
     1321         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     1322         *  すでに記録されていれば、ペンディング中なのでエラー
    13561323         */
    13571324        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_BUF)) != E_OK)
    13581325                return error;
    13591326
    1360         /* 送信する長さ len をチェックする。*/
     1327        /* 送信する長さ len をチェックする。*/
    13611328        if (len > cep->get_buf_len) {
    13621329                error = E_OBJ;
     
    13641331                }
    13651332
    1366         /* 送信できるか、CEP の FSM 状æ
    1367 ‹ã‚’見る。*/
     1333        /* 送信できるか、CEP の FSM 状態を見る。*/
    13681334        if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) {
    13691335                if ((error = cep->error) == E_OK)
     
    13721338                }
    13731339
    1374         /* 送信ウィンドバッファのデータを送信可能にする。*/
     1340        /* 送信ウィンドバッファのデータを送信可能にする。*/
    13751341        TCP_SEND_SWBUF(cep, (uint_t)len);
    13761342
    1377         /* 出力をポストする。*/
     1343        /* 出力をポストする。*/
    13781344        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    13791345        sig_sem(SEM_TCP_POST_OUTPUT);
     
    13901356
    13911357/*
    1392  *  tcp_rcv_dat -- パケットの受信【標準機能】
     1358 *  tcp_rcv_dat -- パケットの受信【標準機能】
    13931359 */
    13941360
     
    14011367#ifdef TCP_CFG_NON_BLOCKING
    14021368
    1403         /* data が NULL か、len < 0 ならエラー */
     1369        /* data が NULL か、len < 0 ならエラー */
    14041370        if (data == NULL || len < 0)
    14051371                return E_PAR;
     
    14071373#else   /* of #ifdef TCP_CFG_NON_BLOCKING */
    14081374
    1409         /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
     1375        /* data が NULL、len < 0 か、tmout が TMO_NBLK ならエラー */
    14101376        if (data == NULL || len < 0 || tmout == TMO_NBLK)
    14111377                return E_PAR;
     
    14141380
    14151381        /*
    1416          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    1417          *  すでに記録されていれば、ペンディング中なのでエラー
     1382         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     1383         *  すでに記録されていれば、ペンディング中なのでエラー
    14181384         */
    14191385        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_RCV_DAT)) != E_OK)
    14201386                return error;
    14211387
    1422         /* 受信できるか、通信端点の状æ
    1423 ‹ã‚’見る。*/
     1388        /* 受信できるか、通信端点の状態を見る。*/
    14241389        if (tcp_can_recv_more(&error, cep, TFN_TCP_RCV_DAT, tmout) != E_OK)
    14251390                goto err_ret;
     
    14271392#ifdef TCP_CFG_NON_BLOCKING
    14281393
    1429         /* タイムアウトをチェックする。*/
    1430         if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
    1431 
    1432                 /* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/
     1394        /* タイムアウトをチェックする。*/
     1395        if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
     1396
     1397                /* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/
    14331398                if (cep->rwbuf_count > 0) {
    14341399
    1435                         /* 受信ウィンドバッファからデータを取り出す。*/
     1400                        /* 受信ウィンドバッファからデータを取り出す。*/
    14361401                        len = TCP_READ_RWBUF(cep, data, (uint_t)len);
    14371402
     
    14561421                        }
    14571422                }
    1458         else {          /* 非ノンブロッキングコール */
    1459 
    1460 #endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    1461 
    1462                 /* 受信ウィンドバッファにデータがなければ、å
    1463 ¥åŠ›ãŒã‚るまでå¾
    1464 ã¤ã€‚*/
     1423        else {          /* 非ノンブロッキングコール */
     1424
     1425#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
     1426
     1427                /* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/
    14651428                if ((error = tcp_wait_rwbuf(cep, tmout)) != E_OK)
    14661429                        goto err_ret;
    14671430
    1468                 /* 受信ウィンドバッファからデータを取り出す。*/
     1431                /* 受信ウィンドバッファからデータを取り出す。*/
    14691432                error = TCP_READ_RWBUF(cep, data, (uint_t)len);
    14701433
    1471                 /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
     1434                /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
    14721435                cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    14731436                sig_sem(SEM_TCP_POST_OUTPUT);
     
    14921455
    14931456/*
    1494  *  tcp_rcv_oob -- 緊急データの受信【拡張機能】
     1457 *  tcp_rcv_oob -- 緊急データの受信【拡張機能】
    14951458 *
    1496  *    注意: 送信側が複数オクテットのデータを送信しても、
    1497  *          緊急ポインタが指す 1 オクテットのデータのみ受信する。
     1459 *    注意: 送信側が複数オクテットのデータを送信しても、
     1460 *          緊急ポインタが指す 1 オクテットのデータのみ受信する。
    14981461 */
    14991462
     
    15041467        uint8_t         *urg;
    15051468
    1506         /* TCP 通信端点 ID をチェックする。*/
     1469        /* TCP 通信端点 ID をチェックする。*/
    15071470        if (!VAID_TCP_CEPID(cepid))
    15081471                return E_ID;
    15091472
    1510         /* data が NULL か、len < 0 ならエラー */
     1473        /* data が NULL か、len < 0 ならエラー */
    15111474        if (data == NULL || len < 0)
    15121475                return E_PAR;
    15131476
    1514         /* TCP 通信端点を得る。*/
     1477        /* TCP 通信端点を得る。*/
    15151478        cep = GET_TCP_CEP(cepid);
    15161479
    1517         /* 受信できるか、通信端点の状æ
    1518 ‹ã‚’見る。*/
    1519         /* 受信できるか、fsm_state を見る。*/
     1480        /* 受信できるか、通信端点の状態を見る。*/
     1481        /* 受信できるか、fsm_state を見る。*/
    15201482        if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state))
    15211483                return E_OBJ;
    15221484
    15231485        /*
    1524          *  緊急データå
    1525 ¥ã‚Šã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã® TCP ヘッダが
    1526          *  設定されていなければ、緊急データを受信していない。
     1486         *  緊急データ入りのセグメントの TCP ヘッダが
     1487         *  設定されていなければ、緊急データを受信していない。
    15271488         */
    15281489        if (cep->urg_tcph == NULL)
    15291490                return E_OBJ;
    15301491
    1531         /* len == 0 ならバッファオーバーフロー */
     1492        /* len == 0 ならバッファオーバーフロー */
    15321493        if (len == 0)
    15331494                return E_BOVR;
    15341495
    1535         /* 緊急ポインタが指す 1 オクテットのデータを読み取る。*/
     1496        /* 緊急ポインタが指す 1 オクテットのデータを読み取る。*/
    15361497        urg = (uint8_t*)cep->urg_tcph + TCP_DATA_OFF(cep->urg_tcph->doff) + cep->urg_tcph->urp + TCP_CFG_URG_OFFSET;
    15371498        *(uint8_t*)data = *urg;
    15381499
    1539         /* 読み取ったデータから後ろの SDU を前に詰める。*/
     1500        /* 読み取ったデータから後ろの SDU を前に詰める。*/
    15401501        memcpy(urg, urg + 1, cep->urg_tcph->sum - (cep->urg_tcph->urp + TCP_CFG_URG_OFFSET) - 1);
    15411502
    1542         /* tcp_rcv_oob() が呼出されたこと知らせるために、NULL を設定する。*/
     1503        /* tcp_rcv_oob() が呼出されたこと知らせるために、NULL を設定する。*/
    15431504        cep->urg_tcph = NULL;
    15441505
     
    15531514
    15541515/*
    1555  *  tcp_rcv_buf -- 受信したデータのå
    1556 ¥ã£ãŸãƒãƒƒãƒ•ã‚¡ã®ç²å¾—【標準機能】
     1516 *  tcp_rcv_buf -- 受信したデータの入ったバッファの獲得【標準機能】
    15571517 */
    15581518
     
    15651525#ifdef TCP_CFG_NON_BLOCKING
    15661526
    1567         /* p_buf が NULL ならエラー */
     1527        /* p_buf が NULL ならエラー */
    15681528        if (p_buf == NULL)
    15691529                return E_PAR;
     
    15711531#else   /* of #ifdef TCP_CFG_NON_BLOCKING */
    15721532
    1573         /* p_buf が NULL か、tmout が TMO_NBLK ならエラー */
     1533        /* p_buf が NULL か、tmout が TMO_NBLK ならエラー */
    15741534        if (p_buf == NULL || tmout == TMO_NBLK)
    15751535                return E_PAR;
     
    15781538
    15791539        /*
    1580          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    1581          *  すでに記録されていれば、ペンディング中なのでエラー
     1540         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     1541         *  すでに記録されていれば、ペンディング中なのでエラー
    15821542         */
    15831543        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_RCV_BUF)) != E_OK)
    15841544                return error;
    15851545
    1586         /* 受信できるか、通信端点の状æ
    1587 ‹ã‚’見る。*/
     1546        /* 受信できるか、通信端点の状態を見る。*/
    15881547        if (tcp_can_recv_more(&error, cep, TFN_TCP_RCV_DAT, tmout) != E_OK)
    15891548                goto err_ret;
     
    15911550#ifdef TCP_CFG_NON_BLOCKING
    15921551
    1593         /* タイムアウトをチェックする。*/
    1594         if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
    1595 
    1596                 /* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/
     1552        /* タイムアウトをチェックする。*/
     1553        if (tmout == TMO_NBLK) {                /* ノンブロッキングコール */
     1554
     1555                /* 受信ウィンドバッファにデータがあればコールバック関数を呼び出す。*/
    15971556                if (cep->rwbuf_count > 0) {
    15981557
    1599                         /* 受信ウィンドバッファの空アドレスを獲得する。*/
     1558                        /* 受信ウィンドバッファの空アドレスを獲得する。*/
    16001559                        error = TCP_GET_RWBUF_ADDR(cep, p_buf);
    16011560
    16021561#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
    16031562
    1604                         /* コールバック関数を呼び出す。*/
     1563                        /* コールバック関数を呼び出す。*/
    16051564                        (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_BUF, (void*)error);
    16061565
    16071566#else   /* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
    16081567
    1609                         /* コールバック関数を呼び出す。*/
     1568                        /* コールバック関数を呼び出す。*/
    16101569                        (*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_BUF, (void*)&error);
    16111570
     
    16211580                        }
    16221581                }
    1623         else {          /* 非ノンブロッキングコール */
    1624 
    1625 #endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    1626 
    1627                 /* 受信ウィンドバッファにデータがなければ、å
    1628 ¥åŠ›ãŒã‚るまでå¾
    1629 ã¤ã€‚*/
     1582        else {          /* 非ノンブロッキングコール */
     1583
     1584#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
     1585
     1586                /* 受信ウィンドバッファにデータがなければ、入力があるまで待つ。*/
    16301587                if ((error = tcp_wait_rwbuf(cep, tmout)) != E_OK) {
    16311588                        cep->rwbuf_count = 0;
     
    16331590                        }
    16341591
    1635                 /* 受信ウィンドバッファのアドレスを獲得する。*/
     1592                /* 受信ウィンドバッファのアドレスを獲得する。*/
    16361593                error = TCP_GET_RWBUF_ADDR(cep, p_buf);
    16371594
     
    16531610
    16541611/*
    1655  *  tcp_rel_buf -- 受信用バッファの解放【標準機能】
     1612 *  tcp_rel_buf -- 受信用バッファの解放【標準機能】
    16561613 */
    16571614
     
    16621619        ER              error;
    16631620
    1664         /* 解放する長さ len をチェックする。*/
     1621        /* 解放する長さ len をチェックする。*/
    16651622        if (len < 0)
    16661623                return E_PAR;
    16671624
    16681625        /*
    1669          *  CEP をロックし、API 機能コードとタスク識別子を記録する。
    1670          *  すでに記録されていれば、ペンディング中なのでエラー
     1626         *  CEP をロックし、API 機能コードとタスク識別子を記録する。
     1627         *  すでに記録されていれば、ペンディング中なのでエラー
    16711628         */
    16721629        if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_REL_BUF)) != E_OK)
    16731630                return error;
    16741631
    1675         /* 解放する長さ len をチェックする。*/
     1632        /* 解放する長さ len をチェックする。*/
    16761633        if (len > cep->rcv_buf_len) {
    16771634                error = E_OBJ;
     
    16791636                }
    16801637
    1681         /* 通信端点をロックする。*/
     1638        /* 通信端点をロックする。*/
    16821639        syscall(wai_sem(cep->semid_lock));
    16831640
    1684         /* 受信ウィンドバッファから受信したオクテットを削除する。*/
     1641        /* 受信ウィンドバッファから受信したオクテットを削除する。*/
    16851642        TCP_DROP_RWBUF(cep, (uint_t)len);
    16861643
    1687         /* tcp_rcv_buf の割当て長をリセットする。*/
     1644        /* tcp_rcv_buf の割当て長をリセットする。*/
    16881645        cep->rcv_buf_len = 0;
    16891646
    1690         /* 通信端点のロックを解除する。*/
     1647        /* 通信端点のロックを解除する。*/
    16911648        syscall(sig_sem(cep->semid_lock));
    16921649
    1693         /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
     1650        /* 相手にウィンドウサイズが変わったことを知らせるため出力をポストする。*/
    16941651        cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
    16951652        sig_sem(SEM_TCP_POST_OUTPUT);
     
    17061663
    17071664/*
    1708  *  tcp_can_snd -- ペンディングしている送信のキャンセル
     1665 *  tcp_can_snd -- ペンディングしている送信のキャンセル
    17091666 */
    17101667
     
    17141671        ER      error = E_OK;
    17151672
    1716         /* 通信端点をロックする。*/
     1673        /* 通信端点をロックする。*/
    17171674        syscall(wai_sem(cep->semid_lock));
    17181675
    17191676        /*
    1720          *  snd_tskid が TA_NULL なら、
    1721          *  ペンディングしていないのでエラー
     1677         *  snd_tskid が TA_NULL なら、
     1678         *  ペンディングしていないのでエラー
    17221679         */
    17231680        if (cep->snd_tskid == TA_NULL)
    17241681                error = EV_NOPND;
    17251682
    1726         /* ペンディング中の API 機能コードと一致しなければエラー */
     1683        /* ペンディング中の API 機能コードと一致しなければエラー */
    17271684        else if (fncd != TFN_TCP_ALL && fncd != cep->snd_tfn)
    17281685                error = E_OBJ;
    17291686
    1730         /* 処理をキャンセルする。*/
     1687        /* 処理をキャンセルする。*/
    17311688        else {
    17321689
    1733                 /* 受信再構成キューのネットワークバッファを解放する。*/
     1690                /* 受信再構成キューのネットワークバッファを解放する。*/
    17341691                tcp_free_reassq(cep);
    17351692
    1736                 /* 受信ウィンドバッファキューのネットワークバッファを解放する。*/
     1693                /* 受信ウィンドバッファキューのネットワークバッファを解放する。*/
    17371694                cep->rwbuf_count = 0;
    17381695                TCP_FREE_RWBUFQ(cep);
    17391696
    1740                 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
     1697                /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
    17411698                TCP_FREE_SWBUFQ(cep);
    17421699
    17431700#ifdef TCP_CFG_NON_BLOCKING
    17441701
    1745                 if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) {       /* ノンブロッキングコール */
     1702                if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) {       /* ノンブロッキングコール */
    17461703
    17471704                        switch (cep->snd_nblk_tfn) {
    17481705
    17491706                        case TFN_TCP_CON_CEP:
    1750                                 /*  通信端点から受付口を解放する。*/
     1707                                /*  通信端点から受付口を解放する。*/
    17511708                                cep->rep = NULL;
    17521709                                cep->fsm_state = TCP_FSM_CLOSED;
     
    17891746                }
    17901747
    1791         /* 通信端点のロックを解除する。*/
     1748        /* 通信端点のロックを解除する。*/
    17921749        syscall(sig_sem(cep->semid_lock));
    17931750
     
    17961753
    17971754/*
    1798  *  tcp_can_rcv -- ペンディングしている受信のキャンセル
     1755 *  tcp_can_rcv -- ペンディングしている受信のキャンセル
    17991756 */
    18001757
     
    18041761        ER      error = E_OK;
    18051762
    1806         /* 通信端点をロックする。*/
     1763        /* 通信端点をロックする。*/
    18071764        syscall(wai_sem(cep->semid_lock));
    18081765
    18091766        /*
    1810          *  rcv_tskid が TA_NULL なら、
    1811          *  ペンディングしていないのでエラー
     1767         *  rcv_tskid が TA_NULL なら、
     1768         *  ペンディングしていないのでエラー
    18121769         */
    18131770        if (cep->rcv_tskid == TA_NULL)
    18141771                error = EV_NOPND;
    18151772
    1816         /* ペンディング中の API 機能コードと一致しなければエラー */
     1773        /* ペンディング中の API 機能コードと一致しなければエラー */
    18171774        else if (fncd != TFN_TCP_ALL && fncd != cep->rcv_tfn)
    18181775                error = E_OBJ;
    18191776
    1820         /* 処理をキャンセルする。*/
     1777        /* 処理をキャンセルする。*/
    18211778        else {
    18221779
    1823                 /* 受信再構成キューのネットワークバッファを解放する。*/
     1780                /* 受信再構成キューのネットワークバッファを解放する。*/
    18241781                tcp_free_reassq(cep);
    18251782
    1826                 /* 受信ウィンドバッファキューのネットワークバッファを解放する。*/
     1783                /* 受信ウィンドバッファキューのネットワークバッファを解放する。*/
    18271784                cep->rwbuf_count = 0;
    18281785                TCP_FREE_RWBUFQ(cep);
    18291786
    1830                 /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
     1787                /* 送信ウィンドバッファキューのネットワークバッファを解放する。*/
    18311788                TCP_FREE_SWBUFQ(cep);
    18321789
    18331790#ifdef TCP_CFG_NON_BLOCKING
    18341791
    1835                 if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {       /* ノンブロッキングコール */
     1792                if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {       /* ノンブロッキングコール */
    18361793
    18371794                        switch (cep->rcv_nblk_tfn) {
     
    18391796                        case TFN_TCP_ACP_CEP:
    18401797                                /*
    1841                                  *  通信端点から受付口を解放し、
    1842                                  *  イベントフラグをクローズに設定する。
     1798                                 *  通信端点から受付口を解放し、
     1799                                 *  イベントフラグをクローズに設定する。
    18431800                                 */
    18441801                                cep->rep = NULL;
     
    18881845                }
    18891846
    1890         /* 通信端点のロックを解除する。*/
     1847        /* 通信端点のロックを解除する。*/
    18911848        syscall(sig_sem(cep->semid_lock));
    18921849
     
    18951852
    18961853/*
    1897  *  tcp_can_cep -- ペンディングしている処理のキャンセル【標準機能】
     1854 *  tcp_can_cep -- ペンディングしている処理のキャンセル【標準機能】
    18981855 */
    18991856
     
    19041861        ER              error = E_OK, snd_err, rcv_err;
    19051862
    1906         /* API 機能コードをチェックする。*/
     1863        /* API 機能コードをチェックする。*/
    19071864        if (!VALID_TFN_TCP_CAN(fncd))
    19081865                return E_PAR;
    19091866
    1910         /* TCP 通信端点 ID をチェックする。*/
     1867        /* TCP 通信端点 ID をチェックする。*/
    19111868        if (!VAID_TCP_CEPID(cepid))
    19121869                return E_ID;
    19131870
    1914         /* TCP 通信端点を得る。*/
     1871        /* TCP 通信端点を得る。*/
    19151872        cep = GET_TCP_CEP(cepid);
    19161873
    1917         /* TCP 通信端点をチェックする。*/
     1874        /* TCP 通信端点をチェックする。*/
    19181875        if (!VALID_TCP_CEP(cep))
    19191876                return E_NOEXS;
    19201877
    1921         if (fncd == TFN_TCP_ALL) {              /* TFN_TCP_ALL の処理 */
     1878        if (fncd == TFN_TCP_ALL) {              /* TFN_TCP_ALL の処理 */
    19221879                snd_err = tcp_can_snd(cep, fncd);
    19231880                rcv_err = tcp_can_rcv(cep, fncd);
    19241881
    19251882                /*
    1926                  *  snd_err と rcv_err のどちらも EV_NOPND
    1927                  *  なら、ペンディングしていないのでエラー
     1883                 *  snd_err と rcv_err のどちらも EV_NOPND
     1884                 *  なら、ペンディングしていないのでエラー
    19281885                 */
    19291886                if (snd_err == EV_NOPND && rcv_err == EV_NOPND)
     
    19421899                }
    19431900
    1944         else if (IS_TFN_TCP_RCV(fncd)) {        /* 受信処理のキャンセル */
     1901        else if (IS_TFN_TCP_RCV(fncd)) {        /* 受信処理のキャンセル */
    19451902                if ((error = tcp_can_rcv(cep, fncd)) == EV_NOPND)
    19461903                        error = E_OBJ;
    19471904                }
    19481905
    1949         else {                                  /* 送信処理のキャンセル */
     1906        else {                                  /* 送信処理のキャンセル */
    19501907                if ((error = tcp_can_snd(cep, fncd)) == EV_NOPND)
    19511908                        error = E_OBJ;
     
    19581915
    19591916/*
    1960  *  tcp_set_opt -- TCP 通信端点オプションの設定【拡張機能】
     1917 *  tcp_set_opt -- TCP 通信端点オプションの設定【拡張機能】
    19611918 *
    1962  *  注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。
     1919 *  注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。
    19631920 */
    19641921
     
    19721929        T_TCP_CEP       *cep;
    19731930
    1974         /* TCP 通信端点 ID をチェックする。*/
     1931        /* TCP 通信端点 ID をチェックする。*/
    19751932        if (!VAID_TCP_CEPID(cepid))
    19761933                return E_ID;
    19771934
    1978         /* TCP 通信端点を得る。*/
     1935        /* TCP 通信端点を得る。*/
    19791936        cep = GET_TCP_CEP(cepid);
    19801937
    1981         /* TCP 通信端点をチェックする。*/
     1938        /* TCP 通信端点をチェックする。*/
    19821939        if (!VALID_TCP_CEP(cep))
    19831940                return E_NOEXS;
     
    19911948
    19921949/*
    1993  *  tcp_get_opt -- TCP 通信端点オプションの設定【拡張機能】
     1950 *  tcp_get_opt -- TCP 通信端点オプションの設定【拡張機能】
    19941951 *
    1995  *  注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。
     1952 *  注意: 設定可能な TCP 通信端点オプションは無いため、E_PAR が返される。
    19961953 */
    19971954
     
    20051962        T_TCP_CEP       *cep;
    20061963
    2007         /* TCP 通信端点 ID をチェックする。*/
     1964        /* TCP 通信端点 ID をチェックする。*/
    20081965        if (!VAID_TCP_CEPID(cepid))
    20091966                return E_ID;
    20101967
    2011         /* TCP 通信端点を得る。*/
     1968        /* TCP 通信端点を得る。*/
    20121969        cep = GET_TCP_CEP(cepid);
    20131970
    2014         /* TCP 通信端点をチェックする。*/
     1971        /* TCP 通信端点をチェックする。*/
    20151972        if (!VALID_TCP_CEP(cep))
    20161973                return E_NOEXS;
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/tcp_var.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8472
    8573/*
    86  *  TCP ヘッダ・ペイロードアクセスマクロ
     74 *  TCP ヘッダ・ペイロードアクセスマクロ
    8775 */
    8876
     
    10593
    10694/*
    107  *  TINET 1.1 との互換性のための定義
     95 *  TINET 1.1 との互換性のための定義
    10896 */
    10997
     
    118106
    119107/*
    120  *  TINET 1.3 との互換性のための定義
     108 *  TINET 1.3 との互換性のための定義
    121109 */
    122110
     
    127115
    128116/*
    129  *  コールバック関数の定義
     117 *  コールバック関数の定義
    130118 */
    131119
     
    133121
    134122/*
    135  *  TCP 受付口
    136  */
    137 
    138 /* IPv4 用 TCP 受付口 */
     123 *  TCP 受付口
     124 */
     125
     126/* IPv4 用 TCP 受付口 */
    139127typedef struct t_tcp4_rep {
    140128
    141129        /*
    142          * ITRON TCP/IP API、TCP 受付口と同じメンバ
     130         * ITRON TCP/IP API、TCP 受付口と同じメンバ
    143131         */
    144         ATR             repatr;         /* 受付口属性              */
    145         T_IPV4EP        myaddr;         /* 自分のアドレス        */
     132        ATR             repatr;         /* 受付口属性                */
     133        T_IPV4EP        myaddr;         /* 自分のアドレス      */
    146134
    147135#ifdef TCP_CFG_EXTENTIONS
    148         uint16_t        flags;          /* 受付口フラグ           */
    149         ID              semid_lock;     /* 受付口ロック           */
     136        uint16_t        flags;          /* 受付口フラグ               */
     137        ID              semid_lock;     /* 受付口ロック               */
    150138#endif  /* of #ifdef TCP_CFG_EXTENTIONS */
    151139
    152140        } T_TCP4_REP;
    153141
    154 /* IPv6 用 TCP 受付口 */
     142/* IPv6 用 TCP 受付口 */
    155143typedef struct t_tcp6_rep {
    156144
    157145        /*
    158          * ITRON TCP/IP API、TCP 受付口と同じメンバ
     146         * ITRON TCP/IP API、TCP 受付口と同じメンバ
    159147         */
    160         ATR             repatr;         /* 受付口属性              */
    161         T_IPV6EP        myaddr;         /* 自分のアドレス        */
     148        ATR             repatr;         /* 受付口属性                */
     149        T_IPV6EP        myaddr;         /* 自分のアドレス      */
    162150
    163151#ifdef TCP_CFG_EXTENTIONS
    164         uint16_t        flags;          /* 受付口フラグ           */
    165         ID              semid_lock;     /* 受付口ロック           */
     152        uint16_t        flags;          /* 受付口フラグ               */
     153        ID              semid_lock;     /* 受付口ロック               */
    166154#endif  /* of #ifdef TCP_CFG_EXTENTIONS */
    167155
     
    177165
    178166/*
    179  *  受付口フラグ
    180  */
    181 
    182 #define TCP_REP_FLG_DYNAMIC     UINT_C(0x0400)  /* 動的生成・削除可能受付口。      */
    183 #define TCP_REP_FLG_VALID       UINT_C(0x0800)  /* 生成済みで有効な受付口。 */
    184 
    185 /*
    186  *  TCP 通信端点
     167 *  受付口フラグ
     168 */
     169
     170#define TCP_REP_FLG_DYNAMIC     UINT_C(0x0400)  /* 動的生成・削除可能受付口。        */
     171#define TCP_REP_FLG_VALID       UINT_C(0x0800)  /* 生成済みで有効な受付口。 */
     172
     173/*
     174 *  TCP 通信端点
    187175 */
    188176
     
    192180
    193181/*
    194  * 通常の IPv4 TCP 通信端点
     182 * 通常の IPv4 TCP 通信端点
    195183 */
    196184typedef struct t_tcp4_cep {
    197185
    198186        /*
    199          * ITRON TCP/IP API、TCP 通信端点と同じメンバ
     187         * ITRON TCP/IP API、TCP 通信端点と同じメンバ
    200188         */
    201         ATR             cepatr;         /* 通信端点属性                   */
    202         void            *sbuf;          /* 送信用ウィンドバッファ    */
    203         int_t           sbufsz;         /* 送信用ウィンドバッファサイズ   */
    204         void            *rbuf;          /* 受信用ウィンドバッファ    */
    205         int_t           rbufsz;         /* 受信用ウィンドバッファサイズ   */
    206         t_tcp_callback  callback;       /* コールバック関数             */
     189        ATR             cepatr;         /* 通信端点属性                       */
     190        void            *sbuf;          /* 送信用ウィンドバッファ  */
     191        int_t           sbufsz;         /* 送信用ウィンドバッファサイズ       */
     192        void            *rbuf;          /* 受信用ウィンドバッファ  */
     193        int_t           rbufsz;         /* 受信用ウィンドバッファサイズ       */
     194        t_tcp_callback  callback;       /* コールバック関数             */
    207195
    208196        /*
    209          * TINET 独自のメンバ
     197         * TINET 独自のメンバ
    210198         */
    211         uint32_t        flags;          /* 通信端点フラグ                */
    212         ID              semid_lock;     /* 通信端点ロック                */
    213         ID              est_flgid;      /* コネクション状æ
    214 ‹ã‚¤ãƒ™ãƒ³ãƒˆãƒ•ãƒ©ã‚°  */
    215         ID              snd_flgid;      /* 送信イベントフラグ          */
    216         ID              rcv_flgid;      /* 受信イベントフラグ          */
    217         ID              snd_tskid;      /* 送信タスク識別子             */
    218         ID              rcv_tskid;      /* 受信タスク識別子             */
    219         uint8_t         *sbuf_rptr;     /* 送信用読み出しポインタ    */
    220         uint8_t         *sbuf_wptr;     /* 送信用書き込みポインタ    */
    221         uint8_t         *rbuf_rptr;     /* 受信用読み出しポインタ    */
    222         uint8_t         *rbuf_wptr;     /* 受信用書き込みポインタ    */
    223         T_TCP_SEQ       snd_ssthresh;   /* 輻輳ウィンドサイズ(snd_cwnd)        */
    224                                         /* のしきい値                      */
    225         T_TCP_TIME      rxtcur;         /* 現在の再送タイムアウト    */
    226         T_TCP_TIME      srtt;           /* 平滑化された RTT               */
    227         T_TCP_TIME      rttvar;         /* 平滑化された分散             */
    228         T_TCP_WND       snd_cwnd;       /* 輻輳ウィンドサイズ          */
     199        uint32_t        flags;          /* 通信端点フラグ              */
     200        ID              semid_lock;     /* 通信端点ロック              */
     201        ID              est_flgid;      /* コネクション状態イベントフラグ      */
     202        ID              snd_flgid;      /* 送信イベントフラグ            */
     203        ID              rcv_flgid;      /* 受信イベントフラグ            */
     204        ID              snd_tskid;      /* 送信タスク識別子             */
     205        ID              rcv_tskid;      /* 受信タスク識別子             */
     206        uint8_t         *sbuf_rptr;     /* 送信用読み出しポインタ  */
     207        uint8_t         *sbuf_wptr;     /* 送信用書き込みポインタ  */
     208        uint8_t         *rbuf_rptr;     /* 受信用読み出しポインタ  */
     209        uint8_t         *rbuf_wptr;     /* 受信用書き込みポインタ  */
     210        T_TCP_SEQ       snd_ssthresh;   /* 輻輳ウィンドサイズ(snd_cwnd)  */
     211                                        /* のしきい値                        */
     212        T_TCP_TIME      rxtcur;         /* 現在の再送タイムアウト  */
     213        T_TCP_TIME      srtt;           /* 平滑化された RTT           */
     214        T_TCP_TIME      rttvar;         /* 平滑化された分散             */
     215        T_TCP_WND       snd_cwnd;       /* 輻輳ウィンドサイズ            */
    229216
    230217        /*
    231          *  相手の最大受信セグメントサイズ       
     218         *  相手の最大受信セグメントサイズ     
    232219         *
    233          *    オリジナルでは、一般のセグメントの最大サイズ (t_maxseg) と、
    234          *    オプション付きのセグメントの最大サイズ (t_maxopd) が別に
    235          *    なっている。これは、現在のインターネットでは、オプション付きの
    236          *    セグメントのほうが多いからと説明されているためである。
    237          *    本実è£
    238 ã§ã¯ã€æœ€å¤§ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚µã‚¤ã‚ºã‚ªãƒ—ション以外のオプションは
    239          *    実è£
    240 ã—ないので、t_maxseg の使用する。
     220         *    オリジナルでは、一般のセグメントの最大サイズ (t_maxseg) と、
     221         *    オプション付きのセグメントの最大サイズ (t_maxopd) が別に
     222         *    なっている。これは、現在のインターネットでは、オプション付きの
     223         *    セグメントのほうが多いからと説明されているためである。
     224         *    本実装では、最大セグメントサイズオプション以外のオプションは
     225         *    実装しないので、t_maxseg の使用する。
    241226         */
    242227        T_TCP_SEG       maxseg;
    243228
    244         int16_t         snd_tfn;        /* 送信動作中の API 機能コード       */
    245         int16_t         rcv_tfn;        /* 受信動作中の API 機能コード       */
     229        int16_t         snd_tfn;        /* 送信動作中の API 機能コード     */
     230        int16_t         rcv_tfn;        /* 受信動作中の API 機能コード     */
    246231
    247232#ifdef TCP_CFG_NON_BLOCKING
    248233
    249         T_IPV4EP        *p_dstaddr;     /* 相手のアドレスへのポインタ      */
    250         T_IPV4EP        *p_myaddr;      /* 自分のアドレスへのポインタ      */
    251         int16_t         snd_nblk_tfn;   /* 送信動作中の API 機能コード       */
    252         int16_t         rcv_nblk_tfn;   /* 受信動作中の API 機能コード       */
    253         void            *snd_data;      /* 送信データ領域のå
    254 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹        */
    255         int_t           snd_len;        /* 送信データ領域の長さ               */
    256         void            *rcv_data;      /* 受信データ領域のå
    257 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹        */
    258         int_t           rcv_len;        /* 受信データ領域の長さ               */
    259         void            **snd_p_buf;    /* 送信バッファへのポインタ */
    260         void            **rcv_p_buf;    /* 受信バッファへのポインタ */
     234        T_IPV4EP        *p_dstaddr;     /* 相手のアドレスへのポインタ        */
     235        T_IPV4EP        *p_myaddr;      /* 自分のアドレスへのポインタ        */
     236        int16_t         snd_nblk_tfn;   /* 送信動作中の API 機能コード     */
     237        int16_t         rcv_nblk_tfn;   /* 受信動作中の API 機能コード     */
     238        void            *snd_data;      /* 送信データ領域の先頭アドレス       */
     239        int_t           snd_len;        /* 送信データ領域の長さ           */
     240        void            *rcv_data;      /* 受信データ領域の先頭アドレス       */
     241        int_t           rcv_len;        /* 受信データ領域の長さ           */
     242        void            **snd_p_buf;    /* 送信バッファへのポインタ */
     243        void            **rcv_p_buf;    /* 受信バッファへのポインタ */
    261244
    262245#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    263246
    264247#ifdef TCP_CFG_SWBUF_CSAVE
    265         T_NET_BUF       *swbufq;        /* 送信ウィンドバッファキュー      */
     248        T_NET_BUF       *swbufq;        /* 送信ウィンドバッファキュー        */
    266249#endif  /* of #ifdef TCP_CFG_SWBUF_CSAVE */
    267250
    268251        /*
    269          *  これ以降のメンバーは tcp_init_cep() 関数でゼロクリアーされる。
     252         *  これ以降のメンバーは tcp_init_cep() 関数でゼロクリアーされる。
    270253         */
    271254
    272         T_TCP_TIME      timer[NUM_TCP_TIMERS];  /* TCP のタイマ             */
    273         T_IPV4EP        dstaddr;        /* 相手のアドレス                */
    274         T_IPV4EP        myaddr;         /* 自分のアドレス                */
    275         T_TCP4_REP      *rep;           /* 受付口                    */
    276         T_NET_BUF       *reassq;        /* 受信再構成キュー             */
     255        T_TCP_TIME      timer[NUM_TCP_TIMERS];  /* TCP のタイマ             */
     256        T_IPV4EP        dstaddr;        /* 相手のアドレス              */
     257        T_IPV4EP        myaddr;         /* 自分のアドレス              */
     258        T_TCP4_REP      *rep;           /* 受付口                  */
     259        T_NET_BUF       *reassq;        /* 受信再構成キュー             */
    277260
    278261#ifdef TCP_CFG_RWBUF_CSAVE
    279         T_NET_BUF       *rwbufq;        /* 受信ウィンドバッファキュー      */
     262        T_NET_BUF       *rwbufq;        /* 受信ウィンドバッファキュー        */
    280263#endif  /* of #ifdef TCP_CFG_RWBUF_CSAVE */
    281264
    282265#ifdef TCP_CFG_EXTENTIONS
    283         T_TCP_HDR       *urg_tcph;      /* 緊急データå
    284 ¥ã‚Šã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã® TCP ヘッダ */
    285         T_TCP_SEQ       snd_up;         /* 送信した緊急ポインタ               */
    286         T_TCP_SEQ       rcv_up;         /* 受信した緊急ポインタ               */
     266        T_TCP_HDR       *urg_tcph;      /* 緊急データ入りのセグメントの TCP ヘッダ       */
     267        T_TCP_SEQ       snd_up;         /* 送信した緊急ポインタ           */
     268        T_TCP_SEQ       rcv_up;         /* 受信した緊急ポインタ           */
    287269#endif  /* of #ifdef TCP_CFG_EXTENTIONS */
    288270
    289         T_TCP_SEQ       snd_una;        /* 未確認の最小送信 SEQ つまり       */
    290                                         /* 確認された最大送信 SEQ      */
    291         T_TCP_SEQ       snd_max;        /* 送信した最大 SEQ               */
    292         T_TCP_SEQ       snd_nxt;        /* 次に送信する SEQ               */
    293         T_TCP_SEQ       snd_old_nxt;    /* å
    294 ƒã® snd_nxt                    */
    295         T_TCP_SEQ       snd_wl1;        /* 前回ウィンドを更新した SEQ        */
    296         T_TCP_SEQ       snd_wl2;        /* 前回ウィンドを更新した ACK        */
    297         T_TCP_SEQ       iss;            /* 自分の SEQ の初期値           */
    298         T_TCP_SEQ       irs;            /* 相手の SEQ の初期値           */
    299         T_TCP_SEQ       rcv_nxt;        /* 受信を期å¾
    300 ã—ている最小の SEQ       */
    301         T_TCP_SEQ       rcv_adv;        /* 受信を期å¾
    302 ã—ている最大の SEQ       */
    303         T_TCP_SEQ       rcv_wnd;        /* 受信可能なウィンドサイズ */
    304         T_TCP_SEQ       rtseq;          /* 時間計測を始めた SEQ         */
    305         T_TCP_SEQ       last_ack_sent;  /* 最後に送信した ACK            */
    306         T_TCP_TIME      idle;           /* アイドル時間                   */
    307         ER              error;          /* 非同期に発生したエラー    */
    308         ER              net_error;      /* ネットワークのエラー状æ
    309 ‹       */
    310         T_TCP_WND       snd_wnd;        /* 相手の受信可能ウィンドサイズ   */
    311         T_TCP_WND       max_sndwnd;     /* 今までの最大送信ウィンドサイズ        */
    312         T_TCP_TIME      rtt;            /* 往復時間                         */
    313         uint16_t        swbuf_count;    /* 送信ウィンドバッファの使用中サイズ  */
    314         uint16_t        rwbuf_count;    /* 受信ウィンドバッファの使用中サイズ  */
    315         uint16_t        rcv_buf_len;    /* tcp_rcv_buf の割当て長  */
    316         uint16_t        get_buf_len;    /* tcp_rcv_buf の割当て長  */
    317         uint8_t         rxtshift;       /* 再送信回数の log(2)            */
    318         uint8_t         fsm_state;      /* FSM 状æ
    319 ‹                       */
    320         uint8_t         dupacks;        /* 再送 ACK 数                       */
     271        T_TCP_SEQ       snd_una;        /* 未確認の最小送信 SEQ つまり     */
     272                                        /* 確認された最大送信 SEQ        */
     273        T_TCP_SEQ       snd_max;        /* 送信した最大 SEQ           */
     274        T_TCP_SEQ       snd_nxt;        /* 次に送信する SEQ           */
     275        T_TCP_SEQ       snd_old_nxt;    /* 元の snd_nxt                   */
     276        T_TCP_SEQ       snd_wl1;        /* 前回ウィンドを更新した SEQ      */
     277        T_TCP_SEQ       snd_wl2;        /* 前回ウィンドを更新した ACK      */
     278        T_TCP_SEQ       iss;            /* 自分の SEQ の初期値         */
     279        T_TCP_SEQ       irs;            /* 相手の SEQ の初期値         */
     280        T_TCP_SEQ       rcv_nxt;        /* 受信を期待している最小の SEQ     */
     281        T_TCP_SEQ       rcv_adv;        /* 受信を期待している最大の SEQ     */
     282        T_TCP_SEQ       rcv_wnd;        /* 受信可能なウィンドサイズ */
     283        T_TCP_SEQ       rtseq;          /* 時間計測を始めた SEQ         */
     284        T_TCP_SEQ       last_ack_sent;  /* 最後に送信した ACK          */
     285        T_TCP_TIME      idle;           /* アイドル時間                       */
     286        ER              error;          /* 非同期に発生したエラー  */
     287        ER              net_error;      /* ネットワークのエラー状態 */
     288        T_TCP_WND       snd_wnd;        /* 相手の受信可能ウィンドサイズ       */
     289        T_TCP_WND       max_sndwnd;     /* 今までの最大送信ウィンドサイズ      */
     290        T_TCP_TIME      rtt;            /* 往復時間                         */
     291        uint16_t        swbuf_count;    /* 送信ウィンドバッファの使用中サイズ    */
     292        uint16_t        rwbuf_count;    /* 受信ウィンドバッファの使用中サイズ    */
     293        uint16_t        rcv_buf_len;    /* tcp_rcv_buf の割当て長    */
     294        uint16_t        get_buf_len;    /* tcp_rcv_buf の割当て長    */
     295        uint8_t         rxtshift;       /* 再送信回数の log(2)                */
     296        uint8_t         fsm_state;      /* FSM 状態                       */
     297        uint8_t         dupacks;        /* 再送 ACK 数                     */
    321298
    322299#if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES)
    323         uint8_t         rwbufq_entries; /* 受信ウィンドバッファキューのエントリ数    */
     300        uint8_t         rwbufq_entries; /* 受信ウィンドバッファキューのエントリ数  */
    324301#endif  /* of #if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES)       */
    325302
     
    327304
    328305/*
    329  * Time Wait 用 IPv4 TCP 通信端点
     306 * Time Wait 用 IPv4 TCP 通信端点
    330307 */
    331308typedef struct t_tcp4_twcep {
    332         int_t           rbufsz;         /* 受信用ウィンドバッファサイズ   */
    333         T_TCP_TIME      timer_2msl;     /* 2MSL タイマ                       */
    334         T_IPV4EP        dstaddr;        /* 相手のアドレス                */
    335         T_IPV4EP        myaddr;         /* 自分のアドレス                */
    336         T_TCP_SEQ       snd_una;        /* 未確認の最小送信 SEQ つまり       */
    337                                         /* 確認された最大送信 SEQ      */
    338         T_TCP_SEQ       rcv_nxt;        /* 受信を期å¾
    339 ã—ている最小の SEQ       */
    340         uint16_t        rwbuf_count;    /* 受信ウィンドバッファの使用中サイズ  */
    341         uint8_t         fsm_state;      /* FSM 状æ
    342 ‹                       */
     309        int_t           rbufsz;         /* 受信用ウィンドバッファサイズ       */
     310        T_TCP_TIME      timer_2msl;     /* 2MSL タイマ                     */
     311        T_IPV4EP        dstaddr;        /* 相手のアドレス              */
     312        T_IPV4EP        myaddr;         /* 自分のアドレス              */
     313        T_TCP_SEQ       snd_una;        /* 未確認の最小送信 SEQ つまり     */
     314                                        /* 確認された最大送信 SEQ        */
     315        T_TCP_SEQ       rcv_nxt;        /* 受信を期待している最小の SEQ     */
     316        uint16_t        rwbuf_count;    /* 受信ウィンドバッファの使用中サイズ    */
     317        uint8_t         fsm_state;      /* FSM 状態                       */
    343318
    344319        } T_TCP4_TWCEP;
    345320
    346321/*
    347  * 通常の IPv6 TCP 通信端点
     322 * 通常の IPv6 TCP 通信端点
    348323 */
    349324typedef struct t_tcp6_cep {
    350325
    351326        /*
    352          * ITRON TCP/IP API、TCP 通信端点と同じメンバ
     327         * ITRON TCP/IP API、TCP 通信端点と同じメンバ
    353328         */
    354         ATR             cepatr;         /* 通信端点属性                   */
    355         void            *sbuf;          /* 送信用ウィンドバッファ    */
    356         int_t           sbufsz;         /* 送信用ウィンドバッファサイズ   */
    357         void            *rbuf;          /* 受信用ウィンドバッファ    */
    358         int_t           rbufsz;         /* 受信用ウィンドバッファサイズ   */
    359         t_tcp_callback  callback;       /* コールバック関数             */
     329        ATR             cepatr;         /* 通信端点属性                       */
     330        void            *sbuf;          /* 送信用ウィンドバッファ  */
     331        int_t           sbufsz;         /* 送信用ウィンドバッファサイズ       */
     332        void            *rbuf;          /* 受信用ウィンドバッファ  */
     333        int_t           rbufsz;         /* 受信用ウィンドバッファサイズ       */
     334        t_tcp_callback  callback;       /* コールバック関数             */
    360335
    361336        /*
    362          * TINET 独自のメンバ
     337         * TINET 独自のメンバ
    363338         */
    364         uint32_t        flags;          /* 通信端点フラグ                */
    365         ID              semid_lock;     /* 通信端点ロック                */
    366         ID              est_flgid;      /* コネクション状æ
    367 ‹ã‚¤ãƒ™ãƒ³ãƒˆãƒ•ãƒ©ã‚°  */
    368         ID              snd_flgid;      /* 送信イベントフラグ          */
    369         ID              rcv_flgid;      /* 受信イベントフラグ          */
    370         ID              snd_tskid;      /* 送信タスク識別子             */
    371         ID              rcv_tskid;      /* 受信タスク識別子             */
    372         uint8_t         *sbuf_rptr;     /* 送信用読み出しポインタ            */
    373         uint8_t         *sbuf_wptr;     /* 送信用書き込みポインタ            */
    374         uint8_t         *rbuf_rptr;     /* 受信用読み出しポインタ            */
    375         uint8_t         *rbuf_wptr;     /* 受信用書き込みポインタ            */
    376         T_TCP_SEQ       snd_ssthresh;   /* 輻輳ウィンドサイズ(snd_cwnd)        */
    377                                         /* のしきい値                      */
    378         T_TCP_TIME      rxtcur;         /* 現在の再送タイムアウト            */
    379         T_TCP_TIME      srtt;           /* 平滑化された RTT               */
    380         T_TCP_TIME      rttvar;         /* 平滑化された分散             */
    381         T_TCP_WND       snd_cwnd;       /* 輻輳ウィンドサイズ          */
     339        uint32_t        flags;          /* 通信端点フラグ              */
     340        ID              semid_lock;     /* 通信端点ロック              */
     341        ID              est_flgid;      /* コネクション状態イベントフラグ      */
     342        ID              snd_flgid;      /* 送信イベントフラグ            */
     343        ID              rcv_flgid;      /* 受信イベントフラグ            */
     344        ID              snd_tskid;      /* 送信タスク識別子             */
     345        ID              rcv_tskid;      /* 受信タスク識別子             */
     346        uint8_t         *sbuf_rptr;     /* 送信用読み出しポインタ          */
     347        uint8_t         *sbuf_wptr;     /* 送信用書き込みポインタ          */
     348        uint8_t         *rbuf_rptr;     /* 受信用読み出しポインタ          */
     349        uint8_t         *rbuf_wptr;     /* 受信用書き込みポインタ          */
     350        T_TCP_SEQ       snd_ssthresh;   /* 輻輳ウィンドサイズ(snd_cwnd)  */
     351                                        /* のしきい値                        */
     352        T_TCP_TIME      rxtcur;         /* 現在の再送タイムアウト          */
     353        T_TCP_TIME      srtt;           /* 平滑化された RTT           */
     354        T_TCP_TIME      rttvar;         /* 平滑化された分散             */
     355        T_TCP_WND       snd_cwnd;       /* 輻輳ウィンドサイズ            */
    382356
    383357        /*
    384          *  相手の最大受信セグメントサイズ       
     358         *  相手の最大受信セグメントサイズ     
    385359         *
    386          *    オリジナルでは、一般のセグメントの最大サイズ (t_maxseg) と、
    387          *    オプション付きのセグメントの最大サイズ (t_maxopd) が別に
    388          *    なっている。これは、現在のインターネットでは、オプション付きの
    389          *    セグメントのほうが多いからと説明されているためである。
    390          *    本実è£
    391 ã§ã¯ã€æœ€å¤§ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã‚µã‚¤ã‚ºã‚ªãƒ—ション以外のオプションは
    392          *    実è£
    393 ã—ないので、t_maxseg の使用する。
     360         *    オリジナルでは、一般のセグメントの最大サイズ (t_maxseg) と、
     361         *    オプション付きのセグメントの最大サイズ (t_maxopd) が別に
     362         *    なっている。これは、現在のインターネットでは、オプション付きの
     363         *    セグメントのほうが多いからと説明されているためである。
     364         *    本実装では、最大セグメントサイズオプション以外のオプションは
     365         *    実装しないので、t_maxseg の使用する。
    394366         */
    395367        T_TCP_SEG       maxseg;
    396368
    397         T_IPV6EP        *p_dstaddr;     /* 相手のアドレスへのポインタ      */
    398         T_IPV6EP        *p_myaddr;      /* 自分のアドレスへのポインタ      */
    399         int16_t         snd_tfn;        /* 送信動作中の API 機能コード       */
    400         int16_t         rcv_tfn;        /* 受信動作中の API 機能コード       */
     369        T_IPV6EP        *p_dstaddr;     /* 相手のアドレスへのポインタ        */
     370        T_IPV6EP        *p_myaddr;      /* 自分のアドレスへのポインタ        */
     371        int16_t         snd_tfn;        /* 送信動作中の API 機能コード     */
     372        int16_t         rcv_tfn;        /* 受信動作中の API 機能コード     */
    401373
    402374#ifdef TCP_CFG_NON_BLOCKING
    403375
    404         int16_t         snd_nblk_tfn;   /* 送信動作中の API 機能コード       */
    405         int16_t         rcv_nblk_tfn;   /* 受信動作中の API 機能コード       */
    406         void            *snd_data;      /* 送信データ領域のå
    407 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹        */
    408         int_t           snd_len;        /* 送信データ領域の長さ               */
    409         void            *rcv_data;      /* 受信データ領域のå
    410 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹        */
    411         int_t           rcv_len;        /* 受信データ領域の長さ               */
    412         void            **snd_p_buf;    /* 送信バッファへのポインタ */
    413         void            **rcv_p_buf;    /* 受信バッファへのポインタ */
     376        int16_t         snd_nblk_tfn;   /* 送信動作中の API 機能コード     */
     377        int16_t         rcv_nblk_tfn;   /* 受信動作中の API 機能コード     */
     378        void            *snd_data;      /* 送信データ領域の先頭アドレス       */
     379        int_t           snd_len;        /* 送信データ領域の長さ           */
     380        void            *rcv_data;      /* 受信データ領域の先頭アドレス       */
     381        int_t           rcv_len;        /* 受信データ領域の長さ           */
     382        void            **snd_p_buf;    /* 送信バッファへのポインタ */
     383        void            **rcv_p_buf;    /* 受信バッファへのポインタ */
    414384
    415385#endif  /* of #ifdef TCP_CFG_NON_BLOCKING */
    416386
    417387#ifdef TCP_CFG_SWBUF_CSAVE
    418         T_NET_BUF       *swbufq;        /* 送信ウィンドバッファキュー      */
     388        T_NET_BUF       *swbufq;        /* 送信ウィンドバッファキュー        */
    419389#endif  /* of #ifdef TCP_CFG_SWBUF_CSAVE */
    420390
    421391        /*
    422          *  これ以降のメンバーは tcp_init_cep() 関数でゼロクリアーされる。
     392         *  これ以降のメンバーは tcp_init_cep() 関数でゼロクリアーされる。
    423393         */
    424394
    425         T_TCP_TIME      timer[NUM_TCP_TIMERS];  /* TCP のタイマ             */
    426         T_IPV6EP        dstaddr;        /* 相手のアドレス                */
    427         T_IPV6EP        myaddr;         /* 自分のアドレス                */
    428         T_TCP6_REP      *rep;           /* 受付口                    */
    429         T_NET_BUF       *reassq;        /* 受信再構成キュー             */
     395        T_TCP_TIME      timer[NUM_TCP_TIMERS];  /* TCP のタイマ             */
     396        T_IPV6EP        dstaddr;        /* 相手のアドレス              */
     397        T_IPV6EP        myaddr;         /* 自分のアドレス              */
     398        T_TCP6_REP      *rep;           /* 受付口                  */
     399        T_NET_BUF       *reassq;        /* 受信再構成キュー             */
    430400
    431401#ifdef TCP_CFG_RWBUF_CSAVE
    432         T_NET_BUF       *rwbufq;        /* 受信ウィンドバッファキュー      */
     402        T_NET_BUF       *rwbufq;        /* 受信ウィンドバッファキュー        */
    433403#endif  /* of #ifdef TCP_CFG_RWBUF_CSAVE */
    434404
    435405#ifdef TCP_CFG_EXTENTIONS
    436         T_TCP_HDR       *urg_tcph;      /* 緊急データå
    437 ¥ã‚Šã®ã‚»ã‚°ãƒ¡ãƒ³ãƒˆã® TCP ヘッダ */
    438         T_TCP_SEQ       snd_up;         /* 送信した緊急ポインタ               */
    439         T_TCP_SEQ       rcv_up;         /* 受信した緊急ポインタ               */
     406        T_TCP_HDR       *urg_tcph;      /* 緊急データ入りのセグメントの TCP ヘッダ       */
     407        T_TCP_SEQ       snd_up;         /* 送信した緊急ポインタ           */
     408        T_TCP_SEQ       rcv_up;         /* 受信した緊急ポインタ           */
    440409#endif  /* of #ifdef TCP_CFG_EXTENTIONS */
    441410
    442         T_TCP_SEQ       snd_una;        /* 未確認の最小送信 SEQ つまり       */
    443                                         /* 確認された最大送信 SEQ      */
    444         T_TCP_SEQ       snd_max;        /* 送信した最大 SEQ               */
    445         T_TCP_SEQ       snd_nxt;        /* 次に送信する SEQ               */
    446         T_TCP_SEQ       snd_old_nxt;    /* å
    447 ƒã® snd_nxt                    */
    448         T_TCP_SEQ       snd_wl1;        /* 前回ウィンドを更新した SEQ        */
    449         T_TCP_SEQ       snd_wl2;        /* 前回ウィンドを更新した ACK        */
    450         T_TCP_SEQ       iss;            /* 自分の SEQ の初期値           */
    451         T_TCP_SEQ       irs;            /* 相手の SEQ の初期値           */
    452         T_TCP_SEQ       rcv_nxt;        /* 受信を期å¾
    453 ã—ている最小の SEQ       */
    454         T_TCP_SEQ       rcv_adv;        /* 受信を期å¾
    455 ã—ている最大の SEQ       */
    456         T_TCP_SEQ       rcv_wnd;        /* 受信可能なウィンドサイズ */
    457         T_TCP_SEQ       rtseq;          /* 時間計測を始めた SEQ         */
    458         T_TCP_SEQ       last_ack_sent;  /* 最後に送信した ACK            */
    459         T_TCP_TIME      idle;           /* アイドル時間                   */
    460         ER              error;          /* 非同期に発生したエラー            */
    461         ER              net_error;      /* ネットワークのエラー状æ
    462 ‹       */
    463         T_TCP_WND       snd_wnd;        /* 相手の受信可能ウィンドサイズ   */
    464         T_TCP_WND       max_sndwnd;     /* 今までの最大送信ウィンドサイズ        */
    465         T_TCP_TIME      rtt;            /* 往復時間                 */
    466         uint16_t        swbuf_count;    /* 送信ウィンドバッファの使用中サイズ  */
    467         uint16_t        rwbuf_count;    /* 受信ウィンドバッファの使用中サイズ  */
    468         uint16_t        rcv_buf_len;    /* tcp_rcv_buf の割当て長  */
    469         uint16_t        get_buf_len;    /* tcp_rcv_buf の割当て長  */
    470         uint8_t         rxtshift;       /* 再送信回数の log(2)            */
    471         uint8_t         fsm_state;      /* FSM 状æ
    472 ‹                       */
    473         uint8_t         dupacks;        /* 再送 ACK 数                       */
     411        T_TCP_SEQ       snd_una;        /* 未確認の最小送信 SEQ つまり     */
     412                                        /* 確認された最大送信 SEQ        */
     413        T_TCP_SEQ       snd_max;        /* 送信した最大 SEQ           */
     414        T_TCP_SEQ       snd_nxt;        /* 次に送信する SEQ           */
     415        T_TCP_SEQ       snd_old_nxt;    /* 元の snd_nxt                   */
     416        T_TCP_SEQ       snd_wl1;        /* 前回ウィンドを更新した SEQ      */
     417        T_TCP_SEQ       snd_wl2;        /* 前回ウィンドを更新した ACK      */
     418        T_TCP_SEQ       iss;            /* 自分の SEQ の初期値         */
     419        T_TCP_SEQ       irs;            /* 相手の SEQ の初期値         */
     420        T_TCP_SEQ       rcv_nxt;        /* 受信を期待している最小の SEQ     */
     421        T_TCP_SEQ       rcv_adv;        /* 受信を期待している最大の SEQ     */
     422        T_TCP_SEQ       rcv_wnd;        /* 受信可能なウィンドサイズ */
     423        T_TCP_SEQ       rtseq;          /* 時間計測を始めた SEQ         */
     424        T_TCP_SEQ       last_ack_sent;  /* 最後に送信した ACK          */
     425        T_TCP_TIME      idle;           /* アイドル時間                       */
     426        ER              error;          /* 非同期に発生したエラー          */
     427        ER              net_error;      /* ネットワークのエラー状態 */
     428        T_TCP_WND       snd_wnd;        /* 相手の受信可能ウィンドサイズ       */
     429        T_TCP_WND       max_sndwnd;     /* 今までの最大送信ウィンドサイズ      */
     430        T_TCP_TIME      rtt;            /* 往復時間                 */
     431        uint16_t        swbuf_count;    /* 送信ウィンドバッファの使用中サイズ    */
     432        uint16_t        rwbuf_count;    /* 受信ウィンドバッファの使用中サイズ    */
     433        uint16_t        rcv_buf_len;    /* tcp_rcv_buf の割当て長    */
     434        uint16_t        get_buf_len;    /* tcp_rcv_buf の割当て長    */
     435        uint8_t         rxtshift;       /* 再送信回数の log(2)                */
     436        uint8_t         fsm_state;      /* FSM 状態                       */
     437        uint8_t         dupacks;        /* 再送 ACK 数                     */
    474438
    475439#if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES)
    476         uint8_t         rwbufq_entries; /* 受信ウィンドバッファキューのエントリ数    */
     440        uint8_t         rwbufq_entries; /* 受信ウィンドバッファキューのエントリ数  */
    477441#endif  /* of #if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES)       */
    478442
     
    480444
    481445/*
    482  * Time Wait 用 IPv6 TCP 通信端点
     446 * Time Wait 用 IPv6 TCP 通信端点
    483447 */
    484448typedef struct t_tcp6_twcep {
    485         int_t           rbufsz;         /* 受信用ウィンドバッファサイズ   */
    486         T_TCP_TIME      timer_2msl;     /* 2MSL タイマ                       */
    487         T_IPV6EP        dstaddr;        /* 相手のアドレス                */
    488         T_IPV6EP        myaddr;         /* 自分のアドレス                */
    489         T_TCP_SEQ       snd_una;        /* 未確認の最小送信 SEQ つまり       */
    490                                         /* 確認された最大送信 SEQ      */
    491         T_TCP_SEQ       iss;            /* 自分の SEQ の初期値           */
    492         T_TCP_SEQ       irs;            /* 相手の SEQ の初期値           */
    493         T_TCP_SEQ       rcv_nxt;        /* 受信を期å¾
    494 ã—ている最小の SEQ       */
    495         T_TCP_WND       snd_wnd;        /* 相手の受信可能ウィンドサイズ   */
    496         uint16_t        rwbuf_count;    /* 受信ウィンドバッファの使用中サイズ  */
    497         uint8_t         fsm_state;      /* FSM 状æ
    498 ‹                       */
     449        int_t           rbufsz;         /* 受信用ウィンドバッファサイズ       */
     450        T_TCP_TIME      timer_2msl;     /* 2MSL タイマ                     */
     451        T_IPV6EP        dstaddr;        /* 相手のアドレス              */
     452        T_IPV6EP        myaddr;         /* 自分のアドレス              */
     453        T_TCP_SEQ       snd_una;        /* 未確認の最小送信 SEQ つまり     */
     454                                        /* 確認された最大送信 SEQ        */
     455        T_TCP_SEQ       iss;            /* 自分の SEQ の初期値         */
     456        T_TCP_SEQ       irs;            /* 相手の SEQ の初期値         */
     457        T_TCP_SEQ       rcv_nxt;        /* 受信を期待している最小の SEQ     */
     458        T_TCP_WND       snd_wnd;        /* 相手の受信可能ウィンドサイズ       */
     459        uint16_t        rwbuf_count;    /* 受信ウィンドバッファの使用中サイズ    */
     460        uint8_t         fsm_state;      /* FSM 状態                       */
    499461
    500462        } T_TCP6_TWCEP;
     
    513475
    514476/*
    515  *  TCP 通信端点の状æ
    516 ‹ãƒ•ãƒ©ã‚°
    517  */
    518 
    519 #define TCP_CEP_FLG_ACK_NOW             ULONG_C(0x00000001)     /* 直ちに相手に ACK を送る。  */
    520 #define TCP_CEP_FLG_DEL_ACK             ULONG_C(0x00000002)     /* ACK をé
    521 å»¶ã™ã‚‹ã€‚            */
    522 #define TCP_CEP_FLG_SENT_FIN            ULONG_C(0x00000004)     /* FIN を送ってある。            */
    523 #define TCP_CEP_FLG_NEED_SYN            ULONG_C(0x00000008)     /* SYN を送信する。               */
    524 #define TCP_CEP_FLG_NEED_FIN            ULONG_C(0x00000010)     /* FIN を送信する。               */
    525 #define TCP_CEP_FLG_FORCE               ULONG_C(0x00000020)     /* 強制送信。                      */
    526 #define TCP_CEP_FLG_NO_PUSH             ULONG_C(0x00000040)     /* push しない。            */
    527 #define TCP_CEP_FLG_NO_DELAY            ULONG_C(0x00000080)     /* é
    528 å»¶ã—ない。                 */
    529 #define TCP_CEP_FLG_FORCE_CLEAR         ULONG_C(0x00000100)     /* 強制送信した後フラグをクリアーする。*/
    530 #define TCP_CEP_FLG_POST_OUTPUT         ULONG_C(0x00000200)     /* 送信を開始する。             */
    531 #define TCP_CEP_FLG_RESERVE_OUTPUT      ULONG_C(0x00000400)     /* 送信を予約する。             */
    532 #define TCP_CEP_FLG_DYNAMIC             ULONG_C(0x00001000)     /* 動的生成・削除可能通信端点。   */
    533 #define TCP_CEP_FLG_VALID               ULONG_C(0x00002000)     /* 生成済みで有効な通信端点。      */
    534 #define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT  ULONG_C(0x00004000)     /* 送信した後コネクションを閉じる。*/
    535 #define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT ULONG_C(0x00008000)     /* 送信した後、snd_nxt をå
    536 ƒã«æˆ»ã™ã€‚*/
    537 
    538 /* 送受信ウィンドバッファの省コピー機能 */
    539 #define TCP_CEP_FLG_WBCS_NBUF_REQ       ULONG_C(0x00080000)     /* ネットワークバッファ割当て要求        */
    540 #define TCP_CEP_FLG_WBCS_MASK           ULONG_C(0x00070000)     /* マスク                    */
    541 #define TCP_CEP_FLG_WBCS_FREE           ULONG_C(0x00000000)     /* 送信ウィンドバッファ未使用      */
    542 #define TCP_CEP_FLG_WBCS_WOPEN_PEND     ULONG_C(0x00010000)     /* 相手の受信ウィンドの開きå¾
    543 ã¡     */
    544 #define TCP_CEP_FLG_WBCS_NBUF_PEND      ULONG_C(0x00020000)     /* ネットワークバッファ予約å¾
    545 ã¡     */
    546 #define TCP_CEP_FLG_WBCS_NBUF_RSVD      ULONG_C(0x00030000)     /* ネットワークバッファ予約済み   */
    547 #define TCP_CEP_FLG_WBCS_NBUF_READY     ULONG_C(0x00040000)     /* ネットワークバッファ割当て済み        */
    548 #define TCP_CEP_FLG_WBCS_SEND_READY     ULONG_C(0x00050000)     /* 送信可能                 */
    549 #define TCP_CEP_FLG_WBCS_SENT           ULONG_C(0x00060000)     /* 送信済みで、ACKå¾
    550 ã¡             */
    551 #define TCP_CEP_FLG_WBCS_ACKED          ULONG_C(0x00070000)     /* 送信済みで、ACK完了          */
    552 
    553 /*
    554  *  通信端点イベントフラグ
    555  */
    556 
    557 #define TCP_CEP_EVT_ESTABLISHED         ULONG_C(0x00000001)     /* コネクション確立             */
    558 #define TCP_CEP_EVT_CLOSED              ULONG_C(0x00000002)     /* 未使用状æ
    559 ‹                       */
    560 #define TCP_CEP_EVT_SWBUF_READY         ULONG_C(0x00000004)     /* 送信ウィンドバッファ空き */
    561 #define TCP_CEP_EVT_RWBUF_READY         ULONG_C(0x00000008)     /* 送信ウィンドバッファデータあり        */
    562 #define TCP_CEP_EVT_ALL                 ULONG_C(0xffffffff)     /* å
    563 ¨ã‚¤ãƒ™ãƒ³ãƒˆ                   */
    564 
    565 /*
    566  *  追加 API 機能・事象コード
    567  */
    568 
    569 /* TCP 関係 */
     477 *  TCP 通信端点の状態フラグ
     478 */
     479
     480#define TCP_CEP_FLG_ACK_NOW             ULONG_C(0x00000001)     /* 直ちに相手に ACK を送る。      */
     481#define TCP_CEP_FLG_DEL_ACK             ULONG_C(0x00000002)     /* ACK を遅延する。           */
     482#define TCP_CEP_FLG_SENT_FIN            ULONG_C(0x00000004)     /* FIN を送ってある。          */
     483#define TCP_CEP_FLG_NEED_SYN            ULONG_C(0x00000008)     /* SYN を送信する。           */
     484#define TCP_CEP_FLG_NEED_FIN            ULONG_C(0x00000010)     /* FIN を送信する。           */
     485#define TCP_CEP_FLG_FORCE               ULONG_C(0x00000020)     /* 強制送信。                        */
     486#define TCP_CEP_FLG_NO_PUSH             ULONG_C(0x00000040)     /* push しない。            */
     487#define TCP_CEP_FLG_NO_DELAY            ULONG_C(0x00000080)     /* 遅延しない。                       */
     488#define TCP_CEP_FLG_FORCE_CLEAR         ULONG_C(0x00000100)     /* 強制送信した後フラグをクリアーする。*/
     489#define TCP_CEP_FLG_POST_OUTPUT         ULONG_C(0x00000200)     /* 送信を開始する。             */
     490#define TCP_CEP_FLG_RESERVE_OUTPUT      ULONG_C(0x00000400)     /* 送信を予約する。             */
     491#define TCP_CEP_FLG_DYNAMIC             ULONG_C(0x00001000)     /* 動的生成・削除可能通信端点。       */
     492#define TCP_CEP_FLG_VALID               ULONG_C(0x00002000)     /* 生成済みで有効な通信端点。        */
     493#define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT  ULONG_C(0x00004000)     /* 送信した後コネクションを閉じる。*/
     494#define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT ULONG_C(0x00008000)     /* 送信した後、snd_nxt を元に戻す。*/
     495
     496/* 送受信ウィンドバッファの省コピー機能 */
     497#define TCP_CEP_FLG_WBCS_NBUF_REQ       ULONG_C(0x00080000)     /* ネットワークバッファ割当て要求      */
     498#define TCP_CEP_FLG_WBCS_MASK           ULONG_C(0x00070000)     /* マスク                  */
     499#define TCP_CEP_FLG_WBCS_FREE           ULONG_C(0x00000000)     /* 送信ウィンドバッファ未使用        */
     500#define TCP_CEP_FLG_WBCS_WOPEN_PEND     ULONG_C(0x00010000)     /* 相手の受信ウィンドの開き待ち       */
     501#define TCP_CEP_FLG_WBCS_NBUF_PEND      ULONG_C(0x00020000)     /* ネットワークバッファ予約待ち       */
     502#define TCP_CEP_FLG_WBCS_NBUF_RSVD      ULONG_C(0x00030000)     /* ネットワークバッファ予約済み       */
     503#define TCP_CEP_FLG_WBCS_NBUF_READY     ULONG_C(0x00040000)     /* ネットワークバッファ割当て済み      */
     504#define TCP_CEP_FLG_WBCS_SEND_READY     ULONG_C(0x00050000)     /* 送信可能                 */
     505#define TCP_CEP_FLG_WBCS_SENT           ULONG_C(0x00060000)     /* 送信済みで、ACK待ち          */
     506#define TCP_CEP_FLG_WBCS_ACKED          ULONG_C(0x00070000)     /* 送信済みで、ACK完了          */
     507
     508/*
     509 *  通信端点イベントフラグ
     510 */
     511
     512#define TCP_CEP_EVT_ESTABLISHED         ULONG_C(0x00000001)     /* コネクション確立             */
     513#define TCP_CEP_EVT_CLOSED              ULONG_C(0x00000002)     /* 未使用状態                        */
     514#define TCP_CEP_EVT_SWBUF_READY         ULONG_C(0x00000004)     /* 送信ウィンドバッファ空き */
     515#define TCP_CEP_EVT_RWBUF_READY         ULONG_C(0x00000008)     /* 送信ウィンドバッファデータあり      */
     516#define TCP_CEP_EVT_ALL                 ULONG_C(0xffffffff)     /* 全イベント                        */
     517
     518/*
     519 *  追加 API 機能・事象コード
     520 */
     521
     522/* TCP 関係 */
    570523
    571524#define TFN_TCP_UNDEF           (0)
    572525
    573526/*
    574  *  srtt:   å¹³æ»‘化された RTT
    575  *  rttvar: 平滑化された分散
    576  *  rtt:    測定された往復時間
     527 *  srtt:   平滑化された RTT
     528 *  rttvar: 平滑化された分散
     529 *  rtt:    測定された往復時間
    577530 *
    578  *  平滑化された RTT (srtt) と平滑化された分散 (rttvar) を
    579  *  整数型で計算するために、左シフトしてスケールする。
    580  *  srtt は 2 進小数点以下 3 ビット、
    581  *  rttvar は 2 進小数点以下 2 ビットを保持する。
     531 *  平滑化された RTT (srtt) と平滑化された分散 (rttvar) を
     532 *  整数型で計算するために、左シフトしてスケールする。
     533 *  srtt は 2 進小数点以下 3 ビット、
     534 *  rttvar は 2 進小数点以下 2 ビットを保持する。
    582535 */
    583536
    584537#define TCP_DELTA_SHIFT         2
    585                         /* 差分 = rtt/8 + srtt*7/8 の計算のためのシフト値  */
     538                        /* 差分 = rtt/8 + srtt*7/8 の計算のためのシフト値    */
    586539#define TCP_SRTT_SHIFT          (TCP_DELTA_SHIFT + 3)
    587                                         /* srtt のシフト値、3(+2)ビット        */
     540                                        /* srtt のシフト値、3(+2)ビット  */
    588541#define TCP_RTTVAR_SHIFT        (TCP_DELTA_SHIFT + 2)
    589                                         /* rttvar のシフト値、2(+2)ビット      */
     542                                        /* rttvar のシフト値、2(+2)ビット        */
    590543#define TCP_SRTT_SCALE          (1<<TCP_SRTT_SHIFT)
    591544#define TCP_RTTVAR_SCALE        (1<<TCP_RTTVAR_SHIFT)
    592545
    593546/*
    594  *  高速再転送を開始する再送 ACK 数のしきい値
     547 *  高速再転送を開始する再送 ACK 数のしきい値
    595548 */
    596549
     
    598551
    599552/*
    600  *  受信再構成キューでの TCP ヘッダ
     553 *  受信再構成キューでの TCP ヘッダ
    601554 */
    602555
    603556typedef struct t_tcp_q_hdr {
    604         uint16_t        sport;          /* 送信å
    605 ƒãƒãƒ¼ãƒˆç•ªå·                        */
    606         uint16_t        dport;          /* 宛å
    607 ˆãƒãƒ¼ãƒˆç•ªå·                        */
    608 
    609         uint32_t        seq;            /* SEQ 番号                           */
    610 
    611         T_NET_BUF       *next;          /* 次のセグメント、å
    612 ƒã¯ ACK 番号(ack)    */
    613 
    614         uint8_t         doff;           /* データオフセット(上位4ビット)   */
    615         uint8_t         flags;          /* フラグ(下位6ビット)                  */
    616         uint16_t        soff;           /* SDU オフセット、å
    617 ƒã¯ã‚¦ã‚£ãƒ³ãƒ‰ã‚µã‚¤ã‚º(win)  */
    618 
    619         uint16_t        slen;           /* SDU 長、å
    620 ƒã¯ãƒã‚§ãƒƒã‚¯ã‚µãƒ (sum)     */
    621         uint16_t        urp;            /* 緊急ポインタ(SDU 長補正)                */
     557        uint16_t        sport;          /* 送信元ポート番号                     */
     558        uint16_t        dport;          /* 宛先ポート番号                      */
     559
     560        uint32_t        seq;            /* SEQ 番号                               */
     561
     562        T_NET_BUF       *next;          /* 次のセグメント、元は ACK 番号(ack)       */
     563
     564        uint8_t         doff;           /* データオフセット(上位4ビット)     */
     565        uint8_t         flags;          /* フラグ(下位6ビット)                  */
     566        uint16_t        soff;           /* SDU オフセット、元はウィンドサイズ(win)     */
     567
     568        uint16_t        slen;           /* SDU 長、元はチェックサム(sum)  */
     569        uint16_t        urp;            /* 緊急ポインタ(SDU 長補正)              */
    622570        } __attribute__((packed, aligned(2)))T_TCP_Q_HDR;
    623571
     
    626574
    627575/*
    628  *  オブジェクト ID の最小値の定義
    629  */
    630 
    631 #define TMIN_TCP_REPID          1       /* TCP 受付口   ID の最小値                      */
    632 #define TMIN_TCP_CEPID          1       /* TCP 通信端点 ID の最小値                     */
    633 #define TMIN_TCP_TWCEPID        1       /* Time Wait 用 TCP 通信端点 ID の最小値       */
    634 
    635 /*
    636  *  制御セグメント(データなし)サイズのネットワークバッファ
     576 *  オブジェクト ID の最小値の定義
     577 */
     578
     579#define TMIN_TCP_REPID          1       /* TCP 受付口   ID の最小値                    */
     580#define TMIN_TCP_CEPID          1       /* TCP 通信端点 ID の最小値                     */
     581#define TMIN_TCP_TWCEPID        1       /* Time Wait 用 TCP 通信端点 ID の最小値 */
     582
     583/*
     584 *  制御セグメント(データなし)サイズのネットワークバッファ
    637585 */
    638586
    639587typedef struct t_net_buf_cseg {
    640         uint16_t        len;    /* データの長さ           */
    641         uint8_t         idix;   /* mpfid のインデックス  */
    642         uint8_t         flags;  /* フラグ            */
     588        uint16_t        len;    /* データの長さ               */
     589        uint8_t         idix;   /* mpfid のインデックス        */
     590        uint8_t         flags;  /* フラグ          */
    643591#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    644592        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     
    648596#endif
    649597        uint8_t         buf[IF_HDR_SIZE + IP_HDR_SIZE + TCP_HDR_SIZE];
    650                                 /* バッファ本体           */
     598                                /* バッファ本体               */
    651599        } T_NET_BUF_CSEG;
    652600
     
    654602
    655603/*
    656  *  SNMP の 管理æƒ
    657 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     604 *  SNMP の 管理情報ベース (MIB)
    658605 */
    659606
     
    674621
    675622/*
    676  *  関数シミュレーションマクロ
     623 *  関数シミュレーションマクロ
    677624 */
    678625
     
    720667
    721668/*
    722  *  å
    723 ¨åŸŸå¤‰æ•°
     669 *  全域変数
    724670 */
    725671
     
    738684
    739685/*
    740  *  Inline 関数
     686 *  Inline 関数
    741687 */
    742688
     
    744690
    745691/*
    746  *  TCP 通信端点の受信ウィンドバッファの省コピー機能が
    747  *  無効の場合は何もしないためのダミーの関数
    748  */
    749 
    750 /*
    751  *  tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。
     692 *  TCP 通信端点の受信ウィンドバッファの省コピー機能が
     693 *  無効の場合は何もしないためのダミーの関数
     694 */
     695
     696/*
     697 *  tcp_free_rwbufq -- 受信ウィンドバッファキューを解放する。
    752698 */
    753699
     
    762708
    763709/*
    764  *  TCP 通信端点の送信ウィンドバッファの省コピー機能のみが
    765  *  有効の場合は何もしないためのダミーの関数
    766  */
    767 
    768 /*
    769  *  tcp_read_swbuf_cs -- 送信ウィンドバッファからデータを読み出す。
     710 *  TCP 通信端点の送信ウィンドバッファの省コピー機能のみが
     711 *  有効の場合は何もしないためのダミーの関数
     712 */
     713
     714/*
     715 *  tcp_read_swbuf_cs -- 送信ウィンドバッファからデータを読み出す。
    770716 */
    771717
     
    780726
    781727/*
    782  *  TCP 通信端点の送信ウィンドバッファの省コピー機能が
    783  *  無効の場合は何もしないためのダミーの関数
    784  */
    785 
    786 /*
    787  *  tcp_free_swbufq -- 送信ウィンドバッファキューを解放する。
     728 *  TCP 通信端点の送信ウィンドバッファの省コピー機能が
     729 *  無効の場合は何もしないためのダミーの関数
     730 */
     731
     732/*
     733 *  tcp_free_swbufq -- 送信ウィンドバッファキューを解放する。
    788734 */
    789735
     
    794740
    795741/*
    796  *  tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。
     742 *  tcp_alloc_swbuf -- 送信ウィンドバッファ用のネットワークバッファの割り当てを指示する。
    797743 */
    798744
     
    803749
    804750/*
    805  *  tcp_push_res_nbuf -- ネットワークバッファを予約する。
     751 *  tcp_push_res_nbuf -- ネットワークバッファを予約する。
    806752 */
    807753
     
    813759
    814760/*
    815  *  tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す。
     761 *  tcp_pull_res_nbuf -- 予約してあるネットワークバッファ返す。
    816762 */
    817763
     
    825771
    826772/*
    827  *  TCP 通信端点の受信ウィンドバッファの省コピー機能の切り替えマクロ
     773 *  TCP 通信端点の受信ウィンドバッファの省コピー機能の切り替えマクロ
    828774 */
    829775
     
    859805
    860806/*
    861  *  TCP 通信端点の送信ウィンドバッファの省コピー機能の切り替えマクロ
     807 *  TCP 通信端点の送信ウィンドバッファの省コピー機能の切り替えマクロ
    862808 */
    863809
     
    910856
    911857/*
    912  *  関数
     858 *  関数
    913859 */
    914860
     
    941887
    942888/*
    943  *  TCP 通信端点の受信ウィンドバッファ用関数
    944  */
    945 
    946 /*
    947  *  TCP 通信端点の受信ウィンドバッファの省コピー機能が有効の場合、
    948  *  関数の選択に使用する。
     889 *  TCP 通信端点の受信ウィンドバッファ用関数
     890 */
     891
     892/*
     893 *  TCP 通信端点の受信ウィンドバッファの省コピー機能が有効の場合、
     894 *  関数の選択に使用する。
    949895 */
    950896
     
    956902
    957903/*
    958  *  TCP 通信端点の受信ウィンドバッファの省コピー機能用関数
     904 *  TCP 通信端点の受信ウィンドバッファの省コピー機能用関数
    959905 */
    960906
     
    966912
    967913/*
    968  *  TCP 通信端点の受信ウィンドバッファの【非】省コピー機能用関数
     914 *  TCP 通信端点の受信ウィンドバッファの【非】省コピー機能用関数
    969915 */
    970916
     
    976922
    977923/*
    978  *  TCP 通信端点の送信ウィンドバッファ用関数
    979  */
    980 
    981 /*
    982  *  TCP 通信端点の送信ウィンドバッファの省コピー機能が有効の場合、
    983  *  関数の選択に使用する。
     924 *  TCP 通信端点の送信ウィンドバッファ用関数
     925 */
     926
     927/*
     928 *  TCP 通信端点の送信ウィンドバッファの省コピー機能が有効の場合、
     929 *  関数の選択に使用する。
    984930 */
    985931
     
    998944
    999945/*
    1000  *  TCP 通信端点の送信ウィンドバッファの省コピー機能用関数
     946 *  TCP 通信端点の送信ウィンドバッファの省コピー機能用関数
    1001947 */
    1002948
     
    1012958
    1013959/*
    1014  *  TCP 通信端点の送信ウィンドバッファの【非】省コピー機能用関数
     960 *  TCP 通信端点の送信ウィンドバッファの【非】省コピー機能用関数
    1015961 */
    1016962
     
    1028974
    1029975/*
    1030  *  tcp_find_cep -- ポート番号から TCP 通信端点を得る。
     976 *  tcp_find_cep -- ポート番号から TCP 通信端点を得る。
    1031977 *
    1032  *    注意: myaddr は、
    1033  *          TINET-1.2 からネットワークバイトオーダ、
    1034  *          TINET-1.1 までは、ホストバイトオーダ
     978 *    注意: myaddr は、
     979 *          TINET-1.2 からネットワークバイトオーダ、
     980 *          TINET-1.1 までは、ホストバイトオーダ
    1035981 */
    1036982extern T_TCP_CEP *tcp_find_cep (T_IN_ADDR *dstaddr,  uint16_t dstport,
     
    1038984
    1039985/*
    1040  *  TCP ヘッダのトレース出力機能用関数
     986 *  TCP ヘッダのトレース出力機能用関数
    1041987 */
    1042988extern void tcp_output_trace (T_NET_BUF *output, T_TCP_CEP *cep);
    1043989extern void tcp_input_trace  (T_NET_BUF *input,  T_TCP_CEP *cep);
    1044990
    1045 /* TCP 出力タスク */
     991/* TCP 出力タスク */
    1046992
    1047993extern void     tcp_output_task(intptr_t exinf);
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  UDP で使用するカーネルオブジェクト
     35 *  UDP で使用するカーネルオブジェクト
    4836 */
    4937
     
    5139
    5240/*
    53  *  ノンブロッキングコールを行う場合に組み込むタスクとセマフォ
     41 *  ノンブロッキングコールを行う場合に組み込むタスクとセマフォ
    5442 */
    5543
     
    6553        });
    6654
    67 /* セマフォ */
     55/* セマフォ */
    6856
    6957CRE_SEM(SEM_UDP_POST_OUTPUT,    { TA_TPRI, 0, 1 });
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8472
    8573/*
    86  *  UDP ヘッダ、RFC768 参ç
    87 §
     74 *  UDP ヘッダ、RFC768 参照
    8875 */
    8976
    9077typedef struct t_udp_hdr {
    91         uint16_t        sport;          /* 送信å
    92 ƒãƒãƒ¼ãƒˆç•ªå·        */
    93         uint16_t        dport;          /* 宛å
    94 ˆãƒãƒ¼ãƒˆç•ªå·        */
     78        uint16_t        sport;          /* 送信元ポート番号     */
     79        uint16_t        dport;          /* 宛先ポート番号      */
    9580
    96         uint16_t        ulen;           /* データグラム長        */
    97         uint16_t        sum;            /* チェックサム           */
     81        uint16_t        ulen;           /* データグラム長      */
     82        uint16_t        sum;            /* チェックサム               */
    9883        } __attribute__((packed, aligned(2)))T_UDP_HDR;
    9984
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_input.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    129117
    130118/*
    131  *  SNMP の 管理æƒ
    132 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     119 *  SNMP の 管理情報ベース (MIB)
    133120 */
    134121
     
    142129
    143130/*
    144  *  udp_dstaddr_accept -- UDP のあてå
    145 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒæ­£ã—いかチェックする。
    146  *
    147  *    DHCP_CFG が定義されているときは、以下のデータグラムを受信する。
    148  *
    149  *      ・あてå
    150 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒãƒ–ロードキャスト
    151  *      ・ローカルアドレスが未定義
     131 *  udp_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
     132 *
     133 *    DHCP_CFG が定義されているときは、以下のデータグラムを受信する。
     134 *
     135 *      ・あて先アドレスがブロードキャスト
     136 *      ・ローカルアドレスが未定義
    152137 */
    153138
     
    168153
    169154/*
    170  *  udp_dstaddr_accept -- UDP のあてå
    171 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒæ­£ã—いかチェックする。
    172  *
    173  *    以下の場合もデータグラムを受信する。
    174  *
    175  *      ・あてå
    176 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒãƒ–ロードキャスト
     155 *  udp_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
     156 *
     157 *    以下の場合もデータグラムを受信する。
     158 *
     159 *      ・あて先アドレスがブロードキャスト
    177160 */
    178161
     
    194177
    195178/*
    196  *  udp_dstaddr_accept -- UDP のあてå
    197 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒæ­£ã—いかチェックする。
    198  *
    199  *    以下の場合もデータグラムを受信する。
    200  *
    201  *      ・あてå
    202 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒãƒ–ロードキャスト
     179 *  udp_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
     180 *
     181 *    以下の場合もデータグラムを受信する。
     182 *
     183 *      ・あて先アドレスがブロードキャスト
    203184 */
    204185
     
    222203
    223204/*
    224  *  udp_dstaddr_accept -- UDP のあてå
    225 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒæ­£ã—いかチェックする。
    226  *
    227  *    以下の場合もデータグラムを受信する。
    228  *
    229  *      ・あてå
    230 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆ
     205 *  udp_dstaddr_accept -- UDP のあて先アドレスが正しいかチェックする。
     206 *
     207 *    以下の場合もデータグラムを受信する。
     208 *
     209 *      ・あて先アドレスがマルチキャスト
    231210 */
    232211
     
    243222
    244223/*
    245  *  udp_input -- UDP のå
    246 ¥åŠ›é–¢æ•°
     224 *  udp_input -- UDP の入力関数
    247225 */
    248226
     
    263241        NET_COUNT_MIB(udp_stats.udpInDatagrams, 1);
    264242
    265         /* ヘッダ長をチェックする。*/
     243        /* ヘッダ長をチェックする。*/
    266244        if (input->len < hlen + UDP_HDR_SIZE)
    267245                goto buf_rel;
     
    269247        udph = (T_UDP_HDR *)(input->buf + *offp);
    270248
    271         /* データグラム長をチェックする */
     249        /* データグラム長をチェックする */
    272250        ulen  = ntohs(udph->ulen);
    273251        if (ulen != input->len - hlen)
    274252                goto buf_rel;
    275253
    276         /* 宛å
    277 ˆãƒãƒ¼ãƒˆãŒ 0 のデータグラムは破棄する。RFC768 */
     254        /* 宛先ポートが 0 のデータグラムは破棄する。RFC768 */
    278255        if (udph->dport == 0)
    279256                goto buf_rel;
     
    281258#ifdef UDP_CFG_IN_CHECKSUM
    282259
    283         /* チェックサムをチェックする */
     260        /* チェックサムをチェックする */
    284261        if (udph->sum && IN_CKSUM(input, IPPROTO_UDP, *offp, ulen) != 0)
    285262                goto buf_rel;
     
    289266        iph = GET_IP_HDR(input);
    290267
    291         /* 宛å
    292 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ãƒãƒ¼ãƒˆã‚’チェックする */
     268        /* 宛先アドレスとポートをチェックする */
    293269        for (ix = tmax_udp_ccepid; ix -- > 0; ) {
    294270                cep = &udp_cep[ix];
     
    298274                        len = (uint_t)(ntohs(udph->ulen) - UDP_HDR_SIZE);
    299275
    300                         if (cep->rcv_tskid != TA_NULL) {        /* 非ノンブロッキングコールでペンディング中 */
     276                        if (cep->rcv_tskid != TA_NULL) {        /* 非ノンブロッキングコールでペンディング中 */
    301277                                if (psnd_dtq(cep->rcvqid, (intptr_t)input) != E_OK)
    302278                                        goto buf_rel;
     
    305281#ifdef UDP_CFG_NON_BLOCKING
    306282
    307                         else if (cep->rcv_p_dstaddr != NULL) {  /* ノンブロッキングコールでペンディング中 */
    308 
    309                                 /* p_dstaddr を設定する。*/
     283                        else if (cep->rcv_p_dstaddr != NULL) {  /* ノンブロッキングコールでペンディング中 */
     284
     285                                /* p_dstaddr を設定する。*/
    310286                                cep->rcv_p_dstaddr->portno = ntohs(udph->sport);
    311287                                IN_COPY_TO_HOST(&cep->rcv_p_dstaddr->ipaddr, &GET_IP_HDR(input)->src);
    312288
    313                                 /* データをバッファに移す。*/
     289                                /* データをバッファに移す。*/
    314290                                memcpy(cep->rcv_data, GET_UDP_SDU(input, *offp),
    315291                                       (size_t)(len < cep->rcv_len ? len : cep->rcv_len));
     
    337313                        else if (IS_PTR_DEFINED(cep->callback)) {
    338314
    339                                 /* コールバック関数を呼び出す。*/
     315                                /* コールバック関数を呼び出す。*/
    340316                                cep->cb_netbuf = input;
    341317
     
    351327
    352328                                /*
    353                                  *  ネットワークバッファがそのままであれば、コールバック関数å†
    354 ã§
    355                                  *  データを読み出さなかったことになるので、捨てる。
     329                                 *  ネットワークバッファがそのままであれば、コールバック関数内で
     330                                 *  データを読み出さなかったことになるので、捨てる。
    356331                                 */
    357332                                if (cep->cb_netbuf != NULL)
     
    369344#if defined(SUPPORT_INET4)
    370345
    371         /* ローカル IP アドレスに届いたデータグラムのみ ICMP エラーを通知する。*/
     346        /* ローカル IP アドレスに届いたデータグラムのみ ICMP エラーを通知する。*/
    372347        if (ntohl(iph->dst) == IF_GET_IFNET()->in_ifaddr.addr) {
    373348                syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport));
    374349
    375350                icmp_error(ICMP4_UNREACH_PORT, input);
    376                 /* icmp_error では、ネットワークバッファ input を返却しないので下へ抜ける。*/
     351                /* icmp_error では、ネットワークバッファ input を返却しないので下へ抜ける。*/
    377352                }
    378353
     
    381356#if defined(SUPPORT_INET6)
    382357
    383         /* マルチキャストアドレスに届いたデータグラムは ICMP エラーを通知しない。*/
     358        /* マルチキャストアドレスに届いたデータグラムは ICMP エラーを通知しない。*/
    384359        if (!IN6_IS_ADDR_MULTICAST(&iph->dst)) {
    385360                syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport));
    386361
    387                 /* icmp6_error で、ネットワークバッファ input を返却する。*/
     362                /* icmp6_error で、ネットワークバッファ input を返却する。*/
    388363                icmp6_error(input, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_NOPORT, 0);
    389364
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_output.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    127115
    128116/*
    129  *  関数
     117 *  関数
    130118 */
    131119
     
    133121
    134122/*
    135  *  UDP 出力タスク
    136  *  ノンブロッキングコールを組み込んだとき使用する。
     123 *  UDP 出力タスク
     124 *  ノンブロッキングコールを組み込んだとき使用する。
    137125 */
    138126
     
    148136#endif  /* of #ifdef UDP_CFG_OUT_CHECKSUM */
    149137
    150         /* IP データグラムを割り当てる。*/
     138        /* IP データグラムを割り当てる。*/
    151139        if ((error = IN_GET_DATAGRAM(&output, (uint_t)(UDP_HDR_SIZE + cep->snd_len), 0,
    152140                                     &cep->snd_p_dstaddr->ipaddr,
     
    157145                }
    158146
    159         /* UDP ヘッダにæƒ
    160 å ±ã‚’設定する。*/
     147        /* UDP ヘッダに情報を設定する。*/
    161148        udph            = GET_UDP_HDR(output, IF_IP_UDP_HDR_OFFSET);
    162149        udph->sport     = htons(cep->myaddr.portno);
     
    165152        udph->sum       = 0;
    166153
    167         /* データをコピーする。*/
     154        /* データをコピーする。*/
    168155        memcpy((void*)GET_UDP_SDU(output, IF_IP_UDP_HDR_OFFSET),
    169156               cep->snd_data, (size_t)cep->snd_len);
     
    174161                       (uint_t)(UDP_HDR_SIZE + cep->snd_len));
    175162
    176         /* 計算したチェックサムの値が 0 なら 0xffff をå
    177 ¥ã‚Œã‚‹ã€‚*/
     163        /* 計算したチェックサムの値が 0 なら 0xffff を入れる。*/
    178164        if (sum == 0)
    179165                sum = UINT_C(0xffff);
     
    182168#endif/* of #ifdef UDP_CFG_OUT_CHECKSUM */
    183169
    184         /* ネットワークバッファ長を調整する。*/
     170        /* ネットワークバッファ長を調整する。*/
    185171        output->len = (uint16_t)(IF_IP_UDP_HDR_SIZE + cep->snd_len);
    186172
    187         /* ネットワーク層 (IP) の出力関数を呼び出す。*/
     173        /* ネットワーク層 (IP) の出力関数を呼び出す。*/
    188174        if ((error = IP_OUTPUT(output, TMO_UDP_OUTPUT)) != E_OK)
    189175                goto err_ret;
     
    236222
    237223/*
    238  *  UDP 出力タスク
    239  *  ノンブロッキングコールを組み込んだとき使用する。
     224 *  UDP 出力タスク
     225 *  ノンブロッキングコールを組み込んだとき使用する。
    240226 */
    241227
     
    252238#if defined(SUPPORT_INET6) && !defined(SUPPORT_TCP)
    253239
    254         /* IPv6 のステートレス・アドレス自動設定を実行する。*/
     240        /* IPv6 のステートレス・アドレス自動設定を実行する。*/
    255241        in6_if_up(IF_GET_IFNET());
    256242
     
    259245        while (true) {
    260246
    261                 /* 出力がポストされるまでå¾
    262 ã¤ã€‚*/
     247                /* 出力がポストされるまで待つ。*/
    263248                syscall(wai_sem(SEM_UDP_POST_OUTPUT));
    264249
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_subr.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$
     
    125113
    126114/*
    127  *  局所変数
     115 *  局所変数
    128116 */
    129117
    130 static uint16_t udp_port_auto = UDP_PORT_FIRST_AUTO;    /* 自動割り当て番号     */
     118static uint16_t udp_port_auto = UDP_PORT_FIRST_AUTO;    /* 自動割り当て番号     */
    131119
    132120/*
    133  *  udp_alloc_auto_port -- 自動割り当てポート番号を設定する。
     121 *  udp_alloc_auto_port -- 自動割り当てポート番号を設定する。
    134122 */
    135123
     
    167155
    168156/*
    169  *  udp_alloc_port -- 指定されたポート番号を設定する。
     157 *  udp_alloc_port -- 指定されたポート番号を設定する。
    170158 */
    171159
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_usrreq.c

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-csrc to text/x-csrc;charset=UTF-8
    r279 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$
     
    8169
    8270/*
    83  *  ノンブロッキングコールを組込まない場合にリンクされる関数の定義
     71 *  ノンブロッキングコールを組込まない場合にリンクされる関数の定義
    8472 */
    8573
     
    131119
    132120/*
    133  *  IPv4 と IPv6 の切り替えマクロ
     121 *  IPv4 と IPv6 の切り替えマクロ
    134122 */
    135123
     
    151139
    152140/*
    153  *  TINET をライブラリ化しない場合は、å
    154 ¨ã¦ã®æ©Ÿèƒ½ã‚’
    155  *  オブジェクトファイルに出力するため、マクロを有効にする。
     141 *  TINET をライブラリ化しない場合は、全ての機能を
     142 *  オブジェクトファイルに出力するため、マクロを有効にする。
    156143 */
    157144
     
    174161
    175162/*
    176  *  udp_send_data -- パケット送信の主要部
     163 *  udp_send_data -- パケット送信の主要部
    177164 */
    178165
     
    192179        NET_COUNT_UDP(net_count_udp.out_packets, 1);
    193180
    194         /* IP データグラム割り当ての時間を tmout から減ずる。*/
     181        /* IP データグラム割り当ての時間を tmout から減ずる。*/
    195182        if (!(tmout == TMO_POL || tmout == TMO_FEVR))
    196183                syscall(get_tim(&before));
    197184
    198         /* IP データグラムを割り当てる。*/
     185        /* IP データグラムを割り当てる。*/
    199186        if ((error = IN_GET_DATAGRAM(&output, (uint_t)(UDP_HDR_SIZE + len), 0,
    200187                                     &p_dstaddr->ipaddr,
     
    204191                goto err_ret;
    205192
    206         /* IP データグラム割り当ての時間を tmout から減ずる。*/
     193        /* IP データグラム割り当ての時間を tmout から減ずる。*/
    207194        if (!(tmout == TMO_POL || tmout == TMO_FEVR)) {
    208195                syscall(get_tim(&after));
     
    215202                }
    216203
    217         /* UDP ヘッダにæƒ
    218 å ±ã‚’設定する。*/
     204        /* UDP ヘッダに情報を設定する。*/
    219205        udph            = GET_UDP_HDR(output, IF_IP_UDP_HDR_OFFSET);
    220206        udph->sport     = htons(cep->myaddr.portno);
     
    223209        udph->sum       = 0;
    224210
    225         /* データをコピーする。*/
     211        /* データをコピーする。*/
    226212        memcpy((void*)GET_UDP_SDU(output, IF_IP_UDP_HDR_OFFSET), data, (size_t)len);
    227213
     
    230216        sum = IN_CKSUM(output, IPPROTO_UDP, IF_IP_UDP_HDR_OFFSET, (uint_t)(UDP_HDR_SIZE + len));
    231217
    232         /* 計算したチェックサムの値が 0 なら 0xffff をå
    233 ¥ã‚Œã‚‹ã€‚*/
     218        /* 計算したチェックサムの値が 0 なら 0xffff を入れる。*/
    234219        if (sum == 0)
    235220                sum = 0xffff;
     
    238223#endif  /* of #ifdef UDP_CFG_OUT_CHECKSUM */
    239224
    240         /* ネットワークバッファ長を調整する。*/
     225        /* ネットワークバッファ長を調整する。*/
    241226        output->len = (uint16_t)(IF_IP_UDP_HDR_SIZE + len);
    242227
    243         /* ネットワーク層 (IP) の出力関数を呼び出す。*/
     228        /* ネットワーク層 (IP) の出力関数を呼び出す。*/
    244229        if ((error = IP_OUTPUT(output, tmout)) == E_OK) {
    245230                NET_COUNT_MIB(udp_stats.udpOutDatagrams, 1);
     
    257242
    258243/*
    259  *  udp_cre_cep -- UDP 通信端点の生成【拡張機能】
     244 *  udp_cre_cep -- UDP 通信端点の生成【拡張機能】
    260245 */
    261246
     
    270255        ER              error;
    271256
    272         /* UDP 通信端点 ID をチェックする。*/
     257        /* UDP 通信端点 ID をチェックする。*/
    273258        if (!VALID_UDP_CEPID(cepid))
    274259                return E_ID;
    275260
    276         /* pk_ccep が NULL ならエラー */
     261        /* pk_ccep が NULL ならエラー */
    277262        if (pk_ccep == NULL)
    278263                return E_PAR;
    279264
    280         /* UDP 通信端点を得る。*/
     265        /* UDP 通信端点を得る。*/
    281266        cep = GET_UDP_CEP(cepid);
    282267
    283         /* UDP 通信端点をチェックする。*/
     268        /* UDP 通信端点をチェックする。*/
    284269        if (VALID_UDP_CEP(cep))
    285270                return E_OBJ;
    286271
    287         /* UDP 通信端点が、動的生成用でなければエラー */
     272        /* UDP 通信端点が、動的生成用でなければエラー */
    288273        if (!DYNAMIC_UDP_CEP(cep))
    289274                return E_ID;
    290275
    291         /* 通信端点をロックする。*/
     276        /* 通信端点をロックする。*/
    292277        syscall(wai_sem(cep->semid_lock));
    293278
    294279        /*
    295          * UDP 通信端点をチェックする。生成済みであればエラー
     280         * UDP 通信端点をチェックする。生成済みであればエラー
    296281         */
    297282        if (VALID_UDP_CEP(cep))
     
    300285
    301286                /*
    302                  *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
     287                 *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
    303288                 */
    304289                if (pk_ccep->myaddr.portno == UDP_PORTANY)
     
    309294                if (error == E_OK) {
    310295
    311                         /* UDP 通信端点生成æƒ
    312 å ±ã‚’コピーする。*/
    313                         cep->cepatr        = pk_ccep->cepatr;                   /* 通信端点属性           */
    314                         cep->myaddr.ipaddr = pk_ccep->myaddr.ipaddr;            /* 自分のアドレス        */
    315                         cep->callback      = (void*)pk_ccep->callback;          /* コールバック           */
    316 
    317                         /* UDP 通信端点を生成済みにする。*/
     296                        /* UDP 通信端点生成情報をコピーする。*/
     297                        cep->cepatr        = pk_ccep->cepatr;                   /* 通信端点属性               */
     298                        cep->myaddr.ipaddr = pk_ccep->myaddr.ipaddr;            /* 自分のアドレス      */
     299                        cep->callback      = (void*)pk_ccep->callback;          /* コールバック               */
     300
     301                        /* UDP 通信端点を生成済みにする。*/
    318302                        cep->flags |= UDP_CEP_FLG_VALID;
    319303                        }
    320304                }
    321305
    322         /* 通信端点のロックを解除する。*/
     306        /* 通信端点のロックを解除する。*/
    323307        syscall(sig_sem(cep->semid_lock));
    324308
     
    331315
    332316/*
    333  *  udp_del_cep -- UDP 通信端点の削除【拡張機能】
     317 *  udp_del_cep -- UDP 通信端点の削除【拡張機能】
    334318 */
    335319
     
    344328        ER              error;
    345329
    346         /* UDP 通信端点 ID をチェックする。*/
     330        /* UDP 通信端点 ID をチェックする。*/
    347331        if (!VALID_UDP_CEPID(cepid))
    348332                return E_ID;
    349333
    350         /* UDP 通信端点を得る。*/
     334        /* UDP 通信端点を得る。*/
    351335        cep = GET_UDP_CEP(cepid);
    352336
    353         /* UDP 通信端点をチェックする。*/
     337        /* UDP 通信端点をチェックする。*/
    354338        if (!VALID_UDP_CEP(cep))
    355339                return E_NOEXS;
    356340
    357         /* UDP 通信端点が、動的生成用でなければエラー */
     341        /* UDP 通信端点が、動的生成用でなければエラー */
    358342        if (!DYNAMIC_UDP_CEP(cep))
    359343                return E_ID;
    360344
    361         /* 通信端点をロックする。*/
     345        /* 通信端点をロックする。*/
    362346        syscall(wai_sem(cep->semid_lock));
    363347
    364348        /*
    365          * UDP 通信端点をチェックする。未生成の場合はエラー
    366          * ・未生成。
     349         * UDP 通信端点をチェックする。未生成の場合はエラー
     350         * ・未生成。
    367351         */
    368352        if (!VALID_UDP_CEP(cep))
     
    372356                udp_can_rcv(cep, E_DLT);
    373357
    374                 /* UDP 通信端点を未生成にする。*/
     358                /* UDP 通信端点を未生成にする。*/
    375359                cep->flags &= ~UDP_CEP_FLG_VALID;
    376360                error = E_OK;
    377361                }
    378362
    379         /* 通信端点のロックを解除する。*/
     363        /* 通信端点のロックを解除する。*/
    380364        syscall(sig_sem(cep->semid_lock));
    381365
     
    390374
    391375/*
    392  *  udp_can_cep -- ペンディングしている処理のキャンセル【標準機能】
     376 *  udp_can_cep -- ペンディングしている処理のキャンセル【標準機能】
    393377 */
    394378
     
    399383        ER              error = E_OK, snd_err, rcv_err;
    400384
    401         /* API 機能コードをチェックする。*/
     385        /* API 機能コードをチェックする。*/
    402386        if (!VALID_TFN_UDP_CAN(fncd))
    403387                return E_PAR;
    404388
    405         /* UDP 通信端点 ID をチェックする。*/
     389        /* UDP 通信端点 ID をチェックする。*/
    406390        if (!VALID_UDP_CEPID(cepid))
    407391                return E_ID;
    408392
    409         /* UDP 通信端点を得る。*/
     393        /* UDP 通信端点を得る。*/
    410394        cep = GET_UDP_CEP(cepid);
    411395
    412         /* UDP 通信端点をチェックする。*/
     396        /* UDP 通信端点をチェックする。*/
    413397        if (!VALID_UDP_CEP(cep))
    414398                return E_NOEXS;
    415399
    416         /* 通信端点をロックする。*/
     400        /* 通信端点をロックする。*/
    417401        syscall(wai_sem(cep->semid_lock));
    418402
    419         if (fncd == TFN_UDP_ALL) {      /* TFN_UDP_ALL の処理 */
     403        if (fncd == TFN_UDP_ALL) {      /* TFN_UDP_ALL の処理 */
    420404
    421405                snd_err = udp_can_snd(cep, E_RLWAI);
     
    423407
    424408                /*
    425                  *  snd_err と rcv_err のどちらも EV_NOPND
    426                  *  なら、ペンディングしていないのでエラー
     409                 *  snd_err と rcv_err のどちらも EV_NOPND
     410                 *  なら、ペンディングしていないのでエラー
    427411                 */
    428412                if (snd_err == EV_NOPND && rcv_err == EV_NOPND)
     
    440424                        }
    441425                }
    442         else if (fncd == TFN_UDP_SND_DAT) {     /* 送信処理のキャンセル */
     426        else if (fncd == TFN_UDP_SND_DAT) {     /* 送信処理のキャンセル */
    443427                if ((error = udp_can_snd(cep, E_RLWAI)) == EV_NOPND)
    444428                        error = E_OBJ;
    445429                }
    446         else if (fncd == TFN_UDP_RCV_DAT) {     /* 受信処理のキャンセル */
     430        else if (fncd == TFN_UDP_RCV_DAT) {     /* 受信処理のキャンセル */
    447431                if ((error = udp_can_rcv(cep, E_RLWAI)) == EV_NOPND)
    448432                        error = E_OBJ;
     
    451435                error = E_PAR;
    452436
    453         /* 通信端点をロックを解除する。*/
     437        /* 通信端点をロックを解除する。*/
    454438        syscall(sig_sem(cep->semid_lock));
    455439
     
    460444
    461445/*
    462  *  udp_set_opt -- UDP 通信端点オプションの設定【拡張機能】
     446 *  udp_set_opt -- UDP 通信端点オプションの設定【拡張機能】
    463447 *
    464  *  注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。
     448 *  注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。
    465449 */
    466450
     
    474458        T_UDP_CEP       *cep;
    475459
    476         /* UDP 通信端点 ID をチェックする。*/
     460        /* UDP 通信端点 ID をチェックする。*/
    477461        if (!VALID_UDP_CEPID(cepid))
    478462                return E_ID;
    479463
    480         /* UDP 通信端点を得る。*/
     464        /* UDP 通信端点を得る。*/
    481465        cep = GET_UDP_CEP(cepid);
    482466
    483         /* UDP 通信端点をチェックする。*/
     467        /* UDP 通信端点をチェックする。*/
    484468        if (!VALID_UDP_CEP(cep))
    485469                return E_NOEXS;
     
    493477
    494478/*
    495  *  udp_get_opt -- UDP 通信端点オプションの設定【拡張機能】
     479 *  udp_get_opt -- UDP 通信端点オプションの設定【拡張機能】
    496480 *
    497  *  注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。
     481 *  注意: 設定可能な UDP 通信端点オプションは無いため、E_PAR が返される。
    498482 */
    499483
     
    507491        T_UDP_CEP       *cep;
    508492
    509         /* UDP 通信端点 ID をチェックする。*/
     493        /* UDP 通信端点 ID をチェックする。*/
    510494        if (!VALID_UDP_CEPID(cepid))
    511495                return E_ID;
    512496
    513         /* UDP 通信端点を得る。*/
     497        /* UDP 通信端点を得る。*/
    514498        cep = GET_UDP_CEP(cepid);
    515499
    516         /* UDP 通信端点をチェックする。*/
     500        /* UDP 通信端点をチェックする。*/
    517501        if (!VALID_UDP_CEP(cep))
    518502                return E_NOEXS;
     
    534518
    535519/*
    536  *  udp_can_snd -- ペンディングしている送信のキャンセル
     520 *  udp_can_snd -- ペンディングしている送信のキャンセル
    537521 */
    538522
     
    540524udp_can_snd (T_UDP_CEP *cep, ER error)
    541525{
    542         if (cep->snd_tskid != TA_NULL) {        /* 非ノンブロッキングコールでペンディング中 */
    543 
    544 #ifdef UDP_CFG_EXTENTIONS
    545 
    546                 /* å¾
    547 ã¡ä¸­ã«ç™ºç”Ÿã—たエラーæƒ
    548 å ±ã‚’設定する。*/
     526        if (cep->snd_tskid != TA_NULL) {        /* 非ノンブロッキングコールでペンディング中 */
     527
     528#ifdef UDP_CFG_EXTENTIONS
     529
     530                /* 待ち中に発生したエラー情報を設定する。*/
    549531                cep->error = error;
    550532
     
    554536                cep->snd_tskid = TA_NULL;
    555537                }
    556         else                                    /* どちらでもないならペンディングしていない */
     538        else                                    /* どちらでもないならペンディングしていない */
    557539                error = EV_NOPND;
    558540
     
    565547
    566548/*
    567  *  udp_can_rcv -- ペンディングしている受信のキャンセル
     549 *  udp_can_rcv -- ペンディングしている受信のキャンセル
    568550 */
    569551
     
    571553udp_can_rcv (T_UDP_CEP *cep, ER error)
    572554{
    573         if (cep->rcv_tskid != TA_NULL) {        /* 非ノンブロッキングコールでペンディング中 */
    574 
    575 #ifdef UDP_CFG_EXTENTIONS
    576 
    577                 /* å¾
    578 ã¡ä¸­ã«ç™ºç”Ÿã—たエラーæƒ
    579 å ±ã‚’設定する。*/
     555        if (cep->rcv_tskid != TA_NULL) {        /* 非ノンブロッキングコールでペンディング中 */
     556
     557#ifdef UDP_CFG_EXTENTIONS
     558
     559                /* 待ち中に発生したエラー情報を設定する。*/
    580560                cep->error = error;
    581561
     
    585565                cep->rcv_tskid = TA_NULL;
    586566                }
    587         else                                    /* どちらでもないならペンディングしていない */
     567        else                                    /* どちらでもないならペンディングしていない */
    588568                error = EV_NOPND;
    589569
     
    596576
    597577/*
    598  *  udp_snd_dat -- パケットの送信【標準機能】
     578 *  udp_snd_dat -- パケットの送信【標準機能】
    599579 */
    600580
     
    605585        ER              error;
    606586
    607         /* p_dstaddr または data が NULL か、tmout が TMO_NBLK ならエラー */
     587        /* p_dstaddr または data が NULL か、tmout が TMO_NBLK ならエラー */
    608588        if (p_dstaddr == NULL || data == NULL || tmout == TMO_NBLK)
    609589                return E_PAR;
    610590
    611         /* データ長をチェックする。*/
     591        /* データ長をチェックする。*/
    612592        if (len < 0 || len + IP_HDR_SIZE + UDP_HDR_SIZE > IF_MTU)
    613593                return E_PAR;
    614594
    615         /* UDP 通信端点 ID をチェックする。*/
     595        /* UDP 通信端点 ID をチェックする。*/
    616596        if (!VALID_UDP_CEPID(cepid))
    617597                return E_ID;
    618598
    619         /* UDP 通信端点を得る。*/
     599        /* UDP 通信端点を得る。*/
    620600        cep = GET_UDP_CEP(cepid);
    621601
    622         /* UDP 通信端点をチェックする。*/
     602        /* UDP 通信端点をチェックする。*/
    623603        if (!VALID_UDP_CEP(cep))
    624604                return E_NOEXS;
    625605
    626606        /*
    627          *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
     607         *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
    628608         */
    629609        if (cep->myaddr.portno == UDP_PORTANY) {
     
    632612                }
    633613       
    634         /* 通信端点をロックする。*/
     614        /* 通信端点をロックする。*/
    635615        syscall(wai_sem(cep->semid_lock));
    636616
    637617        if (cep->snd_tskid != TA_NULL) {
    638618
    639                 /* 非ノンブロッキングコールでペンディング中 */
     619                /* 非ノンブロッキングコールでペンディング中 */
    640620                error = E_QOVR;
    641621
    642                 /* 通信端点をロックを解除する。*/
     622                /* 通信端点をロックを解除する。*/
    643623                syscall(sig_sem(cep->semid_lock));
    644624                }
    645625        else {
    646                 /* 現在のタスク識別子を記録する。*/
     626                /* 現在のタスク識別子を記録する。*/
    647627                get_tid(&(cep->snd_tskid));
    648628
    649629#ifdef UDP_CFG_EXTENTIONS
    650630
    651                 /* å¾
    652 ã¡ä¸­ã«ç™ºç”Ÿã—たエラーæƒ
    653 å ±ã‚’リセットする。*/
     631                /* 待ち中に発生したエラー情報をリセットする。*/
    654632                cep->error = E_OK;
    655633
    656634#endif  /* of #ifdef UDP_CFG_EXTENTIONS */
    657635
    658                 /* 通信端点をロックを解除する。*/
     636                /* 通信端点をロックを解除する。*/
    659637                syscall(sig_sem(cep->semid_lock));
    660638
    661                 /* パケットを送信する。*/
     639                /* パケットを送信する。*/
    662640                error = udp_send_data(cep, p_dstaddr, data, len, tmout);
    663641
    664642#ifdef UDP_CFG_EXTENTIONS
    665643
    666                 /* å¾
    667 ã¡ä¸­ã«ç™ºç”Ÿã—たエラーæƒ
    668 å ±ã‚’返す。*/
     644                /* 待ち中に発生したエラー情報を返す。*/
    669645                if (error == E_RLWAI)
    670646                        error = cep->error;
     
    681657
    682658/*
    683  *  udp_rcv_dat -- パケットの受信【標準機能】
     659 *  udp_rcv_dat -- パケットの受信【標準機能】
    684660 */
    685661
     
    693669        uint_t          ulen, uhoff;
    694670
    695         /* p_dstaddr または data が NULL 、len < 0 か、tmout が TMO_NBLK ならエラー */
     671        /* p_dstaddr または data が NULL 、len < 0 か、tmout が TMO_NBLK ならエラー */
    696672        if (p_dstaddr == NULL || data == NULL || len < 0 || tmout == TMO_NBLK)
    697673                return E_PAR;
    698674
    699         /* UDP 通信端点 ID をチェックする。*/
     675        /* UDP 通信端点 ID をチェックする。*/
    700676        if (!VALID_UDP_CEPID(cepid))
    701677                return E_ID;
    702678
    703         /* UDP 通信端点を得る。*/
     679        /* UDP 通信端点を得る。*/
    704680        cep = GET_UDP_CEP(cepid);
    705681
    706         /* UDP 通信端点をチェックする。*/
     682        /* UDP 通信端点をチェックする。*/
    707683        if (!VALID_UDP_CEP(cep))
    708684                return E_NOEXS;
    709685
    710         /* 通信端点をロックする。*/
     686        /* 通信端点をロックする。*/
    711687        syscall(wai_sem(cep->semid_lock));
    712688
    713689        if (cep->rcv_tskid != TA_NULL) {
    714690
    715                 /* 非ノンブロッキングコールでペンディング中 */
     691                /* 非ノンブロッキングコールでペンディング中 */
    716692                error = E_QOVR;
    717693
    718                 /* 通信端点をロックを解除する。*/
     694                /* 通信端点をロックを解除する。*/
    719695                syscall(sig_sem(cep->semid_lock));
    720696                }
    721697        else {
    722698
    723                 /* 現在のタスク識別子を記録する。*/
     699                /* 現在のタスク識別子を記録する。*/
    724700                get_tid(&(cep->rcv_tskid));
    725701
    726702#ifdef UDP_CFG_EXTENTIONS
    727703
    728                 /* å¾
    729 ã¡ä¸­ã«ç™ºç”Ÿã—たエラーæƒ
    730 å ±ã‚’リセットする。*/
     704                /* 待ち中に発生したエラー情報をリセットする。*/
    731705                cep->error = E_OK;
    732706
    733707#endif  /* of #ifdef UDP_CFG_EXTENTIONS */
    734708
    735                 /* 通信端点をロックを解除する。*/
     709                /* 通信端点をロックを解除する。*/
    736710                syscall(sig_sem(cep->semid_lock));
    737711
    738                 /* å
    739 ¥åŠ›ãŒã‚るまでå¾
    740 ã¤ã€‚*/
     712                /* 入力があるまで待つ。*/
    741713                if (cep->cb_netbuf != NULL) {
    742714
    743715                        /*
    744                          *  ここにくる場合は、コールバック関数の中から
    745                          *  udp_rcv_dat を呼び出していることになり、
    746                          *  すでにå
    747 ¥åŠ›æ¸ˆã¿ã§ã‚る。
     716                         *  ここにくる場合は、コールバック関数の中から
     717                         *  udp_rcv_dat を呼び出していることになり、
     718                         *  すでに入力済みである。
    748719                         */
    749720                        input = cep->cb_netbuf;
     
    754725#ifdef UDP_CFG_EXTENTIONS
    755726
    756                         /* å¾
    757 ã¡ä¸­ã«ç™ºç”Ÿã—たエラーæƒ
    758 å ±ã‚’返す。*/
     727                        /* 待ち中に発生したエラー情報を返す。*/
    759728                        if (error == E_RLWAI)
    760729                                error = cep->error;
     
    766735                        }
    767736
    768                 /* p_dstaddr を設定する。*/
     737                /* p_dstaddr を設定する。*/
    769738                uhoff = (uint_t)GET_UDP_HDR_OFFSET(input);
    770739                udph = GET_UDP_HDR(input, uhoff);
     
    772741                IN_COPY_TO_HOST(&p_dstaddr->ipaddr, &GET_IP_HDR(input)->src);
    773742
    774                 /* データをバッファに移す。*/
     743                /* データをバッファに移す。*/
    775744                ulen = ntohs(udph->ulen);
    776745                if (ulen - UDP_HDR_SIZE > len)
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_usrreq_nblk.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$
     
    128116
    129117/*
    130  *  IPv4 と IPv6 の切り替えマクロ
     118 *  IPv4 と IPv6 の切り替えマクロ
    131119 */
    132120
     
    146134
    147135/*
    148  *  TINET をライブラリ化しない場合は、å
    149 ¨ã¦ã®æ©Ÿèƒ½ã‚’
    150  *  オブジェクトファイルに出力するため、マクロを有効にする。
     136 *  TINET をライブラリ化しない場合は、全ての機能を
     137 *  オブジェクトファイルに出力するため、マクロを有効にする。
    151138 */
    152139
     
    165152
    166153/*
    167  *  udp_can_snd -- ペンディングしている送信のキャンセル
     154 *  udp_can_snd -- ペンディングしている送信のキャンセル
    168155 */
    169156
     
    171158udp_can_snd (T_UDP_CEP *cep, ER error)
    172159{
    173         if (cep->snd_p_dstaddr != NULL) {       /* ノンブロッキングコールでペンディング中 */
     160        if (cep->snd_p_dstaddr != NULL) {       /* ノンブロッキングコールでペンディング中 */
    174161                if (IS_PTR_DEFINED(cep->callback))
    175162
     
    188175                cep->snd_p_dstaddr = NULL;
    189176                }
    190         else if (cep->snd_tskid != TA_NULL) {   /* 非ノンブロッキングコールでペンディング中 */
     177        else if (cep->snd_tskid != TA_NULL) {   /* 非ノンブロッキングコールでペンディング中 */
    191178
    192179#ifdef UDP_CFG_EXTENTIONS
    193180
    194                 /* å¾
    195 ã¡ä¸­ã«ç™ºç”Ÿã—たエラーæƒ
    196 å ±ã‚’設定する。*/
     181                /* 待ち中に発生したエラー情報を設定する。*/
    197182                cep->error = error;
    198183
     
    202187                cep->snd_tskid = TA_NULL;
    203188                }
    204         else                                    /* どちらでもないならペンディングしていない */
     189        else                                    /* どちらでもないならペンディングしていない */
    205190                error = EV_NOPND;
    206191
     
    213198
    214199/*
    215  *  udp_can_rcv -- ペンディングしている受信のキャンセル
     200 *  udp_can_rcv -- ペンディングしている受信のキャンセル
    216201 */
    217202
     
    219204udp_can_rcv (T_UDP_CEP *cep, ER error)
    220205{
    221         if (cep->rcv_p_dstaddr != NULL) {       /* ノンブロッキングコールでペンディング中 */
     206        if (cep->rcv_p_dstaddr != NULL) {       /* ノンブロッキングコールでペンディング中 */
    222207                if (IS_PTR_DEFINED(cep->callback))
    223208
     
    236221                cep->rcv_p_dstaddr = NULL;
    237222                }
    238         else if (cep->rcv_tskid != TA_NULL) {   /* 非ノンブロッキングコールでペンディング中 */
     223        else if (cep->rcv_tskid != TA_NULL) {   /* 非ノンブロッキングコールでペンディング中 */
    239224
    240225#ifdef UDP_CFG_EXTENTIONS
    241226
    242                 /* å¾
    243 ã¡ä¸­ã«ç™ºç”Ÿã—たエラーæƒ
    244 å ±ã‚’設定する。*/
     227                /* 待ち中に発生したエラー情報を設定する。*/
    245228                cep->error = error;
    246229
     
    250233                cep->rcv_tskid = TA_NULL;
    251234                }
    252         else                                    /* どちらでもないならペンディングしていない */
     235        else                                    /* どちらでもないならペンディングしていない */
    253236                error = EV_NOPND;
    254237
     
    261244
    262245/*
    263  *  udp_snd_dat -- パケットの送信【標準機能】
     246 *  udp_snd_dat -- パケットの送信【標準機能】
    264247 */
    265248
     
    270253        ER              error;
    271254
    272         /* p_dstaddr または data が NULL ならエラー */
     255        /* p_dstaddr または data が NULL ならエラー */
    273256        if (p_dstaddr == NULL || data == NULL)
    274257                return E_PAR;
    275258
    276         /* データ長をチェックする。*/
     259        /* データ長をチェックする。*/
    277260        if (len < 0 || len + IP_HDR_SIZE + UDP_HDR_SIZE > IF_MTU)
    278261                return E_PAR;
    279262
    280         /* UDP 通信端点 ID をチェックする。*/
     263        /* UDP 通信端点 ID をチェックする。*/
    281264        if (!VALID_UDP_CEPID(cepid))
    282265                return E_ID;
    283266
    284         /* UDP 通信端点を得る。*/
     267        /* UDP 通信端点を得る。*/
    285268        cep = GET_UDP_CEP(cepid);
    286269
    287         /* UDP 通信端点をチェックする。*/
     270        /* UDP 通信端点をチェックする。*/
    288271        if (!VALID_UDP_CEP(cep))
    289272                return E_NOEXS;
    290273
    291274        /*
    292          *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
     275         *  自ポート番号が UDP_PORTANY なら、自動で割り当てる。
    293276         */
    294277        if (cep->myaddr.portno == UDP_PORTANY) {
     
    298281
    299282        /*
    300          * タイムアウトをチェックする。
     283         * タイムアウトをチェックする。
    301284         */
    302285
    303         if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
    304 
    305                 /* 通信端点をロックする。*/
     286        if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
     287
     288                /* 通信端点をロックする。*/
    306289                syscall(wai_sem(cep->semid_lock));
    307290
    308291                if (cep->snd_p_dstaddr != NULL) {
    309292
    310                         /* ノンブロッキングコールでペンディング中 */
     293                        /* ノンブロッキングコールでペンディング中 */
    311294                        error = E_QOVR;
    312295
    313                         /* 通信端点をロックを解除する。*/
     296                        /* 通信端点をロックを解除する。*/
    314297                        syscall(sig_sem(cep->semid_lock));
    315298                        }
    316299                else if (cep->snd_tskid != TA_NULL) {
    317300
    318                         /* 非ノンブロッキングコールでペンディング中 */
    319                         error = E_OBJ;
    320 
    321                         /* 通信端点をロックを解除する。*/
     301                        /* 非ノンブロッキングコールでペンディング中 */
     302                        error = E_OBJ;
     303
     304                        /* 通信端点をロックを解除する。*/
    322305                        syscall(sig_sem(cep->semid_lock));
    323306                        }
     
    328311                        cep->snd_len    = len;
    329312
    330                         /* 通信端点をロックを解除する。*/
     313                        /* 通信端点をロックを解除する。*/
    331314                        syscall(sig_sem(cep->semid_lock));
    332315
     
    336319                        }
    337320                }
    338         else {                          /* 非ノンブロッキングコール */
     321        else {                          /* 非ノンブロッキングコール */
    339322       
    340                 /* 通信端点をロックする。*/
     323                /* 通信端点をロックする。*/
    341324                syscall(wai_sem(cep->semid_lock));
    342325
    343326                if (cep->snd_p_dstaddr != NULL) {
    344327
    345                         /* ノンブロッキングコールでペンディング中 */
    346                         error = E_OBJ;
    347 
    348                         /* 通信端点をロックを解除する。*/
     328                        /* ノンブロッキングコールでペンディング中 */
     329                        error = E_OBJ;
     330
     331                        /* 通信端点をロックを解除する。*/
    349332                        syscall(sig_sem(cep->semid_lock));
    350333                        }
    351334                else if (cep->snd_tskid != TA_NULL) {
    352335
    353                         /* 非ノンブロッキングコールでペンディング中 */
     336                        /* 非ノンブロッキングコールでペンディング中 */
    354337                        error = E_QOVR;
    355338
    356                         /* 通信端点をロックを解除する。*/
     339                        /* 通信端点をロックを解除する。*/
    357340                        syscall(sig_sem(cep->semid_lock));
    358341                        }
    359342                else {
    360343
    361                         /* 現在のタスク識別子を記録する。*/
     344                        /* 現在のタスク識別子を記録する。*/
    362345                        get_tid(&(cep->snd_tskid));
    363346
    364                         /* 通信端点をロックを解除する。*/
    365                         syscall(sig_sem(cep->semid_lock));
    366 
    367                         /* パケットを送信する。*/
     347                        /* 通信端点をロックを解除する。*/
     348                        syscall(sig_sem(cep->semid_lock));
     349
     350                        /* パケットを送信する。*/
    368351                        error = udp_send_data(cep, p_dstaddr, data, len, tmout);
    369352                        }
     
    378361
    379362/*
    380  *  udp_rcv_dat -- パケットの受信【標準機能】
     363 *  udp_rcv_dat -- パケットの受信【標準機能】
    381364 */
    382365
     
    390373        uint_t          ulen, uhoff;
    391374
    392         /* p_dstaddr または data が NULL か、len < 0 ならエラー */
     375        /* p_dstaddr または data が NULL か、len < 0 ならエラー */
    393376        if (p_dstaddr == NULL || data == NULL || len < 0)
    394377                return E_PAR;
    395378
    396         /* UDP 通信端点 ID をチェックする。*/
     379        /* UDP 通信端点 ID をチェックする。*/
    397380        if (!VALID_UDP_CEPID(cepid))
    398381                return E_ID;
    399382
    400         /* UDP 通信端点を得る。*/
     383        /* UDP 通信端点を得る。*/
    401384        cep = GET_UDP_CEP(cepid);
    402385
    403         /* UDP 通信端点をチェックする。*/
     386        /* UDP 通信端点をチェックする。*/
    404387        if (!VALID_UDP_CEP(cep))
    405388                return E_NOEXS;
    406389
    407390        /*
    408          * タイムアウトをチェックする。
     391         * タイムアウトをチェックする。
    409392         */
    410393
    411         if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
    412 
    413                 /* 通信端点をロックする。*/
     394        if (tmout == TMO_NBLK) {        /* ノンブロッキングコール */
     395
     396                /* 通信端点をロックする。*/
    414397                syscall(wai_sem(cep->semid_lock));
    415398
    416399                if (cep->rcv_p_dstaddr != NULL)
    417400
    418                         /* ノンブロッキングコールでペンディング中 */
     401                        /* ノンブロッキングコールでペンディング中 */
    419402                        error = E_QOVR;
    420403
    421404                else if (cep->rcv_tskid != TA_NULL)
    422405
    423                         /* 非ノンブロッキングコールでペンディング中 */
     406                        /* 非ノンブロッキングコールでペンディング中 */
    424407                        error = E_OBJ;
    425408                else {
     
    430413                        }
    431414
    432                 /* 通信端点をロックを解除する。*/
     415                /* 通信端点をロックを解除する。*/
    433416                syscall(sig_sem(cep->semid_lock));
    434417                return error;
    435418                }
    436         else {                          /* 非ノンブロッキングコール */
    437 
    438                 /* 通信端点をロックする。*/
     419        else {                          /* 非ノンブロッキングコール */
     420
     421                /* 通信端点をロックする。*/
    439422                syscall(wai_sem(cep->semid_lock));
    440423
    441424                if (cep->rcv_p_dstaddr != NULL) {
    442425
    443                         /* ノンブロッキングコールでペンディング中 */
    444                         error = E_OBJ;
    445 
    446                         /* 通信端点をロックを解除する。*/
     426                        /* ノンブロッキングコールでペンディング中 */
     427                        error = E_OBJ;
     428
     429                        /* 通信端点をロックを解除する。*/
    447430                        syscall(sig_sem(cep->semid_lock));
    448431                        }
    449432                else if (cep->rcv_tskid != TA_NULL) {
    450433
    451                         /* 非ノンブロッキングコールでペンディング中 */
     434                        /* 非ノンブロッキングコールでペンディング中 */
    452435                        error = E_QOVR;
    453436
    454                         /* 通信端点をロックを解除する。*/
     437                        /* 通信端点をロックを解除する。*/
    455438                        syscall(sig_sem(cep->semid_lock));
    456439                        }
    457440                else {
    458441
    459                         /* 現在のタスク識別子を記録する。*/
     442                        /* 現在のタスク識別子を記録する。*/
    460443                        get_tid(&(cep->rcv_tskid));
    461444
    462                         /* 通信端点をロックを解除する。*/
    463                         syscall(sig_sem(cep->semid_lock));
    464 
    465                         /* å
    466 ¥åŠ›ãŒã‚るまでå¾
    467 ã¤ã€‚*/
     445                        /* 通信端点をロックを解除する。*/
     446                        syscall(sig_sem(cep->semid_lock));
     447
     448                        /* 入力があるまで待つ。*/
    468449                        if (cep->cb_netbuf != NULL) {
    469450
    470451                                /*
    471                                  *  ここにくる場合は、コールバック関数の中から
    472                                  *  udp_rcv_dat を呼び出していることになり、
    473                                  *  すでにå
    474 ¥åŠ›æ¸ˆã¿ã§ã‚る。
     452                                 *  ここにくる場合は、コールバック関数の中から
     453                                 *  udp_rcv_dat を呼び出していることになり、
     454                                 *  すでに入力済みである。
    475455                                 */
    476456                                input = cep->cb_netbuf;
     
    482462                                }
    483463
    484                         /* p_dstaddr を設定する。*/
     464                        /* p_dstaddr を設定する。*/
    485465                        uhoff = (uint_t)GET_UDP_HDR_OFFSET(input);
    486466                        udph = GET_UDP_HDR(input, uhoff);
     
    488468                        IN_COPY_TO_HOST(&p_dstaddr->ipaddr, &GET_IP_HDR(input)->src);
    489469
    490                         /* データをバッファに移す。*/
     470                        /* データをバッファに移す。*/
    491471                        ulen = ntohs(udph->ulen);
    492472                        if (ulen - UDP_HDR_SIZE > len)
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/udp_var.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    8472
    8573/*
    86  *  UDP ヘッダ・ペイロードアクセスマクロ
     74 *  UDP ヘッダ・ペイロードアクセスマクロ
    8775 */
    8876
     
    10088
    10189/*
    102  *  TINET 1.1 との互換性のための定義
     90 *  TINET 1.1 との互換性のための定義
    10391 */
    10492
     
    113101
    114102/*
    115  *  コールバック関数の定義
     103 *  コールバック関数の定義
    116104 */
    117105
     
    119107
    120108/*
    121  *  UDP 通信端点
    122  */
    123 
    124 
    125 /*
    126  *  IPv4 UDP 通信端点
     109 *  UDP 通信端点
     110 */
     111
     112
     113/*
     114 *  IPv4 UDP 通信端点
    127115 */
    128116typedef struct t_udp4_cep {
    129117
    130118        /*
    131          * ITRON TCP/IP API、TCP 通信端点と同じメンバ
    132          */
    133         ATR             cepatr;         /* UDP 通信端点属性               */
    134         T_IPV4EP        myaddr;         /* 自分のアドレス                */
    135         t_udp_callback  callback;       /* コールバック関数             */
    136 
    137         /*
    138          * TINET 独自のメンバ
    139          */
    140         uint16_t        flags;          /* 通信端点フラグ                */
    141         ID              semid_lock;     /* 通信端点ロック                */
    142         ID              snd_tskid;      /* 送信タスク識別子             */
    143         ID              rcv_tskid;      /* 受信タスク識別子             */
    144         ID              rcvqid;         /* 非コールバック用受信キュー識別子*/
    145         T_NET_BUF       *cb_netbuf;     /* コールバック用受信ネットワークバッファ*/
     119         * ITRON TCP/IP API、TCP 通信端点と同じメンバ
     120         */
     121        ATR             cepatr;         /* UDP 通信端点属性           */
     122        T_IPV4EP        myaddr;         /* 自分のアドレス              */
     123        t_udp_callback  callback;       /* コールバック関数             */
     124
     125        /*
     126         * TINET 独自のメンバ
     127         */
     128        uint16_t        flags;          /* 通信端点フラグ              */
     129        ID              semid_lock;     /* 通信端点ロック              */
     130        ID              snd_tskid;      /* 送信タスク識別子             */
     131        ID              rcv_tskid;      /* 受信タスク識別子             */
     132        ID              rcvqid;         /* 非コールバック用受信キュー識別子*/
     133        T_NET_BUF       *cb_netbuf;     /* コールバック用受信ネットワークバッファ*/
    146134
    147135#ifdef UDP_CFG_NON_BLOCKING
    148136
    149         T_IPV4EP        *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/
    150         T_IPV4EP        *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/
    151         void            *snd_data;      /* 送信データ領域のå
    152 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹        */
    153         int_t           snd_len;        /* 送信データ領域の長さ               */
    154         void            *rcv_data;      /* 受信データ領域のå
    155 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹        */
    156         int_t           rcv_len;        /* 受信データ領域の長さ               */
     137        T_IPV4EP        *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/
     138        T_IPV4EP        *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/
     139        void            *snd_data;      /* 送信データ領域の先頭アドレス       */
     140        int_t           snd_len;        /* 送信データ領域の長さ           */
     141        void            *rcv_data;      /* 受信データ領域の先頭アドレス       */
     142        int_t           rcv_len;        /* 受信データ領域の長さ           */
    157143
    158144#endif  /* of #ifdef UDP_CFG_NON_BLOCKING */
    159145
    160146#ifdef UDP_CFG_EXTENTIONS
    161         ER              error;          /* å¾
    162 ã¡ä¸­ã«ç™ºç”Ÿã—たエラー  */
     147        ER              error;          /* 待ち中に発生したエラー  */
    163148#endif
    164149
     
    170155
    171156/*
    172  *  IPv6 UDP 通信端点
     157 *  IPv6 UDP 通信端点
    173158 */
    174159
     
    176161
    177162        /*
    178          * ITRON TCP/IP API、TCP 通信端点と同じメンバ
    179          */
    180         ATR             cepatr;         /* UDP 通信端点属性               */
    181         T_IPV6EP        myaddr;         /* 自分のアドレス                */
    182         t_udp_callback  callback;       /* コールバック関数             */
    183 
    184         /*
    185          * TINET 独自のメンバ
    186          */
    187         uint16_t        flags;          /* 通信端点フラグ                */
    188         ID              semid_lock;     /* 通信端点ロック                */
    189         ID              snd_tskid;      /* 送信タスク識別子             */
    190         ID              rcv_tskid;      /* 受信タスク識別子             */
    191         ID              rcvqid;         /* 非コールバック用受信キュー識別子*/
    192         T_NET_BUF       *cb_netbuf;     /* コールバック用受信ネットワークバッファ*/
     163         * ITRON TCP/IP API、TCP 通信端点と同じメンバ
     164         */
     165        ATR             cepatr;         /* UDP 通信端点属性           */
     166        T_IPV6EP        myaddr;         /* 自分のアドレス              */
     167        t_udp_callback  callback;       /* コールバック関数             */
     168
     169        /*
     170         * TINET 独自のメンバ
     171         */
     172        uint16_t        flags;          /* 通信端点フラグ              */
     173        ID              semid_lock;     /* 通信端点ロック              */
     174        ID              snd_tskid;      /* 送信タスク識別子             */
     175        ID              rcv_tskid;      /* 受信タスク識別子             */
     176        ID              rcvqid;         /* 非コールバック用受信キュー識別子*/
     177        T_NET_BUF       *cb_netbuf;     /* コールバック用受信ネットワークバッファ*/
    193178
    194179#ifdef UDP_CFG_NON_BLOCKING
    195180
    196         T_IPV6EP        *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/
    197         T_IPV6EP        *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/
    198         void            *snd_data;      /* 送信データ領域のå
    199 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹        */
    200         int_t           snd_len;        /* 送信データ領域の長さ               */
    201         void            *rcv_data;      /* 受信データ領域のå
    202 ˆé ­ã‚¢ãƒ‰ãƒ¬ã‚¹        */
    203         int_t           rcv_len;        /* 受信データ領域の長さ               */
     181        T_IPV6EP        *snd_p_dstaddr; /* 送信相手のアドレスへのポインタ*/
     182        T_IPV6EP        *rcv_p_dstaddr; /* 受信相手のアドレスへのポインタ*/
     183        void            *snd_data;      /* 送信データ領域の先頭アドレス       */
     184        int_t           snd_len;        /* 送信データ領域の長さ           */
     185        void            *rcv_data;      /* 受信データ領域の先頭アドレス       */
     186        int_t           rcv_len;        /* 受信データ領域の長さ           */
    204187
    205188#endif  /* of #ifdef UDP_CFG_NON_BLOCKING */
    206189
    207190#ifdef UDP_CFG_EXTENTIONS
    208         ER              error;          /* å¾
    209 ã¡ä¸­ã«ç™ºç”Ÿã—たエラー  */
     191        ER              error;          /* 待ち中に発生したエラー  */
    210192#endif
    211193
     
    217199
    218200/*
    219  *  UDP 通信端点フラグ
    220  */
    221 
    222 #define UDP_CEP_FLG_POST_OUTPUT UINT_C(0x0200)  /* 送信を開始する。             */
    223 #define UDP_CEP_FLG_DYNAMIC     UINT_C(0x0400)  /* 動的生成・削除可能通信端点。   */
    224 #define UDP_CEP_FLG_VALID       UINT_C(0x0800)  /* 生成済みで有効な通信端点。      */
    225 
    226 /*
    227  *  オブジェクト ID の最小値の定義
    228  */
    229 
    230 #define TMIN_UDP_CEPID          1       /* UDP 通信端点 ID の最小値 */
     201 *  UDP 通信端点フラグ
     202 */
     203
     204#define UDP_CEP_FLG_POST_OUTPUT UINT_C(0x0200)  /* 送信を開始する。             */
     205#define UDP_CEP_FLG_DYNAMIC     UINT_C(0x0400)  /* 動的生成・削除可能通信端点。       */
     206#define UDP_CEP_FLG_VALID       UINT_C(0x0800)  /* 生成済みで有効な通信端点。        */
     207
     208/*
     209 *  オブジェクト ID の最小値の定義
     210 */
     211
     212#define TMIN_UDP_CEPID          1       /* UDP 通信端点 ID の最小値 */
    231213
    232214#ifdef SUPPORT_MIB
    233215
    234216/*
    235  *  SNMP の 管理æƒ
    236 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     217 *  SNMP の 管理情報ベース (MIB)
    237218 */
    238219
     
    247228
    248229/*
    249  *  関数シミュレーションマクロ
     230 *  関数シミュレーションマクロ
    250231 */
    251232
     
    265246
    266247/*
    267  *  å
    268 ¨åŸŸå¤‰æ•°
     248 *  全域変数
    269249 */
    270250
     
    279259
    280260/*
    281  *  TINET 1.3 との互換性のための定義
     261 *  TINET 1.3 との互換性のための定義
    282262 */
    283263
     
    286266
    287267/*
    288  *  関数
     268 *  関数
    289269 */
    290270
     
    297277extern ER udp_alloc_port (T_UDP_CEP *cep, uint16_t portno);
    298278
    299 /* ノンブロッキングコールを行う場合に組み込むタスク */
     279/* ノンブロッキングコールを行う場合に組み込むタスク */
    300280
    301281extern void     udp_output_task(intptr_t exinf);
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8270
    8371/*
    84  *  RFC2402 認証ヘッダ
     72 *  RFC2402 認証ヘッダ
    8573 */
    8674
     
    8876        uint8_t         next;   /* Next Header                          */
    8977        uint8_t         len;   
    90         /* 4 オクテット単位の長さ。ただし、データ長 + 1 がå
    91 ¥ã‚‹ã€‚ */
     78        /* 4 オクテット単位の長さ。ただし、データ長 + 1 が入る。       */
    9279        uint16_t        reserved;
    9380        uint32_t        spi;    /* Security Parameter Index (SPI)       */
    94         uint32_t        seq;    /* シーケンス番号                        */
     81        uint32_t        seq;    /* シーケンス番号                      */
    9582        } __attribute__((packed, aligned(2)))T_IP6_AH_HDR;
    9683
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah6.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8270
    8371/*
    84  *  関数
     72 *  関数
    8573 */
    8674
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ah_input.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$
     
    116104
    117105/*
    118  *  ah6_input -- 認証ヘッダのå
    119 ¥åŠ›é–¢æ•°
     106 *  ah6_input -- 認証ヘッダの入力関数
    120107 *
    121  *    本実è£
    122 ã§ã¯ã€ãƒ‡ãƒ¼ã‚¿ã‚°ãƒ©ãƒ ã‚’破棄する。
     108 *    本実装では、データグラムを破棄する。
    123109 */
    124110
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/dest6.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$
     
    114102
    115103/*
    116  *  dest6_input -- 終点オプションヘッダのå
    117 ¥åŠ›é–¢æ•°
     104 *  dest6_input -- 終点オプションヘッダの入力関数
    118105 *
    119  *    本実è£
    120 ã§ã¯ã€ãƒ‘ディング以外のオプションをå
    121 ¨ã¦æœªçŸ¥ã‚ªãƒ—ションとして処理する。
     106 *    本実装では、パディング以外のオプションを全て未知オプションとして処理する。
    122107 */
    123108
     
    131116        uint8_t         *opt;
    132117
    133         /* ネットワークバッファの残りの長さをチェックする。*/
     118        /* ネットワークバッファの残りの長さをチェックする。*/
    134119        if (input->len - off < sizeof(T_IP6_DEST_HDR))
    135120                goto buf_rel;
     
    138123        len    = (desth->len + 1) << 3;
    139124
    140         /* 終点オプションヘッダの長さをチェックする。*/
     125        /* 終点オプションヘッダの長さをチェックする。*/
    141126        if (input->len < off + len)
    142127                goto buf_rel;
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;charset=UTF-8
    r270 r321  
    66 *  Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, JAPAN
    77 *
    8  *  上記著作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã® (1)~(4) の条件か,Free Software Foundation
    10  *  によってå
    11 ¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
    12  *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
    13  *  を改変したものを含む.以下同じ)を使用・複製・改変・再é
    14 å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
    15  *  利用と呼ぶ)することを無償で許諾する.
    16  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    17  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    18  *      スコード中に含まれていること.
    19  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    20  *      用できる形で再é
    21 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    22 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    23  *      è€
    24 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    25  *      の無保証規定を掲載すること.
    26  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    27  *      用できない形で再é
    28 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®æ¡ä»¶ã‚’満たすこと.
    29  *    (a) 再é
    30 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    31 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    32  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    33  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    34  *      害からも,上記著作権è€
    35 ãŠã‚ˆã³TOPPERSプロジェクトをå
    36 è²¬ã™ã‚‹ã“と.
     8 *  上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
     9 *  によって公表されている GNU General Public License の Version 2 に記
     10 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     11 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     12 *  利用と呼ぶ)することを無償で許諾する.
     13 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     14 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     15 *      スコード中に含まれていること.
     16 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     17 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     18 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     19 *      の無保証規定を掲載すること.
     20 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     21 *      用できない形で再配布する場合には,次の条件を満たすこと.
     22 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     23 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     24 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     25 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3726 *
    38  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    39 ãŠ
    40  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    41  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    42  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     27 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     28 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     29 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     30 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4331 *
    4432 *  @(#) $Id$
     
    8371
    8472/*
    85  *  RFC2406 暗号化ヘッダ
     73 *  RFC2406 暗号化ヘッダ
    8674 */
    8775
    8876typedef struct t_esp_hdr {
    8977        int32_t spi;    /* Security Parameter Index (SPI)       */
    90         int32_t seq;    /* シーケンス番号                        */
     78        int32_t seq;    /* シーケンス番号                      */
    9179        } __attribute__((packed, aligned(2)))T_ESP_HDR;
    9280
    9381typedef struct t_esp_tail {
    94         int8_t  padlen; /* パディング長                           */     
     82        int8_t  padlen; /* パディング長                               */     
    9583        int8_t  next;   /* Next Header                          */
    9684        } __attribute__((packed, aligned(2)))T_ESP_TAIL;
     
    127115
    128116/*
    129  * 関数
     117 * 関数
    130118 */
    131119
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp6.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8270
    8371/*
    84  *  関数
     72 *  関数
    8573 */
    8674
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/esp_input.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$
     
    118106
    119107/*
    120  *  esp6_input -- 暗号化ヘッダのå
    121 ¥åŠ›é–¢æ•°
     108 *  esp6_input -- 暗号化ヘッダの入力関数
    122109 *
    123  *    本実è£
    124 ã§ã¯ã€ãƒ‡ãƒ¼ã‚¿ã‚°ãƒ©ãƒ ã‚’破棄する。
     110 *    本実装では、データグラムを破棄する。
    125111 */
    126112
     
    129115{
    130116#if 0
    131         *nextp = <T_ESP_TAIL の next フィールドの位置(IPv6 ヘッダのå
    132 ˆé ­ã‹ã‚‰ã®ã‚ªãƒ•ã‚»ãƒƒãƒˆï¼‰>;
    133         *offp  = <次ヘッダの位置(input->buf からのオフセット)>;
     117        *nextp = <T_ESP_TAIL の next フィールドの位置(IPv6 ヘッダの先頭からのオフセット)>;
     118        *offp  = <次ヘッダの位置(input->buf からのオフセット)>;
    134119#endif
    135120        syscall(rel_net_buf(*inputp));
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/frag6.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$
     
    121109
    122110/*
    123  *  データグラム再構成キューé
    124 åˆ—
     111 *  データグラム再構成キュー配列
    125112 */
    126113
     
    129116
    130117/*
    131  *  ip6_get_frag_queue -- データグラム再構成キューを獲得する。
     118 *  ip6_get_frag_queue -- データグラム再構成キューを獲得する。
    132119 */
    133120
     
    139126
    140127/*
    141  *  frag6_free_queue -- データグラム再構成キューを解放する。
     128 *  frag6_free_queue -- データグラム再構成キューを解放する。
    142129 *
    143  *    注意: データグラム再構成キューé
    144 åˆ—をロックしてから呼び出すこと。
     130 *    注意: データグラム再構成キュー配列をロックしてから呼び出すこと。
    145131 */
    146132
     
    162148
    163149/*
    164  *  frag6_timer -- データグラム再構成管理タイマ
     150 *  frag6_timer -- データグラム再構成管理タイマ
    165151 */
    166152
     
    184170
    185171                                        /*
    186                                          *  å
    187 ˆé ­ã®æ–­ç‰‡ã®ã‚ªãƒ•ã‚»ãƒƒãƒˆãŒ 0 の時のみ
    188                                          *  ICMPv6 エラーメッセージを送信する。
     172                                         *  先頭の断片のオフセットが 0 の時のみ
     173                                         *  ICMPv6 エラーメッセージを送信する。
    189174                                         */
    190175
    191                                         /* å
    192 ˆé ­ã®æ–­ç‰‡ã‚’データグラム再構成キューから外す。*/
     176                                        /* 先頭の断片をデータグラム再構成キューから外す。*/
    193177                                        ip6_frag_queue[ix] = qip6h->next_frag;
    194178
    195                                         /* あてå
    196 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’å
    197 ƒã«æˆ»ã™ã€‚*/
     179                                        /* あて先アドレスを元に戻す。*/
    198180                                        GET_IP6_HDR(frag)->dst = ip6_frag_dest[ix];
    199181
    200                                         /* ICMPv6 エラーメッセージを送信する。*/
     182                                        /* ICMPv6 エラーメッセージを送信する。*/
    201183                                        icmp6_error(frag, ICMP6_TIME_EXCEEDED,
    202184                                                          ICMP6_TIME_EXCEED_REASSEMBLY, 0);
    203185                                        }
    204186
    205                                 /* データグラム再構成キューを解放する。*/
     187                                /* データグラム再構成キューを解放する。*/
    206188                                NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_IN_TMOUT], 1);
    207189                                NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_IN_DROP], 1);
     
    216198
    217199/*
    218  *  frag6_input -- 断片ヘッダのå
    219 ¥åŠ›é–¢æ•°
     200 *  frag6_input -- 断片ヘッダの入力関数
    220201 */
    221202
     
    241222#endif  /* #ifdef IP6_CFG_FRAGMENT */
    242223
    243         /* ネットワークバッファの残りの長さをチェックする。*/
     224        /* ネットワークバッファの残りの長さをチェックする。*/
    244225        if (input->len - off < sizeof(T_IP6_FRAG_HDR))
    245226                goto buf_rel;
    246227
    247228        /*
    248          *  巨大ペイロードオプションと断片ヘッダを同時に使用することは
    249          *  できない。ペイロード長がが 0 なら、巨大ペイロードオプションが
    250          *  指定されていることになるので ICMP でエラーを送信è€
    251 ã«
    252          *  通知する。
     229         *  巨大ペイロードオプションと断片ヘッダを同時に使用することは
     230         *  できない。ペイロード長がが 0 なら、巨大ペイロードオプションが
     231         *  指定されていることになるので ICMP でエラーを送信者に
     232         *  通知する。
    253233         */
    254234        ip6h = GET_IP6_HDR(input);
     
    262242
    263243        /*
    264          *  オフセットが 0 で、最終フラグメントであれば、
    265          *  分割不要のデータグラムなので、
    266          *  次ヘッダを指す変数を調整して終了する。
     244         *  オフセットが 0 で、最終フラグメントであれば、
     245         *  分割不要のデータグラムなので、
     246         *  次ヘッダを指す変数を調整して終了する。
    267247         */
    268248        ip6fh = (T_IP6_FRAG_HDR *)(input->buf + off);
     
    276256
    277257        /*
    278          *  ペイロード長をチェックする。
     258         *  ペイロード長をチェックする。
    279259         */
    280260        if ((ip6fh->off_flag & IP6F_MORE_FRAG) &&
     
    291271
    292272        /*
    293          *  データグラム再構成キューé
    294 åˆ—から、対応するエントリを探す。
     273         *  データグラム再構成キュー配列から、対応するエントリを探す。
    295274         */
    296275        for (ix = NUM_IP6_FRAG_QUEUE; ix -- > 0; ) {
     
    310289
    311290                /*
    312                  *  断片の正当性をチェックする。
     291                 *  断片の正当性をチェックする。
    313292                 */
    314293                unfraglen = 0;
     
    317296
    318297                        /*
    319                          *  å
    320 ¥åŠ›ã—た断片がå
    321 ˆé ­ã®æ–­ç‰‡
    322                          *  分割できない部分の長さ unfraglen を計算する。
     298                         *  入力した断片が先頭の断片
     299                         *  分割できない部分の長さ unfraglen を計算する。
    323300                         */
    324301                        unfraglen = (off - IF_HDR_SIZE) - sizeof(T_IP6_HDR);
     
    352329
    353330                /*
    354                  *  ip6fq == NULL であれば、対応するエントリは無いので、
    355                  *  データグラム再構成キューé
    356 åˆ—に、エントリを追加する。
     331                 *  ip6fq == NULL であれば、対応するエントリは無いので、
     332                 *  データグラム再構成キュー配列に、エントリを追加する。
    357333                 */
    358334                for (ix = NUM_IP6_FRAG_QUEUE; ix -- > 0; ) {
    359335
    360                         /* 空きエントリを探す。*/
     336                        /* 空きエントリを探す。*/
    361337                        if (ip6_frag_queue[ix] == NULL) {
    362338                                ip6fq = &ip6_frag_queue[ix];
     
    366342
    367343                /*
    368                  *  ip6fq == NULL であれば、空きエントリが無いので、
    369                  *  タイムアウト(hlim)が短いエントリを開放する。
     344                 *  ip6fq == NULL であれば、空きエントリが無いので、
     345                 *  タイムアウト(hlim)が短いエントリを開放する。
    370346                 */
    371347                if (ip6fq == NULL) {
     
    385361
    386362                /*
    387                  *  エントリを設定する。
     363                 *  エントリを設定する。
    388364                 */
    389365                *ip6fq = input;
     
    398374
    399375                /*
    400                  *  断片の正当性をチェックする。
     376                 *  断片の正当性をチェックする。
    401377                 */
    402378                unfraglen = 0;
     
    405381
    406382                        /*
    407                          *  データグラム再構成キューの最初の断片がå
    408 ˆé ­ã®æ–­ç‰‡
    409                          *  分割できない部分の長さ unfraglen を計算する。
     383                         *  データグラム再構成キューの最初の断片が先頭の断片
     384                         *  分割できない部分の長さ unfraglen を計算する。
    410385                         */
    411386                        unfraglen = (GET_QIP6_HDR(*ip6fq)->foff - IF_HDR_SIZE) - sizeof(T_IP6_HDR);
     
    416391
    417392                        /*
    418                          *  å
    419 ¥åŠ›ã—た断片がå
    420 ˆé ­ã®æ–­ç‰‡
    421                          *  分割できない部分の長さ unfraglen を計算する。
     393                         *  入力した断片が先頭の断片
     394                         *  分割できない部分の長さ unfraglen を計算する。
    422395                         */
    423396                        unfraglen = (off - IF_HDR_SIZE) - sizeof(T_IP6_HDR);
     
    453426
    454427                        /*
    455                          *  å
    456 ¥åŠ›ã—た断片がå
    457 ˆé ­ã®æ–­ç‰‡
    458                          *  データグラム再構成キューの最後の断片が、
    459                          *  データグラムの最大長をè¶
    460 ãˆã¦ã„ないかチェックする。
    461                          */
    462 
    463                         /* 最後の断片を探索する。*/
     428                         *  入力した断片が先頭の断片
     429                         *  データグラム再構成キューの最後の断片が、
     430                         *  データグラムの最大長を超えていないかチェックする。
     431                         */
     432
     433                        /* 最後の断片を探索する。*/
    464434                        next = *ip6fq;
    465435                        while ((qip6h = GET_QIP6_HDR(next))->next_frag != NULL)
    466436                                next = qip6h->next_frag;
    467437
    468                         /* 最後の断片のオフセットと断片サイズを計算する。*/
     438                        /* 最後の断片のオフセットと断片サイズを計算する。*/
    469439                        qip6fh = (T_IP6_FRAG_HDR *)(next->buf + qip6h->foff);
    470440                        fragoff = ntohs(qip6fh->off_flag & IP6F_OFF_MASK);
     
    473443
    474444                                /*
    475                                  *  データグラムの最大長をè¶
    476 ãˆã¦ã„る場合は、
    477                                  *  データグラム再構成キューå
    478 ¨ä½“を破棄する。
     445                                 *  データグラムの最大長を超えている場合は、
     446                                 *  データグラム再構成キュー全体を破棄する。
    479447                                 */
    480448                                frag6_free_queue(ip6fq);
     
    484452                        }
    485453
    486                 /* ECN の正当性チェックは未実è£
    487  */
    488 
    489                 /*
    490                  *  断片をエントリに挿å
    491 ¥ã™ã‚‹ã€‚
    492                  *  データグラム再構成キューから、å
    493 ¥åŠ›ã—た断片より前の断片を探索する。
     454                /* ECN の正当性チェックは未実装 */
     455
     456                /*
     457                 *  断片をエントリに挿入する。
     458                 *  データグラム再構成キューから、入力した断片より前の断片を探索する。
    494459                 */
    495460                prev = NULL;
     
    505470
    506471                /*
    507                  *  prev は、å
    508 ¥åŠ›ã—た断片より前の断片。ただし NULL の場合は、
    509                  *  å
    510 ¥åŠ›ã—た断片がデータグラム再構成キューの中で最も前の断片。
    511                  *  next は、å
    512 ¥åŠ›ã—た断片より後の断片。ただし NULL の場合は、
    513                  *  å
    514 ¥åŠ›ã—た断片がデータグラム再構成キューの中で最も後の断片。
     472                 *  prev は、入力した断片より前の断片。ただし NULL の場合は、
     473                 *  入力した断片がデータグラム再構成キューの中で最も前の断片。
     474                 *  next は、入力した断片より後の断片。ただし NULL の場合は、
     475                 *  入力した断片がデータグラム再構成キューの中で最も後の断片。
    515476                 */
    516477                fragoff = ntohs(ip6fh->off_flag & IP6F_OFF_MASK);
     
    518479
    519480                        /*
    520                          *  前の断片と、å
    521 ¥åŠ›ã—た断片が重なっていないかチェックする。
     481                         *  前の断片と、入力した断片が重なっていないかチェックする。
    522482                         *
    523483                         *    qfragoff
     
    542502                        if (diff > 0) {
    543503
    544                                 /* 重なっていれば、å
    545 ¥åŠ›ã—た断片を破棄して終了する。*/
     504                                /* 重なっていれば、入力した断片を破棄して終了する。*/
    546505                                syscall(rel_net_buf(input));
    547506                                goto sig_ret;
     
    552511
    553512                        /*
    554                          *  後の断片と、å
    555 ¥åŠ›ã—た断片が重なっていないかチェックする。
     513                         *  後の断片と、入力した断片が重なっていないかチェックする。
    556514                         *
    557515                         *    fragoff
     
    576534                        if (diff > 0) {
    577535
    578                                 /* 重なっていれば、å
    579 ¥åŠ›ã—た断片を破棄して終了する。*/
     536                                /* 重なっていれば、入力した断片を破棄して終了する。*/
    580537                                syscall(rel_net_buf(input));
    581538                                goto sig_ret;
     
    583540                        }
    584541
    585                 /* å
    586 ¥åŠ›ã—た断片を設定する。*/
     542                /* 入力した断片を設定する。*/
    587543                qip6h  = GET_QIP6_HDR(input);
    588544                qip6h->foff = off;
     
    598554
    599555                /*
    600                  *  å
    601 ¨ã¦ã®æ–­ç‰‡ã‚’受信したかチェックする。
     556                 *  全ての断片を受信したかチェックする。
    602557                 */
    603558                plen = 0;
     
    608563                        if (ntohs(qip6fh->off_flag & IP6F_OFF_MASK) != plen) {
    609564
    610                                 /* 断片が連続していない。*/
     565                                /* 断片が連続していない。*/
    611566                                goto sig_ret;
    612567                                }
     
    616571                if (ntohs(qip6fh->off_flag & IP6F_MORE_FRAG) != 0) {
    617572
    618                         /* 最後の断片を受信していない。*/
     573                        /* 最後の断片を受信していない。*/
    619574                        goto sig_ret;
    620575                        }
    621576
    622577                /*
    623                  *  å
    624 ¨ã¦ã®æ–­ç‰‡ã‚’受信したので、再構成する。
    625                  */
    626 
    627                 /* ネットワークバッファを獲得する。*/
     578                 *  全ての断片を受信したので、再構成する。
     579                 */
     580
     581                /* ネットワークバッファを獲得する。*/
    628582                qip6h  = GET_QIP6_HDR(*ip6fq);
    629583                qip6fh = (T_IP6_FRAG_HDR *)((*ip6fq)->buf + qip6h->foff);
     
    631585
    632586                        /*
    633                          *  断片ヘッダの直前のヘッダの NEXT フィールドのアドレスを獲得し、
    634                          *  å
    635 ƒã«æˆ»ã™ã€‚
     587                         *  断片ヘッダの直前のヘッダの NEXT フィールドのアドレスを獲得し、
     588                         *  元に戻す。
    636589                         */
    637590                        if ((prev_next = ip6_get_prev_hdr(*ip6fq, qip6h->foff)) == NULL) {
     
    646599
    647600                        /*
    648                          *  IPv6 ヘッダと分割できない部分を
    649                          *  データグラム再構成キューの中のå
    650 ˆé ­ã®æ–­ç‰‡ã‹ã‚‰ã‚³ãƒ”ーする。
     601                         *  IPv6 ヘッダと分割できない部分を
     602                         *  データグラム再構成キューの中の先頭の断片からコピーする。
    651603                         */
    652604                        memcpy(input->buf, (*ip6fq)->buf, qip6h->foff);
    653605
    654                         /* 送信å
    655 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’å
    656 ƒã«æˆ»ã™ã€‚*/
     606                        /* 送信先アドレスを元に戻す。*/
    657607                        ip6h = GET_IP6_HDR(input);
    658608                        ip6h->dst = ip6_frag_dest[ip6fq - ip6_frag_queue];
    659609
    660                         /* offp を、再構成した断片のå
    661 ˆé ­ã«è¨­å®šã™ã‚‹ã€‚*/
     610                        /* offp を、再構成した断片の先頭に設定する。*/
    662611                        *offp = qip6h->foff;
    663612
    664                         /* ネットワークバッファ長を設定する。*/
     613                        /* ネットワークバッファ長を設定する。*/
    665614                        input->len = plen + qip6h->foff;
    666615
    667616                        /*
    668                          *  å
    669 ¨ã¦ã®æ–­ç‰‡ã‚’コピーする。
     617                         *  全ての断片をコピーする。
    670618                         */
    671619                        frag = *ip6fq;
     
    680628                                }
    681629
    682                         /* ペイロード長を設定する。*/
     630                        /* ペイロード長を設定する。*/
    683631                        ip6h->plen = htons(plen);
    684632
     
    692640                        }
    693641
    694                 /* データグラム再構成キューを解放する。*/
     642                /* データグラム再構成キューを解放する。*/
    695643                frag6_free_queue(ip6fq);
    696644                }
     
    703651
    704652        /*
    705          *  データグラムの分割・再構成行わない場合は、å
    706 ¨æ–­ç‰‡ã‚’破棄し、
    707          *  最後の断片を受信したとき、
    708          *  ICMP エラーを送信è€
    709 ã«é€šçŸ¥ã™ã‚‹ã€‚
     653         *  データグラムの分割・再構成行わない場合は、全断片を破棄し、
     654         *  最後の断片を受信したとき、
     655         *  ICMP エラーを送信者に通知する。
    710656         */
    711657        if ((ip6fh->off_flag & IP6F_MORE_FRAG) == 0) {
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/icmp6.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$
     
    155143
    156144/*
    157  *  変数
     145 *  変数
    158146 */
    159147
     
    161149
    162150/*
    163  *  SNMP の 管理æƒ
    164 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     151 *  SNMP の 管理情報ベース (MIB)
    165152 */
    166153
     
    170157
    171158/*
    172  *  icmp6_output -- ICMP6 パケットを送信する。
     159 *  icmp6_output -- ICMP6 パケットを送信する。
    173160 */
    174161
     
    182169
    183170        /*
    184          *  宛å
    185 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«ãµã•ã‚ã—い送信å
    186 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’、
    187          *  ネットワークインタフェースから探索して利用する。
     171         *  宛先アドレスにふさわしい送信元アドレスを、
     172         *  ネットワークインタフェースから探索して利用する。
    188173         */
    189174        ip6h = GET_IP6_HDR(output);
     
    197182        icmp6h = GET_ICMP6_HDR(output, off);
    198183
    199         /* チェックサムを計算する。*/
     184        /* チェックサムを計算する。*/
    200185        icmp6h->sum = 0;
    201186        icmp6h->sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)icmp6h - output->buf,
    202187                                ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE));
    203188
    204         /* 送信する。*/
     189        /* 送信する。*/
    205190        NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_OUT_OCTETS],
    206191                       output->len - GET_IF_IP6_HDR_SIZE(output));
     
    211196
    212197/*
    213  *  icmp6_echo_request -- エコー要求を受信したときの処理
     198 *  icmp6_echo_request -- エコー要求を受信したときの処理
    214199 */
    215200
     
    229214
    230215        /*
    231          *  IPv6 ヘッダと ICMPv6 ヘッダ間の拡張ヘッダを除去する。
     216         *  IPv6 ヘッダと ICMPv6 ヘッダ間の拡張ヘッダを除去する。
    232217         */
    233218        diff = off - IF_IP6_HDR_SIZE;
    234219        if (diff > 0) {
    235                 /* ICMPv6 ヘッダを前に詰める。*/
     220                /* ICMPv6 ヘッダを前に詰める。*/
    236221                memmove(input->buf + IF_IP6_HDR_SIZE, input->buf + off, input->len - off);
    237222                off = IF_IP6_HDR_SIZE;
    238223
    239                 /* ペイロード長を調整する。*/
     224                /* ペイロード長を調整する。*/
    240225                ip6h->plen  = htons(ntohs(ip6h->plen) - diff);
    241226                input->len -= diff;
     
    250235
    251236        /*
    252          *  メッセージの型をエコー要求 (128) から
    253          *  エコー応答 (129) に変更して送り返す。
     237         *  メッセージの型をエコー要求 (128) から
     238         *  エコー応答 (129) に変更して送り返す。
    254239         */
    255240        icmp6h->type = ICMP6_ECHO_REPLY;
    256241
    257         /* IPv6 ヘッダの発信å
    258 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã¨å®›å
    259 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’å
    260 ¥æ›¿ãˆã‚‹ã€‚*/
     242        /* IPv6 ヘッダの発信元アドレスと宛先アドレスを入替える。*/
    261243        dst       = ip6h->dst;
    262244        ip6h->dst = ip6h->src;
     
    264246
    265247        /*
    266          *  å
    267 ƒã®å®›å
    268 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆã®å ´åˆã¯ã€
    269          *  宛å
    270 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«ãµã•ã‚ã—い送信å
    271 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’、
    272          *  ネットワークインタフェースから探索して利用する。
     248         *  元の宛先アドレスがマルチキャストの場合は、
     249         *  宛先アドレスにふさわしい送信元アドレスを、
     250         *  ネットワークインタフェースから探索して利用する。
    273251         */
    274252        if (IN6_IS_ADDR_MULTICAST(&dst)) {
     
    281259                }
    282260
    283         /* 次ヘッダとホップリミットを設定する。*/
     261        /* 次ヘッダとホップリミットを設定する。*/
    284262        ip6h->next = IPPROTO_ICMPV6;
    285263        ip6h->hlim = IP_DEFTTL;
    286264
    287         /* チェックサムを計算する。*/
     265        /* チェックサムを計算する。*/
    288266        icmp6h->sum = 0;
    289267        icmp6h->sum = in6_cksum(input, IPPROTO_ICMPV6, (uint8_t*)icmp6h - input->buf,
    290268                                ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE));
    291269
    292         /* 送信する。*/
     270        /* 送信する。*/
    293271        NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_OUT_OCTETS],
    294272                       input->len - GET_IF_IP6_HDR_SIZE(input));
     
    300278
    301279/*
    302  *  icmp6_notify_error -- エラーを通知する。
     280 *  icmp6_notify_error -- エラーを通知する。
    303281 */
    304282
     
    312290        len  = input->len - poff;
    313291
    314         /* データグラム長が ICMP6 ヘッダ長 + IP6 ヘッダ長以下なら何もしない。*/
     292        /* データグラム長が ICMP6 ヘッダ長 + IP6 ヘッダ長以下なら何もしない。*/
    315293        if (len < ICMP6_HDR_SIZE + IP6_HDR_SIZE)
    316294                return;
     
    318296        icmp6h = GET_ICMP6_HDR(input, poff);
    319297
    320         /* 最終ヘッダを探索する。*/
     298        /* 最終ヘッダを探索する。*/
    321299        loff = ip6_lasthdr(input, poff + ICMP6_HDR_SIZE, IPPROTO_IPV6, &next);
    322300
    323         /* 最終ヘッダが TCP のみ対応する。*/
     301        /* 最終ヘッダが TCP のみ対応する。*/
    324302        if (loff >= 0 && next == IPPROTO_TCP) {
    325303
     
    341319
    342320/*
    343  *  icmp6_mtudisc_update -- Path MTU を更新する。
     321 *  icmp6_mtudisc_update -- Path MTU を更新する。
    344322 */
    345323
     
    365343
    366344/*
    367  *  icmp6_redirect_input -- 向け直しメッセージの処理
     345 *  icmp6_redirect_input -- 向け直しメッセージの処理
    368346 */
    369347
     
    384362
    385363        /*
    386          *  IP ヘッダのチェック、以下の場合は破棄する。
    387          *    ・リンクローカル以外から送られてきたメッセージ
    388          *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
     364         *  IP ヘッダのチェック、以下の場合は破棄する。
     365         *    ・リンクローカル以外から送られてきたメッセージ
     366         *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
    389367         */
    390368        if (!IN6_IS_ADDR_LINKLOCAL(&ip6h->src) || ip6h->hlim != IPV6_MAXHLIM)
     
    393371        rdh  = (T_ND_REDIRECT_HDR *)(input->buf + off);
    394372
    395         /* 向け直しの終点アドレスがマルチキャストアドレスの場合は破棄する。*/
     373        /* 向け直しの終点アドレスがマルチキャストアドレスの場合は破棄する。*/
    396374        if (IN6_IS_ADDR_MULTICAST(&rdh->dst))
    397375                goto err_ret;
    398376
    399         /* ターゲットアドレスが経路表に登録されているかチェックする。*/
     377        /* ターゲットアドレスが経路表に登録されているかチェックする。*/
    400378        if ((gw = in6_rtalloc(ifp, &rdh->dst)) != NULL) {
    401                 /* GW アドレスと送信å
    402 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ãŒç•°ãªã£ã¦ã„れば破棄する。*/
     379                /* GW アドレスと送信元アドレスが異なっていれば破棄する。*/
    403380                if (!IN6_ARE_ADDR_EQUAL(gw, &ip6h->src))
    404381                        goto err_ret;
    405382                }
    406         else    /* 経路表になければ破棄する。*/
     383        else    /* 経路表になければ破棄する。*/
    407384                goto err_ret;
    408385
     
    410387
    411388        /*
    412          *  ターゲットアドレスがリンクローカルアドレスであれば、
    413          *  ターゲットはルータ
     389         *  ターゲットアドレスがリンクローカルアドレスであれば、
     390         *  ターゲットはルータ
    414391         */
    415392        if (IN6_IS_ADDR_LINKLOCAL(&rdh->target))
     
    417394
    418395        /*
    419          *  ターゲットアドレスと終点アドレスが同一であれば、オンリンク
     396         *  ターゲットアドレスと終点アドレスが同一であれば、オンリンク
    420397         */
    421398        if (IN6_ARE_ADDR_EQUAL(&rdh->target, &rdh->dst))
     
    423400               
    424401        /*
    425          *  ルータでも、オンリンクでもなければエラー
     402         *  ルータでも、オンリンクでもなければエラー
    426403         */
    427404        if (!router && !onlink)
    428405                goto err_ret;
    429406
    430         /* 近隣探索オプションのオフセットを記録する。*/
     407        /* 近隣探索オプションのオフセットを記録する。*/
    431408        if (nd6_options(nd_opt_off, input->buf +  off + ND_REDIRECT_HDR_SIZE,
    432409                                    input->len - (off + ND_REDIRECT_HDR_SIZE)) != E_OK)
    433410                goto err_ret;
    434411
    435         /* 近隣探索オプション (向け直しのルータのリンクアドレス) */
     412        /* 近隣探索オプション (向け直しのルータのリンクアドレス) */
    436413        if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)]) {
    437414                opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + ND_REDIRECT_HDR_SIZE) +
    438415                                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)] - 8);
    439                 /* 注意: オプションオフセットé
    440 åˆ—には、オフセット + 8 が設定されている。*/
     416                /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
    441417                lladdr     = (uint8_t *)(opth + 1);
    442418                lladdr_len = (opth->len << 3);
     
    444420
    445421        /*
    446          *  ネットワークインタフェースのアドレス長が一致しなければエラー
     422         *  ネットワークインタフェースのアドレス長が一致しなければエラー
    447423         */
    448424        if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
    449425                goto err_ret;
    450426
    451         /* 向け直しのルータのリンクアドレスを近隣キャッシュに登録する。*/
     427        /* 向け直しのルータのリンクアドレスを近隣キャッシュに登録する。*/
    452428        nd6_cache_lladdr(ifp, &rdh->target, (T_IF_ADDR *)lladdr, ND_REDIRECT,
    453429                         onlink ? ND_REDIRECT_ONLINK : ND_REDIRECT_ROUTER);
    454430
    455         /* ルーティング表に登録する。*/
     431        /* ルーティング表に登録する。*/
    456432        in6_rtredirect(&rdh->target, &rdh->dst, 128, IN_RTF_REDIRECT, TMO_IN_REDIRECT);
    457433
     
    467443
    468444/*
    469  *  icmp6_input -- ICMP6 のå
    470 ¥åŠ›é–¢æ•°
     445 *  icmp6_input -- ICMP6 の入力関数
    471446 */
    472447
     
    485460        NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInMsgs, 1);
    486461
    487         /* ICMP6 ヘッダの長さをチェックする。*/
     462        /* ICMP6 ヘッダの長さをチェックする。*/
    488463        len  = input->len - off;
    489464        if (len < ICMP6_HDR_SIZE) {
     
    496471        icmp6h = GET_ICMP6_HDR(input, off);
    497472
    498         /* チェックサムを計算する。*/
     473        /* チェックサムを計算する。*/
    499474        if ((in6_cksum(input, IPPROTO_ICMPV6, off, ntohs(ip6h->plen) - (off - IF_IP_HDR_SIZE)) & 0xffff) != 0) {
    500475                NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS], 1);
     
    505480        code = icmp6h->code;
    506481
    507         /* メッセージの型により分岐する。*/
     482        /* メッセージの型により分岐する。*/
    508483        switch (icmp6h->type) {
    509484
    510         case ICMP6_DST_UNREACH:                 /* 宛å
    511 ˆåˆ°é”不可能                */
     485        case ICMP6_DST_UNREACH:                 /* 宛先到達不可能              */
    512486                NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInDestUnreachs, 1);
    513487                icmp6_notify_error(input, off);
    514488                break;
    515489
    516         case ICMP6_ECHO_REQUEST:                /* エコー要求                      */
     490        case ICMP6_ECHO_REQUEST:                /* エコー要求                        */
    517491                icmp6_echo_request(input, off);
    518492                return IPPROTO_DONE;
    519493                break;
    520494
    521         case ICMP6_ECHO_REPLY:                  /* エコー応答                      */
     495        case ICMP6_ECHO_REPLY:                  /* エコー応答                        */
    522496
    523497#ifdef ICMP_CFG_CALLBACK_ECHO_REPLY
     
    529503                break;
    530504
    531         case ND_ROUTER_ADVERT:                  /* ルータ通知                      */
     505        case ND_ROUTER_ADVERT:                  /* ルータ通知                        */
    532506                NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInRouterAdvertisements, 1);
    533507                if (code != 0 || len < ROUTER_ADVERT_HDR_SIZE)
     
    537511                break;
    538512
    539         case ND_NEIGHBOR_SOLICIT:               /* 近隣要請                 */
     513        case ND_NEIGHBOR_SOLICIT:               /* 近隣要請                 */
    540514                NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInNeighborSolicits, 1);
    541515                if (code != 0 || len < NEIGHBOR_SOLICIT_HDR_SIZE)
     
    545519                break;
    546520
    547         case ND_NEIGHBOR_ADVERT:                /* 近隣通知                 */
     521        case ND_NEIGHBOR_ADVERT:                /* 近隣通知                 */
    548522                NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInNeighborAdvertisements, 1);
    549523                if (code != 0 || len < NEIGHBOR_ADVERT_HDR_SIZE)
     
    553527                break;
    554528
    555         case ND_REDIRECT:                       /* 向け直し                 */
     529        case ND_REDIRECT:                       /* 向け直し                 */
    556530                NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInRedirects, 1);
    557531
     
    571545                break;
    572546
    573         case ICMP6_PACKET_TOO_BIG:              /* パケットが大きすぎる。    */
     547        case ICMP6_PACKET_TOO_BIG:              /* パケットが大きすぎる。  */
    574548
    575549#if NUM_IN6_HOSTCACHE_ENTRY > 0
     
    582556                break;
    583557
    584         case ICMP6_TIME_EXCEEDED:               /* TTL をè¶
    585 éŽã—た。            */
     558        case ICMP6_TIME_EXCEEDED:               /* TTL を超過した。           */
    586559                NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInTimeExcds, 1);
    587560                break;
    588561
    589         case ICMP6_PARAM_PROB:                  /* IPv6 ヘッダが不正。           */
     562        case ICMP6_PARAM_PROB:                  /* IPv6 ヘッダが不正。         */
    590563                NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInParmProblems, 1);
    591564                break;
    592565
    593         case MLD_LISTENER_QUERY:                /* マルチキャスト受信è€
    594 ç
    595 §ä¼š    */
    596         case MLD_LISTENER_REPORT:               /* マルチキャスト受信è€
    597 å ±å‘Š  */
    598         case MLD_LISTENER_DONE:                 /* マルチキャスト受信è€
    599 çµ‚了  */
    600         case ND_ROUTER_SOLICIT:                 /* ルータ要請                      */
    601         case ICMP6_ROUTER_RENUMBERING:          /* ルータ番号再設定             */
    602         case ICMP6_FQDN_QUERY:                  /* FQDN ç
    603 §ä¼š                    */
    604         case ICMP6_FQDN_REPLY:                  /* FQDN 応答                  */
     566        case MLD_LISTENER_QUERY:                /* マルチキャスト受信者照会 */
     567        case MLD_LISTENER_REPORT:               /* マルチキャスト受信者報告 */
     568        case MLD_LISTENER_DONE:                 /* マルチキャスト受信者終了 */
     569        case ND_ROUTER_SOLICIT:                 /* ルータ要請                        */
     570        case ICMP6_ROUTER_RENUMBERING:          /* ルータ番号再設定             */
     571        case ICMP6_FQDN_QUERY:                  /* FQDN 照会                      */
     572        case ICMP6_FQDN_REPLY:                  /* FQDN 応答                      */
    605573                syslog(LOG_WARNING, "[ICMP6] unsupported type: %d.", icmp6h->type);
    606574                break;
     
    619587
    620588/*
    621  *  icmp6_error -- ICMP6 エラー送信関数
     589 *  icmp6_error -- ICMP6 エラー送信関数
    622590 */
    623591
     
    634602
    635603        /*
    636          *  宛å
    637 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒã€ãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆã®å ´åˆã¯ã€
    638          *  以下の条件以外のときは処理を行わない。
     604         *  宛先アドレスが、マルチキャストの場合は、
     605         *  以下の条件以外のときは処理を行わない。
    639606         *
    640          *    ・データグラムが大きすぎる。
    641          *    ・IPv6 ヘッダの不正で、オプションが認識できない。
     607         *    ・データグラムが大きすぎる。
     608         *    ・IPv6 ヘッダの不正で、オプションが認識できない。
    642609         */
    643610        if (IN6_IS_ADDR_MULTICAST(&ip6h->dst) &&
     
    647614
    648615        /*
    649          *  始点アドレスが、以下の場合は処理を行わない。
     616         *  始点アドレスが、以下の場合は処理を行わない。
    650617         *
    651          *    ・無指定
    652          *    ・マルチキャスト
     618         *    ・無指定
     619         *    ・マルチキャスト
    653620         */
    654621        if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src) ||
     
    656623                goto buf_rel;
    657624
    658         /* 最後のヘッダを探索する。*/
     625        /* 最後のヘッダを探索する。*/
    659626        off = ip6_lasthdr(input, 0, IPPROTO_IPV6, &next);
    660627
    661628        /*
    662          *  タイプが、エラーか向け直しの ICMP6 パケットのエラーには返答しない。
     629         *  タイプが、エラーか向け直しの ICMP6 パケットのエラーには返答しない。
    663630         */
    664631        if (off >= 0 && next == IPPROTO_ICMPV6) {
     
    674641                }
    675642
    676         /* DoS 攻撃に対する防御は未実è£
    677  */
    678 
    679         /*
    680          *  送り返すメッセージ長を、ICMPv6 の最大ペイロード長に調整する。
     643        /* DoS 攻撃に対する防御は未実装 */
     644
     645        /*
     646         *  送り返すメッセージ長を、ICMPv6 の最大ペイロード長に調整する。
    681647         *  IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE)
    682648         */
     
    686652                len = input->len - IF_HDR_SIZE;
    687653
    688         /* 送信用のネットワークバッファを獲得する。*/
     654        /* 送信用のネットワークバッファを獲得する。*/
    689655        if (in6_get_datagram(&output, len + ICMP6_HDR_SIZE, 0,
    690656                             &ip6h->src, &in6_addr_unspecified,
     
    693659                goto buf_rel;
    694660
    695         /* ICMP6 ヘッダを設定する。*/
     661        /* ICMP6 ヘッダを設定する。*/
    696662        icmp6h = GET_ICMP6_HDR(output, IF_IP6_ICMP6_HDR_OFFSET);
    697663        icmp6h->type       = type;
     
    699665        icmp6h->icmp6_pptr = htonl(param);
    700666 
    701         /* エラーデータを設定する。*/
     667        /* エラーデータを設定する。*/
    702668        memcpy(GET_ICMP6_SDU(output, IF_IP6_ICMP6_HDR_OFFSET), (uint8_t *)ip6h, len);
    703669
     
    720686#endif  /* of #ifdef SUPPORT_MIB */
    721687
    722         /* 送信する。*/
     688        /* 送信する。*/
    723689        icmp6_output(output, IF_IP6_HDR_SIZE);
    724690
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/if6_ether.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$
     
    115103
    116104/*
    117  *  ether_map_ipv6_multicast -- IPv6 マルチキャストアドレスからイーサネット・マルチキャストアドレスへの変換
     105 *  ether_map_ipv6_multicast -- IPv6 マルチキャストアドレスからイーサネット・マルチキャストアドレスへの変換
    118106 */
    119107
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/if6_ether.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8371
    8472/*
    85  *  関数
     73 *  関数
    8674 */
    8775
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    152140
    153141/*
    154  *  å
    155 ¨åŸŸå¤‰æ•°
     142 *  全域変数
    156143 */
    157144
     
    166153
    167154/*
    168  *  in6_addmulti -- マルチキャストアドレスを登録する。
     155 *  in6_addmulti -- マルチキャストアドレスを登録する。
    169156 */
    170157
     
    181168
    182169/*
    183  *  in6_ifinit -- インタフェースにアドレスæƒ
    184 å ±ã‚’設定し、初期化する。
     170 *  in6_ifinit -- インタフェースにアドレス情報を設定し、初期化する。
    185171 */
    186172
     
    188174in6_ifinit (T_IFNET *ifp, T_IN6_IFADDR *ia, T_IN6_ADDR *addr, uint_t prefix_len)
    189175{
    190         /* アドレスとプレフィックス長を設定する。*/
     176        /* アドレスとプレフィックス長を設定する。*/
    191177        ia->addr       = *addr;
    192178        ia->prefix_len = prefix_len;
    193179
    194         /* フラグを初期化する。*/
     180        /* フラグを初期化する。*/
    195181        ia->flags = 0;
    196182
    197183        /*
    198          *  初めてアドレスが設定されたとき、インタフェース独自の初期化を行う。
     184         *  初めてアドレスが設定されたとき、インタフェース独自の初期化を行う。
    199185         */
    200186
     
    203189
    204190/*
    205  *  in6_ifainit -- インタフェースアドレス構造体の初期化
     191 *  in6_ifainit -- インタフェースアドレス構造体の初期化
    206192 */
    207193
     
    222208
    223209/*
    224  *  in6_if2idlen -- インタフェース ID 長を返す。
     210 *  in6_if2idlen -- インタフェース ID 長を返す。
    225211 */
    226212
     
    236222
    237223/*
    238  *  in6_addr2ifaix -- アドレスからインタフェースアドレスæƒ
    239 å ±ã®ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã«å¤‰æ›ã™ã‚‹ã€‚
     224 *  in6_addr2ifaix -- アドレスからインタフェースアドレス情報のインデックスに変換する。
    240225 */
    241226
     
    258243
    259244/*
    260  *  in6_addr2maix -- アドレスからマルチキャストアドレスのインデックスに変換する。
     245 *  in6_addr2maix -- アドレスからマルチキャストアドレスのインデックスに変換する。
    261246 */
    262247
     
    279264
    280265/*
    281  *  in6_update_ifa -- インタフェースのアドレスæƒ
    282 å ±ã‚’更新する。
     266 *  in6_update_ifa -- インタフェースのアドレス情報を更新する。
    283267 */
    284268
     
    292276        SYSTIM          now;
    293277
    294         /* 引数をチェックする。*/
     278        /* 引数をチェックする。*/
    295279        if (addr == NULL)
    296280                return E_PAR;
    297281
    298282        /*
    299          *  有効時間をチェックする。
    300          *  vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。
     283         *  有効時間をチェックする。
     284         *  vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。
    301285         */
    302286        syscall(get_tim(&now));
     
    309293                return E_PAR;
    310294
    311         /* インタフェースを初期化する。*/
     295        /* インタフェースを初期化する。*/
    312296        if ((error = in6_ifinit(ifp, ia, addr, prefix_len)) != E_OK)
    313297                return error;
     
    315299        if (IN6_IS_ADDR_LINKLOCAL(addr)) {
    316300
    317                 /* 要請マルチキャストアドレスを登録する。*/
     301                /* 要請マルチキャストアドレスを登録する。*/
    318302                llsol.s6_addr32[0] = IPV6_ADDR_INT32_MLL;
    319303                llsol.s6_addr32[1] = 0x00000000;
     
    324308                        return error;
    325309
    326                 /* å
    327 ¨ãƒŽãƒ¼ãƒ‰ãƒ»ãƒªãƒ³ã‚¯ãƒ­ãƒ¼ã‚«ãƒ«ãƒ»ãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’登録する。*/
     310                /* 全ノード・リンクローカル・マルチキャストアドレスを登録する。*/
    328311                llsol.s6_addr32[2] = 0x00000000;
    329312                llsol.s6_addr32[3] = IPV6_ADDR_INT32_ONE;
     
    333316                }
    334317
    335         /* ルータインデックスを設定する。*/
     318        /* ルータインデックスを設定する。*/
    336319        ia->router_index = router_index;
    337320
    338         /* プレフィックスインデックスを設定する。*/
     321        /* プレフィックスインデックスを設定する。*/
    339322        ia->prefix_index = prefix_index;
    340323
    341         /* フラグを設定する。*/
     324        /* フラグを設定する。*/
    342325        ia->flags  = flags & ~(IN6_IFF_DUPLICATED | IN6_IFF_NODAD);
    343326        ia->flags |= IN6_IFF_DEFINED;
    344327
    345328        /*
    346          *  アドレス有効時間を設定する。
    347          *  vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。
     329         *  アドレス有効時間を設定する。
     330         *  vltime (有効時間) と pltime (推奨有効時間) の単位は [s]。
    348331         */
    349332        syscall(get_tim(&now));
     
    362345                ia->lifetime.preferred = 0;
    363346
    364         /* 近隣探索の初期設定を行う。*/
     347        /* 近隣探索の初期設定を行う。*/
    365348        nd6_ifattach(ifp);
    366349
    367         /* 重複アドレス検出を行う。*/
     350        /* 重複アドレス検出を行う。*/
    368351        if ((flags & IN6_IFF_NODAD) == 0) {
    369352                ia->flags |= IN6_IFF_TENTATIVE;
     
    375358
    376359/*
    377  * in6ifa_ifpwithix -- インデックス番号から、ネットワークインタフェースに
    378  *                     å‰²ã‚Šå½“てられているアドレスを探索する。
     360 * in6ifa_ifpwithix -- インデックス番号から、ネットワークインタフェースに
     361 *                     割り当てられているアドレスを探索する。
    379362 */
    380363
     
    386369
    387370/*
    388  * in6ifa_ifpwithrtrix -- ルータのインデックス番号から、ネットワークインタフェースに
    389  *                        割り当てられているアドレスを探索する。
     371 * in6ifa_ifpwithrtrix -- ルータのインデックス番号から、ネットワークインタフェースに
     372 *                        割り当てられているアドレスを探索する。
    390373 */
    391374
     
    402385
    403386/*
    404  * in6_ifawithifp -- 宛å
    405 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«ãµã•ã‚ã—い送信å
    406 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’、
    407  *                   ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã‹ã‚‰æŽ¢ç´¢ã™ã‚‹ã€‚
     387 * in6_ifawithifp -- 宛先アドレスにふさわしい送信元アドレスを、
     388 *                   ネットワークインタフェースから探索する。
    408389 */
    409390
     
    414395        int_t   ix;
    415396
    416         /* 宛å
    417 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã¨åŒã˜ã‚¹ã‚³ãƒ¼ãƒ—のアドレスを返す。*/
     397        /* 宛先アドレスと同じスコープのアドレスを返す。*/
    418398        if ((ix = in6_addr2ifaix(dst)) != IPV6_IFADDR_IX_INVALID)
    419399                return &ifp->in_ifaddrs[ix];
     
    435415
    436416/*
    437  * in6_if_up -- インタフェース起動後の重複アドレス検出を行う。
     417 * in6_if_up -- インタフェース起動後の重複アドレス検出を行う。
    438418 */
    439419
     
    441421in6_if_up (T_IFNET *ifp)
    442422{
    443 #if 0                                           /* 保留 */
     423#if 0                                           /* 保留 */
    444424        int_t dad_delay, ix;
    445425#endif  /* of #if 0 */
     
    447427        in6_ifattach(ifp);
    448428
    449 #if 0                                           /* 保留 */
    450         /* 重複アドレス検出を行う。*/
     429#if 0                                           /* 保留 */
     430        /* 重複アドレス検出を行う。*/
    451431        dad_delay = 0;
    452432        for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; )
     
    458438#if NUM_ND6_RTR_SOL_RETRY > 0
    459439
    460         /* ルータ要請を出力する。*/
     440        /* ルータ要請を出力する。*/
    461441        nd6_rtrsol_ctl();
    462442
     
    465445
    466446/*
    467  *  in6_are_prefix_equal -- プレフィックスが同一か調べる。
     447 *  in6_are_prefix_equal -- プレフィックスが同一か調べる。
    468448 */
    469449
     
    486466
    487467/*
    488  *  in6_ifaddr_timer -- ネットワークインタフェースのアドレスの管理タイマー
     468 *  in6_ifaddr_timer -- ネットワークインタフェースのアドレスの管理タイマー
    489469 */
    490470
     
    505485
    506486                        /*
    507                          *  有効時間を過ぎたので削除する。
     487                         *  有効時間を過ぎたので削除する。
    508488                         */
    509489                        ia->flags &= ~IN6_IFF_DEFINED;
     
    513493
    514494                        /*
    515                          *  推奨有効時間を過ぎたので非推奨にする。
     495                         *  推奨有効時間を過ぎたので非推奨にする。
    516496                         */
    517497                        ia->flags |= IN6_IFF_DEPRECATED;
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    115103
    116104/*
    117  *  IPv6 アドレス
     105 *  IPv6 アドレス
    118106 */
    119107
     
    140128
    141129/*
    142  *  IPv6 アドレスの初期化データ
     130 *  IPv6 アドレスの初期化データ
    143131 */
    144132
     
    162150
    163151/*
    164  *  アドレスの定義
     152 *  アドレスの定義
    165153 */
    166154
     
    196184
    197185/*
    198  *  特別なアドレスのチェック
    199  */
    200 
    201 /* 無指定 */
     186 *  特別なアドレスのチェック
     187 */
     188
     189/* 無指定 */
    202190
    203191#define IN6_IS_ADDR_UNSPECIFIED(a)      \
    204192        (memcmp((void *)(a), (void *)&in6_addr_unspecified, sizeof(T_IN6_ADDR)) == 0)
    205193
    206 /* ループバック */
     194/* ループバック */
    207195
    208196#define IN6_IS_ADDR_LOOPBACK(a)         \
     
    210198         (a)->s6_addr8[15] == 0x01)
    211199
    212 /* IPv4 互換 */
     200/* IPv4 互換 */
    213201
    214202#define IN6_IS_ADDR_V4COMPAT(a)         \
     
    216204         (a)->s6_addr32[3] > IPV6_ADDR_INT32_ONE)
    217205
    218 /* IPv4 マップ */
     206/* IPv4 マップ */
    219207
    220208#define IN6_IS_ADDR_V4MAPPED(a)         \
     
    224212
    225213/*
    226  *  スコープ ID
     214 *  スコープ ID
    227215 */
    228216
     
    234222
    235223/*
    236  *  ユニキャスト・スコープ
    237  *
    238  *  注意: 上位 10 ビットのみチェックしなければならない。RFC2373 参ç
    239 §
    240  */
    241 
    242 /* リンクローカル */
     224 *  ユニキャスト・スコープ
     225 *
     226 *  注意: 上位 10 ビットのみチェックしなければならない。RFC2373 参照
     227 */
     228
     229/* リンクローカル */
    243230
    244231#define IN6_IS_ADDR_LINKLOCAL(a)        \
    245232        (((a)->s6_addr8[0] == UINT_C(0xfe)) && (((a)->s6_addr8[1] & UINT_C(0xc0)) == UINT_C(0x80)))
    246233
    247 /* サイトローカル */
     234/* サイトローカル */
    248235
    249236#define IN6_IS_ADDR_SITELOCAL(a)        \
    250237        (((a)->s6_addr8[0] == UINT_C(0xfe)) && (((a)->s6_addr8[1] & UINT_C(0xc0)) == UINT_C(0xc0)))
    251238
    252 /* 集約可能ユニキャスト (グローバル) */
     239/* 集約可能ユニキャスト (グローバル) */
    253240
    254241#define IN6_IS_ADDR_AGGREGATE_UNICAST(a)        \
     
    256243
    257244/*
    258  *  マルチキャスト
     245 *  マルチキャスト
    259246 */
    260247
    261248#define IN6_IS_ADDR_MULTICAST(a)        ((a)->s6_addr8[0] == UINT_C(0xff))
    262249
    263 /* 要請マルチキャスト */
     250/* 要請マルチキャスト */
    264251
    265252#define IN6_IS_ADDR_NS_MULTICAST(a)     \
     
    270257
    271258/*
    272  *  同一のチェック
     259 *  同一のチェック
    273260 */
    274261
     
    276263
    277264/*
    278  *  経路制御用定義
    279  */
    280 
    281 #define IPV6_RTHDR_TYPE_0               UINT_C(0)       /* IPv6 経路制御ヘッダタイプ 0        */
    282 
    283 /*
    284  *  規定値と制限値
    285  */
    286 
    287 #define IPV6_DEFAULT_MULTICAST_HOPS     1       /* マルチキャスト時のホップリミットの規定値 */
    288 
    289 /*
    290  *  ITRON TCP/IPv6 アドレス/ポート番号の定義
     265 *  経路制御用定義
     266 */
     267
     268#define IPV6_RTHDR_TYPE_0               UINT_C(0)       /* IPv6 経路制御ヘッダタイプ 0    */
     269
     270/*
     271 *  規定値と制限値
     272 */
     273
     274#define IPV6_DEFAULT_MULTICAST_HOPS     1       /* マルチキャスト時のホップリミットの規定値 */
     275
     276/*
     277 *  ITRON TCP/IPv6 アドレス/ポート番号の定義
    291278 */
    292279
    293280typedef struct t_ipv6ep {
    294         T_IN6_ADDR      ipaddr;         /* IPv6 アドレス    */
    295         uint16_t        portno;         /* ポート番号      */
     281        T_IN6_ADDR      ipaddr;         /* IPv6 アドレス    */
     282        uint16_t        portno;         /* ポート番号        */
    296283        } T_IPV6EP;
    297284
    298285/*
    299  *  ITRON/TCP/IP 用 IP アドレスの定義
     286 *  ITRON/TCP/IP 用 IP アドレスの定義
    300287 */
    301288
     
    303290
    304291/*
    305  *  動的生成用 IPv6 TCP 受付口
     292 *  動的生成用 IPv6 TCP 受付口
    306293 */
    307294
    308295typedef struct t_tcp6_crep {
    309         /* 標準 */
    310         ATR             repatr;         /* 受付口属性              */
    311         T_IPV6EP        myaddr;         /* 自分のアドレス        */
    312         /* 実è£
    313 ä¾å­˜ */
     296        /* 標準 */
     297        ATR             repatr;         /* 受付口属性                */
     298        T_IPV6EP        myaddr;         /* 自分のアドレス      */
     299        /* 実装依存 */
    314300        } T_TCP6_CREP;
    315301
     
    319305
    320306/*
    321  *  動的生成用 IPv6 UDP 通信端点
     307 *  動的生成用 IPv6 UDP 通信端点
    322308 */
    323309
    324310typedef struct t_udp6_ccep {
    325         /* 標準 */
    326         ATR             cepatr;         /* UDP 通信端点属性               */
    327         T_IPV6EP        myaddr;         /* 自分のアドレス                */
    328         FP              callback;       /* コールバック関数             */
    329         /* 実è£
    330 ä¾å­˜ */
     311        /* 標準 */
     312        ATR             cepatr;         /* UDP 通信端点属性           */
     313        T_IPV6EP        myaddr;         /* 自分のアドレス              */
     314        FP              callback;       /* コールバック関数             */
     315        /* 実装依存 */
    331316        } T_UDP6_CCEP;
    332317
     
    336321
    337322/*
    338  *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
     323 *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
    339324 */
    340325
     
    356341
    357342/*
    358  *  前方参ç
    359 §
     343 *  前方参照
    360344 */
    361345
     
    369353
    370354/*
    371  *  å
    372 ¨åŸŸå¤‰æ•°
     355 *  全域変数
    373356 */
    374357
     
    380363
    381364/*
    382  *  TINET 独自 API
     365 *  TINET 独自 API
    383366 */
    384367
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.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$
     
    11098
    11199/*
    112  * EUI64 の定義
     100 * EUI64 の定義
    113101 */
    114102
     
    118106
    119107/*
    120  * get_mac6_ifid -- MAC (6 オクテット) アドレスで、インタフェース識別子を設定する。
     108 * get_mac6_ifid -- MAC (6 オクテット) アドレスで、インタフェース識別子を設定する。
    121109 */
    122110
     
    141129
    142130/*
    143  *  in6_ifattach_linklocal -- インタフェースにリンクローカル・アドレスを割り当てる。
     131 *  in6_ifattach_linklocal -- インタフェースにリンクローカル・アドレスを割り当てる。
    144132 */
    145133
     
    151139
    152140        /*
    153          *  リンクローカル・プレフィックス fe80::/64 を設定する。
     141         *  リンクローカル・プレフィックス fe80::/64 を設定する。
    154142         */
    155143        addr.s6_addr32[0] = IPV6_ADDR_INT32_ULL;
    156144        addr.s6_addr32[1] = ULONG_C(0);
    157145
    158         /* インタフェース識別子を設定する。*/
     146        /* インタフェース識別子を設定する。*/
    159147        if ((error = IF_IN6_IFID(ifp, &addr)) != E_OK)
    160148                return error;
    161149
    162         /* インタフェースのアドレスæƒ
    163 å ±ã‚’更新する。*/
     150        /* インタフェースのアドレス情報を更新する。*/
    164151        if ((error = in6_update_ifa(ifp, &ifp->in_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL],
    165152                                    &addr, 64, ND6_INFINITE_LIFETIME,
     
    174161
    175162/*
    176  *  in6_ifattach -- インタフェースにアドレスを割り当てる。
     163 *  in6_ifattach -- インタフェースにアドレスを割り当てる。
    177164 */
    178165
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_ifattach.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    8068
    8169/*
    82  *  関数
     70 *  関数
    8371 */
    8472
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_rename.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    4836
    4937/*
    50  *  TCP/IPv6 プロトコルスタックå†
    51 éƒ¨åã®ãƒªãƒãƒ¼ãƒ 
     38 *  TCP/IPv6 プロトコルスタック内部名のリネーム
    5239 */
    5340
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_subr.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    155143
    156144/*
    157  *  ホストキャッシュ
     145 *  ホストキャッシュ
    158146 */
    159147
     
    163151
    164152/*
    165  *  in6_lookup_ifaddr -- ネットワークインタフェースに割り当てられているアドレスを探索する。
     153 *  in6_lookup_ifaddr -- ネットワークインタフェースに割り当てられているアドレスを探索する。
    166154 */
    167155
     
    180168
    181169/*
    182  *  in6_lookup_multi -- ネットワークインタフェースのマルチキャストアドレスを検索する。
     170 *  in6_lookup_multi -- ネットワークインタフェースのマルチキャストアドレスを検索する。
    183171 */
    184172
     
    195183
    196184/*
    197  *  in6_set_header -- IPv6 ヘッダを設定する。
     185 *  in6_set_header -- IPv6 ヘッダを設定する。
    198186 */
    199187
     
    208196
    209197        /*
    210          *  宛å
    211 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«ãµã•ã‚ã—い送信å
    212 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’、
    213          *  ネットワークインタフェースから探索して利用する。
     198         *  宛先アドレスにふさわしい送信元アドレスを、
     199         *  ネットワークインタフェースから探索して利用する。
    214200         */
    215201        if (srcaddr == NULL || !IN6_IS_ADDR_UNSPECIFIED(srcaddr))
     
    220206                srcaddr = &ia->addr;
    221207
    222         /* IPv6 ヘッダを設定する。*/
     208        /* IPv6 ヘッダを設定する。*/
    223209        ip6h            = GET_IP6_HDR(nbuf);
    224210        ip6h->vcf       = htonl(IP6_MAKE_VCF(IPV6_VERSION, 0));
     
    241227
    242228/*
    243  *  in6_get_datagram -- IPv6 データグラムを獲得し、ヘッダを設定する。
     229 *  in6_get_datagram -- IPv6 データグラムを獲得し、ヘッダを設定する。
    244230 */
    245231
     
    252238        uint_t          align;
    253239
    254         /* データ長は 4 オクテット境界に調整する。    */
     240        /* データ長は 4 オクテット境界に調整する。        */
    255241        align = (len + 3) >> 2 << 2;
    256242
    257         /* ネットワークバッファを獲得する。     */
     243        /* ネットワークバッファを獲得する。     */
    258244        if ((error = tget_net_buf_ex(nbuf, IF_IP6_HDR_SIZE + align,
    259245                                           IF_IP6_HDR_SIZE + maxlen, nbatr, tmout)) != E_OK)
     
    261247
    262248        /*
    263          *  より大きなサイズのネットワークバッファを獲得する場合のみ長さを調整する。
    264          *  より小さなサイズのネットワークバッファの獲得は、送信ウィンドバッファの
    265          *  省コピー機能で使用され、実際に送信するまで、データサイズは決定できない。
     249         *  より大きなサイズのネットワークバッファを獲得する場合のみ長さを調整する。
     250         *  より小さなサイズのネットワークバッファの獲得は、送信ウィンドバッファの
     251         *  省コピー機能で使用され、実際に送信するまで、データサイズは決定できない。
    266252         */
    267253        if ((nbatr & NBA_SEARCH_ASCENT) != 0)
    268254                (*nbuf)->len = IF_IP6_HDR_SIZE + len;
    269255
    270         /* IPv6 ヘッダを設定する。*/
     256        /* IPv6 ヘッダを設定する。*/
    271257        if ((error = in6_set_header(*nbuf, len, dstaddr, srcaddr, next, hlim)) != E_OK)
    272258                return error;
    273259
    274         /* 4 オクテット境界までパディングで埋める。*/
     260        /* 4 オクテット境界までパディングで埋める。*/
    275261        if (align > len)
    276262                memset(GET_IP6_SDU(*nbuf) + len, 0, align - len);
     
    280266
    281267/*
    282  *  in6_get_maxnum_ifaddr -- インタフェースに設定可能な最大アドレス数を返す。
     268 *  in6_get_maxnum_ifaddr -- インタフェースに設定可能な最大アドレス数を返す。
    283269 */
    284270
     
    290276
    291277/*
    292  *  in6_get_ifaddr -- インタフェースに設定されているアドレスを返す。
     278 *  in6_get_ifaddr -- インタフェースに設定されているアドレスを返す。
    293279 */
    294280
     
    306292
    307293/*
    308  *  ipv62str -- IPv6 アドレスを文字列に変換する。
     294 *  ipv62str -- IPv6 アドレスを文字列に変換する。
    309295 */
    310296
     
    357343
    358344/*
    359  *  in6_cksum -- IPv6 のトランスポート層ヘッダのチェックサムを計算する。
    360  *
    361  *  注意: 戻り値はネットワークバイトオーダ
     345 *  in6_cksum -- IPv6 のトランスポート層ヘッダのチェックサムを計算する。
     346 *
     347 *  注意: 戻り値はネットワークバイトオーダ
    362348 */
    363349
     
    368354        uint_t          align;
    369355
    370         /* 4 オクテット境界のデータ長 */
     356        /* 4 オクテット境界のデータ長 */
    371357        align = (len + 3) >> 2 << 2;
    372358
    373         /* 4 オクテット境界までパディングで埋める。*/
     359        /* 4 オクテット境界までパディングで埋める。*/
    374360        if (align > len)
    375361                memset((uint8_t*)nbuf->buf + off + len, 0, align - len);
     
    384370
    385371/*
    386  *  in6_is_dstaddr_accept -- 宛å
    387 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã¨ã—て正しいかチェックする。
     372 *  in6_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。
    388373 */
    389374
     
    398383
    399384/*
    400  *  get_ip6_hdr_size -- 拡張ヘッダも含めた IPv6 ヘッダ長を返す。
     385 *  get_ip6_hdr_size -- 拡張ヘッダも含めた IPv6 ヘッダ長を返す。
    401386 */
    402387
     
    410395        while (1) {
    411396                next = *hdr;
    412                 if (curr ==IPPROTO_NONE)                /* 次ヘッダ無し                   */
     397                if (curr ==IPPROTO_NONE)                /* 次ヘッダ無し                       */
    413398                        break;
    414                 else if (curr == IPPROTO_FRAGMENT)      /* 断片化                    */
     399                else if (curr == IPPROTO_FRAGMENT)      /* 断片化                  */
    415400                        hsize = sizeof(T_IP6_FRAG_HDR);
    416                 else if (curr == IPPROTO_AH)            /* IPv6 認証                  */
     401                else if (curr == IPPROTO_AH)            /* IPv6 認証                      */
    417402                        hsize = (((T_IP6_AH_HDR *)hdr)->len + 2) * 4;
    418                 else if (curr == IPPROTO_HOPOPTS ||     /* 中継点 (Hop-by-Hop) オプション       */
    419                          curr == IPPROTO_DSTOPTS ||     /* IPv6 終点オプション           */
    420                          curr == IPPROTO_ROUTING)       /* 経路制御                 */
     403                else if (curr == IPPROTO_HOPOPTS ||     /* 中継点 (Hop-by-Hop) オプション       */
     404                         curr == IPPROTO_DSTOPTS ||     /* IPv6 終点オプション         */
     405                         curr == IPPROTO_ROUTING)       /* 経路制御                 */
    421406                        hsize = (((T_IP6_EXT_HDR *)hdr)->len + 1) * 8;
    422407                else
     
    430415
    431416/*
    432  *  in6_plen2pmask -- プレフィックス長からマスクを生成する。
     417 *  in6_plen2pmask -- プレフィックス長からマスクを生成する。
    433418 */
    434419
     
    448433
    449434/*
    450  *  in6_rtalloc -- ルーティング表を探索する。
     435 *  in6_rtalloc -- ルーティング表を探索する。
    451436 */
    452437
     
    462447
    463448                /*
    464                  *  サイトローカルアドレスか集約可能(グローバル)アドレスの場合は、
    465                  *  同一リンクå†
    466 ã®ãƒŽãƒ¼ãƒ‰ã§ã‚るかをチェックする。
     449                 *  サイトローカルアドレスか集約可能(グローバル)アドレスの場合は、
     450                 *  同一リンク内のノードであるかをチェックする。
    467451                 */
    468452
     
    470454                now /= SYSTIM_HZ;
    471455
    472                 /* 推奨有効時間å†
    473 ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’探索する。*/
     456                /* 推奨有効時間内のアドレスを探索する。*/
    474457                for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
    475458                        ia = &ifp->in_ifaddrs[ix];
     
    482465                        }
    483466
    484                 /* 有効時間å†
    485 ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’探索する。*/
     467                /* 有効時間内のアドレスを探索する。*/
    486468                for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
    487469                        ia = &ifp->in_ifaddrs[ix];
     
    494476
    495477                /*
    496                  *  プレフィックスを探索する。
     478                 *  プレフィックスを探索する。
    497479                 */
    498480                if (nd6_onlink_prefix_lookup (dst) != NULL)
     
    500482
    501483                /*
    502                  *  静的経路表を探索する。
     484                 *  静的経路表を探索する。
    503485                 */
    504486
     
    512494
    513495                                /*
    514                                  *  向け直しによるエントリは、有効時間が切れる時刻を延長する。
    515                                  *  expire の単位は [s]。
    516                                  *  TMO_IN_REDIRECT の単位は [ms]。
     496                                 *  向け直しによるエントリは、有効時間が切れる時刻を延長する。
     497                                 *  expire の単位は [s]。
     498                                 *  TMO_IN_REDIRECT の単位は [ms]。
    517499                                 */
    518500                                if (ix > NUM_STATIC_ROUTE_ENTRY) {
     
    532514
    533515                /*
    534                  *  ディフォルトルータ・リストを探索する。
     516                 *  ディフォルトルータ・リストを探索する。
    535517                 */
    536518                return nd6_router_lookup();
     
    541523
    542524/*
    543  *  in6_gateway_lookup -- ルーティング表のルータを探索する。
     525 *  in6_gateway_lookup -- ルーティング表のルータを探索する。
    544526 */
    545527
     
    557539
    558540/*
    559  *  in6_rtredirect -- ルーティング表にエントリを登録する。
    560  *
    561  *    注意: 引数 tmo の単位は [ms]。
     541 *  in6_rtredirect -- ルーティング表にエントリを登録する。
     542 *
     543 *    注意: 引数 tmo の単位は [ms]。
    562544 */
    563545
     
    578560
    579561/*
    580  *  in6_hostcache_lookup -- IPv6 ホストキャッシュを探索する。
     562 *  in6_hostcache_lookup -- IPv6 ホストキャッシュを探索する。
    581563 */
    582564
     
    594576
    595577/*
    596  *  in6_hostcache_update -- IPv6 ホストキャッシュを更新する。
     578 *  in6_hostcache_update -- IPv6 ホストキャッシュを更新する。
    597579 */
    598580
     
    606588        syscall(get_tim(&now));
    607589
    608         /* 既に登録されているか探索する。*/
     590        /* 既に登録されているか探索する。*/
    609591        if ((hc = in6_hostcache_lookup (dst)) == NULL) {
    610592
    611                 /* 空きのホストキャッシュを探す。*/
     593                /* 空きのホストキャッシュを探す。*/
    612594                for (ix = NUM_IN6_HOSTCACHE_ENTRY; ix -- > 0; ) {
    613595                        if (IN6_IS_HOSTCACHE_FREE(&in6_hostcache[ix]))
     
    617599                if (ix < 0) {
    618600                        /*
    619                          *  空きが無い時は、有効時間の切れる時間が、
    620                          *  最も短いホストキャッシュを置換する。
     601                         *  空きが無い時は、有効時間の切れる時間が、
     602                         *  最も短いホストキャッシュを置換する。
    621603                         */
    622604                        old = now - 1;
     
    638620
    639621                /*
    640                  *  既に登録されていて、新しい MTU が、登録されている MTU より大きいとき、
    641                  *  IN6_HOSTCACHE_INCREASE(推奨 10 分)間は更新しない。
     622                 *  既に登録されていて、新しい MTU が、登録されている MTU より大きいとき、
     623                 *  IN6_HOSTCACHE_INCREASE(推奨 10 分)間は更新しない。
    642624                 */
    643625                return;
     
    649631
    650632/*
    651  *  in6_hostcache_getmtu -- IPv6 ホストキャッシュをから MTU を取得する。
    652  *
    653  *    戻り値が 0 であれば、ホストキャッシュに登録されていない。
     633 *  in6_hostcache_getmtu -- IPv6 ホストキャッシュをから MTU を取得する。
     634 *
     635 *    戻り値が 0 であれば、ホストキャッシュに登録されていない。
    654636 */
    655637
     
    659641        T_IN6_HOSTCACHE_ENTRY   *hc;
    660642
    661         /* 既に登録されているか探索する。*/
     643        /* 既に登録されているか探索する。*/
    662644        if ((hc = in6_hostcache_lookup(dst)) == NULL)
    663645                return 0;
     
    667649
    668650/*
    669  *  in6_hostcache_timer -- IPv6 ホストキャッシュ更新タイマー
    670  *
    671  *    1秒周期で起動される。
     651 *  in6_hostcache_timer -- IPv6 ホストキャッシュ更新タイマー
     652 *
     653 *    1秒周期で起動される。
    672654 */
    673655
     
    689671
    690672/*
    691  *  in6_timer -- IPv6 å
    692 ±é€šã‚¿ã‚¤ãƒžãƒ¼
    693  *
    694  *    1秒周期で起動される。
     673 *  in6_timer -- IPv6 共通タイマー
     674 *
     675 *    1秒周期で起動される。
    695676 */
    696677
     
    720701
    721702/*
    722  *  in6_init -- IPv6 å
    723 ±é€šæ©Ÿèƒ½ã‚’初期化する。
     703 *  in6_init -- IPv6 共通機能を初期化する。
    724704 */
    725705
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/in6_var.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    117105
    118106/*
    119  *  アドレス有効時間構造体
     107 *  アドレス有効時間構造体
    120108 */
    121109
     
    123111
    124112        /*
    125          * expire と perferred は、システムが起動してからの経過時間
     113         * expire と perferred は、システムが起動してからの経過時間
    126114         */
    127         uint32_t        expire;         /* 有効時間が切れる時刻 [s]   */
    128         uint32_t        preferred;      /* 推奨有効時間が切れる時刻 [s]     */
     115        uint32_t        expire;         /* 有効時間が切れる時刻 [s]       */
     116        uint32_t        preferred;      /* 推奨有効時間が切れる時刻 [s]     */
    129117
    130118        /*
    131          * vltime と pltime は、追加/変更してからの相対時間
     119         * vltime と pltime は、追加/変更してからの相対時間
    132120         */
    133         uint32_t        vltime;         /* 有効時間 [ms]                    */
    134         uint32_t        pltime;         /* 推奨有効時間 [ms]              */
     121        uint32_t        vltime;         /* 有効時間 [ms]                    */
     122        uint32_t        pltime;         /* 推奨有効時間 [ms]          */
    135123        } __attribute__((packed, aligned(2)))T_IN6_ADDR_LIFETIME;
    136124
    137125/*
    138  *  インタフェースアドレス構造体
     126 *  インタフェースアドレス構造体
    139127 */
    140128
    141129typedef struct t_in6_ifaddr {
    142         T_IN6_ADDR              addr;           /* IPv6 アドレス            */
    143         T_IN6_ADDR_LIFETIME     lifetime;       /* 有効時間         */
    144         uint8_t                 flags;          /* フラグ            */
    145         uint8_t                 prefix_len;     /* プレフィックス長     */
    146         uint8_t                 router_index;   /* ルータインデックス  */
    147         uint8_t                 prefix_index;   /* プレフィックスインデックス      */
    148         uint8_t                 na_icount;      /* 重複アドレス検出 (DAD) 通知のå
    149 ¥åŠ›å›žæ•°      */
    150         uint8_t                 ns_icount;      /* 重複アドレス検出 (DAD) 要請のå
    151 ¥åŠ›å›žæ•°      */
    152         uint8_t                 ns_ocount;      /* 重複アドレス検出 (DAD) 要請の出力回数 */
     130        T_IN6_ADDR              addr;           /* IPv6 アドレス            */
     131        T_IN6_ADDR_LIFETIME     lifetime;       /* 有効時間         */
     132        uint8_t                 flags;          /* フラグ          */
     133        uint8_t                 prefix_len;     /* プレフィックス長     */
     134        uint8_t                 router_index;   /* ルータインデックス    */
     135        uint8_t                 prefix_index;   /* プレフィックスインデックス        */
     136        uint8_t                 na_icount;      /* 重複アドレス検出 (DAD) 通知の入力回数       */
     137        uint8_t                 ns_icount;      /* 重複アドレス検出 (DAD) 要請の入力回数       */
     138        uint8_t                 ns_ocount;      /* 重複アドレス検出 (DAD) 要請の出力回数       */
    153139        } __attribute__((packed, aligned(2)))T_IN6_IFADDR;
    154140
    155141/*
    156  *  アドレス状æ
    157 ‹ãƒ•ãƒ©ã‚°
    158  */
    159 
    160 #define IN6_IFF_ANYCAST         UINT_C(0x01)    /* エニーキャスト        */
    161 #define IN6_IFF_DEFINED         UINT_C(0x02)    /* 定義済み         */
    162 #define IN6_IFF_TENTATIVE       UINT_C(0x04)    /* 重複検出中              */
    163 #define IN6_IFF_DUPLICATED      UINT_C(0x08)    /* 重複を検出した        */
    164 #define IN6_IFF_DEPRECATED      UINT_C(0x10)    /* 非推奨            */
    165 #define IN6_IFF_NODAD           UINT_C(0x20)    /* 重複検出不要           */
    166 #define IN6_IFF_AUTOCONF        UINT_C(0x40)    /* 自動設定された        */
    167 #define IN6_IFF_DETACHED        UINT_C(0x80)    /* 非使用            */
    168 
    169 /*
    170  *  アドレスの有効性チェック
     142 *  アドレス状態フラグ
     143 */
     144
     145#define IN6_IFF_ANYCAST         UINT_C(0x01)    /* エニーキャスト      */
     146#define IN6_IFF_DEFINED         UINT_C(0x02)    /* 定義済み         */
     147#define IN6_IFF_TENTATIVE       UINT_C(0x04)    /* 重複検出中                */
     148#define IN6_IFF_DUPLICATED      UINT_C(0x08)    /* 重複を検出した      */
     149#define IN6_IFF_DEPRECATED      UINT_C(0x10)    /* 非推奨          */
     150#define IN6_IFF_NODAD           UINT_C(0x20)    /* 重複検出不要               */
     151#define IN6_IFF_AUTOCONF        UINT_C(0x40)    /* 自動設定された      */
     152#define IN6_IFF_DETACHED        UINT_C(0x80)    /* 非使用          */
     153
     154/*
     155 *  アドレスの有効性チェック
    171156 */
    172157
     
    183168
    184169/*
    185  *  ルータのインデックス
     170 *  ルータのインデックス
    186171 */
    187172
     
    189174
    190175/*
    191  *  制限値
    192  */
    193 
    194 #define IP6_HDR_NEST_LIMIT      50      /* IPv6 ヘッダのネスト制限値  */
    195 
    196 /*
    197  *  アドレスæƒ
    198 å ±é
    199 åˆ—のインデックス
     176 *  制限値
     177 */
     178
     179#define IP6_HDR_NEST_LIMIT      50      /* IPv6 ヘッダのネスト制限値      */
     180
     181/*
     182 *  アドレス情報配列のインデックス
    200183 */
    201184
     
    204187
    205188/*
    206  *  IPv6 マルチキャストアドレスé
    207 åˆ—のインデックス
    208  */
    209 
    210 #define IPV6_MADDR_IX_SOL_NODE          0       /* 要請マルチキャスト・アドレス                   */
    211 #define IPV6_MADDR_IX_LL_ALL_NODE       1       /* å
    212 ¨ãƒŽãƒ¼ãƒ‰ãƒ»ãƒªãƒ³ã‚¯ãƒ­ãƒ¼ã‚«ãƒ«ãƒ»ãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹  */
     189 *  IPv6 マルチキャストアドレス配列のインデックス
     190 */
     191
     192#define IPV6_MADDR_IX_SOL_NODE          0       /* 要請マルチキャスト・アドレス                       */
     193#define IPV6_MADDR_IX_LL_ALL_NODE       1       /* 全ノード・リンクローカル・マルチキャストアドレス     */
    213194#define IPV6_MADDR_IX_EXTRA             2
    214195
    215196#define MAX_IN6_MADDR_CNT               MAX_IF_MADDR_CNT
    216                                                 /* IPv6 マルチキャストアドレスé
    217 åˆ—の最大サイズ  */
    218 
    219 /*
    220  *  ルーティングの制御
    221  */
    222 
    223 /* ルーティング表エントリ構造体 */
     197                                                /* IPv6 マルチキャストアドレス配列の最大サイズ     */
     198
     199/*
     200 *  ルーティングの制御
     201 */
     202
     203/* ルーティング表エントリ構造体 */
    224204
    225205typedef struct t_in6_rtentry {
    226         T_IN6_ADDR      target;         /* 目標ネットワークアドレス */
    227         T_IN6_ADDR      gateway;        /* ゲートウェイの IP アドレス        */
    228         uint32_t        expire;         /* 有効時間が切れる時刻 [s]   */
    229         uint8_t         flags;          /* フラグ                    */
    230         uint8_t         prefix_len;     /* プレフィックス長             */
     206        T_IN6_ADDR      target;         /* 目標ネットワークアドレス */
     207        T_IN6_ADDR      gateway;        /* ゲートウェイの IP アドレス      */
     208        uint32_t        expire;         /* 有効時間が切れる時刻 [s]       */
     209        uint8_t         flags;          /* フラグ                  */
     210        uint8_t         prefix_len;     /* プレフィックス長             */
    231211        } __attribute__((packed, aligned(2)))T_IN6_RTENTRY;
    232212
    233213/*
    234  *  ホストキャッシュ
    235  */
    236 
    237 /* ホストキャッシュ構造体 */
     214 *  ホストキャッシュ
     215 */
     216
     217/* ホストキャッシュ構造体 */
    238218
    239219typedef struct t_in6_hostcache_entry {
    240         T_IN6_ADDR      dst;            /* 目標ネットワークアドレス */
    241         uint32_t        expire;         /* 有効時間が切れる時刻 [s]   */
     220        T_IN6_ADDR      dst;            /* 目標ネットワークアドレス */
     221        uint32_t        expire;         /* 有効時間が切れる時刻 [s]       */
    242222        uint32_t        mtu;            /* Path MTU                     */
    243223        } __attribute__((packed, aligned(2)))T_IN6_HOSTCACHE_ENTRY;
    244224
    245 #define IN6_HOSTCACHE_EXPIRE    (60*60*SYSTIM_HZ)       /* 有効時間 */
    246 #define IN6_HOSTCACHE_PRUNE     (5*60*SYSTIM_HZ)        /* 更新間隔 */
    247 #define IN6_HOSTCACHE_INCREASE  (10*60*SYSTIM_HZ)       /* 増加する場合の保護時間    */
     225#define IN6_HOSTCACHE_EXPIRE    (60*60*SYSTIM_HZ)       /* 有効時間 */
     226#define IN6_HOSTCACHE_PRUNE     (5*60*SYSTIM_HZ)        /* 更新間隔 */
     227#define IN6_HOSTCACHE_INCREASE  (10*60*SYSTIM_HZ)       /* 増加する場合の保護時間  */
    248228
    249229#define IN6_IS_HOSTCACHE_FREE(e)        IN6_IS_ADDR_UNSPECIFIED(&((e)->dst))
     
    251231
    252232/*
    253  *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
     233 *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
    254234 */
    255235
     
    266246
    267247/*
    268  *  前方参ç
    269 §
     248 *  前方参照
    270249 */
    271250
     
    279258
    280259/*
    281  *  変数
     260 *  変数
    282261 */
    283262
     
    285264
    286265/*
    287  *  関数
     266 *  関数
    288267 */
    289268
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  IPv6 で使用するカーネルオブジェクト
     35 *  IPv6 で使用するカーネルオブジェクト
    4836 */
    4937
    5038#ifdef SUPPORT_INET6
    5139
    52 /* 近隣キャッシュ */
     40/* 近隣キャッシュ */
    5341
    5442CRE_SEM(SEM_ND6_CACHE, { TA_TPRI, 1, 1 });
     
    5644#if NUM_ND6_DEF_RTR_ENTRY > 0
    5745
    58 /* ディフォルトルータ・リスト */
     46/* ディフォルトルータ・リスト */
    5947
    6048CRE_SEM(SEM_ND6_DEFRTRLIST, { TA_TPRI, 1, 1 });
     
    6452#ifdef IP6_CFG_FRAGMENT
    6553
    66 /* 分割ヘッダ */
     54/* 分割ヘッダ */
    6755
    6856CRE_SEM(SEM_IP6_FRAG_QUEUE, { TA_TPRI, 1, 1 });
     
    7260#if NUM_REDIRECT_ROUTE_ENTRY > 0
    7361
    74 /* ルーティング表(向け直し)*/
     62/* ルーティング表(向け直し)*/
    7563
    7664CRE_SEM(SEM_IN_ROUTING_TBL, { TA_TPRI, 1, 1 });
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_input.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    158146
    159147/*
    160  *  関数
     148 *  関数
    161149 */
    162150
     
    164152
    165153/*
    166  *  上位プロトコル選択構造体
     154 *  上位プロトコル選択構造体
    167155 */
    168156
    169157typedef struct t_proto_switch {
    170         uint_t (*func)(T_NET_BUF **, uint_t *, uint_t *);       /* å
    171 ¥åŠ›é–¢æ•°              */
    172         uint_t proto;                                           /* プロトコル番号        */
     158        uint_t (*func)(T_NET_BUF **, uint_t *, uint_t *);       /* 入力関数         */
     159        uint_t proto;                                           /* プロトコル番号      */
    173160        } T_PROTO_SWITCH;
    174161
    175162static const T_PROTO_SWITCH proto_switch[] = {
    176         { esp6_input,   IPPROTO_ESP             },      /* IPv6 暗号化ヘッダ      */
    177         { ah6_input,    IPPROTO_AH              },      /* IPv6 認証ヘッダ */
    178         { frag6_input,  IPPROTO_FRAGMENT        },      /* 断片ヘッダ              */
    179         { route6_input, IPPROTO_ROUTING         },      /* 経路制御ヘッダ        */
    180         { dest6_input,  IPPROTO_DSTOPTS         },      /* IPv6 終点オプション   */
     163        { esp6_input,   IPPROTO_ESP             },      /* IPv6 暗号化ヘッダ  */
     164        { ah6_input,    IPPROTO_AH              },      /* IPv6 認証ヘッダ   */
     165        { frag6_input,  IPPROTO_FRAGMENT        },      /* 断片ヘッダ                */
     166        { route6_input, IPPROTO_ROUTING         },      /* 経路制御ヘッダ      */
     167        { dest6_input,  IPPROTO_DSTOPTS         },      /* IPv6 終点オプション */
    181168        { ip6_no_header_input,
    182                         IPPROTO_NONE            },      /* 次ヘッダ無し           */
     169                        IPPROTO_NONE            },      /* 次ヘッダ無し               */
    183170        { icmp6_input,  IPPROTO_ICMPV6          },
    184171
     
    204191
    205192/*
    206  *  get_upper_proto -- 上位プロトコル処理関数を返す。
     193 *  get_upper_proto -- 上位プロトコル処理関数を返す。
    207194 */
    208195
     
    219206
    220207/*
    221  *  ip6_no_header_input -- 次ヘッダが無しの場合のå
    222 ¥åŠ›å‡¦ç†
     208 *  ip6_no_header_input -- 次ヘッダが無しの場合の入力処理
    223209 */
    224210
     
    231217
    232218/*
    233  *  ip6_hopopts_input -- 中継点オプションå
    234 ¥åŠ›å‡¦ç†
    235  *
    236  *    本実è£
    237 ã§ã¯ã€ãƒ‘ディング以外のオプションをå
    238 ¨ã¦æœªçŸ¥ã‚ªãƒ—ションとして処理する。
    239  *
    240  *    戻り値:
    241  *
    242  *      0 以上                正常
    243  *      IP6_OPT_RET_ERR (-1)    エラー、呼出側でネットワークバッファを開放する。
    244  *      IP6_OPT_RET_REL (-2)    エラー、ネットワークバッファは開放されている。
     219 *  ip6_hopopts_input -- 中継点オプション入力処理
     220 *
     221 *    本実装では、パディング以外のオプションを全て未知オプションとして処理する。
     222 *
     223 *    戻り値:
     224 *
     225 *      0 以上            正常
     226 *      IP6_OPT_RET_ERR (-1)    エラー、呼出側でネットワークバッファを開放する。
     227 *      IP6_OPT_RET_REL (-2)    エラー、ネットワークバッファは開放されている。
    245228 */
    246229
     
    290273
    291274/*
    292  *  ip6_get_prev_hdr -- 直前の拡張ヘッダの next フィールドのアドレスを返す。
    293  *
    294  *    注意: off には IF_HDR_SIZE も含まれている。
     275 *  ip6_get_prev_hdr -- 直前の拡張ヘッダの next フィールドのアドレスを返す。
     276 *
     277 *    注意: off には IF_HDR_SIZE も含まれている。
    295278 */
    296279
     
    336319
    337320/*
    338  *  ip6_init -- IPv6 の初期化関数
     321 *  ip6_init -- IPv6 の初期化関数
    339322 */
    340323
     
    347330
    348331/*
    349  *  ip6_input -- IPv6 のå
    350 ¥åŠ›é–¢æ•°
     332 *  ip6_input -- IPv6 の入力関数
    351333 */
    352334
     
    365347        NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInReceives, 1);
    366348
    367         /* IP ヘッダの長さをチェックする。*/
     349        /* IP ヘッダの長さをチェックする。*/
    368350        if (input->len < IF_IP6_HDR_SIZE) {
    369351                NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1);
     
    374356        ip6h = GET_IP6_HDR(input);
    375357
    376         /* バージョンをチェックする。*/
     358        /* バージョンをチェックする。*/
    377359        if (IP6_VCF_V(ntohl(ip6h->vcf)) != IPV6_VERSION) {
    378360                NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_VER], 1);
     
    382364
    383365        /*
    384          *  次のデータグラムは破棄する。
     366         *  次のデータグラムは破棄する。
    385367         *
    386          *    ・始点アドレスがマルチキャスト
    387          *    ・終点アドレスが未定義
     368         *    ・始点アドレスがマルチキャスト
     369         *    ・終点アドレスが未定義
    388370         *
    389          *  ネットワークインタフェースがループバックでないとき、
    390          *  次のデータグラムも破棄する。
     371         *  ネットワークインタフェースがループバックでないとき、
     372         *  次のデータグラムも破棄する。
    391373         *
    392          *    ・始点アドレスがループバック
    393          *    ・終点アドレスがループバック
     374         *    ・始点アドレスがループバック
     375         *    ・終点アドレスがループバック
    394376         *
    395          *  悪意のあるユーザが TCP/UDP スタックの混乱や
    396          *  セキュリティチェックをバイパスするため、IPv4
    397          *  マップアドレスを悪用することを防ぐため
    398          *  以下のデータグラムは破棄する。 
     377         *  悪意のあるユーザが TCP/UDP スタックの混乱や
     378         *  セキュリティチェックをバイパスするため、IPv4
     379         *  マップアドレスを悪用することを防ぐため
     380         *  以下のデータグラムは破棄する。 
    399381         *
    400          *    ・始点アドレスが ::ffff:127.0.0.1
    401          *    ・終点アドレスが ::ffff:127.0.0.1
     382         *    ・始点アドレスが ::ffff:127.0.0.1
     383         *    ・終点アドレスが ::ffff:127.0.0.1
    402384         */
    403385
     
    432414
    433415        if (IN6_IS_ADDR_MULTICAST(&ip6h->dst)) {
    434                 /* 宛å
    435 ˆãŒãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆã®å ´åˆã®å‡¦ç† */
     416                /* 宛先がマルチキャストの場合の処理 */
    436417                NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInMcastPkts, 1);
    437418                if (!in6_lookup_multi(ifp, &ip6h->dst)) {
     
    448429                        }
    449430
    450                 /*  アドレスが未解決の場合はデータグラムを破棄する。*/
     431                /*  アドレスが未解決の場合はデータグラムを破棄する。*/
    451432                if (IFA6_IS_NOTREADY(ia6)) {
    452433                        NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_ADDR], 1);
     
    456437                }
    457438
    458         /* オフセットを設定する。*/
     439        /* オフセットを設定する。*/
    459440        offp  = GET_IP6_NEXT_HDR(input) - input->buf;
    460441
    461         /* ペイロード長を取り出す。*/
     442        /* ペイロード長を取り出す。*/
    462443        plen = ntohs(ip6h->plen);
    463444
    464445
    465         /* 次ヘッダの位置を初期化する。*/
     446        /* 次ヘッダの位置を初期化する。*/
    466447        nextp = offsetof(T_IP6_HDR, next);
    467448
    468449        /*
    469          *  中継点 (Hop-by-Hop) オプションヘッダのチェック
     450         *  中継点 (Hop-by-Hop) オプションヘッダのチェック
    470451         */
    471452        if (ip6h->next == IPPROTO_HOPOPTS) {
    472453
    473                 /* 中継点ヘッダの長さをチェックする。*/
     454                /* 中継点ヘッダの長さをチェックする。*/
    474455                if (plen < sizeof(T_IP6_HBH_HDR)) {
    475456                        NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1);
     
    492473
    493474                /*
    494                  *  ペイロード長が 0 で、中継点オプションがあるときは、
    495                  *  巨大ペイロード・オプションが含まれなければならない。
    496                  *  このとき、巨大ペイロード・オプションにある
    497                  *  ペイロード長をチェックするå¿
    498 è¦ãŒã‚るが、本実è£
    499 ã§ã¯ã€
    500                  *  巨大ペイロード・オプションを未知のオプションとして
    501                  *  扱うので、何もしない。
     475                 *  ペイロード長が 0 で、中継点オプションがあるときは、
     476                 *  巨大ペイロード・オプションが含まれなければならない。
     477                 *  このとき、巨大ペイロード・オプションにある
     478                 *  ペイロード長をチェックする必要があるが、本実装では、
     479                 *  巨大ペイロード・オプションを未知のオプションとして
     480                 *  扱うので、何もしない。
    502481                 */
    503482                next = ((T_IP6_HBH_HDR *)(ip6h + 1))->next;
     
    506485                next = ip6h->next;
    507486
    508         /* IPv6 データグラム長をチェックする。*/
     487        /* IPv6 データグラム長をチェックする。*/
    509488        if (input->len - IF_IP6_HDR_SIZE < plen) {
    510489                NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1);
     
    515494                input->len = IF_IP6_HDR_SIZE + plen;
    516495
    517         /* 上位プロトコル処理関数を呼び出す。*/
     496        /* 上位プロトコル処理関数を呼び出す。*/
    518497        nest = 0;
    519498        while (next != IPPROTO_DONE) {
     
    528507                        NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInUnknownProtos, 1);
    529508
    530                         /* icmp6_error でネットワークバッファを開放する。*/
     509                        /* icmp6_error でネットワークバッファを開放する。*/
    531510                        icmp6_error(input, ICMP6_PARAM_PROB,
    532511                                           ICMP6_PARAMPROB_NEXT_HEADER, nextp);
     
    545524
    546525/*
    547  *  ip6_nexthdr -- 次のヘッダのオフセットを返す。
    548  *
    549  *    戻り値 == -1 : 最後のヘッダ、またはエラー。
    550  *    戻り値 >   0 : さらにヘッダが続く。
     526 *  ip6_nexthdr -- 次のヘッダのオフセットを返す。
     527 *
     528 *    戻り値 == -1 : 最後のヘッダ、またはエラー。
     529 *    戻り値 >   0 : さらにヘッダが続く。
    551530 */
    552531
     
    566545                break;
    567546
    568         case IPPROTO_FRAGMENT:                  /* 断片ヘッダ */
     547        case IPPROTO_FRAGMENT:                  /* 断片ヘッダ */
    569548                if (nbuf->len < off + sizeof(T_IP6_FRAG_HDR))
    570549                        return (ER_UINT)-1;
    571550
    572                 /* 中間のフラグメントの場合は処理をやめる。*/
     551                /* 中間のフラグメントの場合は処理をやめる。*/
    573552                ip6fh = (T_IP6_FRAG_HDR *)(nbuf->buf + off);
    574553                if (ntohs(ip6fh->off_flag) & IP6F_MORE_FRAG)
     
    579558                break;
    580559
    581         case IPPROTO_AH:                /* IPv6 認証ヘッダ                 */
    582         case IPPROTO_HOPOPTS:           /* IPv6 中継点 (Hop-by-Hop) オプション  */
    583         case IPPROTO_ROUTING:           /* 経路制御ヘッダ                        */
    584         case IPPROTO_DSTOPTS:           /* IPv6 終点オプション                   */
     560        case IPPROTO_AH:                /* IPv6 認証ヘッダ                   */
     561        case IPPROTO_HOPOPTS:           /* IPv6 中継点 (Hop-by-Hop) オプション  */
     562        case IPPROTO_ROUTING:           /* 経路制御ヘッダ                      */
     563        case IPPROTO_DSTOPTS:           /* IPv6 終点オプション                 */
    585564                if (nbuf->len < off + sizeof(T_IP6_EXT_HDR))
    586565                        return (ER_UINT)-1;
     
    599578
    600579/*
    601  *  ip6_lasthdr -- 最後のヘッダのオフセットを返す。
     580 *  ip6_lasthdr -- 最後のヘッダのオフセットを返す。
    602581 */
    603582
     
    618597
    619598/*
    620  *  ip6_unknown_opt -- 未知のオプションの処理
    621  *
    622  *    戻り値:
    623  *
    624  *      0 以上                        正常、オプション長。
    625  *      IP6_OPT_RET_ERR (-1)    エラー、呼出側でネットワークバッファを開放する。
    626  *      IP6_OPT_RET_REL (-2)    エラー、ネットワークバッファは開放されている。
     599 *  ip6_unknown_opt -- 未知のオプションの処理
     600 *
     601 *    戻り値:
     602 *
     603 *      0 以上                    正常、オプション長。
     604 *      IP6_OPT_RET_ERR (-1)    エラー、呼出側でネットワークバッファを開放する。
     605 *      IP6_OPT_RET_REL (-2)    エラー、ネットワークバッファは開放されている。
    627606 */
    628607
     
    631610{
    632611        switch (IP6OPT_TYPE(*opt)) {
    633         case IP6OPT_TYPE_SKIP:          /* 無視する。                      */
     612        case IP6OPT_TYPE_SKIP:          /* 無視する。                        */
    634613                return *(opt + 1);
    635614                break;
    636         case IP6OPT_TYPE_ICMP:          /* 破棄して、マルチキャストでなければ ICMP を返送する。  */
     615        case IP6OPT_TYPE_ICMP:          /* 破棄して、マルチキャストでなければ ICMP を返送する。        */
    637616                if (IN6_IS_ADDR_MULTICAST(&GET_IP6_HDR(input)->dst))
    638617                        return IP6_OPT_RET_ERR;
    639618                /* no break; */
    640         case IP6OPT_TYPE_FORCEICMP:     /* 破棄して、ICMP を返送する。       */
     619        case IP6OPT_TYPE_FORCEICMP:     /* 破棄して、ICMP を返送する。     */
    641620                icmp6_error(input, ICMP6_PARAM_PROB,
    642621                                   ICMP6_PARAMPROB_OPTION,
     
    644623                return IP6_OPT_RET_REL;
    645624                break;
    646         /*case IP6OPT_TYPE_DISCARD:     ãƒ‡ãƒ¼ã‚¿ã‚°ãƒ©ãƒ ã‚’破棄する。    */
     625        /*case IP6OPT_TYPE_DISCARD:     データグラムを破棄する。    */
    647626                }
    648627
     
    651630
    652631/*
    653  *  ip6_remove_exthdrs -- IPv6 拡張ヘッダを削除し、以降を前に詰める。
     632 *  ip6_remove_exthdrs -- IPv6 拡張ヘッダを削除し、以降を前に詰める。
    654633 */
    655634
     
    660639        uint_t  next;
    661640
    662         /* 開始オフセットを IP ヘッダに設定する。*/
     641        /* 開始オフセットを IP ヘッダに設定する。*/
    663642        off = ((uint8_t *)GET_IP_HDR(nbuf)) - nbuf->buf;
    664643
    665         /* 最終ヘッダを探索する。*/
     644        /* 最終ヘッダを探索する。*/
    666645        off = ip6_lasthdr(nbuf, off, IPPROTO_IPV6, &next);
    667646
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_output.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    153141
    154142/*
    155  *  å
    156 ¨åŸŸå¤‰æ•°
    157  */
    158 
    159 /* リンク MTU */
     143 *  全域変数
     144 */
     145
     146/* リンク MTU */
    160147
    161148uint32_t        linkmtu = IF_MTU;
    162149
    163150/*
    164  *  局所変数
     151 *  局所変数
    165152 */
    166153
     
    172159
    173160/*
    174  *  ip6_output -- IPv6 の出力関数
     161 *  ip6_output -- IPv6 の出力関数
    175162 */
    176163
     
    203190
    204191        /*
    205          *  重複アドレス検出要請以外には、送信å
    206 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã«
    207          *  無指定を指定できない。
     192         *  重複アドレス検出要請以外には、送信元アドレスに
     193         *  無指定を指定できない。
    208194         */
    209195        if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src) && (flags & IPV6_OUT_FLG_DAD) == 0) {
     
    212198                }
    213199
    214         /* 送信å
    215 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã«ã¯ãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’指定できない。*/
     200        /* 送信元アドレスにはマルチキャストアドレスを指定できない。*/
    216201        if (IN6_IS_ADDR_MULTICAST(&ip6h->src)) {
    217202                error = E_PAR;
     
    220205
    221206        /*
    222          *  経路選択を行う。
     207         *  経路選択を行う。
    223208         */
    224209        if ((gw = in6_rtalloc(ifp, &ip6h->dst)) == NULL) {
     
    228213
    229214        if (!IN6_IS_ADDR_MULTICAST(&ip6h->dst)) {
    230                 /* ユニキャストアドレスの処理 */
     215                /* ユニキャストアドレスの処理 */
    231216                }
    232217        else {
    233                 /* マルチキャストアドレスの処理 */
     218                /* マルチキャストアドレスの処理 */
    234219                NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutMcastPkts, 1);
    235220                if (flags & IPV6_OUT_FLG_HOP_LIMIT)
     
    239224                }
    240225
    241         /* Traffic Class と Flow Label をサポートしないので 0 に設定する。*/
     226        /* Traffic Class と Flow Label をサポートしないので 0 に設定する。*/
    242227        ip6h->vcf = htonl(IP6_MAKE_VCF(IPV6_VERSION, 0));
    243228
     
    252237
    253238                /*
    254                  *  Path MTU が登録されている場合、
    255                  *  MTU が IPv6 MMTU(1280 オクテット)以下の場合は、
    256                  *  MTU を IPv6 MMTU に設定し分割して送信する。
     239                 *  Path MTU が登録されている場合、
     240                 *  MTU が IPv6 MMTU(1280 オクテット)以下の場合は、
     241                 *  MTU を IPv6 MMTU に設定し分割して送信する。
    257242                 */
    258243                mtu = IPV6_MMTU;
     
    271256        if (plen + IP6_HDR_SIZE <= mtu && !alwaysfrag) {
    272257
    273                 /* 分割するå¿
    274 è¦ãŒãªã„ときの処理 */
     258                /* 分割する必要がないときの処理 */
    275259                if ((error = nd6_output(ifp, output, gw, NULL, tmout)) != E_OK) {
    276260                        NET_COUNT_IP6(net_count_ip6[NC_IP6_OUT_ERR_PACKETS], 1);
     
    280264        else {
    281265
    282                 /* 断片 ID を設定する。*/
     266                /* 断片 ID を設定する。*/
    283267                id = ip6_id ++;
    284268
    285                 /* MTU が IPv6 の最大パケットサイズをè¶
    286 ãˆãªã„ようにする。*/
     269                /* MTU が IPv6 の最大パケットサイズを超えないようにする。*/
    287270                if (mtu > IPV6_MAXPACKET)
    288271                        mtu = IPV6_MAXPACKET;
    289272
    290273                /*
    291                  *  MTU から、分割不能部分(TINET-1.4 では、分割ヘッダ以外の
    292                  *  拡張ヘッダの出力は未実è£
    293 ã®ãŸã‚ 0 オクテット)
    294                  *  と断片ヘッダのサイズを引いたとき、8 オクテット以上なければ
    295                  *  分割して送信できないためエラーにする。
     274                 *  MTU から、分割不能部分(TINET-1.4 では、分割ヘッダ以外の
     275                 *  拡張ヘッダの出力は未実装のため 0 オクテット)
     276                 *  と断片ヘッダのサイズを引いたとき、8 オクテット以上なければ
     277                 *  分割して送信できないためエラーにする。
    296278                 */
    297279                if (((mtu - sizeof(T_IP6_FRAG_HDR)) & ~7) < 8) {
     
    301283
    302284                /*
    303                  *  IPv6 ヘッダの next フィールドに設定する値は、断片ヘッダ。
    304                  *  断片ヘッダの  next フィールドに設定する値は、
    305                  *  å
    306 ƒã®ãƒ‡ãƒ¼ã‚¿ã‚°ãƒ©ãƒ ã® next フィールドの値。
     285                 *  IPv6 ヘッダの next フィールドに設定する値は、断片ヘッダ。
     286                 *  断片ヘッダの  next フィールドに設定する値は、
     287                 *  元のデータグラムの next フィールドの値。
    307288                 */
    308289                nextproto  = ip6h->next;
    309290                ip6h->next = IPPROTO_FRAGMENT;
    310291
    311                 /* 分割して送信する。*/
     292                /* 分割して送信する。*/
    312293                NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_OUT], 1);
    313294                for (foff = 0; foff < plen; foff += flen) {
    314295
    315                         /* 断片の長さを計算し、8 オクテット境界に調整する。*/
     296                        /* 断片の長さを計算し、8 オクテット境界に調整する。*/
    316297                        if (foff + (mtu - (IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR))) < plen)
    317298                                flen = (mtu - (IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR))) >> 3 << 3;
     
    319300                                flen = plen - foff;
    320301
    321                         /* ネットワークバッファを獲得する。*/
     302                        /* ネットワークバッファを獲得する。*/
    322303                        if (tget_net_buf(&frag, flen + IF_IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR), TMO_IP6_FRAG_GET_NET_BUF) == E_OK) {
    323304
    324                                 /* IPv6 ヘッダをコピーする。*/
     305                                /* IPv6 ヘッダをコピーする。*/
    325306                                fip6h = GET_IP6_HDR(frag);
    326307                                *fip6h = *ip6h;
    327308
    328                                 /* IPv6 ヘッダを埋める。*/
     309                                /* IPv6 ヘッダを埋める。*/
    329310                                fip6h->plen     = htons(flen + sizeof(T_IP6_FRAG_HDR));
    330311
    331                                 /* 断片ヘッダを埋める。*/
     312                                /* 断片ヘッダを埋める。*/
    332313                                fip6f = (T_IP6_FRAG_HDR *)GET_IP6_NEXT_HDR(frag);
    333314                                fip6f->off_flag = htons((uint16_t)(foff & ~7));
     
    338319                                fip6f->next     = nextproto;
    339320
    340                                 /* SDU をコピーする。*/
     321                                /* SDU をコピーする。*/
    341322                                memcpy((uint8_t*)(fip6f + 1), GET_IP6_NEXT_HDR(output) + foff, flen);
    342323                                NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_OUT_FRAGS], 1);
    343324                                NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutFragCreates, 1);
    344325
    345                                 /* 送信する。*/
     326                                /* 送信する。*/
    346327                                if ((error = nd6_output(ifp, frag, gw, NULL, tmout)) != E_OK) {
    347328                                        NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutFragFails, 1);
     
    350331                                }
    351332                        else {
    352                                 /* ネットワークバッファが獲得できなければ、送信をあきらめる。*/
     333                                /* ネットワークバッファが獲得できなければ、送信をあきらめる。*/
    353334                                error = E_NOMEM;
    354335                                goto drop;
     
    356337                        }
    357338
    358                 /* IF でネットワークバッファを開放しないフラグをチェックする。*/
     339                /* IF でネットワークバッファを開放しないフラグをチェックする。*/
    359340                if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
    360341                        syscall(rel_net_buf(output));
     
    378359
    379360drop:
    380         /* IF でネットワークバッファを開放しないフラグをチェックする。*/
     361        /* IF でネットワークバッファを開放しないフラグをチェックする。*/
    381362        if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
    382363                syscall(rel_net_buf(output));
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ip6_var.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    117105
    118106/*
    119  *  IPv6 ヘッダ・ペイロードアクセスマクロ
     107 *  IPv6 ヘッダ・ペイロードアクセスマクロ
    120108 */
    121109
     
    132120#define SET_IP6_SDU_SIZE(iph,slen)      ((iph)->plen=htons(slen))
    133121
    134 /* ip6_output のフラグ */
    135 
    136 #define IPV6_OUT_FLG_DAD                0x0100  /* 重複アドレス検出     */
    137 #define IPV6_OUT_FLG_HOP_LIMIT          0x0200  /* ホップリミット指定  */
    138 
    139 /* ホップリミットフラグが付く時、ホップリミット値を操作するマクロ */
     122/* ip6_output のフラグ */
     123
     124#define IPV6_OUT_FLG_DAD                0x0100  /* 重複アドレス検出     */
     125#define IPV6_OUT_FLG_HOP_LIMIT          0x0200  /* ホップリミット指定    */
     126
     127/* ホップリミットフラグが付く時、ホップリミット値を操作するマクロ */
    140128
    141129#define IPV6_OUT_GET_HOP_LIMIT(f)       ((f)&0x00ff)
     
    143131
    144132/*
    145  *  ip6_unknown_opt -- 未知のオプションの処理
    146  *
    147  *    戻り値:
    148  *
    149  *      0 以上                        正常、オプション長。
    150  *      IP6_OPT_RET_ERR (-1)    エラー、呼出側でネットワークバッファを開放する。
    151  *      IP6_OPT_RET_REL (-2)    エラー、ネットワークバッファは開放されている。
     133 *  ip6_unknown_opt -- 未知のオプションの処理
     134 *
     135 *    戻り値:
     136 *
     137 *      0 以上                    正常、オプション長。
     138 *      IP6_OPT_RET_ERR (-1)    エラー、呼出側でネットワークバッファを開放する。
     139 *      IP6_OPT_RET_REL (-2)    エラー、ネットワークバッファは開放されている。
    152140 */
    153141
     
    156144
    157145/*
    158  *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
     146 *  IPv4 と IPv6 をコンパイル時に選択するためのマクロ
    159147 */
    160148
     
    177165
    178166/*
    179  *  IPv6 の MMTU サイズのネットワークバッファ
     167 *  IPv6 の MMTU サイズのネットワークバッファ
    180168 */
    181169
    182170typedef struct t_net_buf_ipv6_mmtu {
    183         uint16_t        len;    /* データの長さ           */
    184         uint8_t         idix;   /* mpfid のインデックス  */
    185         uint8_t         unit;   /* インタフェース番号  */
     171        uint16_t        len;    /* データの長さ               */
     172        uint8_t         idix;   /* mpfid のインデックス        */
     173        uint8_t         unit;   /* インタフェース番号    */
    186174#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    187175        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     
    191179#endif
    192180        uint8_t         buf[IF_HDR_SIZE + IPV6_MMTU];
    193                                 /* バッファ本体           */
     181                                /* バッファ本体               */
    194182        } T_NET_BUF_IPV6_MMTU;
    195183
    196184/*
    197  *  65536 オクテットサイズのネットワークバッファ
     185 *  65536 オクテットサイズのネットワークバッファ
    198186 */
    199187
    200188typedef struct t_net_buf6_65536 {
    201         uint16_t        len;    /* データの長さ           */
    202         uint8_t         idix;   /* mpfid のインデックス  */
    203         uint8_t         flags;  /* フラグ            */
     189        uint16_t        len;    /* データの長さ               */
     190        uint8_t         idix;   /* mpfid のインデックス        */
     191        uint8_t         flags;  /* フラグ          */
    204192#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    205193        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     
    209197#endif
    210198        uint8_t         buf[IF_IP6_HDR_SIZE + 65536];
    211                                 /* バッファ本体           */
     199                                /* バッファ本体               */
    212200#if defined(IF_PDU_HDR_PADDING)
    213201        uint8_t         padding[IF_PDU_HDR_PADDING];
    214 #endif                          /* ヘッダの余分           */
     202#endif                          /* ヘッダの余分               */
    215203        } T_NET_BUF6_65536;
    216204
     
    218206
    219207/*
    220  *  再構成キュー用 IPv6 ヘッダの定義
     208 *  再構成キュー用 IPv6 ヘッダの定義
    221209 */
    222210
     
    229217        uint8_t         hlim;           /* Hop Limit                            */
    230218        T_IN6_ADDR      src;            /* Source Address                       */
    231         T_NET_BUF       *next_frag;     /* 次の IPv6 フラグメント       */
    232         uint16_t        foff;           /* 断片ヘッダのオフセット            */
    233         uint16_t        flen;           /* 断片長                            */
    234         uint16_t        ftim;           /* 再構成タイムアウト                  */
     219        T_NET_BUF       *next_frag;     /* 次の IPv6 フラグメント       */
     220        uint16_t        foff;           /* 断片ヘッダのオフセット          */
     221        uint16_t        flen;           /* 断片長                          */
     222        uint16_t        ftim;           /* 再構成タイムアウト                    */
    235223        uint16_t        dummy1;
    236224        uint8_t         dummy2[sizeof(T_IN6_ADDR) - (sizeof(T_NET_BUF*) + sizeof(uint16_t) * 4)];
     
    247235
    248236/*
    249  *  データグラム再構成用ネットワークバッファ
     237 *  データグラム再構成用ネットワークバッファ
    250238 */
    251239
    252240typedef struct t_net_buf6_reassm {
    253         uint16_t        len;    /* データの長さ           */
    254         uint8_t         idix;   /* mpfid のインデックス  */
    255         uint8_t         flags;  /* フラグ            */
     241        uint16_t        len;    /* データの長さ               */
     242        uint8_t         idix;   /* mpfid のインデックス        */
     243        uint8_t         flags;  /* フラグ          */
    256244#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
    257245        uint8_t         nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
     
    261249#endif
    262250        uint8_t         buf[IP6_CFG_FRAG_REASSM_SIZE];
    263                                 /* バッファ本体           */
     251                                /* バッファ本体               */
    264252        } T_NET_BUF6_REASSM;
    265253
     
    267255
    268256/*
    269  *  TCP の再構成キューにおける IPv6 ヘッダの定義
     257 *  TCP の再構成キューにおける IPv6 ヘッダの定義
    270258 */
    271259
     
    274262        uint8_t cf;             /* Traffic Class:  8 bit                */
    275263                        /* Flow Label:     4 bit (20 bit)       */
    276         uint16_t thoff; /* TCP ヘッダのオフセット              */
     264        uint16_t thoff; /* TCP ヘッダのオフセット                */
    277265        uint16_t plen;  /* Payload Length                       */
    278266        uint8_t next;   /* Next Header                          */
     
    285273
    286274/*
    287  *  SNMP の 管理æƒ
    288 å ±ãƒ™ãƒ¼ã‚¹ (MIB)
     275 *  SNMP の 管理情報ベース (MIB)
    289276 */
    290277
     
    317304
    318305/*
    319  *  関数
     306 *  関数
    320307 */
    321308
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/ipsec.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;charset=UTF-8
    r270 r321  
    77 *  Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, JAPAN
    88 *
    9  *  上記著作権è€
    10 ã¯ï¼Œä»¥ä¸‹ã® (1)~(4) の条件か,Free Software Foundation
    11  *  によってå
    12 ¬è¡¨ã•ã‚Œã¦ã„ã‚‹ GNU General Public License の Version 2 に記
    13  *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
    14  *  を改変したものを含む.以下同じ)を使用・複製・改変・再é
    15 å¸ƒï¼ˆä»¥ä¸‹ï¼Œ
    16  *  利用と呼ぶ)することを無償で許諾する.
    17  *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    18  *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    19  *      スコード中に含まれていること.
    20  *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    21  *      用できる形で再é
    22 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    23 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    24  *      è€
    25 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    26  *      の無保証規定を掲載すること.
    27  *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    28  *      用できない形で再é
    29 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®æ¡ä»¶ã‚’満たすこと.
    30  *    (a) 再é
    31 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    32 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    33  *        作権表示,この利用条件および下記の無保証規定を掲載すること.
    34  *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    35  *      害からも,上記著作権è€
    36 ãŠã‚ˆã³TOPPERSプロジェクトをå
    37 è²¬ã™ã‚‹ã“と.
     9 *  上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
     10 *  によって公表されている GNU General Public License の Version 2 に記
     11 *  述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
     12 *  を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
     13 *  利用と呼ぶ)することを無償で許諾する.
     14 *  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15 *      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16 *      スコード中に含まれていること.
     17 *  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18 *      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19 *      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20 *      の無保証規定を掲載すること.
     21 *  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     22 *      用できない形で再配布する場合には,次の条件を満たすこと.
     23 *    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     24 *        作権表示,この利用条件および下記の無保証規定を掲載すること.
     25 *  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     26 *      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3827 *
    39  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    40 ãŠ
    41  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    42  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    43  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     28 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     29 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     30 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     31 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4432 *
    4533 *  @(#) $Id$
     
    4735
    4836/*
    49  *  IPsec で使用するカーネルオブジェクト
     37 *  IPsec で使用するカーネルオブジェクト
    5038 */
    5139
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    132120
    133121/*
    134  *  近隣キャッシュ
     122 *  近隣キャッシュ
    135123 */
    136124
     
    138126
    139127/*
    140  *  nd6_free -- ルータを削除する。
     128 *  nd6_free -- ルータを削除する。
    141129 */
    142130
     
    150138                ln->state = ND6_LLINFO_INCOMPLETE;
    151139
    152                 /* プレフィックス・リストからルータを削除する。*/
     140                /* プレフィックス・リストからルータを削除する。*/
    153141                nd6_defrtrlist_del(dr);
    154142                }
     
    156144
    157145/*
    158  *  nd6_timer -- 近隣探索管理タイマー
     146 *  nd6_timer -- 近隣探索管理タイマー
    159147 */
    160148
     
    167155        int_t           ix;
    168156
    169         /* 近隣キャッシュの処理 */
     157        /* 近隣キャッシュの処理 */
    170158        syscall(wai_sem(SEM_ND6_CACHE));
    171159        syscall(get_tim(&now));
     
    177165                        switch (ln->state) {
    178166
    179                         case ND6_LLINFO_INCOMPLETE:     /* 未解決            */
     167                        case ND6_LLINFO_INCOMPLETE:     /* 未解決          */
    180168                                if (ln->asked < ND6_MAX_MCAST_QUERY) {
    181169                                        /*
    182                                          *  マルチキャストアドレス要請の再送回数以下の場合の処理
     170                                         *  マルチキャストアドレス要請の再送回数以下の場合の処理
    183171                                         */
    184172                                        ln->asked ++;
    185                                         ln->expire = now + ND6_RETRANS_TIME;    /* 近隣探索送信間隔 */
     173                                        ln->expire = now + ND6_RETRANS_TIME;    /* 近隣探索送信間隔 */
    186174                                        nd6_ns_output(ifp, &in6_addr_unspecified, &ln->addr, ln, false);
    187175                                        }
     
    189177                                        if (ln->hold != NULL) {
    190178                                                /*
    191                                                  *  最終的には、保留されているネットワークバッファが
    192                                                  *  あれば、ICMP6 ERROR を自分自身に返したあと、
    193                                                  *  ネットワークバッファを開放する。
    194                                                  *  しかし、現在、icmp6_error の実è£
    195 ãŒä¸å®Œå
    196 ¨ã®ãŸã‚ã€
    197                                                  *  ネットワークバッファの開放のみ行う。
     179                                                 *  最終的には、保留されているネットワークバッファが
     180                                                 *  あれば、ICMP6 ERROR を自分自身に返したあと、
     181                                                 *  ネットワークバッファを開放する。
     182                                                 *  しかし、現在、icmp6_error の実装が不完全のため、
     183                                                 *  ネットワークバッファの開放のみ行う。
    198184                                                 */
    199 #if 0   /* 保留 */
     185#if 0   /* 保留 */
    200186                                                icmp6_error(ln->hold, ICMP6_DST_UNREACH,
    201187                                                                      ICMP6_DST_UNREACH_ADDR, 0);
     
    209195                                break;
    210196
    211                         case ND6_LLINFO_REACHABLE:      /* 到達可能         */
     197                        case ND6_LLINFO_REACHABLE:      /* 到達可能         */
    212198                                if (ln->expire) {
    213199                                        ln->expire = now + ND6_GCOLLECTION_TIME;
     
    216202                                break;
    217203
    218                         case ND6_LLINFO_STALE:          /* 到達可能性は未確認  */
     204                        case ND6_LLINFO_STALE:          /* 到達可能性は未確認    */
    219205                                if (ln->expire) {
    220206                                        if (ln->hold != NULL) {
     
    227213                                break;
    228214
    229                         case ND6_LLINFO_DELAY:          /* 到達可能性の確認å¾
    230 æ©Ÿ     */
     215                        case ND6_LLINFO_DELAY:          /* 到達可能性の確認待機   */
    231216                                ln->asked = 1;
    232                                 ln->expire = now + ND6_RETRANS_TIME;            /* 近隣探索送信間隔 */
     217                                ln->expire = now + ND6_RETRANS_TIME;            /* 近隣探索送信間隔 */
    233218                                ln->state = ND6_LLINFO_PROBE;
    234219                                nd6_ns_output(ifp, &ln->addr, &ln->addr, ln, false);
    235220                                break;
    236221
    237                         case ND6_LLINFO_PROBE:          /* 到達可能性を確認中  */
     222                        case ND6_LLINFO_PROBE:          /* 到達可能性を確認中    */
    238223                                if (ln->asked < ND6_MAX_UCAST_QUERY) {
    239224                                        /*
    240                                          *  ユニキャストアドレス要請の再送回数以下の場合の処理
     225                                         *  ユニキャストアドレス要請の再送回数以下の場合の処理
    241226                                         */
    242227                                        ln->asked ++;
    243                                         ln->expire += ND6_RETRANS_TIME; /* 近隣探索送信間隔 */
     228                                        ln->expire += ND6_RETRANS_TIME; /* 近隣探索送信間隔 */
    244229                                        nd6_ns_output(ifp, &ln->addr, &ln->addr, ln, false);
    245230                                        }
     
    259244        syscall(sig_sem(SEM_ND6_CACHE));
    260245
    261         /* ディフォルトルータ・リストの処理 */
     246        /* ディフォルトルータ・リストの処理 */
    262247        nd6_defrtrlist_timer();
    263248
    264         /* プレフィックス・リストの処理 */
     249        /* プレフィックス・リストの処理 */
    265250        nd6_prelist_timer();
    266251
    267         /* ネットワークインタフェースのアドレスの処理 */
     252        /* ネットワークインタフェースのアドレスの処理 */
    268253        in6_ifaddr_timer(ifp);
    269254
    270255        /*
    271          *  到達可能状æ
    272 ‹ã®æœ‰åŠ¹æ™‚間の更新
     256         *  到達可能状態の有効時間の更新
    273257         */
    274258        if ((int32_t)(nd6_recalc_reachtm_interval - now) < 0) {
     
    281265
    282266/*
    283  *  nd6_get_cache -- 近隣キャッシュを獲得する。
     267 *  nd6_get_cache -- 近隣キャッシュを獲得する。
    284268 */
    285269
     
    291275
    292276/*
    293  *  nd6_ifattach -- 近隣探索の初期設定を行う。
     277 *  nd6_ifattach -- 近隣探索の初期設定を行う。
    294278 */
    295279
     
    300284
    301285/*
    302  *  nd6_output_hold -- 近隣探索キャッシュに保留されている
    303  *                     ã‚¢ãƒ‰ãƒ¬ã‚¹è§£æ±ºå¾
    304 ã¡ã®ãƒ‡ãƒ¼ã‚¿ã‚°ãƒ©ãƒ ãŒã‚れば送信する。
    305  *
    306  *    注意: セマフォ SEM_ND6_CACHE によりロック状æ
    307 ‹ã§å‘¼å‡ºã™ã“と。
     286 *  nd6_output_hold -- 近隣探索キャッシュに保留されている
     287 *                     アドレス解決待ちのデータグラムがあれば送信する。
     288 *
     289 *    注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。
    308290 */
    309291
     
    313295        SYSTIM now;
    314296
    315         /* アドレス解決å¾
    316 ã¡ã®ãƒ‡ãƒ¼ã‚¿ã‚°ãƒ©ãƒ ãŒã‚れば送信する。*/
     297        /* アドレス解決待ちのデータグラムがあれば送信する。*/
    317298        if (ln->hold) {
    318299
    319                 /* タイムアウトの処理 */
     300                /* タイムアウトの処理 */
    320301                if (ln->tmout != TMO_FEVR) {
    321302
    322303                        /*
    323                          *  タイムアウトの指定が永ä¹
    324 ã§ãªãã€æ™‚間を過ぎていれば、
    325                          *  出力しないで終了する。
     304                         *  タイムアウトの指定が永久でなく、時間を過ぎていれば、
     305                         *  出力しないで終了する。
    326306                         */
    327307                        syscall(get_tim(&now));
     
    341321
    342322/*
    343  *  nd6_lookup -- 近隣探索キャッシュを探索する。
    344  *
    345  *    注意: セマフォ SEM_ND6_CACHE によりロック状æ
    346 ‹ã§å‘¼å‡ºã™ã“と。
     323 *  nd6_lookup -- 近隣探索キャッシュを探索する。
     324 *
     325 *    注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。
    347326 *
    348327 */
     
    356335        for (ix = NUM_ND6_CACHE_ENTRY; ix -- > 0; ) {
    357336                if (nd6_cache[ix].state == 0) {
    358                         /* 未使用エントリのインデックスを記録する。*/
     337                        /* 未使用エントリのインデックスを記録する。*/
    359338                        if (fix == -1)
    360339                                fix = ix;
     
    364343                        }
    365344                else if ((int32_t)(nd6_cache[ix].expire - min) < 0) {   /* nd6_cache[ix].expire < min */
    366                         /* 有効期限が最短エントリのインデックスを記録する。*/
     345                        /* 有効期限が最短エントリのインデックスを記録する。*/
    367346                        min = nd6_cache[ix].expire;
    368347                        mix = ix;
     
    387366
    388367/*
    389  *  nd6_cache_lladdr -- 近隣探索キャッシュに登録する。
     368 *  nd6_cache_lladdr -- 近隣探索キャッシュに登録する。
    390369 */
    391370
     
    399378        int_t           newstate = ND6_LLINFO_INCOMPLETE;
    400379
    401         /* アドレスが無指定なら何もしない。*/
     380        /* アドレスが無指定なら何もしない。*/
    402381        if (IN6_IS_ADDR_UNSPECIFIED(from))
    403382                return NULL;
    404383
    405         /* 近隣キャッシュに登録する。*/
     384        /* 近隣キャッシュに登録する。*/
    406385        syscall(wai_sem(SEM_ND6_CACHE));
    407386        if ((ln = nd6_lookup(from, false)) == NULL) {
     
    421400
    422401        /*
    423          *  状æ
    424 ‹é·ç§»è¡¨
     402         *  状態遷移表
    425403         *
    426404         *  nd_na_flags
    427          *  newnetry olladdr lladdr llchange 処理 (L: lladdr を登録する)
     405         *  newnetry olladdr lladdr llchange 処理 (L: lladdr を登録する)
    428406         *
    429407         *      F       F       N       -    (1)
     
    436414         */
    437415
    438         /* データリンク層のアドレスが通知されていれば更新する。*/
     416        /* データリンク層のアドレスが通知されていれば更新する。*/
    439417        if (lladdr != NULL) {
    440418                ln->ifaddr = *(T_IF_ADDR *)lladdr;
     
    458436                }
    459437
    460         /* 近隣キャッシュエントリを更新する。*/
     438        /* 近隣キャッシュエントリを更新する。*/
    461439        if (doupdate) {
    462440                ln->state = newstate;
     
    466444                        ln->expire = now + ND6_GCOLLECTION_TIME;
    467445
    468                         /* アドレス解決å¾
    469 ã¡ã®ãƒ‡ãƒ¼ã‚¿ã‚°ãƒ©ãƒ ãŒã‚れば送信する。*/
     446                        /* アドレス解決待ちのデータグラムがあれば送信する。*/
    470447                        nd6_output_hold(ifp, ln);
    471448                        }
     
    476453
    477454
    478         /* ルータ通知の処理 */
     455        /* ルータ通知の処理 */
    479456        switch (type) {
    480457
     
    506483
    507484/*
    508  *  nd6_is_addr_neighbor -- 指定されたアドレスのノードが同一リンクにあるかチェックする。
     485 *  nd6_is_addr_neighbor -- 指定されたアドレスのノードが同一リンクにあるかチェックする。
    509486 */
    510487
     
    525502
    526503/*
    527  *  nd6_output -- 近隣探索の出力関数
    528  *
    529  *    注意: セマフォ SEM_ND6_CACHE によりロック状æ
    530 ‹ã§å‘¼å‡ºã™ã“と。
     504 *  nd6_output -- 近隣探索の出力関数
     505 *
     506 *    注意: セマフォ SEM_ND6_CACHE によりロック状態で呼出すこと。
    531507 */
    532508
     
    538514
    539515        /*
    540          *  あてå
    541 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆã‹ã€è¿‘隣キャッシュが
    542          *  不要の場合は直ちに送信する。
     516         *  あて先アドレスがマルチキャストか、近隣キャッシュが
     517         *  不要の場合は直ちに送信する。
    543518         */
    544519        if (!(IN6_IS_ADDR_MULTICAST(dst) || !IF_IN6_NEED_CACHE(ifp))) {
    545520                if (ln == NULL) {
    546                         /* 近隣キャッシュが未定義の場合 */
     521                        /* 近隣キャッシュが未定義の場合 */
    547522                        if (nd6_is_addr_neighbor(ifp, dst)) {
    548523                                /*
    549                                  *  指定されたアドレスのノードが同一リンクにある時は、
    550                                  *  近隣キャッシュを探索し、未定義の場合は登録する。
     524                                 *  指定されたアドレスのノードが同一リンクにある時は、
     525                                 *  近隣キャッシュを探索し、未定義の場合は登録する。
    551526                                 */
    552527                                ln = nd6_lookup(dst, true);
     
    559534
    560535                /*
    561                  *  近隣キャッシュの状æ
    562 ‹ãŒã€ãƒ‡ãƒ¼ã‚¿ãƒªãƒ³ã‚¯å±¤ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ãŒåˆ†ã‹ã£ã¦ã„ても、
    563                  *  到達可能性が確認されていないときは、到達不能通知を開始する。
     536                 *  近隣キャッシュの状態が、データリンク層のアドレスが分かっていても、
     537                 *  到達可能性が確認されていないときは、到達不能通知を開始する。
    564538                 */
    565539                if (ln->state == ND6_LLINFO_STALE) {
     
    571545
    572546                /*
    573                  *  近隣キャッシュの状æ
    574 ‹ãŒã€ãƒ‡ãƒ¼ã‚¿ãƒªãƒ³ã‚¯å±¤ã®ã‚¢ãƒ‰ãƒ¬ã‚¹æœªè§£æ±ºã®å ´åˆã¯
    575                  *  近隣探索を行う。
     547                 *  近隣キャッシュの状態が、データリンク層のアドレス未解決の場合は
     548                 *  近隣探索を行う。
    576549                 */
    577550                if (ln->state <= ND6_LLINFO_INCOMPLETE) {
    578551
    579                         /* タイムアウトの指定がポーリングならタイムアウトで終了する。*/
     552                        /* タイムアウトの指定がポーリングならタイムアウトで終了する。*/
    580553                        if (tmout == TMO_POL) {
    581554                                error = E_TMOUT;
     
    586559                                ln->state = ND6_LLINFO_INCOMPLETE;
    587560
    588                         /* すでに、未解決のネットワークバッファがあれば、開放する。*/
     561                        /* すでに、未解決のネットワークバッファがあれば、開放する。*/
    589562                        if (ln->hold != NULL) {
    590563                                syscall(rel_net_buf(ln->hold));
     
    592565
    593566                        /*
    594                          *  送信をペンディングする。
    595                          *  IF でネットワークバッファを開放しないフラグが設定されているときは、
    596                          *  送信をペンディングしない。
     567                         *  送信をペンディングする。
     568                         *  IF でネットワークバッファを開放しないフラグが設定されているときは、
     569                         *  送信をペンディングしない。
    597570                         */
    598571                        if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
    599572                                ln->hold = output;
    600573
    601                                 /* タイムアウトの設定 */
     574                                /* タイムアウトの設定 */
    602575                                if (tmout == TMO_FEVR)
    603576                                        ln->tmout = tmout;
     
    618591                                        if ((int32_t)(ln->expire - now) < 0) {
    619592                                                   /* ln->expire < now */
    620                                                 ln->expire += ND6_RETRANS_TIME; /* 近隣探索送信間隔 */
     593                                                ln->expire += ND6_RETRANS_TIME; /* 近隣探索送信間隔 */
    621594                                                ln->asked ++;
    622595                                                nd6_ns_output(ifp, &in6_addr_unspecified, dst, ln, false);
     
    629602
    630603        /*
    631          *  重複が検出されたインタフェースには出力しない。
     604         *  重複が検出されたインタフェースには出力しない。
    632605         */
    633606        if ((ifp->flags & ND6_IFF_IFDISABLED) != 0) {
     
    645618
    646619/*
    647  *  nd6_storelladdr -- 出力するネットワークインタフェースのアドレスを返す。
     620 *  nd6_storelladdr -- 出力するネットワークインタフェースのアドレスを返す。
    648621 */
    649622
     
    662635
    663636/*
    664  *  nd6_option -- 近隣探索オプションの処理
    665  *
    666  *    注意: オプションオフセットé
    667 åˆ—には、オフセット + 8 が設定されている。
     637 *  nd6_option -- 近隣探索オプションの処理
     638 *
     639 *    注意: オプションオフセット配列には、オフセット + 8 が設定されている。
    668640 */
    669641
     
    673645        T_ND_OPT_HDR    *opth;
    674646        ER              error = E_OK;
    675         int_t           pi_count = 0;   /* プレフィックスæƒ
    676 å ±ã®å€‹æ•° */
     647        int_t           pi_count = 0;   /* プレフィックス情報の個数 */
    677648
    678649        opth = (T_ND_OPT_HDR *)nh;
     
    681652        while (error == E_OK && ((uint8_t *)opth - (uint8_t *)nh) < (256 - 8) && len > 0) {
    682653
    683                 /* オプション長が 0 の時は、不正なオプションとして処理する。*/
     654                /* オプション長が 0 の時は、不正なオプションとして処理する。*/
    684655                if (opth->len == 0) {
    685656                        error = E_PAR;
     
    687658                        }
    688659
    689                 /* オプションのタイプにより分岐する。*/
     660                /* オプションのタイプにより分岐する。*/
    690661                switch (opth->type) {
    691                 case ND_OPT_SOURCE_LINKADDR:            /* 送信å
    692 ˆãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯ã‚¤ãƒ³ã‚¿ãƒ•ã‚§ãƒ¼ã‚¹ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ */
    693                 case ND_OPT_TARGET_LINKADDR:            /* 対象ネットワークインタフェースのアドレス */
    694                 case ND_OPT_REDIRECTED_HEADER:          /* リダイレクト・ヘッダ                               */
     662                case ND_OPT_SOURCE_LINKADDR:            /* 送信先ネットワークインタフェースのアドレス        */
     663                case ND_OPT_TARGET_LINKADDR:            /* 対象ネットワークインタフェースのアドレス */
     664                case ND_OPT_REDIRECTED_HEADER:          /* リダイレクト・ヘッダ                           */
    695665                case ND_OPT_MTU:                        /* MTU                                          */
    696666                        if (opt[ND_OPT_OFF_ARRAY_IX(opth->type)]) {
    697                                 /* プレフィックスæƒ
    698 å ±ä»¥å¤–の同じオプションが複数指定されている。*/
     667                                /* プレフィックス情報以外の同じオプションが複数指定されている。*/
    699668                                error = E_PAR;
    700669                                }
     
    703672                                }
    704673                        break;
    705                 case ND_OPT_PREFIX_INFORMATION:         /* プレフィックスæƒ
    706 å ±                             */
     674                case ND_OPT_PREFIX_INFORMATION:         /* プレフィックス情報                            */
    707675                        if (!opt[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFORMATION)]) {
    708676                                /*
    709                                  *  プレフィックスæƒ
    710 å ±ã¯æœ€åˆã«ç¾ã‚ŒãŸã‚ªãƒ•ã‚»ãƒƒãƒˆã®ã¿è¨˜éŒ²ã™ã‚‹ã€‚
     677                                 *  プレフィックス情報は最初に現れたオフセットのみ記録する。
    711678                                 */
    712679                                opt[ND_OPT_OFF_ARRAY_IX(opth->type)] = (uint8_t *)opth - (uint8_t *)nh + 8;
     
    716683                default:
    717684                        /*
    718                          *  将来定義されるプロトコルへの拡張に対応するため、
    719                          *  認識できないオプションは単に無視し、処理を続行する。
     685                         *  将来定義されるプロトコルへの拡張に対応するため、
     686                         *  認識できないオプションは単に無視し、処理を続行する。
    720687                         */
    721688                        break;
    722689                        }
    723                 len -= opth->len << 3;          /* オプション長の単位は 8 バイト */
     690                len -= opth->len << 3;          /* オプション長の単位は 8 バイト */
    724691                opth = (T_ND_OPT_HDR *)((uint8_t *)opth + (opth->len << 3));
    725692                }
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    8270
    8371/*
    84  *  ネットワークインタフェース構造体(T_IFNET)のフラグ
    85  */
    86 
    87 #define ND6_IFF_IFDISABLED      UINT_C(0x01)    /* インタフェースを無効にする。*/
    88 
    89 /*
    90  *  近隣キャッシュ
     72 *  ネットワークインタフェース構造体(T_IFNET)のフラグ
     73 */
     74
     75#define ND6_IFF_IFDISABLED      UINT_C(0x01)    /* インタフェースを無効にする。*/
     76
     77/*
     78 *  近隣キャッシュ
    9179 */
    9280
     
    9583        T_NET_BUF       *hold;
    9684        TMO             tmout;
    97         SYSTIM          expire;         /* [ms] 有効時間が切れる時刻  */
     85        SYSTIM          expire;         /* [ms] 有効時間が切れる時刻      */
    9886        T_IF_ADDR       ifaddr;
    9987        uint8_t         state;
     
    10290        } T_LLINFO_ND6;
    10391
    104 /* 近隣キャッシュの状æ
    105 ‹ */
    106 
    107 #define ND6_LLINFO_FREE                 0       /* 未使用            */
    108 #define ND6_LLINFO_NO_STATE             1       /* 状æ
    109 ‹æœªå®šç¾©              */
    110 #define ND6_LLINFO_INCOMPLETE           2       /* 未解決            */
    111 #define ND6_LLINFO_REACHABLE            3       /* 到達可能         */
    112 #define ND6_LLINFO_STALE                4       /* 到達可能性は未確認  */
    113 #define ND6_LLINFO_DELAY                5       /* 到達可能性の確認å¾
    114 æ©Ÿ     */
    115 #define ND6_LLINFO_PROBE                6       /* 到達可能性を確認中  */
     92/* 近隣キャッシュの状態 */
     93
     94#define ND6_LLINFO_FREE                 0       /* 未使用          */
     95#define ND6_LLINFO_NO_STATE             1       /* 状態未定義                */
     96#define ND6_LLINFO_INCOMPLETE           2       /* 未解決          */
     97#define ND6_LLINFO_REACHABLE            3       /* 到達可能         */
     98#define ND6_LLINFO_STALE                4       /* 到達可能性は未確認    */
     99#define ND6_LLINFO_DELAY                5       /* 到達可能性の確認待機   */
     100#define ND6_LLINFO_PROBE                6       /* 到達可能性を確認中    */
    116101
    117102#define ND6_IS_LLINFO_PROBREACH(n)      ((n)->state > ND6_LLINFO_INCOMPLETE)
    118103
    119 /* 近隣キャッシュの制御ビット */
    120 
    121 #define ND6_LLIF_ROUTER                 UINT_C(0x80)    /* ルータ            */
    122 #define ND6_LLIF_ASKED                  UINT_C(0x40)    /* 通知済み         */
    123 #define ND6_LLIF_STATE_MASK             UINT_C(0x07)    /* 状æ
    124 ‹ãƒžã‚¹ã‚¯              */
    125 
    126 /* 近隣探索キャッシュ、有効時間の定義 */
     104/* 近隣キャッシュの制御ビット */
     105
     106#define ND6_LLIF_ROUTER                 UINT_C(0x80)    /* ルータ          */
     107#define ND6_LLIF_ASKED                  UINT_C(0x40)    /* 通知済み         */
     108#define ND6_LLIF_STATE_MASK             UINT_C(0x07)    /* 状態マスク                */
     109
     110/* 近隣探索キャッシュ、有効時間の定義 */
    127111
    128112#define ND6_SLOW_TMO                    ((60*60*1000)/NET_TIMER_HZ)
    129                                                         /* 1 [時間]                           */
    130                                                         /* 近隣探索キャッシュ更新タイムアウト  */
    131 
    132 #define ND6_MAX_DAD_TRY                 15              /* 重複アドレス検出の再送回数              */
    133 #define ND6_MAX_MCAST_QUERY             3               /* マルチキャストアドレス要請の再送回数       */
    134 #define ND6_MAX_UCAST_QUERY             3               /* ユニキャストアドレス要請の再送回数  */
     113                                                        /* 1 [時間]                               */
     114                                                        /* 近隣探索キャッシュ更新タイムアウト    */
     115
     116#define ND6_MAX_DAD_TRY                 15              /* 重複アドレス検出の再送回数                */
     117#define ND6_MAX_MCAST_QUERY             3               /* マルチキャストアドレス要請の再送回数   */
     118#define ND6_MAX_UCAST_QUERY             3               /* ユニキャストアドレス要請の再送回数    */
    135119
    136120#define ND6_INFINITE_LIFETIME           0xffffffff
    137121
    138122#define ND6_GCOLLECTION_TIME            (60*60*24*SYSTIM_HZ)
    139                                                         /* ゴミ拾い周期、1 日                   */
    140 #define ND6_DELAY_TIME                  (5*SYSTIM_HZ)   /* 確認å¾
    141 æ©Ÿé
    142 å»¶                             */
    143 #define ND6_FIRST_DAD_DELAY_TIME        (1*SYSTIM_HZ)   /* 最初の重複アドレス検出送信é
    144 å»¶     */
     123                                                        /* ゴミ拾い周期、1 日                   */
     124#define ND6_DELAY_TIME                  (5*SYSTIM_HZ)   /* 確認待機遅延                               */
     125#define ND6_FIRST_DAD_DELAY_TIME        (1*SYSTIM_HZ)   /* 最初の重複アドレス検出送信遅延      */
    145126#define ND6_DAD_DELAY_TIME              (5*SYSTIM_HZ/10)
    146                                                         /* 重複アドレス検出送信é
    147 å»¶             */
    148 
    149 /* 近隣探索用タイマの設定 */
    150 
    151 #define ND6_TIMER_TMO                   ((SYSTIM_HZ/NET_TIMER_CYCLE)/5) /* 0.2[s] 間隔                */
    152 
    153 /*
    154  *  到達可能状æ
    155 ‹ã®æœ‰åŠ¹æ™‚é–“
    156  */
    157 
    158 #define ND6_DEF_REACHABLE_TIME          (30*SYSTIM_HZ)  /* 到達可能状æ
    159 ‹ã®æœ‰åŠ¹æ™‚間の既定値            */
     127                                                        /* 重複アドレス検出送信遅延         */
     128
     129/* 近隣探索用タイマの設定 */
     130
     131#define ND6_TIMER_TMO                   ((SYSTIM_HZ/NET_TIMER_CYCLE)/5) /* 0.2[s] 間隔            */
     132
     133/*
     134 *  到達可能状態の有効時間
     135 */
     136
     137#define ND6_DEF_REACHABLE_TIME          (30*SYSTIM_HZ)  /* 到達可能状態の有効時間の既定値              */
    160138#define ND6_MAX_REACHABLE_TIME          (60*60*SYSTIM_HZ)
    161                                                         /* 到達可能状æ
    162 ‹ã®æœ‰åŠ¹æ™‚間の既定値            */
     139                                                        /* 到達可能状態の有効時間の既定値              */
    163140#define ND6_RECALC_REACHTM_INTERVAL     (60*60*2*SYSTIM_HZ)
    164                                                         /* 到達可能状æ
    165 ‹ã®æœ‰åŠ¹æ™‚間再計算間隔 */
    166 
    167 #define ND6_MIN_REACHTM_RAND_FACTOR     512             /* 最小乱数補正値、1,024 * 0.5          */
    168 
    169 #if 1                                                   /* タイマーの起動間隔を考æ
    170 ®ã—、規定より短く設定 */
    171 #define ND6_MAX_REACHTM_RAND_FACTOR     1484            /* 最小乱数補正値、1,024 * 1.45                 */
     141                                                        /* 到達可能状態の有効時間再計算間隔     */
     142
     143#define ND6_MIN_REACHTM_RAND_FACTOR     512             /* 最小乱数補正値、1,024 * 0.5          */
     144
     145#if 1                                                   /* タイマーの起動間隔を考慮し、規定より短く設定       */
     146#define ND6_MAX_REACHTM_RAND_FACTOR     1484            /* 最小乱数補正値、1,024 * 1.45                 */
    172147#else
    173 #define ND6_MAX_REACHTM_RAND_FACTOR     1536            /* 最小乱数補正値、1,024 * 1.5                  */
     148#define ND6_MAX_REACHTM_RAND_FACTOR     1536            /* 最小乱数補正値、1,024 * 1.5                  */
    174149#endif
    175150
    176 /* 到達可能状æ
    177 ‹ã®æœ‰åŠ¹æ™‚間の計算マクロ */
     151/* 到達可能状態の有効時間の計算マクロ */
    178152
    179153#define ND6_CALC_REACH_TIME(b)          \
     
    182156
    183157/*
    184  *  近隣探索の送信間隔
     158 *  近隣探索の送信間隔
    185159 */
    186160
     
    188162
    189163/*
    190  *  ルータ通知により変更されることがある値
     164 *  ルータ通知により変更されることがある値
    191165 */
    192166
    193167#if NUM_ND6_DEF_RTR_ENTRY > 0
    194168
    195 /* ルータ通知を受信する場合は、通知された値 */
     169/* ルータ通知を受信する場合は、通知された値 */
    196170
    197171#define ND6_REACHABLE_TIME              nd6_reachable_time
     
    200174#else   /* #if NUM_ND6_DEF_RTR_ENTRY > 0 */
    201175
    202 /* ルータ通知を受信しない場合の値は既定値 */
     176/* ルータ通知を受信しない場合の値は既定値 */
    203177
    204178#define ND6_REACHABLE_TIME              ND6_DEF_REACHABLE_TIME
     
    208182
    209183/*
    210  *  ディフォルトルータ・リスト
     184 *  ディフォルトルータ・リスト
    211185 */
    212186
    213187typedef struct t_def_router {
    214188        T_IN6_ADDR      addr;
    215         SYSTIM          expire;         /* [ms] 有効時間が切れる時刻  */
    216         uint32_t        lifetime;       /* [ms] 有効時間                    */
    217         uint16_t        plistmap;       /* プレフィックスマップ               */
    218         uint8_t         flags;          /* ルータ通知のフラグ          */
     189        SYSTIM          expire;         /* [ms] 有効時間が切れる時刻      */
     190        uint32_t        lifetime;       /* [ms] 有効時間                    */
     191        uint16_t        plistmap;       /* プレフィックスマップ           */
     192        uint8_t         flags;          /* ルータ通知のフラグ            */
    219193        uint8_t         state;
    220194        } T_DEF_ROUTER;
    221195
    222 /* ディフォルトルータ・リストの状æ
    223 ‹ */
    224 
    225 #define ND6_DEF_RTR_BUSY                0xff    /* 使用中            */
    226 
    227 /* プレフィックスのインデックス */
     196/* ディフォルトルータ・リストの状態 */
     197
     198#define ND6_DEF_RTR_BUSY                0xff    /* 使用中          */
     199
     200/* プレフィックスのインデックス */
    228201
    229202#define ND6_PREFIX_IX_INVALID           0xff
    230203
    231204/*
    232  *  プレフィックス・リスト
     205 *  プレフィックス・リスト
    233206 */
    234207
    235208typedef struct t_nd6_prefix {
    236         T_IN6_ADDR      prefix;         /* プレフィックス                */
    237         uint32_t        expire;         /* [s] 有効時間が切れる時刻   */
    238         uint32_t        preferred;      /* [s] 推奨有効時間が切れる時刻     */
    239         uint32_t        vltime;         /* [s] 有効時間                     */
    240         uint32_t        pltime;         /* [s] 推奨有効時間               */
    241         uint16_t        routermap;      /* ルータマップ                   */
    242         uint8_t         flags;          /* フラグ                    */
    243         uint8_t         prefix_len;     /* プレフィックス長             */
     209        T_IN6_ADDR      prefix;         /* プレフィックス              */
     210        uint32_t        expire;         /* [s] 有効時間が切れる時刻       */
     211        uint32_t        preferred;      /* [s] 推奨有効時間が切れる時刻     */
     212        uint32_t        vltime;         /* [s] 有効時間                     */
     213        uint32_t        pltime;         /* [s] 推奨有効時間           */
     214        uint16_t        routermap;      /* ルータマップ                       */
     215        uint8_t         flags;          /* フラグ                  */
     216        uint8_t         prefix_len;     /* プレフィックス長             */
    244217        } T_ND6_PREFIX;
    245218
    246 /* フラグ */
    247 
    248 #define ND6_PREFIX_FLAG_ONLINK          UINT_C(0x80)    /* オンリンクプレフィックス */
    249 #define ND6_PREFIX_FLAG_AUTO            UINT_C(0x40)    /* ステートレス・アドレス自動設定*/
    250 
    251 #define ND6_PREFIX_STATE_BUSY           UINT_C(0x01)    /* 使用中            */
    252 #define ND6_PREFIX_STATE_ONLINK         UINT_C(0x02)    /* オンリンク状æ
    253 ‹       */
    254 #define ND6_PREFIX_STATE_DETACHED       UINT_C(0x04)    /* 非使用状æ
    255 ‹       */
    256 
    257 /*
    258  *  変数
     219/* フラグ */
     220
     221#define ND6_PREFIX_FLAG_ONLINK          UINT_C(0x80)    /* オンリンクプレフィックス */
     222#define ND6_PREFIX_FLAG_AUTO            UINT_C(0x40)    /* ステートレス・アドレス自動設定*/
     223
     224#define ND6_PREFIX_STATE_BUSY           UINT_C(0x01)    /* 使用中          */
     225#define ND6_PREFIX_STATE_ONLINK         UINT_C(0x02)    /* オンリンク状態      */
     226#define ND6_PREFIX_STATE_DETACHED       UINT_C(0x04)    /* 非使用状態        */
     227
     228/*
     229 *  変数
    259230 */
    260231
     
    266237
    267238/*
    268  *  関数
     239 *  関数
    269240 */
    270241
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_nbr.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$
     
    126114
    127115/*
    128  *  局所関数
     116 *  局所関数
    129117 */
    130118
     
    136124
    137125/*
    138  *  nd6_dad_duplicated -- 重複アドレスを検出した時の処理
     126 *  nd6_dad_duplicated -- 重複アドレスを検出した時の処理
    139127 */
    140128
     
    149137                ifa->flags |=  IN6_IFF_DUPLICATED;
    150138
    151                 /* タイマーを停止する。*/
     139                /* タイマーを停止する。*/
    152140                untimeout((callout_func)nd6_dad_timer, ifa);
    153141
    154142                /*
    155                  *  もし IPv6 アドレスが、ユニークに割り当てらた
    156                  * (イーサネット用の EUI-64)ハードウェアアドレスをベースとした
    157                  *  インタフェース ID で生成されたのであれば、
    158                  *  このインタフェースでの IPv6 の動作は無効にすべきである
    159                  * (RFC2462bis-03 セクション 5.4.5)。
     143                 *  もし IPv6 アドレスが、ユニークに割り当てらた
     144                 * (イーサネット用の EUI-64)ハードウェアアドレスをベースとした
     145                 *  インタフェース ID で生成されたのであれば、
     146                 *  このインタフェースでの IPv6 の動作は無効にすべきである
     147                 * (RFC2462bis-03 セクション 5.4.5)。
    160148                 */
    161149                if (IN6_IS_ADDR_LINKLOCAL(&ifa->addr))
     
    165153
    166154/*
    167  *  nd6_dad_ns_output -- 重複アドレス検出 (DAD) 要請を出力する。
     155 *  nd6_dad_ns_output -- 重複アドレス検出 (DAD) 要請を出力する。
    168156 */
    169157
     
    178166
    179167/*
    180  *  nd6_dad_ns_input -- 重複アドレス検出 (DAD) 要請å
    181 ¥åŠ›
     168 *  nd6_dad_ns_input -- 重複アドレス検出 (DAD) 要請入力
    182169 */
    183170
     
    188175
    189176        /*
    190          *  まだ、重複アドレス検出要請を出力していない場合
     177         *  まだ、重複アドレス検出要請を出力していない場合
    191178         */
    192179        if (ifa->ns_ocount == 0)
     
    197184
    198185/*
    199  *  nd6_dad_na_input -- 重複アドレス検出 (DAD) 通知å
    200 ¥åŠ›
     186 *  nd6_dad_na_input -- 重複アドレス検出 (DAD) 通知入力
    201187 */
    202188
     
    210196
    211197/*
    212  *  nd6_dad_timer -- 重複アドレス検出 (DAD) タイマー
     198 *  nd6_dad_timer -- 重複アドレス検出 (DAD) タイマー
    213199 */
    214200
     
    231217                nd6_dad_ns_output(ifp, ifa);
    232218
    233                 /* タイムアウトを近隣探索の送信間隔に設定する。*/
     219                /* タイムアウトを近隣探索の送信間隔に設定する。*/
    234220                timeout((callout_func)nd6_dad_timer, ifa, ND6_RETRANS_TIME * NET_TIMER_HZ / SYSTIM_HZ);
    235221                }
     
    243229
    244230/*
    245  *  nd6_ns_input -- 近隣要請のå
    246 ¥åŠ›å‡¦ç†ã€‚
     231 *  nd6_ns_input -- 近隣要請の入力処理。
    247232 */
    248233
     
    266251
    267252        /*
    268          *  ヘッダのチェック、以下の場合は破棄する。
    269          *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
    270          *    ・ヘッダ長が短い
     253         *  ヘッダのチェック、以下の場合は破棄する。
     254         *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
     255         *    ・ヘッダ長が短い
    271256         */
    272257        if (ip6h->hlim != IPV6_MAXHLIM || input->len - off < NEIGHBOR_SOLICIT_HDR_SIZE)
     
    277262        if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src)) {
    278263                /*
    279                  *  始点アドレスが無指定なら、重複アドレス検出
    280                  *  あてå
    281 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ã€è¦è«‹ãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆã§ãªã‘ればならない。
     264                 *  始点アドレスが無指定なら、重複アドレス検出
     265                 *  あて先アドレスは、要請マルチキャストでなければならない。
    282266                 */
    283267                if (!IN6_IS_ADDR_NS_MULTICAST(&ip6h->dst))
     
    285269                }
    286270
    287         /* 目的アドレスがマルチキャストならエラー */
     271        /* 目的アドレスがマルチキャストならエラー */
    288272        if (IN6_IS_ADDR_MULTICAST(&nsh->target))
    289273                goto err_ret;
    290274
    291         /* 近隣探索オプションのオフセットを記録する。*/
     275        /* 近隣探索オプションのオフセットを記録する。*/
    292276        if (nd6_options(nd_opt_off, input->buf + (off + NEIGHBOR_SOLICIT_HDR_SIZE),
    293277                                    input->len - (off + NEIGHBOR_SOLICIT_HDR_SIZE)) != E_OK)
    294278                goto err_ret;
    295279
    296         /* 近隣探索オプション (始点リンクアドレス) */
     280        /* 近隣探索オプション (始点リンクアドレス) */
    297281        if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)]) {
    298282                opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + NEIGHBOR_SOLICIT_HDR_SIZE) +
    299283                                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)] - 8);
    300                 /* 注意: オプションオフセットé
    301 åˆ—には、オフセット + 8 が設定されている。*/
     284                /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
    302285                lladdr     = (uint8_t *)(opth + 1);
    303286                lladdr_len = (opth->len << 3);
     
    307290                goto err_ret;
    308291
    309         /* 宛å
    310 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆãªã‚‰è¿‘隣通知にデータリンク層のアドレスを付ける。*/
     292        /* 宛先アドレスがマルチキャストなら近隣通知にデータリンク層のアドレスを付ける。*/
    311293        if (IN6_IS_ADDR_MULTICAST(&ip6h->dst))
    312294                tlladdr = true;
     
    315297
    316298        /*
    317          *  目的アドレスが、自分のネットワークインタフェースに
    318          *  割り当てられているアドレスか調べる。
    319          *  なお、代理サービスは実è£
    320 ã—ていない。
     299         *  目的アドレスが、自分のネットワークインタフェースに
     300         *  割り当てられているアドレスか調べる。
     301         *  なお、代理サービスは実装していない。
    321302         */
    322303        ifa = in6_lookup_ifaddr(ifp, &nsh->target);
     
    325306                goto free_ret;
    326307
    327         /* 探索結果アドレスが重複していれば応答しないで終了する。*/
     308        /* 探索結果アドレスが重複していれば応答しないで終了する。*/
    328309        if (ifa->flags & IN6_IFF_DUPLICATED)
    329310                goto err_ret;
    330311
    331312        /*
    332          *  ネットワークインタフェースのアドレス長が一致しなければエラー
     313         *  ネットワークインタフェースのアドレス長が一致しなければエラー
    333314         */
    334315        if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
     
    336317
    337318        /*
    338          *  始点アドレスが自分のアドレスと一致すれば重複している。
     319         *  始点アドレスが自分のアドレスと一致すれば重複している。
    339320         */
    340321        if (IN6_ARE_ADDR_EQUAL(&ifa->addr, &ip6h->src))
    341322                goto free_ret;
    342323
    343         /* 重複検出中に、近隣要請を受信したときの処理 */
     324        /* 重複検出中に、近隣要請を受信したときの処理 */
    344325        if (ifa->flags & IN6_IFF_TENTATIVE) {
    345326                if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src))
     
    354335
    355336        /*
    356          *  始点アドレスが無指定なら、送信相手は重複アドレス検出中で、
    357          *  直接送信することはできないので、å
    358 ¨ãƒŽãƒ¼ãƒ‰ãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆ
    359          *  アドレスに送信する。
     337         *  始点アドレスが無指定なら、送信相手は重複アドレス検出中で、
     338         *  直接送信することはできないので、全ノードマルチキャスト
     339         *  アドレスに送信する。
    360340         */
    361341        if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src)) {
     
    364344                }
    365345
    366         /* 近隣キャッシュに登録する。*/
     346        /* 近隣キャッシュに登録する。*/
    367347        nd6_cache_lladdr(ifp, &ip6h->src, (T_IF_ADDR *)lladdr, ND_NEIGHBOR_SOLICIT, 0);
    368348
     
    379359
    380360/*
    381  *  nd6_ns_output -- 近隣要請を出力する。
     361 *  nd6_ns_output -- 近隣要請を出力する。
    382362 */
    383363
     
    398378                return;
    399379
    400         /* 近隣要請ペイロード長を計算する。*/
     380        /* 近隣要請ペイロード長を計算する。*/
    401381        if (!dad && IF_SOFTC_TO_IFADDR(ifp->ic))
    402382                len = (NEIGHBOR_SOLICIT_HDR_SIZE + ND_OPT_HDR_SIZE + sizeof(T_IF_ADDR) + 7) >> 3 << 3;
     
    405385
    406386        /*
    407          *  要請マルチキャスト・アドレス宛の近隣探索では、
    408          *  他のリンクからの偽造されたデータグラムを
    409          *  排除するため、ホップリミットに IPV6_MAXHLIM (255) を設定する。
     387         *  要請マルチキャスト・アドレス宛の近隣探索では、
     388         *  他のリンクからの偽造されたデータグラムを
     389         *  排除するため、ホップリミットに IPV6_MAXHLIM (255) を設定する。
    410390         */
    411391        if (IN6_IS_ADDR_UNSPECIFIED(daddr) || IN6_IS_ADDR_MULTICAST(daddr))
    412392                ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_MAXHLIM);
    413393
    414         /* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/
     394        /* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/
    415395        if (in6_get_datagram(&output, len, 0, daddr, NULL,
    416396                             IPPROTO_ICMPV6, IPV6_MAXHLIM,
     
    422402        if (IN6_IS_ADDR_UNSPECIFIED(daddr)) {
    423403
    424                 /* 宛å
    425 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒç„¡æŒ‡å®šã®å ´åˆã¯ã€è¦è«‹ãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’設定する。*/
     404                /* 宛先アドレスが無指定の場合は、要請マルチキャストアドレスを設定する。*/
    426405                ip6h->dst.s6_addr32[0] = IPV6_ADDR_INT32_MLL;
    427406                ip6h->dst.s6_addr32[2] = IPV6_ADDR_INT32_ONE;
     
    430409                }
    431410
    432         /* 送信å
    433 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã®è¨­å®š */
     411        /* 送信元アドレスの設定 */
    434412        if (!dad) {
    435413
    436                 /* 重複アドレス検出ではない時の送信å
    437 ƒã‚¢ãƒ‰ãƒ¬ã‚¹æ±ºå®šå‡¦ç†ã€‚*/
     414                /* 重複アドレス検出ではない時の送信元アドレス決定処理。*/
    438415                T_IN6_ADDR *saddr;
    439416
    440417                if (ln && ln->hold) {
    441418                        /*
    442                          * 送信がペンディングされているデータグラムの
    443                          * 送信å
    444 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’利用する。
     419                         * 送信がペンディングされているデータグラムの
     420                         * 送信元アドレスを利用する。
    445421                         */
    446422                        if (ln->hold->len > IF_IP6_HDR_SIZE)
     
    456432                else {
    457433                        /*
    458                          *  宛å
    459 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«ãµã•ã‚ã—い送信å
    460 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’、
    461                          *  ネットワークインタフェースから探索して利用する。
     434                         *  宛先アドレスにふさわしい送信元アドレスを、
     435                         *  ネットワークインタフェースから探索して利用する。
    462436                         */
    463437                        T_IN6_IFADDR *ifa;
     
    472446        else {
    473447
    474                 /* 重複アドレス検出時の送信å
    475 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã¯ç„¡æŒ‡å®šã€‚*/
     448                /* 重複アドレス検出時の送信元アドレスは無指定。*/
    476449                memset(&ip6h->src, 0, sizeof(T_IN6_ADDR));
    477450                }
    478451
    479         /* 近隣要請ヘッダを設定する。*/
     452        /* 近隣要請ヘッダを設定する。*/
    480453        nsh = GET_NEIGHBOR_SOLICIT_HDR(output, IF_IP6_NEIGHBOR_SOLICIT_HDR_OFFSET);
    481454        nsh->hdr.type        = ND_NEIGHBOR_SOLICIT;
     
    486459        if (!dad && (mac = IF_SOFTC_TO_IFADDR(ifp->ic)) != NULL) {
    487460
    488                 /* 近隣探索オプションとして、探索目標の MAC アドレスを設定する。*/
     461                /* 近隣探索オプションとして、探索目標の MAC アドレスを設定する。*/
    489462                T_ND_OPT_HDR    *opth;
    490463                uint_t          optlen;
     
    498471                }
    499472
    500         /* チェックサムを計算する。*/
     473        /* チェックサムを計算する。*/
    501474        nsh->hdr.sum = 0;
    502475        nsh->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)nsh - output->buf, len);
    503476
    504         /* 送信する。*/
     477        /* 送信する。*/
    505478        NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS],
    506479                       output->len - GET_IF_IP6_HDR_SIZE(output));
     
    512485
    513486/*
    514  *  nd6_na_input -- 近隣通知のå
    515 ¥åŠ›å‡¦ç†ã€‚
     487 *  nd6_na_input -- 近隣通知の入力処理。
    516488 */
    517489
     
    536508
    537509        /*
    538          *  ヘッダのチェック、以下の場合は破棄する。
    539          *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
    540          *    ・ヘッダ長が短い
     510         *  ヘッダのチェック、以下の場合は破棄する。
     511         *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
     512         *    ・ヘッダ長が短い
    541513         */
    542514        if (ip6h->hlim != IPV6_MAXHLIM || input->len - off < NEIGHBOR_ADVERT_HDR_SIZE)
     
    545517        nah  = (T_NEIGHBOR_ADVERT_HDR *)(input->buf + off);
    546518
    547         /* 目的アドレスがマルチキャストならエラー */
     519        /* 目的アドレスがマルチキャストならエラー */
    548520        if (IN6_IS_ADDR_MULTICAST(&nah->target))
    549521                goto err_ret;
    550522
    551         /* 近隣要請への応答で、宛å
    552 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆãªã‚‰ã‚¨ãƒ©ãƒ¼ */
     523        /* 近隣要請への応答で、宛先アドレスがマルチキャストならエラー */
    553524        if ((nah->nd_na_flags_reserved & ND_NA_FLG_SOLICITED) &&
    554525            IN6_IS_ADDR_MULTICAST(&ip6h->dst))
    555526                goto err_ret;
    556527
    557         /* 近隣探索オプションのオフセットを記録する。*/
     528        /* 近隣探索オプションのオフセットを記録する。*/
    558529        if (nd6_options(nd_opt_off, input->buf + (off + NEIGHBOR_ADVERT_HDR_SIZE),
    559530                                    input->len - (off + NEIGHBOR_ADVERT_HDR_SIZE)) != E_OK)
    560531                goto err_ret;
    561532
    562         /* 近隣探索オプション (目的リンクアドレス) */
     533        /* 近隣探索オプション (目的リンクアドレス) */
    563534        if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)]) {
    564535                opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + NEIGHBOR_ADVERT_HDR_SIZE) +
    565536                                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)] - 8);
    566                 /* 注意: オプションオフセットé
    567 åˆ—には、オフセット + 8 が設定されている。*/
     537                /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
    568538                lladdr     = (uint8_t *)(opth + 1);
    569539                lladdr_len = (opth->len << 3);
     
    573543
    574544        /*
    575          *  目的アドレスが自分のネットワークインタフェースに割り当てられているアドレスの
    576          *  いずれかに一致したときは、重複していることを意味している。
     545         *  目的アドレスが自分のネットワークインタフェースに割り当てられているアドレスの
     546         *  いずれかに一致したときは、重複していることを意味している。
    577547         */
    578548        if (ifa) {
     
    585555
    586556        /*
    587          *  ネットワークインタフェースのアドレス長が一致しなければエラー
     557         *  ネットワークインタフェースのアドレス長が一致しなければエラー
    588558         */
    589559        if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
    590560                goto err_ret;
    591561
    592         /* 近隣キャッシュを探索する。*/
     562        /* 近隣キャッシュを探索する。*/
    593563        syscall(wai_sem(SEM_ND6_CACHE));
    594564        if ((ln = nd6_lookup(&nah->target, false)) == NULL)
    595565                goto free_ret;
    596566
    597         /* 近隣キャッシュの状æ
    598 ‹ãŒã€ãƒ‡ãƒ¼ã‚¿ãƒªãƒ³ã‚¯å±¤ã®ã‚¢ãƒ‰ãƒ¬ã‚¹æœªè§£æ±ºã®å ´åˆ */
     567        /* 近隣キャッシュの状態が、データリンク層のアドレス未解決の場合 */
    599568        if (ln->state == ND6_LLINFO_INCOMPLETE) {
    600                 /* 通知されたデータリンク層のアドレスの長さが 0 の場合 */
     569                /* 通知されたデータリンク層のアドレスの長さが 0 の場合 */
    601570                if (lladdr == NULL)
    602571                        goto free_ret;
     
    633602
    634603                /*
    635                  *  状æ
    636 ‹é·ç§»è¡¨
     604                 *  状態遷移表
    637605                 *
    638606                 *  nd_na_flags_reserved
    639                  *  OVERRIDE    SOLICTED lladdr llchange 処理 (L: lladdr を登録する)
     607                 *  OVERRIDE    SOLICTED lladdr llchange 処理 (L: lladdr を登録する)
    640608                 *
    641609                 *      F           F       N      -    (2c)
     
    653621                 */
    654622                if ((nah->nd_na_flags_reserved & ND_NA_FLG_OVERRIDE) == 0 && (lladdr != NULL && llchange)) {    /* (1) */
    655                         /* 状æ
    656 ‹ãŒ REACHABLE なら STALE に遷移する。*/
     623                        /* 状態が REACHABLE なら STALE に遷移する。*/
    657624                        if (ln->state == ND6_LLINFO_REACHABLE) {
    658625                                syscall(get_tim(&now));
     
    666633                         lladdr == NULL) {                                                                              /* (2c) */
    667634
    668                         /* データリンク層のアドレスが通知されていれば更新する。*/
     635                        /* データリンク層のアドレスが通知されていれば更新する。*/
    669636                        if (lladdr != NULL)
    670637                                ln->ifaddr = *(T_IF_ADDR *)lladdr;
    671638
    672                         /* 近隣要請への応答なら REACHABLE に遷移する。*/
     639                        /* 近隣要請への応答なら REACHABLE に遷移する。*/
    673640                        if (nah->nd_na_flags_reserved & ND_NA_FLG_SOLICITED) {
    674641                                ln->state = ND6_LLINFO_REACHABLE;
     
    680647                                }
    681648                        /*
    682                          *  データリンク層のアドレスが通知され、
    683                          *  異なるアドレスなら更新する。
     649                         *  データリンク層のアドレスが通知され、
     650                         *  異なるアドレスなら更新する。
    684651                         */
    685652                        else if (lladdr != NULL && llchange) {
     
    690657                        }
    691658
    692                 /* ルータ通知フラグの処理 */
     659                /* ルータ通知フラグの処理 */
    693660                if ((ln->flags        & ND6_LLIF_ROUTER ) != 0 &&
    694661                    (nah->nd_na_flags_reserved & ND_NA_FLG_ROUTER) == 0) {
    695662                        /*
    696                          *  送信相手がルータ通知フラグを無効にした場合。
    697                          *  ディフォルト・ルータリストから対象のルータを削除し、
    698                          *  近隣探索キャッシュを更新する。
     663                         *  送信相手がルータ通知フラグを無効にした場合。
     664                         *  ディフォルト・ルータリストから対象のルータを削除し、
     665                         *  近隣探索キャッシュを更新する。
    699666                         */
    700667                        T_DEF_ROUTER    *dr = NULL;
     
    714681        ln->asked = 0;
    715682
    716         /* アドレス解決å¾
    717 ã¡ã®ãƒ‡ãƒ¼ã‚¿ã‚°ãƒ©ãƒ ãŒã‚れば送信する。*/
     683        /* アドレス解決待ちのデータグラムがあれば送信する。*/
    718684        nd6_output_hold(ifp, ln);
    719685
     
    729695
    730696/*
    731  *  nd6_na_output -- 近隣通知を出力する。
     697 *  nd6_na_output -- 近隣通知を出力する。
    732698 */
    733699
     
    747713
    748714        /*
    749          *  近隣通知ペイロード長を計算する。
    750          *  tlladdr が真ならネットワークインタフェースのアドレスを追加する。
     715         *  近隣通知ペイロード長を計算する。
     716         *  tlladdr が真ならネットワークインタフェースのアドレスを追加する。
    751717         */
    752718        if (tlladdr && IF_SOFTC_TO_IFADDR(ifp->ic))
     
    756722
    757723        /*
    758          *  他のリンクからの偽造されたデータグラムを
    759          *  排除するため、ホップリミットに IPV6_MAXHLIM (255) を設定する。
     724         *  他のリンクからの偽造されたデータグラムを
     725         *  排除するため、ホップリミットに IPV6_MAXHLIM (255) を設定する。
    760726         */
    761727        ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_MAXHLIM);
    762728
    763         /* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/
     729        /* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/
    764730        if (in6_get_datagram(&output, len, 0, daddr, NULL,
    765731                             IPPROTO_ICMPV6, IPV6_MAXHLIM,
     
    771737        if (IN6_IS_ADDR_UNSPECIFIED(daddr)) {
    772738                /*
    773                  *  宛å
    774 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ãŒç„¡æŒ‡å®šã®å ´åˆã¯ã€
    775                  *  リンクローカルå
    776 ¨ãƒŽãƒ¼ãƒ‰ãƒ»ãƒžãƒ«ãƒã‚­ãƒ£ã‚¹ãƒˆã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’設定する。
     739                 *  宛先アドレスが無指定の場合は、
     740                 *  リンクローカル全ノード・マルチキャストアドレスを設定する。
    777741                 */
    778742                ip6h->dst.s6_addr32[0] = IPV6_ADDR_INT32_MLL;
     
    786750
    787751        /*
    788          *  宛å
    789 ˆã‚¢ãƒ‰ãƒ¬ã‚¹ã«ãµã•ã‚ã—い送信å
    790 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’、
    791          *  ネットワークインタフェースから探索して利用する。
     752         *  宛先アドレスにふさわしい送信元アドレスを、
     753         *  ネットワークインタフェースから探索して利用する。
    792754         */
    793755        if ((ifa = in6_ifawithifp(ifp, &ip6h->dst)) == NULL) {
     
    797759        ip6h->src = ifa->addr;
    798760
    799         /* 近隣通知ヘッダを設定する。*/
     761        /* 近隣通知ヘッダを設定する。*/
    800762        nah = GET_NEIGHBOR_ADVERT_HDR(output, IF_IP6_NEIGHBOR_ADVERT_HDR_OFFSET);
    801763        nah->hdr.type        = ND_NEIGHBOR_ADVERT;
     
    803765        nah->target          = *taddr;
    804766
    805         /* tlladdr が真ならネットワークインタフェースのアドレスを追加する。*/
     767        /* tlladdr が真ならネットワークインタフェースのアドレスを追加する。*/
    806768        if (tlladdr && (mac = IF_SOFTC_TO_IFADDR(ifp->ic)) != NULL) {
    807769
     
    821783        nah->nd_na_flags_reserved = flags;
    822784
    823         /* チェックサムを計算する。*/
     785        /* チェックサムを計算する。*/
    824786        nah->hdr.sum = 0;
    825787        nah->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)nah - output->buf, len);
    826788
    827         /* 送信する。*/
     789        /* 送信する。*/
    828790        NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS],
    829791                       output->len - GET_IF_IP6_HDR_SIZE(output));
     
    835797
    836798/*
    837  *  nd6_dad_start -- 重複アドレス検出 (DAD) を開始する。
     799 *  nd6_dad_start -- 重複アドレス検出 (DAD) を開始する。
    838800 *
    839  *    第3引数のtick は、インタフェースが起動されてから、重複検出を
    840  *    送信するまでの最小é
    841 å»¶å€¤ã§ã‚る。
     801 *    第3引数のtick は、インタフェースが起動されてから、重複検出を
     802 *    送信するまでの最小遅延値である。
    842803 */
    843804
     
    845806nd6_dad_start (T_IFNET *ifp, T_IN6_IFADDR *ifa, int_t *tick)
    846807{
    847         /* フラグをチェックする。*/
     808        /* フラグをチェックする。*/
    848809        if (!(ifa->flags & IN6_IFF_TENTATIVE))
    849810                return;
     
    862823                return;
    863824
    864         /* 重複アドレス検出カウンタをリセットする。*/
     825        /* 重複アドレス検出カウンタをリセットする。*/
    865826        ifa->ns_icount = ifa->na_icount = ifa->ns_ocount = 0;
    866827
    867828        /*
    868          *  重複アドレス検出要請を送信する。ただし、インタフェースを
    869          *  初期化した直後に、最初に送信する場合は、ランダムなé
    870 å»¶ã‚’行う。
     829         *  重複アドレス検出要請を送信する。ただし、インタフェースを
     830         *  初期化した直後に、最初に送信する場合は、ランダムな遅延を行う。
    871831         */
    872832        if (tick == NULL) {
    873833                nd6_dad_ns_output(ifp, ifa);
    874834
    875                 /* タイムアウトを近隣探索の送信間隔に設定する。*/
     835                /* タイムアウトを近隣探索の送信間隔に設定する。*/
    876836                timeout((callout_func)nd6_dad_timer, ifa, ND6_RETRANS_TIME * NET_TIMER_HZ / SYSTIM_HZ);
    877837                }
     
    879839                int_t ntick;
    880840
    881                 if (*tick == 0) /* 最初の送信 */
     841                if (*tick == 0) /* 最初の送信 */
    882842                        ntick = net_rand() % (ND6_FIRST_DAD_DELAY_TIME * NET_TIMER_HZ / SYSTIM_HZ);
    883843                else
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/nd6_rtr.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$
     
    123111
    124112/*
    125  *  外部関数の定義
     113 *  外部関数の定義
    126114 */
    127115
     
    133121
    134122/*
    135  *  å
    136 ¨åŸŸå¤‰æ•°
    137  */
    138 
    139 SYSTIM  nd6_base_reachable_time         = ND6_DEF_REACHABLE_TIME;       /* ルータから通知された値            */
    140 SYSTIM  nd6_reachable_time              = ND6_DEF_REACHABLE_TIME;       /* ルータから通知された値の補正値        */
    141 SYSTIM  nd6_recalc_reachtm_interval     = ND6_RECALC_REACHTM_INTERVAL;  /* 到達可能状æ
    142 ‹ã®æœ‰åŠ¹æ™‚間再計算間隔 */
    143 SYSTIM  nd6_retrans_time                = ND6_DEF_RETRANS_TIME;         /* 近隣探索の送信間隔                  */
    144 uint8_t ip6_defhlim                     = IPV6_DEFHLIM;                 /* ホップリミットの規定値            */
    145 
    146 /*
    147  *  局所変数
    148  */
    149 
    150 /*
    151  *  プレフィックス・リスト
     123 *  全域変数
     124 */
     125
     126SYSTIM  nd6_base_reachable_time         = ND6_DEF_REACHABLE_TIME;       /* ルータから通知された値          */
     127SYSTIM  nd6_reachable_time              = ND6_DEF_REACHABLE_TIME;       /* ルータから通知された値の補正値      */
     128SYSTIM  nd6_recalc_reachtm_interval     = ND6_RECALC_REACHTM_INTERVAL;  /* 到達可能状態の有効時間再計算間隔     */
     129SYSTIM  nd6_retrans_time                = ND6_DEF_RETRANS_TIME;         /* 近隣探索の送信間隔                    */
     130uint8_t ip6_defhlim                     = IPV6_DEFHLIM;                 /* ホップリミットの規定値          */
     131
     132/*
     133 *  局所変数
     134 */
     135
     136/*
     137 *  プレフィックス・リスト
    152138 */
    153139
     
    155141
    156142/*
    157  *  ディフォルトルータ・リスト
     143 *  ディフォルトルータ・リスト
    158144 */
    159145
    160146static T_DEF_ROUTER     nd6_def_router[NUM_ND6_DEF_RTR_ENTRY];
    161 static uint_t           def_router_count = 0;                           /* リストにあるルータ数 */
    162 
    163 /*
    164  *  make_mask -- マップ用のマスクを生成する。
     147static uint_t           def_router_count = 0;                           /* リストにあるルータ数 */
     148
     149/*
     150 *  make_mask -- マップ用のマスクを生成する。
    165151 */
    166152
     
    171157        int_t   ix;
    172158
    173         /* マスクを生成する。*/
     159        /* マスクを生成する。*/
    174160        mask = 1;
    175161        for (ix = index; ix -- > 0; )
     
    181167/*
    182168 *  find_pfxlist_reachable_router --
    183  *      指定したプレフィックスを通知したルータがリンク上に存在するかチェックする。
     169 *      指定したプレフィックスを通知したルータがリンク上に存在するかチェックする。
    184170 */
    185171
     
    205191
    206192/*
    207  *  pfxlist_onlink_check -- プレフィックス・リストのオンリンク状æ
    208 ‹ã‚’チェックする。
     193 *  pfxlist_onlink_check -- プレフィックス・リストのオンリンク状態をチェックする。
    209194 *
    210  *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
    211  *          ロックしてから呼び出すこと。
     195 *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
     196 *          ロックしてから呼び出すこと。
    212197 */
    213198
     
    230215        if (ix >= 0) {
    231216                /*
    232                  *  オンリンク状æ
    233 ‹ã®ãƒ—レフィックスが最低一つ存在するときの処理。
    234                  *  各プレフィックスのオンリンク状æ
    235 ‹ã‚’、それらを通知してきたルータの
    236                  *  状æ
    237 ‹ã«å¾“って設定する。
     217                 *  オンリンク状態のプレフィックスが最低一つ存在するときの処理。
     218                 *  各プレフィックスのオンリンク状態を、それらを通知してきたルータの
     219                 *  状態に従って設定する。
    238220                 */
    239221
     
    256238        else {
    257239                /*
    258                  *  どのプレフィックスもオンリンクではなく、
    259                  *  ディフォルトルータも存在しないときの処理。
    260                  *  すべてのプレフィックスを使用可能状æ
    261 ‹ã«è¨­å®šã™ã‚‹ã€‚
     240                 *  どのプレフィックスもオンリンクではなく、
     241                 *  ディフォルトルータも存在しないときの処理。
     242                 *  すべてのプレフィックスを使用可能状態に設定する。
    262243                 */
    263244
     
    275256
    276257        /*
    277          *  各プレフィックス毎に、通知してきたルータの状æ
    278 ‹ã¨
    279          *  オンリンクの状æ
    280 ‹ãŒä¸€è‡´ã—なければ、オンリンク状æ
    281 ‹ã‚’更新する。
     258         *  各プレフィックス毎に、通知してきたルータの状態と
     259         *  オンリンクの状態が一致しなければ、オンリンク状態を更新する。
    282260         */
    283261        for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
     
    302280
    303281        /*
    304          *  リンク上にプレフィックスを通知しているルータが
    305          *  少なくとも 1 台存在するか確認する。
     282         *  リンク上にプレフィックスを通知しているルータが
     283         *  少なくとも 1 台存在するか確認する。
    306284         */
    307285        for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
     
    317295        if (ix >= 0) {
    318296                /*
    319                  *  リンク上にプレフィックスを通知しているルータが
    320                  *  少なくとも 1 台存在する時の処理。
     297                 *  リンク上にプレフィックスを通知しているルータが
     298                 *  少なくとも 1 台存在する時の処理。
    321299                 */
    322300                for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
     
    334312        else {
    335313                /*
    336                  *  リンク上にプレフィックスを通知しているルータが
    337                  *  1 台存在しない時はå
    338 ¨ã¦ã®ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’利用できるようにする。
     314                 *  リンク上にプレフィックスを通知しているルータが
     315                 *  1 台存在しない時は全てのアドレスを利用できるようにする。
    339316                 */
    340317                for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
     
    347324
    348325/*
    349  *  pfxrtr_add -- プレフィックスエントリとディフォルトルータ・エントリをリンクする。
     326 *  pfxrtr_add -- プレフィックスエントリとディフォルトルータ・エントリをリンクする。
    350327 *
    351  *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
    352  *          ロックしてから呼び出すこと。
     328 *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
     329 *          ロックしてから呼び出すこと。
    353330 */
    354331
     
    356333pfxrtr_add (int_t prefix_index, int_t rtr_index)
    357334{
    358         /*  プレフィックスエントリとディフォルトルータ・エントリをリンクする。*/
     335        /*  プレフィックスエントリとディフォルトルータ・エントリをリンクする。*/
    359336        nd6_prefix[prefix_index].routermap |= make_mask(rtr_index);
    360337        nd6_def_router[rtr_index].plistmap |= make_mask(prefix_index);
     
    364341
    365342/*
    366  *  nd6_pfxrtr_lookup -- プレフィックスエントリからルータを探索する。
     343 *  nd6_pfxrtr_lookup -- プレフィックスエントリからルータを探索する。
    367344 */
    368345
     
    374351
    375352/*
    376  *  defrouter_select -- 優å
    377 ˆãƒ‡ã‚£ãƒ•ã‚©ãƒ«ãƒˆãƒ»ãƒ«ãƒ¼ã‚¿ã‚’選択しなおす。
     353 *  defrouter_select -- 優先ディフォルト・ルータを選択しなおす。
    378354 *
    379  *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
    380  *          ロックしてから呼び出すこと。
     355 *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
     356 *          ロックしてから呼び出すこと。
    381357 */
    382358
     
    392368                if ((ln = nd6_lookup(&dr->addr, false)) != NULL && ND6_IS_LLINFO_PROBREACH(ln)) {
    393369               
    394                         /* 選択したルータをå
    395 ˆé ­ã«ç§»ã™ã€‚*/
     370                        /* 選択したルータを先頭に移す。*/
    396371                        router = *dr;
    397372                        for (tix = ix; tix > 0; tix --)
     
    404379
    405380/*
    406  *  defrtrlist_update -- ディフォルトルータ・リストを更新する。
     381 *  defrtrlist_update -- ディフォルトルータ・リストを更新する。
    407382 *
    408  *      戻り値は、ルータのインデックス。
    409  *      ただし、値が -1 なら、プレフィックス・リストは更新しない。
     383 *      戻り値は、ルータのインデックス。
     384 *      ただし、値が -1 なら、プレフィックス・リストは更新しない。
    410385 */
    411386
     
    420395        syscall(wai_sem(SEM_ND6_DEFRTRLIST));
    421396
    422         /* 登録済か調べる。*/
     397        /* 登録済か調べる。*/
    423398        if ((fdr = nd6_defrtrlist_lookup(src)) != NULL) {
    424                 /* 登録済みの場合の処理 */
     399                /* 登録済みの場合の処理 */
    425400                if (lifetime == 0) {
    426401                        nd6_defrtrlist_del(fdr);
     
    429404                        }
    430405                else {
    431                         fdr->lifetime = lifetime * SYSTIM_HZ;           /* lifetime の単位は秒 */
     406                        fdr->lifetime = lifetime * SYSTIM_HZ;           /* lifetime の単位は秒 */
    432407                        fdr->flags    = flags;
    433408                        fdr->expire   = now + fdr->lifetime;
     
    443418        if (fdr == NULL && def_router_count < NUM_ND6_DEF_RTR_ENTRY) {
    444419                /*
    445                  *  def_router_count < NUM_ND6_DEF_RTR_ENTRY であれば、
    446                  *  nd6_def_router[def_router_count]; が空きエントリ
     420                 *  def_router_count < NUM_ND6_DEF_RTR_ENTRY であれば、
     421                 *  nd6_def_router[def_router_count]; が空きエントリ
    447422                 */
    448423                fdr = &nd6_def_router[def_router_count];
    449424                }
    450425
    451         /* 空きエントリがなければ、有効時間が短いエントリを削除する。*/
     426        /* 空きエントリがなければ、有効時間が短いエントリを削除する。*/
    452427        if (fdr == NULL) {
    453428                T_DEF_ROUTER    *sdr = NULL;
     
    458433                        diff = (int32_t)(dr->expire - now);
    459434                        if (diff <= 0) {        /* dr->expire <= now */
    460                                 /* 既に、有効時間が過ぎている。*/
     435                                /* 既に、有効時間が過ぎている。*/
    461436                                sdr = dr;
    462437                                break;
     
    471446                }
    472447
    473         /* 各メンバに値を設定する。*/
     448        /* 各メンバに値を設定する。*/
    474449        fdr->plistmap = 0;
    475450        fdr->addr     = *src;
    476         fdr->lifetime = lifetime * SYSTIM_HZ;           /* lifetime の単位は秒 */
     451        fdr->lifetime = lifetime * SYSTIM_HZ;           /* lifetime の単位は秒 */
    477452        fdr->flags    = flags;
    478453        fdr->expire   = now + fdr->lifetime;
     
    481456
    482457        /*
    483          *  ディフォルトルータとして登録するが、
    484          *  既にディフォルトルータがあれば選択しなおさない。
     458         *  ディフォルトルータとして登録するが、
     459         *  既にディフォルトルータがあれば選択しなおさない。
    485460         */
    486461        if (fdr - nd6_def_router != 0)
     
    492467
    493468/*
    494  *  in6_ifadd -- インタフェースにアドレスを追加する。
     469 *  in6_ifadd -- インタフェースにアドレスを追加する。
    495470 */
    496471
     
    506481
    507482        /*
    508          *  リンクローカルアドレスが未登録であれば何もしない。
     483         *  リンクローカルアドレスが未登録であれば何もしない。
    509484         */
    510485        if ((lla->flags & IN6_IFF_DEFINED) == 0)
     
    512487
    513488        /*
    514          *  ルータから通知されたプレフィックス長が、
    515          *  リンクローカルアドレスのプレフィックス長と
    516          *  異なっていればエラー
     489         *  ルータから通知されたプレフィックス長が、
     490         *  リンクローカルアドレスのプレフィックス長と
     491         *  異なっていればエラー
    517492         */
    518493        if (lla->prefix_len != pr->prefix_len)
    519494                return E_PAR;
    520495
    521         /* プレフィックスマスクを生成する。*/
     496        /* プレフィックスマスクを生成する。*/
    522497        in6_plen2pmask(&mask, pr->prefix_len);
    523498
    524         /* アドレスを生成する。*/
     499        /* アドレスを生成する。*/
    525500        for (ix = 0; ix < 4; ix ++)
    526501                addr.s6_addr32[ix] = (pr->prefix.s6_addr32[ix] &  mask.s6_addr32[ix])
    527502                                   | ( lla->addr.s6_addr32[ix] & ~mask.s6_addr32[ix]);
    528503
    529         /* フラグを初期化する。*/
     504        /* フラグを初期化する。*/
    530505        ia->flags = 0;
    531506
     
    536511
    537512/*
    538  *  nd6_prefix_lookup -- プレフィックスを探索する。
     513 *  nd6_prefix_lookup -- プレフィックスを探索する。
    539514 */
    540515
     
    556531
    557532/*
    558  *  prelist_remove -- プレフィックスリストからプレフィックスを削除する。
     533 *  prelist_remove -- プレフィックスリストからプレフィックスを削除する。
    559534 *
    560  *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
    561  *          ロックしてから呼び出すこと。
     535 *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
     536 *          ロックしてから呼び出すこと。
    562537 */
    563538
     
    569544        int_t   rix;
    570545
    571         /* 有効時間切れにする。*/
     546        /* 有効時間切れにする。*/
    572547        pr->vltime = 0;
    573548        pr->pltime = 0;
     
    579554                }
    580555
    581         /*  プレフィックスエントリとディフォルトルータ・エントリのリンクを解除する。*/
     556        /*  プレフィックスエントリとディフォルトルータ・エントリのリンクを解除する。*/
    582557        pr->routermap = 0;
    583558        mask = make_mask(pr - nd6_prefix);
     
    585560                nd6_def_router[rix].plistmap &= ~mask;
    586561
    587         /* プレフィックスを無効にする。*/
     562        /* プレフィックスを無効にする。*/
    588563        pr->flags &= ~ND6_PREFIX_STATE_BUSY;
    589564
     
    592567
    593568/*
    594  *  nd6_prefix_onlink -- プレフィックスをオンリンクに設定し、アドレスを使用可能にする。
     569 *  nd6_prefix_onlink -- プレフィックスをオンリンクに設定し、アドレスを使用可能にする。
    595570 *
    596  *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
    597  *          ロックしてから呼び出すこと。
     571 *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
     572 *          ロックしてから呼び出すこと。
    598573 */
    599574
     
    605580        int_t           ix;
    606581
    607         /* 既にオンリンク状æ
    608 ‹ã«ãªã£ã¦ã„る場合はエラー。*/
     582        /* 既にオンリンク状態になっている場合はエラー。*/
    609583        if ((pr->flags & ND6_PREFIX_STATE_ONLINK) != 0)
    610584                return E_OBJ;
    611585
    612         /* リンクローカルアドレスが未登録であれば何もしない。*/
     586        /* リンクローカルアドレスが未登録であれば何もしない。*/
    613587        lla = &ifp->in_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL];
    614588        if ((lla->flags & IN6_IFF_DEFINED) == 0)
     
    616590
    617591        /*
    618          *  指定されたプレフィックスが割り当てられているインタフェースの
    619          *  アドレスæƒ
    620 å ±ã‚’探す。
     592         *  指定されたプレフィックスが割り当てられているインタフェースの
     593         *  アドレス情報を探す。
    621594         */
    622595        for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) {
     
    628601        if (ix >= 0) {
    629602
    630                 /* アドレスæƒ
    631 å ±ã‚’使用可能にする。*/
     603                /* アドレス情報を使用可能にする。*/
    632604                ia->flags &= ~IN6_IFF_DETACHED;
    633605
    634                 /* プレフィックスをオンリンクに設定する。*/
     606                /* プレフィックスをオンリンクに設定する。*/
    635607                pr->flags |= ND6_PREFIX_STATE_ONLINK;
    636608                }
     
    640612
    641613/*
    642  *  nd6_prefix_offlink -- プレフィックスをオフリンクに設定し、アドレスを使用不可にする。
     614 *  nd6_prefix_offlink -- プレフィックスをオフリンクに設定し、アドレスを使用不可にする。
    643615 *
    644  *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
    645  *          ロックしてから呼び出すこと。
     616 *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
     617 *          ロックしてから呼び出すこと。
    646618 */
    647619
     
    653625        int_t           ix;
    654626
    655         /* 既にオフリンク状æ
    656 ‹ã«ãªã£ã¦ã„る場合はエラー。*/
     627        /* 既にオフリンク状態になっている場合はエラー。*/
    657628        if ((pr->flags & ND6_PREFIX_STATE_ONLINK) == 0)
    658629                return E_OBJ;
    659630
    660631        /*
    661          *  指定されたプレフィックスが割り当てられているインタフェースの
    662          *  アドレスæƒ
    663 å ±ã‚’探す。
     632         *  指定されたプレフィックスが割り当てられているインタフェースの
     633         *  アドレス情報を探す。
    664634         */
    665635        for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) {
     
    671641        if (ix >= 0) {
    672642
    673                 /* アドレスæƒ
    674 å ±ã‚’使用不可にする。*/
     643                /* アドレス情報を使用不可にする。*/
    675644                ia->flags |= IN6_IFF_DETACHED;
    676645
    677                 /* プレフィックスをオフリンクに設定する。*/
     646                /* プレフィックスをオフリンクに設定する。*/
    678647                pr->flags &= ~ND6_PREFIX_STATE_ONLINK;
    679648                }
     
    683652
    684653/*
    685  *  in6_init_prefix_ltimes -- プレフィックスの有効時間を設定する。
     654 *  in6_init_prefix_ltimes -- プレフィックスの有効時間を設定する。
    686655 */
    687656
     
    691660        SYSTIM          now;
    692661
    693         /* 推奨有効時間が有効時間より長いときはエラー */
     662        /* 推奨有効時間が有効時間より長いときはエラー */
    694663        if (pr->pltime > pr->vltime)
    695664                return E_PAR;
     
    712681
    713682/*
    714  *  nd6_prelist_add -- プレフィックスリストにプレフィックスを追加する。
     683 *  nd6_prelist_add -- プレフィックスリストにプレフィックスを追加する。
    715684 *
    716  *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
    717  *          ロックしてから呼び出すこと。
     685 *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
     686 *          ロックしてから呼び出すこと。
    718687 */
    719688
     
    725694        ER              error;
    726695
    727         /* プレフィックスリストから空きのプレフィックスエントリを探索する。*/
     696        /* プレフィックスリストから空きのプレフィックスエントリを探索する。*/
    728697        for (ix = NUM_ND6_PREFIX_ENTRY; ix --; ) {
    729698                pr = &nd6_prefix[ix];
     
    732701                }
    733702
    734         /* プレフィックスリストに空きがなければエラー */
     703        /* プレフィックスリストに空きがなければエラー */
    735704        if (ix < 0)
    736705                return NULL;
     
    738707        pr->flags |= ND6_PREFIX_STATE_BUSY;
    739708
    740         /* プレフィックスを追加する。*/
     709        /* プレフィックスを追加する。*/
    741710        pr->prefix     = pi->prefix;
    742711        pr->prefix_len = pi->prefix_len;
    743712
    744         /* フラグを設定する。*/
     713        /* フラグを設定する。*/
    745714        if ((pi->flags & ND_OPT_PI_FLAG_ONLINK) != 0)
    746715                pr->flags |= ND6_PREFIX_FLAG_ONLINK;
     
    748717                pr->flags |= ND6_PREFIX_FLAG_AUTO;
    749718
    750         /* プレフィックスの有効時間を設定する。*/
     719        /* プレフィックスの有効時間を設定する。*/
    751720        pr->vltime = ntohl(pi->valid);
    752721        pr->pltime = ntohl(pi->preferred);
     
    758727                }
    759728
    760         /* ルータマップを初期化する。*/
     729        /* ルータマップを初期化する。*/
    761730        pr->routermap = 0;
    762731
    763         /* ルータを追加する。*/
     732        /* ルータを追加する。*/
    764733        pfxrtr_add(pr - nd6_prefix, rtr_index);
    765734
     
    768737
    769738/*
    770  *  prelist_update -- プレフィックス・リストを更新する。
     739 *  prelist_update -- プレフィックス・リストを更新する。
    771740 */
    772741
     
    782751        if ((pr = nd6_prefix_lookup(&pi->prefix, pi->prefix_len)) != NULL) {
    783752                /*
    784                  *  登録済みの場合は、プレフィックスリストを更新する。
     753                 *  登録済みの場合は、プレフィックスリストを更新する。
    785754                 */
    786755
    787756                /*
    788                  *  フラグの更新の注意:
    789                  *    on-link ビットと autonomous ビットは
    790                  *    1 から 0 に変更してはならない。
     757                 *  フラグの更新の注意:
     758                 *    on-link ビットと autonomous ビットは
     759                 *    1 から 0 に変更してはならない。
    791760                 */
    792761
     
    798767                if ((pi->flags & ND_OPT_PI_FLAG_ONLINK) != 0) {
    799768                        /*
    800                          *  通知されたプレフィックスがオンリンクの時は、
    801                          *  有効時間を更新する。
     769                         *  通知されたプレフィックスがオンリンクの時は、
     770                         *  有効時間を更新する。
    802771                         */
    803772                        pr->vltime = ntohl(pi->valid);
     
    809778                    (pr->flags & ND6_PREFIX_STATE_ONLINK) == 0) {
    810779                        /*
    811                          *  オフリンクのプレフィックスがオンリンクになった時の処理を実行する。
     780                         *  オフリンクのプレフィックスがオンリンクになった時の処理を実行する。
    812781                         */
    813782                        if (nd6_prefix_onlink(pr) != E_OK) {
     
    821790                        pfxrtr_add(pr - nd6_prefix, router_index);
    822791                }
    823         else {  /* 未登録の場合 */
    824 
    825                 /* 有効時間 0 のプレフィックスは追加しない。*/
     792        else {  /* 未登録の場合 */
     793
     794                /* 有効時間 0 のプレフィックスは追加しない。*/
    826795                if (pi->valid == 0) {
    827796                        syscall(sig_sem(SEM_ND6_DEFRTRLIST));
     
    829798                        }
    830799
    831                 /* オフリンクでアドレス自動設定に使用しなければ追加しない。*/
     800                /* オフリンクでアドレス自動設定に使用しなければ追加しない。*/
    832801                if ((pi->flags & (ND_OPT_PI_FLAG_ONLINK | ND_OPT_PI_FLAG_AUTO)) !=
    833802                                 (ND_OPT_PI_FLAG_ONLINK | ND_OPT_PI_FLAG_AUTO)) {
     
    836805                        }
    837806
    838                 /* プレフィックスを追加する。*/
     807                /* プレフィックスを追加する。*/
    839808                if ((pr = nd6_prelist_add(pi, router_index)) == NULL) {
    840809                        syslog(LOG_ERROR, "[ND6 RTR] prefix add failed.");
     
    845814                if ((pr->flags & ND6_PREFIX_FLAG_ONLINK) == 0) {
    846815                        /*
    847                          *  オフリンク・プレフィックスの場合は、有効時間を 0 に設定する。
    848                          *  あとで有効期限切れとなり、リストから削除される。
     816                         *  オフリンク・プレフィックスの場合は、有効時間を 0 に設定する。
     817                         *  あとで有効期限切れとなり、リストから削除される。
    849818                         */
    850819                        pr->vltime = 0;
     
    855824
    856825        /*
    857          *  ステートレス・アドレス自動設定を行う。
     826         *  ステートレス・アドレス自動設定を行う。
    858827         */
    859828        if ((pr->flags & ND6_PREFIX_FLAG_AUTO) == 0) {
     
    863832
    864833        /*
    865          *  通知されたプレフィックスが割り当てられているインタフェースの
    866          *  アドレスæƒ
    867 å ±ã‚’探す。
     834         *  通知されたプレフィックスが割り当てられているインタフェースの
     835         *  アドレス情報を探す。
    868836         */
    869837        for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) {
     
    875843                }
    876844
    877         if (ix >= 0) {  /* 登録済みのとき */
     845        if (ix >= 0) {  /* 登録済みのとき */
    878846                if ((ia->flags & IN6_IFF_AUTOCONF) == 0) {
    879847                        /*
    880                          *  ステートレス・アドレス自動設定により
    881                          *  設定されていなければ更新しない。
     848                         *  ステートレス・アドレス自動設定により
     849                         *  設定されていなければ更新しない。
    882850                         */
    883851                        ;
     
    885853                else if (ia->flags & IN6_IFF_TENTATIVE) {
    886854                        /*
    887                          *  重複検出中なら更新しない。
     855                         *  重複検出中なら更新しない。
    888856                         */
    889857                        ;
     
    896864                        int_t           ix;
    897865
    898                         /* 有効時間を設定する。*/
     866                        /* 有効時間を設定する。*/
    899867                        syscall(get_tim(&now));
    900868
     
    908876                        if (pr->vltime > (2 * 60 * 60) || pr->vltime > vltime) {
    909877                                /*
    910                                  *  lifetime.expire、pi->valid (有効時間) と
    911                                  *  pi->preferred (推奨有効時間) の単位は [s]。
    912                                  *  通知された有効時間が 2 時間以上か、現在の残り時間より
    913                                  *  長ければ、新しい有効時間には、通知された有効時間を設定する。
     878                                 *  lifetime.expire、pi->valid (有効時間) と
     879                                 *  pi->preferred (推奨有効時間) の単位は [s]。
     880                                 *  通知された有効時間が 2 時間以上か、現在の残り時間より
     881                                 *  長ければ、新しい有効時間には、通知された有効時間を設定する。
    914882                                 */
    915883                                vltime = pr->vltime;
     
    919887                        else {
    920888                                /*
    921                                  *  IPsec は未実è£
    922 ã®ãŸã‚ã€2 時間を設定する。
     889                                 *  IPsec は未実装のため、2 時間を設定する。
    923890                                 */
    924891                                vltime = 2 * 60 * 60;
     
    927894                        lla = &ifp->in_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL];
    928895
    929                         /* プレフィックスマスクを生成する。*/
     896                        /* プレフィックスマスクを生成する。*/
    930897                        in6_plen2pmask(&mask, pr->prefix_len);
    931898
    932                         /* アドレスを生成する。*/
     899                        /* アドレスを生成する。*/
    933900                        for (ix = 0; ix < 4; ix ++)
    934901                                addr.s6_addr32[ix] = (pr->prefix.s6_addr32[ix] &  mask.s6_addr32[ix])
     
    941908                }
    942909
    943         else { /* 未登録のとき */
     910        else { /* 未登録のとき */
    944911
    945912                /*
    946                  *  プレフィックス長をチェックする。
    947                  *  もし、プレフィックス長とインタフェース ID の合計が
    948                  *  128 ビットに一致しない時は、プレフィックスæƒ
    949 å ±ã‚’無視する。
     913                 *  プレフィックス長をチェックする。
     914                 *  もし、プレフィックス長とインタフェース ID の合計が
     915                 *  128 ビットに一致しない時は、プレフィックス情報を無視する。
    950916                 */
    951917                if ((ifidlen = in6_if2idlen(ifp)) < 0)
     
    972938
    973939/*
    974  *  nd6_prelist_timer -- プレフィックス・リストの管理タイマー
     940 *  nd6_prelist_timer -- プレフィックス・リストの管理タイマー
    975941 */
    976942
     
    983949
    984950        syscall(get_tim(&now));
    985         now /= SYSTIM_HZ;               /* 有効時間の単位は [s] */
     951        now /= SYSTIM_HZ;               /* 有効時間の単位は [s] */
    986952
    987953        syscall(wai_sem(SEM_ND6_DEFRTRLIST));
     
    996962
    997963/*
    998  *  nd6_rs_output -- ルータ要請を出力する。
     964 *  nd6_rs_output -- ルータ要請を出力する。
    999965 */
    1000966
     
    1011977
    1012978        /*
    1013          *  送信å
    1014 ƒã‚¢ãƒ‰ãƒ¬ã‚¹ã«ã¯ã€ãƒªãƒ³ã‚¯ãƒ­ãƒ¼ã‚«ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’設定するが、
    1015          *  まだ設定されいなければ、無指定を設定する。
     979         *  送信元アドレスには、リンクローカルアドレスを設定するが、
     980         *  まだ設定されいなければ、無指定を設定する。
    1016981         */
    1017982        if ((ifa = in6ifa_ifpwithix(IF_GET_IFNET(), IPV6_IFADDR_IX_LINKLOCAL)) != NULL && !IFA6_IS_NOTREADY(ifa))
     
    1022987        len = (ROUTER_SOLICIT_HDR_SIZE + 7) >> 3 << 3;
    1023988
    1024         /* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/
     989        /* ネットワークバッファを獲得し、IPv6 ヘッダを設定する。*/
    1025990        if (in6_get_datagram(&output, len, 0, &in6_addr_linklocal_allrouters,
    1026991                             saddr, IPPROTO_ICMPV6,
     
    1028993                return;
    1029994
    1030         /* ルータ要請ヘッダを設定する。*/
     995        /* ルータ要請ヘッダを設定する。*/
    1031996        rsh = GET_ROUTER_SOLICIT_HDR(output, IF_IP6_ROUTER_SOLICIT_HDR_OFFSET);
    1032997        rsh->hdr.type       = ND_ROUTER_SOLICIT;
     
    1034999        rsh->nd_rs_reserved = 0;
    10351000
    1036         /* チェックサムを計算する。*/
     1001        /* チェックサムを計算する。*/
    10371002        rsh->hdr.sum = 0;
    10381003        rsh->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)rsh - output->buf, len);
    10391004
    1040         /* 送信する。*/
     1005        /* 送信する。*/
    10411006        NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS],
    10421007                       output->len - GET_IF_IP6_HDR_SIZE(output));
     
    10481013
    10491014/*
    1050  *  nd6_defrtrlist_lookup -- ディフォルトルータ・リストを探索する。
     1015 *  nd6_defrtrlist_lookup -- ディフォルトルータ・リストを探索する。
    10511016 */
    10521017
     
    10671032
    10681033/*
    1069  *  nd6_router_lookup -- ルータのアドレスを返す。
     1034 *  nd6_router_lookup -- ルータのアドレスを返す。
    10701035 *
    10711036 */
     
    10811046
    10821047/*
    1083  *  nd6_defrtrlist_del -- ディフォルトルータ・リストからルータを削除する。
     1048 *  nd6_defrtrlist_del -- ディフォルトルータ・リストからルータを削除する。
    10841049 *
    1085  *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
    1086  *          ロックしてから呼び出すこと。
     1050 *    注意: この関数を呼び出すときは、SEM_ND6_DEFRTRLIST で、
     1051 *          ロックしてから呼び出すこと。
    10871052 */
    10881053
     
    10981063        if ((ia = in6ifa_ifpwithrtrix(ifp, rtrix)) != NULL) {
    10991064                /*
    1100                  *  ネットワークインタフェースのプレフィックスを通知した
    1101                  *  ルータを到達不能にする。
     1065                 *  ネットワークインタフェースのプレフィックスを通知した
     1066                 *  ルータを到達不能にする。
    11021067                 */
    11031068                ia->router_index = IN6_RTR_IX_UNREACH;
    11041069                }
    11051070
    1106         /* プレフィックスリストからルータを削除する。*/
     1071        /* プレフィックスリストからルータを削除する。*/
    11071072        mask = make_mask(rtrix);
    11081073        for (pix = NUM_ND6_PREFIX_ENTRY; pix --; )
    11091074                nd6_prefix[pix].routermap &= ~mask;
    11101075
    1111         /* 削除したルータ以降を前に詰める。*/
     1076        /* 削除したルータ以降を前に詰める。*/
    11121077        for (rix = rtrix + 1; rix < def_router_count; rix ++)
    11131078                nd6_def_router[rix - 1] = nd6_def_router[rix];
    11141079
    1115         /* プレフィックスリストのルータも更新する。*/
     1080        /* プレフィックスリストのルータも更新する。*/
    11161081        if (dr != nd6_def_router) {
    11171082
    1118                 /* マスクを生成する。*/
     1083                /* マスクを生成する。*/
    11191084                mask = 1;
    11201085                for (ix = rtrix - 1; ix -- > 0; )
     
    11281093        def_router_count --;
    11291094
    1130         /* プレフィックスのオンリンク状æ
    1131 ‹ã‚’確認する。*/
     1095        /* プレフィックスのオンリンク状態を確認する。*/
    11321096        pfxlist_onlink_check();
    11331097
    11341098        /*
    1135          *  削除するルータが優å
    1136 ˆãƒ‡ã‚£ãƒ•ã‚©ãƒ«ãƒˆãƒ«ãƒ¼ã‚¿ã®å ´åˆã¯ã€
    1137          *  優å
    1138 ˆãƒ‡ã‚£ãƒ•ã‚©ãƒ«ãƒˆãƒ«ãƒ¼ã‚¿ã‚’選択しなおす。
     1099         *  削除するルータが優先ディフォルトルータの場合は、
     1100         *  優先ディフォルトルータを選択しなおす。
    11391101         */
    11401102        if (rtrix == 0)
     
    11431105
    11441106/*
    1145  *  nd6_defrtrlist_timer -- ディフォルトルータ・リストの管理タイマー
     1107 *  nd6_defrtrlist_timer -- ディフォルトルータ・リストの管理タイマー
    11461108 */
    11471109
     
    11671129
    11681130/*
    1169  *  nd6_get_drl -- ディフォルトルータ・リストを獲得する。
     1131 *  nd6_get_drl -- ディフォルトルータ・リストを獲得する。
    11701132 */
    11711133
     
    11781140
    11791141/*
    1180  *  nd6_get_prl -- プレフィックス・リストを獲得する。
     1142 *  nd6_get_prl -- プレフィックス・リストを獲得する。
    11811143 */
    11821144
     
    11901152
    11911153/*
    1192  *  nd6_ra_input -- ルータ通知のå
    1193 ¥åŠ›å‡¦ç†ã€‚
     1154 *  nd6_ra_input -- ルータ通知の入力処理。
    11941155 */
    11951156
     
    12151176
    12161177        /*
    1217          *  ヘッダのチェック、以下の場合は破棄する。
    1218          *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
    1219          *    ・ヘッダ長が短い
    1220          *    ・始点アドレスが、リンクローカルではない (RFC2461)
     1178         *  ヘッダのチェック、以下の場合は破棄する。
     1179         *    ・ホップリミットが IPV6_MAXHLIM (255) 以外
     1180         *    ・ヘッダ長が短い
     1181         *    ・始点アドレスが、リンクローカルではない (RFC2461)
    12211182         */
    12221183        if (ip6h->hlim != IPV6_MAXHLIM                ||
     
    12271188        rah  = GET_ROUTER_ADVERT_HDR(input, off);
    12281189
    1229         /* 近隣探索オプションのオフセットを記録する。*/
     1190        /* 近隣探索オプションのオフセットを記録する。*/
    12301191        if (nd6_options(nd_opt_off, input->buf + (off + ROUTER_ADVERT_HDR_SIZE),
    12311192                                    input->len - (off + ROUTER_ADVERT_HDR_SIZE)) != E_OK)
    12321193                goto err_ret;
    12331194        /*
    1234          *  到達可能状æ
    1235 ‹ã®æœ‰åŠ¹æ™‚間の更新
     1195         *  到達可能状態の有効時間の更新
    12361196
    12371197         */
    12381198        if (rah->reachable) {
    1239                 advrea = ntohl(rah->reachable) * SYSTIM_HZ / 1000;      /* rah->reachable の単位は ms */
     1199                advrea = ntohl(rah->reachable) * SYSTIM_HZ / 1000;      /* rah->reachable の単位は ms */
    12401200                if (advrea <= ND6_MAX_REACHABLE_TIME &&
    12411201                    advrea != nd6_base_reachable_time) {
     
    12491209                }
    12501210
    1251         /* 近隣探索の送信間隔の更新 */
     1211        /* 近隣探索の送信間隔の更新 */
    12521212        if (rah->retransmit) {
    12531213                nd6_retrans_time = ntohl(rah->retransmit) * SYSTIM_HZ / 1000;
    1254                                                                         /* rah->retransmit の単位は ms */
    1255                 }
    1256 
    1257         /* ホップリミットの規定値の更新 */
     1214                                                                        /* rah->retransmit の単位は ms */
     1215                }
     1216
     1217        /* ホップリミットの規定値の更新 */
    12581218        if (rah->nd_ra_current_hoplimit) {
    12591219                ip6_defhlim = rah->nd_ra_current_hoplimit;
    12601220                }
    12611221
    1262         /* ディフォルトルータリストの更新 */
     1222        /* ディフォルトルータリストの更新 */
    12631223        rix = defrtrlist_update(&ip6h->src,
    12641224                               ntohs(rah->nd_ra_router_lifetime),
    1265                                rah->nd_ra_flags);               /* rah->nd_ra_router_lifetime の単位は秒 */
    1266 
    1267         /* プレフィックスリストの更新 */
     1225                               rah->nd_ra_flags);               /* rah->nd_ra_router_lifetime の単位は秒 */
     1226
     1227        /* プレフィックスリストの更新 */
    12681228        if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFO_COUNT)]) {
    12691229                T_ND_OPT_PREFIX_INFO    *pi;
     
    12731233                pi_off   = off + ROUTER_ADVERT_HDR_SIZE
    12741234                               + nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFORMATION)] - 8;
    1275                 /* 注意: オプションオフセットé
    1276 åˆ—には、オフセット + 8 が設定されている。*/
     1235                /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
    12771236                while (pi_count -- > 0) {
    12781237                        pi = (T_ND_OPT_PREFIX_INFO*)(input->buf + pi_off);
    12791238                        if (pi->type != ND_OPT_PREFIX_INFORMATION)
    1280                                 /* オプションタイプがプレフィックスæƒ
    1281 å ±ã§ãªã‘れば何もしない。*/
     1239                                /* オプションタイプがプレフィックス情報でなければ何もしない。*/
    12821240                                ;
    12831241                        else if (pi->len != 4)
    1284                                 /* プレフィックスæƒ
    1285 å ±ã®é•·ã•ãŒ 32 (8×4) でなければ不正 */
     1242                                /* プレフィックス情報の長さが 32 (8×4) でなければ不正 */
    12861243                                syslog(LOG_NOTICE, "[ND6 RTR] prefix opt len: %d.", pi->len);
    12871244                        else if (pi->prefix_len > 128)
    1288                                 /* プレフィックス長は 128 ビット以下 */
     1245                                /* プレフィックス長は 128 ビット以下 */
    12891246                                syslog(LOG_NOTICE, "[ND6 RTR] prefix len: %d.", pi->prefix_len);
    12901247                        else if (IN6_IS_ADDR_MULTICAST(&pi->prefix) ||
    12911248                                 IN6_IS_ADDR_LINKLOCAL(&pi->prefix))
    1292                                 /* マルチキャストとリンクローカルは不正 */
     1249                                /* マルチキャストとリンクローカルは不正 */
    12931250                                syslog(LOG_NOTICE, "[ND6 RTR] invalid addr: %s from %s.",
    12941251                                                   ipv62str(NULL, &pi->prefix), ipv62str(NULL, &ip6h->src));
    1295 #if 0   /* FreeBSD 6.3 で削除されている。*/
     1252#if 0   /* FreeBSD 6.3 で削除されている。*/
    12961253                        else if (IN6_IS_ADDR_AGGREGATE_UNICAST(&pi->prefix) &&         
    12971254                                 (pi->prefix_len != 64)                       )
    1298                                 /* 集約可能ユニキャストで、プレフィックス長が 64 ビット以外は不正 */
     1255                                /* 集約可能ユニキャストで、プレフィックス長が 64 ビット以外は不正 */
    12991256                                syslog(LOG_NOTICE, "[ND6 RTR] invalid prefix len for global: %d.", pi->prefix_len);
    13001257#endif
    13011258                        else if (ntohl(pi->preferred) > ntohl(pi->valid))
    1302                                 /* 推奨有効時間が有効時間より長ければ不正 */
     1259                                /* 推奨有効時間が有効時間より長ければ不正 */
    13031260                                syslog(LOG_NOTICE, "[ND6 RTR] preferred(%d) > valid time(%d).", ntohl(pi->preferred), ntohl(pi->valid));
    13041261                        else {
     
    13071264                                if (rix >= 0) {
    13081265                                        /*
    1309                                          *  defrtrlist_update の戻り値は、ルータのインデックス。
    1310                                          *  ただし、値が -1 なら、プレフィックス・リストは更新しない。
     1266                                         *  defrtrlist_update の戻り値は、ルータのインデックス。
     1267                                         *  ただし、値が -1 なら、プレフィックス・リストは更新しない。
    13111268                                         */
    1312                                         prelist_update(pi, rix);        /* プレフィックス・リストを更新する。*/
     1269                                        prelist_update(pi, rix);        /* プレフィックス・リストを更新する。*/
    13131270                                        }
    13141271                                }
    1315                         pi_off += pi->len << 3;         /* オプション長の単位は 8 バイト */
    1316                         }
    1317                 }
    1318 
    1319         /* MTU の更新 */
     1272                        pi_off += pi->len << 3;         /* オプション長の単位は 8 バイト */
     1273                        }
     1274                }
     1275
     1276        /* MTU の更新 */
    13201277        if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_MTU)]) {
    13211278                T_ND_OPT_MTU_HDR        *optmtuh;
     
    13261283
    13271284                /*
    1328                  *  値のチェック
     1285                 *  値のチェック
    13291286                 *
    1330                  *    オプション長: 1
    1331                  *    予約:         0
     1287                 *    オプション長: 1
     1288                 *    予約:         0
    13321289                 */
    13331290                if (optmtuh->len != 1 || optmtuh->reserved != 0)
    13341291                        goto err_ret;
    13351292
    1336                 /* MTU が IPv6 MMTU(1280 オクテット)以下なら無視する。*/
     1293                /* MTU が IPv6 MMTU(1280 オクテット)以下なら無視する。*/
    13371294                mtu = ntohl(optmtuh->mtu);
    13381295                if (mtu >= IPV6_MMTU) {
     
    13431300
    13441301        /*
    1345          *  ルータの始点リンクアドレスを近隣キャッシュに登録する。
     1302         *  ルータの始点リンクアドレスを近隣キャッシュに登録する。
    13461303         */
    13471304        if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)]) {
    13481305                opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + ROUTER_ADVERT_HDR_SIZE) +
    13491306                                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)] - 8);
    1350                 /* 注意: オプションオフセットé
    1351 åˆ—には、オフセット + 8 が設定されている。*/
     1307                /* 注意: オプションオフセット配列には、オフセット + 8 が設定されている。*/
    13521308                lladdr     = (uint8_t *)(opth + 1);
    13531309                lladdr_len = (opth->len << 3);
     
    13551311
    13561312        /*
    1357          *  ネットワークインタフェースのアドレス長が一致しなければエラー
     1313         *  ネットワークインタフェースのアドレス長が一致しなければエラー
    13581314         */
    13591315        if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
    13601316                goto err_ret;
    13611317
    1362         /* 近隣キャッシュに登録する。*/
     1318        /* 近隣キャッシュに登録する。*/
    13631319        nd6_cache_lladdr(ifp, &ip6h->src, (T_IF_ADDR *)lladdr, ND_ROUTER_ADVERT, 0);
    13641320
    13651321        /*
    1366          *  ルータの始点リンクアドレスを近隣キャッシュに登録したので、
    1367          *  オンリンク状æ
    1368 ‹ãŒå¤‰åŒ–する可能性があるため、それをチェックする。
     1322         *  ルータの始点リンクアドレスを近隣キャッシュに登録したので、
     1323         *  オンリンク状態が変化する可能性があるため、それをチェックする。
    13691324         */
    13701325        pfxlist_onlink_check();
     
    13801335
    13811336        /*
    1382          *  ルータ通知を受信しない場合は、破棄して終了する。
     1337         *  ルータ通知を受信しない場合は、破棄して終了する。
    13831338         */
    13841339        NET_COUNT_ICMP6(net_count_nd6[NC_ND6_RA_IN_PACKETS], 1);
     
    13911346
    13921347/*
    1393  *  nd6_rtrsol_ctl -- ルータ要請出力の制御
     1348 *  nd6_rtrsol_ctl -- ルータ要請出力の制御
    13941349 */
    13951350
     
    14001355        int_t           try;
    14011356
    1402         /* リンクローカルアドレスのアドレスæƒ
    1403 å ±ã‚’得る。*/
     1357        /* リンクローカルアドレスのアドレス情報を得る。*/
    14041358        if ((ifa = in6ifa_ifpwithix(IF_GET_IFNET(), IPV6_IFADDR_IX_LINKLOCAL)) == NULL)
    14051359                return;
    14061360
    1407         /* リンクローカルアドレスの重複検出終了をå¾
    1408 ã¤ã€‚*/
     1361        /* リンクローカルアドレスの重複検出終了を待つ。*/
    14091362        do {
    1410                 /* リンクローカルアドレスの重複検出終了å¾
    1411 ã¡æ™‚間を設定する。*/
     1363                /* リンクローカルアドレスの重複検出終了待ち時間を設定する。*/
    14121364                syscall(dly_tsk(net_rand() % TMO_ND6_RTR_SOL_DELAY));
    14131365
    1414                 /* å¾
    1415 ã£ã¦ã„る間に重複が検出されたら終了する。*/
     1366                /* 待っている間に重複が検出されたら終了する。*/
    14161367                if (ifa->flags & IN6_IFF_DUPLICATED)
    14171368                        return;
     
    14211372        for (try = 0; try < NUM_ND6_RTR_SOL_RETRY; try ++) {
    14221373
    1423                 /* ディフォルトルータ・リストにエントリがあれば終了 */
     1374                /* ディフォルトルータ・リストにエントリがあれば終了 */
    14241375                if (def_router_count > 0)
    14251376                        return;
    14261377
    1427                 /* ルータ要請を出力する。*/
     1378                /* ルータ要請を出力する。*/
    14281379                nd6_rs_output();
    14291380
    1430                 /* 出力の 2 回目以降のé
    1431 å»¶æ™‚間を設定する。*/
     1381                /* 出力の 2 回目以降の遅延時間を設定する。*/
    14321382                syscall(dly_tsk(TMO_ND6_RTR_SOL_INTERVAL));
    14331383                }
     
    14371387
    14381388/*
    1439  *  nd6_onlink_prefix_lookup -- プレフィックスを探索する。
     1389 *  nd6_onlink_prefix_lookup -- プレフィックスを探索する。
    14401390 */
    14411391
     
    14501400        now /= SYSTIM_HZ;
    14511401
    1452         /* 推奨有効時間å†
    1453 ã®ãƒ—レフィックスを探索する。*/
     1402        /* 推奨有効時間内のプレフィックスを探索する。*/
    14541403        for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
    14551404                pr = &nd6_prefix[ix];
     
    14631412                }
    14641413
    1465         /* 有効時間å†
    1466 ã®ãƒ—レフィックスを探索する。*/
     1414        /* 有効時間内のプレフィックスを探索する。*/
    14671415        for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
    14681416                pr = &nd6_prefix[ix];
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/route6.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 è²¬ã™ã‚‹ã“と.
    36  *
    37  *  本ソフトウェアは,無保証で提供されているものである.上記著作権è€
    38 ãŠ
    39  *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
    40  *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
    41  *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
     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プロジェクトを免責すること.
     25 *
     26 *  本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     27 *  よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
     28 *  含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
     29 *  接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
    4230 *
    4331 *  @(#) $Id$
     
    115103#if 0
    116104        /*
    117          *  通信帯域を食いつぶす攻撃への対応のため、
    118          *  タイプ 0 経路制御ヘッダの処理を行わない。
     105         *  通信帯域を食いつぶす攻撃への対応のため、
     106         *  タイプ 0 経路制御ヘッダの処理を行わない。
    119107         */
    120108
    121109/*
    122  *  ip6_rthdr0 -- タイプ 0 経路制御ヘッダのå
    123 ¥åŠ›é–¢æ•°
     110 *  ip6_rthdr0 -- タイプ 0 経路制御ヘッダの入力関数
    124111 */
    125112
     
    128115{
    129116        if (rt0h->segleft == 0) {
    130                 /* 中継ノード数は 0 なので、終点ノード */
     117                /* 中継ノード数は 0 なので、終点ノード */
    131118                return E_OK;
    132119                }
    133120
    134         /* len と segleft の正当性チェック */
     121        /* len と segleft の正当性チェック */
    135122#ifdef IP6_CFG_COMPAT_RFC1883
    136123        if ((rt0h->len % 2) || (rt0h->len > 46)) {
     
    139126#endif
    140127                /*
    141                  *  len は偶数で、(23 * 2) まで。
    142                  *  ただし、(23 * 2) の制限は RFC 2462 で削除されている。
     128                 *  len は偶数で、(23 * 2) まで。
     129                 *  ただし、(23 * 2) の制限は RFC 2462 で削除されている。
    143130                 */
    144131                icmp6_error(input, ICMP6_PARAM_PROB,
     
    148135                }
    149136
    150         /* len が中継ノード数と矛盾していないかチェックする。*/
     137        /* len が中継ノード数と矛盾していないかチェックする。*/
    151138        if ((rt0h->len / 2) < rt0h->segleft) {
    152139                /*
    153                  *  len は 8オクテット単位、segleft は 16オクテット単位なので、
    154                  *  len / 2 == segleft となるはず。
    155                  *  len / 2 <  segleft はエラー。
     140                 *  len は 8オクテット単位、segleft は 16オクテット単位なので、
     141                 *  len / 2 == segleft となるはず。
     142                 *  len / 2 <  segleft はエラー。
    156143                 */
    157144                icmp6_error(input, ICMP6_PARAM_PROB,
     
    162149
    163150        /*
    164          *  残りの中継ノード数が 1 以上であれば、このノードは最終的な
    165          *  終点ノードではない。本実è£
    166 ã§ã¯ã€ä¸­ç¶™ã‚’しないので、
    167          *  å
    168 ¥åŠ›ãƒ‡ãƒ¼ã‚¿ã‚°ãƒ©ãƒ ã®å‡¦ç†ã‚’終了する。
     151         *  残りの中継ノード数が 1 以上であれば、このノードは最終的な
     152         *  終点ノードではない。本実装では、中継をしないので、
     153         *  入力データグラムの処理を終了する。
    169154         */
    170155        syscall(rel_net_buf(input));
     
    175160
    176161/*
    177  *  route6_input -- 経路制御ヘッダのå
    178 ¥åŠ›é–¢æ•°
     162 *  route6_input -- 経路制御ヘッダの入力関数
    179163 */
    180164
     
    186170        uint_t          len, off = *offp;
    187171
    188         /* ネットワークバッファの残りの長さをチェックする。*/
     172        /* ネットワークバッファの残りの長さをチェックする。*/
    189173        if (input->len - off < sizeof(T_IP6_RT_HDR))
    190174                goto buf_rel;
     
    193177        len = (rth->len + 1) << 3;
    194178
    195         /* 経路制御ヘッダの長さをチェックする。*/
     179        /* 経路制御ヘッダの長さをチェックする。*/
    196180        if (input->len < off + len)
    197181                goto buf_rel;
     
    199183#if 0
    200184        /*
    201          *  通信帯域を食いつぶす攻撃への対応のため、
    202          *  タイプ 0 経路制御ヘッダの処理を行わない。
     185         *  通信帯域を食いつぶす攻撃への対応のため、
     186         *  タイプ 0 経路制御ヘッダの処理を行わない。
    203187         */
    204188        if (rth->type == IPV6_RTHDR_TYPE_0) {
    205189                if (ip6_rthdr0(input, (T_IP6_RT0_HDR*)rth) != E_OK) {
    206190
    207                         /* エラーの場合は、ip6_rthdr0 でバッファを開放している。*/
     191                        /* エラーの場合は、ip6_rthdr0 でバッファを開放している。*/
    208192                        return IPPROTO_DONE;
    209193                        }
     
    212196
    213197                /*
    214                  *  残りの中継ノード数が 1 以上であれば、このノードは最終的な
    215                  *  終点ノードではない。本実è£
    216 ã§ã¯ã€ä¸­ç¶™ã‚’しないので、
    217                  *  ICMP6 エラーを返送して処理を終了する。
     198                 *  残りの中継ノード数が 1 以上であれば、このノードは最終的な
     199                 *  終点ノードではない。本実装では、中継をしないので、
     200                 *  ICMP6 エラーを返送して処理を終了する。
    218201                 */
    219202                icmp6_error(input, ICMP6_PARAM_PROB,
     
    226209
    227210                /*
    228                  *  残りの中継ノード数が 1 以上であれば、このノードは最終的な
    229                  *  終点ノードではない。本実è£
    230 ã§ã¯ã€ä¸­ç¶™ã‚’しないので、
    231                  *  ICMP6 エラーを返送して処理を終了する。
     211                 *  残りの中継ノード数が 1 以上であれば、このノードは最終的な
     212                 *  終点ノードではない。本実装では、中継をしないので、
     213                 *  ICMP6 エラーを返送して処理を終了する。
    232214                 */
    233215                icmp6_error(input, ICMP6_PARAM_PROB,
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet6/scope6.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$
     
    143131
    144132/*
    145  *  in6_addrscope -- アドレスのスコープ ID を返す。
     133 *  in6_addrscope -- アドレスのスコープ ID を返す。
    146134 */
    147135
  • EcnlProtoTool/trunk/asp3_dcre/tinet/tinet.tf

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;charset=UTF-8
    r270 r321  
    66$                    Tomakomai National College of Technology, JAPAN
    77
    8 $   ä¸Šè¨˜è‘—作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10 $   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    11 $   å¤‰ãƒ»å†é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13 $   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14 $       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    15 $       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    16 $   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17 $       ç”¨ã§ãã‚‹å½¢ã§å†é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20 $       è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22 $       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    23 $   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24 $       ç”¨ã§ããªã„形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26 $       ã¨ï¼Ž
    27 $     (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30 $         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    31 $   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    32 $       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    33 ãŠã‚ˆã³TOPPERSプロジェクトをå
    34 è²¬ã™ã‚‹ã“と.
    35 $       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    36 $       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトを
    38 $       å
    39 è²¬ã™ã‚‹ã“と.
     8$   上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9$   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10$   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11$   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12$       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13$       スコード中に含まれていること.
     14$   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15$       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16$       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17$       の無保証規定を掲載すること.
     18$   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19$       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20$       と.
     21$     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22$         作権表示,この利用条件および下記の無保証規定を掲載すること.
     23$   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24$       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25$       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26$       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27$       免責すること.
    4028
    41 $   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    42 ãŠ
    43 $   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    44 $   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    45 $   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    46 $   ã®è²¬ä»»ã‚’負わない.
     29$   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30$   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31$   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32$   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33$   の責任を負わない.
    4734$
    4835$   @(#) $Id$
     
    5138
    5239$ =====================================================================
    53 $ tinet_cfg.h の生成
     40$ tinet_cfg.h の生成
    5441$ =====================================================================
    5542
     
    9986
    10087$ =====================================================================
    101 $ tinet_cfg.c の生成
     88$ tinet_cfg.c の生成
    10289$ =====================================================================
    10390
     
    128115
    129116$
    130 ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ãƒ‡ã‚£ãƒ¬ã‚¯ãƒ†ã‚£ãƒ–(#include)
     117インクルードディレクティブ(#include)
    131118$
    132119$NL$
     
    137124$INCLUDES$
    138125
    139 $       // TCP (IPv4) 受付口
     126$       // TCP (IPv4) 受付口
    140127$IF LENGTH(TCP4_REP.ID_LIST) + LENGTH(VRID_TCP4_REP.ID_LIST)$
    141128        $NL$
     
    168155$END$
    169156
    170 $       // TCP (IPv6) 受付口
     157$       // TCP (IPv6) 受付口
    171158$IF LENGTH(TCP6_REP.ID_LIST) + LENGTH(VRID_TCP6_REP.ID_LIST)$
    172159        $NL$
     
    199186$END$
    200187
    201 $       // TCP (IPv4) 通信端点
     188$       // TCP (IPv4) 通信端点
    202189$IF LENGTH(TCP4_CEP.ID_LIST) + LENGTH(VRID_TCP4_CEP.ID_LIST)$
    203190        $NL$
     
    240227$END$
    241228
    242 $       // TCP (IPv6) 通信端点
     229$       // TCP (IPv6) 通信端点
    243230$IF LENGTH(TCP6_CEP.ID_LIST) + LENGTH(VRID_TCP6_CEP.ID_LIST)$
    244231        $NL$
     
    281268$END$
    282269
    283 $       // UDP (IPv4) 通信端点
     270$       // UDP (IPv4) 通信端点
    284271$IF LENGTH(UDP4_CEP.ID_LIST) + LENGTH(VRID_UDP4_CEP.ID_LIST)$
    285272        $NL$
     
    316303$END$
    317304
    318 $       // UDP (IPv6) 通信端点
     305$       // UDP (IPv6) 通信端点
    319306$IF LENGTH(UDP6_CEP.ID_LIST) + LENGTH(VRID_UDP6_CEP.ID_LIST)$
    320307        $NL$
     
    352339
    353340$ =====================================================================
    354 $ tinet_kern.cfg の生成
     341$ tinet_kern.cfg の生成
    355342$ =====================================================================
    356343
     
    358345/* tinet_kern.cfg */$NL$
    359346
    360 $       // TCP (IPv4) 受付口
     347$       // TCP (IPv4) 受付口
    361348$IF LENGTH(TCP4_REP.ID_LIST) + LENGTH(VRID_TCP4_REP.ID_LIST)$
    362349        $NL$
     
    371358$END$
    372359
    373 $       // TCP (IPv4) 受付口
     360$       // TCP (IPv4) 受付口
    374361$IF LENGTH(TCP6_REP.ID_LIST) + LENGTH(VRID_TCP6_REP.ID_LIST)$
    375362        $NL$
     
    384371$END$
    385372
    386 $       // TCP (IPv4) 通信端点
     373$       // TCP (IPv4) 通信端点
    387374$IF LENGTH(TCP4_CEP.ID_LIST) + LENGTH(VRID_TCP4_CEP.ID_LIST)$
    388375        $NL$
     
    403390$END$
    404391
    405 $       // TCP (IPv6) 通信端点
     392$       // TCP (IPv6) 通信端点
    406393$IF LENGTH(TCP6_CEP.ID_LIST) + LENGTH(VRID_TCP6_CEP.ID_LIST)$
    407394        $NL$
     
    422409$END$
    423410
    424 $       // UDP (IPv4) 通信端点
     411$       // UDP (IPv4) 通信端点
    425412$IF LENGTH(UDP4_CEP.ID_LIST) + LENGTH(VRID_UDP4_CEP.ID_LIST)$
    426413        $NL$
     
    437424$END$
    438425
    439 $       // UDP (IPv6) 通信端点
     426$       // UDP (IPv6) 通信端点
    440427$IF LENGTH(UDP6_CEP.ID_LIST) + LENGTH(VRID_UDP6_CEP.ID_LIST)$
    441428        $NL$
  • EcnlProtoTool/trunk/asp3_dcre/tinet/tinet.trb

    • Property svn:mime-type changed from text/x-ruby to text/x-ruby;charset=UTF-8
    r279 r321  
    66#                    Tomakomai National College of Technology, JAPAN
    77
    8 #   ä¸Šè¨˜è‘—作権è€
    9 ã¯ï¼Œä»¥ä¸‹ã®(1)~(4)の条件を満たす場合に限り,本ソフトウェ
    10 #   ã‚¢ï¼ˆæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã‚’改変したものを含む.以下同じ)を使用・複製・改
    11 #   å¤‰ãƒ»å†é
    12 å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
    13 #   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    14 #       æ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定が,そのままの形でソー
    15 #       ã‚¹ã‚³ãƒ¼ãƒ‰ä¸­ã«å«ã¾ã‚Œã¦ã„ること.
    16 #   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    17 #       ç”¨ã§ãã‚‹å½¢ã§å†é
    18 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é
    19 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
    20 #       è€
    21 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—作権表示,この利用条件および下記
    22 #       ã®ç„¡ä¿è¨¼è¦å®šã‚’掲載すること.
    23 #   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    24 #       ç”¨ã§ããªã„形で再é
    25 å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
    26 #       ã¨ï¼Ž
    27 #     (a) 再é
    28 å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€
    29 ãƒžãƒ‹ãƒ¥ã‚¢ãƒ«ãªã©ï¼‰ã«ï¼Œä¸Šè¨˜ã®è‘—
    30 #         ä½œæ¨©è¡¨ç¤ºï¼Œã“の利用条件および下記の無保証規定を掲載すること.
    31 #   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    32 #       å®³ã‹ã‚‰ã‚‚,上記著作権è€
    33 ãŠã‚ˆã³TOPPERSプロジェクトをå
    34 è²¬ã™ã‚‹ã“と.
    35 #       ã¾ãŸï¼Œæœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã®ãƒ¦ãƒ¼ã‚¶ã¾ãŸã¯ã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ã‹ã‚‰ã®ã„かなる理
    36 #       ç”±ã«åŸºã¥ãè«‹æ±‚からも,上記著作権è€
    37 ãŠã‚ˆã³TOPPERSプロジェクトを
    38 #       å
    39 è²¬ã™ã‚‹ã“と.
     8#   上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
     9#   ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
     10#   変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
     11#   (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     12#       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     13#       スコード中に含まれていること.
     14#   (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     15#       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     16#       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     17#       の無保証規定を掲載すること.
     18#   (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     19#       用できない形で再配布する場合には,次のいずれかの条件を満たすこ
     20#       と.
     21#     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     22#         作権表示,この利用条件および下記の無保証規定を掲載すること.
     23#   (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     24#       害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
     25#       また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     26#       由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
     27#       免責すること.
    4028
    41 #   æœ¬ã‚½ãƒ•ãƒˆã‚¦ã‚§ã‚¢ã¯ï¼Œç„¡ä¿è¨¼ã§æä¾›ã•ã‚Œã¦ã„るものである.上記著作権è€
    42 ãŠ
    43 #   ã‚ˆã³TOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
    44 #   ã«å¯¾ã™ã‚‹é©åˆæ€§ã‚‚含めて,いかなる保証も行わない.また,本ソフトウェ
    45 #   ã‚¢ã®åˆ©ç”¨ã«ã‚ˆã‚Šç›´æŽ¥çš„または間接的に生じたいかなる損害に関しても,そ
    46 #   ã®è²¬ä»»ã‚’負わない.
     29#   本ソフトウェアは,無保証で提供されているものである.上記著作権者お
     30#   よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
     31#   に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
     32#   アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
     33#   の責任を負わない.
    4734#
    48 #   @(#) $Id: tinet.tf 3 2013-09-27 01:07:16Z coas-nagasima $
     35#   @(#) $Id$
    4936
    5037# =====================================================================
    5138
    5239# =====================================================================
    53 # tinet_cfg.h の生成
     40# tinet_cfg.h の生成
    5441# =====================================================================
    5542
     
    10087
    10188# =====================================================================
    102 # tinet_cfg.c の生成
     89# tinet_cfg.c の生成
    10390# =====================================================================
    10491
     
    132119EOS
    133120#
    134 ã‚¤ãƒ³ã‚¯ãƒ«ãƒ¼ãƒ‰ãƒ‡ã‚£ãƒ¬ã‚¯ãƒ†ã‚£ãƒ–(#include)
     121インクルードディレクティブ(#include)
    135122#
    136123$tinetCfgC.add()
     
    143130end
    144131
    145 #       // TCP (IPv4) 受付口
     132#       // TCP (IPv4) 受付口
    146133if $cfgData[:TCP_CRE_REP].size > 0 || $cfgData[:VRID_TCP4_REP].size > 0
    147134        $tinetCfgC.add()
     
    174161end
    175162
    176 #       // TCP (IPv6) 受付口
     163#       // TCP (IPv6) 受付口
    177164if $cfgData[:TCP6_CRE_REP].size > 0 || $cfgData[:VRID_TCP6_REP].size > 0
    178165        $tinetCfgC.add()
     
    205192end
    206193
    207 #       // TCP (IPv4) 通信端点
     194#       // TCP (IPv4) 通信端点
    208195if $cfgData[:TCP_CRE_CEP].size > 0 || $cfgData[:VRID_TCP4_CEP].size > 0
    209196        $tinetCfgC.add()
     
    246233end
    247234
    248 #       // TCP (IPv6) 通信端点
     235#       // TCP (IPv6) 通信端点
    249236if $cfgData[:TCP6_CRE_CEP].size > 0 || $cfgData[:VRID_TCP6_CEP].size > 0
    250237        $tinetCfgC.add()
     
    287274end
    288275
    289 #       // UDP (IPv4) 通信端点
     276#       // UDP (IPv4) 通信端点
    290277if $cfgData[:UDP_CRE_CEP].size > 0 || $cfgData[:VRID_UDP4_CEP].size > 0
    291278        $tinetCfgC.add()
     
    322309end
    323310
    324 #       // UDP (IPv6) 通信端点
     311#       // UDP (IPv6) 通信端点
    325312if $cfgData[:UDP6_CRE_CEP].size > 0 || $cfgData[:VRID_UDP6_CEP].size > 0
    326313        $tinetCfgC.add()
     
    358345
    359346# =====================================================================
    360 # tinet_kern.cfg の生成
    361 # =====================================================================
    362 
    363 #       // TCP (IPv4) 受付口
     347# tinet_kern.cfg の生成
     348# =====================================================================
     349
     350#       // TCP (IPv4) 受付口
    364351if $cfgData[:TCP_CRE_REP].size > 0 || $cfgData[:VRID_TCP4_REP].size > 0
    365352        $cfgData[:TCP_CRE_REP].each do |key, params|
     
    381368end
    382369
    383 #       // TCP (IPv6) 受付口
     370#       // TCP (IPv6) 受付口
    384371if $cfgData[:TCP6_CRE_REP].size > 0 || $cfgData[:VRID_TCP6_REP].size > 0
    385372        $cfgData[:TCP6_CRE_REP].each do |key, params|
     
    401388end
    402389
    403 #       // TCP (IPv4) 通信端点
     390#       // TCP (IPv4) 通信端点
    404391if $cfgData[:TCP_CRE_CEP].size > 0 || $cfgData[:VRID_TCP4_CEP].size > 0
    405392        $cfgData[:TCP_CRE_CEP].each do |key, params|
     
    457444end
    458445
    459 #       // TCP (IPv6) 通信端点
     446#       // TCP (IPv6) 通信端点
    460447if $cfgData[:TCP6_CRE_CEP].size > 0 || $cfgData[:VRID_TCP6_CEP].size > 0
    461448        $cfgData[:TCP6_CRE_CEP].each do |key, params|
     
    513500end
    514501
    515 #       // UDP (IPv4) 通信端点
     502#       // UDP (IPv4) 通信端点
    516503if $cfgData[:UDP_CRE_CEP].size > 0 || $cfgData[:VRID_UDP4_CEP].size > 0
    517504        $cfgData[:UDP_CRE_CEP].each do |key, params|
     
    547534end
    548535
    549 #       // UDP (IPv6) 通信端点
     536#       // UDP (IPv6) 通信端点
    550537if $cfgData[:UDP6_CRE_CEP].size > 0 || $cfgData[:VRID_UDP6_CEP].size > 0
    551538        $cfgData[:UDP6_CRE_CEP].each do |key, params|
  • EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_asp.cfg

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/plain to text/plain;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$
     
    4533
    4634/*
    47  *  TINET の標準システムコンフィギュレーションファイル
     35 *  TINET の標準システムコンフィギュレーションファイル
    4836 */
    4937
     
    7563
    7664/*
    77  *  TINET プロトコルスタックå†
    78 éƒ¨ã®ã‚«ãƒ¼ãƒãƒ«ã‚ªãƒ–ジェクトの指定
     65 *  TINET プロトコルスタック内部のカーネルオブジェクトの指定
    7966 */
    8067
  • EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_config.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    4836
    4937/*
    50  *  TINET 1.2 との互換性のための定義
    51  */
    52 
    53 /* TCPの受動オープンをサポートする。*/
     38 *  TINET 1.2 との互換性のための定義
     39 */
     40
     41/* TCPの受動オープンをサポートする。*/
    5442
    5543#define TCP_CFG_PASSIVE_OPEN
    5644
    57 /* TCPのノンブロッキングコール機能を組込む。*/
     45/* TCPのノンブロッキングコール機能を組込む。*/
    5846
    5947#define TCP_CFG_NON_BLOCKING
    6048
    61 /* UDPのノンブロッキングコール機能を組込む。*/
     49/* UDPのノンブロッキングコール機能を組込む。*/
    6250
    6351#define UDP_CFG_NON_BLOCKING
    6452
    6553/*
    66  *  NIC、システム、CPU、応用プログラムに
    67  *  依存する定義ファイルをインクルードする。
     54 *  NIC、システム、CPU、応用プログラムに
     55 *  依存する定義ファイルをインクルードする。
    6856 */
    6957
     
    9482
    9583/*
    96  *  TINET 1.1 との互換性のための定義
     84 *  TINET 1.1 との互換性のための定義
    9785 */
    9886
     
    10290
    10391/*
    104  *  TINET 1.2 との互換性のための定義
     92 *  TINET 1.2 との互換性のための定義
    10593 */
    10694
     
    11098
    11199/*
    112  *  TINET 1.3 との互換性のための定義
     100 *  TINET 1.3 との互換性のための定義
    113101
    114102#ifdef  NUM_MPF_NET_BUF_REASSM
     
    118106
    119107/*
    120  *  TCP に関する定義
    121  */
    122 
    123 /*
    124  *  MAX_TCP_RCV_SEG: 受信セグメントサイズの最大値
     108 *  TCP に関する定義
     109 */
     110
     111/*
     112 *  MAX_TCP_RCV_SEG: 受信セグメントサイズの最大値
    125113 *
    126  *    注意: 変更すべきではない。
     114 *    注意: 変更すべきではない。
    127115 */
    128116
     
    132120
    133121/*
    134  *  DEF_TCP_SND_SEG: 送信セグメントサイズの規定値
     122 *  DEF_TCP_SND_SEG: 送信セグメントサイズの規定値
    135123 */
    136124
     
    140128
    141129/*
    142  *  TCP 通信端点の送受信ウィンドバッファの省コピー機能
     130 *  TCP 通信端点の送受信ウィンドバッファの省コピー機能
    143131 */
    144132
     
    156144
    157145/*
    158  *  TCP_CFG_URG_OFFSET: 緊急データの最後のバイトのオフセット
     146 *  TCP_CFG_URG_OFFSET: 緊急データの最後のバイトのオフセット
    159147 *
    160  *    -1: BSD の実è£
    161 ã€ç·Šæ€¥ãƒã‚¤ãƒ³ã‚¿ã¯ã€ç·Šæ€¥ãƒ‡ãƒ¼ã‚¿ã®æœ€å¾Œã®ãƒã‚¤ãƒˆã®æ¬¡ã®ãƒã‚¤ãƒˆã‚’差す。
    162  *     0: RFC1122 の規定、緊急ポインタは、緊急データの最後のバイトを差す。
     148 *    -1: BSD の実装、緊急ポインタは、緊急データの最後のバイトの次のバイトを差す。
     149 *     0: RFC1122 の規定、緊急ポインタは、緊急データの最後のバイトを差す。
    163150 */
    164151
     
    168155
    169156/*
    170  *  ARP に関する定義
     157 *  ARP に関する定義
    171158 */
    172159
    173160#ifndef ARP_CACHE_KEEP
    174 #define ARP_CACHE_KEEP          (20*60*NET_TIMER_HZ)    /* ARP キャッシュのタイムアウト     */
    175 #endif
    176 
    177 /*
    178  *  ループバックインタフェースに関する定義
     161#define ARP_CACHE_KEEP          (20*60*NET_TIMER_HZ)    /* ARP キャッシュのタイムアウト     */
     162#endif
     163
     164/*
     165 *  ループバックインタフェースに関する定義
    179166 */
    180167
    181168#ifndef LOMTU
    182 #define LOMTU                   1500    /* ループバックの MTU                    */
    183 #endif
    184 
    185 /*
    186  * TINET サポート関数に関する定義
    187  */
    188 
    189 #ifndef NUM_IPV4ADDR_STR_BUFF           /* ip2str における IP アドレス文字列用バッファ数 */
     169#define LOMTU                   1500    /* ループバックの MTU                  */
     170#endif
     171
     172/*
     173 * TINET サポート関数に関する定義
     174 */
     175
     176#ifndef NUM_IPV4ADDR_STR_BUFF           /* ip2str における IP アドレス文字列用バッファ数 */
    190177
    191178#if defined(SUPPORT_PPP)
     
    202189
    203190#ifndef NUM_IPV6ADDR_STR_BUFF
    204 #define NUM_IPV6ADDR_STR_BUFF   2       /* ip62str における IP アドレス文字列用バッファ数 */
    205 #endif
    206 
    207 #ifndef NUM_MACADDR_STR_BUFF            /* macstr における MAC アドレス文字列用バッファ数 */
     191#define NUM_IPV6ADDR_STR_BUFF   2       /* ip62str における IP アドレス文字列用バッファ数 */
     192#endif
     193
     194#ifndef NUM_MACADDR_STR_BUFF            /* macstr における MAC アドレス文字列用バッファ数 */
    208195
    209196#if defined(SUPPORT_INET4) && defined(ETHER_CFG_ACCEPT_ALL) && defined(ETHER_CFG_MCAST_WARNING)
     
    220207
    221208/*
    222  *  TINET å†
    223 éƒ¨ã®ã‚¿ã‚¤ãƒ ã‚¢ã‚¦ãƒˆå€¤ã®è¨­å®š
     209 *  TINET 内部のタイムアウト値の設定
    224210 */
    225211
    226212#ifndef TMO_IP4_FRAG_GET_NET_BUF
    227 #define TMO_IP4_FRAG_GET_NET_BUF        ULONG_C(1000*1000)      /* [ms]、IPv4 データグラム再構成用ネットワークバッファ獲得タイムアウト     */
     213#define TMO_IP4_FRAG_GET_NET_BUF        ULONG_C(1000*1000)      /* [ms]、IPv4 データグラム再構成用ネットワークバッファ獲得タイムアウト       */
    228214#endif
    229215
    230216#ifndef TMO_IP6_FRAG_GET_NET_BUF
    231 #define TMO_IP6_FRAG_GET_NET_BUF        ULONG_C(1000*1000)      /* [ms]、IPv6 データグラム再構成用ネットワークバッファ獲得タイムアウト     */
     217#define TMO_IP6_FRAG_GET_NET_BUF        ULONG_C(1000*1000)      /* [ms]、IPv6 データグラム再構成用ネットワークバッファ獲得タイムアウト       */
    232218#endif
    233219
    234220#ifndef TMO_PPP_GET_NET_BUF
    235 #define TMO_PPP_GET_NET_BUF             ULONG_C(1000*1000)      /* [ms]、PPP 受信用ネットワークバッファ獲得タイムアウト   */
     221#define TMO_PPP_GET_NET_BUF             ULONG_C(1000*1000)      /* [ms]、PPP 受信用ネットワークバッファ獲得タイムアウト       */
    236222#endif
    237223
    238224#ifndef TMO_ARP_GET_NET_BUF
    239 #define TMO_ARP_GET_NET_BUF             ULONG_C(1000*1000)      /* [ms]、ARP のネットワークバッファ獲得タイムアウト */
     225#define TMO_ARP_GET_NET_BUF             ULONG_C(1000*1000)      /* [ms]、ARP のネットワークバッファ獲得タイムアウト */
    240226#endif
    241227
    242228#ifndef TMO_TCP_GET_NET_BUF
    243 #define TMO_TCP_GET_NET_BUF             ULONG_C(1000*1000)      /* [ms]、TCP のネットワークバッファ獲得タイムアウト */
     229#define TMO_TCP_GET_NET_BUF             ULONG_C(1000*1000)      /* [ms]、TCP のネットワークバッファ獲得タイムアウト */
    244230#endif
    245231
    246232#ifndef TMO_TCP_OUTPUT
    247 #define TMO_TCP_OUTPUT                  ULONG_C(1000*1000)      /* [ms]、TCP 出力タイムアウト                          */
     233#define TMO_TCP_OUTPUT                  ULONG_C(1000*1000)      /* [ms]、TCP 出力タイムアウト                            */
    248234#endif
    249235
    250236#ifndef TMO_UDP_OUTPUT
    251 #define TMO_UDP_OUTPUT                  ULONG_C(1000*1000)      /* [ms]、UDP 出力タイムアウト                          */
     237#define TMO_UDP_OUTPUT                  ULONG_C(1000*1000)      /* [ms]、UDP 出力タイムアウト                            */
    252238#endif
    253239
    254240#ifndef TMO_ICMP_OUTPUT
    255 #define TMO_ICMP_OUTPUT                 ULONG_C(1000*1000)      /* [ms]、ICMP 出力タイムアウト                         */
     241#define TMO_ICMP_OUTPUT                 ULONG_C(1000*1000)      /* [ms]、ICMP 出力タイムアウト                           */
    256242#endif
    257243
    258244#ifndef TMO_ND6_NS_OUTPUT
    259 #define TMO_ND6_NS_OUTPUT               ULONG_C(1000*1000)      /* [ms]、近隣要請出力タイムアウト                  */
     245#define TMO_ND6_NS_OUTPUT               ULONG_C(1000*1000)      /* [ms]、近隣要請出力タイムアウト                    */
    260246#endif
    261247
    262248#ifndef TMO_ND6_NA_OUTPUT
    263 #define TMO_ND6_NA_OUTPUT               ULONG_C(1000*1000)      /* [ms]、近隣通知出力タイムアウト                  */
     249#define TMO_ND6_NA_OUTPUT               ULONG_C(1000*1000)      /* [ms]、近隣通知出力タイムアウト                    */
    264250#endif
    265251
    266252#ifndef TMO_ND6_RS_OUTPUT
    267 #define TMO_ND6_RS_OUTPUT               ULONG_C(1000*1000)      /* [ms]、ルータ要請出力タイムアウト                       */
     253#define TMO_ND6_RS_OUTPUT               ULONG_C(1000*1000)      /* [ms]、ルータ要請出力タイムアウト                   */
    268254#endif
    269255
    270256#ifndef TMO_ARP_OUTPUT
    271 #define TMO_ARP_OUTPUT                  ULONG_C(1000*1000)      /* [ms]、アドレス解決要求出力タイムアウト              */
     257#define TMO_ARP_OUTPUT                  ULONG_C(1000*1000)      /* [ms]、アドレス解決要求出力タイムアウト                */
    272258#endif
    273259
    274260#ifndef TMO_ND6_RTR_SOL_DELAY
    275 #define TMO_ND6_RTR_SOL_DELAY           ULONG_C(1000*1000)      /* [ms]、ルータ要請出力é
    276 å»¶                             */
     261#define TMO_ND6_RTR_SOL_DELAY           ULONG_C(1000*1000)      /* [ms]、ルータ要請出力遅延                               */
    277262#endif
    278263
    279264#ifndef TMO_ND6_RTR_SOL_INTERVAL
    280 #define TMO_ND6_RTR_SOL_INTERVAL        ULONG_C(4000*1000)      /* [ms]、ルータ要請出力間隔                           */
     265#define TMO_ND6_RTR_SOL_INTERVAL        ULONG_C(4000*1000)      /* [ms]、ルータ要請出力間隔                               */
    281266#endif
    282267
    283268#ifndef TMO_IN_REDIRECT
    284                                         /* [s]、向け直しルーティングエントリタイムアウト*/
     269                                        /* [s]、向け直しルーティングエントリタイムアウト*/
    285270#define TMO_IN_REDIRECT                 (10*60*NET_TIMER_HZ)
    286271#endif
    287272
    288273/*
    289  *  TINET å†
    290 éƒ¨ã®ã‚¿ã‚¹ã‚¯ã®ã‚¹ã‚¿ãƒƒã‚¯ã‚µã‚¤ã‚ºã®è¨­å®š
     274 *  TINET 内部のタスクのスタックサイズの設定
    291275 */
    292276
    293277#ifndef TCP_OUT_TASK_STACK_SIZE
    294 #define TCP_OUT_TASK_STACK_SIZE 1024    /* TCP 出力タスクのスタックサイズ          */
     278#define TCP_OUT_TASK_STACK_SIZE 1024    /* TCP 出力タスクのスタックサイズ            */
    295279#endif
    296280
    297281#ifndef UDP_OUT_TASK_STACK_SIZE
    298 #define UDP_OUT_TASK_STACK_SIZE 1024    /* UDP 出力タスクのスタックサイズ                  */
     282#define UDP_OUT_TASK_STACK_SIZE 1024    /* UDP 出力タスクのスタックサイズ                    */
    299283#endif
    300284
    301285#ifndef PPP_INPUT_STACK_SIZE
    302 #define PPP_INPUT_STACK_SIZE    1024    /* PPP タスクのスタックサイズ                */
     286#define PPP_INPUT_STACK_SIZE    1024    /* PPP タスクのスタックサイズ              */
    303287#endif
    304288
    305289#ifndef PPP_OUTPUT_STACK_SIZE
    306 #define PPP_OUTPUT_STACK_SIZE   1024    /* PPP 出力タスクのスタックサイズ          */
     290#define PPP_OUTPUT_STACK_SIZE   1024    /* PPP 出力タスクのスタックサイズ            */
    307291#endif
    308292
    309293#ifndef ETHER_INPUT_STACK_SIZE
    310 #define ETHER_INPUT_STACK_SIZE  1024    /* Ethernet å
    311 ¥åŠ›ã‚¿ã‚¹ã‚¯ã®ã‚¹ã‚¿ãƒƒã‚¯ã‚µã‚¤ã‚º   */
     294#define ETHER_INPUT_STACK_SIZE  1024    /* Ethernet 入力タスクのスタックサイズ       */
    312295#endif
    313296
    314297#ifndef ETHER_OUTPUT_STACK_SIZE
    315 #define ETHER_OUTPUT_STACK_SIZE 1024    /* Ethernet 出力タスクのスタックサイズ     */
     298#define ETHER_OUTPUT_STACK_SIZE 1024    /* Ethernet 出力タスクのスタックサイズ       */
    316299#endif
    317300
    318301#ifndef LOOP_INPUT_STACK_SIZE
    319 #define LOOP_INPUT_STACK_SIZE   1024    /* ループバックå
    320 ¥åŠ›ã‚¿ã‚¹ã‚¯ã®ã‚¹ã‚¿ãƒƒã‚¯ã‚µã‚¤ã‚º   */
     302#define LOOP_INPUT_STACK_SIZE   1024    /* ループバック入力タスクのスタックサイズ  */
    321303#endif
    322304
    323305#ifndef LOOP_OUTPUT_STACK_SIZE
    324 #define LOOP_OUTPUT_STACK_SIZE  1024    /* ループバック出力タスクのスタックサイズ    */
     306#define LOOP_OUTPUT_STACK_SIZE  1024    /* ループバック出力タスクのスタックサイズ  */
    325307#endif
    326308
    327309#ifndef NET_TIMER_STACK_SIZE
    328 #define NET_TIMER_STACK_SIZE    1024    /* ネットワークタイマタスクのスタックサイズ */
    329 #endif
    330 
    331 /*
    332  *  TINET å†
    333 éƒ¨ã®ã‚¿ã‚¹ã‚¯ã®å„ªå
    334 ˆåº¦ã®è¨­å®š
     310#define NET_TIMER_STACK_SIZE    1024    /* ネットワークタイマタスクのスタックサイズ */
     311#endif
     312
     313/*
     314 *  TINET 内部のタスクの優先度の設定
    335315 */
    336316
    337317#ifndef TCP_OUT_TASK_PRIORITY
    338 #define TCP_OUT_TASK_PRIORITY   5       /* TCP 出力タスクの優å
    339 ˆåº¦                    */
     318#define TCP_OUT_TASK_PRIORITY   5       /* TCP 出力タスクの優先度                        */
    340319#endif
    341320
    342321#ifndef UDP_OUT_TASK_PRIORITY
    343 #define UDP_OUT_TASK_PRIORITY   5       /* UDP 出力タスクの優å
    344 ˆåº¦                            */
     322#define UDP_OUT_TASK_PRIORITY   5       /* UDP 出力タスクの優先度                                */
    345323#endif
    346324
    347325#ifndef PPP_INPUT_PRIORITY
    348 #define PPP_INPUT_PRIORITY      5       /* PPP タスクの優å
    349 ˆåº¦                    */
     326#define PPP_INPUT_PRIORITY      5       /* PPP タスクの優先度                  */
    350327#endif
    351328
    352329#ifndef PPP_OUTPUT_PRIORITY
    353 #define PPP_OUTPUT_PRIORITY     5       /* PPP タスクの優å
    354 ˆåº¦                    */
     330#define PPP_OUTPUT_PRIORITY     5       /* PPP タスクの優先度                  */
    355331#endif
    356332
    357333#ifndef ETHER_INPUT_PRIORITY
    358 #define ETHER_INPUT_PRIORITY    5       /* Ethernet å
    359 ¥åŠ›ã‚¿ã‚¹ã‚¯ã®å„ªå
    360 ˆåº¦            */
     334#define ETHER_INPUT_PRIORITY    5       /* Ethernet 入力タスクの優先度           */
    361335#endif
    362336
    363337#ifndef ETHER_OUTPUT_PRIORITY
    364 #define ETHER_OUTPUT_PRIORITY   5       /* Ethernet 出力タスクの優å
    365 ˆåº¦            */
     338#define ETHER_OUTPUT_PRIORITY   5       /* Ethernet 出力タスクの優先度           */
    366339#endif
    367340
    368341#ifndef LOOP_INPUT_PRIORITY
    369 #define LOOP_INPUT_PRIORITY     5       /* ループバックå
    370 ¥åŠ›ã‚¿ã‚¹ã‚¯ã®å„ªå
    371 ˆåº¦            */
     342#define LOOP_INPUT_PRIORITY     5       /* ループバック入力タスクの優先度              */
    372343#endif
    373344
    374345#ifndef LOOP_OUTPUT_PRIORITY
    375 #define LOOP_OUTPUT_PRIORITY    5       /* ループバック出力タスクの優å
    376 ˆåº¦            */
     346#define LOOP_OUTPUT_PRIORITY    5       /* ループバック出力タスクの優先度              */
    377347#endif
    378348
    379349#ifndef NET_TIMER_PRIORITY
    380 #define NET_TIMER_PRIORITY      5       /* ネットワークタイマタスクの優å
    381 ˆåº¦ */
    382 #endif
    383 
    384 /*
    385  *  TINET å†
    386 éƒ¨ã®ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã®ã‚¨ãƒ³ãƒˆãƒªæ•°ã®è¨­å®š
    387  */
    388 
    389 /* UDP 受信キューサイズ */
     350#define NET_TIMER_PRIORITY      5       /* ネットワークタイマタスクの優先度 */
     351#endif
     352
     353/*
     354 *  TINET 内部のデータキューのエントリ数の設定
     355 */
     356
     357/* UDP 受信キューサイズ */
    390358
    391359#ifndef NUM_DTQ_UDP_RCVQ
    392 #define NUM_DTQ_UDP_RCVQ        1       /* 非コールバック用     */
     360#define NUM_DTQ_UDP_RCVQ        1       /* 非コールバック用     */
    393361#endif
    394362
    395363#ifndef NUM_DTQ_UDP_OUTPUT
    396 #define NUM_DTQ_UDP_OUTPUT      1       /* UDP 出力データキューサイズ                        */
     364#define NUM_DTQ_UDP_OUTPUT      1       /* UDP 出力データキューサイズ                      */
    397365#endif
    398366
    399367#ifndef NUM_DTQ_PPP_OUTPUT
    400 #define NUM_DTQ_PPP_OUTPUT      2       /* PPP 出力データキューサイズ、2 以上     */
     368#define NUM_DTQ_PPP_OUTPUT      2       /* PPP 出力データキューサイズ、2 以上 */
    401369#endif
    402370
    403371#ifndef NUM_DTQ_ETHER_OUTPUT
    404 #define NUM_DTQ_ETHER_OUTPUT    2       /* Ethernet 出力データキューサイズ   */
     372#define NUM_DTQ_ETHER_OUTPUT    2       /* Ethernet 出力データキューサイズ */
    405373#endif
    406374
    407375#ifndef NUM_DTQ_LOOP_INPUT
    408 #define NUM_DTQ_LOOP_INPUT      0       /* ループバックå
    409 ¥åŠ›ãƒ‡ãƒ¼ã‚¿ã‚­ãƒ¥ãƒ¼ã‚µã‚¤ã‚º */
     376#define NUM_DTQ_LOOP_INPUT      0       /* ループバック入力データキューサイズ    */
    410377#endif
    411378
    412379#ifndef NUM_DTQ_LOOP_OUTPUT
    413 #define NUM_DTQ_LOOP_OUTPUT     0       /* ループバック出力データキューサイズ  */
    414 #endif
    415 
    416 /*
    417  *  TINET プロトコルスタックå†
    418 éƒ¨ã®ãƒªãƒãƒ¼ãƒ 
     380#define NUM_DTQ_LOOP_OUTPUT     0       /* ループバック出力データキューサイズ    */
     381#endif
     382
     383/*
     384 *  TINET プロトコルスタック内部のリネーム
    419385 */
    420386
  • EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_defs.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    5644
    5745/*
    58  *  カーネルの識別
     46 *  カーネルの識別
    5947 */
    6048
  • EcnlProtoTool/trunk/asp3_dcre/tinet/tinet_kernel_defs.h

    • Property svn:keywords deleted
    • Property svn:mime-type changed from text/x-chdr to text/x-chdr;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$
     
    4533
    4634/*
    47  *  カーネルに関する互換性定義ファイル
     35 *  カーネルに関する互換性定義ファイル
    4836 */
    4937
     
    5644
    5745/*
    58  *  データ型の定義(inttype.h)
     46 *  データ型の定義(inttype.h)
    5947 */
    6048
    6149#ifdef _int8_
    62 typedef _int8_                  int8_t;         /* 符号付き 8 ビット整数 */
    63 typedef unsigned _int8_         uint8_t;        /* 符号無し 8 ビット整数 */
     50typedef _int8_                  int8_t;         /* 符号付き 8 ビット整数 */
     51typedef unsigned _int8_         uint8_t;        /* 符号無し 8 ビット整数 */
    6452#endif  /* of #ifdef _int8_ */
    6553
    6654#ifdef _int16_
    67 typedef _int16_                 int16_t;        /* 符号付き 16 ビット整数 */
    68 typedef unsigned _int16_        uint16_t;       /* 符号無し 16 ビット整数 */
     55typedef _int16_                 int16_t;        /* 符号付き 16 ビット整数 */
     56typedef unsigned _int16_        uint16_t;       /* 符号無し 16 ビット整数 */
    6957#endif  /* of #ifdef _int16_ */
    7058
    7159#ifdef _int32_
    72 typedef _int32_                 int32_t;        /* 符号付き 32 ビット整数 */
    73 typedef unsigned _int32_        uint32_t;       /* 符号無し 32 ビット整数 */
     60typedef _int32_                 int32_t;        /* 符号付き 32 ビット整数 */
     61typedef unsigned _int32_        uint32_t;       /* 符号無し 32 ビット整数 */
    7462#endif  /* of #ifdef _int32_ */
    7563
    7664#ifdef _int64_
    77 typedef unsigned _int64_        uint64_t;       /* 符号無し 64 ビット整数 */
     65typedef unsigned _int64_        uint64_t;       /* 符号無し 64 ビット整数 */
    7866#endif  /* of #ifdef _int64_ */
    7967
    80 typedef signed int              int_t;          /* 自然なサイズの符号付き整数 */
    81 typedef unsigned int            uint_t;         /* 自然なサイズの符号無し整数 */
     68typedef signed int              int_t;          /* 自然なサイズの符号付き整数 */
     69typedef unsigned int            uint_t;         /* 自然なサイズの符号無し整数 */
    8270
    83 typedef signed long             long_t;         /* 長めのサイズの符号付き整数 */
    84 typedef unsigned long           ulong_t;        /* 長めのサイズの符号無し整数 */
     71typedef signed long             long_t;         /* 長めのサイズの符号付き整数 */
     72typedef unsigned long           ulong_t;        /* 長めのサイズの符号無し整数 */
    8573
    8674#ifdef _vp_int_
    87 typedef _vp_int_                intptr_t;       /* ポインタまたは符号付き整数 */
     75typedef _vp_int_                intptr_t;       /* ポインタまたは符号付き整数 */
    8876#else   /* of #ifdef _vp_int_ */
    89 typedef VP                      intptr_t;       /* ポインタまたは符号付き整数 */
     77typedef VP                      intptr_t;       /* ポインタまたは符号付き整数 */
    9078#endif  /* of #ifdef _vp_int_ */
    9179
    92 typedef int                     bool_t;         /* 真偽値 */
     80typedef int                     bool_t;         /* 真偽値 */
    9381
    9482#ifndef true
    95 #define true                    1               /* 真 */
     83#define true                    1               /* */
    9684#endif /* true */
    9785
    9886#ifndef false
    99 #define false                   0               /* 偽 */
     87#define false                   0               /* */
    10088#endif /* false */
    10189
    10290#endif  /* of #ifndef _MACRO_ONLY */
    10391
    104 /* 構造体 structure 中のフィールド field のバイト位置を返すマクロ */
     92/* 構造体 structure 中のフィールド field のバイト位置を返すマクロ */
    10593#ifndef offsetof
    10694#define offsetof(structure, field) ((size_t) &(((structure *) 0)->field))
     
    10896
    10997/*
    110  *  整数定数を作るマクロ
     98 *  整数定数を作るマクロ
    11199 */
    112100#ifndef UINT_C
    113 #define UINT_C(val)             (val ## U)      /* uint_t型の定数を作るマクロ */
     101#define UINT_C(val)             (val ## U)      /* uint_t型の定数を作るマクロ */
    114102#endif /* UINT_C */
    115103
    116104#ifndef ULONG_C
    117 #define ULONG_C(val)            (val ## UL)     /* ulong_t型の定数を作るマクロ */
     105#define ULONG_C(val)            (val ## UL)     /* ulong_t型の定数を作るマクロ */
    118106#endif /* ULONG_C */
    119107
Note: See TracChangeset for help on using the changeset viewer.