                  TCP/IP ץȥ륹åTINET
           桼ޥ˥奢ʥ꡼ 1.5.2ˡ2011/5/6

1.  TCP/IP ץȥ륹åTINETˤγ

  TINET ϡ TOPPERS/ASP  TOPPERS/JSP Ѥ TCP/IP ץȥ륹å
Ǥ롣

1. 1  ǽ

  ʲˡTINET ꡼ 1.5 εǽ򼨤

   (1)   API

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

   (2)   TCP

         BSD ̿ǽ
         祻ȥMSS˥ץ
         ʥԡ API
         Υ֥å󥰥ȹġ
          Time Wait ֤ TCP ̿üʬΥǽȹ
           ġ
         ɥХåեξʥԡǽȹġ
         TCP إåΥȥ졼ϵǽȹġ

   (3)   UDP

         Υ֥å󥰥ȹġ

   (4)   õ

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

   (5)   ICMPv4

         ׵ᡦ
         顼ȹġ
         ľåμȹġ

   (6)   ICMPv6

         ׵ᡦ
         顼ȹġ
         ľåμȹġ
         Path MTU

   (7)   IPv4

         Ūϩɽ
         IP ǡʬ䡦ƹȹġ
         IPSECȹġեåΤ߼ˡڥ꡼ 1.5 

   (8)   IPv6

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

   (9)   ¾

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

1. 2  ưǧѤߤΥƥ

1. 2. 1  ȯĶ

  ȯĶϡ Windows  cygwin ǡGCC ѤƳȯԤäGCC
ΥСʲ˼

   (1)   GCC 2.x.x 

            binutils-2.11.2
            gcc-2.95.3
            newlib-1.9.0

ʤcygwin  make ΥС 3.81 Ǥϡ ѥ뤬˹Ԥ
ᡢʳΥС make Ѥ뤳ȡޤͤǤ뤬
TOPPERS/ASP ǤϡʲΥСǤưǧ

   (1)   GCC 3.x.x 

            binutils-2.15
            gcc-3.4.3
            newlib-1.12.0

1. 2. 2  ưǧѤߤΥƥTOPPERS/ASP

  ߡ ưǧѤߤΥƥʲ˼

   (1)   Ż̾ H8/3069F ͥåбʥͥåȡ ASP ꡼
          1.3.2 ʹߡ

1. 2. 3  ưǧѤߤΥƥTOPPERS/JSP

  ߡ ưǧѤߤΥƥʲ˼

   (1)   ̿ӥ NKEV-010H8ʥͥåȡJSP ꡼
         1.4.2 Τߡ
   (2)   Ż̾ H8/3068F ͥåбʥͥåȡ JSP ꡼
          1.4.1 Τߡ
   (3)   Ż̾ H8/3069F ͥåбʥͥåȡ JSP ꡼
          1.4.1 ʹߡ

ޤ ưǧƤʤͼΥƥʲ˼ 

   (1)   Ż̾ H8/3048FPPP 롼ץХå JSP ꡼
         1.4.1 ʹߡ

1. 3  ݡȤƤͥåȥ󥿥ե

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

   (1)   ͥåȡNIC  NE2000 ߴ

  ͼΥͥåȥ󥿥եʲ˼ 

   (1)   롼ץХå
   (2)   ꥢݡȤѤ PPP ǡľ³ȥǥ³

ʤTINET ϡ嵭Υͥåȥ󥿥եΤȤ߹ळ
ȤǤ˥åȿ 1 Ǥ롣

1. 4  »

  ʲˡTINET ꡼ 1.5 Ҥ٤롣

   (1)   б TOPPERS/ASP ͥϥ꡼ 1.3.2 ʹߤǤ롣
   (2)   б TOPPERS/JSP ͥϥ꡼ 1.4.1 ʹߤǤ롣
   (3)   ͥåȥؤ IPv4  IPv6 Τɤ餫ĤΤǤ Ʊ
         ȹळȤϤǤʤ
   (4)   IPv6 Ǥϡͥåȥ󥿥եϥͥåȤΤǤ롣
   (5)   IPv6 Ǥϡ TCP  UDP ξ򤹤뤫ɤ餫Ĥ
         ʤФʤʤޤUDP Τߤ򤷤ϡ Υ֥
         󥰵ǽȤ߹ɬפ롣
   (6)   Υ֥å󥰥ˤƤ⡢ ̿ü¾Τᡢ
         û֤Ǥ뤬֥å뤳Ȥ롣 
   (7)   IPv6 ˴ؤ ITRON TCP/IP API ͤʤᡢŪ ITRON
         TCP/IPʥС 6API ͤ
   (8)   ITRON TCP/IP API ʬΥ饤֥경ϹԤƤ뤬饤֥
         ȥץꥱץ̡˹ۤƤ ǥ
         ˡϥݡȤƤʤ
   (9)   ɽФǽ TCP ̿üץ̵ᡢTCP ̿
         üץ API ɽФ API ͤ E_PAR Ǥ롣
   (10)  ɽФǽ UDP ̿üץ̵ᡢUDP ̿
         üץ API ɽФ API ͤ E_PAR Ǥ롣

1. 5  ǥ쥯ȥ깽

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

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

1. 6  ɥ

  ɥʲ˼ƤΥե PDF Ǥ󶡤Ƥ롣

   tinet.txt               桼ޥ˥奢
   tinet_config.txt        ѥե졼
   tinet_defs.txt          ץåƥ¸
   tinet_chg.txt           ѹ
   tinet-1.5.txt           ꡼ 1.4  1.5 ؤΰܹ
   tinet_ether.pdf         TINET-1.4 ˤ륤ͥåȤμPDFΤߡ

2.  TINET ե졼 TINET ե졼ե

2. 1  TOPPERS/ASP Ķˤ TINET ե졼ե

  TOPPERS/ASP ĶǤϡTOPPERS/ASP ѥե졼ήѤ뤿ᡢ
TINET ȼΥե졼Ϥʤ
  TOPPERS/ASP ѥե졼ήѤơTINET ե졼
եɸ tinet_$(APPLNAME).cfgˤʲΥե롣

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

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

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

2. 2  TOPPERS/JSP Ķˤ TINET ե졼ե

  TINET ե졼 tinet/cfg/tinet_cfg (cygwin Ǥ
tinet_cfg.exe) ǤꡢåȤˤϰ¸Ƥʤ TINET ե
졼ˤĤƤϡ8. TOPPERS/JSP Ķˤ륤󥹥ȡȥե
κѹ פ򻲾Ȥ뤳ȡ 
  TOPPERS/JSP  TINET ե졼 TINET ե졼
եɸ tinet_$(UNAME).cfgˤʲΥե롣

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

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

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

2. 3  Ū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 {
                    uint8_t    __u6_addr8[16];
                    uint16_t   __u6_addr16[8];
                    uint32_t   __u6_addr32[4];
                    } __u6_addr;
                } T_IN6_ADDR;
            
            typedef struct t_ipv6ep {
                T_IN6_ADDR    ipaddr;        /* IPv6 ɥ쥹 */
                uint16_t      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, uint16_t myportno } } );

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

   (5)   2.4 ³ǡ³׵Ԥʼưץˡ
         C  API
               ER ercd = tcp6_acp_cep(ID cepid, ID repid,
                                      T_IPV6EP *p_dstaddr, TMO tmout);

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

   (6)   2.4 ³ǡ³׵ǽưץˡ
         C  API
               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, uint16_t myportno },
                                        FP callback } );

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

   (8)   3.3 ǡ֥ѥåȤ
         C  API
               ER ercd = udp6_snd_dat(ID cepid, T_IPV6EP *p_dstaddr, 
                                      void *data, int_t len, TMO tmout);

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

   (9)   3.4 ǡ֥ѥåȤμ
         C  API
               ER ercd = udp6_rcv_dat(ID cepid, T_IPV6EP *p_dstaddr, 
                                      void *data, int_t len, TMO tmout);

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

2. 4  ݡȤ륪֥Ȥ

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

   (1)   TCP ոIPv4
         Ū API
               TCP_CRE_REP(ID repid, { ATR repatr,
                                     { uint32_t myipaddr, uint16_t myportno } } );

         ڥѥ᡼
                 ѥ᡼ˤĤƤϡITRON TCP/IP API ͤƱǤ
               ꡢ¸ TCP ո°Ϥʤ
         TCP ո
                 TCP ոץץåǥ쥯ƥ֤
               ꡢtinet_cfg.c ˽Ϥ롣
                     #define TNUM_TCP_REPID <TCPո>

         TCP ո ID κͤѿ
                 TCP ո ID κͤѿǤꡢtinet_cfg.c
               ˽Ϥ롣
                     const ID tmax_tcp_repid =
                              (TMIN_TCP_REPID + TNUM_TCP_REPID - 1);

   (2)   TCP ̿üIPv4
         Ū API
               TCP_CRE_CEP(ID cepid, { ATR cepatr, void *sbuf, int_t sbufsz,
                                                   void *rbuf, int_t rbufsz,
                                                   FP callback } );

         ڥѥ᡼
                 ѥ᡼ˤĤƤϡITRON TCP/IP API ͤƱǤ
               ꡢ¸ TCP ̿ü°Ϥʤ
         TCP ̿ü
                 TCP ̿üץץåǥ쥯ƥ
               Ǥꡢtinet_cfg.c ˽Ϥ롣
                     #define TNUM_TCP_CEPID <TCP̿ü>

         TCP ̿ü ID κͤѿ
                 TCP ̿ü ID κͤѿǤꡢ
               tinet_cfg.c ˽Ϥ롣
                     const ID tmax_tcp_cepid =
                              (TMIN_TCP_CEPID + TNUM_TCP_CEPID - 1);

   (3)   UDP ̿üIPv4
         Ū API
               UDP_CRE_CEP(ID cepid, { ATR cepatr,
                                     { uint32_t myipaddr, uint16_t myportno },
                                       FP callback } );

         ڥѥ᡼
                 ѥ᡼ˤĤƤϡITRON UDP/IP API ͤƱǤ
               ꡢ¸ UDP ̿ü°Ϥʤ
         UDP ̿ü
                 UDP ̿üץץåǥ쥯ƥ
               Ǥꡢtinet_cfg.c ˽Ϥ롣
                     #define TNUM_UDP_CEPID <UDP̿ü>

         UDP ̿ü ID κͤѿ
                 UDP ̿ü ID κͤѿǤꡢ
               tinet_cfg.c ˽Ϥ롣
                     const ID tmax_udp_cepid =
                              (TMIN_UDP_CEPID + TNUM_UDP_CEPID - 1);

   (4)   TCP ոIPv6
         Ū API
               TCP6_CRE_REP(ID repid, { ATR repatr,
                                      { T_IN6_ADDR myipaddr, uint16_t myportno } } );

         ڥѥ᡼
                 ѥ᡼ˤĤƤϡmyipaddr ǻꤹ IP ɥ쥹
                IPv6 ǤꡢIPv4  IP_ADDRANY ˡ IPv6 
                IPV6_ADDRANY Ǥ롣 ʳϡITRON TCP/IP
               API ͤƱǤꡢ¸ TCP ո°Ϥʤ
         TCP ո
                 TCP ոץץåǥ쥯ƥ֤
               ꡢtinet_cfg.c ˽Ϥ롣
                     #define TNUM_TCP_REPID <TCPո>

         TCP ո ID κͤѿ
                 TCP ո ID κͤѿǤꡢtinet_cfg.c
               ˽Ϥ롣
                     const ID tmax_tcp_repid =
                              (TMIN_TCP_REPID + TNUM_TCP_REPID - 1);

   (5)   TCP ̿üIPv6
         Ū API
               TCP6_CRE_CEP(ID cepid, { ATR cepatr, void *sbuf, int_t sbufsz,
                                                    void *rbuf, int_t rbufsz,
                                                    FP callback } );

         ڥѥ᡼
                 ѥ᡼ˤĤƤϡITRON TCP/IP API ͤƱǤ
               ꡢ¸ TCP ̿ü°Ϥʤ
         TCP ̿ü
                 TCP ̿üץץåǥ쥯ƥ
               Ǥꡢtinet_cfg.c ˽Ϥ롣
                     #define TNUM_TCP_CEPID <TCP̿ü>

         TCP ̿ü ID κͤѿ
                  TCP ̿ü ID κͤѿǤꡢ
               tinet_cfg.c ˽Ϥ롣
                     const ID tmax_tcp_cepid =
                              (TMIN_TCP_CEPID + TNUM_TCP_CEPID - 1);

   (6)   UDP ̿üIPv6
         Ū API
               UDP6_CRE_CEP(ID cepid, { ATR cepatr,
                                      { T_IN6_ADDR myipaddr, uint16_t myportno },
                                        FP callback } );

         ڥѥ᡼
                 ѥ᡼ˤĤƤϡmyipaddr ǻꤹ IP ɥ쥹
                IPv6 ǤꡢIPv4  IP_ADDRANY ˡ IPv6 
                IPV6_ADDRANY Ǥ롣 ʳϡITRON TCP/IP
               API ͤƱǤꡢ¸ TCP ո°Ϥʤ
         UDP ̿ü
                 UDP ̿üץץåǥ쥯ƥ
               Ǥꡢtinet_cfg.c ˽Ϥ롣
                     #define TNUM_UDP_CEPID <UDP̿ü>

         UDP ̿ü ID κͤѿ
                 UDP ̿ü ID κͤѿǤꡢ
               tinet_cfg.c ˽Ϥ롣
                     const ID tmax_udp_cepid =
                              (TMIN_UDP_CEPID + TNUM_UDP_CEPID - 1);

   (7)   TCP ոͽ IDIPv4TINET ȼ
         Ū API
               VRID_TCP_REP(ID repid);

         ڥѥ᡼
               ID        repid     ͽ󤹤TCPոID

   (8)   TCP ̿üͽ IDIPv4TINET ȼ
         Ū API
               VRID_TCP_CEP(ID cepid);

         ڥѥ᡼
               ID        repid     ͽ󤹤TCP̿üID

   (9)   UDP ̿üͽ IDIPv4TINET ȼ
         Ū API
               VRID_UDP_CEP(ID cepid);

         ڥѥ᡼
               ID        repid     ͽ󤹤UDP̿üID

   (10)  TCP ոͽ IDIPv6TINET ȼ
         Ū API
               VRID_TCP6_REP(ID repid);

         ڥѥ᡼
               ID        repid     ͽ󤹤TCPոID

   (11)  TCP ̿üͽ IDIPv6TINET ȼ
         Ū API
               VRID_TCP6_CEP(ID cepid);

         ڥѥ᡼
               ID        repid     ͽ󤹤TCP̿üID

   (12)  UDP ̿üͽ IDIPv6TINET ȼ
         Ū API
               VRID_UDP6_CEP(ID cepid);

         ڥѥ᡼
               ID        repid     ͽ󤹤UDP̿üID

