channelpadding.h (1628B)
1 /* Copyright (c) 2001 Matej Pfajfar. 2 * Copyright (c) 2001-2004, Roger Dingledine. 3 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. 4 * Copyright (c) 2007-2025, The Tor Project, Inc. */ 5 /* See LICENSE for licensing information */ 6 7 /** 8 * \file circuitbuild.h 9 * \brief Header file for circuitbuild.c. 10 **/ 11 #ifndef TOR_CHANNELPADDING_H 12 #define TOR_CHANNELPADDING_H 13 14 #include "trunnel/channelpadding_negotiation.h" 15 16 #define CHANNELPADDING_SOS_PARAM "nf_pad_single_onion" 17 #define CHANNELPADDING_SOS_DEFAULT 1 18 19 typedef enum { 20 CHANNELPADDING_WONTPAD, 21 CHANNELPADDING_PADLATER, 22 CHANNELPADDING_PADDING_SCHEDULED, 23 CHANNELPADDING_PADDING_ALREADY_SCHEDULED, 24 CHANNELPADDING_PADDING_SENT, 25 } channelpadding_decision_t; 26 27 channelpadding_decision_t channelpadding_decide_to_pad_channel(channel_t 28 *chan); 29 int channelpadding_update_padding_for_channel(channel_t *, 30 const channelpadding_negotiate_t 31 *chan); 32 33 void channelpadding_disable_padding_on_channel(channel_t *chan); 34 void channelpadding_reduce_padding_on_channel(channel_t *chan); 35 int channelpadding_send_enable_command(channel_t *chan, uint16_t low_timeout, 36 uint16_t high_timeout); 37 38 int channelpadding_get_circuits_available_timeout(void); 39 unsigned int channelpadding_get_channel_idle_timeout(const channel_t *, int); 40 void channelpadding_new_consensus_params(const networkstatus_t *ns); 41 42 void channelpadding_log_heartbeat(void); 43 44 #endif /* !defined(TOR_CHANNELPADDING_H) */