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

文字コードを設定

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/tinet/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))
Note: See TracChangeset for help on using the changeset viewer.