-
Type: Bug
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 3.1.1
-
Fix Version/s: None
-
Component/s: core
-
Labels:None
-
Environment:
Conformance
-
Proposal:
-
Resolution:
Appendix A. Mandatory normative statements appears to be a listing of normative statements for conformance purposes.
Entirely up to the TC but I think that is a mis-leading practice.
For example, under 1.4.1.2 UTF-8 encoded strings:
*****
The data SHOULD NOT include encodings of the Unicode [Unicode63] code points listed below. If a receiver (Server or Client) receives a control packet containing any of them it MAY close the network connection.
*****
That is normative text and it does not appear in Annex A. (Note the ambiguous reference to "code points listed below." Give the list a number and format as a list.)
And 2.1 Fixed header and MQTT Control Packet types are normative text too.
That is any conforming application will follow those requirements as well.
That is to say, "MUST" doesn't make text normative.
Taking 2.1.1 MQTT Control Packet types could be written:
MQTT control packet types are positioned in the first byte of a MQTT control paket and are represented as a 4-bit unsigned value. The defined MQTT control packet value types are defined in Table #2 (that's not the right table number, just using that as an example).
Assuming the section has been declared normative, that is all you need for MQTT control packet types.
Then, elsewhere in the specification, in the conformance clause, you can say:
"A conforming MQTT application accepts MQTT control packets (do you want "Control Packets" or control packets?) as defined in Section 2, MQTT Control Packet Format."
Which means all the normative language in Section 2 is applicable to the conforming application, whether it is MUST, MUST NOT, SHOULD, MAY, etc. And you can simply make declarative statements like defining the types of control packets.
Yes?
As written, Appendix A leaves out all reference to MQTT Control Packet format. But it is a normative part of the specification.