Description: There is also little or no normative language for the majority of the elements in the structures - i.e., the reader has to assume which elements are mandatory and which are optional and it's not always clear. For example, rather than saying "Field x contains blah", it should say "Field x MUST contain blah" and rather than "The contents of the message will be x, y and z", it should say something like "The message MUST (or SHOULD) contain x, y and z". I have not detailed the places where this is necessary in most cases. The authors should review the detailed definition for each of the messages.
Notes: I agree (as an implementer) with Cullen that the description language used in -base makes the optional/mandatory parts unambiguous. One thing may still be confusing to implementers, and it is the fact that difference between a variable size member ("opaque message_body<0..2^32-1>;") and a member containing a list of structures ("MessageExtension extensions<0..2^32-1>;") is not explicitly explained.
Text should be added in section 6.3.1.1 to explain this.
From: Mary Barnes
Description: There is also little or no normative language for the majority of the elements in the structures - i.e., the reader has to assume which elements are mandatory and which are optional and it's not always clear. For example, rather than saying "Field x contains blah", it should say "Field x MUST contain blah" and rather than "The contents of the message will be x, y and z", it should say something like "The message MUST (or SHOULD) contain x, y and z". I have not detailed the places where this is necessary in most cases. The authors should review the detailed definition for each of the messages.
Notes: I agree (as an implementer) with Cullen that the description language used in -base makes the optional/mandatory parts unambiguous. One thing may still be confusing to implementers, and it is the fact that difference between a variable size member ("opaque message_body<0..2^32-1>;") and a member containing a list of structures ("MessageExtension extensions<0..2^32-1>;") is not explicitly explained.
Text should be added in section 6.3.1.1 to explain this.