IETF 108 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: Monday July 20 through Friday July 24, 2020
Where: IETF 108 is an online only meeting and so is the Hackathon.
Sign up for the Hackathon here: Register.
View the list of registered Hackathon attendees: Here
IETF gather.town link: https://ietf.gather.town/z6N2SDxHebMdDAfo/IETF-108
Gather guidelines: https://trac.ietf.org/trac/ietf/meeting/attachment/wiki/108hackathon/108-gather-guidlines.pdf
Hackathon Survey: Here
Keep up to date by subscribing to https://www.ietf.org/mailman/listinfo/hackathon
The 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.
Agenda
Hackathon
- Monday, July 20
- 08:00 PDT / 11:00 EDT / 15:00 UTC - Hackathon kickoff Recording
- Monday, July 20 - Friday, July 24
- Friday, July 24
- 07:00 PDT / 10:00 EDT / 14:00 UTC - Hackathon closing agenda Recording
NOTE: You will need a datatracker account to login to the Hackathon Meetecho sessions and gather.town. When you register for the hackathon, you are sent a separate email to create a datatracker account. If you already have a datatracker account, please ensure that the email address you registered with is added to your account. If you received the email but the link to create an account has expired, please see the instructions below:
- Go to https://datatracker.ietf.org/accounts/create/
- Select ‘new account’ from the User menu at the top
- Enter the email address that you registered with for the hackathon
- Follow the instructions in the email you receive
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.
- Results of hackathon projects should be uploaded to https://github.com/IETF-Hackathon/ietf108-project-presentations. See the README for details.
Participant Preparation and Prerequisites
- Choosing a Project
- Champions post and lead projects
- How and when teams meet during the week is up to them
- Details on each project and links to additional information for each project are in this wiki in the "Projects Included in Hackathon" section
- Familiarity with technology area(s) in which you plan to participate will certainly help
- It is perfectly fine, even encouraged, to work on multiple projects
- Lost & Found
- Participants looking for a team and champions wanting help on their projects are encouraged to visit the Lost & Found.
- Development Environment
- Bring a laptop on which you are comfortable developing software
- Some projects may require installing additional software or make use of VMs or containers
- Installing and becoming familiar with VirtualBox, Vagrant, Docker or something similar may be helpful
- Specific coding languages are called out by some projects (e.g. Python, Java), but this is heavily dependent on the project(s) you choose
- Sharing Code
- Git/GitHub is commonly used for open source projects. Familiarizing yourself with it is recommended.
- An online tutorial is available here: Git Tutorial
- IETF Hackathon GitHub Org
- If you would like to have your project/code hosted here, send your GitHub ID and the name of your project via email to Charles Eckel: eckelcu@cisco.com
- Training Materials
- Network programmability based on IETF standard protocols and models is relevant to many projects. Self paced online training modules are available on Cisco DevNet. Access is free but a DevNet account is required. You can login or create an account quickly with this IETF Hackathon specific link IETF Hackathon
- Champions for each technology are encouraged to share any other things they think would be helpful in preparation for the hackathon
- Project Presentations
- All teams have the opportunity to present what they did on Friday during the closing session of the Hackathon.
- https://github.com/IETF-Hackathon/ietf108-project-presentations is for IETF hackathon teams to upload their hackathon project presentations
- You must be a member of the IETF-Hackathon GitHub org to upload a new presentation or update/replace an existing presentation
- To be added as a member, see details in the README
- DO NOT WAIT until just before hackathon project presentations start or your request may be lost in the chaos
- All teams have the opportunity to present what they did on Friday during the closing session of the Hackathon.
Network
Virtual IETF network for the Virtual Hackathon.
The NOC team has been working to allow you to join the IETF network while attending the meeting remotely. With a Raspberry Pi 2 or newer the NOC has a recipe that will allow your team to be virtually connected to the IETF network with IPv4 and IPv6 addresses and many options (IPv6ONLY, a closed user group, NAT64, IPv6PD, and more) for you to use for your projects. Your project champion can request getting access by sending a message to ietf108virtualnetwork @ noc.ietf.org. Please include your project name and members. The NOC will provide you with the recipe.
Ongoing communication
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 closing presentations will be available via Meetecho. The hackathon Jabber room may be used for general and project specific communication.
- Jabber room: xmpp:hackathon@jabber.ietf.org
- Meetecho: http://ietf108.conf.meetecho.com/
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.
Projects Included in Hackathon (add your project using the template provided at end of project list)
- Note, all projects are open to everyone. However, some champions have identified their projects as being particularly good for first time IETFers and/or first time hackathoners. These projects are marked with a star, i.e. '*'. If you are championing a project that is great for newcomers, please add a '*' at the end of your project name.
BGP Monitoring Protocol (BMP)
- Champion(s)
- Yunan Gu (guyunan at huawei.com), Paolo Lucente (paolo at ntt.net), Camilo Cardona (camilo at us.ntt.net), Thomas Graf (thomas.graf at swisscom.com)
- RFC and Draft(s)
- RFC 7854 (https://tools.ietf.org/html/rfc7854)
- RFC 8671 (https://tools.ietf.org/html/rfc8671)
- Support for Local RIB (https://tools.ietf.org/html/draft-ietf-grow-bmp-local-rib)
- TLV support for BMP Route Monitoring and Peer Down Messages (https://tools.ietf.org/html/draft-lucente-bmp-tlv)
- BMP Extension for Path Marking TLV (https://tools.ietf.org/html/draft-cppy-grow-bmp-path-marking-tlv)
- BGP Route Policy and Attribute Trace (https://tools.ietf.org/html/draft-xu-grow-bmp-route-policy-attr-trace)
- Project(s)
- Bringing visibility into BGP control-plane and how it's being used in the forwarding plane.
- Extend existing BMP capabilities with new RIB's, message types and TLV's at router and data collection.
- Enable BMP BGP Local-RIB control-plane to IPFIX forwarding-plane metric correlation.
- Perform interoperability tests and performance impact analysis.
Sliding Window FEC codec (SWIF)
- Champion(s)
- Vincent Roca (vincent.roca_at_inria.fr)
- Project(s)
- Main goal is to develop an open-source C-language codec for a sliding window FEC code. This development is done in the context of the "Coding for Efficient Network Communications" Research Group (NWCRG, https://datatracker.ietf.org/rg/nwcrg), with strong relationships with the Generic API I-D (https://datatracker.ietf.org/doc/draft-roca-nwcrg-generic-fec-api/) and RLC codes (https://datatracker.ietf.org/doc/rfc8681/) as examples of sliding window codes.
- More info at (https://github.com/irtf-nwcrg/swif-codec)
IP Wireless Access in Vehicular Environments (IPWAVE) Basic Protocols
- Champion(s)
- Jaehoon Paul Jeong <pauljeong at skku.edu>
- Project(s)
- IP-Based Context-Aware Navigator Protocol
- This project proves the effectiveness of IPv6-Based Context-Aware Navigator Protocol (CNP) for safe driving.
- The CNP is a light-weight driving information exchange protocol in IP-based vehicular networks.
- IPv6 neighbor mobility information sharing can be performed by the CNP.
- A coordinated path planning is used for obstacle detection and collision avoidance in vehicular networks.
- Vehicular simulation for IPWAVE is performed with SUMO, OMNeT++, and VEINS.
- IP-Based Context-Aware Navigator Protocol
- Specifications:
- https://tools.ietf.org/html/rfc8691
- https://tools.ietf.org/html/draft-ietf-ipwave-vehicular-networking-16
- https://tools.ietf.org/html/draft-jeong-ipwave-vehicular-neighbor-discovery-09
- https://tools.ietf.org/html/draft-jeong-ipwave-vehicular-mobility-management-03
- https://tools.ietf.org/html/draft-jeong-ipwave-context-aware-navigator-01
- Where to get code:
- Video clip demo:
Interface to Network Security Functions (I2NSF) Framework
- Champion(s)
- Jaehoon Paul Jeong <pauljeong at skku.edu>
- Project(s)
- This project is to develop a Cloud-based Security Service System using IETF I2NSF (Interface to Network Security Functions) framework and interfaces.
- The reflection of the latest updates of the YANG data models of the I2NSF interfaces such as Consumer-Facing Interface, NSF-Facing Interface, Registration Interface, and Monitoring Interface
- I2NSF Security Policy Translation from a high-level security policy to a low-level security policy.
- I2NSF security policy provisioning with NSFs required for the given low-level security policy.
- Specifications:
- https://tools.ietf.org/html/rfc8192
- https://tools.ietf.org/html/rfc8329
- https://tools.ietf.org/html/draft-ietf-i2nsf-applicability-18
- https://tools.ietf.org/html/draft-ietf-i2nsf-capability-data-model-12
- https://tools.ietf.org/html/draft-yang-i2nsf-security-policy-translation-06
- https://tools.ietf.org/html/draft-ietf-i2nsf-consumer-facing-interface-dm-12
- https://tools.ietf.org/html/draft-ietf-i2nsf-nsf-facing-interface-dm-10
- https://tools.ietf.org/html/draft-ietf-i2nsf-registration-interface-dm-09
- Where to get code:
- Video clip demo:
Intent-based, assurance, telemetry
- Champion(s)
- Benoit Claise <bclaise at cisco.com>
- Eric Vyncke <evyncke at cisco.com>
- Korian Edeline
- Diego Lopez
- Project(s)
- a VPP assurance (or basic LINUX system to start with, depending on how much we can achieve) sending service assurance via YANG
- with pmacct as a collector + maybe a InfluxDB/grafana (depending on what we have in pmacct) receiving service assurance via YANG
- other implementations sending or receiving service assurance via YANG (including test or tracing application)
- within the SAIN architecture and based on the SAIN YANG module:
- Specifications:
- A one-day hackathon on Thursday 23rd (see https://trac.ietf.org/trac/ietf/meeting/wiki/108hackathon/teamschedule)
DNSSEC, TLS, HTTP/3
- Champion(s)
- Loganaden Velvindron (logan _at_ cyberstorm.mu)
- Jaykishan Mutkawoa (jmutkawoa _at_ cyberstorm.mu)
- Bruno Bernard (bruno _at_ cyberstorm.mu)
- Project(s)
- RFC 8624 in various open source projects.
- draft-ietf-tls-oldversions-deprecate.
- draft-ietf-quic-http
QUIC
- Champion(s)
- Lars Eggert <lars@…>
- Project(s)
- Interop around the latest set of implementation drafts
QUIC Measurements
- Champion(s)
- Jari Arkko <jari.arkko@…>
- Participants: Cociglio Mauro, Nilo Massimo, Jari Arkko, Szilveszter Nadas, Bulgarella Fabio, Markus Ihlar, Alex Yu, Ferenc Fejes, Zaheduzzaman Sarker, Mirja Kuhlewind and possibly others!
- Project(s)
- Add exciting new measurement features!
- Interop around the latest QUIC versions
- Integrate and test recent feature and code requests
- Join our daily call at 3PM (July 20-24) to discuss and tell us about your idea. Get call parameters from Jari Arkko (address above).
- Champion(s)
- Bernard Aboba <bernard.aboba@…>
- David Schinazi <dschinazi.ietf@…>
- Project(s)
- Try out the QuicTransport? API in Chrome/Edge? Canary (support for both streams and datagrams)
- Interop with aioquic as well as other server implementations
- QuicTransport? API spec: https://wicg.github.io/web-transport/
- Documentation: https://web.dev/quictransport/
- Example: https://webrtc.internaut.com/quic/trial.html
Network Time Security (NTS)
- Champion(s)
- Karen O'Donoghue <odonoghue at isoc.org>
- Dieter Sibold <dsibold.ietf at gmail.com>
- Project(s)
- Implementation of https://datatracker.ietf.org/doc/html/draft-ietf-ntp-using-nts-for-ntp
- Interoperability tests of different implementations of this draft
- NTS Implementation(s):
- How to participate: Using slack (networktimesecurity.slack.com) and a mailing list (nts-hacking@…) for comms, contact phil@… for access
Low Latency, Low Loss, Scalable Throughput (L4S)
- Champion(s)
- Tom Henderson <tomh at tomh.org>
- Project(s)
- ns-3 models and scenarios for L4S experiments
- How to participate:
Network Interconnect Tester
- Champion(s)
- Vladimir Vassilev <vladimir at lightside-instruments.com>
- Project(s)
- Model and implementation of YANG/NETCONF managed RFC2544 capable Network Interconnect Tester
- Specifications:
- Code Repositories:
- YANG/NETCONF tools - https://sourceforge.net/projects/yuma123/
- Hardware - https://github.com/vlvassilev/spark
- Firmware - https://github.com/vlvassilev/network-interconnect-tester-cores
CoAP Group Communication
- Champion(s)
- Jim Schaad <ietf at augustcellars.com>
- Marco Tiloca <marco.tiloca at ri.se>
- Project
- Verify that group key derivation from group context
- Verify that key pair derivation from group context
- Send and Reply to group messages with group context
- Send and Reply to group messages with paired group context
- Specifications:
CoRE Resource Directory Access Control
- Champion(s)
- Jim Schaad <ietf at augustcellars.com>
- Project
- Use the ACE-OAuth access control system with a resource directory
- Specifications:
ACE Group Key Controller
- Champion(s)
- Jim Schaad <ietf at augustcellars.com>
- Marco Tiloca <marco.tiloca at ri.se>
- Project
- Send requests to a Group key controller and use the responses to send messages
- Specifications:
NMRG Intent Based Networking (IBN) Cluster
- Champion(s)
- Walter Cerroni <walter.cerroni@…>
- Davide Borsatti <davide.borsatti@…>
- Barbara Martini <barbara.martini@…>
- Molka Gharbaoui <molka.gharbaoui@…>
- Bezahaf, Mehdi <mehdi.bezahaf@…>
- (NMRG co-chair) Laurent Ciavaglia <laurent.ciavaglia@…>
- (NMRG co-chair) Jérôme François <jerome.francois@…>
- Project(s)
- A Multi-Level Approach to IBN (Walter, Davide, Barbara, Molka)
- Service Protection Period Intent (Mehdi)
- Related IETF 108 Hackathon projects:
- Intent-based, assurance, telemetry
- Interface to Network Security Functions (I2NSF) Framework
In-situ Flow Information Telemetry (IFIT)
- Champion(s)
- Weihong Wu <lara@…>
- Jiang Liu <liujiang@…>
- Project(s)
- The implementation of a demo of IFIT. The implementation is based on P4 and BMv2
- Support monitoring 4 types of typical data, encapsulating/decapsulating Dex options and IOAM data
- Both Postcard and Passport are involved
- Specifications:
Application-aware IPv6/SRv6 Networking (APN6)
- Champion(s)
- Weihong Wu <lara@…>
- Jiang Liu <liujiang@…>
- Project(s)
- The implementation of a demo of APN6. The implementation is based on P4 and BMv2
- The encapsulation of 2 types of Application-aware ID Options and 4 types of Service-Para Sub-TLVs
- The SRv6-based traffic control according to IPv6 DA, Application-aware ID Options, and Service-Para Sub-TLVs
- Specifications:
- https://tools.ietf.org/html/draft-li-apn-problem-statement-usecases-00
- https://tools.ietf.org/html/draft-li-apn-framework-00
- https://tools.ietf.org/html/draft-li-6man-app-aware-ipv6-network-02
- https://tools.ietf.org/html/draft-liu-apn-edge-usecase-00
- https://tools.ietf.org/html/draft-zhang-apn-acceleration-usecase-00
- Side meeting @IETF105 and other materials:
Software Update for the Internet of Things (SUIT)
- Champion(s)
- Brendan Moran <brendan.moran@…>
- David Brown <david.brown@…>
- Project(s)
- SUIT Dependency Generation
- SUIT Manifest Optimisation
- Implementation of SUIT in MCUboot
- Specifications:
- Other materials
- Meeting plan:
- Gather.town, table "C" in the lounge (changed from B, to one with a whiteboard) Whiteboard contents are transient (two hours I believe).
LPWAN SCHC header compression and fragmentation
- Champion(s)
- Laurent Toutain (IMT Atlantique) laurent dot toutain at imt dash atlantique dot fr
- Cedric Adjih (INRIA) cedric dot adjih at inria dot fr
- Shoichi Sakane (Cisco) ssakane at cisco dot com
- Olivier Gimenez (Semtech) ogimenez at semtech dot com
- Dominique Barthel (Orange Labs) dominique dot barthel at orange dot com
- Logistics
- working hours 11:00-17:00 UTC Tuesday-Thursday
- meet on Gather.town https://ietf.gather.town/z6N2SDxHebMdDAfo/IETF-108, in the South-East corner of the lounge area (table "N" or nearby)
- Project(s)
- provide setup for testing interoperability between several implementations.
- provide set of Rules (in the openSCHC format) and packets to be compressed/fragmented in an offline fashion We will provide test packets as text files containing JSON hex string.
- A first test will be that some packets are compressed and compared to the known SCHC Packet output. Some SCHC Packets are decompressed and compared to the known packet output. Each implementation can perform this test independently of the others.
- If time permits, the No-ACK mode of fragmentation can be tested the same way as compression: first with test vectors, second with direct unidirectional communication between two implementations.
- setup server for live interop test
- A second test is to interconnect two implementations in real time, and to compare the decompressed output with the original packet (before compression). This allows for some degree of random testing. The direct communication between two implementations will use UDP sockets.
- for documentation about SCHC, see
- Other goals can be to advance the python open source implementation of SCHC compression and fragmentation. See openschc.net
- improve the tutorial. In general, make it easier for a newcomer to join the project and contribute.
- iron out implementation to fit latest draft revisions
- interface to underlying network (UDP or interface to real hardware)
- provide setup for testing interoperability between several implementations.
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
- Champion(s)
- tbd
- Project(s)
- tbd
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 https://datatracker.ietf.org/accounts/create/ and requesting a new account.
Attachments (1)
- 108-gather-guidlines.pdf (251.9 KB) - added by smccammon@… 2 years ago.
Download all attachments as: .zip