From a61780b477bb17ef16e5c0114c40499bea872684 Mon Sep 17 00:00:00 2001 From: Jeff Becker Date: Fri, 9 Nov 2018 14:07:10 -0500 Subject: [PATCH] prep protocol spec for exit/snode stuff --- docs/proto_v0.txt | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/proto_v0.txt b/docs/proto_v0.txt index 6a6d4a27e..d50af9b95 100644 --- a/docs/proto_v0.txt +++ b/docs/proto_v0.txt @@ -455,7 +455,7 @@ on the currently unspecified stateless routing protocol. TODO: implement routing protocol :^) { - a: protocol_id_uint16 + a: protocol_id_uint16, r: "<32 bytes public identity key of recipiant>", s: "<32 bytes public identity key of sender>", t: "<1280 bytes payload>", @@ -528,12 +528,13 @@ variant 2, response, generated by the endpoint that recieved the request. obtain exit address message (OXAM) -sent to an exit router to obtain a NAT ip address for ip exit traffic. +sent to an exit router to obtain ip exit traffic context. replies are sent down the path that messages originate from. { A: "X", B: [list, of, permitted, blacklisted, traffic, policies], + E: 0 for snode communication or 1 for internet access, I: "<32 bytes signing public key for future communication>", S: uint64_sequence_number, T: uint64_transaction_id, @@ -550,21 +551,14 @@ 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>" + Z: "<64 bytes signature using router identity signing key>" } -E contains an exit route that was granted to the requester that can be used with -IP exit traffic. - -The requester will now have any ip traffic going to address S forwarded to them -via the path that originally sent the OXAM and any TDFM will is recieved on the -same path will be forwarded out to the internet, given that they have -valid signatures and addresses. +any TITM recieved on the same path will be forwarded out to the internet if +OXAM.E is not 0, otherwise it is interpreted as service node traffic. reject exit address message (RXAM) @@ -575,12 +569,11 @@ was denied. { A: "J", B: backoff_milliseconds_uint64, - I: "<32 bytes signing public key of requester>", R: [list, of, rejected, traffic, policies], S: uint64_sequence_number, T: transaction_id_uint64, V: 0, - Z: "<64 bytes signature signed by exit info's signing key>" + Z: "<64 bytes signature signed by router's signing key>" } @@ -744,11 +737,10 @@ transfer ip traffic message (TITM) transfer ip traffic for exit { - A: "E", + A: "I", S: uint64_sequence_number, V: 0, X: "", - Y: "<16 bytes nounce>", Z: "<64 bytes signature using previously provided signing key>" } @@ -769,26 +761,34 @@ should use the new path that this message came from. { A: "U", + R: "<16 bytes previous rx path id>", S: uint64_sequence_number, - T: transaction_id_uint64, + T: "<16 bytes previous tx path id>", + U: uint64_unique_id, V: 0, - Y: "<16 bytes nounce>", Z: "<64 bytes signature using previously provided signing key>" } -T is the transaction ID from the GXAM +update exit verify message (EXVM) + +sent in reply to a UXPM to verify that the path handover was accepted + +{ + A: "V", + U: uint64_unique_id, + V: 0, + Z: "<64 bytes signature from router's signing key>" +} close exit path message (CXPM) client sends a CXPM when the exit is no longer needed. -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>", Z: "<64 bytes signagure using previously provided signing key>" }