3.  ITRON TCP/IP API ĥǽ

  TINET ꡼ 1.3 ޤǤϡITRON TCP/IP API ɸൡǽΤߤб
꡼ 1.4 ϡĥǽˤб ѥץ
फѤϡʲ˼ѥե졼
᡼ꤷʤФʤʤ 

   (1)   TCP_CFG_EXTENTIONS
         ITRON TCP/IP API  TCP γĥǽͭˤ롣

   (2)   UDP_CFG_EXTENTIONS
         ITRON TCP/IP API  UDP γĥǽͭˤ롣

3. 1  TCP  ITRON TCP/IP API ĥǽ

  TCP_CFG_EXTENTIONS ꤹ뤳ȤˤѲǽȤʤ API ʲ˼


   TCP ոͽ IDŪ APIVRID_TCP_REPۡIPv4TINET ȼ
   TCP ոͽ IDŪ APIVRID_TCP6_REPۡIPv6TINET ȼ
   TCP ̿üͽ IDŪ APIVRID_TCP_CEPۡIPv4TINET ȼ
   TCP ̿üͽ IDŪ APIVRID_TCP6_CEPۡIPv6 TINET 
     
   TCP ոưŪ APItcp_cre_repۡIPv4
   TCP ոưŪ APItcp6_cre_repۡIPv6TINET ȼ
   TCP ոκưŪ APItcp_del_rep
   TCP ̿üưŪ APItcp_cre_cep
   TCP ̿üκưŪ APItcp_del_cep
   ۵ޥǡtcp_snd_oob
   ۵ޥǡμtcp_rcv_oob
   TCP ̿üץtcp_set_opt
   TCP ̿üץɽФtcp_get_opt
   ۵ޥǡڥХåTEV_TCP_RCV_OOB

   (1)   TCP ոȺ
           εǽˤꡢ1 Ĥ TCP ոʣΥǶͭ뤳
         ȤǤ롣1 ˻ѤǤΤ 1 ĤΥ˸ꤵ
         롣 ʲɸŪʻˡҤ٤롣 ʤ ѻˤʤ뤿
         IPv6 ˴ؤƤϡάƤ롣

         [1]   TCP ոͽ IDŪ API VRID_TCP_REP
               VRID_TCP6_REPۤˤꡢTCP ո ID ͽ󤹤롣

               VRID_TCP_REP ν񼰤ʲ˼

                  VRID_TCP_REP(ID repid);

               ѥ᡼ repid ͽ󤹤 TCP ո ID Ǥꡢ 
               Ūˤϡ TINET ե졼ե˰ʲΤ褦
               ˻ꤹ롣

                  VRID_TCP_REP (TCP_RSV_REPID1);

               ˤꡢ TCP ոѤΥΰ褬ݤ졢 TINET
               ǻѤ륫ͥ륪֥Ȥ ID ưշ̥ե
               TOPPERS/ASP  tinet_cfg.h TOPPERS/JSP 
               tinet_id.hˤˡ бޥʲΤ褦˽Ϥ롣

                  #define TCP_RSV_REPID1  1

         [2]   TCP ոưŪ APItcp_cre_reptcp6_cre_rep
               ˤꡢTCP ո롣

               ޤTCP ո¤Τ˾ꤹ롣IPv4 
               ʲ˼

                  T_TCP_CREP crep;
                  crep.repatr = 0;
                  crep.myaddr.portno = 7;
                  crep.myaddr.ipaddr = IPV4_ADDRANY;

               ޤ IPv6 ξʲ˼

                  T_TCP6_CREP crep;
                  crep.repatr = 0;
                  crep.myaddr.portno = 7;
                  memcpy(&crep.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));

               ⡢ դ뼫ʬ IP ɥ쥹ϵ͡ơˤǤ롣
                 ˡtcp_cre_rep ν񼰤򼨤

                  ER ercd = tcp_cre_rep(ID repid, T_TCP_CREP *pk_crep);

               ѥ᡼ repid ˤ [1] ͽ󤷤 TCP ո ID 
               ꤷpk_crep ˤϾ嵭Ѥߤ TCP ո
               Υݥ󥿤ꤹ롣 Ūʲ˼

                  ercd = tcp_cre_rep(TCP_RSV_REPID1, &crep);

               ˤꡢ VRID_TCP_REP ǳݤ줿 TCP ոѤΥ
               ΰ TCP ո󤬽ޤ롣

         [3]   ³׵Ԥʼưץˡtcp_acp_ceptcp6_acp_cep
               ˤꡢ ³׵Ԥʼưץˤ롣

               tcp_acp_cep ν񼰤򼨤

                  ER ercd = tcp_acp_cep(ID cepid, ID repid,
                                        T_IPV4EP *p_dstaddr, TMO tmout);

               ѥ᡼ repid  [1] ͽ󤷤 TCP ո ID 
               ʳϡ̾θƤӽФƱǤ롣 

         [4]   TCP ոκưŪ APItcp_del_repۤˤꡢTCP 
               ո롣

                 ̾ϡ ³׵Ԥʼưץˤλˡ
               TCP ո뤬 ³׵Ԥʼưץ
               ˡ tcp_del_cep ˤꡢTCP ̿ü뤳Ȥ
               ǽǤ롣ξ硢tcp_acp_cep ͤˤϡ E_DLT 
               ֤롣 TCP ոȡ¾ΥƱ TCP
               ո ID ѤǤ롣tcp_del_rep ν񼰤򼨤

                  ER ercd = tcp_del_rep(ID cepid);

               ѥ᡼ repid ˤ [1] ͽ󤷤 TCP ո ID 
               ꤹ롣

   (2)   TCP ̿üȺ
           εǽˤꡢ1 Ĥ TCP ̿üʣΥǶͭ
         ȤǤ롣1 ˻ѤǤΤ 1 ĤΥ˸
         롣ʲɸŪʻˡҤ٤롣ʤ ѻˤʤ뤿
         IPv6 ˴ؤƤϡάƤ롣

         [1]   TCP ̿üͽ IDŪ API VRID_TCP_CEP
               VRID_TCP6_CEPۤˤꡢTCP ̿ü ID ͽ󤹤롣

               VRID_TCP_CEP ν񼰤ʲ˼

                  VRID_TCP_CEP(ID cepid);

               ѥ᡼ cepid ͽ󤹤 TCP ̿ü ID Ǥꡢ 
               Ūˤϡ TINET ե졼ե˰ʲΤ
               ˻ꤹ롣

                  VRID_TCP_CEP (TCP_RSV_CEPID1);

               ˤꡢTCP ̿üѤΥΰ褬ݤ졢TINET
               ǻѤ륫ͥ륪֥Ȥ ID ưշ̥ե
               TOPPERS/ASP  tinet_cfg.h TOPPERS/JSP 
               tinet_id.hˤˡ бޥʲΤ褦˽Ϥ롣

                  #define TCP_RSV_CEPID1  1

         [2]   TCP ̿üưŪ APItcp_cre_cepۤˤꡢ TCP
               ̿ü롣

               ޤ TCP ̿ü¤Τ˾ꤹ롣
               Ūʲ˼

                  T_TCP_CCEP ccep;
                  ccep.cepatr = 0;
                  ccep.sbufsz = TCP_ECHO_SRV_SWBUF_SIZE;
                  ccep.rbufsz = TCP_ECHO_SRV_RWBUF_SIZE;
                  ccep.sbuf = tcp_echo_srv_swbuf;
                  ccep.rbuf = tcp_echo_srv_rwbuf;
                  ccep.callback = (FP)callback_nblk_tcp_echo_srv;

               ˡtcp_cre_cep ν񼰤򼨤

                  ER ercd = tcp_cre_cep(ID cepid, T_TCP_CCEP *pk_ccep);

               ѥ᡼ cepid ˤ [1] ͽ󤷤 TCP ̿ü ID 
               ꤷpk_ccep ˤϾ嵭Ѥߤ TCP ̿ü
               ؤΥݥ󥿤ꤹ롣 Ūʲ˼ 

                  ercd = tcp_cre_cep(TCP_RSV_CEPID1, &ccep);

               ˤꡢ VRID_TCP_CEP ǳݤ줿 TCP ̿üѤ
               ΰ TCP ̿ü󤬽ޤ롣
                 θ塢TCP γ API Υѥ᡼ cepid  [1] ͽ
                TCP ̿ü ID ꤹʳϡ ̾ TCP ̿
               üƱ褦˻ѤǤ롣

         [3]   TCP ̿üκưŪ API tcp_del_cepۤˤꡢTCP
               ̿ü롣

                 tcp_cls_cep ƤӽФޤǤϡ TCP ̿üǤ
               ʤtcp_cls_cep θ TCP ̿üǤ¾
               Ʊ TCP ̿ü ID ѤǤ롣 tcp_del_cep
               ν񼰤򼨤

                  ER ercd = tcp_del_cep(ID cepid);

               ѥ᡼ cepid ˤ [1] ͽ󤷤 TCP ̿ü ID 
               ꤹ롣

   (3)   ۵ޥǡ

         [1]   ۵ޥǡtcp_snd_oob

               tcp_snd_oob ν񼰤ʲ˼

                  ER_UINT ercd = tcp_snd_oob(ID cepid, void *data, int_t len, TMO tmout);

               ʤʲ˼褦󤬤롣 

               ۵ޥǡȤäơ ǤɥХåե
                 ˤ̾Υǡ櫓ǤϤʤ 
               tcp_snd_oob ǡʣХȤΥǡƤlen >
                 1ˡ¦ǼǤΤϡ data κǸ 1
                 ХȤΤߤǤ롣 ޤΥǡ̾Υǡ
                 ȤƼ롣

         [2]   ۵ޥǡμtcp_rcv_oob

               tcp_rcv_oob ν񼰤ʲ˼

                  ER_UINT ercd = tcp_rcv_oob(ID cepid, void *data, int_t len);

               ʤʲ˼褦󤬤롣 

               ۵ޥǡΥХåؿǸƤӽФȤ
                 ꤷƤ롣
               ǤΤϡ۵ޥǡκǸ 1 ХȤΤߤǤ롣
                 äơ tcp_rcv_oob äƤͤϡ
                  1 Ǥ롣

         [3]   ۵ޥǡڥХåTEV_TCP_RCV_OOB
                 ۵ޥǡ TCP ̿ü˻ꤵƤ
               ХåؿƤӽФ λλݤμब
               TEV_TCP_RCV_OOB Ǥ롣 TCP ̿ü˥Х
               ؿꤵƤʤ硢ޤϡ Хåؿ
                tcp_rcv_oob ƤӽФʤС۵ޥǡ
               ̾ΥǡȤƼ롣

         [4]   ѥե졼ѥ᡼

                  TCP_CFG_URG_OFFSET

               ۵ޥǡκǸΥХȤΥեåȡ ͤ -1 ξ
               BSD μƱǡ۵ޥݥ󥿤ϡ ۵ޥǡκǸ
               ХȤμΥХȤ򺹤 ͤ 0 ξ RFC1122 ε
               Ʊǡ۵ޥݥ󥿤ϡ ۵ޥǡκǸΥХȤ
               ͤ -1 Ǥ롣

   (4)   TCP ̿üץɽФ
           ǽ TCP ̿üץ̵ᡢɤδؿ
         ͤȤ E_PAR ֤롣

3. 2  UDP  ITRON TCP/IP API ĥǽ

  UDP_CFG_EXTENTIONS ꤹ뤳ȤˤѲǽȤʤ API ʲ˼


   UDP ̿üͽ IDŪ APIVRID_UDP_CEPۡIPv4TINET ȼ
   UDP ̿üͽ IDŪ API VRID_UDP6_CEPۡIPv6TINET 
     
   UDP ̿üưŪ APIudp_cre_cepۡIPv4
   UDP ̿üưŪ APIudp6_cre_cepۡIPv6TINET ȼ
   UDP ̿üκưŪ APIudp_del_cep
   UDP ̿üץudp_set_opt
   UDP ̿üץɽФudp_get_opt

   (1)   UDP ̿üȺ
           εǽˤꡢ1 Ĥ UDP ̿üʣΥǶͭ
         ȤǤ롣1 ˻ѤǤΤ 1 ĤΥ˸
         롣ʲɸŪʻˡҤ٤롣ʤ ѻˤʤ뤿
         IPv6 ˴ؤƤϡάƤ롣

         [1]   UDP ̿üͽ IDŪ API VRID_UDP_CEP
               VRID_UDP6_CEPۤˤꡢUDP ̿ü ID ͽ󤹤롣

               VRID_UDP_CEP ν񼰤ʲ˼

                  VRID_UDP_CEP(ID cepid);

               ѥ᡼ cepid ͽ󤹤 UDP ̿ü ID Ǥꡢ 
               Ūˤϡ TINET ե졼ե˰ʲΤ
               ˻ꤹ롣

                  VRID_UDP_CEP (UDP_RSV_CEPID1);

               ˤꡢUDP ̿üѤΥΰ褬ݤ졢TINET
               ǻѤ륫ͥ륪֥Ȥ ID ưշ̥ե
               TOPPERS/ASP  tinet_cfg.h TOPPERS/JSP 
               tinet_id.hˤˡ бޥʲΤ褦˽Ϥ롣

                  #define UDP_RSV_CEPID1  1

         [2]   UDP ̿üưŪ APIudp_cre_cepۤˤꡢ UDP
               ̿ü롣

               ޤ UDP ̿ü¤Τ˾ꤹ롣̿
               ꤫ΥǡμԤıѥץꥱǡ
               IPv4 ξʲ˼

                  T_UDP_CCEP ccep;
                  ccep.cepatr = 0;
                  ccep.myaddr.portno = 7;
                  ccep.myaddr.ipaddr = IPV4_ADDRANY;

               ޤ IPv6 ξʲ˼

                  T_UDP_CCEP ccep;
                  ccep.cepatr = 0;
                  ccep.myaddr.portno = 7;
                  memcpy(&ccep.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));

               ⡢ դ뼫ʬ IP ɥ쥹ϵ͡ơˤǤ롣
                 ˡudp_cre_cep ν񼰤򼨤

                  ER ercd = udp_cre_cep(ID cepid, T_UDP_CCEP *pk_ccep);

               ѥ᡼ cepid ˤ [1] ͽ󤷤 UDP ̿ü ID 
               ꤷpk_ccep ˤϾ嵭Ѥߤ UDP ̿ü
               ؤΥݥ󥿤ꤹ롣 Ūʲ˼ 

                  ercd = udp_cre_cep(UDP_RSV_CEPID1, &ccep);

               ˤꡢ VRID_UDP_CEP ǳݤ줿 UDP ̿üѤ
               ΰ UDP ̿ü󤬽ޤ롣
                 θ塢UDP γ API Υѥ᡼ cepid  [1] ͽ
                UDP ̿ü ID ꤹʳϡ ̾ UDP ̿
               üƱ褦˻ѤǤ롣

         [3]   UDP ̿üκưŪ APIudp_del_cepۤˤꡢ UDP
               ̿ü롣

                 UDP ̿üϤĤǤǤ ¾ΥƱ UDP
               ̿ü ID ѤǤ롣ʤ udp_snd_dat Ԥ
               λޤϡudp_rcv_dat ǼԤλˡudp_del_cep
               ˤꡢ UDP ̿üȡ줾δؿ
               ͤˤϡE_DLT ֤롣
                 ˡudp_del_cep ν񼰤򼨤

                  ER ercd = udp_del_cep(ID cepid);

               ѥ᡼ cepid ˤ [1] ͽ󤷤 UDP ̿ü ID 
               ꤹ롣

   (2)   UDP ̿üץɽФ
           ǽ TCP ̿üץ̵ᡢɤδؿ
         ͤȤ E_PAR ֤롣

4.  롼ƥ󥰤

  롼ƥ󥰥ȥˤϡŪ롼ƥ󥰥ȥȸľICMP
ˤ롼ƥ󥰥ȥ꤬롣 
  Ū롼ƥ󥰥ȥϡͽ줿롼ƥ󥰾Ǥꡢ롼
ƥե route_cfg.c Υ롼ƥɽȥꤹ
롣ʤǥեȥȥΤߤΥץʥͥåȥǤϡ
ץ륢ץꥱ echos  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 ɥ쥹
            uint32_t        expire          ֤ͭڤ0xffffffff ꤹ뤳ȡ
            uint8_t         flags           ե饰0x01 ꤹ뤳ȡ
            uint8_t         prefix_len      ץեåĹ

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

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

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

         [1]   TOPPERS/ASP

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

         [2]   TOPPERS/JSP

                  #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> ˸äƹԤ롣

5.  TINET ȼǽ

5. 1   Time Wait ֤ TCP ̿üʬΥǽ

  TCP ̿üϡåȥ󥿥եˤեǥץ
Ȱۤʤꡢ TCP ³֤˽λޤǺѲǽȤϤʤʤ
TCP/IP ץȥλͤ˽ȡ ³֤˽λޤǿʬ
礬롣ˤʤΤϡˡTCP ̿üΥͥ API
 tcp_sht_cep ƽФ ͥǤǤ롣 λ
tcp_sht_cep ǻꤵ줿 TCP ̿üϡǽŪ Time Wait ֤ˤʤꡢ
TCP ̿üΥ API  tcp_cls_cep ƽФ⡢ॢ
Ԥ֤ˤʤ롣äơ¦ǤѥץWWW 
ɡˤΥǤϡॢȤޤǡ³׵뤳Ȥ
ʤ
  б뤿ᡢ TINET ϡλԤ TCP ̿ü򥿥
ΥȤˤꡢԤ֤ˤʤʤ褦ˤ뵡ǽäƤꡢ
ͭˤ뤿ˤϡ ѥե졼ѥ᡼
NUM_TCP_TW_CEP_ENTRY  tinet_app_config.h ˻ꤷ ݤ TW 
TCP ̿üο1 ʾ͡ˤ롣
  TCP ̿ü Time Wait ˤʤȡTCP ̿ü顢 Time Wait ɬ
פ̿ǡ TW  TCP ̿ü˥ԡ TCP ̿ü
롣 ȼäơ Ԥ֤鳫롣 ޤTW 
TCP ̿üˤ Time Wait ɬפ̿ǡΤߤ򥳥ԡ뤳
ǡξޤƤ롣
  εǽͭˤƤƤ⡢ͥƱǤΥߥ
ˤäƤϡʬΥʤ礬롣 

5. 2  ɥХåեξʥԡǽ

  ITRON TCP/IP API ͤǤϡTCP ̿üŪ API ǡ
ɥХåեƬɥ쥹λˡ NADR ꤹȡץȥ륹
åǡ ɥХåեݤ뤳ȤˤʤäƤ롣 
  TINET ǤϡͥåȥХåե򡢼ɥХåեȤ뤳Ȥǡ
NADR λбƤ롣 ˡͥåȥ󥿥եǼ
ץȥ륳ǡݻͥåȥХåե򡢤Τޤ޼
ɥХåեȤ뤳Ȥǡͥåȥ󥿥եȡTINET ǡǡ
ΥԡʤƤ롣äˡ ʥԡ API Ѥ뤳Ȥˤꡢ API
ˤǡΥԡԤʤȤǽǤ롣 
  εǽ˴ط륳ѥե졼ѥ᡼򡢰
˼

   (1)   TCP_CFG_RWBUF_CSAVE_ONLY
         TCP ̿üμɥХåեξʥԡǽȹߡ 
         εǽΤ߻Ѥ롣TCP ̿üŪ API ǡ
         ɥХåեƬɥ쥹λˡ ѥץबѰդ
         ХåեꤷƤ̵뤹롣

   (2)   TCP_CFG_RWBUF_CSAVE
         TCP ̿üμɥХåեξʥԡǽȹࡣTCP
         ̿üŪ API ǡɥХåեƬ
         쥹λˡNADR ꤷϡɥХåեξ
         ԡǽѤ뤬 ѥץबѰդХåե
         ꤷϡ ɥХåեξʥԡǽѤʤ 

   (3)   TCP_CFG_RWBUF_CSAVE_MAX_QUEUES
         TCP ̿üμɥХåեξʥԡǽΡ 
         ɥХåե塼κ票ȥǤ롣 ˼
         Ȥ˴뤿ᡢä롣ޤ 
         ʤ¤ʤ

ʤTCP_CFG_RWBUF_CSAVE_ONLY  TCP_CFG_RWBUF_CSAVE Ρ
ʤϡ TCP ̿üŪ API ǡɥХåե
Ƭɥ쥹λˡNADR ꤹ뤳ȤǤʤ

5. 3  ɥХåեξʥԡǽ

  ITRON TCP/IP API ͤǤϡTCP ̿üŪ API ǡ
ɥХåեƱͤˡ ɥХåեƬɥ쥹λˡ
NADR ꤹȡ ץȥ륹åǡɥХåեݤ
뤳ȤˤʤäƤ롣
  TINET ǤϡͥåȥХåեɥХåեȤ뤳Ȥǡ
NADR λбƤ롣ˡ ޤ줿ǡɬפʥإå
ղäơΤޤޥͥåȥ󥿥եϤȤˤꡢͥå
󥿥եȡTINET ǡǡΥԡʤƤ롣äˡ
ʥԡ API Ѥ뤳Ȥǡ API ˤǡΥԡԤʤ
ȤǽǤ롣
   ͥåȽϻˡ NIC ǥͥåȥХåե
ʥѥե졼ѥ᡼
ETHER_NIC_CFG_RELEASE_NET_BUF 򡢻ꤹɬפ˥ǥХɥ饤
ФǤϡ ɥХåեξʥԡǽѤ뤳ȤϤǤʤ 
  εǽ˴ط륳ѥե졼ѥ᡼򡢰
˼

   (1)   TCP_CFG_SWBUF_CSAVE_ONLY
         TCP ̿üɥХåեξʥԡǽȹߡ 
         εǽΤ߻Ѥ롣TCP ̿üŪ API ǡ
         ɥХåեƬɥ쥹λˡ ѥץबѰդ
         ХåեꤷƤ̵뤹롣

   (2)   TCP_CFG_SWBUF_CSAVE
         TCP ̿üɥХåեξʥԡǽȹࡣTCP
         ̿üŪ API ǡɥХåեƬ
         쥹λˡNADR ꤷϡɥХåեξ
         ԡǽѤ뤬 ѥץबѰդХåե
         ꤷϡ ɥХåեξʥԡǽѤʤ 

   (3)   TCP_CFG_SWBUF_CSAVE_MAX_SIZE
         TCP ̿üɥХåեξʥԡǽǡ 
         ɥХåե˻ѤͥåȥХåեκ祵Ǥꡢ
         ɸͤ IF_PDU_SIZE Ǥ롣

   (4)   TCP_CFG_SWBUF_CSAVE_MIN_SIZE
         TCP ̿üɥХåեξʥԡǽǡ 
         ɥХåե˻ѤͥåȥХåեκǾǤꡢ
         ɸͤ 0 Ǥ롣

ʤTCP_CFG_SWBUF_CSAVE_ONLY  TCP_CFG_SWBUF_CSAVE Ρ
ʤϡTCP ̿üŪ API ǡ ɥХåե
Ƭɥ쥹λˡNADR ꤹ뤳ȤǤʤ

5. 4  Υ֥å󥰥̵

  ѥץǡ Υ֥å󥰥Ѥʤϡ TCP 
UDP ΥΥ֥å󥰥뵡ǽȹޤʤǡ󤹤뤳Ȥ
Ǥ롣
  εǽ˴ط륳ѥե졼ѥ᡼򡢰
˼

   (1)   TCP_CFG_NON_BLOCKING
         TCP ΥΥ֥å󥰥뵡ǽȹࡣ

   (2)   UDP_CFG_NON_BLOCKING
         UDP ΥΥ֥å󥰥뵡ǽȹࡣ

 Υ꡼ȤθߴΤᡢ ɤΥѥ᡼⡢
tinet/tinet_config.h ˻ꤵƤꡢ ǤϡΥ֥å󥰥
뵡ǽȹޤ褦ˤʤäƤ롣 äơ ȹޤʤϡ
tinet_app_config.h ʤɤǡ#undef ˤꡢʤФʤʤ

5. 5  TCP ո̵

  ѥץब饤ȵǽΤߤǹ졢꤫³׵
դʤΤǤС TCP ոפǤꡢ TCP ոȡ
ؿȹޤʤǡ 󤹤뤳ȤǤ롣 
  εǽ˴ط륳ѥե졼ѥ᡼򡢰
˼

   (1)   TCP_CFG_PASSIVE_OPEN
         TCP μưץǽȹࡣ

 Υ꡼ȤθߴΤᡢ Υѥ᡼ϡ
tinet/tinet_config.h ˻ꤵƤꡢǤϡ TCP μưץ
ǽȹޤ褦ˤʤäƤ롣 äơ ȹޤʤϡ
tinet_app_config.h ʤɤǡ#undef ˤꡢʤФʤʤ

5. 6  TCP إåΥȥ졼ϵǽ

   TCP Ȥ TCP إå TCP ̿üξϤ
뵡ǽǤ롣ʤ CONSOLE_PORTID ǻꤵ륷ꥢݡȤľܽ
ϤΤǡ SYSLOG Ϥ뤳Ȥ롣νỌ̇̄ʲ
˼

   <I 329.599=c: 4 s:CW f:60c00:--A---- a: 74461 s: 76082 w:58400 l:   0=

   329.599       ֡1/1000 ñ̡ޤ 1 ñ
   c: 4          TCP ̿ü ID
   s:CW          TCP FSM ֡tinet/netinet/tcp_fsm.h ȡ
   f:60c00       TCP ̿üξ֥ե饰16 ʿ
                 tinet/netinet/tcp_var.h ȡ
   :--A----      TCP إåΥե饰եɤ͡tinet/netinet/tcp.h
                 ȡ
   a: 74461      TCP إåγǧֹʥͥΩ
                 ͡
   s: 76082      TCP إåΥֹʥͥΩ
                 ͡
   w:58400       TCP إåΥɥ
   l:0           ڥɥǡ

  νỌ̇̄ʲ˼ 

   =O 329.627=c: 4 s:CW f:60d20:--AP--- s: 74461 a: 76082 w: 2920 l:1460>

   329.627       ֡1/1000 ñ̡ޤ 1 ñ
   c: 4          TCP ̿ü ID
   s:CW          TCP FSM ֡tinet/netinet/tcp_fsm.h ȡ
   f:60d20       TCP ̿üξ֥ե饰16 ʿ
                 tinet/netinet/tcp_var.h ȡ
   :--AP---      TCP إåΥե饰եɤ͡tinet/netinet/tcp.h
                 ȡ
   s: 74461      TCP إåΥֹʥͥΩ
                 ͡
   a: 76082      TCP إåγǧֹʥͥΩ
                 ͡
   w: 2920       TCP إåΥɥ
   l:1460        ڥɥǡ

  εǽ˴ط륳ѥե졼ѥ᡼򡢰
˼

   (1)   TCP_CFG_TRACE
         TCP إåΥȥ졼ϵǽȹࡣ

   (2)   TCP_CFG_TRACE_IPV4_RADDR
         ȥ졼оݤΥ⡼ȥۥȤ IPv4 ɥ쥹ꤹ롣
         IPV4_ADDRANY ꤹȡƤΥۥȤоݤȤ롣

   (3)   TCP_CFG_TRACE_LPORTNO
         ȥ졼оݤΥۥȤΥݡֹꤹ롣
         TCP_PORTANY ꤹȡƤΥݡֹоݤˤ롣

   (4)   TCP_CFG_TRACE_RPORTNO
         ȥ졼оݤΥ⡼ȥۥȤΥݡֹꤹ롣
         TCP_PORTANY ꤹȡƤΥݡֹоݤˤ롣

5. 7  TINETΥ饤֥경

  TINET Υ饤֥경ϡ̤︺뤳ȤŪ˼Ƥ
롣Τᡢ饤֥경ƤΤ ITRON TCP/IP API ʬΤߤǤ
ץˤꡢƤѤ뤿ᡢ饤֥ƹۤɬפ
ꡢTINET ΥʬΥ饤֥경ϹԤƤʤޤѥ
롣äơ饤֥ȥץꥱץ̡˹ۤƤ
ǥ󥯤ˡϥݡȤƤʤ 
  ITRON TCP/IP API ʬ饤֥경ʤˤϡ ץꥱ
 Makefile  NO_USE_TINET_LIBRARY = true ꤹ롣

5. 8  IPv6ˤ륢ɥ쥹Path MTUؤб

  TINET ꡼ 1.3 ޤǡIPv6 ˤ륢ɥ쥹ϸŪбΤ
Ǥꡢ Path MTU ˤбƤʤäۥȾΥå
뤳ȤˤꡢTINET ꡼ 1.4 ϡܴۤб
  εǽ˴ط륳ѥե졼ѥ᡼򡢰
˼

   (1)   NUM_IN6_IFADDR_ENTRY
         󥿥եΥɥ쥹ꥹȡIPv6ˤΥȥǤ롣

   (2)   NUM_ND6_DEF_RTR_ENTRY
         ǥեȥ롼ꥹȤΥȥǡͤ 16 Ǥ롣0
         ꤹȥ롼Τʤߤϡ 롼
         Τμʳ˥ȥ륢ɥ쥹ꤹˡʤ 

   (3)   NUM_ND6_PREFIX_ENTRY
         ץեåꥹȤΥȥǡͤ 16 Ǥ롣

   (4)   NUM_IN6_HOSTCACHE_ENTRY
         IPv6 ѥۥȾ󥭥åΥȥǡ 0 ꤹ
         IPv6 ѥۥȾ󥭥åȹޤʤޤξ硢Path
         MTU ؤбŪˤʤ롣

6.  TINET ȼ API

6. 1  ͥåȥ׾

  ƥåȿ ѥåȿ׾Υ
net_countˤñѿ¤ΡˤȹޤƤ롣

   (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 򻲾Ȥ뤳ȡ

6. 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

6. 3  TINET ؿݡȴؿѿȥޥ

  ѥץफ TINET ˥뤿δؿ ݡȴؿ
ѿȥޥǤ롣

   (1)   󥿥ե IPv4 ɥ쥹ꤹؿ
         C  API
               ER ercd = in4_add_ifaddr (T_IN4_ADDR addr, T_IN4_ADDR mask);

         ڥѥ᡼
               T_IN4_ADDR          addr      IPɥ쥹
               T_IN4_ADDR          mask      ֥ͥåȥޥ

         ڥ꥿ѥ᡼
               ER        ercd      顼ɡʸߤϾE_OK

         ڥ顼ɡ
               E_OK                ߤϾE_OK

         ڥ󥯥롼ɥե
               <netinet/in.h>

         ڵǽ
                 󥿥ե IPv4 ɥ쥹ꤹ롣 ͥ
               ȥ󥿥եͥåȤǡ ͥåȥ
               Ȥ IPv4 ꤵƤΤͭǤ롣

   (2)   IPv4 Ūϩɽ˷ϩꤹؿ
         C  API
               ER ercd = in4_add_route (int index, T_IN4_ADDR target,
                                                   T_IN4_ADDR mask,
                                                   T_IN4_ADDR gateway);

         ڥѥ᡼
               int       index     ȥΥǥå
               T_IN4_ADDR          target    ɸͥåȥIPɥ쥹
               T_IN4_ADDR          mask      ɸͥåȥΥ֥ͥåȥޥ
               T_IN4_ADDR          gateway   ȥIPɥ쥹

         ڥ꥿ѥ᡼
               ER        ercd      顼

         ڥ顼ɡ
               E_PAR               indexͤ餫ѥե졼
                                   ѥ᡼NUM_ROUTE_ENTRYʾΤȤE_PAR

         ڥ󥯥롼ɥե
               <netinet/in.h>

         ڵǽ
                 IPv4 Ūϩɽ˷ϩꤹ롣ͥå
               󥿥եͥåȤǡ ͥåȥؤ
                IPv4 ꤵƤΤͭǤ롣

   (3)   IPv4 ɥ쥹ƥɽʸˤѴؿ
         C  API
               char *p_retbuf = ip2str (char *p_buf, const T_IN4_ADDR *p_ipaddr);

         ڥѥ᡼
               char           buf       ƥɽIPv4ɥ쥹ǼХåե
               const T_IN4_ADDR         ipaddr    IPv4ɥ쥹

         ڥ꥿ѥ᡼
               char           retbuf    ƥɽ IPv4 ɥ쥹Ǽ줿Хåե

         ڥ󥯥롼ɥե
               <netinet/in.h>

         ڵǽ
                 IPv4 ɥ쥹ƥɽʸˤѴ롣ѥ
               ᡼ buf ˤϡ 16 ХȤΰ褬ɬפǤ롣ޤ
               ѥ᡼ buf ˡNULL ꤹȡ TINET ǳ
               ƤХåե IPv4 ɥ쥹ƥɽѴ
               ƽ񤭹ߡ Υɥ쥹֤ѥե
               졼ѥ᡼ NUM_IPADDR_STR_BUFF ˤХåե
               ꤹ뤳Ȥ롣 ХåեĶϢ
               ³Ū˸ƽФȥХåե񤭤롣 

   (4)   IPv6 ɥ쥹ƥɽʸˤѴؿ
         C  API
               char *p_retbuf = ipv62str (char *p_buf, const T_IN6_ADDR *p_ipaddr);

         ڥѥ᡼
               char           buf       ƥɽIPv6ɥ쥹ǼХåե
               const T_IN6_ADDR         ipaddr    IPv6ɥ쥹

         ڥ꥿ѥ᡼
               char           retbuf    ƥɽ IPv6 ɥ쥹Ǽ줿Хåե

         ڥ󥯥롼ɥե
               <netinet/in.h>

         ڵǽ
                 IPv6 ɥ쥹ƥɽʸˤѴ롣ѥ
               ᡼ buf ˤϡ 40 ХȤΰ褬ɬפǤ롣ޤ
               ѥ᡼ buf ˡNULL ꤹȡ TINET ǳ
               ƤХåե IPv6 ɥ쥹ƥɽѴ
               ƽ񤭹ߡ Υɥ쥹֤ѥե
               졼ѥ᡼ NUM_IPADDR_STR_BUFF ˤХåե
               ꤹ뤳Ȥ롣 ХåեĶϢ
               ³Ū˸ƽФȥХåե񤭤롣 

   (5)   ITRON TCP/IP API ǽɤʸɽѴؿ
         C  API
               const char *p_str = in_strtfn (FN fncd);

         ڥѥ᡼
               FN        fncd      ITRON TCP/IP API ǽ

         ڥ꥿ѥ᡼
               const char          str       ITRON TCP/IP API ǽɤʸɽ

         ڥ󥯥롼ɥե
               <netinet/in.h>

         ڵǽ
                 ITRON TCP/IP API ǽɤʸɽѴ롣

   (6)   MAC ɥ쥹ƥɽʸˤѴؿ
         C  API
               char *p_retbuf = mac2str (char *p_buf, uint8_t *p_macaddr);

         ڥѥ᡼
               char      buf       ƥɽMACɥ쥹ǼХåե
               uint8_t   macaddr   MACɥ쥹

         ڥ꥿ѥ᡼
               char      retbuf    ƥɽ MAC ɥ쥹Ǽ줿Хåե

         ڥ󥯥롼ɥե
               <sil.h>   TOPPERS/ASP Ǥɬ
               <net/net.h>

         ڵǽ
                 MAC ɥ쥹ƥɽʸˤѴ롣 ѥ
               ᡼ buf ˤϡ 18 ХȤΰ褬ɬפǤ롣ޤ
               ѥ᡼ buf ˡ NULL ꤹȡTINET ǳ
               ƤХåե MAC ɥ쥹ƥɽѴ
               񤭹ߡΥɥ쥹֤ ѥե
               졼ѥ᡼ NUM_MACADDR_STR_BUFF ˤХåե
               ꤹ뤳Ȥ롣 ХåեĶϢ
               ³Ū˸ƽФȥХåե񤭤롣 

   (7)   IPv6  IPV6_ADDRANY бѿ
         C  API
               const T_IN6_ADDR ipv6_addrany;

         ڵǽ
                 T_IPV6EP  ipaddr եɤˡ IPV4_ADDRANY 
               ȤIPv4 Ǥϡ

                  myaddr.ipaddr = IPV4_ADDRANY;

               ȻǤ뤬IPv6 ǤϡƱͤλ꤬Ǥʤ
               դѿǤꡢ ʲΤ褦ˡؿ
               ӽФƥԡ롣

                  memcpy(&myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));

               ʤѿϥޥƤ롣 

   (8)   TINET ΥСޥ
         C  API
               TINET_PRVER

         ڥӥåʬ
               ӥå1215        ᥸㡼꡼ʸߤͤ1
               ӥå411         ޥʡ꡼ʸߤͤ5
               ӥå30          ѥå٥ʸߤͤ0

         ڥ󥯥롼ɥե
               <net/net.h>

   (9)   8 ӥå˻ꤷ IPv4 ɥ쥹 32 ӥåȤˤޥ
         C  API
               T_IN4_ADDR addr = MAKE_IPV4_ADDR(uint8_t a, uint8_t b,
                                                uint8_t c, uint8_t d);

         ڥѥ᡼
               uint8_t   a         IPv4ɥ쥹Υӥå2431
               uint8_t   b         IPv4ɥ쥹Υӥå1623
               uint8_t   c         IPv4ɥ쥹Υӥå815
               uint8_t   d         IPv4ɥ쥹Υӥå07

         ڥ꥿ѥ᡼
               T_IN4_ADDR          addr      32ӥåȤIPv4ɥ쥹

         ڥ󥯥롼ɥե
               <netinet/in.h>

         ڵǽ
                 ƥƥåȤͤ IPv4 ɥ쥹롣

   (10)  ޥ

         TCP_REP_NONE         TCP ո̵ͤϡ0ˡ
         TCP_CEP_NONE         TCP ̿ü̵ͤϡ0ˡ
         UDP_CEP_NONE         UDP ̿ü̵ͤϡ0ˡ

