Re: [Coin] Draft minutes - COINRG interim meeting - 2019-06-07

<hemant@mnkcg.com> Mon, 17 June 2019 12:13 UTC

Return-Path: <hemant@mnkcg.com>
X-Original-To: coin@ietfa.amsl.com
Delivered-To: coin@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1A8DF120044 for <coin@ietfa.amsl.com>; Mon, 17 Jun 2019 05:13:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level:
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mnkcg.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fJxIQM3s2I9c for <coin@ietfa.amsl.com>; Mon, 17 Jun 2019 05:13:11 -0700 (PDT)
Received: from web033.dnchosting.com (web033.dnchosting.com [199.7.109.33]) (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 56784120111 for <coin@irtf.org>; Mon, 17 Jun 2019 05:13:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mnkcg.com; s=default; h=Content-Type:MIME-Version:Message-ID:Date:Subject:In-Reply-To: References:Cc:To:From:Reply-To:Sender:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=RN4ur5XSXNrXHQWKdjlSueA7l/Swr5xwFiDmdjdIw1E=; b=lHtSyhnyYtZ4Gn81A/90hh0jrS OJ4V8yARQUeBHlJWAoAoCDySj/pXFHc/SuyBlmDVp9rgK71fu8JJixxb11IJ9hU212cu/9d9n8Nxy eQQ/ZRrNH8K4OPUWGr4xrxRU+H8K7vVZLAnAT56mxbdRA02z5e1Bv7QncSPMjmuDriDGbjr/O6BvY iLRCBcr6xLz+8P8bLkMjiCkbNQG/pz0jRWeq3ThPQeap4PuLiPdKOAq+5LNgQhGBj8QwHujebaY91 4hT+kYcPJi73PlmZPbqCZzCGQ5kqqbN36ismIdpYLaPgKleJo0riR247ev4sGaqh3D1C4sH1ErsXI 3ctdFSEg==;
Received: from c-98-229-163-41.hsd1.ma.comcast.net ([98.229.163.41]:58674 helo=hemantPC) by web033.dnchosting.com with esmtpsa (TLSv1.2:AES128-SHA256:128) (Exim 4.92) (envelope-from <hemant@mnkcg.com>) id 1hcqVJ-00HVWC-M0; Mon, 17 Jun 2019 07:13:02 -0500
Reply-To: hemant@mnkcg.com
From: hemant@mnkcg.com
To: "'Hejianfei (Jeffrey)'" <jeffrey.he@huawei.com>, 'Marie-Jose Montpetit' <marie@mjmontpetit.com>
Cc: "'Schooler, Eve M'" <eve.m.schooler@intel.com>, coin@irtf.org
References: <1BBB5B8548ACEF4093CE0051D9EA9A6BDACCC990@ORSMSX105.amr.corp.intel.com> <024a01d522bc$d1d2d930$75788b90$@mnkcg.com> <A864AD0D-D726-4817-8274-D96DC89B725B@mjmontpetit.com> <AB07990D3CAE53419132AB701C45693CD7A66485@dggeml529-mbx.china.huawei.com>
In-Reply-To: <AB07990D3CAE53419132AB701C45693CD7A66485@dggeml529-mbx.china.huawei.com>
Date: Mon, 17 Jun 2019 08:13:09 -0400
Organization: MNK Consulting
Message-ID: <008d01d52506$07c6fad0$1754f070$@mnkcg.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_008E_01D524E4.80B77DB0"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQIoGhJtXJAUPPAhgEGq/TGjZhAWqAJ31OzZAai8Tt0BGXeb1KXP+xPQ
Content-Language: en-us
X-OutGoing-Spam-Status: No, score=0.3
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - web033.dnchosting.com
X-AntiAbuse: Original Domain - irtf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - mnkcg.com
X-Get-Message-Sender-Via: web033.dnchosting.com: authenticated_id: hemant@mnkcg.com
X-Authenticated-Sender: web033.dnchosting.com: hemant@mnkcg.com
X-Source:
X-Source-Args:
X-Source-Dir:
X-From-Rewrite: unmodified, already matched
Archived-At: <https://mailarchive.ietf.org/arch/msg/coin/KmMBb7Q8_Omoxu1TwsNwfuUO6Xw>
Subject: Re: [Coin] Draft minutes - COINRG interim meeting - 2019-06-07
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: Mon, 17 Jun 2019 12:13:15 -0000

There could be another pitfall with using Tofino tools chain.  Switch companies, e.g., Cisco have shipped p4-14 code with their Tofino switch.  I suspect, even Arista switch using Tofino shipped with p4-14.   What if NoviFlow brings Tofino switches and p4-14 tools chain to the hackathon?  Nobody in the research community works with older p4-14.  Folks are using p4-16.

 

Regarding Jeffrey’s notes, below, item 1 is totally possible.  Just use a Windows laptop with Ubuntu running in a virtual machine.  I’d give 20G-30G disk space to Ubuntu and 4G of RAM.  P4lang/p4c does not use much disk space.  P4lang/p4c also supports MacOS.  

 

See P4 code I checked in.  The code was tested using STF packets and virtual bmv2 simple_switch from p4lang/p4c.

 

https://github.com/IETF-Hackathon/p4-ipv6-switch-ml/blob/master/ipv6-switch-ml-bmv2.stf#L52                                                                             

 

A STF (Simple Test Framework) file uses “packet” to send and “expected” packet to test received packet from the virtual simple_switch.  I do generate my packets using Scapy and use a small Python program to convert Scapy packet to STF byte format.  See https://github.com/jafingerhut/p4-guide/blob/master/README-scapy.md and a function called bytes_to_hex.  STF also allows commands to program data plane tables.   If you see the wiki (https://trac.ietf.org/trac/ietf/meeting/wiki/105hackathon), I have added more notes to the IPv6 Switch ML project.  The notes list one script that downloads p4lang/p4c and behavioral-model software and dependencies.  Just build both software and then one is ready to use p4c and STF packets with bmv2 and simple_switch.  If have also provided a link to MacOS users.   p4lang/p4c is the P4 compiler and p4lang/behavioral-model includes the virtual simple_switch software to run packets thru.  

 

Regarding item 2, I agree it’s good work and also challenging.  P4 is not the best language to maintain state.  After all, P4 was designed for forwarding packets over 6 Tbps.  P4 uses registers to maintain state.  I will add notes to the wiki for how to maintain state using P4 registers with example of p4-16 code. 

 

Thanks,

 

Hemant

 

From: Hejianfei (Jeffrey) <jeffrey.he@huawei.com> 
Sent: Sunday, June 16, 2019 10:23 PM
To: Marie-Jose Montpetit <marie@mjmontpetit.com>; hemant@mnkcg.com
Cc: Schooler, Eve M <eve.m.schooler@intel.com>; coin@irtf.org
Subject: 答复: [Coin] Draft minutes - COINRG interim meeting - 2019-06-07

 

A few suggestions for the P4 hackathon in Montreal ( chair hat off):

1.	Tool kit: I tend to agree with Hemant to use P4C compiler and bmv2 as the behavioral model for the P4 software switch.  We can generate virtual ports from Linux, connect these ports to this P4 software switch, use tools(e.g scapy + wireshark) to send and check the in/out packets of the switch to test if it works correctly. Then, every team in this hackathon only need a server or Virtual machine to run these software?
2.	We also need some tasks for the teams to select and challenge, right? The attractive part of P4 and programmable switches to me is essentially to process packets in a “stateful”/correlated way. then, according to 

1) these correlated packets are in the same flow or from different flows 

