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
[email protected]
https://lists.sourceforge.net/lists/listinfo/rtnet-users