[DCCP]: Notify CCID only after ACK vectors have been processed.
The CCID should be notified of packet reception only when a packet is valid. Therefore, the ACK vector needs to be processed before notifying the CCID. Also, the CCID might need information provided by the ACK vector. Signed-off-by: Andrea Bittau <a.bittau@cs.ucl.ac.uk> Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9e377202d2
commit
e84a9f5e9c
1 changed files with 3 additions and 3 deletions
|
@ -492,14 +492,14 @@ int dccp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
|
||||||
if (dcb->dccpd_ack_seq != DCCP_PKT_WITHOUT_ACK_SEQ)
|
if (dcb->dccpd_ack_seq != DCCP_PKT_WITHOUT_ACK_SEQ)
|
||||||
dccp_event_ack_recv(sk, skb);
|
dccp_event_ack_recv(sk, skb);
|
||||||
|
|
||||||
ccid_hc_rx_packet_recv(dp->dccps_hc_rx_ccid, sk, skb);
|
|
||||||
ccid_hc_tx_packet_recv(dp->dccps_hc_tx_ccid, sk, skb);
|
|
||||||
|
|
||||||
if (dp->dccps_options.dccpo_send_ack_vector &&
|
if (dp->dccps_options.dccpo_send_ack_vector &&
|
||||||
dccp_ackvec_add(dp->dccps_hc_rx_ackvec, sk,
|
dccp_ackvec_add(dp->dccps_hc_rx_ackvec, sk,
|
||||||
DCCP_SKB_CB(skb)->dccpd_seq,
|
DCCP_SKB_CB(skb)->dccpd_seq,
|
||||||
DCCP_ACKVEC_STATE_RECEIVED))
|
DCCP_ACKVEC_STATE_RECEIVED))
|
||||||
goto discard;
|
goto discard;
|
||||||
|
|
||||||
|
ccid_hc_rx_packet_recv(dp->dccps_hc_rx_ccid, sk, skb);
|
||||||
|
ccid_hc_tx_packet_recv(dp->dccps_hc_tx_ccid, sk, skb);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue