[Coin] "Checking-in on Network Functions" - ANRW'19 presentation

"Schooler, Eve M" <eve.m.schooler@intel.com> Wed, 24 July 2019 15:04 UTC

Return-Path: <eve.m.schooler@intel.com>
X-Original-To: coin@ietfa.amsl.com
Delivered-To: coin@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 9F7F4120153 for <coin@ietfa.amsl.com>; Wed, 24 Jul 2019 08:04:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.898
X-Spam-Status: No, score=-6.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id B-tg5m5SIzsa for <coin@ietfa.amsl.com>; Wed, 24 Jul 2019 08:04:42 -0700 (PDT)
Received: from mga14.intel.com (mga14.intel.com []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 48E691200E3 for <coin@irtf.org>; Wed, 24 Jul 2019 08:04:42 -0700 (PDT)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga004.jf.intel.com ([]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 24 Jul 2019 08:04:40 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.64,303,1559545200"; d="scan'208,217";a="321367077"
Received: from orsmsx102.amr.corp.intel.com ([]) by orsmga004.jf.intel.com with ESMTP; 24 Jul 2019 08:04:40 -0700
Received: from orsmsx113.amr.corp.intel.com ( by ORSMSX102.amr.corp.intel.com ( with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 24 Jul 2019 08:04:40 -0700
Received: from orsmsx102.amr.corp.intel.com ([]) by ORSMSX113.amr.corp.intel.com ([]) with mapi id 14.03.0439.000; Wed, 24 Jul 2019 08:04:39 -0700
From: "Schooler, Eve M" <eve.m.schooler@intel.com>
To: "coin@irtf.org" <coin@irtf.org>
CC: "Schooler, Eve M" <eve.m.schooler@intel.com>, "zlakhani@cs.cmu.edu" <zlakhani@cs.cmu.edu>
Thread-Topic: "Checking-in on Network Functions" - ANRW'19 presentation
Thread-Index: AdVCLYRPlSE2oy2xSxm6AFPWGH2yqQAA16BA
Date: Wed, 24 Jul 2019 15:04:39 +0000
Message-ID: <1BBB5B8548ACEF4093CE0051D9EA9A6BDAD209C6@ORSMSX102.amr.corp.intel.com>
Accept-Language: en-US
Content-Language: en-US
x-ctpclassification: CTP_NT
x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMmFlNTJlYzMtMzkxOS00MDFkLTlmZjItZWM4ZDk1ZWJlYTc2IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoidEZ2bmw5Z1VWV3lYbU8walwvSndtUnhiNERmQk5zNWVSMWtKM2ZQVjVEcmt6TUxKMUZRazNlbXdISitzSlhxYTkifQ==
dlp-product: dlpe-windows
dlp-version: 11.0.600.7
dlp-reaction: no-action
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_1BBB5B8548ACEF4093CE0051D9EA9A6BDAD209C6ORSMSX102amrcor_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/coin/IejbDaurX1gpPeuCBV-MnlnU054>
Subject: [Coin] "Checking-in on Network Functions" - ANRW'19 presentation
X-BeenThere: coin@irtf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "COIN: Computing in the Network" <coin.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/coin>, <mailto:coin-request@irtf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/coin/>
List-Post: <mailto:coin@irtf.org>
List-Help: <mailto:coin-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/coin>, <mailto:coin-request@irtf.org?subject=subscribe>
X-List-Received-Date: Wed, 24 Jul 2019 15:04:45 -0000

In case you missed the IETF-hosted ANRW’19 (Applied Network Research Workshop) on Monday, check out (pun intended) the interesting and relevant presentation below.
With programmability comes the need for correctness and safety….

“Checking-in on Network Functions”, by Zeeshan Lakhani (CMU) and Heather Miller (CMU)

Slides: https://irtf.org/anrw/2019/slides-anrw19-final36.pdf
Paper: https://dl.acm.org/authorize?N687431
Abstract: When programming network functions, changes within a packet tend to have consequences—side effects which must be accounted for by network programmers or administrators via arbitrary logic and an innate understanding of dependencies. Examples of this include updating checksums when a packet’s contents has been modified or adjusting a payload length field of a IPv6 header if another header is added or updated within a packet. While static-typing captures interface specifications and how packet contents should behave, it does not enforce precise invariants around runtime dependencies like the examples above. Instead, during the design phase of network functions, programmers should be given an easier way to specify checks up front, all without having to account for and keep track of these *consequences* at each and every step during the development cycle. In keeping with this view, we present a unique approach for adding and generating both static checks and dynamic contracts for specifying and checking packet processing operations. We develop our technique within an existing framework called NetBricks and demonstrate how our approach simplifies and checks common dependent packet and header processing logic that other systems take for granted, all without adding much overhead during development.