kernel-hacking-2024-linux-s.../include/net
Florian Westphal 4dfc281702 [Syncookies]: Add support for TCP options via timestamps.
Allow the use of SACK and window scaling when syncookies are used
and the client supports tcp timestamps. Options are encoded into
the timestamp sent in the syn-ack and restored from the timestamp
echo when the ack is received.

Based on earlier work by Glenn Griffin.
This patch avoids increasing the size of structs by encoding TCP
options into the least significant bits of the timestamp and
by not using any 'timestamp offset'.

The downside is that the timestamp sent in the packet after the synack
will increase by several seconds.

changes since v1:
 don't duplicate timestamp echo decoding function, put it into ipv4/syncookie.c
 and have ipv6/syncookies.c use it.
 Feedback from Glenn Griffin: fix line indented with spaces, kill redundant if ()

Reviewed-by: Hagen Paul Pfeifer <hagen@jauu.net>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-04-10 03:12:40 -07:00
..
9p 9p: add support for sticky bit 2008-02-06 19:25:06 -06:00
bluetooth bluetooth: Make hci_sock_cleanup() return void 2008-03-05 18:47:03 -08:00
irda irda: replace __inline with inline 2008-03-05 18:37:16 -08:00
iucv
netfilter [NETFILTER]: nf_conntrack_sip: support multiple media channels 2008-03-25 20:26:24 -07:00
netns [NETNS]: Create tcp control socket in the each namespace. 2008-04-03 14:31:33 -07:00
sctp [SCTP]: Remove sctp_add_cmd_sf wrapper bloat 2008-03-27 17:54:29 -07:00
tc_act
tipc [TIPC]: Eliminate "sparse" symbol warnings 2008-03-06 15:06:06 -08:00
act_api.h
addrconf.h [IPV6]: Unify ip6_onlink() and ipip6_onlink(). 2008-04-03 10:06:00 +09:00
af_rxrpc.h
af_unix.h
ah.h
arp.h
atmclip.h
ax25.h [AX25] ax25_ds_timer: use mod_timer instead of add_timer 2008-02-12 17:53:34 -08:00
ax88796.h
cfg80211.h nl80211/cfg80211: support for mesh, sta dumping 2008-03-06 15:30:41 -05:00
checksum.h
cipso_ipv4.h
compat.h
datalink.h
dn.h
dn_dev.h
dn_fib.h
dn_neigh.h
dn_nsp.h
dn_route.h
dsfield.h
dst.h [NET]: uninline dst_release 2008-03-27 17:53:31 -07:00
esp.h
fib_rules.h
flow.h
gen_stats.h
genetlink.h
icmp.h [NETNS][ICMP]: Move ICMP sysctls on struct net. 2008-03-26 01:55:37 -07:00
ieee80211.h include/net/ieee80211.h - remove duplicate include 2008-03-13 19:32:31 -04:00
ieee80211_crypt.h
ieee80211_radiotap.h
if_inet6.h [IPV6]: Reorg struct ifmcaddr6 to save some bytes 2008-02-03 04:28:54 -08:00
inet6_connection_sock.h
inet6_hashtables.h [SOCK] proto: Add hashinfo member to struct proto 2008-02-03 04:28:52 -08:00
inet_common.h [NETNS]: Inet control socket should not hold a namespace. 2008-04-03 14:28:30 -07:00
inet_connection_sock.h [INET]: Rename inet_csk_ctl_sock_create to inet_ctl_sock_create. 2008-04-03 14:22:32 -07:00
inet_ecn.h
inet_frag.h [NET]: Rename inet_frag.h identifiers COMPLETE, FIRST_IN, LAST_IN to INET_FRAG_* 2008-03-28 16:35:27 -07:00
inet_hashtables.h [NET] NETNS: Omit sock->sk_net without CONFIG_NET_NS. 2008-03-26 04:39:55 +09:00
inet_sock.h [IPV4,IPV6]: Share cork.rt between IPv4 and IPv6. 2008-03-25 10:23:59 +09:00
inet_timewait_sock.h [NETNS]: Compilation warnings under CONFIG_NET_NS. 2008-03-26 00:48:17 -07:00
inetpeer.h
ip.h [NETNS]: Add namespace parameter to ip_cmsg_send. 2008-03-24 15:30:27 -07:00
ip6_checksum.h
ip6_fib.h [NETNS][IPV6] rt6_info - move rt6_info structure inside the namespace 2008-03-04 13:48:30 -08:00
ip6_route.h [IPV6]: Remove unused declarations in include/net/ip6_route.h. 2008-04-10 02:31:20 -07:00
ip6_tunnel.h [IP_TUNNEL]: Don't limit the number of tunnels with generic name explicitly. 2008-02-23 20:19:20 -08:00
ip_fib.h [IPV4]: Fix compile error building without CONFIG_FS_PROC 2008-02-05 02:54:16 -08:00
ip_vs.h
ipcomp.h
ipconfig.h
ipip.h [IPV6] SIT: Add SIOCGETPRL ioctl to get/dump PRL. 2008-04-03 10:06:00 +09:00
ipv6.h [IPV6]: Remove three unused method declarations in include/net/ipv6.h 2008-03-27 17:39:19 -07:00
ipx.h
iw_handler.h
lapb.h
llc.h [LLC]: station source mac address 2008-03-28 16:28:36 -07:00
llc_c_ac.h
llc_c_ev.h
llc_c_st.h
llc_conn.h
llc_if.h [LLC]: Kill static inline llc_addrany 2008-02-29 11:46:17 -08:00
llc_pdu.h [LLC]: skb allocation size for responses 2008-03-31 21:02:47 -07:00
llc_s_ac.h
llc_s_ev.h
llc_s_st.h
llc_sap.h [LLC]: skb allocation size for responses 2008-03-31 21:02:47 -07:00
mac80211.h mac80211: notify mac from low level driver (iwlwifi) 2008-04-08 16:44:43 -04:00
mip6.h
ndisc.h [IPV6] Remove three method declarations in include/net/ndisc.h. 2008-04-10 02:01:21 -07:00
neighbour.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-03-27 18:48:56 -07:00
net_namespace.h [NETNS]: Declare init_net even without CONFIG_NET defined. 2008-04-03 13:04:33 -07:00
netdma.h
netevent.h
netlabel.h NetLabel: introduce a new kernel configuration API for NetLabel 2008-02-05 09:44:20 -08:00
netlink.h
netrom.h
nexthop.h
p8022.h
pkt_cls.h [PKT_SCHED]: Pass real namespace in net scheduler classifiers. 2008-03-27 16:53:37 -07:00
pkt_sched.h
protocol.h [NETNS]: Drop packets in the non-initial namespace on the per/protocol basis. 2008-03-24 15:33:00 -07:00
psnap.h
raw.h [RAW]: Add raw_hashinfo member on struct proto. 2008-03-22 16:56:51 -07:00
rawv6.h
red.h
request_sock.h [Syncookies]: Add support for TCP options via timestamps. 2008-04-10 03:12:40 -07:00
rose.h
route.h [NET] NETNS: Omit sock->sk_net without CONFIG_NET_NS. 2008-03-26 04:39:55 +09:00
rtnetlink.h
sch_generic.h
scm.h
slhc_vj.h
snmp.h
sock.h socket: sk_filter deinline 2008-04-10 01:43:09 -07:00
syncppp.h
tcp.h [Syncookies]: Add support for TCP options via timestamps. 2008-04-10 03:12:40 -07:00
tcp_states.h
timewait_sock.h
transp_v6.h [UDP]: Revert udplite and code split. 2008-03-06 16:22:02 -08:00
udp.h [SOCK][NETNS]: Add a struct net argument to sock_prot_inuse_add and _get. 2008-03-31 19:41:46 -07:00
udplite.h [UDP]: Revert udplite and code split. 2008-03-06 16:22:02 -08:00
wext.h
wireless.h cfg80211: don't export ieee80211_get_channel 2008-03-27 16:03:20 -04:00
x25.h
x25device.h
xfrm.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 2008-03-27 18:48:56 -07:00