aboutsummaryrefslogtreecommitdiff
path: root/tor-spec.txt
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2013-03-13 13:20:51 -0400
committerNick Mathewson <nickm@torproject.org>2013-03-14 12:42:15 -0400
commit8d7b559728a5361b9379d75a8e0741bc6ffd5881 (patch)
treeb2aca729d7daf4eeae979cb63049f675ca64d09b /tor-spec.txt
parent2e695e7674ba9f8d5ca712578db6ea67d5be0092 (diff)
downloadtorspec-8d7b559728a5361b9379d75a8e0741bc6ffd5881.tar.gz
torspec-8d7b559728a5361b9379d75a8e0741bc6ffd5881.zip
Document IPv6-exit features in the specs
Closes proposals 117 and 208
Diffstat (limited to 'tor-spec.txt')
-rw-r--r--tor-spec.txt19
1 files changed, 16 insertions, 3 deletions
diff --git a/tor-spec.txt b/tor-spec.txt
index 0c333e7..6831744 100644
--- a/tor-spec.txt
+++ b/tor-spec.txt
@@ -1252,14 +1252,27 @@ see tor-design.pdf.
and constructs a RELAY_BEGIN cell with a payload encoding the address
and port of the destination host. The payload format is:
- ADDRESS | ':' | PORT | [00]
+ ADDRPORT [nul-terminated string]
+ FLAGS [4 bytes]
+
+ ADDRPORT is made of ADDRESS | ':' | PORT | [00]
where ADDRESS can be a DNS hostname, or an IPv4 address in
dotted-quad format, or an IPv6 address surrounded by square brackets;
and where PORT is a decimal integer between 1 and 65535, inclusive.
- [What is the [00] for? -NM]
- [It's so the payload is easy to parse out with string funcs -RD]
+ The FLAGS value has one or more of the following bits set, where
+ "bit 1" is the LSB of the 32-bit value, and "bit 32" is the MSB.
+ bit meaning
+ 1 -- IPv6 okay. We support learning about IPv6 addresses and
+ connecting to IPv6 addresses.
+ 2 -- IPv4 not okay. We don't want to learn about IPv4 addresses
+ or connect to them.
+ 3 -- IPv6 preferred. If there are both IPv4 and IPv6 addresses,
+ we want to connect to the IPv6 one. (By default, we connect
+ to the IPv4 address.)
+ 4..32 -- Reserved. Current clients MUST NOT set these. Servers
+ MUST ignore them.
Upon receiving this cell, the exit node resolves the address as
necessary, and opens a new TCP connection to the target port. If the