ietf-tapswg / api-drafts Public
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
"Fragmentation Prohibited": message/connection property? #226
Comments
|
This should also prevent IPv4 sender fragmentation. It's possible to generate IPv4 fragments from the stack with the DF set. |
|
This has to be a Message Property, however, we expect programmers to typically set this property on a Connection or Preconnection (as default for all messages). |
|
@gorryfair so you say "network fragmentation". This excludes fragmentation in the host, which we may also want to control if we want to send unfragmented PMTU-sized packets. On the other hand, if this includes fragmentation in the host, your suggested default will always fail for TCP when I send messages > PMTU, yet in case of a TCP-like service I really don't want to care about this. => My suggestion would be to just to drop the word "network" and (alas) NOT make forbid-fragmentation the default. @philsbln it has to be a Message Property, yes. But what makes you say that you'd expect programmers to typically set this on a Connection or a Preconnection? |
|
@mwelzl the only use case to set this on a per-message basis I can image is PMTU discovery and I hope this is usually done by the transport system implementaion |
|
@philsbln I agree with you but don't see the relationship with setting that on a Connection or Preconnection. |
|
Agreed to the general point that this is a useful property! To the discussion of where it goes, I agree with @philsbln. We had discussed letting defaults for Messages be set connection-wide for convenience, so I think the point is that this would commonly be set as a convenient default, rather than having the application set it over and over. |
|
After reading #203 again, I get the feeling we actually need two properties:
Now it becomes ugly:
While the former definitely works as discussed so far, I have no idea what should happen if the latter is set to false on a message but the former is set to true… |
|
Not sure about QUIC, but what you say here about TCP isn't right: none of this should matter to TCP, you can't control DF with it and the PMTU shouldn't be visible to the application. |
|
More on philsbln's note above: I'm putting TCP aside, and assuming he's right about QUIC:
=> I struggle to see a use case for any of these combinations. My proposal would be to have only one boolean property that controls both IP- and transport-level fragmentation (allowing or forbidding both). |
|
I may have confused people - but I too think it is OK to express this as one property. I think there are subtle differences, but such details are not important to TAPS. (Any app needing finer control will likely need to control more than this). |
|
this alternative is in #235 |
|
closed by #235 |
Discussion on #203 identified that we probably want a Message (and/or Connection) property that forces DF on for IPv4 (and, I guess, ensures that datagram sends on IPv6 below MTU will fail, by disabling sender fragmentation, as well).
The text was updated successfully, but these errors were encountered: