freebsd-dev/sys/netinet
Luigi Rizzo 772759420f Implement probabilistic rule match in ipfw. Each rule can be associated
with a match probability to achieve non-deterministic behaviour of
the firewall. This can be extremely useful for testing purposes
such as simulating random packet drop without having to use dummynet
(which already does the same thing), and simulating multipath effects
and the associated out-of-order delivery (this time in conjunction
with dummynet).

The overhead on normal rules is just one comparison with 0.

Since it would have been trivial to implement this by just adding
a field to the ip_fw structure, I decided to do it in a
backward-compatible way (i.e. struct ip_fw is unchanged, and as a
consequence you don't need to recompile ipfw if you don't want to
use this feature), since this was also useful for -STABLE.

When, at some point, someone decides to change struct ip_fw, please
add a length field and a version number at the beginning, so userland
apps can keep working even if they are out of sync with the kernel.
1999-08-11 15:34:47 +00:00
..
libalias Don't get caught in an infinite recursion when PKT_ALIAS_REVERSE 1999-06-22 11:20:03 +00:00
fil.c Staticize some more. 1998-11-26 18:54:52 +00:00
icmp_var.h * Change sysctl from using linker_set to construct its tree using SLISTs. 1999-02-16 10:49:55 +00:00
if_atm.c update ATM driver. (base version: midway.c 1.67 --> 1.68) 1998-07-29 05:35:16 +00:00
if_atm.h Forward declare some structs so that this file is more self-sufficient. 1998-02-03 21:52:02 +00:00
if_ether.c Add sufficient braces to keep egcs happy about potentially ambiguous 1999-05-06 18:13:11 +00:00
if_ether.h Make INET a proper option. 1998-01-08 23:42:31 +00:00
if_fddi.h Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
igmp_var.h Move kernel-only declaration inside #ifdef KERNEL section. 1999-03-06 04:51:41 +00:00
igmp.c Rename igmp's MALLOC; it doesn't have anything to do with multicast routing. 1999-01-18 01:56:31 +00:00
igmp.h Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
in_cksum.c Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
in_hostcache.c Remove a bunch of variables which were unused both in GENERIC and LINT. 1997-11-07 08:53:44 +00:00
in_hostcache.h Add for public examination the beginnings of the per-host cache support 1997-06-18 01:24:28 +00:00
in_pcb.c Correct a mistake in so_cred changes. In practice, I don't think that it 1999-07-12 18:58:23 +00:00
in_pcb.h This Implements the mumbled about "Jail" feature. 1999-04-28 11:38:52 +00:00
in_proto.c * Change sysctl from using linker_set to construct its tree using SLISTs. 1999-02-16 10:49:55 +00:00
in_rmx.c Add sysctl descriptions to many SYSCTL_XXXs 1999-05-03 23:57:32 +00:00
in_systm.h Declare n_short, n_long and n_time as fixed-sized types. Don't ifdef 1998-07-13 10:54:24 +00:00
in_var.h * Change sysctl from using linker_set to construct its tree using SLISTs. 1999-02-16 10:49:55 +00:00
in.c Suser() simplification: 1999-04-27 11:18:52 +00:00
in.h Make ipfw's logging more dynamic. Now, log will use the default limit 1999-08-01 16:57:24 +00:00
ip_auth.c Staticize some more. 1998-11-26 18:54:52 +00:00
ip_auth.h Made some disgusting ifdefs even more disgusting to enable the support 1998-08-15 21:51:53 +00:00
ip_compat.h Import ipfilter 3.2.7 kernel components 1998-06-20 18:18:05 +00:00
ip_divert.c Suser() simplification: 1999-04-27 11:18:52 +00:00
ip_dummynet.c Add spl() protection to remove that the timer is invoked multiple 1999-08-11 14:37:58 +00:00
ip_dummynet.h assorted dummynet cleanup: 1999-05-04 07:30:08 +00:00
ip_fil.c Examine all occurrences of sprintf(), strcat(), and str[n]cpy() 1998-12-04 22:54:57 +00:00
ip_fil.h Merge ipfilter 3.2.3 -> 3.2.7 changes onto mainline. 1998-06-20 18:37:51 +00:00
ip_flow.c Add sysctl descriptions to many SYSCTL_XXXs 1999-05-03 23:57:32 +00:00
ip_flow.h Move (private) struct ipflow out of ip_var.h, to reduce dependencies 1998-05-19 15:53:50 +00:00
ip_frag.c Staticize some more. 1998-11-26 18:54:52 +00:00
ip_frag.h Import ipfilter 3.2.7 kernel components 1998-06-20 18:18:05 +00:00
ip_ftp_pxy.c Add RCS strings to kernel ipfilter files. 1999-06-19 11:35:41 +00:00
ip_fw.c Implement probabilistic rule match in ipfw. Each rule can be associated 1999-08-11 15:34:47 +00:00
ip_fw.h Implement probabilistic rule match in ipfw. Each rule can be associated 1999-08-11 15:34:47 +00:00
ip_icmp.c Add net.inet.icmp.log_redirect and net.inet.icmp.drop_redirect, for 1999-08-10 09:45:33 +00:00
ip_icmp.h Declare id_mask as a fixed-size type. 1998-07-13 11:01:03 +00:00
ip_input.c Made net.inet.ip.intr_queue_maxlen writeable. 1999-05-27 12:20:33 +00:00
ip_log.c The "easy" fixes for compiling the kernel -Wunused: remove unreferenced static 1998-12-07 21:58:50 +00:00
ip_mroute.c Add sufficient braces to keep egcs happy about potentially ambiguous 1999-05-06 18:13:11 +00:00
ip_mroute.h Use dynamic memory allocation instead of mbuf's for multicast routing 1999-01-18 02:06:59 +00:00
ip_nat.c Staticize some more. 1998-11-26 18:54:52 +00:00
ip_nat.h Made some disgusting ifdefs even more disgusting to enable the support 1998-08-15 21:51:53 +00:00
ip_output.c Free the dummynet descriptor in ip_dummynet, not in the called 1999-05-04 16:20:33 +00:00
ip_proxy.c Fix warnings in preparation for adding -Wall -Wcast-qual to the 1999-01-27 22:42:27 +00:00
ip_proxy.h Import kernel parts of ipfilter v3.2.3 1998-03-21 10:11:54 +00:00
ip_state.c Fix warnings in preparation for adding -Wall -Wcast-qual to the 1999-01-27 22:42:27 +00:00
ip_state.h Import ipfilter 3.2.7 kernel components 1998-06-20 18:18:05 +00:00
ip_var.h Re-implement tcp and ip fragment reassembly to not store pointers in the 1998-08-24 07:47:39 +00:00
ip.h Fixed pedantic semantics errors (bitfields not of type int, signed int 1998-06-07 12:00:13 +00:00
ipl.h Add RCS strings to kernel ipfilter files. 1999-06-19 11:35:41 +00:00
mlf_ipl.c Add RCS strings to kernel ipfilter files. 1999-06-19 11:35:41 +00:00
raw_ip.c Make ipfw's logging more dynamic. Now, log will use the default limit 1999-08-01 16:57:24 +00:00
tcp_debug.c Fixed printf format errors. 1998-08-17 01:05:25 +00:00
tcp_debug.h Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
tcp_fsm.h Two cosmetic changes, one a typo and the other, a clarification. 1999-04-07 22:22:06 +00:00
tcp_input.c fix comment re: RST received in TIME_WAIT to match the code. 1999-07-18 14:42:48 +00:00
tcp_output.c Added net.inet.tcp.path_mtu_discovery variable which when set to 0 1999-05-27 12:24:21 +00:00
tcp_reass.c fix comment re: RST received in TIME_WAIT to match the code. 1999-07-18 14:42:48 +00:00
tcp_seq.h Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00
tcp_subr.c Two new sysctls: net.inet.tcp.getcred and net.inet.udp.getcred. These take 1999-07-11 18:32:46 +00:00
tcp_timer.c Add sysctl descriptions to many SYSCTL_XXXs 1999-05-03 23:57:32 +00:00
tcp_timer.h Some staticized variables were still declared to be extern. 1997-09-07 05:27:26 +00:00
tcp_timewait.c Two new sysctls: net.inet.tcp.getcred and net.inet.udp.getcred. These take 1999-07-11 18:32:46 +00:00
tcp_usrreq.c Plug a mbuf leak in tcp_usr_send(). pru_send() routines are expected 1999-06-04 02:27:06 +00:00
tcp_var.h * Change sysctl from using linker_set to construct its tree using SLISTs. 1999-02-16 10:49:55 +00:00
tcp.h Declare tcp_seq and tcp_cc as fixed-size types. Half fixed type 1998-07-13 11:09:52 +00:00
tcpip.h Dike out some obsolete defines which referenced ih_next and ih_prev from 1998-09-26 14:26:59 +00:00
udp_usrreq.c Two new sysctls: net.inet.tcp.getcred and net.inet.udp.getcred. These take 1999-07-11 18:32:46 +00:00
udp_var.h This is the much-awaited cleaned up version of IPFW [ug]id support. 1999-06-19 18:43:33 +00:00
udp.h Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not 1997-02-22 09:48:43 +00:00