summaryrefslogtreecommitdiff
path: root/sys/modules/if_sl
diff options
context:
space:
mode:
Diffstat (limited to 'sys/modules/if_sl')
0 files changed, 0 insertions, 0 deletions
unt to many megabytes of dead weight in RAM. Maximum Segment Lifetimes Truncation (MSLT) assigns each TCP session to a class based on the nearness of the peer. Corresponding to each class is an MSL, and a session uses the MSL of its class. The classes are loopback (local host equals remote host), local (local host and remote host are on the same link/subnet), and remote (local host and remote host communicate via one or more gateways). Classes corresponding to nearer peers have lower MSLs by default: 2 seconds for loopback, 10 seconds for local, 60 seconds for remote. Loopback and local sessions expire more quickly when MSLT is used. Vestigial Time-Wait (VTW) replaces a TIME_WAIT session's PCB/socket dead weight with a compact representation of the session, called a "vestigial PCB". VTW data structures are designed to be very fast and memory-efficient: for fast insertion and lookup of vestigial PCBs, the PCBs are stored in a hash table that is designed to minimize the number of cacheline visits per lookup/insertion. The memory both for vestigial PCBs and for elements of the PCB hashtable come from fixed-size pools, and linked data structures exploit this to conserve memory by representing references with a narrow index/offset from the start of a pool instead of a pointer. When space for new vestigial PCBs runs out, VTW makes room by discarding old vestigial PCBs, oldest first. VTW cooperates with MSLT. It may help to think of VTW as a "FIN cache" by analogy to the SYN cache. A 2.8-GHz Pentium 4 running a test workload that creates TIME_WAIT sessions as fast as it can is approximately 17% idle when VTW is active versus 0% idle when VTW is inactive. It has 103 megabytes more free RAM when VTW is active (approximately 64k vestigial PCBs are created) than when it is inactive. 2011-01-11Ensure that a) loopback attaches after all the domains have attachedpooka b) loopback is configured only after it has attached. makes tests/net/if_loop work again 2011-01-09Autoconfigure 127.0.0.1 for lo0.pooka (testing bind/connect/etc. is now possible on a virgin rump kernel without the need to ifconfig anything) 2010-08-10Support carp. It would be nice to support this as its own component,pooka but there's about 1000 lines of #ifdef which disagree with my wish. 2010-07-13Split-off IPv4 re-assembly mechanism into a separate module. Abstractrmind into ip_reass_init(), ip_reass_lookup(), etc (note: abstraction is not yet complete). No functional changes to the actual mechanism. OK matt@ 2010-03-01Introduce RUMP_COMPONENT. It behaves mostly like a simplifiedpooka module which is linked into the kernel and cannot be unloaded. The main purpose is to get the proper constructors run and create any /dev nodes necessary for said component. Once more of the kernel (e.g. networking stack and device drivers) are converted to MODULE and devfs pops up from somewhere, rump components can be retired. 2010-02-16Globally define -Wno-pointer-sign, as it has become a pointlesspooka exercise of "add it to every Makefile individually". XXX: should autosynchronize with the rest of the kernel buildflags in sys/conf/Makefile.kern.inc. 2009-12-11Include component.c instead of dummy.c so that domain constructorspooka get properly called. 2009-05-28Use a bunch of weak symbols to determine which network componentspooka are present. This works in userspace as opposed relying in link sets, which fail miserably. Later, when the networking stack becomes modularized, we can move to a dynamic scheme like with file systems. Also, this change allows us to do proper autoconfig, namely attach the loopback interface iff it is present. 2009-05-26Support IPv6 in rump. I'd have liked to introduce a netinet6pooka component, but due to ifdef happiness permeating the sources, it's a compile decision for now, so netinet pulls in both inet and inet6. One issue, one single issue: the loopback interface still needs to be created for IPv6 to work. I have patches to take care of it automatically if the appropriate component (net) is present, but they require a bit more testing before commit. 2009-02-03Better define GATEWAY in opt_gateway.h instead of the Makefile sopooka UPDATE builds don't go all coocoo. 2009-02-01enable GATEWAYpooka 2009-01-01Purge multiple kernel opt files.pooka 2008-10-16Deal with the ld.so/linkset brokenness and compile all of libnetpooka and libnetinet into a big bunch for now. If they were separate libraries, the DOMAIN_DEFINE() in the latter on the linkline would not get noticed at "boot" time because of the abovementioned brokenness. One of these days I'll add code to dlopen() the libraries and resplit them, but this will allow things to work until then. 2008-10-13Add tcp debugging as a build option.pooka 2008-10-06Provide the TCP/IP as a rump library.pooka