Issue41

Issue Title Splitting of Node-Addressing Object
Document: GIMPS Protocol Specification v05 Section: 5.2.2, 5.6, C.4.3
Category: Technical Priority: Must Fix
Status: Closed

Created on 2005-04-14.12:42:22 by reh, last changed 2005-05-12.09:21:33.

Messages
msg121 Author: reh Date: 2005-05-12.09:21:33
Changes along these lines are incorporated in version -06. The new object is
called Stack-Configuration-Data, and the addressing information is now in an
object renamed Network-Layer-Information, which also incorporates the routing
state validity time. The NLI is included in all D-mode messages, and C-mode
confirms (for the matching reason).
msg111 Author: reh Date: 2005-04-20.14:18:42
To be more specific:

the node-information object would be present in every Q/R/C message and contain 
- interface-address
- peer-identity
- ip-ttl
Note the need to have this in C messages (even in C mode) because the
interface-address is used to match against the same information in Q (refresh)
messages, but the responding node does not remember the initial Query. NAT
issues have to be handled specially.

the messaging-association object would be present when new messaging
associations were being negotiated (i.e. only in some D mode Q/R messages) and
would contain
- lifetime
- higher layer information
msg104 Author: reh Date: 2005-04-14.12:42:22
The Node-Addressing object currently contains a mixture of two types of information:

*) information about the node, which is used for all purposes (routing state
monitoring, inter-node messaging, MA setup and re-use detection)

*) information about the setup and configuration of messaging associations,
which is only needed when a new MA is (possibly) to be set up and not valid
otherwise.

We need to add lifetime information to the second category (see issue 16). At
this point it seems sensible to split the object into two parts, with clearer
rules on when objects are needed. With the split, all fields would be mandatory
in each object; the node-information object would be mandatory in any Q/R/C
message, and the ma-information object would be mandatory if a MA was being set up.

At the moment, the rules for including the interface-address field are somewhat
complex; it is needed both for return addressing of messages (in which case NAT
translations need to be done and can be done automatically on D mode messages)
and to compare with newly received Query messages for route change detection
even if the original Query was discarded (since the Responder is delaying state
installation until the end of the handshake). It seems simplest to make the
interface-address field mandatory whenever the node-information object is
included, and let the message receiver work out whether to ignore it or whether
it needs translation.
History
Date User Action Args
2005-05-12 09:21:33rehsetstatus: Pending -> Closed
messages: + msg121
2005-04-20 14:18:43rehsetstatus: No Discussion -> Pending
messages: + msg111
2005-04-14 12:42:22rehcreate