On 5/1/2014 10:40 AM, Thomas Nadeau wrote:
...
The API is the upper-layer events. Without that, you can't define the semantics of the interaction with the upper layer.
FWIW, I'm talking about IETF standard API, not Unix-standard or C-standard. The latter are required to ensure implementation compatibility, but can't be defined without the former.
I guess we will have to agree to disagree. I just don't see why that is going to be useful to anyone.
Let me know if you think you can implement TCP without knowing about
CONNECT, LISTEN, etc. (as per RFC793).
When the protocol API isn't not spec'd in the protocol, we end up
needing to infer the protocol API from the implementation of that API* -
which is what gets us into trouble with so many of the protocols we've
spec'd since.
Joe
* a reference implementation is a declaration of that fact (no need to
infer it) - often explicitly saying "where the code and spec disagree,
the code is correct" --- which means the spec text is useless, and the
code *is* the spec.