Re: icmp echo_user
- From: Matus Harvan <mharvan@xxxxxxxxxxx>
- Date: Fri, 26 Oct 2007 17:31:28 +0200
Hi,
I was wondering if I could get some feedback about the patch and
whether others think it could be committed.
Matus
On Sun, Sep 09, 2007 at 10:11:52PM +0200, Matus Harvan wrote:
Hello,
I am a Google Summer of Code student working on mtund, aka Magic
Tunnel Daemon aka Super Tunnel Daemon,
http://wiki.freebsd.org/SuperTunnelDaemon.
For mtund it would be useful to tunnel in ICMP echo request/reply
pairs. For this being able to receive ICMP echo requests in the user
space would be helpful. Currently, ICMP echo requests are processed in
the kernel where an ICMP echo reply is generated, but they are not
passed to the user space. I would suggest the patch below, adding a
sysctl variable net.inet.icmp.echo_user, allowing to recevie the ICMP
echo requests in the user space on a raw IP/ICMP socket rather than
having the kernel generate a reply to them.
Matus
patch:
Index: ip_icmp.c
===================================================================
RCS file: /home/ncvs/src/sys/netinet/ip_icmp.c,v
retrieving revision 1.117
diff -d -u -r1.117 ip_icmp.c
--- ip_icmp.c 19 Jul 2007 22:34:25 -0000 1.117
+++ ip_icmp.c 6 Sep 2007 21:26:08 -0000
@@ -124,6 +124,10 @@
SYSCTL_INT(_net_inet_icmp, OID_AUTO, bmcastecho, CTLFLAG_RW,
&icmpbmcastecho, 0, "");
+static int icmpechouser = 0;
+SYSCTL_INT(_net_inet_icmp, OID_AUTO, echo_user, CTLFLAG_RW | CTLFLAG_SECURE,
+ &icmpechouser, 0, "Pass ICMP echo requests to userspace rather than"
+ "replying to them in the kernel");
#ifdef ICMPPRINTFS
int icmpprintfs = 0;
@@ -454,6 +458,9 @@
break;
case ICMP_ECHO:
+ if (icmpechouser)
+ goto raw;
+
if (!icmpbmcastecho
&& (m->m_flags & (M_MCAST | M_BCAST)) != 0) {
icmpstat.icps_bmcastecho++;
Attachment:
pgp58qBqiH1uv.pgp
Description: PGP signature
- Follow-Ups:
- Re: icmp echo_user
- From: Bruce M. Simpson
- Re: icmp echo_user
- Prev by Date: Re: UDP catchall
- Next by Date: Re: TCP listenall
- Previous by thread: Re: UDP catchall
- Next by thread: Re: icmp echo_user
- Index(es):
Relevant Pages
|
|