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++;
pgpJYhHVR2vhV.pgp
Description: PGP signature
