From 71c11d7306dbbcb81c780a7a786429e2d8eaa669 Mon Sep 17 00:00:00 2001 From: George Kadianakis Date: Mon, 25 Feb 2019 13:59:18 +0200 Subject: [PATCH] document picking infinity bin --- src/core/or/circuitpadding.c | 4 ++++ src/core/or/circuitpadding.h | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/core/or/circuitpadding.c b/src/core/or/circuitpadding.c index 7e76cd7ad5..29a6189309 100644 --- a/src/core/or/circuitpadding.c +++ b/src/core/or/circuitpadding.c @@ -224,6 +224,10 @@ circpad_machine_current_state(const circpad_machine_state_t *mi) /** * Get the lower bound of a histogram bin. The upper bound is obtained by * calling this function with bin+1, and subtracting 1. + * + * This function can also be called with 'bin' set to a value equal or greater + * than histogram_len in which case the infinity bin is chosen and + * CIRCPAD_DELAY_INFINITE is returned. */ STATIC circpad_delay_t circpad_histogram_bin_to_usec(const circpad_machine_state_t *mi, diff --git a/src/core/or/circuitpadding.h b/src/core/or/circuitpadding.h index 4e6454b4a2..ca19e31ca5 100644 --- a/src/core/or/circuitpadding.h +++ b/src/core/or/circuitpadding.h @@ -276,6 +276,12 @@ typedef struct circpad_state_t { * histogram[] = { 6, 10, 6, 7, 9, 6 } * histogram_edges[] = { 0, 100, 200, 350, 500, 1000 } * + * The final bin is called the "infinity bin" and if it's chosen we don't + * schedule any padding. The infinity bin is strange because its lower edge + * is the max value of possible non-infinite delay allowed by this histogram, + * and its upper edge is CIRCPAD_DELAY_INFINITE. You can tell if the infinity + * bin is chosen by inspecting its bin index or inspecting its upper edge. + * * If a delay probability distribution is used for this state, this is set * to 0. */ circpad_hist_index_t histogram_len;