Niels Möller wrote:
I think, quite strongly, that such substructure should be out of scopefor the core drafts.
Fair enough, but I suggest that there at least should be stipulated in the specification that locally assigned disconnect codes MUST NOT be sent by standard protocol features.
A situation where Sue sends a local disconnect code 0xFF000000 to Carol, but Sue and Carol do not assign the same meaning to it, should never occur.
(Note: A similar problem occurs in e.g. TLS. The cipher suites 0xFF00 to 0xFFFF are application specific, but there is no way for the peers to tell each other if they share the same implementation.)
The appropriate way to avoid such situations ought to be to stipulate that locally assigned disconnect codes must only be sent by locally specified protocol features (e.g. keyestablishment@host, subsystem@host etc). This should entail that Sue will only send a specific local disconnect code to Carol, if Carol has already told Sue that she supports the locally specified protocol feature that assigns the code.