                      TINET ѹ  [2004/9/7]

1.  ꡼ 1.0  1.1 ޤǤѹ

   (1)   TINET ե졼ǡ󥯤פˤ

   (2)   եΥ󥯥롼ɤľ cpu_config.h 
         tinet_config.hcpu_defs.h  tinet_defs.h 

   (3)   ץꥱ Makefile λƤѹ

         [1]   TCP ȹߡSUPPORT_TCP λꡣ
         [2]   UDP ȹߡSUPPORT_UDP λꡣ

   (4)   ץ nserv.c  WWW еǽ tinet/netapp/wwws.c 
         ܤ

   (5)   JSP ƥॳե졼ե $(UNAME).cfg Ǥϡ
         tinet/tinet.cfg ꤹǡ ץȥ륹åΥ
         ͥ륪֥Ȥ褦ѹ 

   (6)   TINET ץȥ륹åǻѤ륫ͥ륪֥Ȥ
         ե tinet/tinet.cfg ǤΡINCLUDEŪ API 򡢳ƥ
         塼 JSP ƥॳե졼ե˰ư

   (7)   tinet/include ѻߤ 󥯥롼ɥեʲΤ褦˰
         ư

         [1]   tinet/include/net  tinet/net
         [2]   tinet/include/netdev  tinet/netdev
         [3]   tinet/include/netinet  tinet/netinet
         [4]   tinet/include/netapp  tinet/netapp
         [5]   tinet/include/tinet_config.h  tinet/tinet_config.h
         [6]   tinet/include/tinet_defs.h  tinet/tinet_defs.h

   (8)   ͥåȥ󥿥եΥǥХ¸Ω뤿
         ѹԤä

         [1]   tinet/netdev ˡͥåȥ󥿥ե¸
               ǥ쥯ȥߤ NE2000 ߴ NIC Ǥ if_ed
               Ǥꡢʲ NIC ˤĤƽҤ٤롣
         [2]   Ѥ JSP ƥॳե졼ե
               nic.cfg ߤ ߤϡif_ed.cfg 򥤥󥯥롼ɤ
               褦ˤʤäƤ롣
         [3]   ѤΥͥåȥ󥿥եե졼
               ե tinet_nic_config.h ߤߤϡ 
               Υͥåȥ󥿥ե̾ե
               nic_rename.h  if_ed.h 򥤥󥯥롼ɤ褦ˤʤäƤ롣
         [4]   ѤΥͥåȥ󥿥ե̾ե
               nic_rename.h ߤ
         [5]   if_ed.c  if_ed.cfg ʳΥե뤫 if_ed.h 
               if_edreg.h 
         [6]   tinet/tinet_config.h ѹ
               #include <tinet_nic_config.h> ɲä 󥯥롼ɤ
               ֤ľ

                  #include "tinet_app_config.h"
                  #include "tinet_sys_config.h"
                  #include "tinet_cpu_config.h"
                  
                  #ifdef SUPPORT_ETHER
                  #include "tinet_nic_config.h"
                  #endif  /* of #ifdef SUPPORT_ETHER */
                  #include "tinet_sys_config.h"
                  #include "tinet_cpu_config.h"
                  #include "tinet_app_config.h"

         [7]   tinet/net/ethernet.h ѹ

               tinet/netdev/if_ed/if_ed.h  t_ed_softc 顢ǥ
                 ¸ t_if_softc ȤΩ

                    struct t_if_softc {
                       T_IF_ADDR         ifaddr;
                       UH             timer;
                       T_IF_ETHER_SOFTC  *sc;
                       ID             semid_txb_ready;
                       ID             semid_rxb_ready;
                       };
                    typedef struct t_if_softc T_IF_SOFTC;

                timer ϡǥХ¸˰ư
               ֥󥿥եޥפ T_IF_SOFTC 

         [8]   tinet/net/ethernet.c tinet/net/if.c
               tinet/netinet/tcp_subr.c ѹ
               #include <netdev/if_ed.h> T_IF_ETHER_SOFTC 
               顢T_IF_SOFTC ѹ

                  T_IF_ETHER_SOFTC *sc;
                  
                  T_IF_SOFTC *ic;

         [9]   tinet/netdev/if_ed/if_ed.h ѹ

               t_ed_softc  tinet/netdev/if_ed/if_ed.c ˰ư
               NIC ޥפ T_IF_ETHER_SOFTC  T_ED_SOFTC
                  struct t_ed_softc ѹ
               ͥåȥ󥿥եδؿΰ T_ED_SOFTC
                  T_IF_SOFTC ѹ
               ؿ ed_watchdog ΰˡT_IF_SOFTC* ꤹ褦
                 ѹ

         [10]  tinet/netdev/if_ed/if_ed.c ѹ

               #include <netdev/if_ed.h> 
               if_edreg.h Υ󥯥롼ɻѹ

                    #include <netdev/if_edreg.h>
                    
                    #include "if_edreg.h"

               t_ed_softc  tinet/netdev/if_ed/if_ed.h 
                 ư
               t_ed_softc ϡǥХ¸Τ褦ѹ
               ʲζɽؿΰ T_ED_SOFTC  T_IF_SOFTC 
                 ѹ

                    ed_xmit
                    ed_init_sub

               ؿΰ T_ED_SOFTC  T_IF_SOFTC ä

                    T_ED_SOFTC *sc = ic->sc;

                 ǡT_ED_SOFTC ФȤ롣

         [11]  tinet/netdev/if_ed/if_ed.cfg ѹ

                  INCLUDE("<netdev/if_ed.h>");
                  INCLUDE("<netdev/if_edreg.h>");
                  
                  INCLUDE("\"if_edreg.h\"");

         [12]  tinet/net_rename.h ѹ
               if_ed δؿΥ͡
               tinet/netdev/if_ed/nic_rename.h ˰ư
         [13]  tinet/tinet.cfg ѹ

                  #ifdef IF_ETHER_CFG_ED
                  #include "netdev/if_ed.cfg"
                  #endif   /* of #ifdef IF_ETHER_CFG_ED */
                  
                  #include "nic.cfg"

         [14]  tinet_cpu_config.h  tinet_sys_config.h ѹ
               NIC (NE2000 ߴ ) ˴ؤפ
               tinet_sys_config.h ˰ư
         [15]  $(CPU)/$(SYS)/Makefile.config ѹ

               ֥ѥ륪ץפѹ
                 ͥåȥ󥿥եΥǥ쥯ȥޤ뤿ᡢ
                 INCLUDES θɲä

                    ifdef TINET_ROOT
                    INCLUDES := $(INCLUDES) -I$(TINET_ROOT)/netdev/if_ed
                    endif

               ֥ͥ˴ؤפѹ
                 ͥåȥ󥿥եΥǥ쥯ȥȥͥåȥ
                 󥿥եΥ֥Ȥޤ뤿ᡢ
                 KERNEL_COBJS θɲä

                    ifdef TINET_ROOT
                    KERNEL_DIR  := $(KERNEL_DIR):$(TINET_ROOT)/netdev/if_ed
                    KERNEL_COBJS   := $(KERNEL_COBJS) if_ed.o
                    endif

         [16]  ƥ IF_ETHER_CFG_ED 
         [17]  if_ed.h  if_edreg.h ǡSUPPORT_ETHER 
         [18]  ƥ PROTO_FLG_ETHER_ED  PROTO_FLG_ETHER_NIC 
               ѹ
         [19]  ƥ net_count_ether_ed ڤ net_count_ether_ed*
                net_count_ether_nic ڤ net_count_ether_nic* ѹ
         [20]  ƥ NET_COUNT_ETHER_ED ڤ NET_COUNT_ETHER_ED*
                NET_COUNT_ETHER_NIC ڤ NET_COUNT_ETHER_NIC* ѹ
         [21]  ƥ IF_ETHER_CFG_ACCEPT_ALL 
               ETHER_CFG_ACCEPT_ALL ѹ
         [22]  ƥ IF_ETHER_*  IF_ETHER_NIC_* ѹ

   (9)   tinet/cfg/tinet_parser.cpp ѹ

         [1]   tinet_cfg.c ˽ϤɸΥ󥯥롼ɥե
               tinet_config.h ɲä
         [2]   tinet_cfg.c ˽ϤɸΥ󥯥롼ɥեǡ
               tinet_defs.htinet_config.h ν֤˥󥯥롼ɤ
               ѹ
         [3]   tinet_cfg.c ˽ϤɸΥ󥯥롼ɥեǡ
               #include <netinet/in_rename.h> 

   (10)  tinet/tinet_defs.h  tinet_nic_defs.h ɲä

   (11)  tinet/netdev/if_ed  tinet_nic_defs.h ɲä

   (12)  ƥեˡtinet_defs.htinet_config.h ɲä

   (13)  ƥեǡtinet_defs.htinet_config.h ν֤˥
         롼ɤ褦ѹ

   (14)  tinet_nic_defs.h  IF_ETHER_NIC_HDR_ALIGN ɲäϡ
         tinet/net/ethernet.h Υͥåȥإåǡǽ˥
         ĴˡĴ̤ꤹ롣 

   (15)  TINET ץȥ륹åΥ͡ե
         tinet/net/net_rename.h  tinet/netinet/in_rename.h Υ
         롼ɤtinet/tinet_config.h ǻꤹ褦ѹƥ
         ե뤫 #include <net/net_rename.h>  #include
         <netinet/in_rename.h> 

   (16)  TINET ɸ Makefile.config  ץꥱ
         Makefile 饤󥯥롼ɤ褦ѹ

   (17)  tinet/netdev/if_ed/if_ed.c δؿ ed_pio_readmem 
         ed_pio_writemem ǡ ǥѥåػ߾֤ˤʤʤ褦ѹ

   (18)  ƥ (SYSTIM) μȿSYSTIM_HZ 

   (19)  cygwin  g++ ΥСˤäơ TINET ե졼
         ˥顼ȯ 

   (20)  Makefile.config ˤѹ

         [1]   tinet/netdev/if_ed/if_ed.c  Makefile.config 
               TINET ɸ Makefile.config 饤󥯥롼ɤ褦
               ѹ
         [2]   JSP Υƥ¸ $(CPU)/$(SYS)/Makefile.config 
               顢 TINET ΥͥåȥǥХΰ¸
               
         [3]   ץꥱ Makefile ˤϡ

                  #  ͥåȡǥХɥ饤Ф
                  NET_DEV = if_ed

               ꤹɬפ롣

   (21)  tinet/netapp/netapp.h ˡ 󥽡Ѥ륷ꥢݡ
         ɲä

            /*
             *  󥽡Ѥ륷ꥢݡֹ
             */
            #ifndef CONSOLE_PORTID
            #define  CONSOLE_PORTID                                               LOGTASK_PORTID
            #endif   /* of #ifndef CONSOLE_PORTID */

   (22)  tcp_cls_cep() ǡ ͤǤϡFIN äƥͥǤ
         뤳ȤˤʤäƤ뤬 Ƥʤ 

   (23)  tinet_cpu_config.h Ƥȥκ
         (MAX_TCP_RCV_SEG) ȥκ
         (MAX_TCP_SND_SEG) ȥε
         (DEF_TCP_SND_SEG) ȥε
         (DEF_TCP_RCV_SEG) ͤ˴ؤơ ͥåȤѤ硢
         Ƥͤ 1,460 ѹ

   (24)  ץ륢ץꥱȤơ TCP ǥɥ饤
         ɲä

   (25)  TCP  MSS (TCP_MSS) ˴ؤơ

            #define TCP_MSS (IP4_MSS - (IP4_HDR_SIZE + TCP_HDR_SIZE))

         顢BSD ɸ

            #define TCP_MSS 512

         ѹ

   (26)  tcp_con_cep ǡ ॢȤ˥Υ֥å󥰰ʳꤷ
         硢 ॢ˥顼ˤʤǽ 

   (27)  ͥåȥޤǡ ʣΥȥ꤬Ʊ˥ॢȤ
         ⡢ ϿƤƤδؿƤӽФʤ 

   (28)  ֥ɥ㥹Ƥʤä
         ξϡͥåȤ MAC ˤϥ֥ɥ㥹ȥ
         쥹ꤹ롣

         IP ɥ쥹ӥåȤ 1
         IP ɥ쥹ΥۥӥåȤ 1 ǡ ͥåȥ
           륢ɥ쥹

         Ʊˡ IP ɥ쥹ӥåȤ 1 Υ֥ɥ㥹Ȥб
         뤿ᡢŪϩɽ (route_cfg.c) ˤϡǸΥȥȤư
         ιԤɲä

            { 0xffffffff, 0xffffffff, 0 },

         ޤ ѥե졼ѥ᡼
         NUM_ROUTE_ENTRY  1 ä

   (29)  ؿ ntohl() Ȥ٤ȤǴؿ ntohs() ȤäƤ
         

   (30)  IP ڤ UDP Υåͤؿ htons() Ȥäơ
         Ƥ

   (31)  (SIL_ENDIAN == SIL_ENDIAN_LITTLE ΡHTONL() HTONS() 
         

   (32)  UDP ϴؿ udp_input ǡ襢ɥ쥹Ȥ
         ؿ dstaddr_accept ƽФˡ ͥåȥХȥ
         ۥȥХȥѴƤʤ 

   (33)  NE2000 ߴ NIC Хåեڡ

   (34)  NE2000 ߴ NIC ǡ NIC ¢ SRAM ؤΥǡν߽λ塢
         פΤߴλԤʤ褦ѹ 

   (35)  UDP ǡ ֥ɥ㥹ȡǡ褦˽

   (36)  ѥե졼ѥ᡼ DHCP_CFG 
         ϡDHCP å˻ꤹ롣
         TINET ϡDHCP Ƥʤѥץǡ DHCP 
         뤿Ǥ롣 DHCP_CFG ꤹȡ
         IPV4_ADDR_LOCAL ̤ 0ˤǤ⡢UDP ˸¤ꡢDHCP 
         뤳Ȥǽˤʤ롣 

   (37)  ѥե졼ѥ᡼
         IPV4_ADDR_LOCAL_BC ʬ IP ɥ쥹Υ֥ͥåȥ
         ꤹ IPV4_ADDR_LOCAL_MASK ߤ

   (38)  ͥåȥ󥿥ե IPv4 ɥ쥹ɲäؿ
         in4_add_ifaddr ߤ  δؿ ITRON TCP/IP
         API ߴǤꡢ ͥåȥ󥿥եͥåȤ
         ȤΤͭǤ롣

   (39)  ϩɽ˥ȥɲäؿ in4_add_route ߤ
          δؿ ITRON TCP/IP API ߴǤꡢͥåȥ
         󥿥եͥåȤΤȤΤͭǤ롣 

   (40)  ARP åǡ ʤä硢ॢȤޤǻ֤
         ûΥȥ꡼õʬ 

   (41)  ѥե졼ѥ᡼
         ETHER_NIC_CFG_RELEASE_NET_BUF ߤ ϥͥå
         ϻˡNIC  net_buf ˻ꤹ롣

   (42)  ARP ϤǡIP ɥ쥹νʣФԤ褦ѹФ
         ϡʣ MAC ɥ쥹 syslog ˽Ϥʣ
         ˤʣȤ롣

   (43)  ѥե졼ѥ᡼
         ARP_CFG_CALLBACK_DUPLICATED ߤꤹȡARP
         Ϥ IP ɥ쥹νʣ򸡽Фˡ ѥץѰ
         Хåؿ arp_callback_duplicated ƤӽФ

   (44)  IP ϻˡARP åΥॢͤ򹹿Ƥ
         FreeBSD μˤ碌ơ ʤ褦ѹARP 
         Υॢͤ ARP ϤǤΤ߹롣

2.  ꡼ 1.1  1.1.1 ޤǤѹ

   (1)   TINET ե졼եǡ TCP ոꤷ
         äȤϡ tinet/cfg/tinet_parser.cpp ǡ
         tinet_cfg.c ˥ߡ TCP ոѿϤ褦˽

   (2)   UDP Τ߻ѤȤ kernel_cfg.c ǡ ѥ륨顼ȯ
         ϡtinet/netinet/tcp.cfg 

            INCLUDE("<netinet/in.h>");

         tinet/netinet/ip.cfg 

            INCLUDE("<netinet/in.h>");

         ɲä

   (3)   UDP Τ߻ѤȤ ip_icmp.c ǡ_tinet_tcp_notify λ
         顼ȯϡ tinet/netinet/ip_icmp.c ǡ ICMP
         UNREACH å̵뤹褦˽

   (4)   롼ץХå󥿥ե IP ɥ쥹ޥ 
         ɥ㥹ȥɥ쥹 

   (5)   tinet/netdev/if_ed/if_ed.c ǡ 쥸 SIL ͳǥ
         褦˽

3.  ꡼ 1.1.1  1.2 ޤǤѹ

   (1)   IPv6 б

   (2)   ѥե졼ѥ᡼ˡ ǥեȡ
         ȥ IP ɥ쥹ꤹ
         IPV4_ADDR_LOCAL_DEFAULT_GW ߤˤꡢǥե
         ȡȥΤߤΥͥåȥǤϡ Ū롼ƥ󥰾
         ե route_cfg.c ѹפˤ

   (3)   UDP μ ݡֹ椬̤ξ硢ͥåȥХ
         եʤȡICMP Υ顼ΤԤ
         

   (4)   TCP μݡֹ椬̤ξ硢 ꥻåȥ
         Ȥʤ 

   (5)   ͥåȥ׾net_countˤγѿ _tinet_ ǥ͡
         षʤ褦ѹ

   (6)   ХȥѴ netinet/in.h 顢 net/net.h ˽
          ȥ륨ǥѤΥޥɲä

   (7)   ѥե졼󡦥եΤ줫ǡ 
          SUPPORT_MIB 뤳Ȥˤꡢ SNMP Ѵ١
         MIBˤ˽򤷤ͥåȥפμǽȤʤä
         TINET Τϡ١MIBˤ˽򤷤ͥåȥ
         󶡤ǡSNMP 򥵥ݡȤƤʤޤ RFC1213
         RFC2465RFC2466 ƤƤξ󤬼Ǥ櫓
         Ϥʤ Ǥϡط륤󥯥롼ɥեι¤
         Τ򻲾Ȥ뤳ȡ

   (8)   PPP  HDLC Ϥˤ

   (9)   ǧǤʤ̥ץȥޤϳĥإåȤ 
         ֹ ICMP6_PARAMPROB_NEXTHEADER1ˤ ICMP6_PARAM_PROB4
         å褦ѹ 
