Network Working Group P. Saint-Andre
Internet-Draft Cisco Systems, Inc.
Obsoletes: 2119 (if approved) August 29, 2011
Intended status: Best Current Practice
Expires: March 01, 2012

Conformance Terms to Indicate Requirement Levels
draft-saintandre-2119bis-00

Abstract

In many protocol specifications and related documents, special conformance terms (e.g., the uppercase words "MUST", "SHOULD", and "MAY") are often used to signify requirement levels. This document defines these conformance terms and describes how they are to be interpreted in documents produced within the Internet Standards Process. If approved, this document obsoletes RFC 2119 and changes its status to Historic.

Status of this Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on March 01, 2012.

Copyright Notice

Copyright (c) 2011 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.


Table of Contents

1. Introduction

In many protocol specifications and related documents, special conformance terms (e.g., the uppercase words "MUST", "SHOULD", and "MAY") are often used to signify requirement levels. This document defines these conformance terms and describes how they are to be interpreted in documents produced within the Internet Standards Process [BCP9]. If approved, this document obsoletes RFC 2119 and changes its status to Historic.

The discussion venue for this document is the <ietf@ietf.org> mailing list, for which archives and subscription information are available at <https://www.ietf.org/mailman/listinfo/ietf>.

[[ NOTE TO RFC EDITOR: Upon publication, please remove the foregoing sentence. ]]

2. Definitions

2.1. MUST

This term means that the feature or behavior is an absolute requirement of the specification, so that an implementation has an unconditional obligation to implement the feature or to behave as defined. The terms "SHALL" and "REQUIRED" are equivalent to "MUST".

2.2. MUST NOT

This term means that the feature or behavior is an absolute prohibition of the specification, so that an implementation has an unconditional obligation to not implement the feature or to not behave as defined. The term "SHALL NOT" is equivalent to "MUST NOT".

2.3. SHOULD

This term means that the feature or behavior is a limited requirement of the specification, so that an implementation has a conditional obligation to implement the feature or to behave as defined, unless there is a strong, explicitly described reason not to do so in particular circumstances. Those who implement the specification or deploy conformant technologies need to understand and carefully weigh the full implications of violating the requirement before doing so. The term "RECOMMENDED" is equivalent to "SHOULD".

2.4. SHOULD NOT

This term means that the feature or behavior is a limited prohibition of the specification, so that an implementation has a conditional obligation to not implement the feature or to not behave as defined, unless there is a strong, explicitly described reason to do so in particular circumstances. Those who implement the specification or deploy conformant technologies need to understand and carefully weigh the full implications of violating the prohibition before doing so. The term "NOT RECOMMENDED" is equivalent to "SHOULD NOT".

2.5. MAY

This term means that the feature or behavior is truly a matter of preference. One implementation can choose to implement the feature or behavior whereas another implementation can choose not to, without any resulting harm to interoperability. An implementation that does not implement the feature or behavior needs to interoperate with another implementation that does do so, although perhaps with reduced functionality. Likewise, an implementation that implements the feature or behavior needs to interoperate with another implementation that does not do so (except, of course, with respect to the defined feature or behavior). The term "OPTIONAL" is equivalent to "MAY".

3. Usage

The conformance terms defined in this document ought to be used judiciously. In particular, the absolute and limited requirements and prohibitions ought be used only to specify features and behaviors that are necessary for interoperability, or to forbid features and behaviors that have the potential to cause significant harm. For example, such terms are not to be used to impose a particular method on implementers if the method is not necessary for interoperability.

When it is not appropriate to use the conformance terms, authors can use a variety of alternative words and phrases, such as: "need to", "has to", or "mandatory" instead of "MUST"; "ought to", "strongly encouraged to", or "suggested" instead of "SHOULD"; and "might", "can", or "discretionary" instead of "MAY". To prevent confusion, authors are strongly encouraged to use these alternative words and phrases instead of the lowercase versions of the conformance terms whenever possible, and to use the conformance terms only in their uppercase versions.

4. Boilerplate

In order for the requirements force of the conformance terms to apply, authors who follow the guidelines specified herein need to incorporate this sentence near the beginning of their documents:

[[ NOTE TO RFC EDITOR: Upon publication, please change "XXXX" to the number assigned to this document. ]]

5. Security Considerations

The conformance terms defined in this document are frequently used to specify features and behaviors that have security implications. The effects on security of not implementing a "MUST" or a "SHOULD", or of doing something the specification says "MUST NOT" or "SHOULD NOT" be done, can be very subtle. Authors are strongly encouraged to elaborate the security implications of not conforming to requirements and recommendations, since many implementers do not have the benefit of the experience and discussion that produced the specification.

6. IANA Considerations

This document requests no actions of the IANA.

7. Acknowledgements

This document borrows text from [RFC2119]; Scott Bradner, the author of that document, is gratefully acknowledged.

8. References

[BCP9] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

Author's Address

Peter Saint-Andre Cisco Systems, Inc. 1899 Wyknoop Street, Suite 600 Denver, CO 80202 USA Phone: +1-303-308-3282 EMail: psaintan@cisco.com