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 https://www.ietf.org/mailman/listinfo/hackathon
The Hackathon is free to attend.
Agenda
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
-
-
Code can be accessed from
IETF Hackathon Github or from links provided within project descriptions below.
Request to be added to IETF Github organization by sending your Github ID to Charles Eckel
eckelcu@cisco.com
-
Participant Preparation and Prerequisites
Bring a laptop on which you are comfortable developing 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)
Background
Whatsit?: ARC conveys email authentication results across “indirect” (multi-hop, DKIM-breaking) mailflows. Independent of DMARC, but designed to address negative impacts of strong DMARC policies on mailing lists, other indirect mailflows. ARC includes signing features derived from DKIM.
-
Specifications, etc:
Implementations:
-
-
-
Proprietary/Non-
FOSS implementations by:
AOL
Google
MailerQ (Copernica)
Projects and Goals
Interoperability testing between implementations
Bugfixes for
FOSS, proprietary implementations
Feedback to specification and other docs as needed
Reporting ARC Results:
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.
-
-
Project and Goals:
a web-crawler to scan for HTTP error code 451 instances
a browser plugin which would report to the user, and optionally to the webcrawler, cases of HTTP error code 451
a WordPress plugin which would enable site admins to block specific fields and serve 'blocked-by' info
-
-
SDN Applications for management of microwave radio link via IETF YANG Data Model
Champion(s)
Background
-
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)
DNS, DNSSEC, DNS Privacy
Champion(s)
Sara Dickinson sara@sinodun.com
Allison Mankin allison.mankin@gmail.com
Benno Overeinder benno@nlnetlabs.nl
Melinda Shore melinda.shore@nomountain.net
Jan Včelák jvcelak@ns1.com
Petr Špaček petr.spacek@nic.cz
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.
-
-
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.
YANG/NETCONF/RESTCONF
Champion(s)
Project(s)
yangcatalog.org: Joe Clarke, Benoit Claise
Implement the YANG module report per IETF WG, out of the yangcatalog.org : Qin Wu, Dapeng Liu
-
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 yangvalidator.com 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 yangcatalog.org 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
SeDHCPv6 - CANCELLED!
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
https://www.ietf.org/mail-archive/web/dhcwg/current/msg18194.html as to a meeting that we will try to hold on Sunday afternoon (14:00).
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.
SACM
Champions
Adam Montville
David Waltermire
-
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.
RIOT
Champion(s)
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
OpenWSN
Champion(s)
Tengfei Chang
Peter Kietzmann
Remy Leone
Jonathan Munoz
Malisa Vucinic
Xavi Vilajosana
Thomas Watteyne
Project(s)
SCHC implementation and test
QUIC
Interface to Network Security Functions (I2NSF) Framework
Loss-Latency tradeoff
Champion(s)
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.
ACME STAR
TCPINC
Champion
Projects and Goals
Code repo
SCTP
NEAT / TAPS
DOTS
Champion(s)
Kaname Nishizuka
Koji Okada
Project(s)
Specifications
Implementation
Multiple Provisioning Domains (mPvD) and Captive Portal detection
Champion(s)
Project(s)
Specifications
Implementation
NETVC
Champion(s)
Project(s)
Resources:
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
MILE
Champion(s)
Takeshi Takahashi
Mio Suzuki
Project(s)
Managed Incident Lightweight Exchange (MILE).
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
Secure IoT bootstrapping for Noobs with EAP-NOOB
Champion(s)
Project(s)
Specifications
Implementation
MPTCP
Champions
Benjamin Hesmans (benjamin.hesmans@uclouvain.be)
Fabien Duchêne (fabien.duchene@uclouvain.be)
Quentin De Coninck (quentin.deconinck@uclouvain.be)
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
Champions:
Jake Holland
John Brzozowski
Project:
Specifications:
Implementation:
RPKI Origin Validation for FRR
Champions:
Andreas Reuter
Matthias Waehlisch
Project:
Specifications:
Implementation:
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 hackathon@ietf.org 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:
Your-Technology-Name
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.