Skip to main content

Filter by topic and date

Filter by topic and date

IETF 111 Hackathon: Coding across time zones

  • Charles EckelIETF Hackathon Co-chair

8 Sep 2021

The IETF 111 Hackathon was held July 19-23, 2021. This was the 19th IETF Hackathon, and the 4th held as an online only event.

For many recent IETF participants, before 2020 the IETF Hackathon marked the start of an IETF meeting week. The shift to an online format resulted in many changes, but the value of IETF Hackathons to encourage the IETF community to collaborate on running code related to existing and evolving Internet standards remains.

Historically speaking, IETF Hackathons are a relatively new thing. The first IETF Hackathon was held in 2015 at IETF 92 as part of an effort to put more focus on software development and running code. However, the idea that code related to IETF standards is valuable is certainly not new. Most IETF participants are familiar with the phrase "rough consensus and running code" from The Tao of the IETF.

The existence of multiple independently developed and interoperable implementations was explicitly required by RFC 1264 for Internet standards on routing protocols. Subsequent updates relaxed this requirement, but the value of running code is still appreciated, and several current RFCs define processes and procedures related to running code.

IETF Hackathons are free to attend and open to everyone. Software developers are the primary audience, but subject matter experts who are not necessarily developers are highly encouraged to participate as well. While the Hackathon aims to attract newcomers and those who often do not view themselves as standards professionals, long time IETF contributors, including Internet-Draft authors, working group chairs, and subject matter experts, are key participants. Group dynamics and blending of skillsets and perspectives are important aspects of IETF Hackathons. Running code created and improved at each Hackathon is valuable, but so is the exchange of ideas, extensions of human networks, and building of new friendships, respect, and trust.

As with IETF meetings and work on Internet standards in general, IETF Hackathons are collaborative events, not competitions. Any competitiveness among participants is friendly and in the spirit of advancing the pace and relevance of new and evolving Internet standards. Working together to find common understanding of proposals, concerns, and solutions that result in improvements to evolving Internet-Drafts is as important as the development of code that implements or validates the correctness of these same drafts.

Collaborating effectively in an online-only event

The IETF 111 meeting had more than 1300 participants and over 100 sessions. A major challenge to effective collaboration in each session when working entirely online is that the set of potential collaborators is spread geographically across the world and in many different time zones. The IETF agenda planners had the challenge is crafting an agenda that accommodated all sessions with as few conflicts as possible. Consequently, a high percentage of sessions were held at times that were in the middle of the night or painfully early for many participants.

In contrast, most Hackathon participants worked on only one project, or at most a small number of projects, resulting mostly in small teams of 20 people or less. Each team had the ability to meet throughout the week when and how worked best for that team. This is not ideal, as much of the highly beneficial interaction across teams that is typical of an in-person Hackathon is lost and some members of each team are still subjected to meeting at very inconvenient times; however, it is far easier to find times that work for small, relatively independent teams than to craft a single schedule that works for 1300 people, as we had with the overall IETF meeting. As a result, close collaboration on code during the week of the IETF Hackathon was easier to facilitate than that in corresponding working group sessions during the week of the IETF meeting.

Together with the changes thrust on the IETF Hackathon as a result of the shift to online only are several advances that help tremendously with online Hackathons and will continue to be beneficial for the hybrid Hackathons we anticipate having at some point in the future. A great example is HackNet, a special network designed to support IETF protocol development across teams within the IETF Hackathon. HackNet provides a set of tools, configurations, and documentation that enable Hackathon participants to use their own device to connect to a VPN customized for the development needs of their team.

For many of IETF Hackathon participants and projects, access to the Internet and each other via the Internet is sufficient. However, due to the nature of the work in the IETF, special networking capabilities are often required. Open access to a shared network without restrictions imposed by service providers or corporations is one common requirement. Others include layer 2 access to each other and to shared devices, static IPv4 and IPv6 addresses, IPv6 only networking, NAT64, and IPv6 prefix delegation. All of this is made possible by HackNet for online only Hackathons and is expected to continued to offered and valuable for hybrid Hackathons in the future.

