Loading src/core/or/congestion_control_nola.c +14 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include "core/or/origin_circuit_st.h" #include "core/or/channel.h" #include "feature/nodelist/networkstatus.h" #include "feature/control/control_events.h" #define NOLA_BDP_OVERSHOOT 100 Loading Loading @@ -70,9 +71,20 @@ congestion_control_nola_process_sendme(congestion_control_t *cc, /* If we get a congestion event, the only thing NOLA * does is note this as if we exited slow-start * (which for NOLA just means we finished our ICW). */ if (cc->next_cc_event == 0) if (cc->next_cc_event == 0) { if (cc->in_slow_start) { cc->in_slow_start = 0; /* We need to report that slow start has exited ASAP, * for sbws bandwidth measurement. */ if (CIRCUIT_IS_ORIGIN(circ)) { /* We must discard const here because the event modifies fields :/ */ control_event_circ_bandwidth_used_for_circ( TO_ORIGIN_CIRCUIT((circuit_t*)circ)); } } } /* If we did not successfully update BDP, we must return. Otherwise, * NOLA can drift downwards */ if (!congestion_control_update_circuit_estimates(cc, circ, layer_hint)) { Loading src/core/or/congestion_control_vegas.c +9 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include "core/or/origin_circuit_st.h" #include "core/or/channel.h" #include "feature/nodelist/networkstatus.h" #include "feature/control/control_events.h" #define OUTBUF_CELLS (2*TLS_RECORD_MAX_CELLS) Loading Loading @@ -236,6 +237,14 @@ congestion_control_vegas_process_sendme(congestion_control_t *cc, cc->cwnd = vegas_bdp_mix(cc) + cc->vegas_params.gamma; cc->in_slow_start = 0; log_info(LD_CIRC, "CC: TOR_VEGAS exiting slow start"); /* We need to report that slow start has exited ASAP, * for sbws bandwidth measurement. */ if (CIRCUIT_IS_ORIGIN(circ)) { /* We must discard const here because the event modifies fields :/ */ control_event_circ_bandwidth_used_for_circ( TO_ORIGIN_CIRCUIT((circuit_t*)circ)); } } } else { if (queue_use > cc->vegas_params.delta) { Loading src/core/or/congestion_control_westwood.c +9 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include "core/or/origin_circuit_st.h" #include "core/or/channel.h" #include "feature/nodelist/networkstatus.h" #include "feature/control/control_events.h" #define USEC_ONE_MS (1000) Loading Loading @@ -179,6 +180,14 @@ congestion_control_westwood_process_sendme(congestion_control_t *cc, log_info(LD_CIRC, "CC: TOR_WESTWOOD congestion. New max RTT: %"PRIu64, cc->max_rtt_usec/1000); /* We need to report that slow start has exited ASAP, * for sbws bandwidth measurement. */ if (CIRCUIT_IS_ORIGIN(circ)) { /* We must discard const here because the event modifies fields :/ */ control_event_circ_bandwidth_used_for_circ( TO_ORIGIN_CIRCUIT((circuit_t*)circ)); } } /* cwnd can never fall below 1 increment */ Loading Loading
src/core/or/congestion_control_nola.c +14 −2 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include "core/or/origin_circuit_st.h" #include "core/or/channel.h" #include "feature/nodelist/networkstatus.h" #include "feature/control/control_events.h" #define NOLA_BDP_OVERSHOOT 100 Loading Loading @@ -70,9 +71,20 @@ congestion_control_nola_process_sendme(congestion_control_t *cc, /* If we get a congestion event, the only thing NOLA * does is note this as if we exited slow-start * (which for NOLA just means we finished our ICW). */ if (cc->next_cc_event == 0) if (cc->next_cc_event == 0) { if (cc->in_slow_start) { cc->in_slow_start = 0; /* We need to report that slow start has exited ASAP, * for sbws bandwidth measurement. */ if (CIRCUIT_IS_ORIGIN(circ)) { /* We must discard const here because the event modifies fields :/ */ control_event_circ_bandwidth_used_for_circ( TO_ORIGIN_CIRCUIT((circuit_t*)circ)); } } } /* If we did not successfully update BDP, we must return. Otherwise, * NOLA can drift downwards */ if (!congestion_control_update_circuit_estimates(cc, circ, layer_hint)) { Loading
src/core/or/congestion_control_vegas.c +9 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include "core/or/origin_circuit_st.h" #include "core/or/channel.h" #include "feature/nodelist/networkstatus.h" #include "feature/control/control_events.h" #define OUTBUF_CELLS (2*TLS_RECORD_MAX_CELLS) Loading Loading @@ -236,6 +237,14 @@ congestion_control_vegas_process_sendme(congestion_control_t *cc, cc->cwnd = vegas_bdp_mix(cc) + cc->vegas_params.gamma; cc->in_slow_start = 0; log_info(LD_CIRC, "CC: TOR_VEGAS exiting slow start"); /* We need to report that slow start has exited ASAP, * for sbws bandwidth measurement. */ if (CIRCUIT_IS_ORIGIN(circ)) { /* We must discard const here because the event modifies fields :/ */ control_event_circ_bandwidth_used_for_circ( TO_ORIGIN_CIRCUIT((circuit_t*)circ)); } } } else { if (queue_use > cc->vegas_params.delta) { Loading
src/core/or/congestion_control_westwood.c +9 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ #include "core/or/origin_circuit_st.h" #include "core/or/channel.h" #include "feature/nodelist/networkstatus.h" #include "feature/control/control_events.h" #define USEC_ONE_MS (1000) Loading Loading @@ -179,6 +180,14 @@ congestion_control_westwood_process_sendme(congestion_control_t *cc, log_info(LD_CIRC, "CC: TOR_WESTWOOD congestion. New max RTT: %"PRIu64, cc->max_rtt_usec/1000); /* We need to report that slow start has exited ASAP, * for sbws bandwidth measurement. */ if (CIRCUIT_IS_ORIGIN(circ)) { /* We must discard const here because the event modifies fields :/ */ control_event_circ_bandwidth_used_for_circ( TO_ORIGIN_CIRCUIT((circuit_t*)circ)); } } /* cwnd can never fall below 1 increment */ Loading