mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 14:51:11 +01:00
Protover flag handling for congestion control negotiation
This commit is contained in:
parent
76bdadce12
commit
1b1c261080
4 changed files with 14 additions and 15 deletions
|
@ -732,10 +732,9 @@ typedef struct protover_summary_flags_t {
|
|||
* negotiate hs circuit setup padding. Requires Padding=2. */
|
||||
unsigned int supports_hs_setup_padding : 1;
|
||||
|
||||
/** True iff this router supports ntor3 _and_ supports negotiating
|
||||
* additional circuit parameters via the handshake used in ntor3.
|
||||
*/
|
||||
unsigned int supports_ntor3_and_param_negotiation : 1;
|
||||
/** True iff this router supports congestion control.
|
||||
* Requires both FlowCtrl=2 *and* Relay=4 */
|
||||
unsigned int supports_congestion_control : 1;
|
||||
} protover_summary_flags_t;
|
||||
|
||||
typedef struct routerinfo_t routerinfo_t;
|
||||
|
|
|
@ -430,13 +430,11 @@ protover_get_supported_protocols(void)
|
|||
* XXX: WARNING!
|
||||
*/
|
||||
|
||||
/* TODO-324: Add a new Relay=* and a new FlowCtrl=* version to indicate
|
||||
* support for Ntorv3 and prop324. Make sure they get into the spec. */
|
||||
return
|
||||
"Cons=1-2 "
|
||||
"Desc=1-2 "
|
||||
"DirCache=2 "
|
||||
"FlowCtrl=1 "
|
||||
"FlowCtrl=1-2 "
|
||||
"HSDir=2 "
|
||||
"HSIntro=4-5 "
|
||||
"HSRend=1-2 "
|
||||
|
@ -448,7 +446,7 @@ protover_get_supported_protocols(void)
|
|||
#endif
|
||||
"Microdesc=1-2 "
|
||||
"Padding=2 "
|
||||
"Relay=1-3";
|
||||
"Relay=1-4";
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -35,6 +35,8 @@ struct smartlist_t;
|
|||
/** The protover version number where relays can consider IPv6 connections
|
||||
* canonical */
|
||||
#define PROTOVER_RELAY_CANONICAL_IPV6 3
|
||||
/** The protover version number where relays can accept ntorv3 */
|
||||
#define PROTOVER_RELAY_NTOR_V3 4
|
||||
|
||||
/** The protover version number that signifies HSv3 intro point support */
|
||||
#define PROTOVER_HS_INTRO_V3 4
|
||||
|
@ -51,6 +53,9 @@ struct smartlist_t;
|
|||
/** The protover that signals support for HS circuit setup padding machines */
|
||||
#define PROTOVER_HS_SETUP_PADDING 2
|
||||
|
||||
/** The protover that signals support for congestion control */
|
||||
#define PROTOVER_FLOWCTRL_CC 2
|
||||
|
||||
/** List of recognized subprotocols. */
|
||||
/// C_RUST_COUPLED: src/rust/protover/ffi.rs `translate_to_rust`
|
||||
/// C_RUST_COUPLED: src/rust/protover/protover.rs `Proto`
|
||||
|
|
|
@ -482,14 +482,11 @@ memoize_protover_summary(protover_summary_flags_t *out,
|
|||
protocol_list_supports_protocol(protocols, PRT_PADDING,
|
||||
PROTOVER_HS_SETUP_PADDING);
|
||||
|
||||
/* TODO-324: Set these flags based on real values.
|
||||
out->supports_ntor3_and_param_negotiation =
|
||||
protocol_list_supports_protocol(protocols, PRT_RELAY,
|
||||
XXXX)
|
||||
&&
|
||||
out->supports_congestion_control =
|
||||
protocol_list_supports_protocol(protocols, PRT_FLOWCTRL,
|
||||
XXXX);
|
||||
*/
|
||||
PROTOVER_FLOWCTRL_CC) &&
|
||||
protocol_list_supports_protocol(protocols, PRT_RELAY,
|
||||
PROTOVER_RELAY_NTOR_V3);
|
||||
|
||||
protover_summary_flags_t *new_cached = tor_memdup(out, sizeof(*out));
|
||||
cached = strmap_set(protover_summary_map, protocols, new_cached);
|
||||
|
|
Loading…
Add table
Reference in a new issue