aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Newsome <jnewsome@torproject.org>2023-11-06 11:08:28 -0600
committerJim Newsome <jnewsome@torproject.org>2023-11-06 11:08:28 -0600
commit1744bee8ec9fec2cc288fb160ad071ad02996570 (patch)
treeb33051a8967d0ab26cc5ebe0f0242463f3de65c9
parenta008942db4bd7a6e51c7bd6730383efce641fa5c (diff)
downloadtorspec-1744bee8ec9fec2cc288fb160ad071ad02996570.tar.gz
torspec-1744bee8ec9fec2cc288fb160ad071ad02996570.zip
cell-packet-format: fix section references
-rw-r--r--spec/tor-spec/cell-packet-format.md45
-rw-r--r--spec/tor-spec/circuit-management.md2
-rw-r--r--spec/tor-spec/create-created-cells.md2
-rw-r--r--spec/tor-spec/flow-control.md4
-rw-r--r--spec/tor-spec/negotiating-channels.md8
-rw-r--r--spec/tor-spec/relay-cells.md2
-rw-r--r--spec/tor-spec/relay-early.md2
-rw-r--r--spec/tor-spec/routing-relay-cells.md2
-rw-r--r--spec/tor-spec/streams.md2
-rw-r--r--spec/tor-spec/tearing-down-circuits.md2
10 files changed, 35 insertions, 36 deletions
diff --git a/spec/tor-spec/cell-packet-format.md b/spec/tor-spec/cell-packet-format.md
index 138a946..10c647b 100644
--- a/spec/tor-spec/cell-packet-format.md
+++ b/spec/tor-spec/cell-packet-format.md
@@ -46,28 +46,28 @@ values:
| Value | Identifier | Description |
----------------------------------------------------------------------
-| 0 | `PADDING` | Padding (See Sec 7.2) |
-| 1 | `CREATE` | Create a circuit (See Sec 5.1) |
-| 2 | `CREATED` | Acknowledge create (See Sec 5.1) |
-| 3 | `RELAY` | End-to-end data (See Sec 5.5 and 6) |
-| 4 | `DESTROY` | Stop using a circuit (See Sec 5.4) |
-| 5 | `CREATE_FAST` | Create a circuit, no KP (See Sec 5.1) |
-| 6 | `CREATED_FAST` | Circuit created, no KP (See Sec 5.1) |
-| 8 | `NETINFO` | Time and address info (See Sec 4.5) |
-| 9 | `RELAY_EARLY` | End-to-end data; limited (See Sec 5.6) |
-| 10 | `CREATE2` | Extended CREATE cell (See Sec 5.1) |
-| 11 | `CREATED2` | Extended CREATED cell (See Sec 5.1) |
-| 12 | `PADDING_NEGOTIATE` | Padding negotiation (See Sec 7.2) |
+| 0 | `PADDING` | Padding (See [Link padding](./flow-control.md#link-padding)) |
+| 1 | `CREATE` | Create a circuit (See [`CREATE` and `CREATED` cells](./create-created-cells.md#CREATE)) |
+| 2 | `CREATED` | Acknowledge create (See [`CREATE` and `CREATED` cells](./create-created-cells.md#CREATE)) |
+| 3 | `RELAY` | End-to-end data (See [Routing relay cells](./routing-relay-cells.md#routing-relay-cells) and [Relay cells](./relay-cells.md#relay-cells)) |
+| 4 | `DESTROY` | Stop using a circuit (See [Tearing down circuits](./tearing-down-circuits.md#tearing-down-circuits)) |
+| 5 | `CREATE_FAST` | Create a circuit, no KP (See [`CREATE` and `CREATED` cells](./create-created-cells.md#CREATE)) |
+| 6 | `CREATED_FAST` | Circuit created, no KP (See [`CREATE` and `CREATED` cells](./create-created-cells.md#CREATE)) |
+| 8 | `NETINFO` | Time and address info (See [`NETINFO` cells](./negotiating-channels.md#NETINFO-cells)) |
+| 9 | `RELAY_EARLY` | End-to-end data; limited (See [Handling `RELAY_EARLY` cells](./relay-early.md#handling-relay-early-cells)) |
+| 10 | `CREATE2` | Extended CREATE cell (See [`CREATE` and `CREATED` cells](./create-created-cells.md#CREATE)) |
+| 11 | `CREATED2` | Extended CREATED cell (See [`CREATE` and `CREATED` cells](./create-created-cells.md#CREATE)) |
+| 12 | `PADDING_NEGOTIATE` | Padding negotiation (See [Flow control](./flow-control.md#flow-control)) |
Variable-length command values are:
| Value | Identifier | Description |
------------------------------------------------------------------
-| 7 | `VERSIONS` | Negotiate proto version (See Sec 4) |
-| 128 | `VPADDING` | Variable-length padding (See Sec 7.2) |
-| 129 | `CERTS` | Certificates (See Sec 4.2) |
-| 130 | `AUTH_CHALLENGE` | Challenge value (See Sec 4.3) |
-| 131 | `AUTHENTICATE` | Client authentication (See Sec 4.5) |
+| 7 | `VERSIONS` | Negotiate proto version (See [Negotiating versions with `VERSIONS` cells](./negotiating-channels.md#VERSIONS-cells)) |
+| 128 | `VPADDING` | Variable-length padding (See [Flow control](./flow-control.md#flow-control)) |
+| 129 | `CERTS` | Certificates (See [`CERTS cells`](./negotiating-channels.md#CERTS-cells)) |
+| 130 | `AUTH_CHALLENGE` | Challenge value (See [`AUTH_CHALLENGE` cells](./negotiating-channels.md#AUTH-CHALLENGE-cells)) |
+| 131 | `AUTHENTICATE` | Client authentication (See [`AUTHENTICATE` cells](./negotiating-channels.md#AUTHENTICATE-cells)) |
| 132 | `AUTHORIZE` | Client authorization (Not yet used) |
The interpretation of `Payload` depends on the type of the cell.
@@ -76,7 +76,7 @@ The interpretation of `Payload` depends on the type of the cell.
* `CREATE`/`CREATE2`: Payload contains the handshake challenge.
* `CREATED`/`CREATED2`: Payload contains the handshake response.
* `RELAY`/`RELAY_EARLY`: Payload contains the relay header and relay body.
-* `DESTROY`: Payload contains a reason for closing the circuit. (see 5.4)
+* `DESTROY`: Payload contains a reason for closing the circuit. (see [Tearing down circuits](./tearing-down-circuits.md#tearing-down-circuits))
Upon receiving any other value for the command field, an OR must
drop the cell. Since more cell types may be added in the future, ORs
@@ -97,7 +97,7 @@ Senders set padding bytes depending on the cell's command:
* Padding bytes SHOULD be set to NUL.
We recommend random padding in `RELAY`/`RELAY_EARLY` cells, so that the cell
-content is unpredictable. See the format of relay cells in section 6.1
+content is unpredictable. See the format of relay cells in [Relay cells](./relay-cells.md#relay-cells)
for detail.
For other cells, TLS authenticates cell content, so randomized padding
@@ -110,12 +110,11 @@ If there is no other traffic, ORs and OPs send one another a `PADDING`
cell every few minutes.
`CREATE`, `CREATE2`, `CREATED`, `CREATED2`, and `DESTROY` cells are used to
-manage circuits; see section 5 below.
+manage circuits; see [Circuit management](./circuit-management.md#circuit-management).
`RELAY` cells are used to send commands and data along a circuit; see
-section 6 below.
+[Application connections and stream management](./streams.md#application-connections-and-stream-management).
`VERSIONS` and `NETINFO` cells are used to set up connections in link
protocols v2 and higher; in link protocol v3 and higher, `CERTS`,
-`AUTH_CHALLENGE`, and `AUTHENTICATE` may also be used. See section 4
-below.
+`AUTH_CHALLENGE`, and `AUTHENTICATE` may also be used. See [Negotiating and initializing connections](./negotiating-channels.md#negotiating-and-initializing-connections).
diff --git a/spec/tor-spec/circuit-management.md b/spec/tor-spec/circuit-management.md
index 6569b04..d7691a3 100644
--- a/spec/tor-spec/circuit-management.md
+++ b/spec/tor-spec/circuit-management.md
@@ -1,6 +1,6 @@
<a id="tor-spec.txt-5"></a>
-# Circuit management
+# Circuit management{#circuit-management}
This section describes how circuits are created, and how they operate
once they are constructed.
diff --git a/spec/tor-spec/create-created-cells.md b/spec/tor-spec/create-created-cells.md
index 0ad9c43..c27cc45 100644
--- a/spec/tor-spec/create-created-cells.md
+++ b/spec/tor-spec/create-created-cells.md
@@ -1,6 +1,6 @@
<a id="tor-spec.txt-5.1"></a>
-# CREATE and CREATED cells
+# CREATE and CREATED cells{#CREATE}
Users set up circuits incrementally, one hop at a time. To create a
new circuit, OPs send a CREATE/CREATE2 cell to the first node, with
diff --git a/spec/tor-spec/flow-control.md b/spec/tor-spec/flow-control.md
index e007529..83ed58a 100644
--- a/spec/tor-spec/flow-control.md
+++ b/spec/tor-spec/flow-control.md
@@ -1,6 +1,6 @@
<a id="tor-spec.txt-7"></a>
-# Flow control
+# Flow control{#flow-control}
<a id="tor-spec.txt-7.1"></a>
@@ -28,7 +28,7 @@ information. See proposal 111 for details.
<a id="tor-spec.txt-7.2"></a>
-## Link padding
+## Link padding{#link-padding}
Link padding can be created by sending PADDING or VPADDING cells
along the connection; relay cells of type "DROP" can be used for
diff --git a/spec/tor-spec/negotiating-channels.md b/spec/tor-spec/negotiating-channels.md
index ee5e974..29ad91f 100644
--- a/spec/tor-spec/negotiating-channels.md
+++ b/spec/tor-spec/negotiating-channels.md
@@ -1,6 +1,6 @@
<a id="tor-spec.txt-4"></a>
-# Negotiating and initializing connections
+# Negotiating and initializing connections{#negotiating-and-initializing-connections}
After Tor instances negotiate handshake with either the "renegotiation" or
"in-protocol" handshakes, they must exchange a set of cells to set up
@@ -218,7 +218,7 @@ below must be exchanged.
<a id="tor-spec.txt-4.3"></a>
-## AUTH_CHALLENGE cells
+## AUTH_CHALLENGE cells{#AUTH-CHALLENGE-cells}
An AUTH_CHALLENGE cell is a variable-length cell with the following
fields:
@@ -241,7 +241,7 @@ see 4.4.1 and 4.4.2 below.
<a id="tor-spec.txt-4.4"></a>
-## AUTHENTICATE cells
+## AUTHENTICATE cells{#AUTHENTICATE-cells}
If an initiator wants to authenticate, it responds to the
AUTH_CHALLENGE cell with a CERTS cell and an AUTHENTICATE cell.
@@ -365,7 +365,7 @@ the RAND field.
<a id="tor-spec.txt-4.5"></a>
-## NETINFO cells
+## NETINFO cells {#NETINFO-cells}
If version 2 or higher is negotiated, each party sends the other a
NETINFO cell. The cell's payload is:
diff --git a/spec/tor-spec/relay-cells.md b/spec/tor-spec/relay-cells.md
index b827d0f..ce339b2 100644
--- a/spec/tor-spec/relay-cells.md
+++ b/spec/tor-spec/relay-cells.md
@@ -1,6 +1,6 @@
<a id="tor-spec.txt-6.1"></a>
-# Relay cells
+# Relay cells{#relay-cells}
Within a circuit, the OP and the end node use the contents of
RELAY packets to tunnel end-to-end commands and TCP connections
diff --git a/spec/tor-spec/relay-early.md b/spec/tor-spec/relay-early.md
index cefa790..1843253 100644
--- a/spec/tor-spec/relay-early.md
+++ b/spec/tor-spec/relay-early.md
@@ -1,6 +1,6 @@
<a id="tor-spec.txt-5.6"></a>
-# Handling relay_early cells
+# Handling relay_early cells{#handling-relay-early-cells}
A RELAY_EARLY cell is designed to limit the length any circuit can reach.
When an OR receives a RELAY_EARLY cell, and the next node in the circuit
diff --git a/spec/tor-spec/routing-relay-cells.md b/spec/tor-spec/routing-relay-cells.md
index 07057b0..ff81e27 100644
--- a/spec/tor-spec/routing-relay-cells.md
+++ b/spec/tor-spec/routing-relay-cells.md
@@ -1,6 +1,6 @@
<a id="tor-spec.txt-5.5"></a>
-# Routing relay cells
+# Routing relay cells{#routing-relay-cells}
<a id="tor-spec.txt-5.5.1"></a>
diff --git a/spec/tor-spec/streams.md b/spec/tor-spec/streams.md
index 29fe097..1aa5491 100644
--- a/spec/tor-spec/streams.md
+++ b/spec/tor-spec/streams.md
@@ -1,6 +1,6 @@
<a id="tor-spec.txt-6"></a>
-# Application connections and stream management
+# Application connections and stream management{#application-connections-and-stream-management}
This section describes how clients use RELAY cells to communicate with
exit nodes, and how use this communication channel to send and receive
diff --git a/spec/tor-spec/tearing-down-circuits.md b/spec/tor-spec/tearing-down-circuits.md
index 66e71bd..05e6444 100644
--- a/spec/tor-spec/tearing-down-circuits.md
+++ b/spec/tor-spec/tearing-down-circuits.md
@@ -1,6 +1,6 @@
<a id="tor-spec.txt-5.4"></a>
-# Tearing down circuits
+# Tearing down circuits{#tearing-down-circuits}
Circuits are torn down when an unrecoverable error occurs along
the circuit, or when all streams on a circuit are closed and the