Loading include/linux/dccp.h +2 −0 Original line number Diff line number Diff line Loading @@ -433,6 +433,8 @@ struct dccp_sock { struct ccid *dccps_hc_tx_ccid; struct dccp_options_received dccps_options_received; enum dccp_role dccps_role:2; __u8 dccps_hc_rx_insert_options:1; __u8 dccps_hc_tx_insert_options:1; }; static inline struct dccp_sock *dccp_sk(const struct sock *sk) Loading net/dccp/ccids/ccid3.c +4 −1 Original line number Diff line number Diff line Loading @@ -358,10 +358,12 @@ static int ccid3_hc_tx_send_packet(struct sock *sk, } /* Can we send? if so add options and add to packet history */ if (rc == 0) if (rc == 0) { dp->dccps_hc_tx_insert_options = 1; new_packet->dccphtx_ccval = DCCP_SKB_CB(skb)->dccpd_ccval = hctx->ccid3hctx_last_win_count; } out: return rc; } Loading Loading @@ -811,6 +813,7 @@ static void ccid3_hc_rx_send_feedback(struct sock *sk) hcrx->ccid3hcrx_pinv = ~0; else hcrx->ccid3hcrx_pinv = 1000000 / hcrx->ccid3hcrx_p; dp->dccps_hc_rx_insert_options = 1; dccp_send_ack(sk); } Loading net/dccp/options.c +8 −3 Original line number Diff line number Diff line Loading @@ -505,13 +505,18 @@ void dccp_insert_options(struct sock *sk, struct sk_buff *skb) (dp->dccps_hc_rx_ackpkts->dccpap_buf_ackno != DCCP_MAX_SEQNO + 1)) dccp_insert_option_ack_vector(sk, skb); if (dp->dccps_timestamp_echo != 0) dccp_insert_option_timestamp_echo(sk, skb); } if (dp->dccps_hc_rx_insert_options) { ccid_hc_rx_insert_options(dp->dccps_hc_rx_ccid, sk, skb); dp->dccps_hc_rx_insert_options = 0; } if (dp->dccps_hc_tx_insert_options) { ccid_hc_tx_insert_options(dp->dccps_hc_tx_ccid, sk, skb); dp->dccps_hc_tx_insert_options = 0; } /* XXX: insert other options when appropriate */ Loading Loading
include/linux/dccp.h +2 −0 Original line number Diff line number Diff line Loading @@ -433,6 +433,8 @@ struct dccp_sock { struct ccid *dccps_hc_tx_ccid; struct dccp_options_received dccps_options_received; enum dccp_role dccps_role:2; __u8 dccps_hc_rx_insert_options:1; __u8 dccps_hc_tx_insert_options:1; }; static inline struct dccp_sock *dccp_sk(const struct sock *sk) Loading
net/dccp/ccids/ccid3.c +4 −1 Original line number Diff line number Diff line Loading @@ -358,10 +358,12 @@ static int ccid3_hc_tx_send_packet(struct sock *sk, } /* Can we send? if so add options and add to packet history */ if (rc == 0) if (rc == 0) { dp->dccps_hc_tx_insert_options = 1; new_packet->dccphtx_ccval = DCCP_SKB_CB(skb)->dccpd_ccval = hctx->ccid3hctx_last_win_count; } out: return rc; } Loading Loading @@ -811,6 +813,7 @@ static void ccid3_hc_rx_send_feedback(struct sock *sk) hcrx->ccid3hcrx_pinv = ~0; else hcrx->ccid3hcrx_pinv = 1000000 / hcrx->ccid3hcrx_p; dp->dccps_hc_rx_insert_options = 1; dccp_send_ack(sk); } Loading
net/dccp/options.c +8 −3 Original line number Diff line number Diff line Loading @@ -505,13 +505,18 @@ void dccp_insert_options(struct sock *sk, struct sk_buff *skb) (dp->dccps_hc_rx_ackpkts->dccpap_buf_ackno != DCCP_MAX_SEQNO + 1)) dccp_insert_option_ack_vector(sk, skb); if (dp->dccps_timestamp_echo != 0) dccp_insert_option_timestamp_echo(sk, skb); } if (dp->dccps_hc_rx_insert_options) { ccid_hc_rx_insert_options(dp->dccps_hc_rx_ccid, sk, skb); dp->dccps_hc_rx_insert_options = 0; } if (dp->dccps_hc_tx_insert_options) { ccid_hc_tx_insert_options(dp->dccps_hc_tx_ccid, sk, skb); dp->dccps_hc_tx_insert_options = 0; } /* XXX: insert other options when appropriate */ Loading