Tor 0.4.9.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
19typedef 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
27channelpadding_decision_t channelpadding_decide_to_pad_channel(channel_t
28 *chan);
30 const channelpadding_negotiate_t
31 *chan);
32
35int channelpadding_send_enable_command(channel_t *chan, uint16_t low_timeout,
36 uint16_t high_timeout);
37
39unsigned 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)