Skip to content

Clarify FTN construction #1008

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

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

Clarify FTN construction #1008

wants to merge 4 commits into from

Conversation

suhasHere
Copy link
Collaborator

Fixes #1005

@suhasHere suhasHere requested review from vasilvv and ianswett as code owners May 7, 2025 11:29
@afrind afrind added the Editorial & Minor Design For PRs that are primarily editorial with a small, non-wire breaking design change label May 7, 2025
@@ -501,6 +501,10 @@ constrain the information in these fields, for example by restricting them to
UTF-8. Any specification that does needs to specify the canonicalization into
the bytes in the Track Namespace or Track Name such that exact comparison works.

Repeating the bytes corresponding to tuples between the Track Namespace
and the Track Name is an invalid construction. Endpoints encountering such
a construction MUST terminate the session with a 'Protocol Violation' error.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Uh, I think I know what you are getting at but this seems pretty confusing. How about

Publishers MUST NOT create a tracks names that are the same as namespace tuples inside the same namespace.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Or something like this?

The combined tuple consisting of a Full Track Name's Namespace tuple fields and its Track Name MUST NOT also be a Track Namespace or a prefix of a Track Namespace.

@fluffy
Copy link
Collaborator

fluffy commented May 14, 2025

And to be clear, I agree with the design here - just hard to figure out how to phrase the text

@wilaw
Copy link
Contributor

wilaw commented May 29, 2025

From draft-11 - A MOQT scope is a set of servers (as identified by their connection URIs) for which the tuple of Track Name and Track Namespace are guaranteed to be unique and identify a specific track

The fact that we concatenate namespace and name down to a common tuple , and that we need to consider this PR in order to disambiguate the two, suggests we should re-evaluate Simplify naming by removing the distinction between Track Namespace and Track Name. The primary argument for closing that was the complexity of wildcard subscriptions. But that was prior to the PUBLISH workflow being considered. If a client wants to subscribe to all of example.com, and they have the permissions to, then let them. Relays never need to know the differentiation of namespace and names as they only ever operate on the concatenation of the two. ANNOUNCE is naturally wildcard-enabled, as is SUBSCRIBE_ANNOUNCES.

To avoid confusion and potential ambiguity, the combined tuple consisting of a
Full Track Name's Namespace tuple fields and its Track Name MUST NOT also be a
Track Namespace or a prefix of a Track Namespace. Endpoints encountering such a
construction MUST terminate the session with a 'Protocol Violation' error.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I'm not sure this will be trivial to check for all implementations, so I'd be inclined towards SHOULD.

@suhasHere
Copy link
Collaborator Author

@afrind @ianswett wondering if this is ready to merge . Please let me know . Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Editorial & Minor Design For PRs that are primarily editorial with a small, non-wire breaking design change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Disallow a namespace and track name with the same tuple set
5 participants