[tor-commits] [tor] 03/07: Clean up UX decision logic; hardcode for browser UX case.
gitolite role
git at cupani.torproject.org
Wed May 24 15:38:52 UTC 2023
This is an automated email from the git hooks/post-receive script.
dgoulet pushed a commit to branch main
in repository tor.
commit a340acb492e216e74334f4ff00dbbe5abc6ec956
Author: Mike Perry <mikeperry-git at torproject.org>
AuthorDate: Tue May 9 20:11:41 2023 +0000
Clean up UX decision logic; hardcode for browser UX case.
---
src/core/or/conflux_cell.c | 15 +++------------
src/core/or/conflux_cell.h | 2 +-
src/core/or/conflux_pool.c | 20 ++++++++++++--------
3 files changed, 16 insertions(+), 21 deletions(-)
diff --git a/src/core/or/conflux_cell.c b/src/core/or/conflux_cell.c
index fa0bb1c23e..a59fa735f1 100644
--- a/src/core/or/conflux_cell.c
+++ b/src/core/or/conflux_cell.c
@@ -266,22 +266,13 @@ conflux_cell_parse_linked(const cell_t *cell, const uint16_t cell_len)
conflux_cell_link_t *
conflux_cell_new_link(const uint8_t *nonce, uint64_t last_seqno_sent,
- uint64_t last_seqno_recv, bool is_client)
+ uint64_t last_seqno_recv, uint8_t ux)
{
conflux_cell_link_t *link = tor_malloc_zero(sizeof(*link));
link->version = 0x01;
- if (is_client) {
- // TODO-329-TUNING: The default should probably be high-throughput,
- // but mobile clients may want to use low-memory.. We may also want
- // to move this choice upstairs, so that torrc can control it.
- link->desired_ux = CONFLUX_UX_HIGH_THROUGHPUT;
- } else {
- // TODO-329-TUNING: For exits, the default should be min-latency
- // but we need to fix the tests and evaluate this first.
- //link->desired_ux = CONFLUX_UX_MIN_LATENCY;
- link->desired_ux = CONFLUX_UX_HIGH_THROUGHPUT;
- }
+ link->desired_ux = ux;
+
link->last_seqno_sent = last_seqno_sent;
link->last_seqno_recv = last_seqno_recv;
memcpy(link->nonce, nonce, sizeof(link->nonce));
diff --git a/src/core/or/conflux_cell.h b/src/core/or/conflux_cell.h
index afaecae6f5..60fff42241 100644
--- a/src/core/or/conflux_cell.h
+++ b/src/core/or/conflux_cell.h
@@ -23,7 +23,7 @@ typedef struct conflux_cell_link_t {
conflux_cell_link_t *conflux_cell_new_link(const uint8_t *nonce,
uint64_t last_sent,
uint64_t last_recv,
- bool is_client);
+ uint8_t ux);
conflux_cell_link_t *conflux_cell_parse_link(const cell_t *cell,
const uint16_t cell_len);
diff --git a/src/core/or/conflux_pool.c b/src/core/or/conflux_pool.c
index ae14bd1b3c..02d511149c 100644
--- a/src/core/or/conflux_pool.c
+++ b/src/core/or/conflux_pool.c
@@ -143,18 +143,19 @@ fmt_nonce(const uint8_t *nonce)
static uint8_t
conflux_choose_algorithm(uint8_t desired_ux)
{
- /* TODO-329-TUNING: Pick better algs here*/
switch (desired_ux) {
case CONFLUX_UX_NO_OPINION:
return CONFLUX_ALG_LOWRTT;
case CONFLUX_UX_MIN_LATENCY:
return CONFLUX_ALG_MINRTT;
- case CONFLUX_UX_LOW_MEM_LATENCY:
- return CONFLUX_ALG_MINRTT;
- case CONFLUX_UX_LOW_MEM_THROUGHPUT:
- return CONFLUX_ALG_CWNDRTT;
case CONFLUX_UX_HIGH_THROUGHPUT:
return CONFLUX_ALG_LOWRTT;
+ /* For now, we have no low mem algs, so use minRTT since it should
+ * switch less and thus use less mem */
+ /* TODO-329-TUNING: Pick better algs here*/
+ case CONFLUX_UX_LOW_MEM_THROUGHPUT:
+ case CONFLUX_UX_LOW_MEM_LATENCY:
+ return CONFLUX_ALG_MINRTT;
default:
/* Trunnel should protect us from this */
tor_assert_nonfatal_unreached();
@@ -1105,11 +1106,12 @@ conflux_launch_leg(const uint8_t *nonce)
// arti-relay could (if resumption seems worthwhile; it may not be worth the
// memory storage there, either).
- /* We have a circuit, create the new leg and attach it to the set. */
+ /* We have a circuit, create the new leg and attach it to the set.
+ * TODO-329-TUNING: Should we make a torrc option to request min latency? */
leg_t *leg = leg_new(TO_CIRCUIT(circ),
conflux_cell_new_link(nonce,
last_seq_sent, last_seq_recv,
- true));
+ CONFLUX_UX_HIGH_THROUGHPUT));
/* Increase the retry count for this conflux object as in this nonce. */
unlinked->cfx->num_leg_launch++;
@@ -1760,8 +1762,10 @@ conflux_process_link(circuit_t *circ, const cell_t *cell,
goto end;
}
+ /* Exits should always request min latency from clients */
conflux_cell_link_t *linked = conflux_cell_new_link(nonce, last_seq_sent,
- last_seq_recv, false);
+ last_seq_recv,
+ CONFLUX_UX_MIN_LATENCY);
conflux_cell_send_linked(linked, TO_OR_CIRCUIT(circ));
tor_free(linked);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the tor-commits
mailing list