提交 d83ca5ac 编写于 作者: G Gerrit Renker 提交者: David S. Miller

[DCCP]: Update code comments for Step 2/3

Sorts out the comments for processing steps 2,3 in section 8.5 of RFC 4340.
All comments have been updated against this document, and the reference to step
2 has been made consistent throughout the files.
Signed-off-by: NGerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: NArnaldo Carvalho de Melo <acme@mandriva.com>
上级 cf557926
...@@ -431,29 +431,25 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb, ...@@ -431,29 +431,25 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
/* /*
* Step 3: Process LISTEN state * Step 3: Process LISTEN state
* (Continuing from dccp_v4_do_rcv and dccp_v6_do_rcv)
* *
* If S.state == LISTEN, * If S.state == LISTEN,
* If P.type == Request or P contains a valid Init Cookie * If P.type == Request or P contains a valid Init Cookie option,
* option, * (* Must scan the packet's options to check for Init
* * Must scan the packet's options to check for an Init * Cookies. Only Init Cookies are processed here,
* Cookie. Only the Init Cookie is processed here, * however; other options are processed in Step 8. This
* however; other options are processed in Step 8. This * scan need only be performed if the endpoint uses Init
* scan need only be performed if the endpoint uses Init * Cookies *)
* Cookies * * (* Generate a new socket and switch to that socket *)
* * Generate a new socket and switch to that socket * * Set S := new socket for this port pair
* Set S := new socket for this port pair * S.state = RESPOND
* S.state = RESPOND * Choose S.ISS (initial seqno) or set from Init Cookies
* Choose S.ISS (initial seqno) or set from Init Cookie * Initialize S.GAR := S.ISS
* Set S.ISR, S.GSR, S.SWL, S.SWH from packet or Init Cookie * Set S.ISR, S.GSR, S.SWL, S.SWH from packet or Init
* Continue with S.state == RESPOND * Cookies Continue with S.state == RESPOND
* * A Response packet will be generated in Step 11 * * (* A Response packet will be generated in Step 11 *)
* Otherwise, * Otherwise,
* Generate Reset(No Connection) unless P.type == Reset * Generate Reset(No Connection) unless P.type == Reset
* Drop packet and return * Drop packet and return
*
* NOTE: the check for the packet types is done in
* dccp_rcv_state_process
*/ */
if (sk->sk_state == DCCP_LISTEN) { if (sk->sk_state == DCCP_LISTEN) {
if (dh->dccph_type == DCCP_PKT_REQUEST) { if (dh->dccph_type == DCCP_PKT_REQUEST) {
......
...@@ -729,24 +729,23 @@ int dccp_v4_do_rcv(struct sock *sk, struct sk_buff *skb) ...@@ -729,24 +729,23 @@ int dccp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
/* /*
* Step 3: Process LISTEN state * Step 3: Process LISTEN state
* If S.state == LISTEN, * If P.type == Request or P contains a valid Init Cookie option,
* If P.type == Request or P contains a valid Init Cookie * (* Must scan the packet's options to check for Init
* option, * Cookies. Only Init Cookies are processed here,
* * Must scan the packet's options to check for an Init * however; other options are processed in Step 8. This
* Cookie. Only the Init Cookie is processed here, * scan need only be performed if the endpoint uses Init
* however; other options are processed in Step 8. This * Cookies *)
* scan need only be performed if the endpoint uses Init * (* Generate a new socket and switch to that socket *)
* Cookies * * Set S := new socket for this port pair
* * Generate a new socket and switch to that socket * * S.state = RESPOND
* Set S := new socket for this port pair * Choose S.ISS (initial seqno) or set from Init Cookies
* S.state = RESPOND * Initialize S.GAR := S.ISS
* Choose S.ISS (initial seqno) or set from Init Cookie * Set S.ISR, S.GSR, S.SWL, S.SWH from packet or Init Cookies
* Set S.ISR, S.GSR, S.SWL, S.SWH from packet or Init Cookie * Continue with S.state == RESPOND
* Continue with S.state == RESPOND * (* A Response packet will be generated in Step 11 *)
* * A Response packet will be generated in Step 11 * * Otherwise,
* Otherwise, * Generate Reset(No Connection) unless P.type == Reset
* Generate Reset(No Connection) unless P.type == Reset * Drop packet and return
* Drop packet and return
* *
* NOTE: the check for the packet types is done in * NOTE: the check for the packet types is done in
* dccp_rcv_state_process * dccp_rcv_state_process
...@@ -887,8 +886,6 @@ static int dccp_v4_rcv(struct sk_buff *skb) ...@@ -887,8 +886,6 @@ static int dccp_v4_rcv(struct sk_buff *skb)
/* /*
* Step 2: * Step 2:
* If no socket ... * If no socket ...
* Generate Reset(No Connection) unless P.type == Reset
* Drop packet and return
*/ */
if (sk == NULL) { if (sk == NULL) {
dccp_pr_debug("failed to look up flow ID in table and " dccp_pr_debug("failed to look up flow ID in table and "
...@@ -919,6 +916,7 @@ static int dccp_v4_rcv(struct sk_buff *skb) ...@@ -919,6 +916,7 @@ static int dccp_v4_rcv(struct sk_buff *skb)
goto discard_it; goto discard_it;
/* /*
* Step 2: * Step 2:
* If no socket ...
* Generate Reset(No Connection) unless P.type == Reset * Generate Reset(No Connection) unless P.type == Reset
* Drop packet and return * Drop packet and return
*/ */
......
...@@ -487,10 +487,10 @@ static int dccp_v6_conn_request(struct sock *sk, struct sk_buff *skb) ...@@ -487,10 +487,10 @@ static int dccp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
/* /*
* Step 3: Process LISTEN state * Step 3: Process LISTEN state
* *
* Set S.ISR, S.GSR, S.SWL, S.SWH from packet or Init Cookie * Set S.ISR, S.GSR, S.SWL, S.SWH from packet or Init Cookie
* *
* In fact we defer setting S.GSR, S.SWL, S.SWH to * In fact we defer setting S.GSR, S.SWL, S.SWH to
* dccp_create_openreq_child. * dccp_create_openreq_child.
*/ */
dreq = dccp_rsk(req); dreq = dccp_rsk(req);
dreq->dreq_isr = dcb->dccpd_seq; dreq->dreq_isr = dcb->dccpd_seq;
...@@ -760,6 +760,30 @@ static int dccp_v6_do_rcv(struct sock *sk, struct sk_buff *skb) ...@@ -760,6 +760,30 @@ static int dccp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
return 0; return 0;
} }
/*
* Step 3: Process LISTEN state
* If S.state == LISTEN,
* If P.type == Request or P contains a valid Init Cookie option,
* (* Must scan the packet's options to check for Init
* Cookies. Only Init Cookies are processed here,
* however; other options are processed in Step 8. This
* scan need only be performed if the endpoint uses Init
* Cookies *)
* (* Generate a new socket and switch to that socket *)
* Set S := new socket for this port pair
* S.state = RESPOND
* Choose S.ISS (initial seqno) or set from Init Cookies
* Initialize S.GAR := S.ISS
* Set S.ISR, S.GSR, S.SWL, S.SWH from packet or Init Cookies
* Continue with S.state == RESPOND
* (* A Response packet will be generated in Step 11 *)
* Otherwise,
* Generate Reset(No Connection) unless P.type == Reset
* Drop packet and return
*
* NOTE: the check for the packet types is done in
* dccp_rcv_state_process
*/
if (sk->sk_state == DCCP_LISTEN) { if (sk->sk_state == DCCP_LISTEN) {
struct sock *nsk = dccp_v6_hnd_req(sk, skb); struct sock *nsk = dccp_v6_hnd_req(sk, skb);
...@@ -826,8 +850,6 @@ static int dccp_v6_rcv(struct sk_buff **pskb) ...@@ -826,8 +850,6 @@ static int dccp_v6_rcv(struct sk_buff **pskb)
/* /*
* Step 2: * Step 2:
* If no socket ... * If no socket ...
* Generate Reset(No Connection) unless P.type == Reset
* Drop packet and return
*/ */
if (sk == NULL) { if (sk == NULL) {
dccp_pr_debug("failed to look up flow ID in table and " dccp_pr_debug("failed to look up flow ID in table and "
...@@ -857,6 +879,7 @@ static int dccp_v6_rcv(struct sk_buff **pskb) ...@@ -857,6 +879,7 @@ static int dccp_v6_rcv(struct sk_buff **pskb)
goto discard_it; goto discard_it;
/* /*
* Step 2: * Step 2:
* If no socket ...
* Generate Reset(No Connection) unless P.type == Reset * Generate Reset(No Connection) unless P.type == Reset
* Drop packet and return * Drop packet and return
*/ */
......
...@@ -98,8 +98,8 @@ struct sock *dccp_create_openreq_child(struct sock *sk, ...@@ -98,8 +98,8 @@ struct sock *dccp_create_openreq_child(struct sock *sk,
/* /*
* Step 3: Process LISTEN state * Step 3: Process LISTEN state
* *
* // Generate a new socket and switch to that socket * (* Generate a new socket and switch to that socket *)
* Set S := new socket for this port pair * Set S := new socket for this port pair
*/ */
struct sock *newsk = inet_csk_clone(sk, req, GFP_ATOMIC); struct sock *newsk = inet_csk_clone(sk, req, GFP_ATOMIC);
...@@ -148,9 +148,9 @@ struct sock *dccp_create_openreq_child(struct sock *sk, ...@@ -148,9 +148,9 @@ struct sock *dccp_create_openreq_child(struct sock *sk,
/* /*
* Step 3: Process LISTEN state * Step 3: Process LISTEN state
* *
* Choose S.ISS (initial seqno) or set from Init Cookie * Choose S.ISS (initial seqno) or set from Init Cookies
* Set S.ISR, S.GSR, S.SWL, S.SWH from packet or Init * Initialize S.GAR := S.ISS
* Cookie * Set S.ISR, S.GSR, S.SWL, S.SWH from packet or Init Cookies
*/ */
/* See dccp_v4_conn_request */ /* See dccp_v4_conn_request */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册