2) the objective for processing is for better forwarding/transport or non traditional forwarding(e.g cache/compute), 

we may have 4 quadrants: 

1) single-flow processing for better forwarding: e.g FEC, re-ordering, flowlet-based load balancing etc. 

2) co-flow processing for better forwarding: e.g new scheduling or AQM? (I am not sure how we can control the queue management part in the BVM2, need to check). 

3) single-flow 4) co-flow processing for non-traditional forwarding function: Quite a few research projects has been listed in the draft(https://datatracker.ietf.org/doc/draft-he-coin-managed-networks/), but maybe the simplest use case is the ConvergeCast(http://www.cs.yale.edu/homes/aspnes/pinewiki/ConvergeCast.html?highlight=%28CategoryDistributedComputingNotes%29)?

My two cents,

Jianfei(Jeffrey)

 

发件人: Marie-Jose Montpetit [mailto:marie@mjmontpetit.com] 
发送时间: 2019年6月14日 22:40
收件人: hemant@mnkcg.com <mailto:hemant@mnkcg.com> 
抄送: Schooler, Eve M <eve.m.schooler@intel.com <mailto:eve.m.schooler@intel.com> >; coin@irtf.org <mailto:coin@irtf.org> ; Hejianfei (Jeffrey) <jeffrey.he@huawei.com <mailto:jeffrey.he@huawei.com> >
主题: Re: [Coin] Draft minutes - COINRG interim meeting - 2019-06-07

 

Thanks for this.

 

I plan to work on the hackaton next week. I was and still am in all day meetings all week in Montreal.

 

 

mjm

 

 

 

 

 

On Jun 14, 2019, at 10:24 AM, <hemant@mnkcg.com <mailto:hemant@mnkcg.com> > <hemant@mnkcg.com <mailto:hemant@mnkcg.com> > wrote:

 

 

From: Coin < <mailto:coin-bounces@irtf.org> coin-bounces@irtf.org> On Behalf Of Schooler, Eve M
Sent: Friday, June 14, 2019 3:29 AM
To:  <mailto:coin@irtf.org> coin@irtf.org
Cc: Schooler, Eve M < <mailto:eve.m.schooler@intel.com> eve.m.schooler@intel.com>; Marie-Jose Montpetit < <mailto:marie@mjmontpetit.com> marie@mjmontpetit.com>; Hejianfei (Jeffrey) < <mailto:jeffrey.he@huawei.com> jeffrey.he@huawei.com>
Subject: [Coin] Draft minutes - COINRG interim meeting - 2019-06-07

 


P4 Hackathon

-----------------



Marc: As a marketing person, sees a hackathon as having two objectives: 1) promote ideas and 2) attract people to participate in the execution of those ideas. Could call it a hackathon focused on a programmable forwarding plane.