6. 4  ѥץॳХåؿ

  TINET ƽФѥץॳХåؿǤꡢѥץ
¦Ѱդɬפ롣

   (1)   IPv4 ɥ쥹ʣлΥХåؿ
         C  API
               boot_t reply = arp_callback_duplicated(uint8_t *shost);

         ڥѥ᡼
               uint8_t   shost     ʣMACɥ쥹

         ڥ꥿ѥ᡼
               bool_t    reply     ʣ

         ڥ󥯥롼ɥե
               <netinet/if_ether.h>

         ڥѥե졼ѥ᡼
               ARP_CFG_CALLBACK_DUPLICATED

         ڵǽ
                 ͤ TRUE ꤹȡTINET ǽʣ MAC 
               ɥ쥹 syslog ˽Ϥ ʣˤʣȤ
               롣FALSE ꤹȲ⤷ʤ

7.  TOPPERS/ASP Ķˤ륤󥹥ȡȥեκѹ

7. 1  󥹥ȡ

   (1)   TOPPERS/ASP 򥤥󥹥ȡ뤹롣 TOPPERS/ASP Υ󥹥ȡ
         ؤƤϡ TOPPERS/ASP ͥ桼ޥ˥奢user.txt
         Ρ3.1. ȯĶν פ򻲾Ȥ뤳ȡ

   (2)   TOPPERS/ASP  TINET ۥեtinet-asp-1.5.tar.gzˤ
         TOPPERS/ASP 롼ȥǥ쥯ȥŸ롣

7. 2  եκ

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

   $(ARCH)         ץå¸
   $(TARGET)       åȰ¸
   $(NIC)          ͥåȥ󥿥ե
   $(APP_DIR)      ץꥱץΥǥ쥯ȥ
   $(APPLNAME)     ץꥱץ̾

   (1)   target/$(TARGET)/tinet_target_config.hڿ
         ƥ˰¸ TINET ե졼󡦥ѥ᡼
         եǤ롣 ƤˤĤƤ tinet_config.pdf
         tinet_config.txtˤ򻲾Ȥ뤳ȡ

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

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

   (4)   target/$(TARGET)/tinet_target_defs.hڿ
         ץå˰¸ TCP/IP ѥ᡼եǤ
         롣ƤˤĤƤ tinet_defs.pdftinet_defs.txtˤ򻲾Ȥ뤳ȡ

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

   (6)   $(APP_DIR)/tinet_$(APPLNAME).cfgڿ
         TINET ե졼եǤ롣 ƤˤĤƤ
         2.1 TOPPERS/ASP Ķˤ TINET ե졼ե
          פ򻲾Ȥ뤳ȡ 

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

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

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

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

            INCLUDE("../tinet/tinet_asp.cfg");

   (10)  $(APP_DIR)/Makefileѹ
         ѹˤĤƤϡ7.3 ץꥱ Makefileפ򻲾Ȥ뤳ȡ

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

   (12)  $(APP_DIR)/tinet_kern.cfgڼư
         TINET ǻѤ륫ͥ륪֥ȤŪ API 
         եǡ TOPPERS/ASP ե졼ˤ롣
         TOPPERS/ASP Υƥॳե졼եɸ
          $(APPLNAME).cfgˤ˥󥯥롼ɤ롣

   (13)  $(APP_DIR)/tinet_cfg.hڼư
         TCP ոTCP ̿üڤ UDP ̿ü ID ưշ
         եǡTOPPERS/ASP ե졼ˤ롣

7. 3  ץꥱ Makefile

7. 3. 1  ץꥱ Makefile ν

  Ǥϡ¸ߤ륢ץꥱ Makefile ˡTINET Ȥ߹
िνˡҤ٤롣TINET °륵ץץιۤˤ
Ƥϡ 9.1 ץ륢ץꥱι פ򻲾Ȥ뤳ȡ
  ɸŪ TOPPERS/ASP Ķˤ륵ץ륢ץꥱ Makefile


   #
   #  ץꥱץ˴ؤ
   #
   APPLNAME = ...
      ... ά ...
   ifdef APPLDIR
     INCLUDES := $(INCLUDES) $(foreach dir,$(APPLDIR),-I$(dir))
   endif

θˡ˼ TINET Ѥɲä롣

   #
   #  ͥåȥӥ
   #
   
   #  ͥåȥ󥿥ե
   
   NET_IF = ether
   
   #  ͥåȡǥХɥ饤Ф
   
   NET_DEV = if_ed
   
   #  ͥåȥؤ򡢲줫򤹤롣
   
   SUPPORT_INET4 = true
   #SUPPORT_INET6 = true
   
   #  ȥ󥹥ݡؤ
   
   SUPPORT_TCP = true
   #SUPPORT_UDP = true
   
   #
   #  ƥॵӥ Makefile Υ󥯥롼
   #
   include $(SRCDIR)/tinet/Makefile.tinet

7. 3. 2  ץꥱ Makefile ˤ TINET ȹൡǽλ

  ץꥱ Makefile ˤ TINET ȹൡǽꤹˡ
ʲ˼

   (1)   ͥåȥ󥿥ե
           ͥåȤΤǤ롣

            NET_IF = ether

   (2)   ͥåȡǥХɥ饤Ф
           ʲ˼̤ꡢ NET_DEV ˥ͥåȡǥХɥ饤
         롣ߡTINET ۥեǤϡNE2000 ߴ NIC
         ΥͥåȡǥХɥ饤ФΤ󶡤Ƥ롣 

            NET_DEV = if_ed

   (3)   ͥåȥؤ
           ʲ˼顢IPv4  IPv6 β줫򤹤롣

            SUPPORT_INET4 = true
            #SUPPORT_INET6 = true

   (4)   ȥ󥹥ݡؤ
           ʲ˼顢ɬפʥץȥ򤹤롣 

            SUPPORT_TCP = true
            #SUPPORT_UDP = true

7. 3. 3  ƥॵӥ Makefile.tinet ѿ

  TINET ϡ ƥॵӥȤ TOPPERS/ASP ͥȹ礻ƥ
ѥ뤷Ƥ롣 TINET ȹॢץꥱѤ Makefile Ǥϡ
TINET Ѥ Makefile.tinet 򡢰ʲ˼󥯥롼ɤˤꤷƤ롣

   #
   #  ƥॵӥ Makefile Υ󥯥롼
   #
   include $(SRCDIR)/tinet/Makefile.tinet

ǤϡTINET Ѥ Makefile.tinet Ƥѿʲ˼

   (1)   SYSSVC_DIR
         ƥॵӥΥǥ쥯ȥɲä롣 TINET Ǥ
         $(TINET_DIR)
         ͤ
         $(TINET_ROOT)/net:$(TINET_ROOT)/netinet:$(TINET_ROOT)/netinet6
         ɲäƤ롣

   (2)   SYSSVC_LCSRCS
         ƥॵӥΥ饤֥경륽եɲä롣
         TINET Ǥ $(TINET_LCSRCS)ͤ tcp_usrreq.cudp_usrreq.c
         ɲäƤ롣

   (3)   SYSSVC_COBJS
         ƥॵӥ C Υ֥ȥեɲä롣
         TINET Ǥϡ$(TINET_COBJS)ͤϡ¿ΥեΤᡢ 
         ǤϾάˤɲäƤ롣

   (4)   SYSSVC_CFLAGS
         ƥॵӥ򥳥ѥ뤹ȤΥץǤ롣TINET
         Ǥ $(TINET_CFLAGS)̤ͤˤɲäƤ롣

   (5)   SYSSVC_LIBS
         ƥॵӥΥ饤֥ɲä롣 TINET Ǥϡ
         $(LIBTINET)ͤ libtinet.aˤ -lc ɲäƤ롣

   (6)   CLEAN_FILES
         make clean ǡ˾õեɲä롣TINET Ǥϡ
         $(TINET_CFG_OUT)
         ͤ tinet_kern.cfg tinet_cfg.h tinet_cfg.c
         tinet_cfg1_out.*ˤ $(MAKE_TINET_LIB)ͤ libtinet.aˤ
         äƤ롣

8.  TOPPERS/JSP Ķˤ륤󥹥ȡȥեκѹ

8. 1  󥹥ȡ

  TOPPERS/JSP ĶǤϡ "TINET ե졼롣ʲ˼
򼨤

   (1)   TOPPERS/JSP 򥤥󥹥ȡ뤹롣 TOPPERS/JSP Υ󥹥ȡ
         ؤƤϡ TOPPERS/JSP ͥ桼ޥ˥奢user.txt
         Ρ7. ȯĶ󥹥ȡ롦ݡƥ פ򻲾Ȥ뤳ȡ 

   (2)   TOPPERS/JSP  TINET ۥեtinet-jsp-1.5.tar.gzˤ
         TOPPERS/JSP 롼ȥǥ쥯ȥŸ롣

   (3)   TINET ե졼 tinet_cfgcygwin Ǥ tinet_cfg.exe
         롣

         [1]   TINET ե졼Υǥ쥯ȥϡ TOPPERS/JSP
               롼ȥǥ쥯ȥβ tinet/cfg Ǥ롣Υǥ쥯
               ȥ˰ư롣

         [2]   make  TINET ե졼롣

8. 2  եκ

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

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

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

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

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

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

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

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

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

   (8)   $(APP_DIR)/route_cfg.cڿ
         Ū롼ƥ󥰤ꤹեǤ롣 ƤˤĤƤϡ4.
         롼ƥ󥰤 פ򻲾Ȥ뤳ȡʤǥեȥ
         ΤߤΥץʥͥåȥǤϡ ץ륢ץꥱ
          echos  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ѹ
         ѹˤĤƤϡ8.3 ץꥱ Makefileפ򻲾Ȥ뤳ȡ

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

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

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

8. 3  ץꥱ Makefile

8. 3. 1  ץꥱ Makefile ν

  Ǥϡ¸ߤ륢ץꥱ Makefile ˡTINET Ȥ߹
िνˡҤ٤롣TINET °륵ץץιۤˤ
Ƥϡ  9.1 ץ륢ץꥱι פ򻲾Ȥ뤳ȡ 
  ɸŪ TOPPERS/JSP Ķˤ륵ץ륢ץꥱ Makefile


   #
   #  ץꥱץ˴ؤ
   #
      ... ά ...
   UTASK_LIBS =

θˡ˼ TINET Ѥɲä롣

   #
   #  ͥåȥӥ
   #
   
   #  ͥåȥ󥿥ե򡢲줫򤹤롣
   
   #NET_IF = loop
   #NET_IF = ppp
   NET_IF = ether
   
   #  ͥåȡǥХɥ饤Ф
   
   NET_DEV = if_ed
   
   #PPP_CFG_MODEM = true   # PPP ǡǥ³ξ
   
   #  ͥåȥؤ򡢲줫򤹤롣
   
   SUPPORT_INET4 = true
   #SUPPORT_INET6 = true
   
   #  ȥ󥹥ݡؤ
   
   SUPPORT_TCP = true
   #SUPPORT_UDP = true
   
   #
   #  ߥɥ륦 Makefile Υ󥯥롼
   #
   include $(SRCDIR)/tinet/Makefile.tinet

8. 3. 2  ץꥱ Makefile ˤ TINET ȹൡǽλ

  ץꥱ Makefile ˤ TINET ȹൡǽꤹˡ
ʲ˼

   (1)   ͥåȥ󥿥ե
           ʲ˼顢 롼ץХåꥢ륤󥿥ե
         Ѥ PPPͥåȤβ줫򤹤롣 롼
         Хåȥꥢ륤󥿥եѤ PPP ϻͼǤ롣

            #NET_IF = loop
            #NET_IF = ppp
            NET_IF = ether

   (2)   ͥåȡǥХɥ饤Ф
           ʲ˼̤ꡢ NET_DEV ˥ͥåȡǥХɥ饤
         롣ߡTINET ۥեˤϡNE2000 ߴ NIC
         ΥͥåȡǥХɥ饤ФΤ󶡤Ƥ롣 

            NET_DEV = if_ed

   (3)   ǥ³
           PPP ǡ ǥ³ξϡʲιԤͭˤ롣
         ꥢ륤󥿥եѤ PPP ϻͼǤ롣

            #PPP_CFG_MODEM = true   # PPP ǡǥ³ξ

   (4)   ͥåȥؤ
           ʲ˼顢IPv4  IPv6 β줫򤹤롣

            SUPPORT_INET4 = true
            #SUPPORT_INET6 = true

   (5)   ȥ󥹥ݡؤ
           ʲ˼顢ɬפʥץȥ򤹤롣 

            SUPPORT_TCP = true
            #SUPPORT_UDP = true

8. 3. 3  ߥɥ륦 Makefile.tinet ѿ

  TINET ϡ ߥɥ륦Ȥ TOPPERS/JSP ͥȹ礻ƥѥ
뤷Ƥ롣TINET ȹॢץꥱѤ Makefile ǤϡTINET 
 Makefile.tinet 򡢰ʲ˼󥯥롼ɤˤꤷƤ롣

   #
   #  ߥɥ륦 Makefile Υ󥯥롼
   #
   include $(SRCDIR)/tinet/Makefile.tinet

ǤϡTINET Ѥ Makefile.tinet Ƥѿʲ˼

   (1)   MTASK_CFG
         ߥɥ륦Υե졼եʥˤɲ
         롣TINET Ǥϡ
         $(TINET_CFG)ͤ tinet_$(UNAME).cfgˤɲäƤ롣

   (2)   MTASK_KERNEL_CFG
         ߥɥ륦Υե졼Ϥ졢 TOPPERS/JSP 
         ƥॳե졼ե˥󥯥롼ɤե
         ɲä롣TINET Ǥϡ
         $(TINET_KERNEL_CFG)ͤϡ tinet_kern.cfg tinet.cfgTINET
         ǻѤ륫ͥ륪֥ȤƤ륳ե
         졼եˤɲäƤ롣 

   (3)   MTASK_DIR
         ߥɥ륦Υǥ쥯ȥɲä롣TINET Ǥ $(TINET_DIR)
         ͤ
         $(TINET_ROOT)/net:$(TINET_ROOT)/netinet:$(TINET_ROOT)/netinet6
         ɲäƤ롣

   (4)   MTASK_LCSRCS
         ߥɥ륦Υ饤֥경륽եɲä롣TINET
         Ǥ $(TINET_LCSRCS)ͤ tcp_usrreq.cudp_usrreq.cˤɲ
         Ƥ롣

   (5)   MTASK_COBJS
         ߥɥ륦 C Υ֥ȥեɲä롣 TINET
         Ǥϡ$(TINET_COBJS)ͤϡ¿ΥեΤᡢ ǤϾ
         άˤɲäƤ롣

   (6)   MTASK_CFLAGS
         ߥɥ륦򥳥ѥ뤹ȤΥץǤ롣 TINET 
          $(TINET_CFLAGS)̤ͤˤɲäƤ롣

   (7)   MTASK_LIBS
         ߥɥ륦Υ饤֥ɲä롣 TINET Ǥϡ $(LIBTINET)
         ͤ libtinet.aˤ -lc ɲäƤ롣

   (8)   MTASK_CLEAN_FILES
         make clean ǡ˾õեɲä롣TINET Ǥϡ
         $(TINET_CFG_OUT)
         ͤ tinet_kern.cfg tinet_id.h tinet_cfg.cˤ
         $(MAKE_TINET_LIB)
         ͤ libtinet.aˤɲäƤ롣

9.  ץ륢ץꥱ

  ץȤơʲΥץꥱ󶡤Ƥ롣ڡϡڥ
ꥱ̾бͥåȥءۤǤ롣 

   (1)   IPv6 TCP ECHO Сechos6IPv6
           ͥåȥץꥱɬפʳƥեˡ
         ͤȤʤ롢 TCP еǽΤߤΥץʥץꥱ
         Ǥ롣
   (2)   IPv4 TCP ECHO Сechos4IPv4
           ͥåȥץꥱɬפʳƥեˡ
         ͤȤʤ롢 TCP еǽΤߤΥץʥץꥱ
         Ǥ롣
   (3)   IPv6 UDP ECHO Сusrv6IPv6
           ͥåȥץꥱɬפʳƥեˡ
         ͤȤʤ롢 UDP еǽΤߤΥץʥץꥱ
         Ǥ롣
   (4)   IPv4 UDP ECHO Сusrv4IPv4
           ͥåȥץꥱɬפʳƥեˡ
         ͤȤʤ롢 UDP еǽΤߤΥץʥץꥱ
         Ǥ롣
   (5)   饤ȥСåȡnservIPv6/IPv4
           ʲ˼Ф󶡤Ƥꡢ ɬפ˱Ȥ߹ॵ
         ФǤ롣

            [1]   WWW 
            [2]   TCP 
            [3]   UDP 
            [4]   TCP ǥɥ
            [5]   ʰץ󥽡

         ޤ饤ȤȤƤϰʲεǽ󶡤Ƥꡢ ɬפ
         Ȥ߹९饤ȤǤ롣 

            [1]   TCP 饤
            [2]   UDP 饤
            [3]   TCP ǥɥ饤
            [4]   UDP ǥɥ饤
            [5]   ping

   (6)   TOPPERS ASP/JSP ץץ sample1 Υͥåȥб
         ץsample1nIPv6/IPv4
           TOPPERS/ASP  TOPPERS/JSP Υץץ sample1 
         ͥåȥбץǤ롣telnet ³ȡꥢ
         ϤѤǼ¹Ԥ롣Ǥȡ Υꥢ
         Ϥ᤹
   (7)   ǾСminsvIPv4
           WWW С TCP СΤߤʤ
         ΥФǤ롣H8/3069F ¢Ƥ RAM16K Хȡ
          ROM512K Хȡˤ˼ޤꡢפǤ롣ߤϡ
         ̿ӥ NKEV-010H8TOPPERS/JSP ꡼ 1.4.2
         ΤߡˤȽŻ̾ H8/3069FTOPPERS/JSP ꡼ 1.4.1
         ʹߤ TOPPERS/ASPˤΥƥбƤ롣

9. 1  ץ륢ץꥱι

  TINET ץ륢ץꥱιۤϡ TOPPERS/ASP Ķ
TOPPERS/JSP ĶˤΥץ륢ץꥱιۤȤۤƱǤ
롣

   (1)   TINET ե졼󥹥ץȤμ¹
           TINET ץ륢ץꥱιѥǥ쥯ȥ
         TINET ե졼󥹥ץȤ¹Ԥ롣

         [1]   TOPPERS/ASP  TINET ե졼󥹥ץȤ
               ¹

                  $ mkdir NETOBJ
                  $ cd NETOBJ
                  $ perl ../tinet/tinet_asp_configure -T akih8_3069f_gcc -A echos6
                                                      -i ether -v if_ed -n inet6 -s tcp

               ץ-T-A-a-U-L-f-D-l-t-d -r
               -p -gˤϡTOPPERS/ASP ե졼󥹥
               ȤƱǤ롣 TOPPERS/ASP ͥ桼ޥ˥奢
               user.txtˤΡ ե졼󥹥ץ
               λȤ פ򻲾Ȥ뤳ȡ¾ΥץˤĤƤϡ
               9.2 TINET ե졼󥹥ץȤΥץ
                פ򻲾Ȥ뤳ȡ 
                 ץꥱȥ̡ͥ˹ۤˡˤĤ
               Ƥϡ TOPPERS/ASP Ķˤ륵ץ륢ץꥱ
               ιۤƱǤ롣 TOPPERS/ASP ͥ桼ޥ˥
               user.txtˤΡ3.5 ץꥱȥͥ
               ˹ۤˡ פ򻲾Ȥ뤳ȡ 
         [2]   TOPPERS/JSP  TINET ե졼󥹥ץȤ
               ¹

                  $ mkdir NETOBJ
                  $ cd NETOBJ
                  $ perl ../tinet/tinet_jsp_configure -C h8 -S akih8_3069f -A echos6
                                                      -i ether -v if_ed -n inet6 -s tcp

               ץ-C -S-T-A-U-L-D-P-p-l-d
               ϡ TOPPERS/JSP ե졼󥹥ץȤƱ
               Ǥ롣 TOPPERS/JSP ͥ桼ޥ˥奢
               user.txtˤΡ 7.6 ե졼󥹥ץȤ
               Ȥ פ򻲾Ȥ뤳ȡ¾ΥץˤĤƤϡ
               TINET ե졼󥹥ץȤΥץ 
               򻲾Ȥ뤳ȡ
                 ץꥱȥ̡ͥ˹ۤˡˤĤ
               Ƥϡ TOPPERS/JSP Ķˤ륵ץ륢ץꥱ
               ιۤƱǤ롣 TOPPERS/JSP ͥ桼ޥ˥
               user.txtˤΡ7.5 ץꥱȥͥ
               ˹ۤˡ פ򻲾Ȥ뤳ȡ 

           嵭ǡTOPPERS/ASP Ķ TOPPERS/JSP ĶΤξ
         ⡢ǥ쥯ȥ NETOBJ ˰ʲΥե뤬롣

            Makefile                Makefile
            echos6.c                ץץ
            echos6.h                ץץΥإåե
            echos6.cfg              ץץ ASP ե
                                    졼ե
            tinet_echos6.cfg        ץץ TINET ե
                                    졼ե
            route_cfg.c             ץץѥ롼ƥɽ
            tinet_app_config.h      ץץѥѥ
                                    ꥳե졼

         ɬפǤС Makefile 롣 ˤĤƤϡ
         TOPPERS/ASP ĶǤϡ7.3 ץꥱ Makefileס
         TOPPERS/JSP ĶǤϡ8.3 ץꥱ Makefileפ򻲾
         뤳ȡ
           ʲΥץ륢ץꥱǤϡ۾դ롣 
         Ϥ򻲾Ȥ뤳ȡ

            [1]   9.3 饤ȥСåȡ
            [2]   9.4 TOPPERS ASP/JSP ץץ sample1 
                  ͥåȥбץ
            [3]   9.5 ǾС

   (2)   tinet_app_config.h 
           IPv4 ξ硢 IP ɥ쥹֥ͥåȥޥǥեȥ
         ȥꤹ롣

         [1]   IPV4_ADDR_LOCAL
               ʬ IP ɥ쥹ꤹ롣 PPP Ѥ
               ˳ƤƤ餦 0 ꤹ뤳ȡʤ
               PPP ϻͼǤ롣
         [2]   IPV4_ADDR_REMOTE
                IP ɥ쥹ꤹ롣 PPP Ѥ
               ˳ƤƤ餦 0 ꤹ뤳ȡʤ
               PPP ϻͼǤ롣
         [3]   IPV4_ADDR_LOCAL_MASK
               ֥ͥåȥޥꤹ롣 ͥåȥ
               եͥåȤΤȤͭǤ롣 
         [4]   IPV4_ADDR_DEFAULT_GW
               ǥեȥȥꤹ롣 ͥåȥ
               󥿥եͥåȤΤȤͭǤ롣 

   (3)   route_cfg.c 
           ͥåȥ󥿥եͥåȤξϡ 롼ƥ
         ɽ routing_tbl ꤹ롣ǥեȥȥ
         ΤߤΥץʥͥåȥǤϡ ѹɬפϤʤ 

   (4)   ץץΥѥ롦
           TINET ץ륢ץꥱιѥǥ쥯ȥǡ 
         ץץ򥳥ѥ롦󥯤롣 ѥ롦󥯤
         ˡʲ˼

            $ make depend
            $ make

