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

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

Location:
EcnlProtoTool/trunk/asp3_dcre
Files:
80 added
13 deleted
200 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/asp3_dcre/.cproject

    r279 r331  
    8585                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/asp3_dcre/mbed/targets/hal/TARGET_RENESAS/TARGET_RZ_A1H}&quot;"/>
    8686                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/asp3_dcre/mbed/targets/hal/TARGET_RENESAS/TARGET_RZ_A1H/TARGET_MBED_MBRZA1H}&quot;"/>
    87                                                                         <listOptionValue builtIn="false" value="&quot;${workspace_loc:/mruby-1.2.0/include}&quot;"/>
     87                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/mruby-1.3.0/include}&quot;"/>
    8888                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/asp3_dcre}&quot;"/>
    8989                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/sample8/src}&quot;"/>
  • EcnlProtoTool/trunk/asp3_dcre/.info

    r279 r331  
    44GCC_STRING=5.2-GNUARM-NONE_v16.01
    55VERSION_IDE=
    6 E2STUDIO_VERSION=5.3.1.002
     6E2STUDIO_VERSION=5.4.0.018
    77ACTIVE_CONFIGURATION=Debug
  • EcnlProtoTool/trunk/asp3_dcre/Debug/Makefile

    r321 r331  
    197197endif
    198198
    199 #
    200 #  ネットワークサービスの定義
    201 #
    202 
    203 NO_USE_TINET_LIBRARY = true
    204 
    205 #  ネットワークインタフェースの選択、何れか一つ選択する。
    206 
    207 NET_IF = ether
    208 
    209 #  イーサネット・ディバイスドライバの選択
    210 
    211 NET_DEV = if_mbed
    212 
    213 #  ネットワーク層の選択
    214 
    215 #SUPPORT_INET6 = true
    216 SUPPORT_INET4 = true
    217 
    218 #  API に組込む機能の選択
    219 
    220 #API_CFG_IP4MAPPED_ADDR = true
    221 
    222 #  トランスポート層の選択
    223 
    224 SUPPORT_TCP = true
    225 #SUPPORT_UDP = true
    226 
    227 #
    228 #  システムサービスの Makefile のインクルード
    229 #
    230 include $(SRCDIR)/tinet/Makefile.tinet
     199TINETDIR = tinet
     200ifdef TINETDIR
     201        #
     202        #  ネットワークサービスの定義
     203        #
     204        NO_USE_TINET_LIBRARY = true
     205
     206        #  ネットワークインタフェースの選択、何れか一つ選択する。
     207        NET_IF = ether
     208
     209        #  イーサネット・ディバイスドライバの選択
     210        NET_DEV = if_mbed
     211
     212        #  ネットワーク層の選択
     213        SUPPORT_INET6 = true
     214        SUPPORT_INET4 = true
     215
     216        #  API に組込む機能の選択
     217        #API_CFG_IP4MAPPED_ADDR = true
     218
     219        #  トランスポート層の選択
     220        SUPPORT_TCP = true
     221        SUPPORT_UDP = true
     222
     223        #
     224        #  ネットワークサービスの Makefile のインクルード
     225        #
     226        include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
     227endif
    231228
    232229#
     
    239236                                 $(CXXRTS)
    240237SYSSVC_CFLAGS := $(SYSSVC_CFLAGS)
    241 INCLUDES := $(INCLUDES) -I$(TECSGENDIR) -I$(SRCDIR)/tecs_kernel
     238INCLUDES := $(INCLUDES) -I$(TECSGENDIR) -I$(SRCDIR)/tecs_kernel -I../../musl-1.1.18/include
    242239
    243240#
     
    261258#  コンフィギュレータに関する定義
    262259#
    263 CFG_TABS := --api-table $(SRCDIR)/tinet/tcpip_api.def:tcpip \
     260ifndef TINETDIR
     261  CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
     262  CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
     263                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     264else
     265  CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T $(TARGETDIR)/target_kernel.trb:kernel
     266  CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
    264267                        --api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
    265268                        --symval-table $(SRCDIR)/tinet/tcpip_sym.def \
    266269                        --symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
     270endif
    267271CFG_ASMOBJS := $(CFG_ASMOBJS)
    268272CFG_COBJS := kernel_cfg.o $(CFG_COBJS)
     
    333337#
    334338KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
    335 SYSSVC_OBJS = $(SYSSVC_ASMOBJS) $(SYSSVC_COBJS)
     339SYSSVC_OBJS = $(SYSSVC_ASMOBJS) $(SYSSVC_COBJS) $(HIDDEN_OBJS)
    336340APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS)
    337341ALL_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
     
    375379cfg1_out.c cfg1_out.db: cfg1_out.timestamp ;
    376380cfg1_out.timestamp: $(APPL_CFG) $(TECSGEN_TIMESTAMP)
     381        echo $(CFG_TABS)
    377382        $(CFG) --pass 1 --kernel asp $(INCLUDES) $(CFG_TABS) \
    378383                                                -M $(DEPDIR)/cfg1_out_c.d $(TARGET_KERNEL_CFG) $<
     
    390395$(CFG2_OUT_SRCS) cfg2_out.db: kernel_cfg.timestamp ;
    391396kernel_cfg.timestamp: cfg1_out.db cfg1_out.syms cfg1_out.srec
    392         $(CFG) --pass 2 --kernel asp $(INCLUDES) -T $(TARGET_TCPIP_TRB):tcpip -T $(TARGET_KERNEL_TRB):kernel
     397        $(CFG) --pass 2 --kernel asp $(INCLUDES) $(CFG_TRB)
    393398
    394399#
     
    462467        rm -f cfg1_out.syms cfg1_out.srec $(CFG1_OUT)
    463468        rm -f cfg1_out.timestamp cfg1_out.c cfg1_out.db
    464 #       rm -rf $(TECSGENDIR)
     469        rm -rf $(TECSGENDIR)
    465470ifndef KERNEL_LIB
    466471        rm -f libkernel.a
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_asm.inc

    • Property svn:keywords deleted
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_rename.def

    • Property svn:keywords deleted
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_support.S

    r321 r331  
    550550        ATEXT
    551551        AALIGN(2)
     552        AWEAK(svc_handler)
    552553        AGLOBAL(svc_handler)
    553554ALABEL(svc_handler)
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/core_sym.def

    • Property svn:keywords deleted
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_rename.def

    • Property svn:keywords deleted
  • EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_sym.def

    • Property svn:keywords deleted
  • EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/tTraceLog.c

    r321 r331  
    259259                tracemsg = "task %d becomes %s.";
    260260                break;
     261        case LOG_TYPE_DSP|LOG_ENTER:
     262                traceinfo[0] = get_tskid(p_trace->logpar[0]);
     263                tracemsg = "dispatch from task %d.";
     264                break;
    261265        case LOG_TYPE_DSP|LOG_LEAVE:
    262266                traceinfo[0] = get_tskid(p_trace->logpar[0]);
     
    275279                tracemsg = "%s:%u: Assertion `%s' failed.";
    276280                break;
     281        case LOG_TYPE_INH|LOG_ENTER:
     282                traceinfo[0] = p_trace->logpar[0];
     283                tracemsg = "interrupt IN: %d";
     284                break;
     285        case LOG_TYPE_INH|LOG_LEAVE:
     286                traceinfo[0] = p_trace->logpar[0];
     287                tracemsg = "interrupt OUT: %d";
     288                break;
     289        case LOG_TYPE_EXC|LOG_ENTER:
     290                traceinfo[0] = p_trace->logpar[0];
     291                tracemsg = "exception IN: %d";
     292                break;
     293        case LOG_TYPE_EXC|LOG_LEAVE:
     294                traceinfo[0] = p_trace->logpar[0];
     295                tracemsg = "exception OUT: %d";
     296                break;
    277297        default:
    278298                traceinfo[0] = p_trace->logtype;
  • EcnlProtoTool/trunk/asp3_dcre/arch/tracelog/trace_log.h

    r321 r331  
    204204#define LOG_TSKSTAT(p_tcb)              trace_2(LOG_TYPE_TSKSTAT, p_tcb, p_tcb->tstat)
    205205
    206 #define LOG_DSP_LEAVE(p_tcb)    trace_1(LOG_TYPE_DSP|LOG_LEAVE, p_tcb)
    207 
    208206#define LOG_TSYSLOG_ESYSLOG_WRITE_ENTER(priority, p_syslog) \
    209207                                                                trace_wri_log((TRACE *) p_syslog)
  • EcnlProtoTool/trunk/asp3_dcre/cfg/cfg.rb

    r321 r331  
    532532end
    533533
     534def BZERO(address, size)
     535  if !$romImage.nil?
     536    $romImage.set_data(address, "00" * size)
     537  end
     538end
     539
    534540def PEEK(address, size, signed=false)
    535541  if !$romImage.nil?
  • EcnlProtoTool/trunk/asp3_dcre/cfg/pass1.rb

    r321 r331  
    44#
    55#  Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
    6 #  Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
     6#  Copyright (C) 2015-2017 by Embedded and Real-Time Systems Laboratory
    77#              Graduate School of Information Science, Nagoya Univ., JAPAN
    88#
     
    168168    end
    169169
    170     symvalCsv = CSV.open(symvalTableFileName)
     170    symvalCsv = CSV.open(symvalTableFileName,
     171                                                { skip_blanks: true, skip_lines: /^#/ })
    171172    symvalCsv.each do |record|
    172173      # 変数名
    173174      if record[0].nil?
    174         error_exit("invalid variable name in `#{fileName}'")
     175        error_exit("invalid variable name in " \
     176                                                "`#{symvalTableFileName}:#{symvalCsv.to_io.lineno}'")
    175177      end
    176178
     
    235237    line = @cfgFile.gets
    236238    return(nil) if line.nil?
     239
     240        line.encode!("UTF-16BE", "UTF-8",       # 不正なバイト列を除外する
     241                                        :invalid => :replace,
     242                                        :undef => :replace,
     243                                        :replace => '?').encode!("UTF-8")
    237244    @lineNo += 1
    238245
     
    772779
    773780#include "#{CFG1_OUT_TARGET_H}"
    774 #include <limits.h>
     781
     782#if defined(SIL_ENDIAN_BIG) && defined(SIL_ENDIAN_LITTLE)
     783#error Both SIL_ENDIAN_BIG and SIL_ENDIAN_LITTLE are defined.
     784#endif
     785#if !defined(SIL_ENDIAN_BIG) && !defined(SIL_ENDIAN_LITTLE)
     786#error Neither SIL_ENDIAN_BIG nor SIL_ENDIAN_LITTLE is defined.
     787#endif
    775788
    776789const uint32_t #{CFG1_MAGIC_NUM} = 0x12345678;
  • EcnlProtoTool/trunk/asp3_dcre/cfg/pass2.rb

    r321 r331  
    44#
    55#  Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
    6 #  Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
     6#  Copyright (C) 2015-2017 by Embedded and Real-Time Systems Laboratory
    77#              Graduate School of Information Science, Nagoya Univ., JAPAN
    88#
     
    154154        value = @objidValues[paramName][param]
    155155      else
     156        apiDef = $apiDefinition[cfgInfo[:APINAME]]
    156157        error("#{apiDef.has_key?(:KEYPAR) ? "E_NOEXS" : "E_ID"}: " \
    157158                                        "`#{param}' in #{cfgInfo[:APINAME]} is not defined", \
  • EcnlProtoTool/trunk/asp3_dcre/configure.rb

    r321 r331  
    7878#  -O <options>                 シンボル定義オプション(CDEFSに追加)
    7979#  -k <options>                 リンカオプション(LDFLAGS等に追加)
     80#  -e <tinetdir>                TINET のソースの置かれているディレクトリ
     81#  -i <net_if>                  ネットワークインタフェース(TINETが有効の場合は必須)
     82#                                               ether、ppp、loop の何れかを指定する。
     83#  -v <net_dev>                 イーサネット・ディバイスドライバ
     84#                                               (ネットワークインタフェースに ether を指定した場合は必須)
     85#  -n <net_proto>               ネットワーク層プロトコル(TINETが有効の場合は必須)
     86#                                               inet6、inet4、inet6/inet4、inet6m、inet6m/inet4 の何れかを指定する。
     87#  -s <trans_proto>             トランスポート層プロトコル(TINETが有効の場合は必須)
     88#                                               tcp、udp、tcp/udp の何れかを指定する。
    8089
    8190#  使用例(1)
     
    98107#  % ../configure.rb -T ct11mpcore_gcc PRC_NUM=4
    99108#       PRC_NUMを4に定義する.
     109#
     110#  使用例(5)
     111#
     112#  % ../configure.rb -T gr_sakura_gcc -A sample1n \
     113#                                       -e tinet -i ether -v if_rx62n -n inet4 -s tcp -U sample1.o
     114#       TINETを有効にする.
    100115
    101116#
     
    190205  opt.on("-k options",          "linker options") do |val|
    191206    $ldflags += val.split("\s+")
     207  end
     208  opt.on("-e options",          "path of TINET directory") do |val|
     209    $tinetdir = val
     210  end
     211  opt.on("-i options",          "network interface (ether or ppp or loop)") do |val|
     212    $net_if = val
     213  end
     214  opt.on("-v options",          "ethernet device driver") do |val|
     215    $net_dev = val
     216  end
     217  opt.on("-n options",          "network layer protocol (inet6 or inet4 or inet6/inet4 or inet6m or inet6m/inet4)") do |val|
     218    $net_proto = val
     219  end
     220  opt.on("-s options",          "transeport layer protocol (tcp or udp or tcp/udp)") do |val|
     221    $trans_proto = val
    192222  end
    193223  opt.parse!(ARGV)
     
    280310$vartable["LDFLAGS"] = $ldflags.join(" ")
    281311$vartable["OBJEXT"] = GetObjectExtension()
     312$vartable["TINETDIR"] = $tinetdir
     313$vartable["NET_IF"] = $net_if
     314$vartable["NET_DEV"] = $net_dev
     315$vartable["SUPPORT_INET6"] = ($net_proto == "inet6") || ($net_proto == "inet6/inet4") || ($net_proto == "inet6m") || ($net_proto == "inet6m/inet4")
     316$vartable["SUPPORT_INET4"] = ($net_proto == "inet4") || ($net_proto == "inet6/inet4") || ($net_proto == "inet6m/inet4")
     317$vartable["SUPPORT_TCP"] = ($trans_proto == "tcp") || ($net_proto == "tcp/udp")
     318$vartable["SUPPORT_UDP"] = ($trans_proto == "udp") || ($net_proto == "tcp/udp")
     319$vartable["API_CFG_IP4MAPPED_ADDR"] = ($net_proto == "inet6m") || ($net_proto == "inet6m/inet4")
     320
    282321ARGV.each do |arg|
    283322  if /^([A-Za-z0-9_]+)\s*\=\s*(.*)$/ =~ arg
  • EcnlProtoTool/trunk/asp3_dcre/include/kernel.h

    r321 r331  
    323323 *  タスク管理機能
    324324 */
    325 extern ER_UINT  acre_tsk(const T_CTSK *pk_ctsk) throw();
     325extern ER_ID    acre_tsk(const T_CTSK *pk_ctsk) throw();
    326326extern ER               del_tsk(ID tskid) throw();
    327327extern ER               act_tsk(ID tskid) throw();
  • EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_api.def

    • Property svn:keywords deleted
  • EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_rename.def

    • Property svn:keywords deleted
  • EcnlProtoTool/trunk/asp3_dcre/kernel/kernel_sym.def

    • Property svn:keywords deleted
  • EcnlProtoTool/trunk/asp3_dcre/mbed/targets/cmsis/TARGET_RENESAS/TARGET_RZ_A1H/TOOLCHAIN_GCC_ARM/RZA1H.ld

    r270 r331  
    1313  SFLASH (rx) : ORIGIN = 0x18004000, LENGTH = 0x07FFC000
    1414  L_TTB (rw)  : ORIGIN = 0x20000000, LENGTH = 0x00004000
    15   RAM (rwx) : ORIGIN = 0x20020000, LENGTH = 0x00700000
    16   RAM_NC (rwx) : ORIGIN = 0x20900000, LENGTH = 0x00100000
     15  RAM (rw) : ORIGIN = 0x20004000, LENGTH = 0x000FC000
     16  RAM_CMD (rwx) : ORIGIN = 0x20100000, LENGTH = 0x00800000
     17  RAM_NC (rw) : ORIGIN = 0x20900000, LENGTH = 0x00100000
    1718}
    1819
     
    155156        PROVIDE (__init_array_end = .);
    156157
    157 
    158158        . = ALIGN(4);
    159159        /* finit data */
     
    169169    } > RAM
    170170
    171    
    172171    .bss ALIGN(0x400):
    173172    {
     
    180179    } > RAM
    181180
    182    
     181    /* .stack_dummy section doesn't contains any symbols. It is only
     182     * used for linker to calculate size of stack sections, and assign
     183     * values to stack symbols later */
     184    .stack_dummy :
     185    {
     186        *(.stack)
     187    } > RAM
     188
    183189    .heap :
    184190    {
     
    189195    } > RAM
    190196
    191     /* .stack_dummy section doesn't contains any symbols. It is only
    192      * used for linker to calculate size of stack sections, and assign
    193      * values to stack symbols later */
    194     .stack_dummy :
    195     {
    196         *(.stack)
    197     } > RAM
     197    .cmd_area :
     198    {
     199        __CmdBase = .;
     200        Image$$CMD_AREA$$Base = .;
     201        . = . + LENGTH(RAM_CMD);
     202        __CmdLimit = .;
     203        Image$$CMD_AREA$$Limit = .;
     204    } > RAM_CMD
    198205
    199206    __etext2 = __etext + SIZEOF(.data);
  • EcnlProtoTool/trunk/asp3_dcre/mbed/targets/cmsis/TARGET_RENESAS/TARGET_RZ_A1H/TOOLCHAIN_GCC_ARM/startup_RZ1AH.S

    r321 r331  
    9797@ Heap Configuration
    9898
    99     .EQU    Heap_Size       , 0x00080000
     99    .EQU    Heap_Size       , 0x00020000
    100100
    101101    .section .heap
  • EcnlProtoTool/trunk/asp3_dcre/mbed/targets/cmsis/TARGET_RENESAS/TARGET_RZ_A1H/mmu_Renesas_RZ_A1.c

    r321 r331  
    7272extern uint32_t Image$$RW_DATA$$Base;
    7373extern uint32_t Image$$ZI_DATA$$Base;
     74extern uint32_t Image$$CMD_AREA$$Base;
    7475extern uint32_t Image$$TTB$$ZI$$Base;
    7576#if defined( __CC_ARM )
     
    8384extern uint32_t Image$$RW_DATA$$Limit;
    8485extern uint32_t Image$$ZI_DATA$$Limit;
     86extern uint32_t Image$$CMD_AREA$$Limit;
    8587#if defined( __CC_ARM )
    8688#else
     
    9395#define RW_DATA_SIZE    (((uint32_t)&Image$$RW_DATA$$Limit >> 20) - ((uint32_t)&Image$$RW_DATA$$Base >> 20) + 1)
    9496#define ZI_DATA_SIZE    (((uint32_t)&Image$$ZI_DATA$$Limit >> 20) - ((uint32_t)&Image$$ZI_DATA$$Base >> 20) + 1)
     97#define CMD_AREA_SIZE    (((uint32_t)&Image$$CMD_AREA$$Limit >> 20) - ((uint32_t)&Image$$CMD_AREA$$Base >> 20) + 1)
    9598#if defined( __CC_ARM )
    9699#else
     
    160163    //Define Image
    161164    __TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)&Image$$RO_DATA$$Base, RO_DATA_SIZE, Sect_Normal_RO);
    162     __TTSection (&Image$$TTB$$ZI$$Base, 0x18200000, 4, Sect_Normal_Cod);
     165    __TTSection (&Image$$TTB$$ZI$$Base, 0x18200000, (0x18800000 >> 20) - (0x18200000 >> 20) + 1, Sect_Normal_Cod);
    163166    __TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)&Image$$VECTORS$$Base, VECTORS_SIZE, Sect_Normal_Cod);
    164167    __TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)&Image$$RW_DATA$$Base, RW_DATA_SIZE, Sect_Normal_RW);
    165168    __TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)&Image$$ZI_DATA$$Base, ZI_DATA_SIZE, Sect_Normal_RW);
     169        __TTSection (&Image$$TTB$$ZI$$Base, (uint32_t)&Image$$CMD_AREA$$Base, CMD_AREA_SIZE, Sect_Normal);
    166170#if defined( __CC_ARM )
    167171    __TTSection (&Image$$TTB$$ZI$$Base, Renesas_RZ_A1_ONCHIP_SRAM_NC_BASE,         10, Sect_Normal_NC);
  • EcnlProtoTool/trunk/asp3_dcre/sample/Makefile

    r321 r331  
    1212#  ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
    1313#  変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
    14  (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
    15 #       権表示,この利用条件および下記の無保証規定が,そのままの形でソー
    16 #       スコード中に含まれていること.
    17  (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
    18 #       用できる形で再配布する場合には,再配布に伴うドキュメント(利用
    19 #       者マニュアルなど)に,上記の著作権表示,この利用条件および下記
    20 #       の無保証規定を掲載すること.
    21  (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
     14(1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
     15#      権表示,この利用条件および下記の無保証規定が,そのままの形でソー
     16#      スコード中に含まれていること.
     17(2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
     18#      用できる形で再配布する場合には,再配布に伴うドキュメント(利用
     19#      者マニュアルなど)に,上記の著作権表示,この利用条件および下記
     20#      の無保証規定を掲載すること.
     21(3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
    2222#      用できない形で再配布する場合には,次のいずれかの条件を満たすこ
    2323#      と.
    24 #     (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
    25 #         作権表示,この利用条件および下記の無保証規定を掲載すること.
     24#    (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
     25#        作権表示,この利用条件および下記の無保証規定を掲載すること.
    2626#    (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
    2727#        報告すること.
    28  (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
     28(4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
    2929#      害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
    3030#      また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
     
    354354endif
    355355ifdef LDSCRIPT
    356         LDFLAGS := $(LDFLAGS) -T $(LDSCRIPT)
     356        LDFLAGS := $(LDFLAGS) -Wl,-T,$(LDSCRIPT)
    357357endif
    358358
  • EcnlProtoTool/trunk/asp3_dcre/sample/route_cfg.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2012 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    4444#include <netinet/in_var.h>
    4545
     46/* IPv6 に関する定義 */
     47
     48#ifdef _IP6_CFG
     49
     50#if NUM_IN6_ROUTE_ENTRY > 0
     51
     52T_IN6_RTENTRY routing6_tbl[NUM_IN6_ROUTE_ENTRY];
     53
     54#endif  /* of #if NUM_IN6_ROUTE_ENTRY > 0 */
     55
     56#endif  /* of #ifdef _IP6_CFG */
     57
    4658/* IPv4 に関する定義 */
    4759
    48 #ifdef SUPPORT_INET4
     60#ifdef _IP4_CFG
    4961
    5062#ifdef SUPPORT_LOOP
    5163
    52 T_IN4_RTENTRY routing_tbl[NUM_ROUTE_ENTRY] = {
     64T_IN4_RTENTRY routing4_tbl[NUM_IN4_ROUTE_ENTRY] = {
    5365        { 0, 0, 0 },
    5466        };
     
    5870#ifdef SUPPORT_PPP
    5971
    60 T_IN4_RTENTRY routing_tbl[NUM_ROUTE_ENTRY] = {
     72T_IN4_RTENTRY routing4_tbl[NUM_IN4_ROUTE_ENTRY] = {
    6173        { 0, 0, 0 },
    6274        };
     
    6678#ifdef SUPPORT_ETHER
    6779
    68 T_IN4_RTENTRY routing_tbl[NUM_ROUTE_ENTRY] = {
     80T_IN4_RTENTRY routing4_tbl[NUM_IN4_ROUTE_ENTRY] = {
    6981
    7082        /* 異なる LAN、default gateway による間接配送      */
     
    8294#endif  /* of #ifdef SUPPORT_ETHER */
    8395
    84 #endif  /* of #ifdef SUPPORT_INET4 */
    85 
    86 /* IPv6 に関する定義 */
    87 
    88 #ifdef SUPPORT_INET6
    89 
    90 #if NUM_ROUTE_ENTRY > 0
    91 
    92 T_IN6_RTENTRY routing_tbl[NUM_ROUTE_ENTRY] = { };
    93 
    94 #endif  /* of #if NUM_ROUTE_ENTRY > 0 */
    95 
    96 #endif  /* of #ifdef SUPPORT_INET6 */
     96#endif  /* of #ifdef _IP4_CFG */
  • EcnlProtoTool/trunk/asp3_dcre/sample/sample1.c

    r321 r331  
    116116#include "kernel_cfg.h"
    117117#include "sample1.h"
    118 #include "sample1n.h"
     118/*#include "sample1n.h"*/
    119119
    120120/*
  • EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2012 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    3939
    4040#include <kernel.h>
    41 #include <t_syslog.h>
     41#include "syssvc/syslog.h"
    4242#include "syssvc/serial.h"
    4343#include "kernel_cfg.h"
     
    9292bool_t          wait_accept     = false;        /* 接続要求待ち中      */
    9393
     94#ifdef SUPPORT_INET6
     95
     96T_IPV6EP        dst;
     97
     98#else   /* of #ifdef SUPPORT_INET6 */
     99
    94100#ifdef SUPPORT_INET4
    95101
     
    97103
    98104#endif  /* of #ifdef SUPPORT_INET4 */
    99 
    100 #ifdef SUPPORT_INET6
    101 
    102 T_IPV6EP        dst;
    103105
    104106#endif  /* of #ifdef SUPPORT_INET6 */
     
    117119 */
    118120
     121#ifdef SUPPORT_INET6
     122
     123#define TCP_ACP_CEP(c,r,d,t)    tcp6_acp_cep(c,r,d,t)
     124#define IP2STR(s,a)             ipv62str(s,a)
     125
     126#else   /* of #ifdef SUPPORT_INET6 */
     127
    119128#ifdef SUPPORT_INET4
    120129
     
    124133#endif  /* of #ifdef SUPPORT_INET4 */
    125134
    126 #ifdef SUPPORT_INET6
    127 
    128 #define TCP_ACP_CEP(c,r,d,t)    tcp6_acp_cep(c,r,d,t)
    129 #define IP2STR(s,a)             ipv62str(s,a)
    130 
    131135#endif  /* of #ifdef SUPPORT_INET6 */
    132136
     
    143147
    144148        case TFN_TCP_ACP_CEP:
    145                 IP2STR(addr, &dst.ipaddr);
     149                IP2STR((char *)addr, &dst.ipaddr);
    146150                syslog(LOG_NOTICE, "connected:    %s.%d", addr, dst.portno);
    147151                if (*(ER*)p_parblk == E_OK)
     
    182186                connected = false;
    183187                syscall(sig_sem(SEM_NET_SEND));
    184                 IP2STR(addr, &dst.ipaddr);
     188                IP2STR((char *)addr, &dst.ipaddr);
    185189                syslog(LOG_NOTICE, "disconnected: %s.%d", addr, dst.portno);
    186190                }
     
    326330                        return serial_rea_dat(portid, buf, len);
    327331                        }
    328                 dly_tsk(500);
     332                dly_tsk(500000);
    329333                }
    330334        return off;
     
    423427        }
    424428
    425 #ifdef SUPPORT_INET4
     429/*
     430 *  ipv6addr -- IPv6 アドレス出力
     431 */
     432
     433int_t
     434put_ipv6addr (ID cepid, const T_IN6_ADDR *addr, int_t width)
     435{
     436        int_t   len = 0, ix;
     437        bool_t  omit = false, zero = false;
     438
     439        if (addr == NULL) {
     440                put_char(cepid, '0');
     441                put_char(cepid, ':');
     442                put_char(cepid, ':');
     443                put_char(cepid, '0');
     444                len = 4;
     445                }
     446        else {
     447                for (ix = 0; ix < sizeof(T_IN6_ADDR) / 2; ix ++) {
     448                        if (omit) {
     449                                len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, false, ' ');
     450                                if (ix < 7) {
     451                                        put_char(cepid, ':');
     452                                        len ++;
     453                                        }
     454                                }
     455                        else if (ix > 0 && ix < 7 && addr->s6_addr16[ix] == 0)
     456                                zero = true;
     457                        else {
     458                                if (zero) {
     459                                        omit = true;
     460                                        put_char(cepid, ':');
     461                                        len ++;
     462                                        }
     463                                len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, false, ' ');
     464                                if (ix < 7) {
     465                                        put_char(cepid, ':');
     466                                        len ++;
     467                                        }
     468                                }
     469                        }
     470
     471                for ( ; len < width; len ++)
     472                        put_char(cepid, ' ');
     473                }
     474        return len;
     475        }
    426476
    427477/*
     
    429479 */
    430480
    431 static int_t
     481int_t
    432482put_ipv4addr (ID cepid, ULONGEST *addr, int_t width)
    433483{
     
    462512        }
    463513
    464 #define PUT_IPADDR(p,a,w)       put_ipv4addr(p,a,w)
    465 
    466 #endif  /* of #ifdef SUPPORT_INET4 */
    467 
    468 #ifdef SUPPORT_INET6
    469 
    470 /*
    471  *  ipv6addr -- IPv6 アドレス出力
    472  */
    473 
    474 static int_t
    475 put_ipv6addr (ID cepid, const T_IN6_ADDR *addr, int_t width)
    476 {
    477         int_t   len = 0, ix;
    478         bool_t  omit = false, zero = false;
    479 
    480         if (addr == NULL) {
    481                 put_char(cepid, '0');
    482                 put_char(cepid, ':');
    483                 put_char(cepid, ':');
    484                 put_char(cepid, '0');
    485                 len = 4;
    486                 }
    487         else {
    488                 for (ix = 0; ix < sizeof(T_IN6_ADDR) / 2; ix ++) {
    489                         if (omit) {
    490                                 len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, false, ' ');
    491                                 if (ix < 7) {
    492                                         put_char(cepid, ':');
    493                                         len ++;
    494                                         }
    495                                 }
    496                         else if (ix > 0 && ix < 7 && addr->s6_addr16[ix] == 0)
    497                                 zero = true;
    498                         else {
    499                                 if (zero) {
    500                                         omit = true;
    501                                         put_char(cepid, ':');
    502                                         len ++;
    503                                         }
    504                                 len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, false, ' ');
    505                                 if (ix < 7) {
    506                                         put_char(cepid, ':');
    507                                         len ++;
    508                                         }
    509                                 }
    510                         }
    511 
    512                 for ( ; len < width; len ++)
    513                         put_char(cepid, ' ');
    514                 }
    515         return len;
    516         }
    517 
    518 #define PUT_IPADDR(p,a,w)       put_ipv6addr(p,a,w)
    519 
    520 #endif  /* of #ifdef SUPPORT_INET6 */
    521 
    522514/*
    523515 *  put_macaddr -- MAC アドレス出力
     
    586578        va_list ap;
    587579        char    padchar, *str;
    588         int_t   ch, width, longflag, left, i, c;
     580        int_t   ch, width, longflag, shortflag, left, i, c;
    589581
    590582        if (connected) {
     
    597589                                }
    598590
    599                         width = longflag = 0;
     591                        width = longflag = shortflag = 0;
    600592                        padchar = ' ';
    601593
     
    619611                        while (ch == 'l') {             /* long (long) の指定 */
    620612                                longflag ++;
     613                                ch = *format ++;
     614                                }
     615
     616                        while (ch == 'h') {             /* short の指定 */
     617                                shortflag ++;
    621618                                ch = *format ++;
    622619                                }
     
    663660                        case 'I':
    664661
     662                                if (longflag) {
     663                                        str = va_arg(ap, char*);
     664                                        put_ipv6addr(TCP_CEPID, (T_IN6_ADDR *)str, width);
     665                                        }
     666                                else if (shortflag) {
     667                                        val = GET_ARG(ap, longflag);
     668                                        put_ipv4addr(TCP_CEPID, (ULONGEST *)val, width);
     669                                        }
     670                                else {
     671
     672#ifdef SUPPORT_INET6
     673
     674                                        str = va_arg(ap, char*);
     675                                        put_ipv6addr(TCP_CEPID, (T_IN6_ADDR *)str, width);
     676
     677#else   /* of #ifdef SUPPORT_INET6 */
     678
    665679#ifdef SUPPORT_INET4
    666680
    667                                 val = GET_ARG(ap, longflag);
    668                                 put_ipv4addr(TCP_CEPID, (ULONGEST *)val, width);
     681                                        val = GET_ARG(ap, longflag);
     682                                        put_ipv4addr(TCP_CEPID, (ULONGEST *)val, width);
    669683
    670684#endif  /* of #ifdef SUPPORT_INET4 */
    671685
    672 #ifdef SUPPORT_INET6
    673 
    674                                 str = va_arg(ap, char*);
    675                                 put_ipv6addr(TCP_CEPID, (T_IN6_ADDR *)str, width);
    676 
    677686#endif  /* of #ifdef SUPPORT_INET6 */
     687
     688                                        }
    678689
    679690                                break;
     
    701712                flush_snd_buff(TCP_CEPID);
    702713                syscall(sig_sem(SEM_TCP_SYSLOG));
    703                 return E_OK;
     714                return;
    704715                }
    705716        else {
     
    714725                                }
    715726
     727                        longflag = 0;
    716728                        c = *format++;
    717729                        while ('0' <= c && c <= '9') {
    718730                                c = *format++;
    719731                                }
     732
     733                        while (c == 'l') {
     734                                longflag = 1;
     735                                c = *format++;
     736                        }
     737
    720738                        switch (c) {
    721739                        case 'd':
    722                                 log.logpar[i++] = (intptr_t)va_arg(ap, int_t);
     740                                if(longflag == 1) {
     741                                        log.logpar[i++] = (intptr_t)va_arg(ap, long_t);
     742                                }
     743                                else {
     744                                        log.logpar[i++] = (intptr_t)va_arg(ap, int_t);
     745                                }
    723746                                break;
    724747                        case 'u':
  • EcnlProtoTool/trunk/asp3_dcre/sample/sample1n.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2012 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    6161/*  ネットワーク対応化関数  */
    6262
    63 extern void net_syslog(uint_t prio, const char *format, ...) throw();
     63extern void     net_syslog(uint_t prio, const char *format, ...) throw();
    6464extern ER_UINT  net_serial_rea_dat(ID portid, char *buf, uint_t len) throw();
    6565extern ER       net_serial_ctl_por(ID portid, uint_t ioctl) throw();
  • EcnlProtoTool/trunk/asp3_dcre/sample/tinet_app_config.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2012 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    6262
    6363/*
    64  *  TCPの能動オープンのみサポートすることを指定する。
    65  */
    66 
    67 #ifdef UNDEF_TCP_CFG_PASSIVE_OPEN
    68 #undef TCP_CFG_PASSIVE_OPEN
    69 #endif
    70 
    71 /*
    7264 *  TCP 通信端点の送受信ウィンドバッファの省コピー機能
    7365 *    注意: Makefile で指定している。
     
    9789#ifdef USE_TCP_MSS_SEG
    9890
     91#ifdef SUPPORT_INET6
     92
     93#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE    (IF_HDR_SIZE + IPV6_MMTU)       /* 最大サイズ */
     94
     95#else   /* of #ifdef SUPPORT_INET6 */
     96
    9997#ifdef SUPPORT_INET4
    10098#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE    (IF_HDR_SIZE + IP4_MSS)         /* 最大サイズ */
    10199#endif
    102100
    103 #ifdef SUPPORT_INET6
    104 #define TCP_CFG_SWBUF_CSAVE_MAX_SIZE    (IF_HDR_SIZE + IPV6_MMTU)       /* 最大サイズ */
    105 #endif
     101#endif  /* of #ifdef SUPPORT_INET6 */
    106102
    107103#else   /* of #ifdef USE_TCP_MSS_SEG */
     
    134130#endif
    135131
     132#ifdef SUPPORT_INET6
     133
     134#define MAX_TCP_SND_SEG                 TCP6_MSS
     135
     136#else   /* of #ifdef SUPPORT_INET6 */
     137
    136138#ifdef SUPPORT_INET4
    137139#define MAX_TCP_SND_SEG                 TCP_MSS
    138140#endif
    139141
    140 #ifdef SUPPORT_INET6
    141 #define MAX_TCP_SND_SEG                 TCP6_MSS
    142 #endif
     142#endif  /* of #ifdef SUPPORT_INET6 */
    143143
    144144#endif  /* of #ifdef USE_TCP_MSS_SEG */
     
    154154#endif
    155155
     156#ifdef SUPPORT_INET6
     157
     158#define DEF_TCP_RCV_SEG                 TCP6_MSS
     159
     160#else   /* of #ifdef SUPPORT_INET6 */
     161
    156162#ifdef SUPPORT_INET4
    157163#define DEF_TCP_RCV_SEG                 TCP_MSS
    158164#endif
    159165
    160 #ifdef SUPPORT_INET6
    161 #define DEF_TCP_RCV_SEG                 TCP6_MSS
    162 #endif
     166#endif  /* of #ifdef SUPPORT_INET6 */
    163167
    164168#endif  /* of #ifdef USE_TCP_MSS_SEG */
     
    232236//#define UDP_CFG_EXTENTIONS
    233237
     238/* IPv6 に関する定義 */
     239
     240#ifdef SUPPORT_PPP
     241
     242#define NUM_IN6_STATIC_ROUTE_ENTRY      0
     243#define NUM_IN6_REDIRECT_ROUTE_ENTRY    0
     244
     245#endif  /* of #ifdef SUPPORT_PPP */
     246
     247#ifdef SUPPORT_LOOP
     248
     249#define NUM_IN6_STATIC_ROUTE_ENTRY      0
     250#define NUM_IN6_REDIRECT_ROUTE_ENTRY    0
     251
     252#endif  /* of #ifdef SUPPORT_LOOP */
     253
     254#ifdef SUPPORT_ETHER
     255
     256#define NUM_IN6_STATIC_ROUTE_ENTRY      0
     257#define NUM_IN6_REDIRECT_ROUTE_ENTRY    1
     258
     259#endif  /* of #ifdef SUPPORT_ETHER */
     260
    234261/* IPv4 に関する定義 */
    235 
    236 #ifdef SUPPORT_INET4
    237262
    238263#ifdef SUPPORT_PPP
     
    250275#endif
    251276
    252 #define NUM_STATIC_ROUTE_ENTRY          1
    253 #define NUM_REDIRECT_ROUTE_ENTRY        0
     277#define NUM_IN4_STATIC_ROUTE_ENTRY      1
     278#define NUM_IN4_REDIRECT_ROUTE_ENTRY    0
    254279
    255280#endif  /* of #ifdef SUPPORT_PPP */
     
    257282#ifdef SUPPORT_ETHER
    258283
    259 #ifdef DHCP_CFG
     284#ifdef DHCP4_CLI_CFG
    260285
    261286#define IPV4_ADDR_LOCAL                 MAKE_IPV4_ADDR(0,0,0,0)
     
    263288#define IPV4_ADDR_DEFAULT_GW            MAKE_IPV4_ADDR(0,0,0,0)
    264289
    265 #else   /* of #ifdef DHCP_CFG */
    266 
    267 #define IPV4_ADDR_LOCAL                 MAKE_IPV4_ADDR(172,25,129,205)
     290#else   /* of #ifdef DHCP4_CLI_CFG */
     291
     292#define IPV4_ADDR_LOCAL                 MAKE_IPV4_ADDR(172,25,129,200)
    268293#define IPV4_ADDR_LOCAL_MASK            MAKE_IPV4_ADDR(255,255,255,0)
    269294#define IPV4_ADDR_DEFAULT_GW            MAKE_IPV4_ADDR(172,25,129,140)
    270295
    271 #endif  /* of #ifdef DHCP_CFG */
    272 
    273 #define NUM_STATIC_ROUTE_ENTRY          3
    274 #define NUM_REDIRECT_ROUTE_ENTRY        1
     296#endif  /* of #ifdef DHCP4_CLI_CFG */
     297
     298#define NUM_IN4_STATIC_ROUTE_ENTRY      3
     299#define NUM_IN4_REDIRECT_ROUTE_ENTRY    1
    275300
    276301#endif  /* of #ifdef SUPPORT_ETHER */
     
    278303#ifdef SUPPORT_LOOP
    279304
    280 #define NUM_STATIC_ROUTE_ENTRY          1
    281 #define NUM_REDIRECT_ROUTE_ENTRY        0
     305#define NUM_IN4_STATIC_ROUTE_ENTRY      1
     306#define NUM_IN4_REDIRECT_ROUTE_ENTRY    0
    282307
    283308#endif  /* of #ifdef SUPPORT_LOOP */
    284 
    285 #endif  /* of #ifdef SUPPORT_INET4 */
    286 
    287 /* IPv6 に関する定義 */
    288 
    289 #ifdef SUPPORT_INET6
    290 
    291 #ifdef SUPPORT_PPP
    292 
    293 #define NUM_STATIC_ROUTE_ENTRY          0
    294 #define NUM_REDIRECT_ROUTE_ENTRY        0
    295 
    296 #endif  /* of #ifdef SUPPORT_PPP */
    297 
    298 #ifdef SUPPORT_LOOP
    299 
    300 #define NUM_STATIC_ROUTE_ENTRY          0
    301 #define NUM_REDIRECT_ROUTE_ENTRY        0
    302 
    303 #endif  /* of #ifdef SUPPORT_LOOP */
    304 
    305 #ifdef SUPPORT_ETHER
    306 
    307 #define NUM_STATIC_ROUTE_ENTRY          0
    308 #define NUM_REDIRECT_ROUTE_ENTRY        1
    309 
    310 #endif  /* of #ifdef SUPPORT_ETHER */
    311 
    312 #endif  /* of #ifdef SUPPORT_INET6 */
    313309
    314310/*
     
    417413 *    IPv6 でのみ割り当てる。
    418414 *
    419  *    NE2000 互換 NIC のディバイスドライバ(if_ed)の最低割当て長は、
     415 *    MBED Ethernet Controler のディバイスドライバ(if_mbed)の最低割当て長は、
    420416 *    イーサネットフレームの最短長である 60(CRC の 4 オクテットを除き、
    421417 *    更にアラインして 62)オクテットである。
     
    579575
    580576#if (defined(TCP_CFG_RWBUF_CSAVE) || defined(TCP_CFG_SWBUF_CSAVE)) && defined(USE_COPYSAVE_API)
    581 #define NUM_MPF_NET_BUF_IF_PDU          6
    582 #else
    583 #define NUM_MPF_NET_BUF_IF_PDU          5
     577#define NUM_MPF_NET_BUF_IF_PDU          9
     578#else
     579#define NUM_MPF_NET_BUF_IF_PDU          8
    584580#endif
    585581
     
    614610#endif  /* of #ifdef SUPPORT_ETHER */
    615611
     612/*
     613 *  DNS サーバに関する定義
     614 */
     615
     616/* DNS サーバの IP アドレス */
     617
     618#if !defined(DHCP6_CLI_CFG)
     619
     620#define IPV6_ADDR_DNS_INIT      \
     621        {{{ UINT_C(0xfd), UINT_C(0x90), UINT_C(0xcc), UINT_C(0xe5), \
     622            UINT_C(0x25), UINT_C(0xf6), UINT_C(0xff), UINT_C(0x81), \
     623            UINT_C(0x02), UINT_C(0xa0), UINT_C(0x24), UINT_C(0xff), \
     624            UINT_C(0xfe), UINT_C(0x56), UINT_C(0xc5), UINT_C(0xd6) }}}
     625
     626#endif  /* of #if !defined(DHCP6_CLI_CFG) */
     627
     628#if !defined(DHCP4_CLI_CFG)
     629#define IPV4_ADDR_DNS           MAKE_IPV4_ADDR(172,25,129,140)
     630#endif
     631
     632/* DOMAIN 名 */
     633
     634#if !(defined(DHCP4_CLI_CFG) || defined(DHCP6_CLI_CFG))
     635#define RSLV_CFG_DNS_DOMAIN_NAME_STR    "jo.tomakomai-ct.ac.jp"
     636#endif
     637
     638/*
     639 *  DHCP クライアントに関する定義
     640 */
     641
     642/* DHCPv6 の動作モードの設定 */
     643
     644#define DHCP6_CLI_CFG_MODE      DHCP6_CLI_CFG_STATELESS
     645//#define DHCP6_CLI_CFG_MODE    DHCP6_CLI_CFG_STATEFULL
     646
    616647#endif /* _TINET_APP_CONFIG_H_ */
  • EcnlProtoTool/trunk/asp3_dcre/sample/tinet_sample1n.cfg

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2012 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    4040/* TCP 受付口 */
    4141
     42#ifdef SUPPORT_INET6
     43
     44TCP6_CRE_REP (TCP_REPID, { 0, { IPV6_ADDRANY, 23 } } );
     45
     46#else   /* of #ifdef SUPPORT_INET6 */
     47
    4248#ifdef SUPPORT_INET4
    4349
     
    4652#endif  /* of #ifdef SUPPORT_INET4 */
    4753
    48 #ifdef SUPPORT_INET6
    49 
    50 TCP6_CRE_REP (TCP_REPID, { 0, { IPV6_ADDRANY, 23 } } );
    51 
    5254#endif  /* of #ifdef SUPPORT_INET6 */
    5355
    5456/* TCP 通信端点 */
     57
     58#ifdef SUPPORT_INET6
     59
     60TCP6_CRE_CEP (TCP_CEPID, {
     61        0,
     62        tcp_swbuf,
     63        TCP_SWBUF_SIZE,
     64        tcp_rwbuf,
     65        TCP_RWBUF_SIZE,
     66        (FP)callback_nblk_tcp
     67        } );
     68
     69#else   /* of #ifdef SUPPORT_INET6 */
    5570
    5671#ifdef SUPPORT_INET4
     
    6782#endif  /* of #ifdef SUPPORT_INET4 */
    6883
    69 #ifdef SUPPORT_INET6
    70 
    71 TCP6_CRE_CEP (TCP_CEPID, {
    72         0,
    73         tcp_swbuf,
    74         TCP_SWBUF_SIZE,
    75         tcp_rwbuf,
    76         TCP_RWBUF_SIZE,
    77         (FP)callback_nblk_tcp
    78         } );
    79 
    8084#endif  /* of #ifdef SUPPORT_INET6 */
  • EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gdb_ram.ini

    • Property svn:keywords deleted
  • EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/gdb_rom.ini

    • Property svn:keywords deleted
  • EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_rename.def

    • Property svn:keywords deleted
  • EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/target_user.txt

    r321 r331  
    4646 の責任を負わない.
    4747 
    48  $Id$
     48 $Id: target_user.txt 1145 2017-02-06 04:26:43Z coas-nagasima $
    4949----------------------------------------------------------------------
    5050
  • EcnlProtoTool/trunk/asp3_dcre/target/gr_peach_gcc/tinet_target_config.h

    r321 r331  
    425425#if 1
    426426
     427#ifdef SUPPORT_INET6
     428
     429#ifdef SUPPORT_INET4
     430
     431#define NET_COUNT_ENABLE        (0                      \
     432                                | PROTO_FLG_PPP_HDLC    \
     433                                | PROTO_FLG_PPP_PAP     \
     434                                | PROTO_FLG_PPP_LCP     \
     435                                | PROTO_FLG_PPP_IPCP    \
     436                                | PROTO_FLG_PPP         \
     437                                | PROTO_FLG_LOOP        \
     438                                | PROTO_FLG_ETHER_NIC   \
     439                                | PROTO_FLG_ETHER       \
     440                                | PROTO_FLG_IP6         \
     441                                | PROTO_FLG_ICMP6       \
     442                                | PROTO_FLG_ND6         \
     443                                | PROTO_FLG_ARP         \
     444                                | PROTO_FLG_IP4         \
     445                                | PROTO_FLG_ICMP4       \
     446                                | PROTO_FLG_TCP         \
     447                                | PROTO_FLG_UDP         \
     448                                | PROTO_FLG_NET_BUF     \
     449                                )
     450
     451#else   /* of #ifdef SUPPORT_INET4 */
     452
     453#define NET_COUNT_ENABLE        (0                      \
     454                                | PROTO_FLG_PPP_HDLC    \
     455                                | PROTO_FLG_PPP_PAP     \
     456                                | PROTO_FLG_PPP_LCP     \
     457                                | PROTO_FLG_PPP_IPCP    \
     458                                | PROTO_FLG_PPP         \
     459                                | PROTO_FLG_LOOP        \
     460                                | PROTO_FLG_ETHER_NIC   \
     461                                | PROTO_FLG_ETHER       \
     462                                | PROTO_FLG_IP6         \
     463                                | PROTO_FLG_ICMP6       \
     464                                | PROTO_FLG_ND6         \
     465                                | PROTO_FLG_TCP         \
     466                                | PROTO_FLG_UDP         \
     467                                | PROTO_FLG_NET_BUF     \
     468                                )
     469
     470#endif  /* of #ifdef SUPPORT_INET4 */
     471
     472#else   /* of #ifdef SUPPORT_INET6 */
     473
    427474#ifdef SUPPORT_INET4
    428475
     
    439486                                | PROTO_FLG_IP4         \
    440487                                | PROTO_FLG_ICMP4       \
     488                                | PROTO_FLG_TCP         \
    441489                                | PROTO_FLG_UDP         \
    442                                 | PROTO_FLG_TCP         \
    443490                                | PROTO_FLG_NET_BUF     \
    444491                                )
     
    446493#endif  /* of #ifdef SUPPORT_INET4 */
    447494
    448 #ifdef SUPPORT_INET6
    449 
    450 #define NET_COUNT_ENABLE        (0                      \
    451                                 | PROTO_FLG_PPP_HDLC    \
    452                                 | PROTO_FLG_PPP_PAP     \
    453                                 | PROTO_FLG_PPP_LCP     \
    454                                 | PROTO_FLG_PPP_IPCP    \
    455                                 | PROTO_FLG_PPP         \
    456                                 | PROTO_FLG_LOOP        \
    457                                 | PROTO_FLG_ETHER_NIC   \
    458                                 | PROTO_FLG_ETHER       \
    459                                 | PROTO_FLG_IP6         \
    460                                 | PROTO_FLG_ICMP6       \
    461                                 | PROTO_FLG_ND6         \
    462                                 | PROTO_FLG_UDP         \
    463                                 | PROTO_FLG_TCP         \
    464                                 | PROTO_FLG_NET_BUF     \
    465                                 )
    466 
    467495#endif  /* of #ifdef SUPPORT_INET6 */
    468496
  • EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.tinet

    r321 r331  
    22#   TINET (TCP/IP Protocol Stack)
    33
    4 #   Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4#   Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55#                    Tomakomai National College of Technology, JAPAN
    66#   Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, JAPAN
     
    6363
    6464#
     65#  TINET 1.7 以降は、ネットワーク層の指定を変更した。
     66#
     67
     68ifeq ($(SUPPORT_INET6),true)
     69        TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_INET6
     70endif
     71
     72ifeq ($(SUPPORT_INET4),true)
     73        TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_INET4
     74endif
     75
     76ifeq ($API_CFG_IP4MAPPED_ADDR,true)
     77        TINET_CDEFS := $(TINET_CDEFS) -DAPI_CFG_IP4MAPPED_ADDR
     78endif
     79
     80ifeq ($(SUPPORT_IGMP),true)
     81        TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_IGMP
     82endif
     83
     84#
    6585#  ネットワークサービスに関する定義
    6686#
    67 TINET_DIR = $(TINET_ROOT)/net:$(TINET_ROOT)/netinet
    68 
     87
     88#  汎用通信機能
     89
     90TINET_DIRS = $(TINET_ROOT)/net:$(TINET_ROOT)/netinet:$(TINET_ROOT)/netinet6
    6991TINET_COBJS := $(TINET_COBJS) \
    70                net_buf.o net_count.o net_subr.o net_timer.o \
    71                in_subr.o tinet_cfg.o route_cfg.o
    72 
    73 ifeq ($(SUPPORT_INET4),true)
    74 
    75         TINET_COBJS := $(TINET_COBJS) \
    76                        ip_input.o ip_output.o ip_icmp.o
    77         TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/ip.cfg
    78         TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_INET4
    79 
    80 endif
    81 
    82 ifeq ($(SUPPORT_INET6),true)
    83 
    84         TINET_DIR := $(TINET_DIR):$(TINET_ROOT)/netinet6
    85         TINET_COBJS := $(TINET_COBJS) \
    86                        in6.o in6_ifattach.o nd6_rtr.o \
    87                        in6_subr.o ip6_input.o icmp6.o \
    88                        dest6.o route6.o frag6.o \
    89                        ah_input.o esp_input.o \
    90                        nd6.o nd6_nbr.o ip6_output.o scope6.o
    91         TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet6/ip6.cfg
    92         TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_INET6
    93 
    94 endif
     92               net_buf.o net_count.o net_subr.o net_timer.o if.o \
     93               in_subr.o route_cfg.o
     94TINET_CFG_COBJS := $(TINET_CFG_COBJS) tinet_cfg.o
     95
     96#  IPv6
     97
     98TINET_COBJS := $(TINET_COBJS) \
     99               in6.o in6_ifattach.o nd6_rtr.o \
     100               in6_subr.o ip6_input.o icmp6.o \
     101               dest6.o route6.o frag6.o \
     102               ah_input.o esp_input.o \
     103               nd6.o nd6_nbr.o ip6_output.o scope6.o
     104TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet6/ip6.cfg
     105
     106#  IPv4
     107
     108TINET_COBJS := $(TINET_COBJS) \
     109               ip_input.o ip_output.o ip_icmp.o ip_igmp.o in4_subr.o
     110TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/ip.cfg
     111
     112#  loop back
    95113
    96114ifeq ($(NET_IF),loop)
     
    102120endif
    103121
     122#  ppp
     123
    104124ifeq ($(NET_IF),ppp)
    105125
    106126        TINET_COBJS := $(TINET_COBJS) \
    107127                       ppp.o ppp_hdlc.o ppp_lcp.o ppp_fsm.o \
    108                        ppp_auth.o ppp_ipcp.o ppp_upap.o
     128                       ppp_auth.o ppp_upap.o
    109129        TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/net/ppp.cfg
    110130        TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_PPP
     131
     132#  IPv6用 cp
     133        TINET_COBJS := $(TINET_COBJS) ppp_ipv6cp.o
     134
     135#  IPv4用 cp
     136        TINET_COBJS := $(TINET_COBJS) ppp_ipcp.o
    111137
    112138ifeq ($(PPP_CFG_MODEM),true)
     
    143169endif
    144170
     171#  ethernet
     172
    145173ifeq ($(NET_IF),ether)
    146174
    147         TINET_COBJS := $(TINET_COBJS) if.o ethernet.o
    148         TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/net/ethernet.cfg
     175        TINET_COBJS := $(TINET_COBJS) ethernet.o if6_ether.o if_ether.o
     176        TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) \
     177                            $(TINET_ROOT)/net/ethernet.cfg \
     178                            $(TINET_ROOT)/netinet/if_ether.cfg
    149179        TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_ETHER
    150 
    151         ifeq ($(SUPPORT_INET4),true)
    152 
    153                 TINET_COBJS := $(TINET_COBJS) if_ether.o
    154                 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/if_ether.cfg
    155 
    156         endif
    157 
    158         ifeq ($(SUPPORT_INET6),true)
    159 
    160                 TINET_COBJS := $(TINET_COBJS) if6_ether.o
    161 
    162         endif
    163 
    164 
    165180        include $(TINET_ROOT)/netdev/$(NET_DEV)/Makefile.tinet
    166181
    167182endif
     183
     184#  TCP
    168185
    169186ifeq ($(SUPPORT_TCP),true)
     
    177194endif
    178195
     196#  UDP
     197
    179198ifeq ($(SUPPORT_UDP),true)
    180199
     
    193212
    194213        ifeq ($(SUPPORT_TCP),true)
    195 
    196214                TINET_COBJS := $(TINET_COBJS) tcp_usrreq.o
    197 
    198215        endif
    199216
    200217        ifeq ($(SUPPORT_UDP),true)
    201 
    202                 TINET_COBJS := $(TINET_COBJS) udp_usrreq.o
    203 
     218                TINET_COBJS := $(TINET_COBJS) udp_usrreq.o udp_usrreq_nblk.o
    204219        endif
    205220
     
    207222
    208223        ifeq ($(SUPPORT_TCP),true)
    209 
    210224                TINET_LCSRCS := $(TINET_LCSRCS) tcp_usrreq.c
    211 
    212225        endif
    213226
    214227        ifeq ($(SUPPORT_UDP),true)
    215 
    216                 TINET_LCSRCS := $(TINET_LCSRCS) udp_usrreq.c
    217 
     228                TINET_LCSRCS := $(TINET_LCSRCS) udp_usrreq.c udp_usrreq_nblk.c
    218229        endif
    219230
     
    248259                tcp_set_opt.o tcp_get_opt.o
    249260
    250 udp_usrreq =    udp_can_snd.o udp_can_rcv.o udp_can_cep.o \
    251                 udp_cre_cep.o udp_del_cep.o \
    252                 udp_snd_dat.o udp_rcv_dat.o udp_send_data.o \
    253                 udp_set_opt.o udp_get_opt.o
     261udp_usrreq =    udp_can_cep.o udp_send_data.o \
     262                udp_can_snd.o udp_can_rcv.o \
     263                udp_snd_dat.o udp_rcv_dat.o \
     264                udp_set_opt.o udp_get_opt.o \
     265                udp_cre_cep.o udp_del_cep.o
     266
     267udp_usrreq_nblk = \
     268                udp_can_snd_nblk.o udp_can_rcv_nblk.o \
     269                udp_snd_dat_nblk.o udp_rcv_dat_nblk.o
    254270
    255271#
     
    257273#  オブジェクトファイルの依存関係の定義
    258274#
    259 $(tcp_usrreq) $(tcp_usrreq:.o=.s) $(tcp_usrreq:.o=.d): tcp_usrreq.c
    260 $(udp_usrreq) $(udp_usrreq:.o=.s) $(udp_usrreq:.o=.d): udp_usrreq.c udp_usrreq_nblk.c
     275$(tcp_usrreq) $(tcp_usrreq:.o=.s) $(tcp_usrreq:.o=.d): tcp_usrreq.c tcpn_usrreq.c
     276$(udp_usrreq) $(udp_usrreq:.o=.s) $(udp_usrreq:.o=.d): udp_usrreq.c udpn_usrreq.c
     277$(udp_usrreq_nblk) $(udp_usrreq_nblk:.o=.s) $(udp_usrreq_nblk:.o=.d): udp_usrreq_nblk.c
    261278
    262279#
     
    271288ifeq ($(TARGET_KERNEL),ASP)
    272289
    273 TINET_CFG = $(APPLDIR)/tinet_$(APPLNAME).cfg
    274 TINET_CFG_OUT = tinet_cfg.c tinet_cfg.h
     290TINET_CFG_OUT = tinet_cfg.c tinet_cfg.h tinet_kern.cfg
    275291TINET_KERNEL_CFG :=     $(TINET_KERNEL_CFG) \
    276292                        $(TINET_ROOT)/tinet_asp.cfg $(TINET_ROOT)/net/net_asp.cfg
     
    305321ifeq ($(TARGET_KERNEL),ASP)
    306322
    307         SYSSVC_DIRS := $(SYSSVC_DIRS):$(TINET_DIR)
     323        SYSSVC_DIRS := $(SYSSVC_DIRS):$(TINET_DIRS)
    308324        SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
    309325        SYSSVC_COBJS := $(SYSSVC_COBJS) $(TINET_COBJS)
     
    311327        SYSSVC_LIBS := $(SYSSVC_LIBS) $(LIBTINET) -lc
    312328
     329        CFG_COBJS := $(CFG_COBJS) $(TINET_CFG_COBJS)
     330
    313331        CLEAN_FILES := $(CLEAN_FILES) $(TINET_CFG_OUT) $(MAKE_TINET_LIB)
    314332
     
    319337        MTASK_CFG := $(MTASK_CFG) $(TINET_CFG)
    320338        MTASK_KERNEL_CFG := $(MTASK_KERNEL_CFG) $(TINET_KERNEL_CFG)
    321         MTASK_DIR := $(MTASK_DIR):$(TINET_DIR)
     339        MTASK_DIR := $(MTASK_DIRS):$(TINET_DIRS)
    322340        MTASK_LCSRCS := $(MTASK_LCSRCS) $(TINET_LCSRCS)
    323341        MTASK_ASMOBJS := $(MTASK_ASMOBJS)
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ether_var.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    6363#include <net/if_arp.h>
    6464#include <net/net.h>
     65#include <net/net_endian.h>
    6566#include <net/net_var.h>
    6667#include <net/net_buf.h>
     
    7172#include <netinet/in_var.h>
    7273#include <netinet/if_ether.h>
     74
    7375#include <netinet6/if6_ether.h>
    7476#include <netinet6/nd6.h>
    7577
    7678#include <net/if_var.h>
    77 #include <net/if6_var.h>
    7879
    7980#ifdef SUPPORT_ETHER
     
    8384 */
    8485
    85 #if defined(SUPPORT_INET4)
     86#if defined(_IP4_CFG)
    8687
    8788const uint8_t ether_broad_cast_addr[ETHER_ADDR_LEN] = {
     
    9091        };
    9192
    92 #endif  /* of #if defined(SUPPORT_INET4) */
     93#endif  /* of #if defined(_IP4_CFG) */
    9394
    9495/*
     
    9899/* ネットワークインタフェース構造体 */
    99100
    100 #if defined(SUPPORT_INET4)
    101 
    102 static T_IFNET ether_ifnet = {
    103         NULL,                   /* ネットワークインタフェースのソフトウェア情報       */
    104         {
    105                 IPV4_ADDR_LOCAL,        /* IPv4 アドレス            */
    106                 IPV4_ADDR_LOCAL_MASK,   /* サブネットマスク             */
    107                 },
    108         };
    109 
    110 #endif  /* of #if defined(SUPPORT_INET4) */
    111 
    112 #if defined(SUPPORT_INET6)
    113 
    114 static T_IFNET ether_ifnet = {
    115         NULL,                   /* ネットワークインタフェースのソフトウェア情報       */
    116         {0},                    /* IPv6 アドレス情報                          */
    117         {0},                    /* マルチキャスト IPv6 アドレス                    */
    118         0,                              /* フラグ                                  */
    119         };
    120 
    121 #endif  /* of #if defined(SUPPORT_INET6) */
     101static T_IFNET ether_ifnet;
    122102
    123103#ifdef SUPPORT_MIB
    124104
    125 /*
    126  *  SNMP の 管理情報ベース (MIB)
    127  */
     105/*  SNMP の 管理情報ベース (MIB) */
    128106
    129107T_IF_STATS if_stats;
     
    158136
    159137/*
     138 *  ether_srand -- 乱数を初期値を返す。
     139 */
     140
     141uint32_t
     142ether_srand (void)
     143{
     144        T_IF_SOFTC      *ic;
     145        uint32_t        rval;
     146
     147        ic = IF_ETHER_NIC_GET_SOFTC();
     148        rval  = (ic->ifaddr.lladdr[2] << 24)
     149              + (ic->ifaddr.lladdr[3] << 16)
     150              + (ic->ifaddr.lladdr[4] <<  8)
     151              + (ic->ifaddr.lladdr[5]      );
     152
     153#ifdef ETHER_CFG_COLLECT_ADDR
     154
     155        rval += (ether_collect_addr.lladdr[2] << 24)
     156              + (ether_collect_addr.lladdr[3] << 16)
     157              + (ether_collect_addr.lladdr[4] <<  8)
     158              + (ether_collect_addr.lladdr[5]      );
     159
     160#endif  /* of #ifdef ETHER_CFG_COLLECT_ADDR */
     161
     162        return rval;
     163        }
     164
     165/*
    160166 *  ether_get_ifnet -- ネットワークインタフェース構造体を返す。
    161167 */
     
    167173        }
    168174
    169 #if defined(SUPPORT_INET6)
     175#if defined(_IP6_CFG)
    170176
    171177/*
     
    174180
    175181ER
    176 ether_in6_resolve_multicast (T_ETHER_ADDR *ifaddr, T_IN6_ADDR *maddr)
     182ether_in6_resolve_multicast (T_ETHER_ADDR *ifaddr, const T_IN6_ADDR *maddr)
    177183{
    178184        /* マルチキャストアドレスかチェックする。*/
     
    186192        }
    187193
    188 #endif  /* of #if defined(SUPPORT_INET6) */
     194#endif  /* of #if defined(_IP6_CFG) */
    189195
    190196/**
     
    203209      }
    204210#endif /* LWIP_ARP */
     211
     212#if LWIP_IGMP
     213      /* resend IGMP memberships */
     214      if (ether->_flags & IF_FLAG_IGMP) {
     215        igmp_report_groups(ether);
     216      }
     217#endif /* LWIP_IGMP */
    205218    }
    206219    if (ether->link_callback) {
     
    262275
    263276ER
    264 ether_output (T_NET_BUF *output, void *dst, T_IF_ADDR *gw, TMO tmout)
     277ether_output (T_NET_BUF *output, const void *dst, T_IF_ADDR *gw, TMO tmout)
    265278{
    266279        T_IF_SOFTC      *ic;
     
    275288        switch(ntohs(eth->type)) {
    276289
    277 #if defined(SUPPORT_INET4)
     290#if defined(_IP4_CFG)
    278291
    279292        case ETHER_TYPE_IP:             /* IPv4 */
     
    292305                break;
    293306
    294 #endif  /* of #if defined(SUPPORT_INET4) */
    295 
    296 #if defined(SUPPORT_INET6)
     307#endif  /* of #if defined(_IP4_CFG) */
     308
     309#if defined(_IP6_CFG)
    297310
    298311        case ETHER_TYPE_IPV6:           /* IPv6 */
    299                 error = nd6_storelladdr((T_ETHER_ADDR*)GET_ETHER_HDR(output)->dhost,
    300                                         (T_IN6_ADDR*)dst, gw);
     312                error = nd6_storelladdr((T_ETHER_ADDR*)eth->dhost,
     313                                        (const T_IN6_ADDR*)dst, gw);
    301314                if (error == E_OK)
    302315                        error = ether_raw_output(output, tmout);
     
    311324                break;
    312325
    313 #endif  /* of #if defined(SUPPORT_INET6) */
     326#endif  /* of #if defined(_IP6_CFG) */
    314327
    315328        default:
     
    398411        ID              tskid;
    399412        uint16_t        proto;
     413        uint8_t         rcount = 0;
    400414
    401415        /* ネットワークインタフェース管理を初期化する。*/
    402416        ifinit();
     417
     418        /* イーサネットネットワークインタフェース管理を初期化する。*/
     419
     420#if defined(_IP4_CFG)
     421
     422        ether_ifnet.in4_ifaddr.addr = IPV4_ADDR_LOCAL;          /* IPv4 アドレス            */
     423        ether_ifnet.in4_ifaddr.mask = IPV4_ADDR_LOCAL_MASK;     /* サブネットマスク             */
     424
     425#endif  /* of #if defined(_IP4_CFG) */
    403426
    404427        /* NIC を初期化する。*/
     
    418441                           tskid, mac2str(NULL, ic->ifaddr.lladdr));
    419442
    420 #if defined(SUPPORT_INET4)
     443#if defined(_IP4_CFG)
    421444
    422445        /* ARP を初期化する。*/
    423446        arp_init();
    424447
    425 #endif  /* of #if defined(SUPPORT_INET4) */
     448#endif  /* of #if defined(_IP4_CFG) */
    426449
    427450        ether_ifnet.ic = ic;
     451
     452        /* 乱数生成を初期化する。*/
     453        net_srand(0);
    428454
    429455        while (true) {
    430456                syscall(wai_sem(ic->semid_rxb_ready));
    431457                if ((input = IF_ETHER_NIC_READ(ic)) != NULL) {
    432                         NET_COUNT_ETHER(net_count_ether.in_octets, input->len);
     458                        NET_COUNT_ETHER(net_count_ether.in_octets,  input->len);
    433459                        NET_COUNT_MIB(if_stats.ifInOctets, input->len + 8);
    434460                        NET_COUNT_ETHER(net_count_ether.in_packets, 1);
     
    436462                        proto = ntohs(eth->type);
    437463
     464                        /* 乱数生成を初期化する。*/
     465                        if (rcount == 0) {
     466
     467#ifdef ETHER_CFG_COLLECT_ADDR
     468                                memcpy(ether_collect_addr.lladdr, eth->shost,
     469                                sizeof(ether_collect_addr.lladdr));
     470#endif  /* of #ifdef ETHER_CFG_COLLECT_ADDR */
     471
     472                                net_srand(0);
     473                                }
     474                        rcount ++;
     475
     476
    438477#ifdef SUPPORT_MIB
    439478                        if ((*eth->dhost & ETHER_MCAST_ADDR) == 0) {
     
    445484#endif  /* of #ifdef SUPPORT_MIB */
    446485
    447 #if defined(SUPPORT_INET4) && defined(ETHER_CFG_ACCEPT_ALL)
     486#if defined(_IP4_CFG) && defined(ETHER_CFG_ACCEPT_ALL)
    448487
    449488                        if ((*eth->dhost & ETHER_MCAST_ADDR) && *eth->dhost != 0xff) {
     
    464503                                }
    465504
    466 #endif  /* of #if defined(SUPPORT_INET4) && defined(ETHER_CFG_ACCEPT_ALL) */
     505#endif  /* of #if defined(_IP4_CFG) && defined(ETHER_CFG_ACCEPT_ALL) */
    467506
    468507                        switch(proto) {
    469508
    470 #if defined(SUPPORT_INET4)
     509#if defined(_IP4_CFG)
    471510
    472511                        case ETHER_TYPE_IP:             /* IP   */
     
    478517                                break;
    479518
    480 #endif  /* of #if defined(SUPPORT_INET4) */
    481 
    482 #if defined(SUPPORT_INET6)
     519#endif  /* of #if defined(_IP4_CFG) */
     520
     521#if defined(_IP6_CFG)
    483522
    484523                        case ETHER_TYPE_IPV6:           /* IPv6 */
     
    486525                                break;
    487526
    488 #endif  /* of #if defined(SUPPORT_INET6) */
     527#endif  /* of #if defined(_IP6_CFG) */
    489528
    490529                        default:
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.cfg

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ethernet.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    9898#endif  /* of #ifndef IF_ETHER_NIC_HDR_ALIGN */
    9999
     100#if defined(__RX)
     101
     102#pragma pack
     103typedef struct t_ether_header {
     104
     105#if IF_ETHER_NIC_HDR_ALIGN != 0
     106
     107        uint8_t         align[IF_ETHER_NIC_HDR_ALIGN];  /* アライン調整 */
     108
     109#endif  /* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */
     110
     111        uint8_t         dhost[ETHER_ADDR_LEN];
     112        uint8_t         shost[ETHER_ADDR_LEN];
     113        uint16_t        type;
     114        } T_ETHER_HDR;
     115#pragma packoption
     116
     117#elif defined(TOPPERS_S810_CLG3_85)     /* of #if defined(__RX) */
     118
     119typedef struct t_ether_header {
     120
     121#if IF_ETHER_NIC_HDR_ALIGN != 0
     122
     123        uint8_t         align[IF_ETHER_NIC_HDR_ALIGN];  /* アライン調整 */
     124
     125#endif  /* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */
     126
     127        uint8_t         dhost[ETHER_ADDR_LEN];
     128        uint8_t         shost[ETHER_ADDR_LEN];
     129        uint16_t        type;
     130        } T_ETHER_HDR;
     131
     132#else   /* of #if defined(__RX) */
     133
    100134typedef struct t_ether_header {
    101135
     
    111145        } __attribute__((packed, aligned(2)))T_ETHER_HDR;
    112146
     147#endif  /* of #if defined(__RX) */
     148
    113149#define GET_ETHER_HDR(nbuf)             ((T_ETHER_HDR*)((nbuf)->buf))
    114150
     
    140176#define IF_HDR_ALIGN            2                       /* ヘッダのアライン単位                           */
    141177#define IF_MTU                  1500                    /* インタフェースの MTU                         */
     178#define IF_MIN_LEN              ETHER_MIN_LEN           /* インターフェースフレームの最短長             */
    142179
    143180#define IF_OUTPUT(o,d,g,t)      ether_output(o,d,g,t)   /* インタフェースの出力関数                 */
     
    148185                                                        /* ソフトウェア情報から MAC アドレスを取り出す     */
    149186#define IF_GET_IFNET()          ether_get_ifnet()       /* ネットワークインタフェース構造体を返す。         */
    150 #define IF_TYPE                 IFT_ETHER               /* インターフェースの型                           */
     187#define IF_TYPE                 IFT_ETHER               /* インタフェースの型                            */
     188#define IF_SRAND()              ether_srand()   /* インタフェースの乱数初期値                        */
    151189
    152190/* IPv4 関係 */
    153191
    154 #define IF_PROTO_IP             ETHER_TYPE_IP           /* インタフェースの IP プロトコル指定          */
     192#define IF_PROTO_IP             ETHER_TYPE_IP           /* インタフェースの IPv4 プロトコル指定                */
    155193#define IF_PROTO_ARP            ETHER_TYPE_ARP          /* インタフェースの ARP プロトコル指定         */
    156194
     
    160198#define IF_MADDR_INIT           { { { 0, 0, 0, 0, 0, 0 } }, { { 0, 0, 0, 0, 0, 0 } } }
    161199                                                        /* インタフェースのマルチキャストアドレス配列の初期化    */
    162 #define IF_PROTO_IPV6           ETHER_TYPE_IPV6         /* インタフェースの IP プロトコル指定                  */
     200#define IF_PROTO_IPV6           ETHER_TYPE_IPV6         /* インタフェースの IPv6 プロトコル指定                        */
    163201#define IF_ADDMULTI(s)          IF_ETHER_NIC_ADDMULTI(s)
    164202                                                        /* マルチキャストアドレスの登録                               */
     
    215253        T_IF_ADDR               ifaddr;                 /* ネットワークインタフェースのアドレス   */
    216254        uint16_t                timer;                  /* 送信タイムアウト                     */
    217         T_IF_ETHER_NIC_SOFTC    *sc;    /* ディバイス依存のソフトウェア情報     */
     255        T_IF_ETHER_NIC_SOFTC    *sc;                    /* ディバイス依存のソフトウェア情報     */
    218256        ID                      semid_txb_ready;        /* 送信セマフォ                               */
    219257        ID                      semid_rxb_ready;        /* 受信セマフォ                               */
    220258
    221 #ifdef SUPPORT_INET6
     259#ifdef _IP6_CFG
    222260
    223261        T_IF_ADDR       maddrs[MAX_IF_MADDR_CNT];       /* マルチキャストアドレスリスト       */
    224262
    225 #endif  /* of #ifdef SUPPORT_INET6 */
     263#endif  /* of #ifdef _IP6_CFG */
    226264        };
    227265
     
    231269#define IF_FLAG_LINK_UP                 0x10U
    232270
    233 #ifdef SUPPORT_INET6
     271/*
     272 *  変数
     273 */
     274
     275#ifdef ETHER_CFG_COLLECT_ADDR
     276
     277T_ETHER_ADDR ether_collect_addr;
     278
     279#endif  /* of #ifdef ETHER_CFG_COLLECT_ADDR */
     280
     281/*
     282 *  関数
     283 */
     284
     285#ifdef _IP6_CFG
    234286
    235287/* 前方参照 */
     
    243295#endif  /* of #ifndef T_IN6_ADDR_DEFINED */
    244296
    245 /*
    246  *  関数
    247  */
    248 
    249 extern ER ether_in6_resolve_multicast(T_ETHER_ADDR *ifaddr, T_IN6_ADDR *maddr);
    250 
    251 #endif  /* of #ifdef SUPPORT_INET6 */
    252 
    253 /*
    254  *  関数
    255  */
     297extern ER ether_in6_resolve_multicast(T_ETHER_ADDR *ifaddr, const T_IN6_ADDR *maddr);
     298
     299#endif  /* of #ifdef _IP6_CFG */
    256300
    257301extern T_IFNET *ether_get_ifnet (void);
    258 extern ER ether_output (T_NET_BUF *data, void *dst, T_IF_ADDR *gw, TMO tmout);
     302extern ER ether_output (T_NET_BUF *data, const void *dst, T_IF_ADDR *gw, TMO tmout);
    259303extern ER ether_raw_output (T_NET_BUF *data, TMO tmout);
     304extern uint32_t ether_srand (void);
    260305
    261306/** Function prototype for netif status- or link-callback functions. */
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    8686
    8787#include <net/if.h>
     88#include <net/if_ppp.h>
     89#include <net/if_loop.h>
    8890#include <net/ethernet.h>
    8991#include <net/if_arp.h>
    9092#include <net/net.h>
     93#include <net/net_endian.h>
    9194#include <net/net_timer.h>
     95
     96#include <netinet/in.h>
     97#include <netinet/in_var.h>
    9298
    9399#include <netinet6/in6.h>
    94100#include <netinet6/in6_var.h>
    95101
    96 #include <net/if6_var.h>
     102#include <net/if_var.h>
    97103
    98104#ifdef SUPPORT_ETHER
     
    133139        }
    134140
    135 #ifdef SUPPORT_INET6
     141#endif /* of #ifdef SUPPORT_ETHER */
     142
     143#ifdef _IP6_CFG
    136144
    137145/*
     
    142150if_addmulti (T_IFNET *ifp, void *maddr, uint8_t type)
    143151{
     152#if MAX_IF_MADDR_CNT > 0
     153
    144154        T_IF_ADDR       llmaddr;
    145155        ER              error = E_OK;
     
    152162
    153163                /* IPv6 マルチキャストアドレスを登録する。*/
    154                 ifp->in_maddrs[ix] = *(T_IN6_ADDR*)maddr;
     164                ifp->in6_maddrs[ix] = *(T_IN6_ADDR*)maddr;
    155165
    156166                /* インタフェースのアドレスに変換し、登録する。*/
     
    162172
    163173        return IF_ADDMULTI(ifp->ic);
     174
     175#else   /* of #if MAX_IF_MADDR_CNT > 0 */
     176
     177        return E_OK;
     178
     179#endif  /* of #if MAX_IF_MADDR_CNT > 0 */
    164180        }
    165181
    166 #endif  /* of #ifdef SUPPORT_INET6 */
    167 
    168 #endif /* of #ifdef SUPPORT_ETHER */
     182#endif  /* of #ifdef _IP6_CFG */
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if6_var.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    6868#define _IF6_VAR_H_
    6969
    70 #ifdef SUPPORT_INET6
    71 
    7270/*
    7371 *  ネットワークインタフェース構造体
    7472 */
    7573
     74#if defined(_IP6_CFG)
     75
     76#if defined(_IP4_CFG)
     77
    7678struct t_ifnet {
    7779        T_IF_SOFTC      *ic;            /* ネットワークインタフェースのソフトウェア情報       */
    78         T_IN6_IFADDR    in_ifaddrs[NUM_IN6_IFADDR_ENTRY];
     80        T_IN6_IFADDR    in6_ifaddrs[NUM_IN6_IFADDR_ENTRY];
    7981                                        /* IPv6 アドレス情報                          */
    80         T_IN6_ADDR      in_maddrs [MAX_IN6_MADDR_CNT];
     82        T_IN6_ADDR      in6_maddrs [MAX_IN6_MADDR_CNT];
    8183                                        /* マルチキャスト IPv6 アドレス                    */
     84        T_IN4_IFADDR    in4_ifaddr;     /* IPv4 アドレス情報                          */
     85        ether_status_callback_fn link_callback;
    8286        uint8_t         flags;          /* フラグ                                  */
    8387        };
     88
     89#else   /* of #if defined(_IP4_CFG) */
     90
     91struct t_ifnet {
     92        T_IF_SOFTC      *ic;            /* ネットワークインタフェースのソフトウェア情報       */
     93        T_IN6_IFADDR    in6_ifaddrs[NUM_IN6_IFADDR_ENTRY];
     94                                        /* IPv6 アドレス情報                          */
     95        T_IN6_ADDR      in6_maddrs [MAX_IN6_MADDR_CNT];
     96                                        /* マルチキャスト IPv6 アドレス                    */
     97        ether_status_callback_fn link_callback;
     98        uint8_t         flags;          /* フラグ                                  */
     99        };
     100
     101#endif  /* of #if defined(_IP4_CFG) */
     102
     103#else   /* of #if defined(_IP6_CFG) */
     104
     105#if defined(_IP4_CFG)
     106
     107struct t_ifnet {
     108        T_IF_SOFTC      *ic;            /* ネットワークインタフェースのソフトウェア情報       */
     109        T_IN4_IFADDR    in4_ifaddr;     /* IPv4 アドレス情報                          */
     110        ether_status_callback_fn link_callback;
     111        uint8_t         flags;          /* フラグ                                  */
     112        };
     113
     114#endif  /* of #if defined(_IP4_CFG) */
     115
     116#endif  /* of #if defined(_IP6_CFG) */
    84117
    85118#ifndef T_IFNET_DEFINED
     
    90123
    91124#endif  /* of #ifndef T_IFNET_DEFINED */
     125
     126#if defined(_IP6_CFG)
    92127
    93128/*
     
    103138extern ER if_addmulti (T_IFNET *ifp, void *maddr, uint8_t type);
    104139
    105 #endif  /* of #ifdef SUPPORT_INET6 */
     140#endif  /* of #if defined(_IP6_CFG) */
    106141
    107142#endif  /* of #ifndef _IF6_VAR_H_ */
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_arp.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_llc.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    9191#include <net/if_loop.h>
    9292#include <net/net.h>
     93#include <net/net_endian.h>
    9394#include <net/net_buf.h>
    9495#include <net/net_count.h>
     
    9899#include <netinet/ip.h>
    99100#include <netinet/ip_var.h>
    100 #include <netinet/ip6.h>
    101 #include <netinet6/ip6_var.h>
    102101#include <netinet/tcp.h>
    103102#include <netinet/udp.h>
    104103
    105104#include <net/if_var.h>
    106 #include <net/if6_var.h>
    107105
    108106#ifdef SUPPORT_LOOP
     
    124122/* ネットワークインタフェース構造体 */
    125123
    126 #if defined(SUPPORT_INET4)
     124#if defined(_IP6_CFG)
     125
     126static T_IFNET loop_ifnet = {
     127        NULL,                   /* ネットワークインタフェースのソフトウェア情報       */
     128        {},                     /* IPv6 アドレス情報                          */
     129        {},                     /* マルチキャスト IPv6 アドレス                    */
     130        };
     131
     132#elif defined(_IP4_CFG) /* of #if defined(_IP6_CFG) */
    127133
    128134static T_IFNET loop_ifnet = {
     
    134140        };
    135141
    136 #endif  /* of #if defined(SUPPORT_INET4) */
    137 
    138 #if defined(SUPPORT_INET6)
    139 
    140 static T_IFNET loop_ifnet = {
    141         NULL,                   /* ネットワークインタフェースのソフトウェア情報       */
    142         {},                     /* IPv6 アドレス情報                          */
    143         {},                     /* マルチキャスト IPv6 アドレス                    */
    144         };
    145 
    146 #endif  /* of #if defined(SUPPORT_INET6) */
     142#endif  /* of #if defined(_IP6_CFG) */
    147143
    148144/*
     
    213209                        NET_COUNT_LOOP(net_count_loop.in_packets, 1);
    214210
    215 #if defined(SUPPORT_INET4)
     211#if defined(_IP4_CFG)
    216212
    217213                        /* IPv4 入力関数を呼び出す */
     
    219215                                ip_input(input);
    220216
    221 #endif  /* of #if defined(SUPPORT_INET4) */
    222 
    223 #if defined(SUPPORT_INET6)
     217#endif  /* of #if defined(_IP4_CFG) */
     218
     219#if defined(_IP6_CFG)
    224220
    225221                        /* IPv6 入力関数を呼び出す */
     
    227223                                ip6_input(input);
    228224
    229 #endif  /* of #if defined(SUPPORT_INET6) */
     225#endif  /* of #if defined(_IP6_CFG) */
    230226
    231227                        }
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.cfg

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_loop.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    9191#define IF_SET_PROTO(b,p)                               /* インタフェースのプロトコル設定関数    */
    9292#define IF_GET_IFNET()          loop_get_ifnet()        /* ネットワークインタフェース構造体を返す。         */
     93#define IF_SRAND()              (0)                     /* インターフェースの乱数初期値                       */
    9394
    9495/* IPv4 関係 */
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_ppp.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    5959
    6060/*
     61 *  PPP アドレスの定義(ダミー)
     62 */
     63
     64typedef struct t_ppp_addr {
     65        uint8_t         lladdr[0];
     66        } T_PPP_ADDR;
     67
     68/*
    6169 *  インタフェースの選択マクロ
    6270 */
    6371
    64 #define T_IF_HDR                T_PPP_HDR       /* インタフェースのヘッダ                  */
    65 #define IF_HDR_ALIGN            2               /* ヘッダのアライン単位                   */
    66 #define IF_MTU                  DEF_PPP_MTU     /* インタフェースの MTU                 */
    67                                                 /* インタフェースの IPv4 アドレス           */
    68 #define IF_PROTO_IP             PPP_IP          /* インタフェースの IP プロトコル指定  */
     72#define T_IF_HDR                T_PPP_HDR               /* インタフェースのヘッダ          */
     73#define T_IF_ADDR               T_PPP_ADDR              /* インタフェースのアドレス                 */
     74#define IF_HDR_ALIGN            2                       /* ヘッダのアライン単位                   */
     75#define IF_MTU                  DEF_PPP_MTU             /* インタフェースの MTU                 */
    6976
    7077#define IF_OUTPUT(o,d,g,t)      ppp_output(o,t)         /* インタフェースの出力関数         */
    7178#define IF_RAW_OUTPUT(o,t)      ppp_output(o,t)         /* インタフェースの出力関数、アドレス解決無し*/
     79#define IF_SET_PROTO(b,p)       (*GET_PPP_HDR(b) = htons(p))
    7280                                                        /* インタフェースのプロトコル設定関数    */
    73 #define IF_SET_PROTO(b,p)       (*GET_PPP_HDR(b) = htons(p))
    74 #define IF_GET_IFNET()          ppp_get_ifnet()         /* ネットワークインタフェース構造体を返す。         */
     81#define IF_SOFTC_TO_IFADDR(s)   ((T_IF_ADDR*)(s)->ifaddr.lladdr)
     82                                                        /* ソフトウェア情報から PPP アドレスを取り出す     */
     83#define IF_GET_IFNET()          ppp_get_ifnet()         /* ネットワークインタフェース構造体を返す。*/
     84#define IF_SRAND()              (0)                     /* インターフェースの乱数初期値                       */
     85
     86/* IPv4 関係 */
     87
     88#define IF_PROTO_IP             PPP_IP                  /* インタフェースの IPv4 プロトコル指定        */
     89
     90/* IPv6 関係 */
     91
     92#define MAX_IF_MADDR_CNT        0                       /* インタフェースのマルチキャストアドレス配列の最大サイズ*/
     93#define IF_PROTO_IPV6           PPP_IPV6                /* インタフェースの IPv6 プロトコル指定        */
     94#define IF_IN6_NEED_CACHE(i)    (false)                 /* 近隣探索キャッシュを使用する。      */
     95#define IF_IN6_IFID(i,a)        get_rand_ifid(i,a)      /* インタフェース識別子の設定                */
     96#define IF_IN6_RESOLVE_MULTICAST(i,m)   {}              /* インタフェースのマルチキャストアドレスへの変換              */
    7597
    7698/*
     
    120142 */
    121143
    122 struct t_if_softc { };
     144struct t_if_softc {
     145        T_IF_ADDR       ifaddr;         /* ネットワークインタフェースのアドレス   */
     146        };
    123147
    124148/*
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_types.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/if_var.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    6868#define _IF_VAR_H_
    6969
    70 #if defined(SUPPORT_INET4)
    71 
    72 /*
    73  *  ネットワークインタフェース構造体
    74  */
    75 
    76 struct t_ifnet {
    77         T_IF_SOFTC      *ic;            /* ネットワークインタフェースのソフトウェア情報       */
    78         T_IN4_IFADDR    in_ifaddr;      /* IPv4 アドレス情報                          */
    79         ether_status_callback_fn link_callback;
    80         uint8_t         flags;          /* フラグ                                  */
    81         };
    82 
    83 #ifndef T_IFNET_DEFINED
    84 
    85 typedef struct t_ifnet T_IFNET;
    86 
    87 #define T_IFNET_DEFINED
    88 
    89 #endif  /* of #ifndef T_IFNET_DEFINED */
    90 
    91 #endif  /* of #if defined(SUPPORT_INET4) */
     70#include <net/if6_var.h>
    9271
    9372#ifdef SUPPORT_MIB
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.cfg

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    4141
    4242CRE_TSK(NET_TIMER_TASK, {
    43                 TA_NULL,
     43                TA_HLNG,
    4444                0,
    4545                net_timer_task,
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    6969
    7070/*
    71  *  バイトオーダの定義
    72  */
    73 
    74 #define _NET_CFG_LITTLE_ENDIAN  1234
    75 #define _NET_CFG_BIG_ENDIAN     4321
    76 
    77 #ifdef TARGET_KERNEL_ASP
    78 
    79 #if defined(SIL_ENDIAN_LITTLE)
    80 
    81 #define _NET_CFG_BYTE_ORDER     _NET_CFG_LITTLE_ENDIAN
    82 
    83 #elif defined(SIL_ENDIAN_BIG)
    84 
    85 #define _NET_CFG_BYTE_ORDER     _NET_CFG_BIG_ENDIAN
    86 
    87 #else   /* of #if defined(SIL_ENDIAN_BIG) */
    88 
    89 #error "SIL_ENDIAN expected."
    90 
    91 #endif  /* of #if defined(SIL_ENDIAN_BIG) */
    92 
    93 #endif  /* of #ifdef TARGET_KERNEL_ASP */
    94 
    95 #ifdef TARGET_KERNEL_JSP
    96 
    97 #if SIL_ENDIAN == SIL_ENDIAN_LITTLE
    98 
    99 #define _NET_CFG_BYTE_ORDER     _NET_CFG_LITTLE_ENDIAN
    100 
    101 #elif SIL_ENDIAN == SIL_ENDIAN_BIG      /* of #if SIL_ENDIAN == SIL_ENDIAN_LITTLE */
    102 
    103 #define _NET_CFG_BYTE_ORDER     _NET_CFG_BIG_ENDIAN
    104 
    105 #else   /* of #if SIL_ENDIAN == SIL_ENDIAN_LITTLE */
    106 
    107 #error "SIL_ENDIAN expected."
    108 
    109 #endif  /* of #if SIL_ENDIAN == SIL_ENDIAN_LITTLE */
    110 
    111 #endif  /* of #ifdef TARGET_KERNEL_JSP */
    112 
    113 /*
    114  *  バイトオーダ変換の定義
    115  */
    116 
    117 #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
    118 
    119 #define ntohs(n)                ((uint16_t)n)
    120 #define htons(h)                ((uint16_t)h)
    121 #define ntohl(n)                ((uint32_t)n)
    122 #define htonl(h)                ((uint32_t)h)
    123 
    124 #define NTOHS(n)
    125 #define HTONS(h)
    126 #define NTOHL(n)
    127 #define HTONL(h)
    128 
    129 /*
    130  *  注意: IPヘッダ以降は、4 バイト境界にアラインされている事を
    131  *        前提としているが、4 バイト境界でアクセスする
    132  *        プロセッサで、ネットワーク側のデータが、4 バイト境界にアライン
    133  *        されていない場合は、ntoahl、ahtonl、nahcmpl を使用すること。
    134  */
    135 
    136 #define ntoahl(h,n)             memcpy((uint8_t*)&(h),(n),4)
    137 #define ahtonl(n,h)             memcpy((n),(uint8_t*)&(h),4)
    138 
    139 #define nahcmpl(n,h)            memcmp((n),(uint8_t*)&(h),4)
    140 
    141 #elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
    142 
    143 #ifndef NET_REV_ENDIAN_HWORD
    144 
    145 #define NET_REV_ENDIAN_HWORD(d) ((uint16_t)((((uint16_t)(d)&0xff)<<8)|(((uint16_t)(d)>>8)&0xff)))
    146 
    147 #endif  /* of #ifndef NET_REV_ENDIAN_HWORD */
    148 
    149 #ifndef NET_REV_ENDIAN_WORD
    150 
    151 #define NET_REV_ENDIAN_WORD(d)  ((uint32_t)((((uint32_t)(d)&0xff)<<24)|(((uint32_t)(d)&0xff00)<<8)| \
    152                                             (((uint32_t)(d)>>8)&0xff00)|(((uint32_t)(d)>>24)&0xff)))
    153 
    154 #endif  /* of #ifndef NET_REV_ENDIAN_WORD */
    155 
    156 #define ntohs(n)                NET_REV_ENDIAN_HWORD(n)
    157 #define htons(h)                NET_REV_ENDIAN_HWORD(h)
    158 #define ntohl(n)                NET_REV_ENDIAN_WORD(n)
    159 #define htonl(h)                NET_REV_ENDIAN_WORD(h)
    160 
    161 #define NTOHS(n)                ((n)=NET_REV_ENDIAN_HWORD(n))
    162 #define HTONS(h)                ((h)=NET_REV_ENDIAN_HWORD(h))
    163 #define NTOHL(n)                ((n)=NET_REV_ENDIAN_WORD(n))
    164 #define HTONL(h)                ((h)=NET_REV_ENDIAN_WORD(h))
    165 
    166 /*
    167  *  注意: IPヘッダ以降は、4 バイト境界にアラインされている事を
    168  *        前提としているが、4 バイト境界でアクセスする
    169  *        プロセッサで、ネットワーク側のデータが、4 バイト境界にアライン
    170  *        されていない場合は、ntoahl、ahtonl、nahcmpl を使用すること。
    171  */
    172 
    173 #ifndef _MACRO_ONLY
    174 
    175 extern void rev_memcpy_word (uint8_t *dst, uint8_t *src);
    176 extern int  rev_memcmp_word (uint8_t *data1, uint8_t *data2);
    177 
    178 #endif  /* of #ifndef _MACRO_ONLY */
    179 
    180 #define ntoahl(h,n)             rev_memcpy_word((uint8_t*)&(h),(n))
    181 #define ahtonl(n,h)             rev_memcpy_word((n),(uint8_t*)&(h))
    182 #define nahcmpl(n,h)            rev_memcmp_word((n),(uint8_t*)&(h))
    183 
    184 #else   /* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
    185 
    186 #error "_NET_CFG_BYTE_ORDER expected."
    187 
    188 #endif  /* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
    189 
    190 /*
    19171 *  プロトコルを識別するフラグに関する定義
    19272 *
     
    19979#define PROTO_FLG_PPP_LCP       ULONG_C(0x00000008)     /* ppp_lcp.c    */
    20080#define PROTO_FLG_PPP_IPCP      ULONG_C(0x00000010)     /* ppp_ipcp.c   */
    201 #define PROTO_FLG_PPP_CCP       ULONG_C(0x00000020)     /* ppp_ccp.c    */
    202 #define PROTO_FLG_PPP_PAP       ULONG_C(0x00000040)     /* ppp_upap.c   */
    203 #define PROTO_FLG_PPP_MODEM     ULONG_C(0x00000080)     /* ppp_modem.c  */
    204 #define PROTO_FLG_PPP           ULONG_C(0x00000100)     /* ppp.c        */
     81#define PROTO_FLG_PPP_IPV6CP    ULONG_C(0x00000020)     /* ppp_ipv6cp.c */
     82#define PROTO_FLG_PPP_CCP       ULONG_C(0x00000040)     /* ppp_ccp.c    */
     83#define PROTO_FLG_PPP_PAP       ULONG_C(0x00000080)     /* ppp_upap.c   */
     84#define PROTO_FLG_PPP_MODEM     ULONG_C(0x00000100)     /* ppp_modem.c  */
     85#define PROTO_FLG_PPP           ULONG_C(0x00000200)     /* ppp.c        */
    20586
    20687#define PROTO_FLG_ETHER_NIC     ULONG_C(0x00000001)     /* if_??.c      */
     
    21697#define PROTO_FLG_IP4           ULONG_C(0x00010000)     /* ip_*.c       */
    21798#define PROTO_FLG_ICMP4         ULONG_C(0x00040000)     /* ip_icmp.c    */
     99#define PROTO_FLG_IGMP          ULONG_C(0x00080000)     /* ip_igmp.c    */
    218100
    219101#define PROTO_FLG_IP6           ULONG_C(0x00100000)     /* ip6_*.c      */
     
    236118#define AT_INET6                UINT_C(0x20)            /* IPv6 アドレス    */
    237119
     120/*
     121 *  IPv4 UDPオプションの定義
     122 */
     123
     124#define IP_MULTICAST_IF    32
     125#define IP_MULTICAST_TTL   33
     126#define IP_MULTICAST_LOOP  34
     127#define IP_ADD_MEMBERSHIP  35
     128#define IP_DROP_MEMBERSHIP 36
     129#define IP_MSFILTER        41
     130
    238131#if !defined(TOPPERS_MACRO_ONLY) && !defined(_MACRO_ONLY)
    239132
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_asp.cfg

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    5050                TA_TFIFO,
    5151                NUM_MPF_NET_BUF_CSEG,
    52                 sizeof(T_NET_BUF_CSEG)
     52                sizeof(T_NET_BUF_CSEG),
     53                NULL,
     54                NULL
    5355                });
    5456#endif  /* of #if defined(NUM_MPF_NET_BUF_CSEG) && NUM_MPF_NET_BUF_CSEG > 0 */
     
    5759CRE_MPF(MPF_NET_BUF_64, {
    5860                TA_TFIFO, NUM_MPF_NET_BUF_64,
    59                 sizeof(T_NET_BUF_64)
     61                sizeof(T_NET_BUF_64),
     62                NULL,
     63                NULL
    6064                });
    6165#endif  /* of #if defined(NUM_MPF_NET_BUF_64) && NUM_MPF_NET_BUF_64 > 0 */
     
    6569                TA_TFIFO,
    6670                NUM_MPF_NET_BUF_128,
    67                 sizeof(T_NET_BUF_128)
     71                sizeof(T_NET_BUF_128),
     72                NULL,
     73                NULL
    6874                });
    6975#endif  /* of #if defined(NUM_MPF_NET_BUF_128) && NUM_MPF_NET_BUF_128 > 0 */
     
    7379                TA_TFIFO,
    7480                NUM_MPF_NET_BUF_256,
    75                 sizeof(T_NET_BUF_256)
     81                sizeof(T_NET_BUF_256),
     82                NULL,
     83                NULL
    7684                });
    7785#endif  /* of #if defined(NUM_MPF_NET_BUF_256) && NUM_MPF_NET_BUF_256 > 0 */
     
    8189                TA_TFIFO,
    8290                NUM_MPF_NET_BUF_512,
    83                 sizeof(T_NET_BUF_512)
     91                sizeof(T_NET_BUF_512),
     92                NULL,
     93                NULL
    8494                });
    8595#endif  /* of #if defined(NUM_MPF_NET_BUF_512) && NUM_MPF_NET_BUF_512 > 0 */
     
    8999                TA_TFIFO,
    90100                NUM_MPF_NET_BUF_IP_MSS,
    91                 sizeof(T_NET_BUF_IP_MSS)
     101                sizeof(T_NET_BUF_IP_MSS),
     102                NULL,
     103                NULL
    92104                });
    93105#endif  /* of #if defined(NUM_MPF_NET_BUF_IP_MSS) && NUM_MPF_NET_BUF_IP_MSS > 0 */
     
    97109                TA_TFIFO,
    98110                NUM_MPF_NET_BUF_1024,
    99                 sizeof(T_NET_BUF_1024)
     111                sizeof(T_NET_BUF_1024),
     112                NULL,
     113                NULL
    100114                });
    101115#endif  /* of #if defined(NUM_MPF_NET_BUF_1024) && NUM_MPF_NET_BUF_1024 > 0 */
     
    105119                TA_TFIFO,
    106120                NUM_MPF_NET_BUF_IPV6_MMTU,
    107                 sizeof(T_NET_BUF_IPV6_MMTU)
     121                sizeof(T_NET_BUF_IPV6_MMTU),
     122                NULL,
     123                NULL
    108124                });
    109125#endif  /* of #if defined(NUM_MPF_NET_BUF_IPV6_MMTU) && NUM_MPF_NET_BUF_IPV6_MMTU > 0 */
     
    113129                TA_TFIFO,
    114130                NUM_MPF_NET_BUF_IF_PDU,
    115                 sizeof(T_NET_BUF_IF_PDU)
     131                sizeof(T_NET_BUF_IF_PDU),
     132                NULL,
     133                NULL
    116134                });
    117135#endif  /* of #if defined(NUM_MPF_NET_BUF_IF_PDU) && NUM_MPF_NET_BUF_IF_PDU > 0 */
    118136
     137#if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0
     138
     139CRE_MPF(MPF_NET_BUF_REASSM, {
     140                TA_TFIFO,
     141                NUM_MPF_NET_BUF6_REASSM,
     142                sizeof(T_NET_BUF6_REASSM),
     143                NULL,
     144                NULL
     145                });
     146
     147#else /* of #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0 */
     148
    119149#if defined(NUM_MPF_NET_BUF4_REASSM) && NUM_MPF_NET_BUF4_REASSM > 0
     150
    120151CRE_MPF(MPF_NET_BUF_REASSM, {
    121152                TA_TFIFO,
    122153                NUM_MPF_NET_BUF4_REASSM,
    123                 sizeof(T_NET_BUF4_REASSM)
     154                sizeof(T_NET_BUF4_REASSM),
     155                NULL,
     156                NULL
    124157                });
    125158#endif  /* of #if defined(NUM_MPF_NET_BUF4_REASSM) && NUM_MPF_NET_BUF4_REASSM > 0 */
    126159
    127 #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0
    128 CRE_MPF(MPF_NET_BUF_REASSM, {
    129                 TA_TFIFO,
    130                 NUM_MPF_NET_BUF6_REASSM,
    131                 sizeof(T_NET_BUF6_REASSM)
    132                 });
    133160#endif  /* of #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0 */
    134161
     
    137164                TA_TFIFO,
    138165                NUM_MPF_NET_BUF6_65536,
    139                 sizeof(T_NET_BUF6_65536)
     166                sizeof(T_NET_BUF6_65536),
     167                NULL,
     168                NULL
    140169                });
    141170#endif  /* of #if defined(NUM_MPF_NET_BUF6_65536) && NUM_MPF_NET_BUF6_65536 > 0 */
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    5757#include <net/ethernet.h>
    5858#include <net/net.h>
     59#include <net/net_endian.h>
    5960#include <net/net_buf.h>
    6061#include <net/net_count.h>
     
    6263#include <netinet/in.h>
    6364#include <netinet/in_var.h>
    64 #include <netinet6/in6.h>
    6565#include <netinet/ip.h>
    6666#include <netinet/ip_var.h>
    67 #include <netinet/ip6.h>
    68 #include <netinet6/ip6_var.h>
    6967#include <netinet/tcp.h>
    70 #include <netinet/tcp_timer.h>
    7168#include <netinet/tcp_var.h>
    7269
     
    9895
    9996#if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0
     97
    10098        {
    10199                MPF_NET_BUF_REASSM,
     
    109107
    110108                },
    111 #endif  /* of #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0 */
     109
     110#else   /* of #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0 */
    112111
    113112#if defined(NUM_MPF_NET_BUF4_REASSM) && NUM_MPF_NET_BUF4_REASSM > 0
     113
    114114        {
    115115                MPF_NET_BUF_REASSM,
     
    123123
    124124                },
     125
    125126#endif  /* of #if defined(NUM_MPF_NET_BUF4_REASSM) && NUM_MPF_NET_BUF4_REASSM > 0 */
     127
     128#endif  /* of #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0 */
    126129
    127130#if defined(NUM_MPF_NET_BUF_IF_PDU) && NUM_MPF_NET_BUF_IF_PDU > 0
     
    223226#endif  /* of #if defined(NUM_MPF_NET_BUF_128) && NUM_MPF_NET_BUF_128 > 0 */
    224227
    225 #if defined(SUPPORT_INET4)
     228#if defined(_IP4_CFG)
    226229
    227230#if defined(NUM_MPF_NET_BUF_64) && NUM_MPF_NET_BUF_64 > 0
     
    239242#endif  /* of #if defined(NUM_MPF_NET_BUF_64) && NUM_MPF_NET_BUF_64 > 0 */
    240243
    241 #endif  /* of #if defined(SUPPORT_INET4) */
     244#endif  /* of #if defined(_IP4_CFG) */
    242245
    243246#if defined(NUM_MPF_NET_BUF_CSEG) && NUM_MPF_NET_BUF_CSEG > 0
     
    308311                        (*buf)->len   = (uint16_t)minlen;
    309312                        (*buf)->flags = 0;
     313
     314#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
    310315                        NET_COUNT_NET_BUF(net_buf_table[ix].allocs, 1);
     316                        net_buf_table[ix].busies ++;
     317#endif
    311318                        return error;
    312319                        }
     
    316323                }
    317324
    318         syslog(LOG_WARNING, "[NET BUF] busy, index=%d, len=%4d.", (uint16_t)req_ix, minlen);
     325        syslog(LOG_WARNING, "[BUF] busy, up   index:%d,%d[%4d], len:%4d.",
     326                            (uint16_t)req_ix, ix, net_buf_table[req_ix].size, minlen);
    319327        *buf = NULL;
    320328        NET_COUNT_NET_BUF(net_buf_table[req_ix].errors, 1);
     
    346354                        (*buf)->len   = net_buf_table[ix].size;
    347355                        (*buf)->flags = 0;
     356
     357#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
    348358                        NET_COUNT_NET_BUF(net_buf_table[ix].allocs, 1);
     359                        net_buf_table[ix].busies ++;
     360#endif
    349361                        return error;
    350362                        }
     
    354366                }
    355367
    356         syslog(LOG_WARNING, "[NET BUF] busy, index=%d, len=%4d.", (uint16_t)req_ix, maxlen);
     368        syslog(LOG_WARNING, "[BUF] busy, down index:%d,%d[%4d], len:%4d.",
     369                            (uint16_t)req_ix, ix, net_buf_table[req_ix].size, minlen);
    357370        *buf = NULL;
    358371        NET_COUNT_NET_BUF(net_buf_table[req_ix].errors, 1);
     
    380393                }
    381394
     395#if defined(SUPPORT_TCP) && defined(TCP_CFG_SWBUF_CSAVE)
     396
    382397        /* TCP で予約したネットワークバッファを取り出す。*/
    383398        if ((nbatr & NBA_RESERVE_TCP) != 0) {
     
    386401                        }
    387402                }
     403
     404#endif  /* of #if defined(SUPPORT_TCP) && defined(TCP_CFG_SWBUF_CSAVE) */
    388405
    389406        if ((nbatr & NBA_SEARCH_DESCENT) != 0)
     
    423440        else {
    424441
     442#if defined(SUPPORT_TCP) && defined(TCP_CFG_SWBUF_CSAVE)
     443
    425444                /* TCP で、ネットワークバッファを予約する。*/
    426445                if (TCP_PUSH_RES_NBUF(buf) == NULL)
    427446                        return E_OK;
    428447
     448#endif  /* of #if defined(SUPPORT_TCP) && defined(TCP_CFG_SWBUF_CSAVE) */
     449
    429450                /* 固定メモリプールに返す。*/
    430                 if ((error = rel_mpf((ID)net_buf_table[buf->idix].index, buf)) != E_OK)
     451
     452#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
     453                net_buf_table[buf->idix].busies --;
     454#endif
     455                if ((error = rel_mpf((ID)net_buf_table[buf->idix].index, buf)) != E_OK) {
    431456                        syslog(LOG_WARNING, "[NET BUF] %s, ID=%d.", itron_strerror(error), buf->idix);
     457                        }
    432458                }
    433459        return error;
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_buf.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    6161        uint8_t         halign[4 - IF_HDR_ALIGN];
    6262#endif
    63         uint8_t         buf[4]; /* バッファ本体               */
     63        uint8_t         buf[IF_MIN_LEN];        /* バッファ本体 */
    6464        };
    6565
     
    7171
    7272#endif  /* of #ifndef T_NET_BUF_DEFINED */
     73
    7374/*
    7475 *  64 オクテット
     
    159160 *  ネットワークインタフェースの最大 PDU サイズ
    160161 */
     162
     163#if defined(IF_PDU_SIZE)
    161164
    162165typedef struct t_net_buf_if_pdu {
     
    177180        } T_NET_BUF_IF_PDU;
    178181
     182#endif  /* of #if defined(IF_PDU_SIZE) */
     183
    179184/*
    180185 *  ネットワークバッファ表
     
    189194
    190195        ulong_t         prepares;
     196        ulong_t         busies;
    191197        ulong_t         requests;
    192198        ulong_t         allocs;
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    120120
    121121#include <net/net.h>
     122#include <net/net_endian.h>
    122123#include <net/net_count.h>
    123124
     
    142143#endif  /* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_LCP */
    143144
     145#if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPV6CP
     146
     147T_NET_COUNT_VAL net_count_ppp_ipv6cp_in_octets;
     148T_NET_COUNT_VAL net_count_ppp_ipv6cp_in_packets;
     149
     150#endif  /* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPV6CP */
     151
    144152#if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPCP
    145153
     
    190198#endif  /* of #ifdef SUPPORT_ETHER */
    191199
    192 #if defined(SUPPORT_INET4)
     200#if defined(_IP4_CFG)
    193201
    194202#if NET_COUNT_ENABLE & PROTO_FLG_ARP
     
    210218#endif  /* of #if NET_COUNT_ENABLE & PROTO_FLG_ICMP4 */
    211219
    212 #endif  /* of #if defined(SUPPORT_INET4) */
    213 
    214 #if defined(SUPPORT_INET6)
     220#if NET_COUNT_ENABLE & PROTO_FLG_IGMP
     221
     222T_NET_COUNT     net_count_igmp;
     223
     224#endif  /* of #if NET_COUNT_ENABLE & PROTO_FLG_ICMP4 */
     225
     226#endif  /* of #if defined(_IP4_CFG) */
     227
     228#if defined(_IP6_CFG)
    215229
    216230#if NET_COUNT_ENABLE & PROTO_FLG_IP6
     
    232246#endif  /* of #if NET_COUNT_ENABLE & PROTO_FLG_ND6 */
    233247
    234 #endif  /* of #if defined(SUPPORT_INET6) */
     248#endif  /* of #if defined(_IP6_CFG) */
    235249
    236250#ifdef SUPPORT_TCP
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_count.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    155155#endif  /* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_LCP */
    156156
     157/* PPP IPV6CP */
     158
     159#if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPV6CP
     160
     161#define NET_COUNT_PPP_IPV6CP(v,c)       ((v)+=(c))
     162
     163#ifndef _MACRO_ONLY
     164
     165extern T_NET_COUNT_VAL net_count_ppp_ipv6cp_in_octets;
     166extern T_NET_COUNT_VAL net_count_ppp_ipv6cp_in_packets;
     167
     168#endif  /* of #ifndef _MACRO_ONLY */
     169
     170#else   /* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPV6CP */
     171
     172#define NET_COUNT_PPP_IPV6CP(v,c)
     173
     174#endif  /* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPV6CP */
     175
    157176/* PPP IPCP */
    158177
     
    302321#endif  /* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
    303322
    304 #if defined(SUPPORT_INET4)
     323#if defined(_IP4_CFG)
    305324
    306325/* ARP */
     
    380399#endif  /* of #if NET_COUNT_ENABLE & PROTO_FLG_ICMP4 */
    381400
    382 #endif  /* of #if defined(SUPPORT_INET4) */
    383 
    384 #if defined(SUPPORT_INET6)
     401/* IGMP */
     402
     403#if NET_COUNT_ENABLE & PROTO_FLG_IGMP
     404
     405#define NET_COUNT_IGMP(v,c)     ((v)+=(c))
     406
     407#ifndef _MACRO_ONLY
     408
     409extern T_NET_COUNT      net_count_igmp;
     410
     411#endif  /* of #ifndef _MACRO_ONLY */
     412
     413#else   /* of #if NET_COUNT_ENABLE & PROTO_FLG_IGMP */
     414
     415#define NET_COUNT_IGMP(v,c)
     416
     417#endif  /* of #if NET_COUNT_ENABLE & PROTO_FLG_IGMP */
     418
     419#endif  /* of #if defined(_IP4_CFG) */
     420
     421#if defined(_IP6_CFG)
    385422
    386423/* IPv6 */
     
    472509#endif  /* of #if NET_COUNT_ENABLE & PROTO_FLG_ND6 */
    473510
    474 #endif  /* of #if defined(SUPPORT_INET6) */
     511#endif  /* of #if defined(_IP6_CFG) */
    475512
    476513#ifdef SUPPORT_TCP
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_jsp.cfg

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    127127#endif  /* of #if defined(NUM_MPF_NET_BUF_IF_PDU) && NUM_MPF_NET_BUF_IF_PDU > 0 */
    128128
     129#if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0
     130
     131CRE_MPF(MPF_NET_BUF_REASSM, {
     132                TA_TFIFO,
     133                NUM_MPF_NET_BUF6_REASSM,
     134                sizeof(T_NET_BUF6_REASSM),
     135                NULL
     136                });
     137
     138#else   /* of #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0 */
     139
    129140#if defined(NUM_MPF_NET_BUF4_REASSM) && NUM_MPF_NET_BUF4_REASSM > 0
     141
    130142CRE_MPF(MPF_NET_BUF_REASSM, {
    131143                TA_TFIFO,
     
    134146                NULL
    135147                });
     148
    136149#endif  /* of #if defined(NUM_MPF_NET_BUF4_REASSM) && NUM_MPF_NET_BUF4_REASSM > 0 */
    137150
    138 #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0
    139 CRE_MPF(MPF_NET_BUF_REASSM, {
    140                 TA_TFIFO,
    141                 NUM_MPF_NET_BUF6_REASSM,
    142                 sizeof(T_NET_BUF6_REASSM),
    143                 NULL
    144                 });
    145151#endif  /* of #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0 */
    146152
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_rename.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    4141/* net/ethernet.c */
    4242
     43#define ether_input_task        _tinet_ether_input_task
     44#define ether_get_ifnet         _tinet_ether_get_ifnet
     45#define ether_in6_resolve_multicast     \
     46                                _tinet_ether_in6_resolve_multicast
     47#define ether_srand             _tinet_ether_srand
     48#define ether_output            _tinet_ether_output
     49#define ether_raw_output        _tinet_ether_raw_output
     50#define ether_output_task       _tinet_ether_output_task
     51
    4352#define ether_broad_cast_addr   _tinet_ether_broad_cast_addr
    4453#define ether_ipv4_addr_local   _tinet_ether_ipv4_addr_local
     
    4655                                _tinet_ether_ipv4_addr_local_mask
    4756
    48 #define ether_raw_output        _tinet_ether_raw_output
    49 #define ether_output            _tinet_ether_output
    5057#define ether_in6_ifaddr        _tinet_ether_in6_ifaddr
    5158#define ether_in6_ifaddr_list   _tinet_ether_in6_ifaddr_list
    52 #define ether_in6_resolve_multicast     \
    53                                 _tinet_ether_in6_resolve_multicast
    54 #define ether_input_task        _tinet_ether_input_task
    55 #define ether_get_ifnet         _tinet_ether_get_ifnet
    56 #define ether_output_task       _tinet_ether_output_task
    5759
    5860/* net/if.c */
     
    9395/* route_cfg.c */
    9496
    95 #define routing_tbl             _tinet_routing_tbl
     97#define routing6_tbl            _tinet_routing6_tbl
     98#define routing4_tbl            _tinet_routing4_tbl
    9699
    97100#ifdef SUPPORT_PPP
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_subr.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    8888#include <tinet_config.h>
    8989
     90#include <net/if.h>
     91#include <net/if_loop.h>
     92#include <net/if_ppp.h>
     93#include <net/ethernet.h>
    9094#include <net/net.h>
     95#include <net/net_endian.h>
    9196
    9297/*
     
    103108net_rand (void)
    104109{
    105         next = (next * 1103515245 + 12345) % (ULONG_C(0x7fffffff) + 1);
     110        next = (next * 99991 + 12345) & ULONG_C(0x7fffffff);
    106111        return next;
    107112        }
     
    114119net_srand (uint32_t seed)
    115120{
    116         next += seed;
     121        SYSTIM now;
     122
     123        syscall(get_tim(&now));
     124        next += now + seed + IF_SRAND();
    117125        }
    118126
     
    186194
    187195/*
    188  *  rev_memcpy_word -- 反転メモリコピー(4 バイト)
     196 *  rev_memcpy_hword -- 反転メモリコピー(2 バイト)
    189197 *
    190198 *    バイト単位にアクセスする事により、
     
    193201
    194202void
    195 rev_memcpy_word (uint8_t *dst, uint8_t *src)
    196 {
    197         *(dst    ) = *(src + 3);
    198         *(dst + 1) = *(src + 2);
    199         *(dst + 2) = *(src + 1);
    200         *(dst + 3) = *(src    );
    201         }
    202 
    203 /*
    204  *  rev_memcmp_word -- 反転メモリ比較(4 バイト)
     203rev_memcpy_hword (void *dst, void *src)
     204{
     205        *((uint8_t*)dst    ) = *((uint8_t*)src + 1);
     206        *((uint8_t*)dst + 1) = *((uint8_t*)src    );
     207        }
     208
     209/*
     210 *  rev_memcpy_word -- 反転メモリコピー(4 バイト)
    205211 *
    206212 *    バイト単位にアクセスする事により、
     
    208214 */
    209215
     216void
     217rev_memcpy_word (void *dst, void *src)
     218{
     219        *((uint8_t*)dst    ) = *((uint8_t*)src + 3);
     220        *((uint8_t*)dst + 1) = *((uint8_t*)src + 2);
     221        *((uint8_t*)dst + 2) = *((uint8_t*)src + 1);
     222        *((uint8_t*)dst + 3) = *((uint8_t*)src    );
     223        }
     224
     225/*
     226 *  rev_memcmp_word -- 反転メモリ比較(4 バイト)
     227 *
     228 *    バイト単位にアクセスする事により、
     229 *    境界へのアラインの問題を解決する。
     230 */
     231
    210232int_t
    211 rev_memcmp_word (uint8_t *data1, uint8_t *data2)
     233rev_memcmp_word (void *data1, void *data2)
    212234{
    213235        int_t   ix, diff;
    214236
    215         for (ix = 4; ix -- > 0; ) {
    216                 diff = *(data1 + ix) -  *(data2 + (3 - ix));
     237        for (ix = sizeof(uint32_t); ix -- > 0; ) {
     238                diff = *((uint8_t*)data1 + ix) -  *((uint8_t*)data2 + (3 - ix));
    217239                if (diff != 0)
    218240                        return diff;
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_timer.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    9090#include <net/ethernet.h>
    9191#include <net/net.h>
     92#include <net/net_endian.h>
    9293#include <net/net_buf.h>
    9394#include <net/net_timer.h>
    9495
    9596#include <netinet/in.h>
     97#include <netinet/in_var.h>
    9698#include <netinet/ip.h>
    9799#include <netinet/ip_var.h>
    98 #include <netinet/ip6.h>
    99 #include <netinet6/ip6_var.h>
    100 #include <netinet/tcp_timer.h>
    101100
    102101/*
     
    162161"\n"
    163162"TINET %d.%d.%d (" __DATE__ ", " __TIME__ ")\n"
    164 "Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering\n"
     163"Copyright (C) 2001-2012 by Dep. of Computer Science and Engineering\n"
    165164"                    Tomakomai National College of Technology, JAPAN\n";
    166165
     
    181180
    182181        /* IP を初期化する。*/
    183         IP_INIT();
     182
     183#if defined(_IP6_CFG)
     184        ip6_init();
     185#endif
     186
     187#if defined(_IP4_CFG)
     188        ip_init();
     189#endif
    184190
    185191#ifdef SUPPORT_TCP
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_timer.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    7474 */
    7575
    76 #define SYSTIM_HZ               ULONG_C(1000*1000)      /* [ms]                                 */
     76#define SYSTIM_HZ               ULONG_C(1000000)        /* [us]                                 */
    7777
    7878/*
     
    8080 */
    8181
    82 #define NET_TIMER_CYCLE         ULONG_C(100)    /* [ms]、fast timeout 使用時の動作周期   */
     82#define NET_TIMER_CYCLE         ULONG_C(100000) /* [us]、fast timeout 使用時の動作周期   */
    8383                                                /* タイマの周波数                      */
    8484#define NET_TIMER_HZ            (SYSTIM_HZ/NET_TIMER_CYCLE)
    8585
    86 #ifdef SUPPORT_INET6
     86#ifdef _IP6_CFG
    8787#define NUM_NET_CALLOUT         12              /* タイムアウト呼出し数、10 以上     */
    8888#else
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/net_var.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    8181#include <net/if_ppp.h>
    8282#include <net/net.h>
     83#include <net/net_endian.h>
     84#include <net/net_var.h>
    8385#include <net/net_buf.h>
    8486#include <net/net_timer.h>
     
    8991#include <net/ppp_fsm.h>
    9092#include <net/ppp_lcp.h>
     93#include <net/ppp_ipv6cp.h>
    9194#include <net/ppp_ipcp.h>
    9295#include <net/ppp_ccp.h>
     
    108111T_PPP_PROTENT *protocols[] = {
    109112        &lcp_protent,
     113
     114#ifdef _IP6_CFG
     115        &ipv6cp_protent,
     116#endif  /* of #ifdef _IP6_CFG */
     117
     118#ifdef _IP4_CFG
    110119        &ipcp_protent,
     120#endif  /* of #ifdef _IP4_CFG */
    111121
    112122#ifdef SUPPORT_CCP
    113123        &ccp_protent,
    114 #endif  /* #ifdef SUPPORT_CCP */
     124#endif  /* of #ifdef SUPPORT_CCP */
    115125
    116126#ifdef LCP_CFG_PAP
    117127        &pap_protent,
    118 #endif  /* #ifdef LCP_CFG_PAP */
     128#endif  /* of #ifdef LCP_CFG_PAP */
    119129
    120130#ifdef LCP_CFG_CHAP
    121131        &chap_protent,
    122 #endif  /* #ifdef LCP_CFG_CHAP */
     132#endif  /* of #ifdef LCP_CFG_CHAP */
    123133
    124134        NULL
     
    223233#endif  /* of #ifdef PPP_CFG_MODEM */
    224234
     235#ifdef _IP6_CFG
     236        /* IPV6CP の接続完了まで待つ。*/
     237        if ((error = wait_ipv6cp()) != E_OK)
     238                goto buf_ret;
     239#endif  /* of #ifdef _IP6_CFG */
     240
     241#ifdef _IP4_CFG
    225242        /* IPCP の接続完了まで待つ。*/
    226243        if ((error = wait_ipcp()) != E_OK)
    227244                goto buf_ret;
     245#endif  /* of #ifdef _IP4_CFG */
     246
     247#ifdef _IP4_CFG
     248        /* IPCP の接続完了まで待つ。*/
     249        if ((error = wait_ipcp()) != E_OK)
     250                goto buf_ret;
     251#endif  /* of #ifdef _IP4_CFG */
    228252
    229253#ifdef PPP_IDLE_TIMEOUT
     
    290314        ID              tskid;
    291315        int_t           ix;
     316        uint8_t         rcount = 0;
    292317
    293318        /* ポートを初期設定する */
     
    321346        /* PPP 出力タスクを起動する */
    322347        syscall(act_tsk(PPP_OUTPUT_TASK));
     348
     349        /* 乱数生成を初期化する。*/
     350        net_srand(0);
    323351
    324352        while (true) {
     
    328356                        if (input->len > 0) {
    329357
    330         #ifdef PPP_IDLE_TIMEOUT
     358                                /* 乱数生成を初期化する。*/
     359                                if (rcount == 0)
     360                                        net_srand(input->len);
     361                                rcount ++;
     362
     363#ifdef PPP_IDLE_TIMEOUT
    331364                                wai_sem(SEM_IDLE_TIMEOUT);
    332365                                if (idle && ntohs(*GET_PPP_HDR(input)) != PPP_LCP) {
     
    335368                                        }
    336369                                sig_sem(SEM_IDLE_TIMEOUT);
    337         #endif  /* of #ifdef PPP_IDLE_TIMEOUT */
     370#endif  /* of #ifdef PPP_IDLE_TIMEOUT */
    338371
    339372                                parse_input(input);
     
    342375                                syscall(rel_net_buf(input));
    343376
    344         #ifdef PPP_IDLE_TIMEOUT
     377#ifdef PPP_IDLE_TIMEOUT
    345378                        wai_sem(SEM_IDLE_TIMEOUT);
    346379                        if (!idle && ppp_phase == PPP_PHASE_NETWORK) {
     
    353386                                }
    354387                        sig_sem(SEM_IDLE_TIMEOUT);
    355         #endif  /* of #ifdef PPP_IDLE_TIMEOUT */
     388#endif  /* of #ifdef PPP_IDLE_TIMEOUT */
    356389
    357390                        }
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.cfg

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    5656        });
    5757
    58 CRE_DTQ(DTQ_PPP_OUTPUT,  { TA_TFIFO, NUM_DTQ_PPP_OUTPUT,  NULL });
     58CRE_DTQ(DTQ_PPP_OUTPUT,   { TA_TFIFO, NUM_DTQ_PPP_OUTPUT,  NULL });
    5959
    60 CRE_SEM(SEM_MODEM_READY, { TA_TPRI, 0, 1 });
    61 CRE_SEM(SEM_IPCP_READY,  { TA_TPRI, 0, 1 });
     60CRE_SEM(SEM_MODEM_READY,  { TA_TPRI, 0, 1 });
     61
     62#if defined(_IP6_CFG)
     63CRE_SEM(SEM_IPV6CP_READY, { TA_TPRI, 0, 1 });
     64#endif
     65
     66#if defined(_IP4_CFG)
     67CRE_SEM(SEM_IPCP_READY,   { TA_TPRI, 0, 1 });
     68#endif
    6269
    6370#ifdef PPP_IDLE_TIMEOUT
    64 CRE_SEM(SEM_IDLE_TIMEOUT,{ TA_TPRI, 1, 1 });
     71CRE_SEM(SEM_IDLE_TIMEOUT, { TA_TPRI, 1, 1 });
    6572#endif  /* of #ifdef PPP_IDLE_TIMEOUT */
    6673
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    7474 */
    7575
    76 #define PPP_IP          UINT_C(0x0021)          /* IP   */
     76#define PPP_IP          UINT_C(0x0021)          /* IPv4         */
     77#define PPP_IPV6        UINT_C(0x0057)          /* IPv6         */
    7778
    78 #define PPP_IPCP        UINT_C(0x8021)          /* IPCP */
    79 #define PPP_CCP         UINT_C(0x80fd)          /* CCP */
     79#define PPP_IPCP        UINT_C(0x8021)          /* IPCP         */
     80#define PPP_IPV6CP      UINT_C(0x8057)          /* IPV6CP       */
     81#define PPP_CCP         UINT_C(0x80fd)          /* CCP          */
    8082
    81 #define PPP_LCP         UINT_C(0xc021)          /* LCP  */
    82 #define PPP_PAP         UINT_C(0xc023)          /* PAP  */
    83 #define PPP_LQR         UINT_C(0xc025)          /* LQR  */
    84 #define PPP_CHAP        UINT_C(0xc223)          /* CHAP */
     83#define PPP_LCP         UINT_C(0xc021)          /* LCP          */
     84#define PPP_PAP         UINT_C(0xc023)          /* PAP          */
     85#define PPP_LQR         UINT_C(0xc025)          /* LQR          */
     86#define PPP_CHAP        UINT_C(0xc223)          /* CHAP         */
    8587
    8688#define GET_PPP_HDR(nbuf)       ((T_PPP_HDR*)((nbuf)->buf))
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_auth.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    100100#include <net/if_ppp.h>
    101101#include <net/net.h>
     102#include <net/net_endian.h>
    102103#include <net/net_buf.h>
    103104#include <net/ppp.h>
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_auth.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ccp.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    9393#include <net/if_ppp.h>
    9494#include <net/net_buf.h>
    95 #include <net/net_debug.h>
    9695#include <net/net_count.h>
    9796#include <net/ppp.h>
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ccp.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_fsm.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    8686#include <net/if_ppp.h>
    8787#include <net/net.h>
     88#include <net/net_endian.h>
    8889#include <net/net_timer.h>
    8990#include <net/net_buf.h>
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_fsm.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    9696        int8_t          retrans;        /* Configure-Request または、               */
    9797                                        /* Terminate-Request の再送回数              */
    98         } __attribute__((packed, aligned(2)))T_PPP_FSM;
     98        } T_PPP_FSM;
    9999
    100100#define T_PPP_FSM_DEFINED
     
    124124                                        /* 不明な CP を受信したときの処理    */
    125125        bool_t  (*extcode)(T_PPP_FSM *, uint8_t, uint8_t, T_NET_BUF *);
    126         } __attribute__((packed, aligned(2)))T_PPP_FSM_CALLBACKS;
     126        } T_PPP_FSM_CALLBACKS;
    127127
    128128/*
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_hdlc.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    6565#include <net/if_ppp.h>
    6666#include <net/net.h>
     67#include <net/net_endian.h>
    6768#include <net/net_buf.h>
    6869#include <net/net_count.h>
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_hdlc.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    8989#include <net/if_ppp.h>
    9090#include <net/net.h>
     91#include <net/net_endian.h>
    9192#include <net/net_buf.h>
    9293#include <net/net_count.h>
     
    102103#include <netinet/ip.h>
    103104#include <netinet/tcp.h>
     105#include <netinet/tcp_var.h>
    104106#include <netinet/tcp_timer.h>
    105 #include <netinet/tcp_var.h>
    106107#include <netinet/udp_var.h>
    107108
     
    149150        NULL,
    150151        {
    151                 IPV4_ADDR_LOCAL,                /* IP アドレス                      */
     152                IPV4_ADDR_LOCAL,                /* IPv4 アドレス                    */
    152153                UINT_C(0),                      /* サブネットマスク             */
    153154                },
     
    157158        NULL,
    158159        {
    159                 IPV4_ADDR_REMOTE,               /* IP アドレス                      */
     160                IPV4_ADDR_REMOTE,               /* IPv4 アドレス                    */
    160161                UINT_C(0),                      /* サブネットマスク             */
    161162                }
     
    200201        ipcp_open,                      /* オープンする                       */
    201202        ipcp_close,                     /* クローズする                       */
    202         ip_input,                       /* データ入力、IP 入力          */
     203        ip_input,                       /* データ入力、IPv4 入力        */
    203204        };
    204205
     
    307308        int_t cilen = 0;
    308309
    309         cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);       /* IP アドレス */
     310        cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);       /* IPv4 アドレス */
    310311
    311312        return cilen;
     
    323324        buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
    324325
    325         /* IP アドレスオプションを追加する。 */
     326        /* IPv4 アドレスオプションを追加する。 */
    326327        *buf ++ = IPCP_CIT_ADDR;
    327328        *buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
    328         ahtonl(buf, ipcp_local_neg_cfg.in_ifaddr.addr);
     329        ahtonl(buf, ipcp_local_neg_cfg.in4_ifaddr.addr);
    329330        buf += sizeof(uint32_t);
    330331        }
     
    355356            *buf ++ != IPCP_CIT_ADDR                    ||
    356357            *buf ++ != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)||
    357             nahcmpl(buf, ipcp_local_neg_cfg.in_ifaddr.addr))
     358            nahcmpl(buf, ipcp_local_neg_cfg.in4_ifaddr.addr))
    358359                return false;
    359360        buf += sizeof(uint32_t);
     
    390391                buf += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
    391392                len -= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
    392                 new_cfg.in_ifaddr.addr = cilong;
     393                new_cfg.in4_ifaddr.addr = cilong;
    393394                }
    394395
     
    438439                buf += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
    439440                len -= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
    440                 new_cfg.in_ifaddr.addr = 0;
     441                new_cfg.in4_ifaddr.addr = 0;
    441442                }
    442443
     
    499500                switch (type) {
    500501
    501                 case IPCP_CIT_ADDR:     /* IP アドレス */
     502                case IPCP_CIT_ADDR:     /* IPv4 アドレス */
    502503
    503504                        /* CI 長が、ヘッダ + 4 オクテットでなければエラー */
     
    506507                        else {
    507508                                ntoahl(addr, ap);
    508                                 if (addr != ipcp_remote_neg_cfg.in_ifaddr.addr &&
    509                                     (addr == 0 || ipcp_remote_neg_cfg.in_ifaddr.addr != 0)) {
     509                                if (addr != ipcp_remote_neg_cfg.in4_ifaddr.addr &&
     510                                    (addr == 0 || ipcp_remote_neg_cfg.in4_ifaddr.addr != 0)) {
    510511                                        *np ++ = IPCP_CIT_ADDR;
    511512                                        *np ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
    512                                         ahtonl(np, ipcp_remote_neg_cfg.in_ifaddr.addr);
     513                                        ahtonl(np, ipcp_remote_neg_cfg.in4_ifaddr.addr);
    513514                                        np  += sizeof(uint32_t);
    514515                                        code = PPP_CONFNAK;
    515516                                        }
    516517#if 1   /* 要確認 */
    517                                 else if (addr == 0 && ipcp_remote_neg_cfg.in_ifaddr.addr == 0)
     518                                else if (addr == 0 && ipcp_remote_neg_cfg.in4_ifaddr.addr == 0)
    518519#else
    519                                 else if (addr == 0 || ipcp_remote_neg_cfg.in_ifaddr.addr == 0)
     520                                else if (addr == 0 || ipcp_remote_neg_cfg.in4_ifaddr.addr == 0)
    520521#endif
    521522                                        code = PPP_CONFREJ;
    522523                                else
    523                                         ipcp_remote_neg_cfg.in_ifaddr.addr = addr;
     524                                        ipcp_remote_neg_cfg.in4_ifaddr.addr = addr;
    524525                                }
    525526                        break;
     
    582583        /*
    583584         *  サブネットマスクと
    584          *  ローカル・ブロードキャスト IP アドレスを設定する。
     585         *  ローカル・ブロードキャスト IPv4 アドレスを設定する。
    585586         */
    586         ipcp_local_ack_cfg.in_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_local_neg_cfg.in_ifaddr.addr);
     587        ipcp_local_ack_cfg.in4_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_local_neg_cfg.in4_ifaddr.addr);
    587588
    588589        /* 相手の構成情報の初期設定 */
     
    591592        /*
    592593         *  サブネットマスクと
    593          *  ローカル・ブロードキャスト IP アドレスを設定する。
     594         *  ローカル・ブロードキャスト IPv4 アドレスを設定する。
    594595         */
    595         ipcp_remote_ack_cfg.in_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_remote_neg_cfg.in_ifaddr.addr);
     596        ipcp_remote_ack_cfg.in4_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_remote_neg_cfg.in4_ifaddr.addr);
    596597
    597598        sig_sem(SEM_IPCP_READY);
    598599
    599         syslog(LOG_NOTICE, "[PPP/IPCP] up, Local IP Addr: %s, Remote IP Addr: %s.",
    600                            ip2str(NULL, &ipcp_local_neg_cfg.in_ifaddr.addr),
    601                            ip2str(NULL, &ipcp_remote_neg_cfg.in_ifaddr.addr));
     600        syslog(LOG_NOTICE, "[PPP/IPCP] up, Local IPv4 Addr: %s, Remote IPv4 Addr: %s.",
     601                           ip2str(NULL, &ipcp_local_neg_cfg.in4_ifaddr.addr),
     602                           ip2str(NULL, &ipcp_remote_neg_cfg.in4_ifaddr.addr));
    602603        }
    603604
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_ipcp.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_lcp.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    8686#include <net/if_ppp.h>
    8787#include <net/net.h>
     88#include <net/net_endian.h>
    8889#include <net/net_var.h>
    8990#include <net/net_buf.h>
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_lcp.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_modem.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    4747#include <net/if_ppp.h>
    4848#include <net/net.h>
     49#include <net/net_endian.h>
    4950#include <net/net_buf.h>
    5051#include <net/net_count.h>
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_modem.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_upap.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    8787#include <net/if_ppp.h>
    8888#include <net/net.h>
     89#include <net/net_endian.h>
    8990#include <net/net_buf.h>
    9091#include <net/net_timer.h>
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_upap.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/ppp_var.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/net/route.h

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/Makefile.netapp

    r321 r331  
    22#   TINET (TCP/IP Protocol Stack)
    33
    4 #   Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4#   Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55#                    Tomakomai National College of Technology, JAPAN
    66#
     
    5050
    5151TINET_ROOT = $(SRCDIR)/tinet
    52 NETAPP_DIR = $(TINET_ROOT)/netapp
     52NETAPP_DIRS = $(TINET_ROOT)/netapp
    5353NETAPP_COBJS := $(NETAPP_COBJS) netapp_subr.o
    5454
     55ifeq ($(USE_LCD),true)
     56
     57        NETAPP_COBJS := $(NETAPP_COBJS) lcd.o
     58
     59ifeq ($(TARGET_KERNEL),ASP)
     60        NETAPP_COBJS := $(NETAPP_COBJS) target_lcd.o sc1602.o
     61endif
     62
     63ifeq ($(TARGET_KERNEL),JSP)
     64        NETAPP_COBJS := $(NETAPP_COBJS) hw_lcd.o sc1602.o
     65endif
     66
     67endif
     68
    5569#  トランスポート層の選択
    5670
    57 SUPPORT_TCP = false
    58 SUPPORT_UDP = false
     71#SUPPORT_TCP = false
     72#SUPPORT_UDP = false
    5973
    6074#
     
    6276#
    6377
     78ifeq ($(USE_WWW4_SRV),true)
     79        USE_WWW_SRV = true
     80        CDEFS := $(CDEFS) -DUSE_WWW4_SRV
     81endif
     82
    6483ifeq ($(USE_WWW_SRV),true)
    65         SUPPORT_TCP = true
    66         TCP_CFG_PASSIVE_OPEN = true
     84
     85        SUPPORT_TCP = true
    6786        USE_NETAPP_SUBR = true
    6887        CDEFS := $(CDEFS) -DUSE_WWW_SRV
    6988        NETAPP_COBJS := $(NETAPP_COBJS) wwws.o
    70         NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/wwws.cfg
     89        NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/wwws.cfg
     90
     91endif
     92
     93ifeq ($(USE_TCP4_ECHO_SRV),true)
     94        TCP_ECHO_SRV = tcp_echo_srv1
     95        CDEFS := $(CDEFS) -DUSE_TCP4_ECHO_SRV
    7196endif
    7297
    7398ifeq ($(TCP_ECHO_SRV),tcp_echo_srv1)            # 送受信タスク同一型
    74         SUPPORT_TCP = true
    75         TCP_CFG_PASSIVE_OPEN = true
     99
     100        SUPPORT_TCP = true
    76101        USE_NETAPP_SUBR = true
    77102        CDEFS := $(CDEFS) -DUSE_TCP_ECHO_SRV1
    78103        NETAPP_COBJS := $(NETAPP_COBJS) tcp_echo_srv1.o
    79         NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/tcp_echo_srv1.cfg
     104        NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/tcp_echo_srv1.cfg
     105
     106        ifeq ($(USE_TCP_NON_BLOCKING),true)
     107                NETAPP_COBJS := $(NETAPP_COBJS) tcp_echo_srv1_nblk.o
     108        endif
     109
     110        ifeq ($(USE_TCP_EXTENTIONS),true)
     111                NETAPP_COBJS := $(NETAPP_COBJS) tcp_echo_srv1_ext.o
     112        endif
     113
    80114endif
    81115
    82116ifeq ($(TCP_ECHO_SRV),tcp_echo_srv2)            # 送受信タスク分離型
    83117        SUPPORT_TCP = true
    84         TCP_CFG_PASSIVE_OPEN = true
    85118        USE_NETAPP_SUBR = true
    86119        CDEFS := $(CDEFS) -DUSE_TCP_ECHO_SRV2
    87120        NETAPP_COBJS := $(NETAPP_COBJS) tcp_echo_srv2.o
    88         NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/tcp_echo_srv2.cfg
     121        NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/tcp_echo_srv2.cfg
     122endif
     123
     124ifeq ($(USE_UDP4_ECHO_SRV),true)
     125        USE_UDP_ECHO_SRV = true
    89126endif
    90127
    91128ifeq ($(USE_UDP_ECHO_SRV),true)
    92         SUPPORT_UDP = true
    93         USE_NETAPP_SUBR = true
     129
    94130        CDEFS := $(CDEFS) -DUSE_UDP_ECHO_SRV
    95         NETAPP_COBJS := $(NETAPP_COBJS) udp_echo_srv.o
    96         NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/udp_echo_srv.cfg
     131
     132        ifeq ($(SUPPORT_INET6),true)
     133                SUPPORT_UDP = true
     134                USE_NETAPP_SUBR = true
     135                CDEFS := $(CDEFS) -DUSE_UDP6_ECHO_SRV_TSK
     136                NETAPP_COBJS := $(NETAPP_COBJS) udp6_echo_srv.o
     137                NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/udp6_echo_srv.cfg
     138
     139                ifeq ($(SUPPORT_INET4),true)
     140                        ifeq ($(USE_UDP4_ECHO_SRV),true)
     141                                CDEFS := $(CDEFS) -DUSE_UDP4_ECHO_SRV_TSK
     142                                NETAPP_COBJS := $(NETAPP_COBJS) udp4_echo_srv.o
     143                                NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/udp4_echo_srv.cfg
     144                        endif
     145                endif
     146        else
     147                ifeq ($(SUPPORT_INET4),true)
     148                        SUPPORT_UDP = true
     149                        USE_NETAPP_SUBR = true
     150                        CDEFS := $(CDEFS) -DUSE_UDP4_ECHO_SRV_TSK
     151                        NETAPP_COBJS := $(NETAPP_COBJS) udp4_echo_srv.o
     152                        NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/udp4_echo_srv.cfg
     153                endif
     154        endif
     155endif
     156
     157
     158ifeq ($(USE_TCP4_ECHO_CLI),true)
     159        USE_TCP_ECHO_CLI = true
     160        CDEFS := $(CDEFS) -DUSE_TCP4_ECHO_CLI
    97161endif
    98162
     
    101165        USE_NETAPP_SUBR = true
    102166        CDEFS := $(CDEFS) -DUSE_TCP_ECHO_CLI
    103         NETAPP_COBJS := $(NETAPP_COBJS) tcp_echo_cli.o
    104         NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/tcp_echo_cli.cfg
     167        NETAPP_COBJS := $(NETAPP_COBJS) tcp_echo_cli.o tcp_echo_cli_snd.o tcp_echo_cli_rcv.o
     168        NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/tcp_echo_cli.cfg
     169endif
     170
     171ifeq ($(USE_UDP4_ECHO_CLI),true)
     172        USE_UDP_ECHO_CLI = true
    105173endif
    106174
    107175ifeq ($(USE_UDP_ECHO_CLI),true)
    108         SUPPORT_UDP = true
    109         USE_NETAPP_SUBR = true
     176
    110177        CDEFS := $(CDEFS) -DUSE_UDP_ECHO_CLI
    111         NETAPP_COBJS := $(NETAPP_COBJS) udp_echo_cli.o
    112         NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/udp_echo_cli.cfg
     178
     179        ifeq ($(SUPPORT_INET6),true)
     180                SUPPORT_UDP = true
     181                USE_NETAPP_SUBR = true
     182                CDEFS := $(CDEFS) -DUSE_UDP6_ECHO_CLI_TSK
     183                NETAPP_COBJS := $(NETAPP_COBJS) udp6_echo_cli.o
     184                NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/udp6_echo_cli.cfg
     185       
     186                ifeq ($(SUPPORT_INET4),true)
     187                        ifeq ($(USE_UDP4_ECHO_CLI),true)
     188                                CDEFS := $(CDEFS) -DUSE_UDP4_ECHO_CLI_TSK
     189                                NETAPP_COBJS := $(NETAPP_COBJS) udp4_echo_cli.o
     190                                NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/udp4_echo_cli.cfg
     191                        endif
     192                endif
     193        else
     194                ifeq ($(SUPPORT_INET4),true)
     195                        SUPPORT_UDP = true
     196                        USE_NETAPP_SUBR = true
     197                        CDEFS := $(CDEFS) -DUSE_UDP4_ECHO_CLI_TSK
     198                        NETAPP_COBJS := $(NETAPP_COBJS) udp4_echo_cli.o
     199                        NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/udp4_echo_cli.cfg
     200                endif
     201
     202        endif
    113203endif
    114204
    115205ifeq ($(USE_TCP_DISCARD_SRV),true)
    116206        SUPPORT_TCP = true
    117         TCP_CFG_PASSIVE_OPEN = true
    118207        USE_NETAPP_SUBR = true
    119208        CDEFS := $(CDEFS) -DUSE_TCP_DISCARD_SRV
    120209        NETAPP_COBJS := $(NETAPP_COBJS) tcp_discard_srv.o
    121         NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/tcp_discard_srv.cfg
     210        NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/tcp_discard_srv.cfg
    122211endif
    123212
     
    127216        CDEFS := $(CDEFS) -DUSE_TCP_DISCARD_CLI
    128217        NETAPP_COBJS := $(NETAPP_COBJS) tcp_discard_cli.o
    129         NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/tcp_discard_cli.cfg
     218        NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/tcp_discard_cli.cfg
    130219endif
    131220
     
    135224        CDEFS := $(CDEFS) -DUSE_UDP_DISCARD_CLI
    136225        NETAPP_COBJS := $(NETAPP_COBJS) udp_discard_cli.o
    137         NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/udp_discard_cli.cfg
     226        NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/udp_discard_cli.cfg
    138227endif
    139228
     
    141230        ifeq ($(TCP_CFG_NON_BLOCKING),true)
    142231                SUPPORT_TCP = true
    143                 TCP_CFG_PASSIVE_OPEN = true
    144232                USE_DBG_CONS = true
    145233                USE_NETAPP_SUBR = true
    146234                CDEFS := $(CDEFS) -DUSE_NET_CONS
    147235                NETAPP_COBJS := $(NETAPP_COBJS) net_cons.o
    148                 NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/net_cons.cfg
     236                NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/net_cons.cfg
    149237        endif
    150238endif
    151239
    152240ifeq ($(USE_DBG_CONS),true)
    153 
    154241        USE_NETAPP_SUBR = true
    155242        CDEFS := $(CDEFS) -DUSE_DBG_CONS
    156243        NETAPP_COBJS := $(NETAPP_COBJS) dbg_cons.o
    157         NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/dbg_cons.cfg
    158 
     244        NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIRS)/dbg_cons.cfg
     245        ifeq ($(USE_DBG_CONS_PARSER),true)
     246                CDEFS := $(CDEFS) -DUSE_DBG_CONS_PARSER
     247        endif
     248        ifeq ($(USE_DBG_CONS_EXTRA_PARSE),true)
     249                CDEFS := $(CDEFS) -DUSE_DBG_CONS_EXTRA_PARSE
     250        endif
    159251endif
    160252
    161253ifeq ($(USE_PING),true)
    162 
    163254        USE_NETAPP_SUBR = true
    164255        CDEFS := $(CDEFS) -DUSE_PING
    165 
    166256        ifeq ($(SUPPORT_INET4),true)
    167 
    168257                NETAPP_COBJS := $(NETAPP_COBJS) ping.o
    169258        endif
    170 
    171259        ifeq ($(SUPPORT_INET6),true)
    172 
    173260                NETAPP_COBJS := $(NETAPP_COBJS) ping6.o
    174261        endif
    175 
     262endif
     263
     264ifeq ($(USE_RESOLVER),true)
     265        SUPPORT_UDP = true
     266        CDEFS := $(CDEFS) -DUSE_RESOLVER
     267        NETAPP_COBJS := $(NETAPP_COBJS) resolver.o
     268
     269endif
     270
     271ifeq ($(USE_DHCP6_CLI),true)
     272        ifeq ($(SUPPORT_INET6),true)
     273                SUPPORT_UDP = true
     274                UDP_CFG_NON_BLOCKING = true
     275                USE_UDP_NON_BLOCKING = true
     276                CDEFS := $(CDEFS) -DDHCP6_CLI_CFG
     277                NETAPP_COBJS := $(NETAPP_COBJS) dhcp6_cli.o
     278        endif
     279endif
     280
     281ifeq ($(USE_DHCP4_CLI),true)
     282        ifeq ($(SUPPORT_INET4),true)
     283                SUPPORT_UDP = true
     284                UDP_CFG_NON_BLOCKING = true
     285                USE_UDP_NON_BLOCKING = true
     286                CDEFS := $(CDEFS) -DDHCP4_CLI_CFG
     287                NETAPP_COBJS := $(NETAPP_COBJS) dhcp4_cli.o
     288        endif
    176289endif
    177290
     
    180293endif
    181294
     295ifeq ($(API_CFG_IP4MAPPED_ADDR),true)
     296        CDEFS := $(CDEFS) -DAPI_CFG_IP4MAPPED_ADDR
     297endif
     298
    182299ifeq ($(USE_COPYSAVE_API),true)
    183300        CDEFS := $(CDEFS) -DUSE_COPYSAVE_API
    184 endif
    185 
    186 ifndef TCP_CFG_PASSIVE_OPEN
    187         CDEFS := $(CDEFS) -DUNDEF_TCP_CFG_PASSIVE_OPEN
    188301endif
    189302
     
    241354endif
    242355
     356ifeq ($(USE_LCD),true)
     357        CDEFS := $(CDEFS) -DUSE_LCD
     358endif
     359
    243360#
    244361#  アプリケーションプログラムに関する定義への追加
     
    247364ifeq ($(TARGET_KERNEL),ASP)
    248365
    249         APPLDIR := $(APPLDIR) $(NETAPP_DIR)
     366        APPLDIR := $(APPLDIR) $(NETAPP_DIRS)
    250367        APPL_COBJS := $(APPL_COBJS) $(NETAPP_COBJS)
    251368        APPL_CFLAGS := $(APPL_CFLAGS) -fno-strict-aliasing
     
    255372ifeq ($(TARGET_KERNEL),JSP)
    256373
    257         UTASK_DIR := $(UTASK_DIR):$(NETAPP_DIR)
     374        UTASK_DIRS := $(UTASK_DIRS):$(NETAPP_DIRS)
    258375        UTASK_COBJS := $(UTASK_COBJS) $(NETAPP_COBJS)
    259376        UTASK_CFLAGS := $(UTASK_CFLAGS) -fno-strict-aliasing
     
    261378endif
    262379
     380ifeq ($(USE_LCD),true)
     381
     382ifeq ($(TARGET_KERNEL),ASP)
     383
     384        APPLDIR := $(APPLDIR) $(SRCDIR)/pdic/sc1602
     385
     386endif
     387
     388ifeq ($(TARGET_KERNEL),JSP)
     389
     390        UTASK_DIRS := $(UTASK_DIRS):$(SRCDIR)/pdic/sc1602
     391
     392endif
     393
     394endif
     395
    263396#
    264397#  TINET コンフィギュレーションファイルの定義への追加
  • EcnlProtoTool/trunk/asp3_dcre/tinet/netapp/dbg_cons.c

    r321 r331  
    22 *  TINET (TCP/IP Protocol Stack)
    33 *
    4  *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
     4 *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
    55 *                   Tomakomai National College of Technology, JAPAN
    66 *
     
    3737
    3838#include <stdlib.h>
     39#include <string.h>
    3940
    4041#ifdef TARGET_KERNEL_ASP
     
    4445#include <syssvc/serial.h>
    4546#include <syssvc/logtask.h>
    46 #include "kernel_cfg.h"
    4747#include "kernel/kernel_impl.h"
    4848#include "kernel/task.h"
     49#include "kernel_cfg.h"
     50#include "tinet_cfg.h"
    4951
    5052#endif  /* of #ifdef TARGET_KERNEL_ASP */
     
    5557#include <t_services.h>
    5658#include "kernel_id.h"
     59#include "tinet_id.h"
    5760
    5861#include "../kernel/jsp_kernel.h"
     
    6972#include <net/ethernet.h>
    7073#include <net/net.h>
     74#include <net/net_endian.h>
    7175#include <net/net_buf.h>
    7276#include <net/net_timer.h>
     
    8387#include <netinet/ip.h>
    8488#include <netinet/ip_var.h>
    85 #include <netinet/ip6.h>
    86 #include <netinet6/ip6_var.h>
    87 #include <netinet6/nd6.h>
    8889#include <netinet/if_ether.h>
    8990#include <netinet/tcp.h>
    90 #include <netinet/tcp_timer.h>
    9191#include <netinet/tcp_var.h>
    9292#include <netinet/tcp_fsm.h>
     93#include <netinet/tcp_timer.h>
    9394#include <netinet/udp.h>
    9495#include <netinet/udp_var.h>
    9596
     97#include <netinet6/nd6.h>
     98
    9699#include <net/if_var.h>
    97 #include <net/if6_var.h>
    98100
    99101#include <netapp/netapp.h>
    100102#include <netapp/netapp_var.h>
    101 #include <netapp/echo.h>
    102 #include <netapp/discard.h>
     103#include <netapp/wwws.h>
     104#include <netapp/tcp_echo_srv1.h>
     105#include <netapp/tcp_echo_srv2.h>
     106#include <netapp/tcp_echo_cli.h>
     107#include <netapp/tcp_discard_cli.h>
     108#include <netapp/udp6_echo_srv.h>
     109#include <netapp/udp4_echo_srv.h>
     110#include <netapp/udp6_echo_cli.h>
     111#include <netapp/udp4_echo_cli.h>
     112#include <netapp/udp_discard_cli.h>
     113#include <netapp/resolver.h>
    103114#include <netapp/dbg_cons.h>
    104 
    105 #ifdef USE_LCD
    106 
    107 #include "sc1602/lcd.h"
    108 
    109 #endif  /* of #ifdef USE_LCD */
     115#include <netapp/dhcp6_cli.h>
     116#include <netapp/dhcp4_cli.h>
     117#include "lcd.h"
    110118
    111119#ifdef USE_DBG_CONS
    112120
    113 #define DBG_LINE_SIZE   63
    114 
    115121/*
    116  *  task_status -- タスクの状態の出力
     122 *  dbg_cons_task_status -- タスクの状態の出力
    117123 */
    118124
     
    127133        };
    128134
    129 static void
    130 task_status (ID portid, char *line)
     135void
     136dbg_cons_task_status (ID portid, char *line)
    131137{
    132138        TCB     *tcb;
     
    149155                        st >>= 1;
    150156                        }
    151                 cons_printf(portid, "\n");
     157                cons_putchar(portid, '\n');
    152158                }
    153159
     
    176182        };
    177183
     184#if defined(SUPPORT_INET6)
     185
     186static void
     187tcp_cep_status (ID portid, char *line)
     188{
     189        T_TCP_CEP*      cep;
     190        int             len;
     191
     192#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
     193
     194        T_TCP_TWCEP*    twcep;
     195
     196#endif  /* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
     197
     198        cons_printf(portid,
     199                    "TCP CEP Status\n"
     200                    "ID  Snd-Q Rcv-Q Foreign Address                               State\n");
     201
     202        for (cep = tcp_cep; cep < &tcp_cep[tmax_tcp_cepid]; cep ++)
     203                if (!VALID_TCP_CEP(cep)) {
     204                        cons_printf(portid,
     205                                    "%2d%c%c     0     0"
     206                                    " -                                            "
     207                                    " INVALID\n",
     208                                    GET_TCP_CEPID(cep),
     209                                    DYNAMIC_TCP_CEP(cep) ? 'D' : '.',
     210                                    TCP_IS_CEP_IPV6(cep) ? '6' : '4');
     211                        }
     212                else if (cep->fsm_state == TCP_FSM_CLOSED) {
     213                        cons_printf(portid,
     214                                    "%2d%c%c     0     0"
     215                                    " -                                            "
     216                                    " CLOSED\n",
     217                                    GET_TCP_CEPID(cep),
     218                                    DYNAMIC_TCP_CEP(cep) ? 'D' : '.',
     219                                    TCP_IS_CEP_IPV6(cep) ? '6' : '4');
     220                        }
     221                else if (cep->fsm_state == TCP_FSM_LISTEN) {
     222                        cons_printf(portid,
     223                                    "%2d%c%c     0     0"
     224                                    " -                                            "
     225                                    " LISTEN\n",
     226                                    GET_TCP_CEPID(cep),
     227                                    DYNAMIC_TCP_CEP(cep) ? 'D' : '.',
     228                                    TCP_IS_CEP_IPV6(cep) ? '6' : '4');
     229                        }
     230                else {
     231                        cons_printf(portid,
     232                                    "%2d%c%c %5d %5d ",
     233                                    GET_TCP_CEPID(cep),
     234                                    DYNAMIC_TCP_CEP(cep) ? 'D' : '.',
     235                                    TCP_IS_CEP_IPV6(cep) ? '6' : '4',
     236                                    cep->swbuf_count, cep->rwbuf_count);
     237
    178238#if defined(SUPPORT_INET4)
    179239
     240                        if (TCP_IS_CEP_IPV4(cep)) {
     241                                T_IN4_ADDR      addr;
     242
     243                                addr = ntohl(cep->dstaddr.ipaddr.s6_addr32[3]);
     244                                len  = put_ipv4addr(portid, &addr, 0);
     245                                }
     246                        else
     247                                len  = put_ipv6addr(portid, &cep->dstaddr.ipaddr, 0);
     248
     249#else   /* of #if defined(SUPPORT_INET4) */
     250
     251                        len  = put_ipv6addr(portid, &cep->dstaddr.ipaddr, 0);
     252
     253#endif  /* of #if defined(SUPPORT_INET4) */
     254
     255                        cons_putchar(portid, '.');
     256                        len += cons_putnumber(portid, cep->dstaddr.portno, 10, radhex, 0, false, ' ');
     257                        for (len = 44 - len; len -- > 0; )
     258                                cons_putchar(portid, ' ');
     259                        if (cep->fsm_state == TCP_FSM_TIME_WAIT)
     260                                cons_printf(portid, " %s(%d)\n", tcp_fsm_str[cep->fsm_state],
     261                                                    cep->timer[TCP_TIM_2MSL] / TCP_SLOW_HZ);
     262                        else
     263                                cons_printf(portid, " %s\n", tcp_fsm_str[cep->fsm_state]);
     264                        }
     265
     266#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
     267
     268        for (twcep = tcp_twcep; twcep < &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep ++) {
     269                if (twcep->fsm_state == TCP_FSM_CLOSED) {
     270                        cons_printf(portid,
     271                                    "%2dTW     0     0"
     272                                    " -                                            "
     273                                    " CLOSED\n",
     274                                    GET_TCP_TWCEPID(twcep));
     275                        }
     276                else {
     277                        cons_printf(portid, "%2dTW     0     0 ", GET_TCP_TWCEPID(twcep));
     278
     279#if defined(SUPPORT_INET4)
     280
     281                        if (TCP_IS_CEP_IPV4(twcep)) {
     282                                T_IN4_ADDR      addr;
     283
     284                                addr = ntohl(twcep->dstaddr.ipaddr.s6_addr32[3]);
     285                                len  = put_ipv4addr(portid, &addr, 0);
     286                                }
     287                        else
     288                                len  = put_ipv6addr(portid, &twcep->dstaddr.ipaddr, 0);
     289
     290#else   /* of #if defined(SUPPORT_INET4) */
     291
     292                        len  = put_ipv6addr(portid, &twcep->dstaddr.ipaddr, 0);
     293
     294#endif  /* of #if defined(SUPPORT_INET4) */
     295
     296                        cons_putchar(portid, '.');
     297                        len += cons_putnumber(portid, twcep->dstaddr.portno, 10, radhex, 0, false, ' ');
     298                        for (len = 44 - len; len -- > 0; )
     299                                cons_putchar(portid, ' ');
     300                        if (twcep->fsm_state == TCP_FSM_TIME_WAIT)
     301                                cons_printf(portid, " %s(%d)\n", tcp_fsm_str[twcep->fsm_state],
     302                                                    twcep->timer_2msl / TCP_SLOW_HZ);
     303                        else
     304                                cons_printf(portid, " %s\n", tcp_fsm_str[twcep->fsm_state]);
     305                        }
     306                }
     307
     308#endif  /* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
     309
     310        }
     311
     312#else   /* of #if defined(SUPPORT_INET6) */
     313
     314#if defined(SUPPORT_INET4)
     315
    180316static void
    181 tcp_status (ID portid, char *line)
     317tcp_cep_status (ID portid, char *line)
    182318{
    183319        T_TCP_CEP*      cep;
     
    190326#endif  /* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
    191327
    192 #ifdef TCP_CFG_PASSIVE_OPEN
    193 
    194         T_TCP_REP*      rep;
    195         int_t           cnt;
    196 
    197 #endif  /* of #ifdef TCP_CFG_PASSIVE_OPEN */
    198 
    199         WAI_NET_CONS_PRINTF();
    200328        cons_printf(portid,
    201329                    "TCP CEP Status\n"
     
    205333                if (!VALID_TCP_CEP(cep)) {
    206334                        cons_printf(portid,
    207                                     "%2d%c     0     0"
     335                                    "%2d%c%c     0     0"
    208336                                    " -                    "
    209337                                    " -                    "
    210338                                    " INVALID\n",
    211339                                    GET_TCP_CEPID(cep),
    212                                     DYNAMIC_TCP_CEP(cep) ? 'D' : ' ');
     340                                    DYNAMIC_TCP_CEP(cep) ? 'D' : '.',
     341                                    TCP_IS_CEP_IPV6(cep) ? '6' : '4');
    213342                        }
    214343                else if (cep->fsm_state == TCP_FSM_CLOSED) {
    215344                        cons_printf(portid,
    216                                     "%2d%c     0     0"
     345                                    "%2d%c%c     0     0"
    217346                                    " -                    "
    218347                                    " -                    "
    219348                                    " CLOSED\n",
    220349                                    GET_TCP_CEPID(cep),
    221                                     DYNAMIC_TCP_CEP(cep) ? 'D' : ' ');
     350                                    DYNAMIC_TCP_CEP(cep) ? 'D' : '.',
     351                                    TCP_IS_CEP_IPV6(cep) ? '6' : '4');
    222352                        }
    223353                else if (cep->fsm_state == TCP_FSM_LISTEN) {
    224354                        cons_printf(portid,
    225                                     "%2d%c     0     0 ",
     355                                    "%2d%c%c     0     0 ",
    226356                                    GET_TCP_CEPID(cep),
    227                                     DYNAMIC_TCP_CEP(cep) ? 'D' : ' ');
     357                                    DYNAMIC_TCP_CEP(cep) ? 'D' : '.',
     358                                    TCP_IS_CEP_IPV6(cep) ? '6' : '4');
    228359                        len  = PUT_IPADDR(portid, &cep->myaddr.ipaddr, 0);
    229360                        cons_putchar(portid, ':');
     
    263394                if (twcep->fsm_state == TCP_FSM_CLOSED) {
    264395                        cons_printf(portid,
    265                                     "%2dTW    0     0"
     396                                    "%2dTW     0     0"
    266397                                    " -                    "
    267398                                    " -                    "
     
    270401                        }
    271402                else {
    272                         cons_printf(portid, "%2dTW    0     0 ", GET_TCP_TWCEPID(twcep));
     403                        cons_printf(portid, "%2dTW     0     0 ", GET_TCP_TWCEPID(twcep));
    273404                        len  = PUT_IPADDR(portid, &twcep->myaddr.ipaddr, 0);
    274405                        cons_putchar(portid, ':');
     
    291422#endif  /* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
    292423
    293 #ifdef TCP_CFG_PASSIVE_OPEN
     424        }
     425
     426#endif  /* of #if defined(SUPPORT_INET4) */
     427
     428#endif  /* of #if defined(SUPPORT_INET6) */
     429
     430#if TNUM_TCP6_REPID > 0
     431
     432static void
     433tcp6_rep_status (ID portid, char *line)
     434{
     435        T_TCP_CEP*      cep;
     436        T_TCP6_REP*     rep;
     437        ID              repid;
     438        int_t           cnt;
     439        uint_t          len;
    294440
    295441        cons_printf(portid,
    296                     "TCP REP Status\n"
     442                    "TCP6 REP Status\n"
    297443                    "ID  Local Address         CEP\n");
    298         for (rep = tcp_rep; rep < &tcp_rep[tmax_tcp_repid]; rep ++) {
    299                 cons_printf(portid, "%2d%c ", GET_TCP_REPID(rep), DYNAMIC_TCP_REP(rep) ? 'D' : ' ');
    300                 if (VALID_TCP_REP(rep)) {
    301                         len  = PUT_IPADDR(portid, &rep->myaddr.ipaddr, 0);
    302                         cons_putchar(portid, ':');
    303                         len += cons_putnumber(portid, rep->myaddr.portno, 10, radhex, 0, false, ' ');
    304                         for (len = 21 - len; len -- > 0; )
    305                                 cons_putchar(portid, ' ');
    306                         cnt = 0;
    307                         for (cep = tcp_cep; cep < &tcp_cep[tmax_tcp_cepid]; cep ++) {
    308                                 if (cep->rep == rep) {
    309                                         if (cnt > 0)
    310                                                 cons_printf(portid, ",%d", GET_TCP_CEPID(cep));
    311                                         else
    312                                                 cons_printf(portid, "%d", GET_TCP_CEPID(cep));
    313                                         cnt ++;
    314                                         }
    315                                 }
    316                         }
    317                 else
    318                         cons_printf(portid, "INVALID");
    319                 cons_putchar(portid, '\n');
    320                 }
    321 
    322 #endif  /* of #ifdef TCP_CFG_PASSIVE_OPEN */
    323 
    324         SIG_NET_CONS_PRINTF();
    325         FLUSH_SND_BUFF();
    326         }
    327 
    328 #endif  /* of #if defined(SUPPORT_INET4) */
    329 
    330 #if defined(SUPPORT_INET6)
    331 
    332 static void
    333 tcp_status (ID portid, char *line)
    334 {
    335         T_TCP_CEP*      cep;
    336         uint_t          len;
    337 
    338 #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
    339 
    340         T_TCP_TWCEP*    twcep;
    341 
    342 #endif  /* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
    343 
    344 #ifdef TCP_CFG_PASSIVE_OPEN
    345 
    346         T_TCP_REP*      rep;
    347         int_t           cnt;
    348 
    349 #endif  /* of #ifdef TCP_CFG_PASSIVE_OPEN */
    350 
    351         WAI_NET_CONS_PRINTF();
    352         cons_printf(portid,
    353                     "TCP CEP Status\n"
    354                     "ID  Snd-Q Rcv-Q Foreign Address                             State\n");
    355 
    356         for (cep = tcp_cep; cep < &tcp_cep[tmax_tcp_cepid]; cep ++)
    357                 if (!VALID_TCP_CEP(cep)) {
    358                         cons_printf(portid,
    359                                     "%2d%c     0     0"
    360                                     " -                                          "
    361                                     " INVALID\n",
    362                                     GET_TCP_CEPID(cep),
    363                                     DYNAMIC_TCP_CEP(cep) ? 'D' : ' ');
    364                         }
    365                 else if (cep->fsm_state == TCP_FSM_CLOSED) {
    366                         cons_printf(portid,
    367                                     "%2d%c     0     0"
    368                                     " -                                          "
    369                                     " CLOSED\n",
    370                                     GET_TCP_CEPID(cep),
    371                                     DYNAMIC_TCP_CEP(cep) ? 'D' : ' ');
    372                         }
    373                 else if (cep->fsm_state == TCP_FSM_LISTEN) {
    374                         cons_printf(portid,
    375                                     "%2d%c     0     0"
    376                                     " -                                          "
    377                                     " LISTEN\n",
    378                                     GET_TCP_CEPID(cep),
    379                                     DYNAMIC_TCP_CEP(cep) ? 'D' : ' ');
    380                         }
    381                 else {
    382                         cons_printf(portid,
    383                                     "%2d%c %5d %5d ",
    384                                     GET_TCP_CEPID(cep),
    385                                     DYNAMIC_TCP_CEP(cep) ? 'D' : ' ',
    386                                     cep->swbuf_count, cep->rwbuf_count);
    387                         len  = PUT_IPADDR(portid, &cep->dstaddr.ipaddr, 0);
    388                         cons_putchar(portid, '.');
    389                         len += cons_putnumber(portid, cep->dstaddr.portno, 10, radhex, 0, false, ' ');
    390                         for (len = 42 - len; len -- > 0; )
    391                                 cons_putchar(portid, ' ');
    392                         if (cep->fsm_state == TCP_FSM_TIME_WAIT)
    393                                 cons_printf(portid, " %s(%d)\n", tcp_fsm_str[cep->fsm_state],
    394                                                     cep->timer[TCP_TIM_2MSL] / TCP_SLOW_HZ);
    395                         else
    396                                 cons_printf(portid, " %s\n", tcp_fsm_str[cep->fsm_state]);
    397                         }
    398 
    399 #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
    400 
    401         for (twcep = tcp_twcep; twcep < &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep ++) {
    402                 if (twcep->fsm_state == TCP_FSM_CLOSED) {
    403                         cons_printf(portid,
    404                                     "%2dTW    0     0"
    405                                     " -                                          "
    406                                     " CLOSED\n",
    407                                     GET_TCP_TWCEPID(twcep));
    408                         }
    409                 else {
    410                         cons_printf(portid, "%2dTW    0     0 ", GET_TCP_TWCEPID(twcep));
    411                         len  = PUT_IPADDR(portid, &twcep->dstaddr.ipaddr, 0);
    412                         cons_putchar(portid, '.');
    413                         len += cons_putnumber(portid, twcep->dstaddr.portno, 10, radhex, 0, false, ' ');
    414                         for (len = 42 - len; len -- > 0; )
    415                                 cons_putchar(portid, ' ');
    416                         if (twcep->fsm_state == TCP_FSM_TIME_WAIT)
    417                                 cons_printf(portid, " %s(%d)\n", tcp_fsm_str[twcep->fsm_state],
    418                                                     twcep->timer_2msl / TCP_SLOW_HZ);
    419                         else
    420                                 cons_printf(portid, " %s\n", tcp_fsm_str[twcep->fsm_state]);
    421                         }
    422                 }
    423 
    424 #endif  /* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
    425 
    426 #ifdef TCP_CFG_PASSIVE_OPEN
    427 
    428         cons_printf(portid,
    429                     "TCP REP Status\n"
    430                     "ID  Local Address         CEP\n");
    431         for (rep = tcp_rep; rep < &tcp_rep[tmax_tcp_repid]; rep ++) {
    432                 cons_printf(portid, "%2d%c ", GET_TCP_REPID(rep), DYNAMIC_TCP_REP(rep) ? 'D' : ' ');
     444        for (repid = TMIN_TCP6_REPID; repid <= tmax_tcp6_repid; repid ++) {
     445                rep = GET_TCP6_REP(repid);
     446                cons_printf(portid, "%2d%c ", GET_TCP6_REPID(rep), DYNAMIC_TCP_REP(rep) ? 'D' : ' ');
    433447                if (VALID_TCP_REP(rep)) {
    434448                        len  = PUT_IPADDR(portid, &rep->myaddr.ipaddr, 0);
     
    439453                        cnt = 0;
    440454                        for (cep = tcp_cep; cep < &tcp_cep[tmax_tcp_cepid]; cep ++) {
    441                                 if (cep->rep == rep) {
     455                                if (TCP_IS_CEP_IPV6(cep) && cep->rep == rep) {
    442456                                        if (cnt > 0)
    443457                                                cons_printf(portid, ",%d", GET_TCP_CEPID(cep));
     
    452466                cons_putchar(portid, '\n');
    453467                }
    454 
    455 #endif  /* of #ifdef TCP_CFG_PASSIVE_OPEN */
    456 
    457         SIG_NET_CONS_PRINTF();
    458         FLUSH_SND_BUFF();
    459         }
    460 
    461 #endif  /* of #if defined(SUPPORT_INET6) */
    462 
    463 #endif  /* of #ifdef SUPPORT_TCP */
    464 
    465 #ifdef SUPPORT_UDP
    466 
    467 /*
    468  *  udp_status -- UDP の状態の出力
    469  */
     468        }
     469
     470#endif  /* of #if TNUM_TCP6_REPID > 0 */
     471
     472#if TNUM_TCP4_REPID > 0
    470473
    471474static void
    472 udp_status (ID portid, char *line)
    473 {
    474         T_UDP_CEP*      cep;
     475tcp4_rep_status (ID portid, char *line)
     476{
     477        T_TCP_CEP*      cep;
     478        T_TCP4_REP*     rep;
     479        ID              repid;
     480        int_t           cnt;
    475481        uint_t          len;
    476482
    477         WAI_NET_CONS_PRINTF();
    478483        cons_printf(portid,
    479                     "UDP CEP Status\n"
    480                     "ID  Local Address\n");
    481 
    482         for (cep = udp_cep; cep < &udp_cep[tmax_udp_ccepid]; cep ++) {
    483                 cons_printf(portid, "%2d%c ", GET_UDP_CEPID(cep), DYNAMIC_UDP_CEP(cep) ? 'D' : ' ');
    484                 if (VALID_UDP_CEP(cep)) {
    485                         len  = PUT_IPADDR(portid, &cep->myaddr.ipaddr, 0);
    486                         cons_putchar(portid, '.');
    487                         len += cons_putnumber(portid, cep->myaddr.portno, 10, radhex, 0, false, ' ');
     484                    "TCP4 REP Status\n"
     485                    "ID  Local Address         CEP\n");
     486        for (repid = TMIN_TCP4_REPID; repid <= tmax_tcp4_repid; repid ++) {
     487                rep = GET_TCP4_REP(repid);
     488                cons_printf(portid, "%2d%c ", GET_TCP4_REPID(rep), DYNAMIC_TCP_REP(rep) ? 'D' : ' ');
     489                if (VALID_TCP_REP(rep)) {
     490                        len  = put_ipv4addr(portid, &rep->myaddr.ipaddr, 0);
     491                        cons_putchar(portid, ':');
     492                        len += cons_putnumber(portid, rep->myaddr.portno, 10, radhex, 0, false, ' ');
     493                        for (len = 21 - len; len -- > 0; )
     494                                cons_putchar(portid, ' ');
     495                        cnt = 0;
     496                        for (cep = tcp_cep; cep < &tcp_cep[tmax_tcp_cepid]; cep ++) {
     497
     498#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
     499
     500                                if (TCP_IS_CEP_IPV4(cep) && cep->rep4 == rep) {
     501
     502#else   /* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
     503
     504                                if (TCP_IS_CEP_IPV4(cep) && cep->rep == rep) {
     505
     506#endif  /* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
     507
     508                                        if (cnt > 0)
     509                                                cons_printf(portid, ",%d", GET_TCP_CEPID(cep));
     510                                        else
     511                                                cons_printf(portid, "%d", GET_TCP_CEPID(cep));
     512                                        cnt ++;
     513                                        }
     514                                }
    488515                        }
    489516                else
     
    491518                cons_putchar(portid, '\n');
    492519                }
     520        }
     521
     522#endif  /* of #if TNUM_TCP4_REPID > 0 */
     523
     524static void
     525tcp_status (ID portid, char *line)
     526{
     527        WAI_NET_CONS_PRINTF();
     528
     529        tcp_cep_status(portid, line);
     530
     531#if TNUM_TCP6_REPID > 0
     532        tcp6_rep_status(portid, line);
     533#endif
     534
     535#if TNUM_TCP4_REPID > 0
     536        tcp4_rep_status(portid, line);
     537#endif
    493538
    494539        SIG_NET_CONS_PRINTF();