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

Do we need msg-reliable and lifetime? #446

Closed
mirjak opened this issue Jan 17, 2020 · 3 comments
Closed

Do we need msg-reliable and lifetime? #446

mirjak opened this issue Jan 17, 2020 · 3 comments
Labels

Comments

@mirjak
Copy link
Contributor

mirjak commented Jan 17, 2020

These two message properties are interconnected and therefore have a dependency. I would rather prefer to only have one property. Lifetime already has one "special" value (infinity) to indicate reliable transmission. We could also declare 0 as special to indicate unreliable transmission (only transmit once and never retransmit).

Also should we rather use -1 for reliable? And also do this for other properties that currently have meaning for infinite? Or would it be more correct to say max instead of infinite?

And more more question on lifetime: Do we need an event that indicates to the application that transmission was aborted due to lifetime expiry?

@mirjak mirjak added the API label Jan 17, 2020
@mwelzl
Copy link
Contributor

mwelzl commented Jan 17, 2020

These two message properties are interconnected and therefore have a dependency. I would rather prefer to only have one property. Lifetime already has one "special" value (infinity) to indicate reliable transmission.

No. Here's a quote from the description of lifetime:
" Setting a Message's Lifetime to infinite indicates that the application does not wish to apply a time constraint on the transmission of the Message, but it does not express a need for reliable delivery; reliability is adjustable per Message via the "Reliable Data Transfer (Message)" property (see Section 7.4.7). "

Consider an unreliable, congestion controlled transport (e.g. QUIC with datagrams). Specifying a "lifetime" means that, once the lifetime has expired, the Message can be deleted from the send buffer. Setting "lifetime" to infinite means that the Message will never just be deleted from the send buffer. This does not at all guarantee that the Message will be retransmitted in case it was lost.

Also should we rather use -1 for reliable? And also do this for other properties that currently have meaning for infinite? Or would it be more correct to say max instead of infinite?

The mistake is the mix of "integer" and "infinite". The latter is okay for type "numeric". I have already fixed this in PR #403 (which is still open).

And more more question on lifetime: Do we need an event that indicates to the application that transmission was aborted due to lifetime expiry?

That's the Expired Event, see section 7.3.2.

@mwelzl
Copy link
Contributor

mwelzl commented Jan 25, 2020

Can we close this issue?

@tfpauly
Copy link
Contributor

tfpauly commented Feb 21, 2020

Interim: Agreed with @mwelzl, closing.

@tfpauly tfpauly closed this as completed Feb 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants