Ignore:
Timestamp:
Jan 21, 2018, 12:10:09 AM (6 years ago)
Author:
coas-nagasima
Message:

prototoolに関連するプロジェクトをnewlibからmuslを使うよう変更・更新
ntshellをnewlibの下位の実装から、muslのsyscallの実装に変更・更新
以下のOSSをアップデート
・mruby-1.3.0
・musl-1.1.18
・onigmo-6.1.3
・tcc-0.9.27
以下のOSSを追加
・openssl-1.1.0e
・curl-7.57.0
・zlib-1.2.11
以下のmrbgemsを追加
・iij/mruby-digest
・iij/mruby-env
・iij/mruby-errno
・iij/mruby-iijson
・iij/mruby-ipaddr
・iij/mruby-mock
・iij/mruby-require
・iij/mruby-tls-openssl

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netinet/in_var.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    7171#define _IN_VAR_H_
    7272
    73 #if defined(SUPPORT_INET6)
    74 
     73#include <netinet/in4_var.h>
    7574#include <netinet6/in6_var.h>
    76 
    77 #endif  /* of #if defined(SUPPORT_INET6) */
    7875
    7976/*
     
    10299
    103100/*
    104  *  インタフェースアドレス構造体
    105  */
    106 
    107 typedef struct t_in4_ifaddr {
    108         T_IN4_ADDR              addr;           /* IPv4 アドレス    */
    109         T_IN4_ADDR              mask;           /* サブネットマスク     */
    110         } T_IN4_IFADDR;
    111 
    112 /*
    113  *  ルーティング表エントリ構造体
    114  */
    115 
    116 typedef struct t_in4_rtentry {
    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;          /* フラグ                                  */
    122         } T_IN4_RTENTRY;
    123 
    124 /*
    125  *  TINET 1.1 との互換性のための定義
    126  */
    127 
    128 #ifdef NUM_ROUTE_ENTRY
    129 
    130 #define NUM_STATIC_ROUTE_ENTRY          NUM_ROUTE_ENTRY
    131 #define NUM_REDIRECT_ROUTE_ENTRY        0
    132 #define T_RT_ENTRY                      T_IN_RTENTRY
    133 
    134 #else   /* of #ifdef NUM_ROUTE_ENTRY */
    135 
    136 #define NUM_ROUTE_ENTRY                 \
    137         (NUM_STATIC_ROUTE_ENTRY + NUM_REDIRECT_ROUTE_ENTRY)
    138                                         /* ルーティング表のエントリ数        */
    139 
    140 #endif  /* of #ifdef NUM_ROUTE_ENTRY */
    141 
    142 /*
    143101 *  ルーティングエントリ状態フラグ
    144102 */
     
    151109 */
    152110
    153 #if defined(SUPPORT_INET4)
    154 
    155 #define IN_SET_HEADER(nbuf,len,dst,src,proto,ttl)       \
    156                                         in4_set_header(nbuf,len,dst,src,proto,ttl)
     111#if defined(_IP6_CFG)
     112
     113#define T_IN_ADDR                       T_IN6_ADDR
     114#define T_IPEP                          T_IPV6EP
     115#define IP_ADDRANY                      IPV6_ADDRANY
     116
     117#elif defined(_IP4_CFG) /* of #if defined(_IP6_CFG) */
     118
     119#define T_IN_ADDR                       T_IN4_ADDR
     120#define T_IPEP                          T_IPV4EP
     121#define IP_ADDRANY                      IPV4_ADDRANY
     122
     123#endif  /* of #if defined(_IP6_CFG) */
     124
     125#if defined(_IP6_CFG)
     126
     127#if defined(_IP4_CFG)
     128
     129#define IN_CKSUM(nbuf,proto,off,len)    (GET_IP_VER(nbuf)==IPV6_VERSION \
     130                                        ?in6_cksum(nbuf,proto,off,len)  \
     131                                        :in4_cksum(nbuf,proto,off,len))
     132#define IN_IS_DSTADDR_ACCEPT(myaddr,nbuf)       \
     133                                        inn_is_dstaddr_accept(myaddr,nbuf)
     134#define IN_ARE_HDR_ADDR_EQUAL(nbuf)     (GET_IP_VER(nbuf)==IPV6_VERSION \
     135                                        ?IN6_ARE_ADDR_EQUAL(&GET_IP6_HDR(nbuf)->dst,&GET_IP6_HDR(nbuf)->src)    \
     136                                        :IN4_ARE_ADDR_EQUAL(&GET_IP4_HDR(nbuf)->dst,&GET_IP4_HDR(nbuf)->src))
     137#define IN_ARE_NET_SRCADDR_EQUAL(ipaddr,nbuf)   \
     138                                        inn_are_net_srcaddr_equal(ipaddr,nbuf)
     139#define IN_COPY_TO_HOST(dst,nbuf)       inn_copy_to_host(dst,nbuf)
     140#define IN_GET_DATAGRAM(nbuf,len,maxlen,dst,src,next,hlim,nbatr,tmout)  \
     141                                        inn_get_datagram(nbuf,len,maxlen,dst,src,next,hlim,nbatr,tmout)
     142#define IN_IS_ADDR_MULTICAST(addr)      inn_is_addr_multicast(addr)
     143#define IN_IS_NET_ADDR_MULTICAST(nbuf)  IN_IS_ADDR_MULTICAST(&GET_IP6_HDR(nbuf)->dst)
     144#define IN_ADDRWITHIFP(ifp,src,dst)     inn_addrwithifp(ifp,src,dst)
     145#define IN_IS_ADDR_ANY(addr)            IN6_IS_ADDR_UNSPECIFIED(addr)
     146
     147#else   /* of #if defined(_IP4_CFG) */
     148
     149#define IN_CKSUM(nbuf,proto,off,len)    in6_cksum(nbuf,proto,off,len)
     150#define IN_IS_DSTADDR_ACCEPT(myaddr,nbuf)       \
     151                                        INN6_IS_DSTADDR_ACCEPT(myaddr,nbuf)
     152#define IN_ARE_HDR_ADDR_EQUAL(nbuf)     IN6_ARE_ADDR_EQUAL(&GET_IP6_HDR(nbuf)->dst,&GET_IP6_HDR(nbuf)->src)
     153#define IN_ARE_NET_SRCADDR_EQUAL(ipaddr,nbuf)   \
     154                                        IN6_ARE_ADDR_EQUAL(ipaddr,&GET_IP6_HDR(nbuf)->src)
     155#define IN_COPY_TO_HOST(dst,nbuf)       IN6_COPY_TO_HOST(dst, nbuf)
     156#define IN_GET_DATAGRAM(nbuf,len,maxlen,dst,src,next,hlim,nbatr,tmout)  \
     157                                        in6_get_datagram(nbuf,len,maxlen,dst,src,next,hlim,nbatr,tmout)
     158#define IN_IS_ADDR_MULTICAST(addr)      IN6_IS_ADDR_MULTICAST(addr)
     159#define IN_IS_NET_ADDR_MULTICAST(nbuf)  IN6_IS_ADDR_MULTICAST(&GET_IP6_HDR(nbuf)->dst)
     160#define IN_ADDRWITHIFP(ifp,src,dst)     in6_addrwithifp(ifp,src,dst)
     161#define IN_IS_ADDR_ANY(addr)            IN6_IS_ADDR_UNSPECIFIED(addr)
     162
     163#endif  /* of #if defined(_IP4_CFG) */
     164
     165#else   /* of #if defined(_IP6_CFG) */
     166
     167#if defined(_IP4_CFG)
     168
     169#define IN_CKSUM(nbuf,proto,off,len)    in4_cksum(nbuf,proto,off,len)
     170#define IN_IS_DSTADDR_ACCEPT(myaddr,nbuf)       \
     171                                        inn4_is_dstaddr_accept(myaddr,nbuf)
     172#define IN_ARE_HDR_ADDR_EQUAL(nbuf)     IN4_ARE_ADDR_EQUAL(&GET_IP4_HDR(nbuf)->dst,&GET_IP4_HDR(nbuf)->src)
     173#define IN_ARE_NET_SRCADDR_EQUAL(ipaddr,nbuf)   \
     174                                        (*(ipaddr)==ntohl(GET_IP4_HDR(nbuf)->src))
     175#define IN_COPY_TO_HOST(dst,nbuf)       IN4_COPY_TO_HOST(dst, nbuf)
    157176#define IN_GET_DATAGRAM(nbuf,len,maxlen, dst,src,proto,ttl,nbatr,tmout) \
    158177                                        in4_get_datagram(nbuf,len,maxlen, dst,src,proto,ttl,nbatr,tmout)
    159 #define IN_CKSUM(nbuf,proto,off,len)    in4_cksum(nbuf,proto,off,len)
    160 #define IN_IS_DSTADDR_ACCEPT(myaddr,dstaddr)                    \
    161                                         in4_is_dstaddr_accept(myaddr,dstaddr)
    162 #define IN_IFAWITHIFP(ifp,dst)          in4_ifawithifp(ifp,dst)
    163 #define T_IN_IFADDR                     T_IN4_IFADDR
    164 #define T_IN_RTENTRY                    T_IN4_RTENTRY
    165 
    166 #endif  /* of #if defined(SUPPORT_INET4) */
    167 
    168 /*
    169  *  ルーティング表
    170  */
    171 
    172 extern T_IN_RTENTRY routing_tbl[];
    173 
    174 /*
    175  *  前方参照
    176  */
    177 
    178 #ifndef T_NET_BUF_DEFINED
    179 typedef struct t_net_buf T_NET_BUF;
    180 #define T_NET_BUF_DEFINED
    181 #endif
    182 
    183 #ifndef T_IFNET_DEFINED
    184 typedef struct t_ifnet T_IFNET;
    185 #define T_IFNET_DEFINED
    186 #endif
     178#define IN_IS_ADDR_MULTICAST(addr)      IN4_IS_ADDR_MULTICAST(*(addr))
     179#define IN_IS_NET_ADDR_MULTICAST(nbuf)  IN4_IS_ADDR_MULTICAST(ntohl(GET_IP4_HDR(nbuf)->dst))
     180#define IN_ADDRWITHIFP(ifp,src,dst)     in4_addrwithifp(ifp,src,dst)
     181#define IN_IS_ADDR_ANY(addr)            IN4_IS_ADDR_ANY(addr)
     182
     183#else   /* of #if defined(_IP4_CFG) */
     184
     185#error "not implemented."
     186
     187#endif  /* of #if defined(_IP4_CFG) */
     188
     189#endif  /* of #if defined(_IP6_CFG) */
     190
     191#ifndef _MACRO_ONLY
    187192
    188193/*
    189194 *  関数
    190195 */
    191 
    192 extern void ip_input (T_NET_BUF *data);
    193 extern ER in4_set_header (T_NET_BUF *nbuf, uint_t len,
    194                           T_IN4_ADDR *dstaddr, T_IN4_ADDR *srcaddr, uint8_t proto, uint8_t ttl);
    195 extern ER in4_get_datagram (T_NET_BUF **nbuf, uint_t len, uint_t maxlen,
    196                             T_IN4_ADDR *dstaddr, T_IN4_ADDR *srcaddr,
    197                             uint8_t proto, uint8_t ttl, ATR nbatr, TMO tmout);
    198 extern uint16_t in4_cksum (T_NET_BUF *nbuf, uint8_t proto, uint_t off, uint_t len);
    199 extern T_IN4_ADDR in4_rtalloc (T_IN4_ADDR dst);
    200 extern void in4_rtredirect (T_IN4_ADDR gateway, T_IN4_ADDR target, uint8_t flags, uint32_t tmo);
    201 extern void in4_init (void);
    202 extern T_IN4_IFADDR *in4_ifawithifp (T_IFNET *ifp, T_IN4_ADDR *dst);
    203 extern T_IN_RTENTRY *in_rtnewentry (uint8_t flags, uint32_t tmo);
    204 extern void in_rttimer (void);
    205 extern void in_rtinit (void);
    206 extern const T_NET_BUF**ip_get_frag_queue (void);
    207 
    208 /*
    209  *  in4_is_dstaddr_accept -- 宛先アドレスとして正しいかチェックする。
    210  *
    211  *    注意: dstaddr は、
    212  *          TINET-1.2 からネットワークバイトオーダ、
    213  *          TINET-1.1 までは、ホストバイトオーダ
    214  */
    215 extern bool_t in4_is_dstaddr_accept (T_IN4_ADDR *myaddr, T_IN4_ADDR *dstaddr);
    216 
    217 /*
    218  *  in_cksum -- チェックサム計算関数、IPv4、ICMPv4 用
    219  *
    220  *  注意: data は 4 オクテット単位でパディングすること。
    221  *        data が 2 オクテット単位にアラインされていないと
    222  *        例外が発生する可能性がある。
    223  *        len  は 4 オクテット単位にアラインされていること。
    224  */
    225 extern 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  */
    235 extern 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 オクテット単位にアラインされていること。
    244  */
    245 extern uint32_t in_cksum_carry (uint32_t sum);
     196extern bool_t   inn_is_dstaddr_accept (T_IN6_ADDR *myaddr, T_NET_BUF *nbuf);
     197extern bool_t   inn_is_addr_multicast (T_IN6_ADDR *addr);
     198extern bool_t   inn_are_net_srcaddr_equal (T_IN6_ADDR *ipaddr, T_NET_BUF *nbuf);
     199extern void     inn_copy_to_host (T_IN6_ADDR *dst, T_NET_BUF *nbuf);
     200extern ER       inn_get_datagram (T_NET_BUF **nbuf, uint_t len, uint_t maxlen,
     201                                  T_IN6_ADDR *dstaddr, T_IN6_ADDR *srcaddr,
     202                                  uint8_t next, uint8_t hlim, ATR nbatr, TMO tmout);
     203extern T_IN6_ADDR *inn_addrwithifp (T_IFNET *ifp, T_IN6_ADDR *src, T_IN6_ADDR *dst);
     204
     205#endif  /* of #ifndef _MACRO_ONLY */
    246206
    247207#endif  /* of #ifndef _IN_VAR_H_ */
Note: See TracChangeset for help on using the changeset viewer.