I have thought over the approach consisting of * creating __dccp_transmit_skb() - as the old dccp_transmit_skb(), but without dccp_inc_seqno(&GSS) - called directly only from dccp_connect(), so that correctly ISS is not incremented before sending the first Request packet. * creating a new dccp_transmit_skb() - which is called from all other code paths except from dccp_connect() - thus including the retransmissions of Requests via dccp_retransmit_skb() - which increments GSS only when it is already greater than or equal to ISS; - and calls __dccp_transmit_skb() for the rest. The approach is correct and works. I am having a second problem here which the following patch in the test tree tried to solve, http://eden-feed.erg.abdn.ac.uk/cgi-bin/gitweb.cgi?p=dccp_exp.git;a=commitdiff;h=1a9c8cc01caf3da8e65d82b5d47d377bafbd51bd The problem is that AWL=GSS was only set in dccp_connect(), so we need to call dccp_update_gss() in addition to dccp_inc_seqno(). It gets a bit more complicated, since * the option-insertion code may rely on the current value of GSS (Ack Vectors are an example); * the option-insertion code can fail (e.g. insufficient space left for options on skb); * so first incrementing GSS and then aborting dccp_transmit_skb() would cause a sequence hole. The approach taken in the above patch-URL is to * assign the incremented value of GSS to the temporary `seq' field in dccp_skb_cb; * overwrite this `seq' field with ISS on the first Request; * in all instances, update GSS for real only if option-insertion worked; * that call to dccp_update_gss() also sets AWL, fixing the second problem. The reason that this fix is at a later stage in the test tree is that updating AWL in turn depends on the value of the local Sequence Window feature (RFC 4340, 7.5.1), which in turn depends on the feature-negotiation code; this part is in http://eden-feed.erg.abdn.ac.uk/cgi-bin/gitweb.cgi?p=dccp_exp.git;a=commitdiff;h=bc62a9e2fa53f20bf80f5691d757950fb86c6f30 The second step/bullet-point is, as pointed out by Wei Yongjun, still not working correctly with regard to incrementing sequence numbers on retransmissions. I have an alternative suggestion for handling the retransmissions, am currently testing this, and will submit patch subsequently. Gerrit -- To unsubscribe from this list: send the line "unsubscribe dccp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html