User Tools

Site Tools


IETF 99 Hackathon

The Internet Engineering Task Force (IETF) is holding a Hackathon to encourage developers to discuss, collaborate and develop utilities, ideas, sample code and solutions that show practical implementations of IETF standards.

When: Saturday July 15, 2017 and Sunday July 16, 2017
Where: Hilton Prague, Room: Chez Louis
Signup for the Hackathon here: Hackathon Registration
View the list of registered Hackathon attendees: Attendees

Keep up to date by subscribing to
The Hackathon is free to attend.


  Saturday, July 15
      08:00: Room open for setup of posters at tables by projects champions    
      09:00: Room open for all - Pastries and coffee provided
      09:30: Hackathon kickoff 
      09:45: Form Teams
      12:30: Lunch provided
      15:30: Afternoon break - Snacks provided
      19:00: Dinner provided
      21:00: Room closes and is locked
  Sunday, July 16
      09:00: Room opens - Pastries and coffee provided
      12:30: Lunch provided
      13:30: Hacking stops, prepare brief presentation of project
      14:00: Project presentation to other participants and judges
      15:00: Recap and suggestions for improvements
      15:30: Awards presented, prizes given
      16:00: Hackathon ends
      17:00: Tear down complete

For your planning purposes, be aware that we will also have:

  • Space reserved in the IETF Lounge throughout the week of IETF, July 17-21, for people to gather and collaborate on hackathon activities
  • A table at Bits-N-Bites on Thursday, July 20, for hackathon participants to share their projects with the IETF community at large

Meeting Materials

Participant Preparation and Prerequisites

  • Bring a laptop on which you are comfortable developing software
    • Some projects may require installing additional software
  • Familiarity with the technology area(s) in which you plan to participate will certainly help
  • Champions will have posters describing their project(s) and be available to answer questions at the start and throughout the hackathon
  • Your laptop is the default development platform for each technology
  • Anything else that is required will be provided, such as VMs you can install on our laptop or access from your laptop
    • Installing and becoming familiar with VirtualBox or something similar will help
    • Note to champions: if planning to make use of VMs, please bring on USB drives to make available to others as download times can be painful
  • Specific coding languages are called out for some of projects (e.g. Python, Java), but this is heavily dependent on the project(s) you choose
  • Wireless access to the IETF network will be provided, and from there to the outside world
  • Wired access to the IETF network is available by request only
  • Git/GitHub is commonly used for open source projects. Familiarizing yourself with it is recommended.
  • Network programmability based on IETF standard protocols and models is relevant to many projects
  • Champions for each technology are encouraged to share any other things they think would be helpful in preparation for the hackathon

Remote participation

  • Participating in person is preferred, but we understand not everyone can travel. If you want to participate remotely, please contact the champion(s) for that project to determine how best to coordinate.
  • Meetecho: Active and recorded Saturday from 09.30-10.00 and Sunday from 14.00-16.00

IPR and Code Contribution Guideline

All hackathon participants are free to work on any code. The rules regarding that code are what each participant's organization and/or open source project 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.

Technologies Included in Hackathon (more can be added)

Authenticated Received Chain - ARC

  • Champion(s)
    • Steven M Jones (smj overat dmarc dots org)
  • Background
  • Projects and Goals
    • Interoperability testing between implementations
    • Bugfixes for FOSS, proprietary implementations
    • Feedback to specification and other docs as needed
    • Reporting ARC Results:
      • Adding info to DMARC reports
      • Consuming info from DMARC reports
    • Perl implementation (Top need, volunteers welcome!)
    • Ruby implementation (volunteers welcome!)
    • Other suggestions?

HTTP error code 451

  • Champions: Niels ten Oever (ARTICLE 19), dkg (ACLU), Joe Hall (CDT)
  • Background: HTTP error code 451 (RFC7725) is an error code to report legal obstacles for serving a webpage. During the hackathon we will focus on implementing and measuring this status code to make censorship more transparent.
  • Specifications, etc: RFC7725
  • Code repo in github
  • Project and Goals:

SDN Applications for management of microwave radio link via IETF YANG Data Model

  • Champion(s)
    • Ye Min (infrastructure and use cases)
    • Jonas Ahlberg (use cases)
  • Background
    • A YANG Data Model for management of microwave radio link is under development, draft-ietf-ccamp-mw-yang-00
    • 1st individual draft submitted – April 4, 2016
    • IETF Design Team established June 1, 2016
    • A third version of the model under preparation
    • Model needs to be validated in practice - IETF Hackathon is one way to get hands-on experience
  • Project(s)
    • Development of applications for management of microwave nodes
      • Energy Efficiency: to save power consumption when traffic is low
      • Dynamic frequency control: to control the interference
    • Infrastructure
      • Applications developed on top of an ODL-based SDN controller, via RESTCONF interfaces
      • ODL controller simulates microwave nodes using an embedded YANG model, draft-ietf-ccamp-mw-yang-00


  • Champion(s)
    • Sara Dickinson
    • Allison Mankin
    • Benno Overeinder
    • Melinda Shore
    • Jan Včelák
    • Petr Špaček
  • Project(s)
    • Implementation of the BULK resource record in an authoritative name server. BULK allows generation of records on-the-fly by the authoritative name server. is described in draft-woodworth-bulk-rr. There is currently no published implementation (a BIND implementation seems to be under work, but nothing was released). I (Stéphane Bortzmeyer) would like to try to implement it in NSD, to see if it's realistic.
    • Implementation of C-DNS, the DNS-specialized packet capture format (to replace pcap in some cases). It is described in draft-ietf-dnsop-dns-capture-format. It claims to be simple to implement. Already one implementation. I (Stéphane Bortzmeyer) would like to develop a reader or a writer in Go, to test interoperability with the first implementation. Possible approach for the writer: use dnstap, and the dnstap listener would produce C-DNS. Note there is a dnstap listener written in Go, which can output text and YAML. Other approach for the writer: a pcap2cdns program.
    • Discussion/design session on how DNS implementations can/should manage the root KSK rollover (considering both 5011 and alternative mechanisms). For example, this is non-trivial for a library like getdns.
    • DBUS API and nss-resolv support for Stubby
    • Ed25519 (RFC 8080) RRSIG
    • RFC 5011 compliance testing using Deckard - reusable, lighting fast test based on libfaketime: code to start with is in branch rfc5011 in CZ.NIC's Gitlab, most importantly in test scenario 5011.rpl.


  • Champion(s)
    • Benoit Claise
  • Project(s)
    • Joe Clarke, Benoit Claise
    • Implement the YANG module report per IETF WG, out of the : Qin Wu, Dapeng Liu
    • Improve YANG model monitoring tools at : Benoit Claise
    • Review and resolve BBF YANG errors shown by Benoit's tools (especially yangdump-pro) : William Lupton (partly Saturday, full Sunday)
    • yanglint (libyang, libnetconf2, Netopeer2, sysrepo) : Radek Krejci
    • yuma123 (API, netconfd, yangcli) : Vladimir Vassilev
    • Update backend tools used by to handle multiple drafts/YANG models: Mahesh Jethanandani
    • Fix MEF model dependencies: Mahesh Jethanandani
    • MEF models and related metadata in the yangcatalog: Mahesh Jethanandani
    • Validate the APIs with the BBF metadata: William Lupton
    • yangcatalog code development: Miroslav Kovac
    • YANG module tree type conversion: Rob Wilton (Sunday)
    • Generate an IETF draft from a YANG module (in support of draft-claise-semver-00): Richard Barnes (mainly Sunday)
    • Create pyang module-catalog plugin to generate draft-clacla-netmod-model-catalog compliant JSON : William Lupton
    • Regex tool and regex GUI: Radek and Pieter Lewyllie
    • Private YANG models: Kent Watsen


  • DHC WG needs to regroup on this work to see what next steps are as several issues were raised with draft and the document has not been updated. Perhaps a requirements document will be needed to clarify what security is desired. See as to a meeting that we will try to hold on Sunday afternoon (14:00).
  • Champion(s): TBD
  • Project: draft-ietf-dhc-sedhcpv6-21 defines Secure DHCPv6, an encrypted and possibly authenticated version of DHCPv6 protocol. The goal of this hackathon is to extend existing DHCPv6 implementations and attempt inter-operability testing for encryption and authentication. We hope to have the following implementations at various stages of maturity:

Note that although there is existing code for some implementations, it is based on a very old -08 draft. The recent -21 draft has changed substantially. In particular, mandatory encryption has been added that was not present in the old -08 draft.


We have some folks willing to contribute a variety of components to the effort, and we will be working together before the hackathon takes place, with the hope that face-to-face time will be used for figuring the last details rather than kicking off the effort.


  • Champion(s)
    • Peter Kietzmann
    • Martine Lenders
    • Cenk Gündoğan
    • Christopher Scherb (CCN-lite)
    • Claudio Marxer (CCN-lite)
  • Project(s)
    • TSCH/OpenWSN fresh port to RIOT
    • Enhancement of RIOT network stack GNRC
      • 6LoWPAN mesh-under-support
      • Various updates from newer RFCs (e.g.7973 and 8025)
      • Energy optimization w/ focus on radio device control
    • ICN in IoT: provide an adaptation layer for CCN/NDN to low power lossy networks
      • header and/or name compression
      • fragmentation


  • Champion(s)
    • Tengfei Chang
    • Peter Kietzmann
    • Remy Leone
    • Jonathan Munoz
    • Malisa Vucinic
    • Xavi Vilajosana
    • Thomas Watteyne
  • Project(s)
    • RIOT support
    • F-Interop
    • 6TiSCH Wireshark Dissector
    • ARMOUR Secure Join
    • 6LoWPAN fragmentation

SCHC implementation and test

  • Champion(s)
    • Laurent Toutain
    • Dominique Barthel dominique DOT barthel AT orange DOT com
  • Project(s)


Interface to Network Security Functions (I2NSF) Framework

