|
|
|
@ -428,7 +428,8 @@ routing layer:
|
|
|
|
|
the routing layer provides inter network communication between the LLARP link
|
|
|
|
|
layer and ip (internet protocol) for exit traffic or ap (anonymous protocol) for
|
|
|
|
|
hidden services. replies to messages are sent back via the path they
|
|
|
|
|
originated from inside a LRDM.
|
|
|
|
|
originated from inside a LRDM. all routing messages have an S value which
|
|
|
|
|
provides the sequence number of the message so the messages can be ordered.
|
|
|
|
|
|
|
|
|
|
ipv4 addresses are allowed via ipv4 mapped ipv6 addresses, i.e. ::ffff.10.0.0.1
|
|
|
|
|
|
|
|
|
@ -436,10 +437,13 @@ path confirm message (PCM)
|
|
|
|
|
|
|
|
|
|
sent as the first message down a path after it's built to confirm it was built
|
|
|
|
|
|
|
|
|
|
always the first message sent
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
A: "P",
|
|
|
|
|
L: uint64_milliseconds_path_lifetime,
|
|
|
|
|
S: uint64_milliseconds_sent_timestamp,
|
|
|
|
|
S: 0,
|
|
|
|
|
T: uint64_milliseconds_sent_timestamp,
|
|
|
|
|
V: 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -451,7 +455,7 @@ variant 1, request, generated by the path creator:
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
A: "L",
|
|
|
|
|
T: uint64_ping_transaction_id,
|
|
|
|
|
S: uint64_sequence_number,
|
|
|
|
|
V: 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -459,7 +463,8 @@ variant 2, response, generated by the endpoint that recieved the request.
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
A: "L",
|
|
|
|
|
L: uint64_ping_transaction_id,
|
|
|
|
|
S: uint64_sequence_number,
|
|
|
|
|
T: uint64_timestamp_sent,
|
|
|
|
|
V: 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -471,6 +476,7 @@ replies are sent down the path that messages originate from.
|
|
|
|
|
{
|
|
|
|
|
A: "X",
|
|
|
|
|
I: "<32 bytes signing public key for future communication>",
|
|
|
|
|
S: uint64_sequence_number,
|
|
|
|
|
T: uint64_transaction_id,
|
|
|
|
|
V: 0,
|
|
|
|
|
X: lifetime_of_address_mapping_in_seconds_uint64,
|
|
|
|
@ -486,6 +492,7 @@ ip address used for exit traffic.
|
|
|
|
|
A: "G",
|
|
|
|
|
E: XR,
|
|
|
|
|
I: "<32 bytes signing public key of requester>",
|
|
|
|
|
S: uint64_sequence_number,
|
|
|
|
|
T: transaction_id_uint64,
|
|
|
|
|
V: 0,
|
|
|
|
|
Z: "<64 bytes signature using exit info's signing key>"
|
|
|
|
@ -510,6 +517,7 @@ was denied.
|
|
|
|
|
B: backoff_milliseconds_uint64,
|
|
|
|
|
I: "<32 bytes signing public key of requester>",
|
|
|
|
|
R: "<optional reject metadata>",
|
|
|
|
|
S: uint64_sequence_number,
|
|
|
|
|
T: transaction_id_uint64,
|
|
|
|
|
V: 0,
|
|
|
|
|
Z: "<64 bytes signature signed by exit info's signing key>"
|
|
|
|
@ -572,6 +580,7 @@ transfer data between paths.
|
|
|
|
|
{
|
|
|
|
|
A: "T",
|
|
|
|
|
P: "<16 bytes path id>",
|
|
|
|
|
S: uint64_sequence_number,
|
|
|
|
|
T: message_transfered_between_paths,
|
|
|
|
|
V: 0
|
|
|
|
|
}
|
|
|
|
@ -586,6 +595,7 @@ transfer ip traffic for exit
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
A: "E",
|
|
|
|
|
S: uint64_sequence_number,
|
|
|
|
|
V: 0,
|
|
|
|
|
X: "<N bytes ipv6 packet>",
|
|
|
|
|
Y: "<16 bytes nounce>",
|
|
|
|
@ -609,6 +619,7 @@ should use the new path that this message came from.
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
A: "U",
|
|
|
|
|
S: uint64_sequence_number,
|
|
|
|
|
T: transaction_id_uint64,
|
|
|
|
|
V: 0,
|
|
|
|
|
Y: "<16 bytes nounce>",
|
|
|
|
@ -624,6 +635,7 @@ The address used in exit MAY be reused later.
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
A: "C",
|
|
|
|
|
S: uint64_sequence_number,
|
|
|
|
|
T: transaction_id_uint64,
|
|
|
|
|
V: 0,
|
|
|
|
|
Y: "<16 bytes nounce>",
|
|
|
|
@ -637,5 +649,6 @@ wrapper message for sending many dht messages down a path.
|
|
|
|
|
{
|
|
|
|
|
A: "M",
|
|
|
|
|
M: [many, dht, messages, here],
|
|
|
|
|
S: uint64_sequence_number,
|
|
|
|
|
V: 0
|
|
|
|
|
}
|