Date: Wed, 14 Mar 2007 07:48:11 -0700 From: Luigi Rizzo <rizzo@icir.org> To: Yar Tikhiy <yar@comp.chem.msu.su> Cc: freebsd-net@freebsd.org Subject: Re: Who is to load dummynet.ko? Message-ID: <20070314074811.A78933@xorpc.icir.org> In-Reply-To: <20070314141142.GB3830@comp.chem.msu.su>; from yar@comp.chem.msu.su on Wed, Mar 14, 2007 at 05:11:43PM %2B0300 References: <20070310153534.GA35834@comp.chem.msu.su> <20070313004543.A54774@xorpc.icir.org> <20070314095725.GA1766@comp.chem.msu.su> <20070314043506.A76618@xorpc.icir.org> <20070314141142.GB3830@comp.chem.msu.su>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Mar 14, 2007 at 05:11:43PM +0300, Yar Tikhiy wrote: > On Wed, Mar 14, 2007 at 04:35:06AM -0700, Luigi Rizzo wrote: ... > > actually, i think it is the kernel itself (in the setsockopt handler, > > once it validates the rule) that should load the module, and not leave > > the task to the userland utility. Other modules already do this, > > e.g. iwi loads the firmware autonomously, and maybe even netgraph components > > do something similar. > > > > For dummynet and divert, this can be surely put in the setsockopt > > handler which is in ipfw.ko - if you need to autoload ipfw.ko, > > then i am not sure where to put the hooks (in the kernel) but i am > > pretty confident that there must be a good place. > > As our fortune file puts it, "If God is dead, who will save the > Queen?" :-) We seem to have a sort of a chicken and egg problem not really. IP_FW_GET (and other commands) are processed in sys/netinet/raw_ip.c::rip_ctloutput() so it's there that we can try and autoload the module (if ip_fw_ctl_ptr == NULL). I don't know if there are hooks to autoload a protocol stack, as some are not modules - no ipv4.ko, ipv6.ko, but there is arcnet.ko, but you could in principle do the same thing with protocols and anywhere there is a missing function, annotate it with the functions to autoload the module supplying it. cheers luigi
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070314074811.A78933>