However, need to make it interesting, yet the technology should not be too broad. In the case of Noviflow, we’ve been developing programmable forwarding planes for 7 years. We have a lot of experienced engineers who know how to use the Barefoot development tools. Therefore the hackathon could basically use Barefoot's toolkit to do the exercises. In contrast to what was done in Boston, have a suggestion on areas for things to look into. Example: take a look at the intimate connection between forwarding plane and application and services, e.g., ask the students to accurately test the latency of services, which would be a specific target so can be delivered within the scope of 2 days. Contrary to the Boston P4 hackathon, have more of a unified environment, have experts from NoviFlow provide assistance so they can focus on the idea creation, not on the tools.

 

<hs> Boston hackathon, which I attended for the whole day, did have a unified environment – all of us used p4lang/p4c (open-source P4 compiler).  All of us in Boston who wrote P4 programs hit the ground running with p4lang/p4c.  Thus, even, we spent time on ideas, not tools.   We had over 19 years of data plane programming experience at Boston.  MNK Consulting ( <http://mnkcg.com/> http://mnkcg.com ) with > 13 years of Cisco pxf, Cisco QFP,  Cavium Xpliant data planes, and P4 experience since Fall 1996.  Juniper was there with 6 years data plane programming.  Now, MNK Consulting has Barefoot Tofino experience as well – I am working remotely on Saturday and available for help  via the P4 Slack channel (userid: Hemant).

 

I see a problem with Barefoot’s Tofino tools chain.  For example, there are 20 of us at the P4 hackathon.  Each one of us would like the Tofino tools chains installed on our laptops.  How would NoviFlow help with that before the hackathon?  Or will NoviFlow provide 20 machines with Tofino tools chain built and ready for use?  Sharing machines slows down productivity.  What if some of us are remote – how do we login to the machines remotely?  I have already asked about NDA issues with Barefoot.

 

In contrast, if one uses the p4lang/p4c, we have no external dependency and start writing P4 programs immediately. P4lang/p4c also includes a tools chain to test using packets.   I suggest to use either environment and crank out P4 code.  

 

We should get more ideas – please add them to the wiki:  <https://trac.ietf.org/trac/ietf/meeting/wiki/105hackathon> https://trac.ietf.org/trac/ietf/meeting/wiki/105hackathon  

 

Hemant