IETF Tools - The Internet Protocol Journal, Volume 14, No. 4

Robert Sparks

Many activities are associated with defining and refining an Internet Engineering Task Force (IETF) protocol, and all of them are detail-oriented. As IETF Working Groups are formed, mailing list discussions proceed, documents are written and reviewed, and interoperability is evaluated, participants encounter tasks that can be significantly simplified with the help of software tools. Fortunately, those participants frequently are also skilled software developers, and they create and share these tools as the need arises. A new paradigm has evolved recently: When a pressing need for a tool is identified—particularly one that has a large scope—the IETF Administrative Oversight Committee (IAOC) accelerates the creation of the tool by working with the community to gather requirements and financing the development of a solution. Comprehensive lists of available tools are maintained at [1] and at [2]. This article introduces a few important tools and discusses how you can help improve them or develop new ones.

Document Tools

The Extensible Markup Language to Request For Comments (XML2RFC) [0] tool was developed to assist with Internet-Draft composition. Marshall Rose created and maintained the initial ver-sions, capturing its input language and operation instructions in RFC 2629 [18]. This tool simplifies draft creation and maintenance by automatically producing documents that satisfy the RFC Editor's layout requirements, and assists in including the appropriate boilerplate as defined by the IETF Trust. It also simplifies the task of the RFC Production Center [19, 20]. Starting with XML input rather than a draft in text form reduces the work required to create the RFC. The IAOC is currently funding a reimplementation of XML2RFC to reflect many years of user feedback, simplify maintenance—particularly of boilerplate handling—and make it easier for volunteers to contribute improvements. This reimplementation is currently available at [3]. Tony Hansen has been very active in gathering the requirements for and evaluating the reimplemented version. Julian Reschke also maintains Extensible Stylesheet Language Transformation (XSLT) code at [4] that translates RFC 2629-based input into several output formats.

After a new draft is prepared, Henrik Levkowetz' Internet-Draft Nit Checker (idnits) tool at [5] can scan it for any problems with the RFC Editor's checklist and guidelines and for other problems that drafts frequently encounter later in review. There are also tools for verifying sections of the document containing formal languages such as Augmented Backus-Naur Form (ABNF) or XML.

When an editor is satisfied that the document is ready to place in the repository, the automated ID Submission tool [6] assists with an easy upload. At any point two versions of a draft can be compared with rfcdiff [7], a flexible comparison program created by Henrik Levkowetz.

As a draft progresses, its history and current status can be tracked using the Internet-Drafts Tracker (ID Tracker) tool [8]. This tool provides powerful search capabilities into the entire Internet-Draft repository, and a comprehensive view into the lifecycle of each Internet-Draft. With its roots in a tool to help the Internet Engineering Steering Group (IESG) keep track of drafts in IESG evaluation, the ID Tracker has evolved into a portal touching almost all aspects of IETF work. Each step of that evolution has improved efficiency and transparency, and has simplified access to the history of the development of each document.

Recent additions to the tracker allow for an easier capture of the details of Working Group processing. Work in progress will provide more visibility into the Working Group chartering and rechartering processes. The tracker is also used by other document streams. Many of the enhancements to the tracker are informed by the views into documents and Working Groups maintained by Henrik Levkowetz at [2]. The tracker continues to evolve through both IAOC-funded development efforts and volunteer contributions. An extension in progress will add visibility into the RFC Editor and Internet Assigned Numbers Authority (IANA) actions. When this extension is done the entire lifecycle of a Draft, from -00 submission to RFC publication, can be viewed in a single place.

Working Group and Meeting Tools

At each IETF meeting, a participant can build a custom view of the agenda using the tools at the datatracker and the tools sites. For example, [9 renders an interactive JavaScript-based calendar contributed by Adam Roach showing the Real-Time Applications and Infrastructure (RAI) meetings at IETF82. The pages at [10] provide a quick reference to the jabber rooms and audio streams of each Working Group meeting. The meeting materials tool facilitates uploading of agendas, slides, and minutes, which become available immediately through the agenda views.

Each Working Group has a Subversion Repository and an integrated instance of Trac [21] at its disposal. The Subversion Repository can be used to maintain Working Group draft source, versioned instances of test documents, and even implementation code. IETF-specific customizations of the Trac system are described at [11]. Many Working Groups are already taking advantage of what the wiki Trac provides, and are using its ticketing feature to effectively track major Working Group document problems.

Notable examples are the problem tracking integrated into the Hypertext Transfer Protocol Bis (HTTPBIS) document status page at [12], and the summary of DISPATCH activity at [13]. The Trac wiki capability is also used by the Working Group Chairs at [14] and the IESG at [15.


Keeping up with all of the activity across the IETF can be a challenge. One of the better tools for seeing what is happening is The Daily Dose of the IETF, created by Pasi Eronen, available at [16].

Again, this article is an introduction to just a few important tools. Comprehensive lists of available tools are maintained at [1] and [2].

Many of these tools were created because a person who needed them coded an initial version and contributed it to the community. Volunteers (and when needed, IAOC-funded efforts) then improve these tools over time. For several years, a group of volunteers have been meeting the Saturday before each IETF meeting for a day-long Code Sprint. If the existing tools need a minor tweak to make things work much better for you, or if you have an idea for a new tool you would like to start, please consider participating at the next Code Sprint. Between sprints, you can still help with the code. Refer to the sprint pages for an upcoming or recent sprint such as [17] and for information about getting started.

Whether or not you can contribute to the code, please discuss your ideas on the mailing list.

Several tool contributers have already been mentioned. Henrik Levkowetz deserves to be mentioned again. His herculean efforts maintaining and creating many of the tools there are of great benefit to the community.

ROBERT SPARKS is an Area Director for the Real-Time Applications and Infrastructure Area (RAI) in the IETF. He previously chaired the IETF's SIMPLE Working Group, which defines extensions to SIP for Presence and Instant Messaging, and the GEORPIV Working Group, which provides tools for applications to carry geographic location information and privacy rules to affect its use. Robert is a co-editor of the core SIP standard (RFC 3261), and several important SIP updates and extensions. He coordinates the premier real-time communications interoperability event, the SIPit. Robert is a Principal Software Engineer at Tekelec, and has held management and research positions at Estacado Systems, Xten (now Counterpath), dynamicsoft, Lucent, MCI Worldcom, and Texas A&M University. Robert holds a Master's degree in Mathematics and a Bachelor's degree in Computer Science from Texas A&M University. E-mail: