Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tte wglc review #40

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Tte wglc review #40

wants to merge 3 commits into from

Conversation

toerless
Copy link
Member

Proposed changes according to WGLC2, review <https://mailarchive.ietf.org/arch/msg/anima/KbWQKsfFVbTWMijjm1WxCUG6908

See that message for explanations of suggested changes


~~~~ aasvg
multi-hop mesh
.---.
| R +---. +----+ +---+ +--+
.---. IPv6
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The term 'IPv6 subnet' inserted here is not explained in the text. And it may raise some questions. The entire mesh is a multi-link IPv6 subnet but this isn't shown by text, for simplicity. Do we want to say that the link between JP and Pledge is also a (different) IPv6 subnet? One where only link-local addresses are valid. Does it help to point this out?

Copy link
Collaborator

@EskoDijk EskoDijk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I left some comments / proposals, but didn't review all of the new text yet. In general it looks like good improvements.

and selects the most appropriate Join Proxy. From the discovery, the Pledge learns the
Join Proxies link-local scope IP address and UDP (join) port. This discovery can also be
based upon {{RFC8995}} section 4.1. If the discovery method does not support discovery
of the join-port, then the Pledge assumes the default CoAP over DTLS UDP port (5683).
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
of the join-port, then the Pledge assumes the default CoAP over DTLS UDP port (5683).
of the join-port, then the Pledge assumes the default CoAP over DTLS UDP port (5684).

from a Plege: Whereas in the stateful proxy case, all packets with the same
(IP_jr:p_Jr, IP_R:p_r) belong to a single Pledges UDP connection and hence
DTLS/CoAP connection, only the packets with the same (IP_jr:p_Jr, IP_R:p_r, H)
belong to a single Plegdes UDP connection / DTLS/CoAP connection. The
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
belong to a single Plegdes UDP connection / DTLS/CoAP connection. The
belong to a single Pledge's UDP connection. The

Since the text only talks about "UDP connection" above, it shouldn't be necessary to add the "/ DTLS/CoAP connection" part here. If we do need then it may be better like:
"single Pledge's UDP connection (e.g. a DTLS connection, or CoAPS connection)"

{: #fig-stateless title='constrained stateless joining message flow.' align="left"}
Unlike the stateful operation, ICMP error messages from the Registrar can not be
mapped to the Pledge, because the ICMP error messages do not carry enough
bytes of the original packets payload to include the JPY Header.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting point on ICMP / ICMPv6 errors. The last sentence (reason) isn't fully clear to me. Do you mean that the Registrar's ICMP error message doesn't contain the IPv6 header of the original Pledge's packet ? So the JP cannot send back an ICMP error message because it doesn't know how the original IPv6 header of the Pledge's packet looked like.

Same issue could occur for a stateful JP however: it typically doesn't store full IPv6 headers but only some limited data like (address, port, timeout-variable) per Pledge?

The Registrar may be a 'normal' unconstrained IPv6 host so it could send out a complete ICMPv6 error message that includes the JPY header and all the other (DTLS) data.

Noteworthy is that 6lowpan mesh network nodes may only send the IPv6 header in the ICMPv6 error message, but not the full packet - to avoid high load on the mesh. (The full data is in practice not used by the sender. The IPv6 header is enough to identify the sent message.) See for source code example of OpenThread mesh: https://github.com/openthread/openthread/blob/main/src/core/net/icmp6.cpp#L119

If the Registrar is located on the Border Router and thus a mesh node, it may also use this "limited" style of ICMPv6 errors with only IPv6 header info. In that case the stateless JP can't find back its JPY header in the ICMPv6 error message from Registrar.

@mcr
Copy link
Member

mcr commented Sep 28, 2022 via email

@mcr mcr mentioned this pull request Oct 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants