[CCID-3/4] Share ccid-3 options enum and struct via tfrc_ccids
Signed-off-by: Leandro Melo de Sales <[EMAIL PROTECTED]>
Index: leandro.new/net/dccp/ccids/ccid4.c
===================================================================
--- leandro.new.orig/net/dccp/ccids/ccid4.c
+++ leandro.new/net/dccp/ccids/ccid4.c
@@ -416,7 +416,7 @@ static void ccid4_hc_tx_packet_sent(stru
static void ccid4_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)
{
struct ccid4_hc_tx_sock *hctx = ccid4_hc_tx_sk(sk);
- struct ccid4_options_received *opt_recv;
+ struct tfrc_options_received *opt_recv;
ktime_t t_send, now;
unsigned long t_nfb;
u32 pinv, r_sample;
@@ -442,14 +442,14 @@ static void ccid4_hc_tx_packet_recv(stru
return;
}
- opt_recv = &hctx->ccid4hctx_options_received;
+ opt_recv = &hctx->tfrchctx_options_received;
/* Update receive rate in units of 64 * bytes/second */
- hctx->ccid4hctx_x_recv = opt_recv->ccid4or_receive_rate;
+ hctx->ccid4hctx_x_recv = opt_recv->tfrcor_receive_rate;
hctx->ccid4hctx_x_recv <<= 6;
/* Update loss event rate (which is scaled by 1e6) */
- pinv = opt_recv->ccid4or_loss_event_rate;
+ pinv = opt_recv->tfrcor_loss_event_rate;
if (pinv == ~0U || pinv == 0) /* see RFC 4342, 8.5 */
hctx->ccid4hctx_p = 0;
else /* can not exceed 100% */
@@ -540,17 +540,17 @@ static int ccid4_hc_tx_parse_options(str
int rc = 0;
const struct dccp_sock *dp = dccp_sk(sk);
struct ccid4_hc_tx_sock *hctx = ccid4_hc_tx_sk(sk);
- struct ccid4_options_received *opt_recv;
+ struct tfrc_options_received *opt_recv;
u32 opt_val;
- opt_recv = &hctx->ccid4hctx_options_received;
+ opt_recv = &hctx->tfrchctx_options_received;
- if (opt_recv->ccid4or_seqno != dp->dccps_gsr) {
- opt_recv->ccid4or_seqno = dp->dccps_gsr;
- opt_recv->ccid4or_loss_event_rate = ~0;
- opt_recv->ccid4or_loss_intervals_idx = 0;
- opt_recv->ccid4or_loss_intervals_len = 0;
- opt_recv->ccid4or_receive_rate = 0;
+ if (opt_recv->tfrcor_seqno != dp->dccps_gsr) {
+ opt_recv->tfrcor_seqno = dp->dccps_gsr;
+ opt_recv->tfrcor_loss_event_rate = ~0;
+ opt_recv->tfrcor_loss_intervals_idx = 0;
+ opt_recv->tfrcor_loss_intervals_len = 0;
+ opt_recv->tfrcor_receive_rate = 0;
}
switch (option) {
@@ -562,19 +562,19 @@ static int ccid4_hc_tx_parse_options(str
rc = -EINVAL;
} else {
opt_val = get_unaligned((u32 *)value);
- opt_recv->ccid4or_loss_event_rate = ntohl(opt_val);
+ opt_recv->tfrcor_loss_event_rate = ntohl(opt_val);
ccid4_pr_debug("%s(%p), LOSS_EVENT_RATE=%u\n",
dccp_role(sk), sk,
- opt_recv->ccid4or_loss_event_rate);
+ opt_recv->tfrcor_loss_event_rate);
}
break;
case TFRC_OPT_LOSS_INTERVALS:
- opt_recv->ccid4or_loss_intervals_idx = idx;
- opt_recv->ccid4or_loss_intervals_len = len;
+ opt_recv->tfrcor_loss_intervals_idx = idx;
+ opt_recv->tfrcor_loss_intervals_len = len;
ccid4_pr_debug("%s(%p), LOSS_INTERVALS=(%u, %u)\n",
dccp_role(sk), sk,
- opt_recv->ccid4or_loss_intervals_idx,
- opt_recv->ccid4or_loss_intervals_len);
+ opt_recv->tfrcor_loss_intervals_idx,
+ opt_recv->tfrcor_loss_intervals_len);
break;
case TFRC_OPT_RECEIVE_RATE:
if (unlikely(len != 4)) {
@@ -584,10 +584,10 @@ static int ccid4_hc_tx_parse_options(str
rc = -EINVAL;
} else {
opt_val = get_unaligned((u32 *)value);
- opt_recv->ccid4or_receive_rate = ntohl(opt_val);
+ opt_recv->tfrcor_receive_rate = ntohl(opt_val);
ccid4_pr_debug("%s(%p), RECEIVE_RATE=%u\n",
dccp_role(sk), sk,
- opt_recv->ccid4or_receive_rate);
+ opt_recv->tfrcor_receive_rate);
}
break;
}
Index: leandro.new/net/dccp/ccids/ccid4.h
===================================================================
--- leandro.new.orig/net/dccp/ccids/ccid4.h
+++ leandro.new/net/dccp/ccids/ccid4.h
@@ -62,20 +62,6 @@
*/
#define CCID4HCTX_H 36
-enum ccid4_options {
- TFRC_OPT_LOSS_EVENT_RATE = 192,
- TFRC_OPT_LOSS_INTERVALS = 193,
- TFRC_OPT_RECEIVE_RATE = 194,
-};
-
-struct ccid4_options_received {
- u64 ccid4or_seqno:48,
- ccid4or_loss_intervals_idx:16;
- u16 ccid4or_loss_intervals_len;
- u32 ccid4or_loss_event_rate;
- u32 ccid4or_receive_rate;
-};
-
/* TFRC sender states */
enum ccid4_hc_tx_states {
TFRC_SSTATE_NO_SENT = 1,
@@ -123,7 +109,7 @@ struct ccid4_hc_tx_sock {
ktime_t ccid4hctx_t_nom;
u32 ccid4hctx_delta;
struct tfrc_tx_hist_head ccid4hctx_hist;
- struct ccid4_options_received ccid4hctx_options_received;
+ struct tfrc_options_received tfrchctx_options_received;
};
static inline struct ccid4_hc_tx_sock *ccid4_hc_tx_sk(const struct sock *sk)
Index: leandro.new/net/dccp/ccids/lib/tfrc_ccids.h
===================================================================
--- leandro.new.orig/net/dccp/ccids/lib/tfrc_ccids.h
+++ leandro.new/net/dccp/ccids/lib/tfrc_ccids.h
@@ -31,3 +31,17 @@
#define TFRC_T_MBI 64
#endif /* _TFRC_CCIDS_H_ */
+
+enum tfrc_options {
+ TFRC_OPT_LOSS_EVENT_RATE = 192,
+ TFRC_OPT_LOSS_INTERVALS = 193,
+ TFRC_OPT_RECEIVE_RATE = 194,
+};
+
+struct tfrc_options_received {
+ u64 tfrcor_seqno:48,
+ tfrcor_loss_intervals_idx:16;
+ u16 tfrcor_loss_intervals_len;
+ u32 tfrcor_loss_event_rate;
+ u32 tfrcor_receive_rate;
+};
Index: leandro.new/net/dccp/ccids/ccid3.c
===================================================================
--- leandro.new.orig/net/dccp/ccids/ccid3.c
+++ leandro.new/net/dccp/ccids/ccid3.c
@@ -390,7 +390,7 @@ static void ccid3_hc_tx_packet_sent(stru
static void ccid3_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb)
{
struct ccid3_hc_tx_sock *hctx = ccid3_hc_tx_sk(sk);
- struct ccid3_options_received *opt_recv;
+ struct tfrc_options_received *opt_recv;
ktime_t t_send, now;
unsigned long t_nfb;
u32 pinv, r_sample;
@@ -416,14 +416,14 @@ static void ccid3_hc_tx_packet_recv(stru
return;
}
- opt_recv = &hctx->ccid3hctx_options_received;
+ opt_recv = &hctx->tfrchctx_options_received;
/* Update receive rate in units of 64 * bytes/second */
- hctx->ccid3hctx_x_recv = opt_recv->ccid3or_receive_rate;
+ hctx->ccid3hctx_x_recv = opt_recv->tfrcor_receive_rate;
hctx->ccid3hctx_x_recv <<= 6;
/* Update loss event rate (which is scaled by 1e6) */
- pinv = opt_recv->ccid3or_loss_event_rate;
+ pinv = opt_recv->tfrcor_loss_event_rate;
if (pinv == ~0U || pinv == 0) /* see RFC 4342, 8.5 */
hctx->ccid3hctx_p = 0;
else /* can not exceed 100% */
@@ -514,17 +514,17 @@ static int ccid3_hc_tx_parse_options(str
int rc = 0;
const struct dccp_sock *dp = dccp_sk(sk);
struct ccid3_hc_tx_sock *hctx = ccid3_hc_tx_sk(sk);
- struct ccid3_options_received *opt_recv;
+ struct tfrc_options_received *opt_recv;
__be32 opt_val;
- opt_recv = &hctx->ccid3hctx_options_received;
+ opt_recv = &hctx->tfrchctx_options_received;
- if (opt_recv->ccid3or_seqno != dp->dccps_gsr) {
- opt_recv->ccid3or_seqno = dp->dccps_gsr;
- opt_recv->ccid3or_loss_event_rate = ~0;
- opt_recv->ccid3or_loss_intervals_idx = 0;
- opt_recv->ccid3or_loss_intervals_len = 0;
- opt_recv->ccid3or_receive_rate = 0;
+ if (opt_recv->tfrcor_seqno != dp->dccps_gsr) {
+ opt_recv->tfrcor_seqno = dp->dccps_gsr;
+ opt_recv->tfrcor_loss_event_rate = ~0;
+ opt_recv->tfrcor_loss_intervals_idx = 0;
+ opt_recv->tfrcor_loss_intervals_len = 0;
+ opt_recv->tfrcor_receive_rate = 0;
}
switch (option) {
@@ -536,19 +536,19 @@ static int ccid3_hc_tx_parse_options(str
rc = -EINVAL;
} else {
opt_val = get_unaligned((__be32 *)value);
- opt_recv->ccid3or_loss_event_rate = ntohl(opt_val);
+ opt_recv->tfrcor_loss_event_rate = ntohl(opt_val);
ccid3_pr_debug("%s(%p), LOSS_EVENT_RATE=%u\n",
dccp_role(sk), sk,
- opt_recv->ccid3or_loss_event_rate);
+ opt_recv->tfrcor_loss_event_rate);
}
break;
case TFRC_OPT_LOSS_INTERVALS:
- opt_recv->ccid3or_loss_intervals_idx = idx;
- opt_recv->ccid3or_loss_intervals_len = len;
+ opt_recv->tfrcor_loss_intervals_idx = idx;
+ opt_recv->tfrcor_loss_intervals_len = len;
ccid3_pr_debug("%s(%p), LOSS_INTERVALS=(%u, %u)\n",
dccp_role(sk), sk,
- opt_recv->ccid3or_loss_intervals_idx,
- opt_recv->ccid3or_loss_intervals_len);
+ opt_recv->tfrcor_loss_intervals_idx,
+ opt_recv->tfrcor_loss_intervals_len);
break;
case TFRC_OPT_RECEIVE_RATE:
if (unlikely(len != 4)) {
@@ -558,10 +558,10 @@ static int ccid3_hc_tx_parse_options(str
rc = -EINVAL;
} else {
opt_val = get_unaligned((__be32 *)value);
- opt_recv->ccid3or_receive_rate = ntohl(opt_val);
+ opt_recv->tfrcor_receive_rate = ntohl(opt_val);
ccid3_pr_debug("%s(%p), RECEIVE_RATE=%u\n",
dccp_role(sk), sk,
- opt_recv->ccid3or_receive_rate);
+ opt_recv->tfrcor_receive_rate);
}
break;
}
Index: leandro.new/net/dccp/ccids/ccid3.h
===================================================================
--- leandro.new.orig/net/dccp/ccids/ccid3.h
+++ leandro.new/net/dccp/ccids/ccid3.h
@@ -39,20 +39,6 @@
#include "lib/tfrc_ccids.h"
#include "../ccid.h"
-enum ccid3_options {
- TFRC_OPT_LOSS_EVENT_RATE = 192,
- TFRC_OPT_LOSS_INTERVALS = 193,
- TFRC_OPT_RECEIVE_RATE = 194,
-};
-
-struct ccid3_options_received {
- u64 ccid3or_seqno:48,
- ccid3or_loss_intervals_idx:16;
- u16 ccid3or_loss_intervals_len;
- u32 ccid3or_loss_event_rate;
- u32 ccid3or_receive_rate;
-};
-
/* TFRC sender states */
enum ccid3_hc_tx_states {
TFRC_SSTATE_NO_SENT = 1,
@@ -100,7 +86,7 @@ struct ccid3_hc_tx_sock {
ktime_t ccid3hctx_t_nom;
u32 ccid3hctx_delta;
struct tfrc_tx_hist_head ccid3hctx_hist;
- struct ccid3_options_received ccid3hctx_options_received;
+ struct tfrc_options_received tfrchctx_options_received;
};
static inline struct ccid3_hc_tx_sock *ccid3_hc_tx_sk(const struct sock *sk)
-
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html