The Internet Engineering Task Force (IETF) publishes technical documentation in the form of Request of Comments (RFCs). RFC 8415 defines the latest iteration of the DHCPv6 protocol, which updates and obsoletes many aspects of the previous definitions documented by RFC 3315.
The UNH InterOperability Lab (UNH-IOL) plays an essential role in facilitating the global adoption and stability of IPv6. As a result, we actively contribute to the development and publication of test specifications based on RFCs that are used by test programs such as IPv6 Ready Logo and USGv6. Additionally, we develop comprehensive test packages to be used with our custom software test tool, IOL INTACTⓇ. This allows us to provide automated testing services for these protocols and programs. These test packages are also available to license, which enables vendors to pre-test their products before their official test slot, or leverage the test packages in a continuous integration environment for regression testing.
This blog discusses the process of developing the test specification and corresponding package for RFC 8415 from the perspective of Jilly Sticca, a Senior UNH Computer Science student and UNH-IOL employee.
When developing a new IOL INTACT test package for an IPv6 protocol, the typical first step for the team is to implement test scripts based on an existing test specification, if available. This serves as a solid foundation for developing the initial package. In the case of DHCPv6, there were test specifications published by IPv6 Ready Logo; however, these have not yet been updated for RFC 8415. Because of this, the first step in developing the DHCPv6 test package was to review and update the existing test specifications to conform with RFC 8415.
To update the test specification for DHCPv6 interoperability, we first needed to compile a list of “features” that require testing. This includes various message types and configuration parameters. The list was created by reading the RFC and identifying the expected behaviors of clients, servers, and relay-agents, in various situations. After compiling a list of features from the new RFC, we identified any that are missing from the current test specification and added them as new sections. Once we have incorporated these new tests and updated the existing tests to reflect any additional requirements specified in the RFC, we submit the revised test specification to the IPv6 Ready Logo Technical Committee for review. At this point, we moved onto the development of the test package with the understanding that the test specification is not finalized and subject to change.
During the development process of a test package, testing plays a crucial role in identifying and addressing bugs in the code before it is released. As the code is being written, it is tested against various implementations to ensure it aligns with the test specification. However, one limitation of testing during development is finding enough implementations of a certain functionality (e.g., client) that support RFC 8415.
To overcome this challenge, plugfests are an essential part of our development process, allowing us to test our code against different implementations of clients, servers, and relay-agents. This is particularly useful for finding bugs that may have been overlooked or for testing features that that our initial implementations do not support. After completing a plugfest,, we gain valuable insights into what needs to be added or fixed in our package.
The development process for DHCPv6 is well underway and ready to be tested against different implementations. We are hosting a DHCPv6 plugfest the week of February 17th. We hope you can participate!