          TOPPERS/JSP  TCP/IP ץȥ륹åTINET
                       ꡼ 1.22004/9/7

1.  TOPPERS/JSP  TCP/IP ץȥ륹å

  TINET ϡ ITRON 4.0 ɥץե򥵥ݡȤ
TOPPERS/JSP Ѥ TCP/IP ץȥ륹åǤ롣ʲˡTINET ꡼
 1.2 εǽפҤ٤롣

   (1)   API

         ITRON TCP/IP API ͤɸൡǽ
         Ū ITRON TCP/IPʥС 6API ͤɸൡǽ

   (2)   TCP

         BSD ̿ǽ
         祻ȥMSS˥ץ
         ʥԡ API
         Υ֥å󥰥

   (3)   UDP

         Υ֥å󥰥

   (4)   õ

         õ
         õΤ
         롼Υåμ
         롼å
         ɥ쥹ʣеǽ

   (5)   ICMPv4

         ׵ᡦ
         顼ȹġ
         ľåμȹġ

   (6)   ICMPv6

         ׵ᡦ
         顼ȹġ
         ľåμȹġ

   (7)   IPv4

         Ūϩɽ
         IP ǡʬ䡦ƹȹġ

   (8)   IPv6

         ɥ쥹μư
         Ūϩɽ
          PC ϥǥ뵡ؤŬѤ˸ IPv6 Ǿ׵ͤ
           IPv6 ǾۥȻͤ˽
         ĥإåΥ顼

   (9)   ¾

         ARP ׵ᡦ
         ARP Ǥ IPv4 ɥ쥹ʣеǽ
         DHCP ؤб
         SNMP Ѵ١MIBˤ

  ߡ ưǧѤߤΥƥʲ˼

   (1)   Ż̾ H8/3048F
   (2)   Ż̾ H8/3068F ͥåб
   (3)   Ż̾ H8/3069F ͥåб

  ߡ ݡȤƤͥåȥ󥿥եʲ˼ 

   (1)   롼ץХå
   (2)   ꥢݡȤѤ PPP ǡľ³ȥǥ³
   (3)   ͥåȡNIC  NE2000 ߴ

ʤTINET ϡ嵭Υͥåȥ󥿥եΤȤ߹ळ
ȤǤ˥åȿ 1 Ǥ롣
  ʲˡTINET ꡼ 1.2 Ҥ٤롣

   (1)   TOPPERS/JSP ͥΥ꡼ 1.4 ѤǤ롣
   (2)   ͥåȥؤ IPv4  IPv6 Τɤ餫ĤΤǤ Ʊ
         ȹळȤϤǤʤ
   (3)   IPv6 Ǥϡͥåȥ󥿥եϥͥåȤΤǤ롣
   (4)   IPv6 ǤϡTCP  UDP ξ򤹤뤫 ɤ餫Ĥ
         ʤФʤʤ
   (5)   Υ֥å󥰥ˤơ ̿ü¾Τᡢû
         ֤Ǥ뤬֥å뤳Ȥ롣 
   (6)   ץȥ륹åǡ TCP ΥɥХåեݤ뵡ǽ
         ʤᡢŪ API  TCP ̿üˤơ 
         ɥХåեƬɥ쥹Ȥ NADR Ǥʤ
   (7)   IPv6 ˴ؤ ITRON TCP/IP API ͤʤᡢŪ ITRON
         TCP/IPʥС 6API ͤ
   (8)   IPv6 ˴ؤơȥ륢ɥ쥹ȥХ륢ɥ쥹ϡ
         롼Τˤꡢ 줾 1 ĤƲǽǤ롣

2.  ǥ쥯ȥ깽

  TINET Υǥ쥯ȥϡJSP 롼ȥǥ쥯ȥβ֤Ȥꤷ
ƤꡢʲΥǥ쥯ȥ꤫鹽Ƥ롣 

   tinet                   TINET Υ롼ȥǥ쥯ȥ
   tinet/cfg               TINET ե졼
   tinet/doc               ɥ
   tinet/net               ѥͥåȥ
   tinet/netapp            ץΥͥåȥץ
   tinet/netdev            ͥåȥ󥿥եΥɥ饤
   tinet/netdev/if_ed      NE2000 ߴͥåȥ󥿥եΥɥ饤
   tinet/netinet           TINET 
   tinet/netinet6          IPv6 

3.  ɥ

  ɥʲ˼

   tinet.txt               Υե
   tinet_install.txt       󥹥ȡ
   tinet_config.txt        ѥե졼
   tinet_defs.txt          ץåƥ¸
   tinet_sample.txt        ץ륢ץꥱ
   tinet_chg.txt           ѹ
   tinet-1.2.txt           ꡼ 1.1  1.2 ؤΰܹ

4.  եκˤĤ

  ץꥱץ¾ˡ ѹ٤ե
TINET ե졼եʲ˼  JSP 롼
ȥǥ쥯ȥ꤫ХѥǤꡢMakefile ޥΰ̣ʲ˼

   $(CPU)          å CPU
   $(SYS)          åȥƥ
   $(NIC)          ͥåȥ󥿥ե
   $(APP_DIR)      ץꥱץΥǥ쥯ȥ
   $(UNAME)        ץꥱץ̾

   (1)   config/$(CPU)/tinet_cpu_config.hڿ
         ץå˰¸ TINET ե졼󡦥ѥ᡼
         եǤ롣 ƤˤĤƤ tinet_config.txt 
         Ȥ뤳ȡ

   (2)   config/$(CPU)/$(SYS)/tinet_sys_config.hڿ
         ƥ˰¸ TINET ե졼󡦥ѥ᡼
         եǤ롣 ƤˤĤƤ tinet_config.txt 
         Ȥ뤳ȡ

   (3)   $(APP_DIR)/tinet_app_config.hڿ
         ץꥱ˰¸ TINET ե졼󡦥ѥ
         ᡼եǤ롣 ƤˤĤƤ
         tinet_config.txt 򻲾Ȥ뤳ȡ

   (4)   tinet/netdev/$(NIC)/tinet_nic_config.hڿ
         ͥåȥ󥿥ե˰¸ TINET ե졼
         󡦥ѥ᡼եǤ롣 

   (5)   config/$(CPU)/tinet_cpu_defs.hڿ
         ץå˰¸ TCP/IP ѥ᡼եǤ
         롣ƤˤĤƤ tinet_defs.txt 򻲾Ȥ뤳ȡ

   (6)   tinet/netdev/$(NIC)/tinet_nic_defs.hڿ
         ͥåȥ󥿥ե˰¸ TCP/IP ѥ᡼
         եǤ롣 ƤˤĤƤ tinet_defs.txt 򻲾Ȥ뤳ȡ

   (7)   $(APP_DIR)/tinet_$(UNAME).cfgڿ
         TINET ե졼եǤ롣 ƤˤĤƤ
         5. TINET ե졼 TINET ե졼ե
          פ򻲾Ȥ뤳ȡ 

   (8)   $(APP_DIR)/route_cfg.cڿ
         Ū롼ƥ󥰤ꤹեǤ롣 ƤˤĤƤϡ6.
         Ū롼ƥ󥰤 פ򻲾Ȥ뤳ȡʤǥեȥ
         ȥΤߤΥץʥͥåȥǤϡ ץ륢ץꥱ
          nserv  route_cfg.c 򤽤ΤޤήѤǤ롣

   (9)   $(APP_DIR)/$(UNAME).cѹ
         TINET Ѥ뤿ˡ ʲΥ󥯥롼ɥեꤹ
         ɬפ롣

            #include "tinet_id.h"
            #include <netinet/in.h>
            #include <netinet/in_itron.h>

   (10)  $(APP_DIR)/$(UNAME).cfgѹ
         TINET ǻѤ륫ͥ륪֥Ȥिˡ
         TINET ե졼ե򥤥󥯥롼ɤ롣

            #include "../tinet/tinet.cfg"

   (11)  $(APP_DIR)/Makefileѹ
         ѹˤĤƤϡ7. ץꥱ Makefileפ򻲾Ȥ뤳ȡ

   (12)  $(APP_DIR)/tinet_cfg.cڼư
         TCP ոTCP ̿üڤ UDP ̿üб빽¤Τ
         եǡ TINET ե졼ˤ롣
         ץꥱץࡢ TINET ȶ˥ѥ뤷ƥ󥯤롣

   (13)  $(APP_DIR)/tinet_kern.cfgڼư
         TINET ǻѤ륫ͥ륪֥ȤŪ API 
         եǡ TINET ե졼ˤ롣JSP 
         ƥॳե졼եɸǤ $(UNAME).cfg
         ˥󥯥롼ɤ롣

   (14)  $(APP_DIR)/tinet_id.hڼư
         TCP ոTCP ̿üڤ UDP ̿ü ID ưշ
         եǡTINET ե졼ˤ롣

5.  TINET ե졼 TINET ե졼ե

  TINET ե졼 tinet/cfg/tinet_cfg (cygwin Ǥ
tinet_cfg.exe) ǤꡢåȤˤϰ¸Ƥʤ TINET ե
졼ˤĤƤ tinet_install.txt 򻲾Ȥ뤳ȡ

5. 1  ե

  TINET ե졼 TINET ե졼եɸ
 tinet_$(UNAME).cfgˤʲΥե롣

   (1)   tinet_cfg.c
         TINET ͥ빽եǡ ץꥱץࡢ
         TINET ȶ˥ѥ뤷ƥ󥯤롣

   (2)   tinet_kern.cfg
         TINET ǻѤ륫ͥ륪֥ȤŪ API 졢
         JSP ƥॳե졼եɸ
         $(UNAME).cfgˤ˥󥯥롼ɤ롣

   (3)   tinet_id.h
         TINET ǻѤ륫ͥ륪֥Ȥ ID ưշ̥ե
         Ǥ롣

5. 2  ŪITRON TCP/IPʥС6API

  IPv6 ˴ؤ ITRON TCP/IP API ͤʤᡢŪ ITRON TCP/IP
ʥС 6API ͤ

   (1)   1.5.1 ǡ¤ǡ (1) IP ɥ쥹ݡֹ
         ǡ¤

            /* IPv6 ɥ쥹 */
            struct t_in6_addr {
                union {
                    UB    __u6_addr8[16];
                    UH    __u6_addr16[8];
                    UW    __u6_addr32[4];
                    } __u6_addr;
                } T_IN6_ADDR;
            
            typedef struct t_ipv6ep {
                T_IN6_ADDR    ipaddr;        /* IPv6 ɥ쥹 */
                UH            portno;        /* ݡֹ    */
                } T_IPV6EP;

   (2)   1.5.1 ǡ¤ǡ (2) ֥ѤΥǡ¤

            typedef struct t_tcp6_crep {
                /* ɸ */
                ATR         repatr;        /* ո°        */
                T_IPV6EP    myaddr;        /* ʬΥɥ쥹    */
                /* ¸ */
                } T_TCP6_CREP;

   (3)   1.5.1 ǡ¤ǡ (5) ü IP ɥ쥹ȥݡֹ

            #define IPV6_ADDR_UNSPECIFIED_INIT    \
                {{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }}}
            #define IPV6_ADDRANY        IPV6_ADDR_UNSPECIFIED_INIT

   (4)   2.2 TCP ո

            ŪAPI
              TCP6_CRE_REP(ID repid, { ATR repatr,
                                      { T_IN6_ADDR myipaddr, UH myportno } } );

         myipaddr η T_IN6_ADDR ˤʤäʳϡ ITRON TCP/IP API
         ͤƱǤ롣myipaddr ˤ IPV6_ADDRANY Ǥ롣

   (5)   2.4 ³ǡ³׵Ԥʼưץˡ

            CAPI
              ER ercd = tcp6_acp_cep(ID cepid, ID repid,
                                     T_IPV6EP *p_dstaddr, TMO tmout);

         p_dstaddr η T_IPV6EP* ˤʤäʳϡITRON TCP/IP API
         ͤƱǤ롣

   (6)   2.4 ³ǡ³׵ǽưץˡ

            CAPI
              ER ercd = tcp6_con_cep(ID cepid, T_IPV6EP *p_myaddr,
                                     T_IPV6EP *p_dstaddr, TMO tmout);

         p_myaddr  p_dstaddr ηT_IPV6EP* ˤʤäʳϡITRON
         TCP/IP API ͤƱǤ롣

   (7)   3.2 UDP ̿ü

            ŪAPI
              UDP6_CRE_CEP(ID cepid, { ATR cepatr,
                                      { T_IN6_ADDR myipaddr, UH myportno },
                                       FP callback } );

         myipaddr η T_IN6_ADDR ˤʤäʳϡ ITRON TCP/IP API
         ͤƱǤ롣myipaddr ˤ IPV6_ADDRANY Ǥ롣

   (8)   3.3 ǡ֥ѥåȤ

            CAPI
              ER ercd = udp6_snd_dat(ID cepid, T_IPV6EP *p_dstaddr, 
                                     VP data, INT len, TMO tmout);

         p_dstaddr η T_IPV6EP* ˤʤäʳϡITRON TCP/IP API
         ͤƱǤ롣

   (9)   3.4 ǡ֥ѥåȤμ

            CAPI

              ER ercd = udp6_rcv_dat(ID cepid, T_IPV6EP *p_dstaddr, 
                                     VP data, INT len, TMO tmout);

         p_dstaddr ηT_IPV6EP* ˤʤäʳϡ ITRON TCP/IP API
         ͤƱǤ롣

5. 3  ݡȤ륪֥Ȥ

  ݡȤ륪֥Ȥϡʲ˼ ITRON TCP/IP API ͤ
Ū API Ū ITRON TCP/IPʥС 6API ͤŪ APIե
Υ󥯥롼ɤǤ롣

   (1)   TCP ոIPv4

         [1]   

                  TCP_CRE_REP(ID repid, { ATR repatr,
                                          { UW myipaddr, UH myportno } } );

         [2]   ѥ᡼
               ѥ᡼ˤĤƤϡITRON TCP/IP API ͤƱǤꡢ
               ¸ TCP ո°Ϥʤ
         [3]   TCP ո
               TINET ե졼ϡ TCP ոץ
               ץåǥ쥯ƥ֤ tinet_cfg.c 롣

                  #define TNUM_TCP_CREPID <TCPո>

         [4]    TCP ո ID ѿ
               TINET ե졼ϡ TCP ո ID ѿ
                tinet_cfg.c 롣

                  const ID tmax_tcp_crepid =
                           (TMIN_TCP_CREPID + TNUM_TCP_CREPID - 1);

   (2)   TCP ̿üIPv4

         [1]   

                  TCP_CRE_CEP(ID cepid, { ATR cepatr, VP sbuf, INT sbufsz,
                                                      VP rbuf, INT rbufsz,
                                                      FP callback } );

         [2]   ѥ᡼
               ѥ᡼ˤĤƤϡITRON TCP/IP API ͤƱǤꡢ
               ¸ TCP ̿ü°Ϥʤ
         [3]   TCP ̿ü
               TINET ե졼ϡ TCP ̿ü
               ץåǥ쥯ƥ֤ tinet_cfg.c 롣

                  #define TNUM_TCP_CCEPID <TCP̿ü>

         [4]    TCP ̿ü ID ѿ
               TINET ե졼ϡ TCP ̿ü ID 
                tinet_cfg.c 롣

                  const ID tmax_tcp_ccepid =
                           (TMIN_TCP_CCEPID + TNUM_TCP_CCEPID - 1);

   (3)   UDP ̿üIPv4

         [1]   

                  UDP_CRE_CEP(ID cepid, { ATR cepatr,
                                          { UW myipaddr, UH myportno },
                                          FP callback } );
         [2]   ѥ᡼
               ѥ᡼ˤĤƤϡITRON UDP/IP API ͤƱǤꡢ
               ¸ UDP ̿ü°Ϥʤ
         [3]   UDP ̿ü
               TINET ե졼ϡ UDP ̿ü
               ץåǥ쥯ƥ֤ tinet_cfg.c 롣

                  #define TNUM_UDP_CCEPID <UDP̿ü>

         [4]    UDP ̿ü ID ѿ
               TINET ե졼ϡ UDP ̿ü ID 
                tinet_cfg.c 롣

                  const ID tmax_tcp_ccepid =
                           (TMIN_UDP_CCEPID + TNUM_UDP_CCEPID - 1);

   (4)   TCP ոIPv6

         [1]   

                  TCP6_CRE_REP(ID repid, { ATR repatr,
                                          { T_IN6_ADDR myipaddr, UH myportno } } );

         [2]   ѥ᡼
               ѥ᡼ˤĤƤϡmyipaddr ǻꤹ IP ɥ쥹
               IPv6 Ǥꡢ IPv4  IP_ADDRANY ˡ IPv6 Ǥ
               IPV6_ADDRANY Ǥ롣ʳϡITRON TCP/IP API
               ͤƱǤꡢ¸ TCP ո°Ϥʤ
         [3]   TCP ո
               TINET ե졼ϡ TCP ոץ
               ץåǥ쥯ƥ֤ tinet_cfg.c 롣

                  #define TNUM_TCP_CREPID <TCPո>

         [4]    TCP ո ID ѿ
               TINET ե졼ϡ TCP ո ID ѿ
                tinet_cfg.c 롣

                  const ID tmax_tcp_crepid =
                           (TMIN_TCP_CREPID + TNUM_TCP_CREPID - 1);

   (5)   TCP ̿üIPv6

         [1]   

                  TCP6_CRE_CEP(ID cepid, { ATR cepatr, VP sbuf, INT sbufsz,
                                                       VP rbuf, INT rbufsz,
                                                       FP callback } );

         [2]   ѥ᡼
               ѥ᡼ˤĤƤϡITRON TCP/IP API ͤƱǤꡢ
               ¸ TCP ̿ü°Ϥʤ
         [3]   TCP ̿ü
               TINET ե졼ϡ TCP ̿ü
               ץåǥ쥯ƥ֤ tinet_cfg.c 롣

                  #define TNUM_TCP_CCEPID <TCP̿ü>

         [4]    TCP ̿ü ID ѿ
               TINET ե졼ϡ TCP ̿ü ID 
                tinet_cfg.c 롣

                  const ID tmax_tcp_ccepid =
                           (TMIN_TCP_CCEPID + TNUM_TCP_CCEPID - 1);

   (6)   UDP ̿üIPv6

         [1]   

                  UDP6_CRE_CEP(ID cepid, { ATR cepatr,
                                          { T_IN6_ADDR myipaddr, UH myportno },
                                           FP callback } );

         [2]   ѥ᡼
               ѥ᡼ˤĤƤϡmyipaddr ǻꤹ IP ɥ쥹
               IPv6 Ǥꡢ IPv4  IP_ADDRANY ˡ IPv6 Ǥ
               IPV6_ADDRANY Ǥ롣ʳϡITRON TCP/IP API
               ͤƱǤꡢ¸ TCP ո°Ϥʤ
         [3]   UDP ̿ü
               TINET ե졼ϡ UDP ̿ü
               ץåǥ쥯ƥ֤ tinet_cfg.c 롣

                  #define TNUM_UDP_CCEPID <UDP̿ü>

         [4]    UDP ̿ü ID ѿ
               TINET ե졼ϡ UDP ̿ü ID 
                tinet_cfg.c 롣

                  const ID tmax_tcp_ccepid =
                           (TMIN_UDP_CCEPID + TNUM_UDP_CCEPID - 1);

   (7)   󥯥롼ɥե
         JSP Υ󥯥롼ɥեƱǤ롣

5. 4  TINETͥ빽ե

  ߤΤȤ¸ط鼫ưŪ褦ˤϤʤäƤʤ
ᡢ TINET ե졼եɸ tinet_$(UNAME).cfg
ѹϡ ʲΥޥɤ TINET ͥ빽ե
롣

   make tinet

θ塢

   make depend
   make

¹Ԥ롣

6.  롼ƥ󥰤

  롼ƥ󥰥ȥˤϡŪ롼ƥ󥰥ȥȸľICMP
ˤ롼ƥ󥰥ȥ꤬롣 
  Ū롼ƥ󥰥ȥϡͽ줿롼ƥ󥰾Ǥꡢ롼
ƥե route_cfg.c Υ롼ƥɽȥꤹ
롣ʤǥեȥȥΤߤΥץʥͥåȥǤϡ
ץ륢ץꥱ nserv  route_cfg.c 򤽤ΤޤήѤǤ롣
  ľICMPˤˤ롼ƥ󥰥ȥϡTINET ե졼
󡦥ѥ᡼եǡ롼ƥɽͽݤ륨ȥ
 롼ƥե route_cfg.c Υ롼ƥɽ