IETF HackNet Diagram

Stats and highlights

Over 250 people registered for the Hackathon. There were 18 projects across a wide array of IETF standardization efforts. All teams were encouraged to produce a summary of their results and present them during the Hackathon closing. These presentations highlight what problem they tried to solve, what they achieved, lessons learned, feedback to associated IETF working groups, and collaboration with open source communities and other standards organizations. They also call out individuals who participated in their first IETF Hackathon or first IETF event. This is done to help provide an introduction into the IETF community. The production and presentation of these summaries is optional. Fortunately, despite working across many geographies and time zones, many teams participated.

All the presentations are available via the IETF-Hackathon GitHub, and their delivery is in available via the Hackathon closing recording. All teams did amazing work. Here are some examples.

The Benchmarking Methodology (bmwg), Interface to Network Security Functions (i2nsf), and IP Wireless Access in Vehicular Environments (ipwave) teams demonstrated one great way to facilitate collaboration across teams, meeting together at a hotel in Busan.

ietf-hackathon-korea.jpg

The BMWG team worked on containerized infrastructure benchmarking with different acceleration technologies (VPP, OVS/DPDK and SR-IOV) using T-REX, an open source traffic generator. This led to helpful clarifications for the corresponding Internet-Draft, which were shared in the BGWG session in the IETF meeting the following week.

bmwg-hackathon.png

The I2NSF team focused their efforts in the following two areas:

  • Automatic Data Model Mapper providing automatic mapping between high-level and low-level data models
  • Real Time Data Monitoring Visualization to visualize utilization of resources and volume of input and out data traffic to detect DoS attacks
i2nsf-hackathon.png

The IPWAVE team continued their work from IETF 110, in which they demonstrated the feasibility of UDP based mobility information sharing. At IETF 111, they worked on IPv6 Neighbor Discovery (ND) for sharing Vehicle Mobility Information (VMI). The team completed a proof of concept using raw socket based ICMPv6 to design and test the new ND VMI option.

ipwave-hackathon.png

The BMP and YANG team, with participants from the GROW and NETCONF working groups, measured CPU and memory consumption of BGP processing on different vendor hardware for various configuration options and networking scenarios. They identified some instabilities when testing with 4 million routes, pointing to the need for more work related to scalability and performance.

bmp-hackathon.png

The BigBang project did some great work and shared interesting findings on participation and collaboration in standards bodies based on analysis of data from IETF, 3GPP, and IGF. The ID Visualization team explored how IETF draft authors have contributed to Internet-Drafts over time. The ASDF/T2TRG/WISHI team gathered people working on different SDF converter projects together to address issues ingesting and processing SDF and come up with some modules that the OneDM group can use in their model adoption process. Their efforts resulted in an improved common understanding of how to process SDF as well as improvements in the individual converters. The SUIT team worked on software and firmware updates for IoT devices, using LwM2M with OSCORE security for COAP for constrained devices and TEEP for other IoT devices.

More information on these and all the other projects is available via the IETF Hackathon wiki.

Thanks to ICANN

On behalf of everyone who participated, I would like to thank ICANN for sponsoring the Hackathon. Many of our typical expenses were reduced or eliminated as a result of not meeting in person, but new and expanded tools to facilitate increased collaboration online resulted in new expenses elsewhere. We greatly appreciate this sponsorship and welcome and encourage additional sponsors. By sponsoring the Hackathon, you help ensure it remains a free event accessible to everyone. More information is available online at IETF Running Code Sponsors.

Special thanks to the IETF Secretariat, NOC, IETF LLC, Tools Team, Meetecho, and Gather developers for all their efforts to make online IETF Hackathons possible and successful.

Next Hackathon

The IETF 111 Hackathon illustrated yet again that collaboration on running code can occur and produce great results when meeting online. While online IETF Hackathons do not replace meeting in person, they can be a worthwhile investment of time and energy. The next IETF meeting, IETF 112, will be online as well, with the Hackathon being held November 1-5, 2021. Mark your calendar and subscribe to hackathon@ietf.org for updates.


Share this page