-
Notifications
You must be signed in to change notification settings - Fork 21
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
How UUri maps to Zenoh key #100
Comments
A clarification on:
From point of view the Zenoh network always operate on |
Correct. This is also my understanding. |
I think this will work with the concept of the uStreamer so long as:
Here's a (somewhat messy) diagram how I think the routing would look from a Zenoh and uStreamer perspective. Looking to hear your feedback, folks! (I added some details around uStreamer in here to make sure I've understood how this would work -- this is specifically intended to be checked by @stevenhartley) flowchart LR
subgraph ide0[Example Topology]
subgraph ide1[UAuthority A: Zenoh]
usub1[\uSubscription\]
str1[[uStreamer]]
subgraph ide2[Sub \n UUri: abc => A/abc]
end
subgraph ide3[Pub \n UUri: abc => A/abc]
end
a1[(Zenoh Router)]
end
subgraph ide4[UAuthority B: Zenoh]
strconf2{{Streamer Config}}
usub2[\uSubscription\]
str2[[uStreamer]]
subgraph ide5[Sub \n UUri: abc => A/abc]
end
a2[(Zenoh Router)]
end
subgraph ide6[UAuthority C: MQTT]
strconf3{{Streamer Config}}
usub3[\uSubscription\]
str3[[uStreamer]]
subgraph ide7[Sub \n UUri: abc => A/abc]
end
end
end
ide3-- Zenoh KeyExpr: up/A/abc -->ide2
ide3-- Zenoh KeyExpr: up/A/abc -->a1
a1-- Zenoh KeyExpr: up/A/abc -->a2
a2-- Zenoh KeyExpr: up/A/abc -->ide5
ide3-- Zenoh KeyExpr: up/A/abc -->str1
str1-- Zenoh KeyExpr: up/A/abc -->str3
usub2-- we ignore incoming \n publishes from A because \n we know that Zenoh will handle that routing -->str2
usub3-- because we have not \n been configured otherwise \n we do route zenoh publishes \n to local subscribers -->str3
usub3-- can obtain the authority A -->ide7
str3-- MQTT5 key equivalent of \n A/abc-->ide7
usub2-- can obtain the authority A -->ide5
ide3-- create topic A/abc -->usub1
strconf2-- we have a UTransport for Zenoh \n but it's set to ignore incoming \n publishes from A \n\n this will avoid unintentionally \n routing any Zenoh messages \n\n we also make sure to set no routes for \n request, response, notification \n between A<->B -->str2
strconf3-- we have a Zenoh UTransport and \n add any routes \n for request, response, notification \n between A<->C \n as only A is zenoh -->str3
|
Couple of comments:
|
@PLeVasseur I'm curious about what the role uSubscription plays in Zenoh scenario. It seems like we all agree to the conclusion, so I'll create a PR to update |
It looks good to me. To allow the |
Merged and closing this issue, thank you @evshary and team!!! |
As we discussed in the weekly meeting, let me put the conclusion here to see whether we're on the same page.
Then I can update the Zenoh spec in up-spec later.
Users should add UAuthority or we can create UAuthority internally in the UPClientZenoh constructor.
If we agree on the conclusion, then Zenoh doesn't need to do any access control to the local UUri on Zenoh router and I'll close the issue.
eclipse-zenoh/zenoh#773
Let me know your thoughts. @Mallets @sophokles73 @stevenhartley @PLeVasseur
The text was updated successfully, but these errors were encountered: