This patch allows to disable the RTnet IPv4 ICMP support, which might be useful when using the RTnet-Proxy add-on. ICMP will then be handled by the Linux network stack. ICMP support in RTnet is enabled by default and it can be disabled with the configure option "--disable-icmp".
Note: this patch requires running "scripts/autogen.sh" Signed-off-by: Wolfang Grandegger <[EMAIL PROTECTED]> Index: rtnet/stack/ipv4/af_inet.c =================================================================== --- rtnet.orig/stack/ipv4/af_inet.c +++ rtnet/stack/ipv4/af_inet.c @@ -79,6 +79,7 @@ static void cleanup_route_solicit(void * +#ifdef CONFIG_RTNET_RTIPV4_ICMP static int ping_handler(struct rt_proc_call *call) { struct ipv4_cmd *cmd; @@ -114,6 +115,7 @@ static void ping_complete_handler(struct usr_cmd->args.ping.ip_addr = cmd->args.ping.ip_addr; usr_cmd->args.ping.rtt = cmd->args.ping.rtt; } +#endif /* CONFIG_RTNET_RTIPV4_ICMP */ @@ -187,6 +189,7 @@ static int ipv4_ioctl(struct rtnet_devic break; #endif /* CONFIG_RTNET_RTIPV4_NETROUTING */ +#ifdef CONFIG_RTNET_RTIPV4_ICMP case IOC_RT_PING: ret = rtpc_dispatch_call(ping_handler, cmd.args.ping.timeout, &cmd, sizeof(cmd), ping_complete_handler, NULL); @@ -197,6 +200,7 @@ static int ipv4_ioctl(struct rtnet_devic if (ret < 0) rt_icmp_cleanup_echo_requests(); break; +#endif /* CONFIG_RTNET_RTIPV4_ICMP */ default: ret = -ENOTTY; @@ -338,7 +342,9 @@ int __init rt_ipv4_proto_init(void) for (i=0; i<MAX_RT_INET_PROTOCOLS; i++) rt_inet_protocols[i]=NULL; +#ifdef CONFIG_RTNET_RTIPV4_ICMP rt_icmp_init(); +#endif /* CONFIG_RTNET_RTIPV4_ICMP */ rt_udp_init(); #ifdef CONFIG_PROC_FS @@ -372,7 +378,9 @@ int __init rt_ipv4_proto_init(void) #endif /* CONFIG_PROC_FS */ rt_udp_release(); +#ifdef CONFIG_RTNET_RTIPV4_ICMP rt_icmp_release(); +#endif /* CONFIG_RTNET_RTIPV4_ICMP */ rt_arp_release(); rt_ip_release(); @@ -393,7 +401,9 @@ void __exit rt_ipv4_proto_release(void) /* Transport-Layer */ rt_udp_release(); +#ifdef CONFIG_RTNET_RTIPV4_ICMP rt_icmp_release(); +#endif /* CONFIG_RTNET_RTIPV4_ICMP */ /* Network-Layer */ rt_arp_release(); Index: rtnet/configure.ac =================================================================== --- rtnet.orig/configure.ac +++ rtnet/configure.ac @@ -1023,6 +1023,19 @@ if test "$CONFIG_RTNET_RTIPV4" = "y"; th AC_DEFINE(CONFIG_RTNET_RTIPV4,1,[Real-Time IPv4 support]) fi +AC_MSG_CHECKING([whether to enable real-time IPv4 ICMP support]) +AC_ARG_ENABLE(icmp, + AS_HELP_STRING([--enable-icmp], [enable real-time IPv4 ICMP support @<:@default=yes@:>@]), + [case "$enableval" in + y | yes) CONFIG_RTNET_RTIPV4_ICMP=y ;; + *) CONFIG_RTNET_RTIPV4_ICMP=n ;; + esac]) +AC_MSG_RESULT([${CONFIG_RTNET_RTIPV4_ICMP:-n}]) +AM_CONDITIONAL(CONFIG_RTNET_RTIPV4_ICMP,[test "$CONFIG_RTNET_RTIPV4_ICMP" = "y"]) +if test "$CONFIG_RTNET_RTIPV4_ICMP" = "y"; then + AC_DEFINE(CONFIG_RTNET_RTIPV4_ICMP,1,[Real-Time IPv4 ICMP support]) +fi + AC_MSG_CHECKING([whether to enable source IP routing]) AC_ARG_ENABLE(route-src, AS_HELP_STRING([--enable-route-src], [enable source IP routing @<:@default=no@:>@]), Index: rtnet/defconfig =================================================================== --- rtnet.orig/defconfig +++ rtnet/defconfig @@ -33,6 +33,7 @@ CONFIG_RTNET_RX_FIFO_SIZE=32 # Protocols # CONFIG_RTNET_RTIPV4=y +CONFIG_RTNET_RTIPV4_ICMP=y # CONFIG_RTNET_RTIPV4_ROUTE_SRC is not set # CONFIG_RTNET_RTIPV4_NETROUTING is not set # CONFIG_RTNET_RTIPV4_ROUTER is not set Index: rtnet/stack/ipv4/GNUmakefile.am =================================================================== --- rtnet.orig/stack/ipv4/GNUmakefile.am +++ rtnet/stack/ipv4/GNUmakefile.am @@ -16,10 +16,13 @@ libkernel_ipv4_a_SOURCES = \ ip_input.c \ ip_sock.c \ udp.c \ - icmp.c \ ip_output.c \ ip_fragment.c +if CONFIG_RTNET_RTIPV4_ICMP +libkernel_ipv4_a_SOURCES += icmp.c +endif + OBJS = rtipv4$(modext) rtipv4.o: libkernel_ipv4.a -- ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ RTnet-users mailing list RTnet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rtnet-users