aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerrit Renker <gerrit@erg.abdn.ac.uk>2007-11-20 18:56:37 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 17:54:44 -0500
commit9b91ad2747891767c0efb4fb965c5dfed8d4f88e (patch)
tree010b946c201fab39f3417ffd0abbdc74dbe62cdb
parentc3ada46a009001e144b29736880962f24ee2afdf (diff)
[DCCP]: Make PARTOPEN an autonomous state
This decouples PARTOPEN from TCP-specific stream-states. It thus addresses the FIXME. The code has been checked with regard to dependency on PARTOPEN and FIN_WAIT1 states (to which PARTOPEN previously was mapped): there is no difference, as PARTOPEN is always referred to directly (i.e. not via the mapping to TCP state). Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: Ian McDonald <ian.mcdonald@jandi.co.nz> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--include/linux/dccp.h14
1 files changed, 3 insertions, 11 deletions
diff --git a/include/linux/dccp.h b/include/linux/dccp.h
index 333c3ea82a5d..a0073268808f 100644
--- a/include/linux/dccp.h
+++ b/include/linux/dccp.h
@@ -229,21 +229,13 @@ struct dccp_so_feat {
229enum dccp_state { 229enum dccp_state {
230 DCCP_OPEN = TCP_ESTABLISHED, 230 DCCP_OPEN = TCP_ESTABLISHED,
231 DCCP_REQUESTING = TCP_SYN_SENT, 231 DCCP_REQUESTING = TCP_SYN_SENT,
232 DCCP_PARTOPEN = TCP_FIN_WAIT1, /* FIXME:
233 This mapping is horrible, but TCP has
234 no matching state for DCCP_PARTOPEN,
235 as TCP_SYN_RECV is already used by
236 DCCP_RESPOND, why don't stop using TCP
237 mapping of states? OK, now we don't use
238 sk_stream_sendmsg anymore, so doesn't
239 seem to exist any reason for us to
240 do the TCP mapping here */
241 DCCP_LISTEN = TCP_LISTEN, 232 DCCP_LISTEN = TCP_LISTEN,
242 DCCP_RESPOND = TCP_SYN_RECV, 233 DCCP_RESPOND = TCP_SYN_RECV,
243 DCCP_CLOSING = TCP_CLOSING, 234 DCCP_CLOSING = TCP_CLOSING,
244 DCCP_TIME_WAIT = TCP_TIME_WAIT, 235 DCCP_TIME_WAIT = TCP_TIME_WAIT,
245 DCCP_CLOSED = TCP_CLOSE, 236 DCCP_CLOSED = TCP_CLOSE,
246 DCCP_MAX_STATES = TCP_MAX_STATES, 237 DCCP_PARTOPEN = TCP_MAX_STATES,
238 DCCP_MAX_STATES
247}; 239};
248 240
249#define DCCP_STATE_MASK 0xf 241#define DCCP_STATE_MASK 0xf
@@ -252,12 +244,12 @@ enum dccp_state {
252enum { 244enum {
253 DCCPF_OPEN = TCPF_ESTABLISHED, 245 DCCPF_OPEN = TCPF_ESTABLISHED,
254 DCCPF_REQUESTING = TCPF_SYN_SENT, 246 DCCPF_REQUESTING = TCPF_SYN_SENT,
255 DCCPF_PARTOPEN = TCPF_FIN_WAIT1,
256 DCCPF_LISTEN = TCPF_LISTEN, 247 DCCPF_LISTEN = TCPF_LISTEN,
257 DCCPF_RESPOND = TCPF_SYN_RECV, 248 DCCPF_RESPOND = TCPF_SYN_RECV,
258 DCCPF_CLOSING = TCPF_CLOSING, 249 DCCPF_CLOSING = TCPF_CLOSING,
259 DCCPF_TIME_WAIT = TCPF_TIME_WAIT, 250 DCCPF_TIME_WAIT = TCPF_TIME_WAIT,
260 DCCPF_CLOSED = TCPF_CLOSE, 251 DCCPF_CLOSED = TCPF_CLOSE,
252 DCCPF_PARTOPEN = 1 << DCCP_PARTOPEN,
261}; 253};
262 254
263static inline struct dccp_hdr *dccp_hdr(const struct sk_buff *skb) 255static inline struct dccp_hdr *dccp_hdr(const struct sk_buff *skb)