ȥˡΥȥȤƳݤ롣 

   (1)   롼ƥɽΥȥ
           ȥꤹޥϡ TINET ե졼
         ѥ᡼ե롣 

         [1]   NUM_STATIC_ROUTE_ENTRY
               롼ƥɽŪ롼ƥ󥰥ȥꤹ롣 
         [2]   NUM_REDIRECT_ROUTE_ENTRY
               롼ƥɽͽݤ롢 ľICMPˤˤ롼
               ƥ󥰥ȥꤹ롣 0 ꤹȡľ
               ICMPˤ̵뤹롣

   (2)   롼ƥɽȥ깽¤ΡIPv4
           IPv4 Ǥϡ#include <netinet/in_var.h> Ƥ롣
         եɤΰ̣ʲ˼

            T_IN4_ADDR      targe           ɸͥåȥIPɥ쥹
                                            ǥեȥȥǤ0ꤹ롣
            T_IN4_ADDR      mask            ɸͥåȥΥ֥ͥåȥޥ
                                            ǥեȥȥǤ0ꤹ롣
            T_IN4_ADDR      gateway         ȥ IP ɥ쥹
                                            ͥåȥǤ0ꤹ롣

   (3)   롼ƥɽȥ깽¤ΡIPv6
           IPv6 Ǥϡ#include <netinet6/in6_var.h> Ƥ롣
         ƥեɤΰ̣ʲ˼

            T_IN6_ADDR      target          ɸͥåȥɥ쥹
            T_IN6_ADDR      gateway         ȥ IP ɥ쥹
            UW              expire          ֤ͭڤ0xffffffff ꤹ뤳ȡ
            UB              flags           ե饰0x01 ꤹ뤳ȡ
            UB              prefix_len      ץեåĹ

         IP ɥ쥹ϡ{{{  }}} ǰϤߡ 1 ƥåñ̤ǻꤹ롣
         ʲ˼

            { { { 0xfe, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x41,
                  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }

   (4)   󥯥롼ɥե
           ʲΥ󥯥롼ɥեꤹ뤳ȡ 

            #include <s_services.h>
            #include <t_services.h>
            #include <tinet_defs.h>
            #include <tinet_config.h>
            #include <netinet/in.h>
            #include <netinet/in_var.h>

   (5)   롼ƥɽȥIPv4
           ʲΤ褦˻ꤹ뤳ȡ

            T_IN4_RTENTRY routing_tbl[NUM_ROUTE_ENTRY] = {
                <롼ƥɽȥ깽¤ 1>,
                <롼ƥɽȥ깽¤ 2>,
                ...
                <롼ƥɽȥ깽¤ n>,
                };

   (6)   롼ƥɽȥIPv6
           ʲΤ褦˻ꤹ뤳ȡ

            T_IN6_RTENTRY routing_tbl[NUM_ROUTE_ENTRY] = {
                <롼ƥɽȥ깽¤ 1>,
                <롼ƥɽȥ깽¤ 2>,
                ...
                <롼ƥɽȥ깽¤ n>,
                };

   (7)   õ
           õϡǥå礭ʽ硢Ĥޤꡢ 롼ƥɽ
         ȥκǸ <롼ƥɽȥ깽¤ n> 顢 ǽ
          <롼ƥɽȥ깽¤ 1> ˸äƹԤ롣

7.  ץꥱ Makefile

  ֥եΥǥ쥯ȥפθˡ ʲιԤɲä롣 

   #
   #  ͥåȥӥ
   #
   
   #  ͥåȥ󥿥ե򡢲줫򤹤롣
   
   #NET_IF = loop
   #NET_IF = ppp
   NET_IF = ether
   
   #PPP_CFG_MODEM = true    # PPP ǡǥ³ξ
   
   #  ͥåȥؤ򡢲줫򤹤롣
   
   #SUPPORT_INET4 = true
   SUPPORT_INET6 = true
   
   #  ȥ󥹥ݡؤ
   
   SUPPORT_TCP = true
   #SUPPORT_UDP = true
   
   #
   #  TINET  Makefile.config Υ󥯥롼
   #
   include $(SRCDIR)/tinet/Makefile.config

8.  TINET ȼ API

8. 1  ͥåȥ׾

  ƥåȿ ѥåȿ׾Υ
net_countˤñѿ¤ΡˤȹޤƤ롣 
 ITRON TCP/IP API ߴǤꡢ衢ѹޤϺǽ
뤳Ȥդ뤳ȡ

   (1)   ͥåȥ׾ͭ
           ѥե졼󡦥եΤ줫ǡ
         ץȥ˥ͥåȥ׾ͭˤɬפǤ롣
         ͭˤ뤿ˤϡ ޥ NET_COUNT_ENABLE ˡץȥ뼱
         ̥ե饰ʥ󥯥롼ɥե net/net.h Ƥˤ
         ӥå¤ˤꤹ롣

   (2)   ͥåȥ׾ɸǡɸ๽¤
           ⥤󥯥롼ɥե net/net_count.h Ƥ롣

            typedef UD T_NET_COUNT_VAL;
            
            typedef struct t_net_count {
                  T_NET_COUNT_VAL   in_octets;        /* ƥåȿ     */
                  T_NET_COUNT_VAL   out_octets;       /* ƥåȿ     */
                  T_NET_COUNT_VAL   in_packets;       /* Хåȿ       */
                  T_NET_COUNT_VAL   out_packets;      /* Хåȿ       */
                  T_NET_COUNT_VAL   in_err_packets;   /* 顼Хåȿ */
                  T_NET_COUNT_VAL   out_err_packets;  /* 顼Хåȿ */
                  } T_NET_COUNT;

   (3)   ץȥΥͥåȥ׾
           ʲˡ ץȥΥͥåȥ׾ѿޤ
         򼨤ʡϥ󥯥롼ɥե net/net.h Ƥ
         ץȥ뼱̥ե饰Ǥ롣 ޤѿξ硢
         Ƥϡ󥯥롼ɥե net/net_count.h 򻲾ȡ

         [1]   PPP  HDLCPROTO_FLG_PPP_HDLC
                 ɸ๽¤ѿǡѿ̾ net_count_hdlc Ǥ롣

         [2]   PPP ǧڥץȥPROTO_FLG_PPP_PAP
                 ɸǡѿǡѿ̾ϡ ƥåȿ

                  net_count_ppp_upap_in_octets

               ƥåȿ

                  net_count_ppp_upap_out_octets

         [3]   PPP ΥץȥPROTO_FLG_PPP_LCP
                 ɸǡѿǡ ѿ̾ϡƥåȿ

                  net_count_ppp_lcp_in_octets

               ƥåȿ

                  net_count_ppp_lcp_out_octets

         [4]   PPP  IP ¸ץȥPROTO_FLG_PPP_IPCP
                 ɸǡѿǡѿ̾ϡ ƥåȿ

                  net_count_ppp_ipcp_in_octets

               ƥåȿ

                  net_count_ppp_ipcp_out_octets

         [5]   PPP ΡPROTO_FLG_PPP
                 PPP ΤΥͥåȥ׾ϡ ɸ๽¤ѿǡ
               ѿ̾ net_count_ppp Ǥ롣 ޤ PPP Ǥ net_buf
               γƼԿϡ ɸǡѿǡ ѿ̾
               net_count_ppp_no_buf Ǥ롣

         [6]   롼ץХå󥿥եPROTO_FLG_LOOP
                 ɸ๽¤ѿǡѿ̾ net_count_loop Ǥ롣

         [7]   ͥåȥǥХɥ饤 NICPROTO_FLG_ETHER_NIC
                 ɸǡѿǡ ѿ̾ net_count_ether_nic
               Ǥ롣

         [8]   PROTO_FLG_ETHER
                 ɸ๽¤ѿǡѿ̾ net_count_ether Ǥ롣

         [9]   PROTO_FLG_ARP
                 ɸ๽¤ѿǡѿ̾ net_count_arp Ǥ롣

         [10]  PROTO_FLG_IP4
                 ɸǡѿǡѿ̾ net_count_ip4 Ǥ롣

         [11]  PROTO_FLG_IP6
                 ɸǡѿǡѿ̾ net_count_ip6 Ǥ롣

         [12]  PROTO_FLG_ICMP4
                 ɸ๽¤ѿǡѿ̾ net_count_icmp4 Ǥ롣

         [13]  PROTO_FLG_ICMP6
                 ɸǡѿǡѿ̾ net_count_icmp6 Ǥ롣

         [14]  PROTO_FLG_ND6
                 ɸǡѿǡѿ̾ net_count_nd6 Ǥ롣

         [15]  PROTO_FLG_UDP
                 ɸ๽¤ѿǡѿ̾ net_count_udp Ǥ롣

         [16]  PROTO_FLG_TCP
                 ɸǡѿǡѿ̾ net_count_tcp Ǥ롣

         [17]  PROTO_FLG_NET_BUF
                 net_buf ˴ؤƤϡ üǤ뤿᥵ץ륢ץꥱ
                nserv ǻѤƤ netapp/dbg_cons.c δؿ
               net_count 򻲾ȡ

8. 2  SNMP Ѵ١MIB

  ѥե졼󡦥եΤ줫ǡ ޥ
SUPPORT_MIB 뤳ȤˤꡢSNMP Ѵ١MIBˤ˽
ͥåȥפμǽǤ롣TINET Τϡ١
MIBˤ˽򤷤ͥåȥפ󶡤ǡSNMP 򥵥ݡȤ
ƤʤޤRFC1213RFC2465RFC2466 ƤƤξ
Ǥ櫓ǤϤʤǤϡط륤󥯥롼ɥե
ι¤Τ򻲾Ȥ뤳ȡ
  ʲˡ롼ס¤ΤƤ륤󥯥롼ɥե롢¤̾
¤ѿ̾򼨤

   (1)   TCP 롼

            󥯥롼ɥե    netinet/tcp_var.h
            ¤̾                T_TCP_STATS
            ѿ̾                  tcp_stats

   (2)   UDP 롼

            󥯥롼ɥե    netinet/udp_var.h
            ¤̾                T_UDP_STATS
            ѿ̾                  udp_stats

   (3)   ICMPv4 롼

            󥯥롼ɥե    netinet/icmp_var.h
            ¤̾                T_ICMP_STATS
            ѿ̾                  icmp_stats

   (4)   IPv4 롼

            󥯥롼ɥե    netinet/ip_var.h
            ¤̾                T_IP_STATS
            ѿ̾                  ip_stats

   (5)   ICMPv6 롼

            󥯥롼ɥե    netinet/icmp6.h
            ¤̾                T_ICMP6_IFSTAT
            ѿ̾                  icmp6_ifstat

   (6)   IPv6 롼

            󥯥롼ɥե    netinet6/ip6_var.h
            ¤̾                T_IN6_IFSTAT
            ѿ̾                  in6_ifstat

   (7)   ͥåȥ󥿥եʥͥåȡ˥롼

            󥯥롼ɥե    net/if_var.h
            ¤̾                T_IF_STATS
            ѿ̾                  if_stats

8. 3  TINET ؿӥݡȴؿ

  ѥץफ TINET ˥뤿δؿȥݡȴؿ
Ǥ롣 ITRON TCP/IP API ߴǤꡢ衢ѹޤ
Ϻǽ뤳Ȥդ뤳ȡ 

   (1)   󥿥ե IPv4 ɥ쥹ꤹ롣

         [1]   :

                  ER in4_add_ifaddr (T_IN4_ADDR addr, T_IN4_ADDR mask);

         [2]    addr: IP ɥ쥹
         [3]    mask: ֥ͥåȥޥ
         [4]   : ͥåȥ󥿥եͥåȤǡ ͥ
               ȥؤ IPv4 ξΤͭǤ롣
         [5]   :  E_OK
         [6]   󥯥롼ɥե: <netinet/in.h>

   (2)   IPv4 Ūϩɽ˥ȥꤹ롣

         [1]   :

                  ER in4_add_route (int index, T_IN4_ADDR target,
                                               T_IN4_ADDR mask,
                                               T_IN4_ADDR gateway);

         [2]    index: ȥΥǥå
         [3]    target: ɸͥåȥ IP ɥ쥹
         [4]    mask: ɸͥåȥΥ֥ͥåȥޥ
         [5]    gateway: ȥ IP ɥ쥹
         [6]   : ͥåȥ󥿥եͥåȤǡ ͥ
               ȥؤ IPv4 ξΤͭǤ롣
         [7]   :  index ͤͤѥե
               졼ѥ᡼ NUM_ROUTE_ENTRY ʾΤȤ
               E_PAR
         [8]   󥯥롼ɥե: <netinet/in.h>

   (3)   IPv4 ɥ쥹ʸѴ롣

         [1]   :

                  extern UB *ip2str (UB *buf, const T_IN4_ADDR *ipaddr);

         [2]    buf: ʸ IPv4 ɥ쥹  16 ХȤΰ
               ɬפǤ롣
         [3]    ipaddr: IPv4 ɥ쥹
         [4]   :  buf
         [5]   󥯥롼ɥե: <netinet/in.h>

   (4)   IPv6 ɥ쥹ʸѴ롣

         [1]   :

                  extern UB *ipv62str (UB *buf, const T_IN6_ADDR *ipaddr);

         [2]    buf: ʸ IPv6 ɥ쥹  40 ХȤΰ
               ɬפǤ롣
         [3]    ipaddr: IPv6 ɥ쥹
         [4]   :  buf
         [5]   󥯥롼ɥե: <netinet/in6.h>

   (5)   ITRON TCP/IP API ǽɤʸɽѴ롣

         [1]   :

                  const char *in_strtfn (FN fncd);

         [2]    fncd: ITRON TCP/IP API ǽ
         [3]   : ITRON TCP/IP API ǽɤʸɽ
         [4]   󥯥롼ɥե: <netinet/in.h>

   (6)   MAC ɥ쥹ʸѴ롣

         [1]   :

                  extern UB *mac2str (UB *buf, UB *macaddr);

         [2]    buf: ʸ MAC ɥ쥹 18 ХȤΰ褬
               ɬפǤ롣
         [3]    macaddr: MAC ɥ쥹
         [4]   :  buf
         [5]   󥯥롼ɥե: <netinet/net.h>

8. 4  ѥץॳХåؿ

  TINET ƽФѥץॳХåؿǤꡢѥץ
¦Ѱդɬפ롣ޤ ITRON TCP/IP API ߴǤ
ꡢ衢 ѹޤϺǽ뤳Ȥդ뤳ȡ 

   (1)   IPv4 ɥ쥹ʣлΥХåؿ

         [1]   ѥե졼ѥ᡼:
               ARP_CFG_CALLBACK_DUPLICATED
         [2]   :

                  BOOL arp_callback_duplicated(UB *shost);

         [3]    shost: ʣ MAC ɥ쥹
         [4]   : TRUE ꤹȡ TINET ǽʣ MAC 
               쥹 syslog ˽Ϥ ʣˤʣȤ
               롣FALSE ꤹȲ⤷ʤ
         [5]   󥯥롼ɥե: <netinet/if_ether.h>

9.  ռ

   TCP/IP ץȥ륹åϡȿγͤθٱˤ긦桦
ȯԤޤ طư̤˴դޤ

   (1)   ˡƻȵѿ

         [1]   ̾
               ٵѳȯ
         [2]   ơ̾
               ȹ߷楷ƥ TCP/IP ץȥ륹åγȯ

   (2)    NTT ɥ̳ƻѾһŹ
   (3)   кѻȾ̷кѻȶɡʰˡ: ˡͤߤ䤮
         

         [1]   ̾
               ϰ迷󥽡ฦ泫ȯ
         [2]   ơ̾
               ȹߥƥࡦץץåȥۡιۤȤμѲȯ

   (4)   ܾ븩ȵ祻󥿡
   (5)   TOPPERS ץ
   (6)   ҥå

10.  饤

  TINET  FreeBSD 򸵤˳ȯԤäᡢ TINET ޤॽեȥ
¾Υեȥȯ˻ѤǤʤǺۤTOPPERS 饤
 (3) ˵Ƥ֡ˤϡ TOPPERS 饤 (3)  (b) 
ǤԽʬǡ(a) ˤˡɬפǤ롣
  ʲ˼ TOPPERS FreeBSD  FreeBSD ؤΥեȥδ£
Υ饤󥹵˽äơۤȼɥȡѼԥޥ˥奢
ɡˤˡ饤ɽԤȡ

(1)FreeBSD

   /*
    * Copyright (c) 1980, 1986, 1993
    *                      The Regents of the University of California.  All rights reserved.
    *
    * Redistribution and use in source and binary forms, with or without
    * modification, are permitted provided that the following conditions
    * are met:
    * 1. Redistributions of source code must retain the above copyright
    *    notice, this list of conditions and the following disclaimer.
    * 2. Redistributions in binary form must reproduce the above copyright
    *    notice, this list of conditions and the following disclaimer in the
    *    documentation and/or other materials provided with the distribution.
    * 3. All advertising materials mentioning features or use of this software
    *    must display the following acknowledgement:
    *                      This product includes software developed by the University of
    *                      California, Berkeley and its contributors.
    * 4. Neither the name of the University nor the names of its contributors
    *    may be used to endorse or promote products derived from this software
    *    without specific prior written permission.
    *
    * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    * SUCH DAMAGE.
    */

(2)KAME

   /*
    * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
    * All rights reserved.
    *
    * Redistribution and use in source and binary forms, with or without
    * modification, are permitted provided that the following conditions
    * are met:
    * 1. Redistributions of source code must retain the above copyright
    *    notice, this list of conditions and the following disclaimer.
    * 2. Redistributions in binary form must reproduce the above copyright
    *    notice, this list of conditions and the following disclaimer in the
    *    documentation and/or other materials provided with the distribution.
    * 3. Neither the name of the project nor the names of its contributors
    *    may be used to endorse or promote products derived from this software
    *    without specific prior written permission.
    *
    * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
    * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
    * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    * SUCH DAMAGE.
    */

(3)ͥåȡǥХɥ饤

   /*
    * Copyright (c) 1995, David Greenman
    * All rights reserved.
    *
    * Redistribution and use in source and binary forms, with or without
    * modification, are permitted provided that the following conditions
    * are met:
    * 1. Redistributions of source code must retain the above copyright
    *    notice unmodified, this list of conditions, and the following
    *    disclaimer.
    * 2. Redistributions in binary form must reproduce the above copyright
    *    notice, this list of conditions and the following disclaimer in the
    *    documentation and/or other materials provided with the distribution.
    *
    * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
    * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
    * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    * SUCH DAMAGE.
    *
    * $FreeBSD: src/sys/i386/isa/if_ed.c,v 1.148.2.4 1999/09/25 13:08:18 nyan Exp $
    */
   
   /*
    * Device driver for National Semiconductor DS8390/WD83C690 based ethernet
    *   adapters. By David Greenman, 29-April-1993
    *
    * Currently supports the Western Digital/SMC 8003 and 8013 series,
    *   the SMC Elite Ultra (8216), the 3Com 3c503, the NE1000 and NE2000,
    *   and a variety of similar clones.
    *
    */

(4)/usr/sbin/ppp

   /*
    *                      User Process PPP
    *
    *          Written by Toshiharu OHNO (tony-o@iij.ad.jp)
    *
    *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
    *
    * Redistribution and use in source and binary forms are permitted
    * provided that the above copyright notice and this paragraph are
    * duplicated in all such forms and that any documentation,
    * advertising materials, and other materials related to such
    * distribution and use acknowledge that the software was developed
    * by the Internet Initiative Japan, Inc.  The name of the
    * IIJ may not be used to endorse or promote products derived
    * from this software without specific prior written permission.
    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
    */

(5)/usr/sbin/pppd

   /*
    * main.c - Point-to-Point Protocol main module
    *
    * Copyright (c) 1989 Carnegie Mellon University.
    * All rights reserved.
    *
    * Redistribution and use in source and binary forms are permitted
    * provided that the above copyright notice and this paragraph are
    * duplicated in all such forms and that any documentation,
    * advertising materials, and other materials related to such
    * distribution and use acknowledge that the software was developed
    * by Carnegie Mellon University.  The name of the
    * University may not be used to endorse or promote products derived
    * from this software without specific prior written permission.
    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
    */

(6)TOPPERS

   /*
    *  TOPPERS/JSP Kernel
    *      Toyohashi Open Platform for Embedded Real-Time Systems/
    *      Just Standard Profile Kernel
    * 
    *  Copyright (C) 2000-2004 by Embedded and Real-Time Systems Laboratory
    *                              Toyohashi Univ. of Technology, JAPAN
    *  Copyright (C) 2001-2004 by Dep. of Computer Science and Engineering
    *                   Tomakomai National College of Technology, JAPAN
    *
    *  嵭Ԥϡʲ (1)(4) ξ狼Free Software Foundation 
    *  ˤäƸɽƤ GNU General Public License  Version 2 ˵
    *  ҤƤ˸¤ꡢܥեȥܥեȥ
    *  ѤΤޤࡣʲƱˤѡʣѡۡʰʲ
    *  ѤȸƤ֡ˤ뤳Ȥ̵ǵ롣
    *  (1) ܥեȥ򥽡ɤηѤˤϡ嵭
    *      ɽѾ浪Ӳ̵ݾڵ꤬Τޤޤηǥ
    *      ˴ޤޤƤ뤳ȡ
    *  (2) ܥեȥ򡢥饤֥ʤɡ¾Υեȥȯ˻
    *      ѤǤǺۤˤϡۤȼɥȡ
    *      ԥޥ˥奢ʤɡˤˡ嵭ɽѾ浪Ӳ
    *      ̵ݾڵǺܤ뤳ȡ
    *  (3) ܥեȥ򡢵Ȥ߹ʤɡ¾Υեȥȯ˻
    *      ѤǤʤǺۤˤϡΤ줫ξ
    *      ȡ
    *    (a) ۤȼɥȡѼԥޥ˥奢ʤɡˤˡ嵭
    *        ɽѾ浪Ӳ̵ݾڵǺܤ뤳ȡ
    *    (b) ۤη֤̤ˡˤäơTOPPERSץȤ
    *        𤹤뤳ȡ
    *  (4) ܥեȥѤˤľŪޤϴŪ뤤ʤ»
    *      ⡢嵭ԤTOPPERSץȤդ뤳ȡ
    *
    *  ܥեȥϡ̵ݾڤ󶡤ƤΤǤ롣嵭Ԥ
    *  TOPPERSץȤϡܥեȥ˴ؤơŬѲǽ
    *  ޤơʤݾڤԤʤޤܥեȥѤˤľ
    *  ŪޤϴŪʤ»˴ؤƤ⡢Ǥʤ
    * 
    *  @(#) $Id: $
    */
