Date: Sat, 6 Aug 2005 22:06:58 +0100 (BST) From: Robert Watson <rwatson@FreeBSD.org> To: Minh Tran <mtran@groupwise.swin.edu.au> Cc: freebsd-hackers@freebsd.org Subject: Re: Kernel code of reseting/ignoring tcp SYN packets Message-ID: <20050806220421.A11054@fledge.watson.org> In-Reply-To: <s2f52ee3.024@groupwise.swin.edu.au> References: <s2f52ee3.024@groupwise.swin.edu.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 6 Aug 2005, Minh Tran wrote: > I was looking around for the files of Kernel code where SYN messages are > sent, so we can simply inject some code to send back a reset messages or > ignore the SYN requests. I was looking at the function ioctl() which > takes fd of the tcp socket. As i track the function down, there is also > another call to the dev_ioclt() function where all parameters are passed > down. However, i was not sucessful with finding out the description of > this dev_ioclt() function. I am having a bit of trouble in finding out > the way of injecting code in the kernel to deal with SYN packets. I am > thinking of using ipfw to either reset or drop SYN packets. > > Would anyone have some hints on the clean way of injecting some code to > deal with SYN packets or could you give me some ideas on which files i > should look at? I really appreciate that. I saw some promising files in > src/sys/netinet but they are not all clear in my mind. TCP packet input processing occurs in src/sys/netinet/tcp_input.c:tcp_input(). This is a very large function, so you will want to search for the following line, which precedes responsible for the processing of SYN packets that will form new connections: if (so->so_options & SO_ACCEPTCONN) { FreeBSD makes use of a combined syncache/syncookie mechanism, so you're probably also interested in tcp_syncache.c. Robert N M Watson
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050806220421.A11054>