1. Can I use code that is included in IETF Documents in my software?
Yes. Code Components that are embedded or included in IETF Documents published on or after November 10, 2008, can be used, copied, distributed and modified by anyone in any manner under the open source Revised BSD License. This is true even if the 6.c.iii Legend described in the next question is present in the IETF Document where the Code Component originates.
Code Components that are embedded or included in IETF Documents published during the period of RFC 5378 effectiveness, March 2005 to November 10, 2008, can be used, copied, distributed and modified in any manner under the license grant contained in 3.3.a.E. The IETF takes the position that the code license granted under RFC 5378 is compatible with most other open source licenses, thought it has not formally been recognized by the Open Source Foundation.
2. What is meant by “Code Components”?
Under the TLP, “Code Components” are any components intended to be directly processed by a computer. This means that all forms of software code are Code Components.
The IETF Trust maintains a list of common code components. The items on this list are automatically treated as “Code Components” for purposes of the TLP, but this list is illustrative only. That is, a type of code can still be a “Code Component”, even if it is not listed. If you feel that a particular type of code that is commonly used in IETF Documents should be added to this list, please e-mail the IETF Trust).
3. Must I do anything special in my IETF Contribution if I include Code Components in it?
If you include a Code Component in an IETF Contribution, you are encouraged to label it with markers such as < CODE BEGINS > and < CODE ENDS >, though these markers are not strictly required (See the TLP section 4b.).
4. What must I do if I want to take code from an IETF Document and use it in a program or elsewhere?
If you take code from an IETF Document or Contribution published on or after November 10, 2008, you must follow the instructions contained in Section 4 of the TLP. In particular, in the program that contains the Code Component, you must either reproduce the exact license text that is included in Section 4.c of the TLP in the document or program that includes this code, or the legend contained in Section 6.d. This is a requirement of the open source Revised BSD License.
In addition, you are requested to attribute such code to the IETF and identify the RFC or other IETF Document or Contribution from which it was taken.
If you take code from an IETF Document or Contribution published during the effectiveness of RFC 5378 (March 2005 to November 10, 2008), you must include the abbreviated notices that are set forth in Section 5.6 of RFC 5378.
5. What if I only want to use a small amount of code from an IETF Document?
The rules described apply no matter how small a Code Component may be. This being said, copyright law does not generally protect small fragments of text or code that, in themselves, do not evidence creative expression. Thus, if the statement “x = 0” is included in an IETF Document, and one wished to use “x = 0” in a program without including the various copyright statements described, it is likely that such use would not violate any recognizable copyright interest of the IETF Trust or others.
6. Why did the IETF Trust elect to use the Revised BSD License?
The IETF Trust chose the Revised BSD License for Code Components after consultation with the IETF community, including open source code developers within the community. The Revised BSD license is widely-recognized within the open source community and has been recognized and approved by the Open Source Initiative (OSI) (opensource.org) and is thus compatible with a wide variety of open source software.
The version of the BSD license contained in the TLP is the “Revised BSD License” (as defined by OSI in https://opensource.org/licenses/BSD-3-Clause) and contains a few minor customizations such as the names of relevant IETF entities.
Some trust documents mistakenly refer to the two-clause Simplified BSD license, rather than the Revised BSD license. The three clause Revised BSD license is the one that the Trust uses.
7. Can I choose to use or distribute non-Code portions of an IETF Document under the Modified BSD License?
No. The BSD license provisions described in Section 4 of the TLP apply only to Code Components in an IETF Document. The rest of the IETF Document is subject to the license provisions contained in Section 3 of the TLP.