linux/net
Gerrit Renker 6fdd34d43b dccp ccid-2: Phase out the use of boolean Ack Vector sysctl
This removes the use of the sysctl and the minisock variable for the Send Ack
Vector feature, as it now is handled fully dynamically via feature negotiation
(i.e. when CCID-2 is enabled, Ack Vectors are automatically enabled as per
 RFC 4341, 4.).

Using a sysctl in parallel to this implementation would open the door to
crashes, since much of the code relies on tests of the boolean minisock /
sysctl variable. Thus, this patch replaces all tests of type

	if (dccp_msk(sk)->dccpms_send_ack_vector)
		/* ... */
with
	if (dp->dccps_hc_rx_ackvec != NULL)
		/* ... */

The dccps_hc_rx_ackvec is allocated by the dccp_hdlr_ackvec() when feature
negotiation concluded that Ack Vectors are to be used on the half-connection.
Otherwise, it is NULL (due to dccp_init_sock/dccp_create_openreq_child),
so that the test is a valid one.

The activation handler for Ack Vectors is called as soon as the feature
negotiation has concluded at the
 * server when the Ack marking the transition RESPOND => OPEN arrives;
 * client after it has sent its ACK, marking the transition REQUEST => PARTOPEN.

Adding the sequence number of the Response packet to the Ack Vector has been
removed, since
 (a) connection establishment implies that the Response has been received;
 (b) the CCIDs only look at packets received in the (PART)OPEN state, i.e.
     this entry will always be ignored;
 (c) it can not be used for anything useful - to detect loss for instance, only
     packets received after the loss can serve as pseudo-dupacks.

There was a FIXME to change the error code when dccp_ackvec_add() fails.
I removed this after finding out that:
 * the check whether ackno < ISN is already made earlier,
 * this Response is likely the 1st packet with an Ackno that the client gets,
 * so when dccp_ackvec_add() fails, the reason is likely not a packet error.

Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Acked-by: Ian McDonald <ian.mcdonald@jandi.co.nz>
Signed-off-by: David S. Miller <davem@davemloft.net>
2008-12-08 01:19:06 -08:00
..
9p net: remove redundant argument comments 2008-11-21 17:15:03 -08:00
802 hippi: convert driver to net_device_ops 2008-11-20 20:32:15 -08:00
8021q vlan: convert to net_device_ops 2008-11-19 22:42:41 -08:00
appletalk netdevice: safe convert to netdev_priv() #part-4 2008-11-12 23:39:10 -08:00
atm netdevice: Kill netdev->priv 2008-12-08 01:14:16 -08:00
ax25 ax25: fix warning in net/ax25/sysctl_net_ax25.c 2008-11-25 16:58:19 -08:00
bluetooth Bluetooth: Fix RFCOMM release oops when device is still in use 2008-11-30 12:17:29 +01:00
bridge Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6 2008-11-28 02:19:15 -08:00
can can: omit received RTR frames for single ID filter lists 2008-12-04 15:01:08 -08:00
core netdevice: Kill netdev->priv 2008-12-08 01:14:16 -08:00
dcb DCB: fix kconfig option 2008-11-25 01:02:08 -08:00
dccp dccp ccid-2: Phase out the use of boolean Ack Vector sysctl 2008-12-08 01:19:06 -08:00
decnet decnet: remove private wrappers of endian helpers 2008-11-27 00:12:47 -08:00
dsa dsa: fix warning in net/dsa/mv88e6060.c 2008-11-25 16:51:13 -08:00
econet
ethernet eth: Declare an optimized compare_ether_addr_64bits() function 2008-11-23 23:24:32 -08:00
ipv4 tcp: fix tso_should_defer in 64bit 2008-12-05 22:56:07 -08:00
ipv6 net/ipv6/ip6mr.c: Use kmem_cache_zalloc, remove memset 2008-12-03 22:27:25 -08:00
ipx
irda netdevice: safe convert to netdev_priv() #part-4 2008-11-12 23:39:10 -08:00
iucv
key netns PF_KEY: per-netns /proc/pfkey 2008-11-25 17:59:00 -08:00
lapb
llc net: remove redundant argument comments 2008-11-21 17:15:03 -08:00
mac80211 Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-12-05 22:54:40 -08:00
netfilter Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kaber/nf-next-2.6 2008-11-28 02:19:15 -08:00
netlabel Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-12-05 22:54:40 -08:00
netlink netlink: allow empty nested attributes 2008-11-28 03:05:19 -08:00
netrom
packet net: Make sure BHs are disabled in sock_prot_inuse_add() 2008-11-24 00:09:29 -08:00
phonet Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-12-05 22:54:40 -08:00
rfkill rfkill: always call get_state() hook on resume 2008-11-26 09:47:44 -05:00
rose Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-11-26 23:48:40 -08:00
rxrpc
sched pkt_sched: sch_htb: Replace HTB_ACCNT() macro with inlines 2008-12-03 21:17:27 -08:00
sctp sctp: fix missing label when PROC_FS=n 2008-11-27 15:30:53 -08:00
sunrpc sunrpc: fix warning in net/sunrpc/xprtrdma/verbs.c 2008-11-25 16:58:42 -08:00
tipc tipc: trivial endian annotation in debug statement 2008-11-07 23:37:50 -08:00
unix Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-12-02 19:50:27 -08:00
wanrouter netdevice wanrouter: Convert directly reference of netdev->priv 2008-11-20 04:26:21 -08:00
wireless wireless: Fix incorrect use of loose in wext.c 2008-12-06 23:55:32 -08:00
x25
xfrm xfrm: Accept ESP packets regardless of UDP encapsulation mode 2008-12-04 15:40:17 -08:00
compat.c reintroduce accept4 2008-11-19 18:49:57 -08:00
Kconfig net/ieee80211 -> drivers/net/ipw2x00/libipw_* rename 2008-11-21 11:08:18 -05:00
Makefile DCB: fix kconfig option 2008-11-25 01:02:08 -08:00
nonet.c
socket.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2008-11-20 16:44:00 -08:00
sysctl_net.c
TUNABLE