The Internet Engineering Task Force (IETF) is holding a hackathon to encourage developers and subject matter experts to discuss, collaborate, and develop utilities, ideas, sample code, and solutions that show practical implementations of IETF standards.
Gold Running Code Sponsor | Bronze Running Code Sponsors |
---|---|
Sign up for the Hackathon
View the list of registered:
Keep up to date by subscribing to the IETF Hackathon email list.
The IETF Hackathon is free to attend and is open to everyone. It is a collaborative event, not a competition. Any competition is friendly and in the spirit of advancing the pace and relevance of new and evolving internet standards.
Subject to Change
Hackathon (all times are PDT, GMT-7)
Related activities before and after the Hackathon weekend
NOTE: You will need an IETF Datatracker account to login to the Hackathon Meetecho sessions.
When you register for the IETF Hackathon, you are sent a separate email to create an IETF Datatracker account if you don't already have one.
If you already have an IETF Datatracker account, please ensure that the email address with which you registered is associated with your Datatracker account.
If you received the email but the link to create an account has expired, please see the instructions below:
Access to the IETF network
The NOC team has an ongoing experiment that allows you to join the IETF network remotely as well as at an IETF meeting venue.
Requests for networking capabilities beyond wireless access to the IETF network (e.g., wired ports, L2 access, prefix delegation) can be sent to support@ietf.org.
All requests are addressed on a best effort basis. Advance notice is appreciated and improves the odds of your request being fulfilled.
Champions can request a Webex account they can use to schedule meetings for their team. These are similar to the Webex accounts allocated to working group chairs to be used for virtual interim meetings. An account can be requested by a team champion at any time. Accounts will remain active and available for the duration of the IETF meeting. Request your account HERE. In the request form, you can use your project name where it asks for "Working Group Name" ("Hackathon Project Name").
In addition to registering for the Hackathon and subscribing to the Hackathon list. It is recommended to monitor both the Hackathon wiki and the list as the Hackathon approaches, determine which project(s) are of interest to you, and reach out to the champions of those projects to determine how best to be involved and coordinate with the rest of the team working on each project.
Champions are welcome and encouraged to list times and mechanisms for collaborating with their team in the Team Schedule. Participants can use this page to determine how and when to reach other team members.
The Hackathon kickoff and the project results presentations can be joined via Meetecho. The Hackathon Zulip stream may be used for general and project specific communication.
All Hackathon participants are free to work on any code. The rules regarding that code are what each open source project and each participant's organization says they are. The code itself is not an IETF Contribution. However, discussions, presentations, demos, etc., during the Hackathon are IETF Contributions (similar to Contributions made in working group meetings). Thus, the usual IETF policies apply to these Contributions, including copyright, license, and IPR disclosure rules.
Champions
Project Info
Background on Attestation
Champion
Stuart Cheshire <cheshire@apple.com>
Thread Overview
Thread is a specification for how to carry IPv6 datagrams over a mesh of low-power IEEE 802.15.4 wireless links. Stuart Cheshire gave a brief presentation about Thread at the IETF 119 IAB Open meeting in Brisbane. The Thread specification is developed and published by the Thread Group. There are several independent implementations of Thread, the main one being the OpenThread open source project.
For this Hackathon event, the goal is to introduce people to Thread and OpenThread programming. This Hackathon event is open to all — Thread Group membership is not required, though of course Thread Group members are also welcome to participate. If you plan to participate in the Thread work at the Hackathon (on-site or remotely), please add your name to the participant list. If you already have a Thread developer board and the OpenThread build environment on your laptop, please bring that. If not, we will have a few extra Thread developer boards available and we can help you get the build environment set up. For people totally new to Thread development, we have some recommendations from Allie Clifford and Ann Olivo.
Below is a partial list of project ideas. Other ideas are welcome and encouraged. Please feel free to add suggestions to the project list.
Participants
Stuart Cheshire (Apple)
Suvesh Pratapa (Silicon Labs)
Jot Kailay (Joto)
François Michel (UCLouvain)
Q Misell (Max-Planck-Institut für Informatik)
Ryan Wang (University of British Columbia)
Bernhard Degen (University of Twente)
Alphan Arseven (Arroba Labs)
Ted Lemon (Apple)
Project Info
SSH daemon for OpenThread. Historically the way engineers interact with Thread developer boards has been by physically plugging them into a computer’s USB port and using a serial port console program to access OpenThread’s command-line interface. Now that OpenThread includes TCP support (contributed by Sam Kumar) it becomes feasible to access the same command-line interface over the network using ssh. The goal of this project is to identify a compact implementation of ssh suitable for constrained embedded devices, and integrate that into OpenThread. Particularly for testbeds with hundreds of Thread devices, being able to log in and transfer log files using the network is much better than needing hundreds of USB cables to connect all the devices to a computer.
Native Thread Commissioning for Matter. Current Matter devices that operate over Thread incur the cost of Bluetooh hardware and firmware, which is only needed for initial commissioning. This adds hardware cost to Matter devices for something that most users only do once in the lifetime of the product. It would be better to perform Matter commissioning for Thread devices via the Thread radio itself, using the Thread MeshCoP (Mesh Commissioning Protocol) mechanism. Some minor work is needed to implement tunnelling the Matter commissioning data (e.g., Device Attestation) over Thread MeshCoP.
Lightweight QUIC for OpenThread. Both TCP and QUIC are sophisticated transport protocols, suitable for efficiently transporting small and large amounts of data. Zero-round-trip connection setup in both TCP and QUIC allows for small request/response exchanges in a single round-trip. Sliding-window flow control and refined congestion-control algorithms enable TCP and QUIC to transfer large amounts of data, quickly, reliably, and efficiently, without unreasonably disrupting other traffic sharing the network. OpenThread includes TCP, and it would be good to complement that with support for QUIC as well.
General OTA (over-the-air) Firmware Update. Today firmware is typically installed into the flash memory of a Thread developer board via a USB port. It would be very helpful to have a general way of updating firmware over IP — particularly for people working with hundreds of Thread devices instead of just two or three.
Sensor Data Batched Upload. Many types of sensors, like temperature sensors, collect data at regular intervals, which should be uploaded to a data collection server in a reasonably timely manner when the Thread mesh is idle enough that such uploads will not disrupt other operations. Now that OpenThread has TCP, it would be useful to have a general mechanism for uploading this kind of sensor data.
Live Thread Diagnostics. When a large Thread mesh is not behaving as expected, it would be very useful to have a general mechanism for fetching information from nodes on the mesh regarding their connectivity to neighbors and other similar diagnostic data.
Thread Network Optimization Assistant. Create a Thread network visualizer (or enhance an existing one) to analyze the current network state, identify inefficiencies, and provide prioritized, actionable recommendations for network optimization (e.g., node placement, router selection).
Thread Network Merge Visualization Tool. Develop a visualization tool to analyze and evaluate the feasibility of merging two or more Thread mesh networks by comparing their topologies, performance metrics, and service landscapes.
Thread Latency Investigations. One of the main uses of Thread is for home automation, and when you are using an IP network to turn lights on and off, quick response times (under ¼ second) are very desirable. At the same time, an IP network like Thread is ideal for installing firmware updates and similar large data transfers. Because Thread is a low-power low-throughput technology aimed at low-cost devices that can run for years on a single battery, intelligent queue management (including ECN and L4S) is vital so that the network can support large bulk transfers while still maintaining good responsiveness for control operations. The Thread 1.3 specification includes requirements for delay-aware queue management, and there are many research opportunities related to analyzing this behavior and perhaps finding ways to make it even better.
Thread Credential Sharing. Wi-Fi generally utilizes a user-visible password (when we’re not using 802.1X certificates), but Thread opts instead for strong cryptographic keys, which are arguably more secure, but harder for humans to deal with. When we want to have multiple Thread devices participate in a single Thread mesh, they all need to know the key to the mesh. Work is underway on developing a safe secure way to perform device-to-device key transfer, and this Hackathon will be a good opportunity for the people working on that to get together and do some interop testing and debugging.
Champion(s)
Thomas Graf (thomas.graf @ swisscom.com)
Yannick Buchs (yannick.buchs @ swisscom.com)
Draft Specifications
https://datatracker.ietf.org/doc/html/rfc8639
https://datatracker.ietf.org/doc/html/rfc8641
https://datatracker.ietf.org/doc/html/draft-ahuang-netconf-notif-yang
https://datatracker.ietf.org/doc/html/draft-ietf-netconf-udp-notif
https://datatracker.ietf.org/doc/html/draft-ietf-netconf-distributed-notif
https://datatracker.ietf.org/doc/html/draft-tgraf-netconf-notif-sequencing
https://datatracker.ietf.org/doc/html/draft-ietf-netconf-yang-notifications-versioning
https://datatracker.ietf.org/doc/html/draft-tgraf-netconf-yang-push-observation-time
https://datatracker.ietf.org/doc/html/draft-ietf-nmop-yang-kafka-integration
Project Info
Validate three YANG-Push configured subscription vendor implementations in terms of configuring periodical and on-change subscriptions and validating subscription state change and push-update and push-change-update notifications according to RFC 8639 and 8641.
Validate draft-ietf-netconf-udp-notif and draft-ietf-netconf-distributed-notif packet format on the wire.
Validate first YANG-Push extensions enabling Apache Kafka integration accoring to draft-ietf-nmop-yang-kafka-integration.
Champion(s)
Zhuoyao Lin (zhuoyao.lin1 @ huawei-partners.com)
Benoit Claise (benoit.claise @ huawei.com)
Draft Specifications
https://datatracker.ietf.org/doc/draft-ietf-netconf-yang-library-augmentedby/
Project Info
Implement the ietf-yang-library augmentedby list to the find-relationship solution of libyangpush(YANG push receiver component of the Data Mesh Architecture defined in draft-ietf-nmop-yang-message-broker-integration).
Demonstrate how the additional list improve the performance of the Data Mesh architecture use case.
Repository
https://github.com/network-analytics/libyangpush
https://github.com/Zephyre777/draft-lincla-netconf-yang-library-augmentation.git
Champions
Christian Hopps (chopps@chopps.org)
Project Info
IP-TFS in Linux is the implementation of IP-TFS in Linux. The code is nearing the point of merging and the netlink API is stable. As such it's time to start extending the swans to support configuring IP-TFS. Plan on adapting existing strongswan code published previously. Participants welcome to help or bring support to other swans (libre).
One of the primary goals of vCon is to ease and standardize the integration and data transfer between enterprise or contact center:
Champions
Dan Petrie dan.ietf@sipez.com
Hackathon Objective
The goal for this hackathon is to implement and test portions of the vCon I-D that have not been well tested.
Hackathon Work Items
JSON/CBOR conversion and verification using vCon CDDL
vCon filter_plugin and server processor for redaction
py_vcon_server vCon processors:
Create VconProcessor plugins for the vCon server. The init and processor method of the VconProcessor abstract interface need to be implemente using existing vcon methods.
sign
Use python_vcon.Vcon.sign method
verify
Use python_vcon.Vcon.verify method
encrypt
Use python_vcon.Vcon.encrypt method
decrypt
Use python_vcon.Vcon.decrypt method
slack notification
Use the approach described in: How to Send a Message to a Slack Channel Using Python to implement a VconProcessor plugin to send slack messages in a similar way to how the SendEmail VconProcessor works.
Champions
Specifications
Project Info
Related Groups
This is a continuation of the work we did during the IETF 119 Hackathon.
Detailed project suggestions: https://github.com/johanix/hackathon120/
Specifications
Repositories
Github repo for the code we will use as a starting point: (https://github.com/johanix/tdns)
Champion(s)
John Gray (john.gray@entrust.com)
Mike Ounsworth (mike.ounsworth@entrust.com)
Julien Prat (julien.prat@cryptonext-security.com)
Massimiliano Pala (massimiliano.pala@wellsfargo.com)
Draft Specifications
https://datatracker.ietf.org/doc/draft-ietf-lamps-dilithium-certificates/
https://datatracker.ietf.org/doc/draft-ietf-lamps-kyber-certificates/
https://datatracker.ietf.org/doc/draft-ietf-lamps-pq-composite-sigs/
https://datatracker.ietf.org/doc/draft-ietf-lamps-pq-composite-kem/00/
https://datatracker.ietf.org/doc/draft-ietf-lamps-cms-kemri/
https://datatracker.ietf.org/doc/draft-ietf-lamps-rfc4210bis/
https://datatracker.ietf.org/doc/draft-ietf-lamps-cert-binding-for-multi-auth/01/
https://www.ietf.org/id/draft-lamps-okubo-certdiscovery-00.html
https://datatracker.ietf.org/doc/draft-bonnell-lamps-chameleon-certs/
https://datatracker.ietf.org/doc/draft-gazdag-x509-hash-sigs/
Project Info
Purpose is to make use of PQ in real world X.509 structures like keys, signatures, certificates and protocols. This will allow us to test interoperability between different algorithm implementations, gain experience using these new algorithms, and provide feedback to the standards groups about practical usage in the real world.
A good starting place is our Github repository: https://github.com/IETF-Hackathon/pqc-certificates
For information on OIDs used to create interoperable structures, consult: https://github.com/IETF-Hackathon/pqc-certificates/blob/master/docs/oid_mapping.md
At IETF 120, we plan to setup and test the use of hybrid certificates for the TLSv1.3 protocol. The goal of the experiment is to explore different options for efficient use of hybrid certificates' and their multiple signature keys in the TLS protocol. We are looking for collaborations and ideas that can be then brought forward within the IETF and other standardization bodies (e.g., X9, ISO, etc.).
Champions
Swapneel Sheth (ssheth@verisign.com)
Andrew Kaizer (akaizer@verisign.com)
Bryan Newbold (bryan@blueskyweb.xyz) (update: out sick)
Nick Johnson (nick@ens.domains)
Specifications
https://datatracker.ietf.org/doc/draft-sheth-dns-integration/
Project Info
Domain names have long been used as identifiers in applications ranging from TELNET and FTP to email services to web browsing. Recently, blockchain applications, decentralized protocols, and social media platforms have also emerged as new use cases for DNS domain names. How a DNS domain name is enabled for use as an identifier in each of these applications is known as a DNS integration.
At this hackathon you will learn and discuss
We welcome anyone interested about the draft to stop by and chat with available authors from Bluesky, Ethereum Name Service, and Verisign who are working on responsible DNS integrations.
ABNF is used in many RFCs to describe the formal syntax of the associated specification. These ABNF declarations can be used to generate parsers, build tests, validators, documentation …. In a number of cases, the ABNF in a given RFC makes references to ABNF terms defined in other RFCs. The GitHub project above offers tooling to help consolidate these ABNFs into directly comprehensive versions. During the hackathon, interested participants could help extract and consolidate ABNF from more RFCs, explore how these consolidated RFCs could be exploited, approaches to automate more of the extraction/consolidation steps.
This project is inspired by the webref project where a number of reusable data and formal syntax from Web specifications get automatically extracted and curated, which have found adoption in a number of places (documentation, libraries, code/IDE support, automated testing of implementations, spec authoring tools, …)
Champions
Project Info
atproto is an open federated social web protocol. The identity and auth system builds on open standards like DNS, DIDs (W3C), HTTP, and OAuth. The challenges of using OAuth between multiple independent hosts and multiple independent client software implementations are similar to challenges with ActivityPub, and an area of work at the IETF. This hackathon project involves prototyping and demonstrating interoperation between different types of clients and hosts.
Resources
Champions
Project Info
Don’t see anything that interests you? Feel free to add a project to the list, sign up as its champion, and show up to work on it. Note: you must login to the wiki to add content. If you add a new project, we suggest you send an email to (hackathon@ietf.org) to let others know. You may generate interest in your project and find other people who want to contribute to it.
TEMPLATE: Copy/paste and update the following template to add your project to the list:
### Your Project
- **Champions**
name and email
- **Project Info**
project description
To edit the wiki, log in using your IETF Datatracker login credentials. If you don't yet have an IETF Datatracker account, you may get one by going here and requesting a new account.