Tor  0.4.7.0-alpha-dev
channelpadding.h
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-2021, 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);
30  const channelpadding_negotiate_t
31  *chan);
32 
35 int channelpadding_send_enable_command(channel_t *chan, uint16_t low_timeout,
36  uint16_t high_timeout);
37 
39 unsigned int channelpadding_get_channel_idle_timeout(const channel_t *, int);
41 
42 #endif /* !defined(TOR_CHANNELPADDING_H) */
void channelpadding_disable_padding_on_channel(channel_t *chan)
int channelpadding_get_circuits_available_timeout(void)
unsigned int channelpadding_get_channel_idle_timeout(const channel_t *chan, int is_canonical)
int channelpadding_send_enable_command(channel_t *chan, uint16_t low_timeout, uint16_t high_timeout)
int channelpadding_update_padding_for_channel(channel_t *chan, const channelpadding_negotiate_t *pad_vars)
channelpadding_decision_t channelpadding_decide_to_pad_channel(channel_t *chan)
void channelpadding_new_consensus_params(const networkstatus_t *ns)
void channelpadding_reduce_padding_on_channel(channel_t *chan)