aboutsummaryrefslogtreecommitdiff
path: root/tor-spec.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tor-spec.txt')
-rw-r--r--tor-spec.txt48
1 files changed, 34 insertions, 14 deletions
diff --git a/tor-spec.txt b/tor-spec.txt
index 683900e..b2b26eb 100644
--- a/tor-spec.txt
+++ b/tor-spec.txt
@@ -852,15 +852,27 @@ see tor-design.pdf.
If version 2 or higher is negotiated, each party sends the other a
NETINFO cell. The cell's payload is:
- Timestamp [4 bytes]
- Other OR's address [variable]
- Number of addresses [1 byte]
- This OR's addresses [variable]
-
- The address format is a type/length/value sequence as given in
- section 6.4 below, without the final TTL. The timestamp is a
- big-endian unsigned integer number of seconds since the Unix epoch.
- Implementations MUST ignore unexpected bytes at the end of the cell.
+ TIME (Timestamp) [4 bytes]
+ OTHERADDR (Other OR's address) [variable]
+ ATYPE (Address type) [1 byte]
+ ALEN (Adress length) [1 byte]
+ AVAL (Address value in NBO) [ALEN bytes]
+ NMYADDR (Number of this OR's addresses) [1 byte]
+ NMYADDR times:
+ ATYPE (Address type) [1 byte]
+ ALEN (Adress length) [1 byte]
+ AVAL (Address value in NBO)) [ALEN bytes]
+
+ Recognized address types (ATYPE) are:
+ [04] IPv4.
+ [06] IPv6.
+
+ ALEN MUST be 4 when ATYPE is 0x04 (IPv4) and 16 when ATYPE is 0x06
+ (IPv6).
+
+ The timestamp is a big-endian unsigned integer number of seconds
+ since the Unix epoch. Implementations MUST ignore unexpected bytes
+ at the end of the cell.
Implementations MAY use the timestamp value to help decide if their
clocks are skewed. Initiators MAY use "other OR's address" to help
@@ -1935,19 +1947,27 @@ see tor-design.pdf.
it should warn its operator that the relay is obsolete.
- When a relay lacks a protocol listed in required-relay-protocols, it
- must not attempt to join the network.
+ should warn its operator as above. If the consensus is newer than the
+ date when the software was released or scheduled for release, it must
+ not attempt to join the network.
- When a client lacks a protocol listed in recommended-client-protocols,
it should warn the user that the client is obsolete.
- - When a client lacks a protocol listed in required-client-protocols, it
- must not connect to the network. This implements a "safe forward
- shutdown" mechanism for zombie clients.
+ - When a client lacks a protocol listed in required-client-protocols,
+ it should warn the user as above. If the consensus is newer than the
+ date when the software was released, it must not connect to the
+ network. This implements a "safe forward shutdown" mechanism for
+ zombie clients.
- If a client or relay has a cached consensus telling it that a given
protocol is required, and it does not implement that protocol, it
SHOULD NOT try to fetch a newer consensus.
+ Software release dates SHOULD be automatically updated as part of the
+ release process, to prevent forgetting to move them forward. Software
+ release dates MAY be manually adjusted by maintainers if necessary.
+
Starting in version 0.2.9.4-alpha, the initial required protocols for
clients that we will Recommend and Require are:
@@ -1979,7 +1999,7 @@ see tor-design.pdf.
9.2. "LinkAuth"
LinkAuth protocols correspond to varieties of Authenticate cells used for
- the v3+ link protocools.
+ the v3+ link protocols.
Current versions are: