nodelist: Rewrite router_crn_flags_t

Re-order the flags in a logical order, and re-number them.
Add missing comments, fix comment typos.

Part of 34200.
This commit is contained in:
teor 2020-05-11 17:42:05 +10:00
parent 48413dc65f
commit 2ea1692c20

View File

@ -14,22 +14,26 @@
/** Flags to be passed to control router_choose_random_node() to indicate what
* kind of nodes to pick according to what algorithm. */
typedef enum router_crn_flags_t {
/* Try to choose stable nodes. */
CRN_NEED_UPTIME = 1<<0,
/* Try to choose nodes with a reasonable amount of bandwidth. */
CRN_NEED_CAPACITY = 1<<1,
CRN_NEED_GUARD = 1<<2,
/* XXXX not used, apparently. */
CRN_WEIGHT_AS_EXIT = 1<<5,
CRN_NEED_DESC = 1<<6,
/* On clients, only provide nodes that satisfy ClientPreferIPv6OR */
CRN_PREF_ADDR = 1<<7,
/* Only choose nodes if we have downloaded their descriptor or
* microdescriptor. */
CRN_NEED_DESC = 1<<2,
/* Choose nodes that can be used as Guard relays. */
CRN_NEED_GUARD = 1<<3,
/* On clients, only provide nodes that we can connect to directly, based on
* our firewall rules */
CRN_DIRECT_CONN = 1<<8,
/* On clients, only provide nodes with HSRend >= 2 protocol version which
* is required for hidden service version >= 3. */
CRN_RENDEZVOUS_V3 = 1<<9,
* our firewall rules. */
CRN_DIRECT_CONN = 1<<4,
/* On clients, if choosing a node for a direct connection, only provide
* nodes that satisfy ClientPreferIPv6OR. */
CRN_PREF_ADDR = 1<<5,
/* On clients, only provide nodes with HSRend=2 protocol version which
* is required for hidden service version 3. */
CRN_RENDEZVOUS_V3 = 1<<6,
/* On clients, only provide nodes that can initiate IPv6 extends. */
CRN_INITIATE_IPV6_EXTEND = 1<<10,
CRN_INITIATE_IPV6_EXTEND = 1<<7,
} router_crn_flags_t;
/** Possible ways to weight routers when choosing one randomly. See