Loss-Latency tradeoff

  • Champion(s)
    • Thomas Fossati (
  • Background
    • We came out of the ACCORD BoF with the action to go and get more data to inform the discussion on implicit/explicit cooperation between endpoints and the network. This project aims exactly at that: gathering the missing data that can resume that conversation :-)
  • Specifications
  • Code repo
  • Project and Goals
    • Project goal is to measure the effects of two different kinds of queueing disciplines (LLT and AQM) when applied to “interesting” traffic mixes. The traffic mixes in question comprise low-latency and greedy flows competing under near-congestion.
    • Concrete things to work on, in order of importance:
      • Add an AQM setup;
      • Refine traffic mixes and measurement harness;
      • Measure LoLa vs AQM vs baseline;
      • Polish the LLT implementation.



  • Champion
    • Kyle Rose
  • Projects and Goals
    • Tcpcrypt P-256 for the Linux kernel
      • Building off work at the IETF 98 hackathon to implement TCP-ENO negotiation in the Linux TCP stack, I'll be working to implement the tcpcrypt protocol using P-256 ECDH
      • Goal is to achieve interoperability for an opportunistically-encrypted TCP stream with the reference implementation from
      • Other implementors are welcome to join me for coffee and coding
  • Code repo



  • Champion(s)
    • Michael Tüxen (
    • Felix Weinrank (
  • Project(s)


  • Champion(s)
    • Kaname Nishizuka
    • Koji Okada
  • Project(s)
    • DDoS Open Threat Signaling (DOTS).
      • The aim of DOTS is to develop a standards based approach for the realtime signaling of DDoS related telemetry and threat handling requests and data between elements concerned with DDoS attack detection, classification, traceback, and mitigation.
    • We develop PoC code of the dots protocol based on the latest specifications.
      • The goal is to improve the code and demonstrate some of the user scenarios.
      • In addition to testing whether the specification of the latest drafts works well, we'd like to test interoperability with other software if there is an opportunity.
  • Specifications
  • Implementation

Multiple Provisioning Domains (mPvD) and Captive Portal detection


COSE in the network: Secure Wake-on-Radio (SWORN)

  • Champions
    • Olaf Bergmann
    • Benjamin Piepiora
  • Background
    • COSE is the CBOR object signing and encryption specification, RFC 8152-to-be.
    • COSE is mostly thought as a component for application protocols, but it can be used in the network as well.
    • Wake-on-Radio can save a lot of power for battery-operated devices by having them wake up and consume power only when there is actually something to do. But Wake-on-Radio provides a too easy DoS vector for a battery depletion attack. Secure Wake-on-Radio Nudging (SWORN) enables a last-hop router to find out if the correspondent node was authorized to wake up the device with a packet.
  • Project
    • Implement SWORN in an actual IoT scenario with Wake-on-Radio
    • Demonstrate the power savings achievable
    • Demonstrate the workflow for getting a correspondent node authorized
    • Cooperate with other COSE connoisseurs and IoT power savers

SRv6 over NETCONF using Sysrepo

  • Champions
    • Richard Kosegi
    • Boris Pilka
    • Martin Pilka
    • Alex Tokar
  • Project
    • NETCONF management of Segment Routing over IPv6 (SRv6) on OpenWRT router
      • The goal is to make POC of configuring explicit path consisting of SRv6 segments on OpenWRT router (TL-WR1043ND) via NETCONF. There is support of SRv6 in Linux kernel since 4.10, so let's make use of it.


  • Champion(s)
    • Takeshi Takahashi
    • Mio Suzuki
  • Project(s)
    • Managed Incident Lightweight Exchange (MILE).
      • The aim of MILE is to develop a set of standards and protocols for efficiently exchanging incident-related information among parties in order to prepare and/or mitigate assorted cyber incidents.
    • We develop PoCs and tools for improve the usability of MILE specifications. For instance, the following tools will be developed before and during the Hachathon.
      • develop a converter between IODEF and STIX
      • develop PoC code, which generates an IODEFv2 document from a darknet monitoring system
  • Specifications
  • Implementation
    • The code will be available at [will be opened soon]

Secure IoT bootstrapping for Noobs with EAP-NOOB

  • Champion(s)
    • Mohit Sethi (
    • Shiva Prasad TP
    • Tuomas Aura (
    • Raghavendra Mudugodu
  • Project(s)
    • Implementing EAP-NOOB with open source wpa_supplicant and hostapd:
      • EAP-NOOB is an EAP method where the authentication is based on a user-assisted out-of-band (OOB) channel between the server and peer.
      • It is intended as a generic bootstrapping solution for Internet-of-Things devices which have no pre-configured authentication credentials and which are not yet registered on the authentication server. Consider devices you just bought or borrowed.
    • Working code on github:
    • During the hackathon we plan to work on the following:
      • Various bug fixes
      • Testing improved cryptoagility and error handling version -02
      • Fuzz testing
      • Testing the code with new kinds of IoT devices and OOB channels such as audio
      • User experience in real deployment
      • Try it out sessions
      • We are happy to have your contribution. It could be simple feedback on some missing features or more detailed protocol improvements.
  • Specifications
  • Implementation


  • Champions
    • Benjamin Hesmans (
    • Fabien Duchêne (
    • Quentin De Coninck (
  • Projects
    • MPTCP socket API usage and HTTP headers (kore, curl …)
    • Experimental options for MPTCP (rfc6824bis, section 3.7)
    • ADD_ADDR reliability
    • iOS tests (we will bring an iPhone that has iOS 11 beta)
    • Linux implementation of RFC6824bis
  • Specifications
  • Implementation

Multicast over SPRING

RPKI Origin Validation for FRR

Don’t see anything that interests you? Feel free to add your preferred technology 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 technology, we strongly suggest that you send email to to let others know. You may generate interest in your technology, 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:


  • Champion(s)
    • tbd
  • Project(s)
    • tbd

To request a wiki account, please click on the login button on the top right corner of the page, and choose register. If you need a new password please click on the login button on the top right corner of the page and choose Send new password.

99hackathon.txt · Last modified: 2017/08/02 21:33 by