SF: C: Creation of Previous Node ext. block in starting (source) node #29
Labels
question
Further information is requested
Source Forge - feature
feature request migrated from Source Source
Milestone
Hi, I am Cheol H. Koo from Korea Aerospace Research Institute.
I found ION BPv7 engine in a IPN node creates a Previous Node when the node is the source node, i.e., the bundle starts from this node in first.
RFC-9171 says as
"4.4.1. Previous Node
The Previous Node Block, block type 6, identifies the node that forwarded this bundle to the local
node (i.e., to the node at which the bundle currently resides); its block-type-specific data is the
node ID of that forwarder node. That node ID SHALL conform to Section 4.2.5.2. If the local node is
the source of the bundle, then the bundle MUST NOT contain any Previous Node Block. Otherwise,
the bundle contain one (1) occurrence of this type of block and MUST NOT contain more
than one."
So, I think when a IPN node is the source node, the IPN node is NOT supposed to create the Previous Node extension block. But, it seems ION BPv7 engine creates the Previous Node during creation of the starting bundle.
------ comment Jay
When ION source a bundle in storage, it does not contain a previous node block when in storage.
If ION source a bundle and it is forwarded externally, it appends a previous node block by the convergence layer so the receiving node, the local node that stores the bundle, can identify the node that forwards the bundle to it.
------ comment Cheol
Thanks for the explanation about how ION works with insertion of a previous node.
I issued this because insertion of a previous node at the starting node, i.e. the first node forwarding a bundle, is NOT expected as RFC-9171 describes at 4.4.1. Previous Node (see my initial comment above). Hope this helps if you want my clarification to my comment.
------ comment Jay
Hi Cheol, this is Jay (not logged in right now). I think I understand your point. I think we have different interpretations of the same language.
Say node A created a bundle and send to node B. I believe the spec is saying that while the bundle is stored (resides) in node A, it should not have a previous node block because the bundle is residing in its source node. This is perfectly reasonable because the bundle is not being transmitted and if it is consumed locally, then there is no previous node anyways.
I don't see the spec saying we cannot add a previous node block while transmitting to external node B because the intent of the previous node block is to identify, once the bundle arrives at B, which node forwarded the bundle.
But I can also perfectly understand how you read the spec from the same language. Personally I don't have strong preference with either way.
So a more practical question is to identify a driving rationale that requires the first hop transmission NOT to include the previous node block. Is there a reason that the first hop neighbor should not have a previous node block that identifies the source that forward the bundle to it?
The text was updated successfully, but these errors were encountered: