idnits 2.17.1 draft-saintandre-2119bis-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document date (August 29, 2011) is 4614 days in the past. Is this intentional? -- Found something which looks like a code comment -- if you have code sections in the document, please surround them with '' and '' lines. Checking references for intended status: Best Current Practice ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFCXXXX' is mentioned on line 174, but not defined Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group P. Saint-Andre 3 Internet-Draft Cisco Systems, Inc. 4 Obsoletes: 2119 (if approved) August 29, 2011 5 Intended status: BCP 6 Expires: March 1, 2012 8 Conformance Terms to Indicate Requirement Levels 9 draft-saintandre-2119bis-01 11 Abstract 13 In many protocol specifications and related documents, special 14 conformance terms (e.g., the uppercase words "MUST", "SHOULD", and 15 "MAY") are often used to signify requirement levels. This document 16 defines these conformance terms and describes how they are to be 17 interpreted in documents produced within the Internet Standards 18 Process. If approved, this document obsoletes RFC 2119 and changes 19 its status to Historic. 21 Status of this Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at http://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on March 1, 2012. 38 Copyright Notice 40 Copyright (c) 2011 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (http://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 56 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . 3 57 2.1. MUST . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 58 2.2. MUST NOT . . . . . . . . . . . . . . . . . . . . . . . . . 3 59 2.3. SHOULD . . . . . . . . . . . . . . . . . . . . . . . . . . 3 60 2.4. SHOULD NOT . . . . . . . . . . . . . . . . . . . . . . . . 4 61 2.5. MAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 62 3. Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 63 4. Boilerplate . . . . . . . . . . . . . . . . . . . . . . . . . . 5 64 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 65 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5 66 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 67 8. Differences from RFC 2119 . . . . . . . . . . . . . . . . . . . 5 68 9. Informative References . . . . . . . . . . . . . . . . . . . . 6 69 Appendix A. Changelog . . . . . . . . . . . . . . . . . . . . . . 6 70 A.1. 00 to 01 . . . . . . . . . . . . . . . . . . . . . . . . . 6 71 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 6 73 1. Introduction 75 In many protocol specifications and related documents, special 76 conformance terms (e.g., the uppercase words "MUST", "SHOULD", and 77 "MAY") are often used to signify requirement levels. This document 78 defines these conformance terms and describes how they are to be 79 interpreted in documents produced within the Internet Standards 80 Process [BCP9]. If approved, this document obsoletes RFC 2119 and 81 changes its status to Historic. 83 The discussion venue for this document is the mailing 84 list, for which archives and subscription information are available 85 at . 87 [[ NOTE TO RFC EDITOR: Upon publication, please remove the foregoing 88 paragraph. ]] 90 2. Definitions 92 2.1. MUST 94 This term means that the feature or behavior is an absolute 95 requirement of the specification, so that an implementation has an 96 obligation to implement the feature or to behave as defined. The 97 terms "SHALL" and "REQUIRED" are equivalent to "MUST". 99 2.2. MUST NOT 101 This term means that the feature or behavior is an absolute 102 prohibition of the specification, so that an implementation has an 103 obligation to not implement the feature or to not behave as defined. 104 The term "SHALL NOT" is equivalent to "MUST NOT". 106 2.3. SHOULD 108 This term means that the feature or behavior is a conditional 109 requirement of the specification, so that an implementation has an 110 obligation to implement the feature or to behave as defined unless 111 there is a strong reason why it might be prudent not to do so in 112 particular circumstances. Specification authors are strongly 113 encouraged to clearly describe such reasons, along with the 114 implications of not conforming with the conditional requirement. 115 Those who implement the specification or deploy conformant 116 technologies need to understand and carefully weigh the full 117 implications of not conforming to the conditional requirement before 118 doing so. The term "RECOMMENDED" is equivalent to "SHOULD". 120 2.4. SHOULD NOT 122 This term means that the feature or behavior is a conditional 123 prohibition of the specification, so that an implementation has an 124 obligation to not implement the feature or to not behave as defined 125 unless there is a strong reason why it might be prudent to do so in 126 particular circumstances. Specification authors are strongly 127 encouraged to clearly describe such reasons, along with the 128 implications of not conforming with the conditional prohibition. 129 Those who implement the specification or deploy conformant 130 technologies need to understand and carefully weigh the full 131 implications of not conforming to the conditional prohibition before 132 doing so. The term "NOT RECOMMENDED" is equivalent to "SHOULD NOT". 134 2.5. MAY 136 This term means that the feature or behavior is purely discretionary. 137 One implementation can choose to implement the feature or behavior 138 whereas another implementation can choose not to, without any 139 resulting harm to interoperability. An implementation that does not 140 implement the feature or behavior needs to interoperate with another 141 implementation that does do so, although perhaps with reduced 142 functionality. Likewise, an implementation that implements the 143 feature or behavior needs to interoperate with another implementation 144 that does not do so (except, of course, with respect to the defined 145 feature or behavior). The term "OPTIONAL" is equivalent to "MAY". 147 3. Usage 149 The conformance terms defined in this document ought to be used 150 judiciously. In particular, the absolute and conditional 151 requirements and prohibitions ought be used only to specify features 152 and behaviors that are necessary for interoperability, or to forbid 153 features and behaviors that have the potential to cause significant 154 harm. For example, such terms are not to be used to impose a 155 particular method on implementers if the method is not necessary for 156 interoperability. 158 When it is not appropriate to use the conformance terms, authors can 159 use a variety of alternative words and phrases, such as: "need to" or 160 "mandatory" instead of "MUST"; "ought to" or "strongly encouraged" 161 instead of "SHOULD"; and "might" or "discretionary" instead of "MAY". 162 To prevent confusion, authors ought to use these alternative words 163 and phrases instead of the lowercase versions of the conformance 164 terms, and to use the conformance terms only in their uppercase 165 versions. 167 4. Boilerplate 169 In order for the requirements force of the conformance terms to 170 apply, authors who follow the guidelines specified herein need to 171 incorporate this sentence near the beginning of their documents: 173 The following conformance terms are to be interpreted as described 174 in [RFCXXXX]: "MUST", "SHALL", "REQUIRED"; "MUST NOT", "SHALL 175 NOT"; "SHOULD", "RECOMMENDED"; "SHOULD NOT", "NOT RECOMMENDED"; 176 "MAY", "OPTIONAL". 178 [[ NOTE TO RFC EDITOR: Upon publication, please change "XXXX" to the 179 number assigned to this document. ]] 181 5. Security Considerations 183 The conformance terms defined in this document are frequently used to 184 specify features and behaviors that have security implications. The 185 effects on security of not implementing a "MUST" or a "SHOULD", or of 186 doing something the specification says "MUST NOT" or "SHOULD NOT" be 187 done, can be very subtle. Specification authors are strongly 188 encouraged to clearly describe the security implications of not 189 conforming to absolute and conditional requirements, since 190 implementers might not have the benefit of the experience and 191 discussion that produced the specification. 193 6. IANA Considerations 195 This document requests no actions of the IANA. 197 7. Acknowledgements 199 This document borrows text from [RFC2119]; Scott Bradner, the author 200 of that document, is gratefully acknowledged. 202 Thanks also to Harald Alvestrand and Julian Reschke for their 203 feedback. 205 8. Differences from RFC 2119 207 The following modifications were made from RFC 2119. 209 o Clarified the definitions to specify that features and behaviors 210 are absolutely required ("MUST"), absolutely prohibited ("MUST 211 NOT"), conditionally required ("SHOULD"), conditionally prohibited 212 ("SHOULD NOT"), or purely discretionary ("MAY"). 213 o Expanded the definitions of "SHOULD" and "SHOULD NOT" to include 214 the notion of conforming unless there is a strong reason to do so, 215 and encouraged specification authors to clearly describe such 216 reasons and the implications of not conforming. 217 o Suggested alternative words and phrases for use when the 218 conformance terms are not appropriate. 219 o Encourage use of the conformance terms only in their uppercase 220 versions. 221 o Modified the title to use the phrase "conformance terms" instead 222 of the phrase "key words". 223 o Modified the boilerplate to include "NOT RECOMMENDED" (erratum 224 #499) and to group similar terms together. 226 9. Informative References 228 [BCP9] Bradner, S., "The Internet Standards Process -- Revision 229 3", BCP 9, RFC 2026, October 1996. 231 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 232 Requirement Levels", BCP 14, RFC 2119, March 1997. 234 Appendix A. Changelog 236 [[ NOTE TO RFC EDITOR: Upon publication, please delete this entire 237 section. ]] 239 A.1. 00 to 01 241 o Added section describing differences from RFC 2119. 242 o Changed "limited" to "conditional" in definitions of "SHOULD" and 243 "SHOULD NOT". 244 o Changed "truly a matter of preference" to "purely discretionary" 245 in definition of "MAY". 246 o Recommended that specification authors clearly describe the 247 reasons why it might be prudent to not conform with "SHOULD" and 248 "SHOULD NOT" statements, and the implications of non-conformance. 249 o Adjusted and harmonized wording throughout. 251 Author's Address 253 Peter Saint-Andre 254 Cisco Systems, Inc. 255 1899 Wyknoop Street, Suite 600 256 Denver, CO 80202 257 USA 259 Phone: +1-303-308-3282 260 Email: psaintan@cisco.com