diff options
author | Gerrit Renker <gerrit@erg.abdn.ac.uk> | 2007-11-20 18:56:37 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 17:54:44 -0500 |
commit | 9b91ad2747891767c0efb4fb965c5dfed8d4f88e (patch) | |
tree | 010b946c201fab39f3417ffd0abbdc74dbe62cdb | |
parent | c3ada46a009001e144b29736880962f24ee2afdf (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.h | 14 |
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 { | |||
229 | enum dccp_state { | 229 | enum 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 { | |||
252 | enum { | 244 | enum { |
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 | ||
263 | static inline struct dccp_hdr *dccp_hdr(const struct sk_buff *skb) | 255 | static inline struct dccp_hdr *dccp_hdr(const struct sk_buff *skb) |