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

<> Thu, 25 July 2019 11:21 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 2D3421200D7 for <>; Thu, 25 Jul 2019 04:21:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id eCgrjk0GbokS for <>; Thu, 25 Jul 2019 04:21:07 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 18FFA12002F for <>; Thu, 25 Jul 2019 04:21:06 -0700 (PDT)
Received: from ([]:61780 helo=hemantPC) by with esmtpsa (TLSv1.2:AES128-SHA256:128) (Exim 4.92) (envelope-from <>) id 1hqbnp-000K7a-9E; Thu, 25 Jul 2019 06:21:00 -0500
Reply-To: <>
From: <>
To: "'Schooler, Eve M'" <>, <>
Cc: <>
References: <>
In-Reply-To: <>
Date: Thu, 25 Jul 2019 07:21:14 -0400
Organization: MNK Consulting
Message-ID: <003c01d542db$12a34a60$37e9df20$>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_003D_01D542B9.8B946980"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQH0el69UdRcTEFhC0+6ePD1Vkhmoaacvk2g
Content-Language: en-us
X-OutGoing-Spam-Status: No, score=-0.2
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname -
X-AntiAbuse: Original Domain -
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain -
X-Get-Message-Sender-Via: authenticated_id:
X-From-Rewrite: unmodified, already matched
Archived-At: <>
Subject: Re: [Coin] "Checking-in on Network Functions" - ANRW'19 presentation
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "COIN: Computing in the Network" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 25 Jul 2019 11:21:09 -0000

Thanks for sending the note.


Long before COIN started, I think, the first computing in the network was done by NetSift (George Verghese and Cisco) to detect viruses. I see the presentation below use contracts.  Six-seven years back, Cisco ACI started using contracts in switching.  Another way to look at computing in the network is to first, find hard problems, and then see how networking can solve any.  Also, switch hardware runs at 12.8 Tbps.  Router hardware runs at 100 Gbps.   Some problems are best solved in a router while others in a switch.






From: Coin <>; On Behalf Of Schooler, Eve M
Sent: Wednesday, July 24, 2019 11:05 AM
Cc:; Schooler, Eve M <>;
Subject: [Coin] "Checking-in on Network Functions" - ANRW'19 presentation


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:  <>

Paper:  <>

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.