opnsense-src/sys/netinet
Bruce M Simpson a3fd02d88b Fix undirected broadcast sends for the case where SO_DONTROUTE has also
been set at the socket layer, in our somewhat convoluted IPv4 source
selection logic in ip_output().

IP_ONESBCAST is actually a special case of SO_DONTROUTE, as 255.255.255.255
must always be delivered on a local link with a TTL of 1.

If IP_ONESBCAST has been set at the socket layer, also perform destination
interface lookup for point-to-point interfaces based on the destination
address of the link; previously it was not possible to use the option with
such interfaces; also, the destination/broadcast address fields map to the
same field within struct ifnet, which doesn't help matters.

One more valid fix going forward for these issues is to treat 255.255.255.255
as a destination in its own right in the forwarding trie. Other
implementations do this. It fits with the use of multiple paths, though
it then becomes necessary to specify interface preference.
This hack will eventually go away when that comes to pass.

Reviewed by:	andre
MFC after:	1 week
2007-03-01 13:29:30 +00:00
..
libalias o made in kernel libalias mpsafe 2006-12-15 12:50:06 +00:00
accf_data.c add missing #include <sys/module.h> 2004-05-30 20:27:19 +00:00
accf_http.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
icmp6.h sync with KAME regarding NDP 2005-10-21 16:23:01 +00:00
icmp_var.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
if_atm.c Add newline to debuging printf. 2005-08-26 15:27:18 +00:00
if_atm.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
if_ether.c Comply with RFC 3927, by forcing ARP replies which contain a source 2007-02-02 20:31:44 +00:00
if_ether.h Add CARP (Common Address Redundancy Protocol), which allows multiple 2005-02-22 13:04:05 +00:00
igmp.c Improve style(9) conformance of igmp.c. 2006-12-04 00:41:48 +00:00
igmp.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
igmp_var.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
in.c In regular forwarding path, reject packets destined for 169.254.0.0/16 2007-02-03 06:45:51 +00:00
in.h Add INADDR_ALLRPTS_GROUP define for 224.0.0.22 for future IGMPv3 support. 2007-02-27 14:45:37 +00:00
in_cksum.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
in_gif.c With exception of the if_name() macro, all definitions in net_osdep.h 2006-08-04 21:27:40 +00:00
in_gif.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
in_pcb.c #ifdef INET6 printing of inpcb IPv6 addresses in DDB. Patch committed 2007-02-18 08:57:23 +00:00
in_pcb.h Add "show inpcb", "show tcpcb" DDB commands, which should come in handy 2007-02-17 21:02:38 +00:00
in_proto.c Build PIM by default as part of the IPv4 multicast forwarding path. 2007-02-10 13:59:13 +00:00
in_rmx.c Complete timebase (time_second -> time_uptime) conversion. 2006-07-05 23:37:21 +00:00
in_systm.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
in_var.h The IPv4 code should clean up multicast group state when an interface 2006-09-28 10:04:07 +00:00
ip.h Marking this as __packed was needed to get the alignment and offset of 2007-01-12 07:23:31 +00:00
ip6.h move RFC3542 related definitions into ip6.h. 2005-07-20 10:30:52 +00:00
ip_carp.c Since rev. 1.94 of netinet/in.c, the netinet layer frees all its 2007-02-02 09:39:09 +00:00
ip_carp.h Make sure that carp_header is 36 bytes long 2006-12-01 18:37:41 +00:00
ip_divert.c Some whitespace nits and remove a few casts. 2006-12-29 14:58:18 +00:00
ip_divert.h Convert IPDIVERT into a loadable module. This makes use of the dynamic loadability 2004-10-19 21:14:57 +00:00
ip_dummynet.c - Use non-recursive mutex. MTX_RECURSE is unnecessary since rev. 1.70 2006-10-29 12:09:24 +00:00
ip_dummynet.h When sending a packet from dummynet, indicate that we're forwarding 2006-02-14 06:36:39 +00:00
ip_ecn.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ip_ecn.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ip_encap.c With exception of the if_name() macro, all definitions in net_osdep.h 2006-08-04 21:27:40 +00:00
ip_encap.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ip_fastfwd.c When fast-forwarding is enabled, do not forward directed IPv4 broadcasts 2007-02-05 00:15:40 +00:00
ip_fw.h Summer of Code 2005: improve libalias - part 2 of 2 2006-12-29 21:59:17 +00:00
ip_fw2.c Include opt_ipdivert.h so that the message announcing ipfw correctly 2007-02-03 22:11:53 +00:00
ip_fw_pfil.c Summer of Code 2005: improve libalias - part 2 of 2 2006-12-29 21:59:17 +00:00
ip_gre.c Fix the following bpf(4) race condition which can result in a panic: 2006-06-02 19:59:33 +00:00
ip_gre.h Fix stack corruptions on amd64. 2006-01-21 10:44:34 +00:00
ip_icmp.c Complete break-out of sys/sys/mac.h into sys/security/mac/mac_framework.h 2006-10-22 11:52:19 +00:00
ip_icmp.h Pass icmp_error() the MTU argument directly instead of 2005-05-04 13:09:19 +00:00
ip_id.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
ip_input.c In regular forwarding path, reject packets destined for 169.254.0.0/16 2007-02-03 06:45:51 +00:00
ip_ipsec.c Remove unneeded mac.h include. 2006-07-06 13:25:01 +00:00
ip_ipsec.h Move the IPSEC related code blocks to their own file to unclutter 2006-02-01 13:55:03 +00:00
ip_mroute.c Style: Move declaration of subsystem mutex to where other 2007-02-28 20:02:24 +00:00
ip_mroute.h Store the cached route in vifp in the normal send_packet() case. 2007-02-08 23:05:08 +00:00
ip_options.c Complete break-out of sys/sys/mac.h into sys/security/mac/mac_framework.h 2006-10-22 11:52:19 +00:00
ip_options.h Move MAX_IPOPTLEN and struct ipoption back into ip_var.h as 2005-11-19 14:01:32 +00:00
ip_output.c Fix undirected broadcast sends for the case where SO_DONTROUTE has also 2007-03-01 13:29:30 +00:00
ip_var.h Fix a long-standing limitation in IPv4 multicast group membership. 2006-05-14 14:22:49 +00:00
ipprotosw.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
pim.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
pim_var.h Remove public declarations of variables that were forgotten when they were 2005-08-10 07:10:02 +00:00
raw_ip.c Summer of Code 2005: improve libalias - part 2 of 2 2006-12-29 21:59:17 +00:00
sctp.h Ok, here it is, we finally add SCTP to current. Note that this 2006-11-03 15:23:16 +00:00
sctp_asconf.c - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_asconf.h - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_auth.c - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_auth.h - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_bsd_addr.c - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_bsd_addr.h - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_constants.h - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_crc32.c - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_crc32.h - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_header.h Ok, here it is, we finally add SCTP to current. Note that this 2006-11-03 15:23:16 +00:00
sctp_indata.c - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_indata.h - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_input.c - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_input.h - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_lock_bsd.h 1) Fixes on a number of different collision case LOR's. 2006-12-14 17:02:55 +00:00
sctp_os.h - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_os_bsd.h - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_output.c - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_output.h - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_pcb.c - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_pcb.h - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_peeloff.c - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_peeloff.h - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_structs.h - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_timer.c - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_timer.h - most all includes (#include <>) migrate to the sctp_os_bsd.h file 2007-01-18 09:58:43 +00:00
sctp_uio.h - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_usrreq.c - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctp_var.h - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctputil.c - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
sctputil.h - Copyright updates (aka 2007) 2007-02-12 23:24:31 +00:00
tcp.h Expose smoothed RTT and RTT variance measurements to userland via 2007-02-02 18:34:18 +00:00
tcp_debug.c /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
tcp_debug.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
tcp_fsm.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
tcp_hostcache.c MFp4: 92972, 98913 + one more change 2006-12-12 12:17:58 +00:00
tcp_input.c In the SYN_SENT case, Initialize the snd_wnd before the call to tcp_mss(). 2007-02-28 20:48:00 +00:00
tcp_output.c Prevent TSO mbuf chain from overflowing a few bytes by subtracting the 2007-03-01 13:12:09 +00:00
tcp_reass.c In the SYN_SENT case, Initialize the snd_wnd before the call to tcp_mss(). 2007-02-28 20:48:00 +00:00
tcp_sack.c Eliminate debug code that catches bugs in the hinting of sack variables 2006-04-06 17:21:16 +00:00
tcp_seq.h Remove T/TCP RFC1644 Connection Count comparison macros. They are no longer 2006-06-18 14:24:12 +00:00
tcp_subr.c Reap FIN_WAIT_2 connections marked SOCANTRCVMORE faster. This mitigate 2007-02-26 22:25:21 +00:00
tcp_syncache.c Change the way the advertized TCP window scaling is computed. Instead of 2007-02-01 17:39:18 +00:00
tcp_timer.c Reap FIN_WAIT_2 connections marked SOCANTRCVMORE faster. This mitigate 2007-02-26 22:25:21 +00:00
tcp_timer.h Reap FIN_WAIT_2 connections marked SOCANTRCVMORE faster. This mitigate 2007-02-26 22:25:21 +00:00
tcp_timewait.c Reap FIN_WAIT_2 connections marked SOCANTRCVMORE faster. This mitigate 2007-02-26 22:25:21 +00:00
tcp_usrreq.c Reap FIN_WAIT_2 connections marked SOCANTRCVMORE faster. This mitigate 2007-02-26 22:25:21 +00:00
tcp_var.h Reap FIN_WAIT_2 connections marked SOCANTRCVMORE faster. This mitigate 2007-02-26 22:25:21 +00:00
tcpip.h /* -> /*- for license, minor formatting changes 2005-01-07 01:45:51 +00:00
udp.h Gratuitous UDP restyling toward style(9) in 7.x. 2007-02-20 10:13:11 +00:00
udp_usrreq.c Rename two identically named log_in_vain variables: tcp_input.c's static 2007-02-20 10:20:03 +00:00
udp_var.h Rename two identically named log_in_vain variables: tcp_input.c's static 2007-02-20 10:20:03 +00:00