9. 2  TINET ե졼󥹥ץȤΥץ

  TOPPERS/ASP Ķ TOPPERS/JSP ĶΤ⡢ 줾δĶΥե
졼󥹥ץȤƱץʳ TINET ե졼
󥹥ץȤΥץƱǤ롣TINET ե졼
ץȤΥץʲ˼ 

   -e <tinetdir>           TINET Υ֤Ƥǥ쥯ȥ
   -i <net_if>             ͥåȥ󥿥եɬܡ
                           <net_if> ˤ etherppploop β줫
                           ꤹ롣
   -v <net_dev>            ͥåȡǥХɥ饤
                           ʥͥåȥ󥿥ե ether 
                           ɬܡ

   -n <net_proto>          ͥåȥإץȥɬܡ
                           <net_proto> ˤ inet4 inet6 β줫
                           ꤹ롣
   -s <trans_proto>        ȥ󥹥ݡإץȥɬܡ
                           <trans_proto> ˤ tcpudptcp/udp β
                           ꤹ롣

9. 3  饤ȥСåȡnservIPv6/IPv4ۤι

  ʲ˼Ф󶡤Ƥꡢɬפ˱Ȥ߹ॵФ
롣 ʡϡtinet/netapp ˤ륽ե̾Ǥ롣ʤǥ
եȤǡ ITRON TCP/IP API ͤ TCP  UDP γĥǽȹޤ
Τǡ 9.3.2 ʰץ󥽡Υޥ פ wtwwtewuewtd 
ޥɤǡ 줾ΥСưɬפ롣 

   [1]   WWW Сwwws.c
         롼ȥڡ¾ˡͥåȥ׾ɽ 2 ڡ
         鹽졢Ϻ 2 Ǥ롣
   [2]   TCP С
         tcp_echo_srv1.c  tcp_echo_srv2.c Τɤ餫򤹤롣
         tcp_echo_srv1.c 򤷤硢ʥԡ API ѤơΥ
         ֥å󥰥Ѥʤϡ 8 ޤǻǽ
         Ǥ롣
   [3]   UDP Сudp_echo_srv.c
   [4]   TCP ǥɥСtcp_discard_srv.c
   [5]   ʰץ󥽡롦dbg_cons.c
         ꥢ륤󥿥եǤʤtelnet ץȥѤơ
         ͥåȥͳѤ뤳ȤǽǤ롣telnet ³
         ȡ ꥢϤѤǼ¹Ԥ롣ǤȡΥ
         ꥢϤ᤹ TCP ΥΥ֥å󥰥
         ȹɬפ롣

ޤ饤ȤȤƤϰʲεǽ󶡤Ƥꡢɬפ˱Ȥ
९饤ȤǤ롣

   [1]   TCP 饤ȡtcp_echo_cli.c
   [2]   UDP 饤ȡudp_echo_cli.c
   [3]   TCP ǥɥ饤ȡtcp_discard_cli.c
   [4]   UDP ǥɥ饤ȡudp_discard_cli.c
   [5]   pingping.c

9. 3. 1  Makefile 

   (1)   ȹൡǽ

         [1]   TCP μɥХåեξʥԡǽ
                 ץ륢ץꥱǡ TCP μɥХåե
               ξʥԡǽȹϡ

                  TCP_CFG_RWBUF_CSAVE_ONLY = true

               ޤϡ

                  TCP_CFG_RWBUF_CSAVE = true

               򤹤롣TCP_CFG_RWBUF_CSAVE_ONLY 򤹤ȡ TCP
               ̿üŪ API Ǥ TCP_CRE_CEP ǡ 
               ɥХåե rbuf ˡ ꥢɥ쥹ꤷƤ⡢
               ץȥ륹åϡ λ̵뤷ơTCP μ
               ɥХåեξʥԡǽˤ롣 ޤ
               TCP_CFG_RWBUF_CSAVE 򤹤ȡ TCP_CRE_CEP ǡ
               ɥХåե rbuf ˡ NADRNULLˤꤷȤ
               ߡץȥ륹å TCP μɥХåեξ
               ԡǽˤ롣

         [2]   TCP ɥХåեξʥԡǽ
                 ץ륢ץꥱǡ TCP ɥХåե
               ξʥԡǽȹϡ

                  TCP_CFG_SWBUF_CSAVE_ONLY = true

               ޤϡ

                  TCP_CFG_SWBUF_CSAVE = true

               򤹤롣TCP_CFG_SWBUF_CSAVE_ONLY 򤹤ȡ TCP
               ̿üŪ API Ǥ TCP_CRE_CEP ǡ 
               ɥХåե rbuf ˡ ꥢɥ쥹ꤷƤ⡢
               ץȥ륹åϡ λ̵뤷ơTCP 
               ɥХåեξʥԡǽˤ롣 ޤ
               TCP_CFG_SWBUF_CSAVE 򤹤ȡ TCP_CRE_CEP ǡ
               ɥХåե rbuf ˡ NADRNULLˤꤷȤ
               ߡץȥ륹å TCP ɥХåեξ
               ԡǽˤ롣

         [3]   TCP ΥΥ֥å󥰥
                 ץ륢ץꥱǡ TCP ΥΥ֥å󥰥
               ȹϡ

                  TCP_CFG_NON_BLOCKING = true

               򤹤롣

         [4]   UDP ΥΥ֥å󥰥
                 ץ륢ץꥱǡ UDP ΥΥ֥å󥰥
               ȹϡ

                  UDP_CFG_NON_BLOCKING = true

               򤹤롣

         [5]   ITRON TCP/IP API ͤ TCP γĥǽ
                 ץ륢ץꥱǡ ITRON TCP/IP API ͤ
               TCP γĥǽȹϡ

                  TCP_CFG_EXTENTIONS = true

               򤹤롣ǥեȤ true ꤵƤ롣

         [6]   ITRON TCP/IP API ͤ UDP γĥǽ
                 ץ륢ץꥱǡ ITRON TCP/IP API ͤ
               UDP γĥǽȹϡ

                  UDP_CFG_EXTENTIONS = true

               򤹤롣ǥեȤ true ꤵƤ롣

   (2)   Υ֥å󥰥롢ITRON TCP/IP API ͤγĥǽȾʥ
         ԡ API 

         [1]   TCP ΥΥ֥å󥰥
                 ץ륢ץꥱǡ TCP ΥΥ֥å󥰥
               Ѥϡ

                  USE_TCP_NON_BLOCKING = true

               򤹤롣

         [2]   ITRON TCP/IP API ͤ TCP γĥǽ
                 ץ륢ץꥱǡ ITRON TCP/IP API ͤ
               TCP γĥǽѤϡ

                  USE_TCP_EXTENTIONS = true

               򤹤롣ǥեȤ true ꤵƤ롣

         [3]   ʥԡ API
                 ץ륢ץꥱǡʥԡ API Ѥϡ

                  USE_COPYSAVE_API = true

               򤹤롣

         [4]   UDP ΥΥ֥å󥰥
                 ץ륢ץꥱǡ UDP ΥΥ֥å󥰥
               Ѥϡ

                  USE_UDP_NON_BLOCKING = true

               򤹤롣 ХåȤƱ˻ѤǤʤ 

         [5]   ITRON TCP/IP API ͤ UDP γĥǽ
                 ץ륢ץꥱǡ ITRON TCP/IP API ͤ
               UDP γĥǽѤϡ

                  USE_UDP_EXTENTIONS = true

               򤹤롣ǥեȤ true ꤵƤ롣

         [6]   UDP ΥХå
                 ץ륢ץꥱǡ UDP ΥХå
               ϡ

                  USE_UDP_CALL_BACK = true

               򤹤롣 Υ֥å󥰥ȤƱ˻
               ѤǤʤ

   (3)   ̥Хץ

         [1]   WWW ХץѤϡ ʲιԤͭˤ롣

                  USE_WWW_SRV = ture

         [2]   UDP ХץѤϡ ʲιԤ
               ͭˤ롣

                  USE_UDP_ECHO_SRV = ture

         [3]   TCP ǥɥХץѤϡ ʲ
               ιԤͭˤ롣

                  USE_TCP_DISCARD_SRV = ture

         [4]   Ʊ췿 TCP ХץѤ
               ϡʲιԤͭˤ롣

                  TCP_ECHO_SRV = tcp_echo_srv1

         [5]   ʬΥ TCP ХץѤ
               ϡʲιԤͭˤ롣

                  TCP_ECHO_SRV = tcp_echo_srv2

         [6]   ꥢͳΤߥ󥽡ϤѤϡ ʲ
               ιԤͭˤ롣

                  USE_DBG_CONS = true

         [7]   ꥢȥͥåȥͳΥ󥽡ϤѤ
               ϡʲιԤͭˤ롣

                  USE_NET_CONS = true

                Υ֥å󥰥ȹΤͭǤ롣

   (4)   ̥饤ȥץ

         [1]   TCP 饤ȥץѤϡ ʲ
               ιԤͭˤ롣

                  USE_TCP_ECHO_CLI = ture

         [2]   UDP 饤ȥץѤϡ ʲ
               ιԤͭˤ롣

                  USE_UDP_ECHO_CLI = ture

         [3]   TCP ǥɥ饤ȥץѤϡ
               ʲιԤͭˤ롣

                  USE_TCP_DISCARD_CLI = ture

         [4]   UDP ǥɥ饤ȥץѤϡ
               ʲιԤͭˤ롣

                  USE_UDP_DISCARD_CLI = ture

         [5]   PING 饤ȥץѤϡʲιԤ
               ͭˤ롣

                  USE_PING = true

   (5)   ̥Х

         [1]   WWW ХϰʲιԤ򤹤롣 2 
               Ǥ롣

                  CDEFS := $(CDEFS) -DNUM_WWW_SRV_TASKS=2

         [2]   TCP ECHO Х򤹤롣ʲξΤ
               ͭǤ롣

               tcp_echo_srv1.c 򤷤
               ʥԡ API Ѥ롣
               Υ֥å󥰥Ѥʤ

               TCP ECHO ХϰʲιԤ򤹤롣
               8 Ǥ롣

                  CDEFS := $(CDEFS) -DNUM_TCP_ECHO_SRV_TASKS=8

   (6)   ͽ ID 

         [1]   TCP/IPv4 ոͽ ID ϰʲιԤ򤹤롣
                2 Ǥ롣

                  CDEFS := $(CDEFS) -DNUM_VRID_TCP_REPS=2

         [2]   TCP/IPv4 ̿üͽ ID ϰʲιԤ򤹤롣
                4 Ǥ롣

                  CDEFS := $(CDEFS) -DNUM_VRID_TCP_CEPS=4

         [3]   UDP/IPv4 ̿üͽ ID ϰʲιԤ򤹤롣
                2 Ǥ롣

                  CDEFS := $(CDEFS) -DNUM_VRID_UDP_CEPS=2

         [4]   TCP/IPv6 ոͽ ID ϰʲιԤ򤹤롣
                2 Ǥ롣

                  CDEFS := $(CDEFS) -DNUM_VRID_TCP6_REPS=2

         [5]   TCP/IPv6 ̿üͽ ID ϰʲιԤ򤹤롣
                4 Ǥ롣

                  CDEFS := $(CDEFS) -DNUM_VRID_TCP6_CEPS=4

         [6]   UDP/IPv6 ̿üͽ ID ϰʲιԤ򤹤롣
                2 Ǥ롣

                  CDEFS := $(CDEFS) -DNUM_VRID_UDP6_CEPS=2

   (7)   ¾

         [1]   TCP Υȥ MSS ˤϡʲιԤͭ
               ˤ롣

                  CDEFS := $(CDEFS) -DUSE_TCP_MSS_SEG

         [2]   IPv6 MMTU ΥͥåȥХåեȹϡ
               ʲιԤͭˤ롣

                  CDEFS := $(CDEFS) -DUSE_IPV6_MMTU

9. 3. 2  ʰץ󥽡Υޥ

  󥿡ͥåȥСåȤȤ߹ޤƤʰץ󥽡Υޥ
ɤʲ˼

   cf                  tinet_app_config.h ǻꤵ줿ѥ
                       ե졼ɽ롣 

   ct <cepid> [<fncd>] 
                       ڥǥ󥰤Ƥ TCP ̿ü <cepid> ν
                       򥭥󥻥뤹롣󥻥뤹 <fncd>
                       ǻꤹ롣<fncd> άϡƤν
                       򥭥󥻥뤹롣

   cu <cepid> [<fncd>] 
                       ڥǥ󥰤Ƥ UDP ̿ü <cepid> ν
                       򥭥󥻥뤹롣󥻥뤹 <fncd>
                       ǻꤹ롣<fncd> άϡƤν
                       򥭥󥻥뤹롣

   dc                  ͥåȥ󥿥ե PPP λޤϡ
                       ꥢȥͥåȥͳΥ󥽡Ϥ
                       ѤͭǤꡢ³Ǥ롣 ʤ
                       PPP ϻͼǤ롣

   dt <host> [<portno> [<repeat>]]
                       TCP ǥɥ饤ȡư
                       ǥɥ <host> ˥ǥɥѥ
                       롣<portno> ϡǥɥФ
                       ݡֹǡά- ꤹˤ 9 Ǥ롣
                       <repeat> ϡ֤ǡά 1 Ǥ롣

   dts                 TCP ǥɥ饤ȡη֤
                       ưߤ롣

   du <host> [<portno> [<repeat>]]
                       UDP ǥɥ饤ȡư
                       ǥɥ <host> ˥ǥɥѥ
                       롣<portno> ϡǥɥФ
                       ݡֹǡά- ꤹˤ 9 Ǥ롣
                       <repeat> ϡ֤ǡά 1 Ǥ롣

   dus                 UDP ǥɥ饤ȡη֤
                       ưߤ롣

   et <host> [<portno> [<repeat>]]
                       TCP 饤ȡư 
                        <host> ˥ѥ롣
                       <portno> ϡФΥݡֹǡά
                       - ꤹˤ 7 Ǥ롣<repeat> ϡ 
                       ֤ǡά 1 Ǥ롣

   ets                 TCP 饤ȡη֤ư
                       ߤ롣

   eu <host> [<portno>] [<msg> | <repeat>]
                       UDP 饤ȡư 
                        <host> ˥å롣 <portno>
                       ϡ ФΥݡֹǡά- 
                       ꤹˤ 7 Ǥ롣<repeat>ʿˤꤷ
                       ϡ 귿Υå <repeat> 󷫤֤
                       롣<msg>ʿʳˤꤷϡ
                        <msg> 롣

   eus                 UDP 饤ȡη֤ư
                       ߤ롣

   i                   ͥåȥ󥿥ե PPP λͭǤ
                       롣ľ³ξϡľ LCP ươ
                       Ф³롣 ǥ³ξϡѥ
                       ե졼 MODEM_CFG_PHONE_NUMBER
                       ѥ᡼ǻꤵƤ륵ФȯƤ롣 
                       PPP ϻͼǤ롣

   if [<addr> <mask>]  ͥåȥ󥿥ե PPP λϡ IP 
                       ɥ쥹֥ͥåȥޥ ֥ɥ㥹ȥ
                       쥹Ϥ롣 ͥåȥ󥿥ե
                       ͥåȤǡ ͥåȥؤ IPv4 λϡ
                       [<addr> <mask>] Ǥ롣 [<addr> <mask>]
                       ꤷʤСMAC ɥ쥹IP ɥ쥹
                       ֥ͥåȥޥ ֥ɥ㥹ȥɥ쥹ν
                       Τ߹Ԥ[<addr> <mask>] ꤷϡIP 
                       ɥ쥹ȥ֥ͥåȥޥѹ塢 MAC 
                       쥹IP ɥ쥹֥ͥåȥޥ֥ɥ
                       ȥɥ쥹Ϥ롣<addr> ϡ IP ɥ쥹
                       <mask> ϡ֥ͥåȥޥǤ롣ʤPPP 
                       ͼǤ롣

   na                  ͥåȥ󥿥եͥåȤλ
                       ͭǤ롣IPv4 Ǥ ARP å塢IPv6 Ǥ
                       ٥ɥ쥹åξ֤Ϥ롣 

   nb                  ͥåȥХåե׾Ϥ롣

   nc                  ͥåȥ׾ɽ롣

   nr [<index> <target> <mask> <gateway>]
                       ͥåȥ󥿥եͥåȤΤȤ
                       ͭǤ롣 ͥåȥؤ IPv4 λϡ
                       [<index> <target> <mask> <gateway>] Ǥ
                       롣 [<index> <target> <mask> <gateway>] 
                       [<index> <target> <mask> <gateway>] ꤷ
                       ʤС 롼ƥɽνϤΤ߹Ԥ
                       ϡ 롼ƥɽѹ塢롼ƥ
                       ɽϤ롣<index> ϡ ϩȥΥǥ
                       <target> ϡɸͥåȥ IP ɥ
                       <mask> ϡɸͥåȥΥ֥ͥåȥޥ
                        <gateway> ϡȥ IP ɥ쥹Ǥ롣

   nrl                 ͥåȥ󥿥եͥåȤǡ ͥ
                       ȥؤ IPv6 λͭǤ롣 ǥե
                       ȥ롼ꥹȤϤ롣

   nrp                 ͥåȥ󥿥եͥåȤǡ ͥ
                       ȥؤ IPv6 λͭǤ롣 ץե
                       ꥹȤϤ롣

   nt                  TCP ̿ü TCP ոξ֤ɽ롣

   nu                  UDP ̿üξ֤ɽ롣

   p <host> [ <tmo> [<size>] ]
                       ۥ <host>  ICMP ѥåȤ롣<tmo>
                       ϥॢ͡ñ̤áˤǡ ά- 
                       ꤹˤ 3 äǤ롣 <size> ϥǡǡ
                       ꤷʤ 64 ƥåȤǤ롣

   ps                  ξ֤ɽ롣

   r <tskid>            <tskid> Ԥ֤Ū˲롣

   tt <repid>          ITRON TCP/IP API  TCP γĥǽȹɬ
                       롣TCP ո <repid> б륵
                       Фߤ롣

   tu <cepid>          ITRON TCP/IP API  UDP γĥǽȹɬ
                       롣UDP ̿ü <cepid> б
                       Фߤ롣

   w <tskid>            <tskid> 򵯾롣

   wtd                 ITRON TCP/IP API  TCP γĥǽȹɬ
                       롣TCP ǥɥС TCP 
                       ո TCP ̿üơTCP ǥɥ
                       Сư롣

   wte                 ITRON TCP/IP API  TCP γĥǽȹɬ
                       롣TCP С TCP ո
                       TCP ̿üơ TCP С
                       ư롣

   wtw                 ITRON TCP/IP API  TCP γĥǽȹɬ
                       롣 WWW С TCP ո TCP
                       ̿üơWWW Сư롣

   wue                 ITRON UDP/IP API  UDP γĥǽȹɬ
                       롣UDP С UDP ̿ü
                       ơUDP Сư롣

9. 4  sample1 Υͥåȥбץsample1nIPv6/IPv4ۤι

  TOPPERS/ASP  TOPPERS/JSP Υץץ sample1 Υͥåȥ
бץǤ롣telnet ³ȡ ꥢϤ
Ǽ¹Ԥ롣 Ǥȡ ΥꥢϤ᤹
  ʲ˹ˡҤ٤롣

   (1)   ASP/JSP ե졼󥹥ץȤμ¹
           줾δĶˤ륳ե졼󥹥ץȤ
         Ԥ롣ʲϡ TOPPERS/ASP Ķˤ륳ե졼
         󥹥ץȤμ¹Ǥ롣

            $ mkdir NETOBJ
            $ cd NETOBJ
            $ perl ../configure -T akih8_3069f_gcc

   (2)   TINET ե졼󥹥ץȤμ¹
           줾δĶˤ TINET ե졼󥹥
         Ȥ¹Ԥ롣 λ ץꥱץ̾Ȥ
         sample1n ꤹ롣 ʲϡ TOPPERS/ASP Ķˤ TINET
         ե졼󥹥ץȤμ¹Ǥ롣 

            $ perl ../tinet/tinet_asp_configure -T akih8_3069f_gcc -A sample1n
                                                -i ether -v if_ed -n inet6 -s tcp

   (3)   Makefile ν
           ץꥱΡsample1n.cˤ TOPPERS/ASP 
         TOPPERS/JSP  sample1.c ˥ѥ롦󥯤뤿ᡢ
         Makefile 롣

         [1]   TOPPERS/ASP Ķ
                 Makefile  APPL_COBJS  sample1.o ɲä롣

                  APPL_COBJS = $(APPLNAME).o sample1.o

         [2]   TOPPERS/JSP Ķ
                 Makefile  UTASK_COBJS  sample1.o ɲä롣

                  UTASK_COBJS = $(UNAME).o sample1.o

   (4)   sample1.c ν
           TOPPERS/ASP  TOPPERS/JSP  sample1.c Υ󥯥롼ɥե
         λ

            #include "sample1.h"

         ˡʲΥ󥯥롼ɥեɲä롣 

            #include "sample1n.h"

   (5)   tinet_app_config.h 
           IPv4 ξ硢 IP ɥ쥹֥ͥåȥޥǥեȥ
         ȥꤹ롣

9. 5  ǾСminsvIPv4ۤι

  WWW С TCP СΤߤʤǾ
ФǤ롣H8/3069F ¢Ƥ RAM16K Хȡˤ ROM512K 
ȡˤ˼ޤꡢפǤ롣ߤϡ̿ӥ
NKEV-010H8TOPPERS/JSP ꡼ 1.4.2 ΤߡˤȽŻ̾ H8/3069F
TOPPERS/JSP ꡼ 1.4.1 ʹߤ TOPPERS/ASPˤΥƥб
롣
  ƥƥ¸ Makefile.config Ρּ¹ԴĶפǡ

   # ROM RAM̤
   #DBGENV := INMEM_ONLY

ͭˤơѥ롦󥯤롣 

10.  ռ

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

   (1)   ˡƻȵѿ

         [1]   ̾ʼ»ǯ١
               ٵѳȯȡʿ 12 ǯ١
         [2]   ơ̾
               ȹ߷楷ƥ TCP/IP ץȥ륹åγȯ

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

         [1]   ̾ʼ»ǯ١
               ϰ迷󥽡ฦ泫ȯȡʿ 1415 ǯ١
         [2]   ơ̾
               ȹߥƥࡦץץåȥۡιۤȤμѲȯ

   (4)   ܾ븩ȵ祻󥿡
   (5)   TOPPERS ץ
   (6)   ҥå
   (7)   ˡŵŻҾؽѿ

         [1]    6  LSI IP ǥ󡦥 IP 
             2004 ǯ ʿ 16 ǯ 5  20 
               ץ󥽡ȹߥƥ TCP/IP
               ץȥ륹å : TINET
         [2]    7  LSI IP ǥ󡦥 IP 
             2005 ǯ ʿ 17 ǯ 5  19 
               ȹߥƥ IP С 6 б TCP/IP
               ץȥ륹å : TINET-1.2

   (8)   Ż
   (9)   ͭ²̿ӥ
   (10)  ̳ƻΩȻ

         [1]   ̾ʼ»ǯ١
               ΰ̸ʿ 1718 ǯ١
         [2]   ơ̾
               ȹߥƥͥåȥ³եȥγȯ

11.  饤

  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)TINET  TOPPERS

   /*
    *  TINET (TCP/IP Protocol Stack)
    * 
    *  Copyright (C) 2001-2006 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) ۤȼɥȡѼԥޥ˥奢ʤɡˤˡ嵭
    *        ɽѾ浪Ӳ̵ݾڵǺܤ뤳ȡ
    *  (4) ܥեȥѤˤľŪޤϴŪ뤤ʤ»
    *      ⡤嵭ԤTOPPERSץȤդ뤳ȡ
    *
    *  ܥեȥϡ̵ݾڤ󶡤ƤΤǤ롥嵭Ԥ
    *  TOPPERSץȤϡܥեȥ˴ؤơŬѲǽ
    *  ޤơʤݾڤԤʤޤܥեȥѤˤľ
    *  ŪޤϴŪʤ»˴ؤƤ⡤Ǥʤ
    * 
    *  @(#) $Id: tinet.d,v 1.5 2009/12/24 05:41:48 abe Exp abe $
    */
