Subject: Re: [Coin] P4 Hackathon tools

From: Marc LeClerc <[email-masked]>
Date: Mon, 17 Jun 2019 09:14:59 -0400

Hello all,

Just to be clear we are proposing the use of P4-16 tools, not p4-14. Our development team is well versed in both environments if P4-16 isn’t acceptable.

VBR/Marc

Marc LeClerc
VP Strategy and Marketing
NoviFlow Inc.
Tel: +1-438-807-4363
Mob: +1-514-402-5948
[email-masked]

www.noviflow.com

> On Jun 17, 2019, at 8:13 AM, [email-masked] wrote:
> 
> Send Coin mailing list submissions to
> 	[email-masked] <mailto:[email-masked]>
> 
> To subscribe or unsubscribe via the World Wide Web, visit
> 	https://www.irtf.org/mailman/listinfo/coin <https://www.irtf.org/mailman/listinfo/coin>
> or, via email, send a message with subject or body 'help' to
> 	[email-masked] <mailto:[email-masked]>
> 
> You can reach the person managing the list at
> 	[email-masked] <mailto:[email-masked]>
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Coin digest..."
> Today's Topics:
> 
>   1. Re: Draft minutes - COINRG interim meeting - 2019-06-07
>      ([email-masked] <mailto:[email-masked]>)
> 
> From: <[email-masked] <mailto:[email-masked]>>
> Subject: Re: [Coin] Draft minutes - COINRG interim meeting - 2019-06-07
> Date: June 17, 2019 at 8:13:09 AM GMT-4
> To: "'Hejianfei \(Jeffrey\)'" <[email-masked] <mailto:[email-masked]>>, "'Marie-Jose Montpetit'" <[email-masked] <mailto:[email-masked]>>
> Cc: "'Schooler, Eve M'" <[email-masked] <mailto:[email-masked]>>, <[email-masked] <mailto:[email-masked]>>
> Reply-To: <[email-masked] <mailto:[email-masked]>>
> 
> 
> 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 <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 <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 <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) <[email-masked] <mailto:[email-masked]>> 
> Sent: Sunday, June 16, 2019 10:23 PM
> To: Marie-Jose Montpetit <[email-masked] <mailto:[email-masked]>>; [email-masked] <mailto:[email-masked]>
> Cc: Schooler, Eve M <[email-masked] <mailto:[email-masked]>>; [email-masked] <mailto:[email-masked]>
> Subject: 答复: [Coin] Draft minutes - COINRG interim meeting - 2019-06-07
>  
> A few suggestions for the P4 hackathon in Montreal ( chair hat off):
> 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?
> 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/ <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 <http://www.cs.yale.edu/homes/aspnes/pinewiki/ConvergeCast.html?highlight=%28CategoryDistributedComputingNotes%29>)?
> My two cents,
> Jianfei(Jeffrey)
>  
> 发件人: Marie-Jose Montpetit [mailto:[email-masked] <mailto:[email-masked]>] 
> 发送时间: 2019年6月14日 22:40
> 收件人: [email-masked] <mailto:[email-masked]>
> 抄送: Schooler, Eve M <[email-masked] <mailto:[email-masked]>>; [email-masked] <mailto:[email-masked]>; Hejianfei (Jeffrey) <[email-masked] <mailto:[email-masked]>>
> 主题: 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, <[email-masked] <mailto:[email-masked]>> <[email-masked] <mailto:[email-masked]>> wrote:
>  
>  
> From: Coin <[email-masked] <mailto:[email-masked]>> On Behalf Of Schooler, Eve M
> Sent: Friday, June 14, 2019 3:29 AM
> To: [email-masked] <mailto:[email-masked]>
> Cc: Schooler, Eve M <[email-masked] <mailto:[email-masked]>>; Marie-Jose Montpetit <[email-masked] <mailto:[email-masked]>>; Hejianfei (Jeffrey) <[email-masked] <mailto:[email-masked]>>
> 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
>  
> 
> 
> Coin mailing list
> [email-masked] <mailto:[email-masked]>
> https://www.irtf.org/mailman/listinfo/coin <https://www.irtf.org/mailman/listinfo/coin>

---

From: <[email-masked]>
Date: Mon, 17 Jun 2019 09:48:31 -0400

We will be taking the P4 community events backwards if P4-16 is not used at the Hackathon.  I have attended five or more P4 events since 2017 and all events have used P4-16.  

Also, I humbly suggest, we try writing IPv6 code during the Hackathon.   If one writes IPv4, it’s fine too.   All sensors and cellular use only IPv6.  Automotive data from the car uses cellular.  

Thanks,

Hemant

From: Marc LeClerc <[email-masked]> 
Sent: Monday, June 17, 2019 9:15 AM
To: [email-masked]
Cc: [email-masked]; Marie-Jose Montpetit <[email-masked]>; [email-masked]; [email-masked]
Subject: Re: P4 Hackathon tools

Hello all,

VBR/Marc

Marc LeClerc
VP Strategy and Marketing
NoviFlow Inc.
Tel: +1-438-807-4363
Mob: +1-514-402-5948
[email-masked] <mailto:[email-masked]> 

www.noviflow.com <http://www.noviflow.com> 

On Jun 17, 2019, at 8:13 AM, [email-masked] <mailto:[email-masked]>  wrote:

Send Coin mailing list submissions to
             <mailto:[email-masked]> [email-masked]

To subscribe or unsubscribe via the World Wide Web, visit
             <https://www.irtf.org/mailman/listinfo/coin> https://www.irtf.org/mailman/listinfo/coin
or, via email, send a message with subject or body 'help' to
             <mailto:[email-masked]> [email-masked]

You can reach the person managing the list at
             <mailto:[email-masked]> [email-masked]

  1. Re: Draft minutes - COINRG interim meeting - 2019-06-07
     ( <mailto:[email-masked]> [email-masked])

From: < <mailto:[email-masked]> [email-masked]>

To: "'Hejianfei \(Jeffrey\)'" < <mailto:[email-masked]> [email-masked]>, "'Marie-Jose Montpetit'" < <mailto:[email-masked]> [email-masked]>

Cc: "'Schooler, Eve M'" < <mailto:[email-masked]> [email-masked]>, < <mailto:[email-masked]> [email-masked]>

Reply-To: < <mailto:[email-masked]> [email-masked]>

 <https://github.com/IETF-Hackathon/p4-ipv6-switch-ml/blob/master/ipv6-switch-ml-bmv2.stf#L52> 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> 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> 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.  

Thanks,

Hemant

From: Hejianfei (Jeffrey) < <mailto:[email-masked]> [email-masked]> 
Sent: Sunday, June 16, 2019 10:23 PM
To: Marie-Jose Montpetit < <mailto:[email-masked]> [email-masked]>;  <mailto:[email-masked]> [email-masked]
Cc: Schooler, Eve M < <mailto:[email-masked]> [email-masked]>;  <mailto:[email-masked]> [email-masked]
Subject: 答复: [Coin] Draft minutes - COINRG interim meeting - 2019-06-07

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 

we may have 4 quadrants: 

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/> 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> http://www.cs.yale.edu/homes/aspnes/pinewiki/ConvergeCast.html?highlight=%28CategoryDistributedComputingNotes%29)?

My two cents,

Jianfei(Jeffrey)

发件人: Marie-Jose Montpetit [ <mailto:[email-masked]> mailto:[email-masked]] 
发送时间: 2019年6月14日 22:40
收件人:  <mailto:[email-masked]> [email-masked]
抄送: Schooler, Eve M < <mailto:[email-masked]> [email-masked]>;  <mailto:[email-masked]> [email-masked]; Hejianfei (Jeffrey) < <mailto:[email-masked]> [email-masked]>
主题: Re: [Coin] Draft minutes - COINRG interim meeting - 2019-06-07

Thanks for this.

 

mjm

 

On Jun 14, 2019, at 10:24 AM, < <mailto:[email-masked]> [email-masked]> < <mailto:[email-masked]> [email-masked]> wrote:

From: Coin < <mailto:[email-masked]> [email-masked]> On Behalf Of Schooler, Eve M
Sent: Friday, June 14, 2019 3:29 AM
To:  <mailto:[email-masked]> [email-masked]
Cc: Schooler, Eve M < <mailto:[email-masked]> [email-masked]>; Marie-Jose Montpetit < <mailto:[email-masked]> [email-masked]>; Hejianfei (Jeffrey) < <mailto:[email-masked]> [email-masked]>
Subject: [Coin] Draft minutes - COINRG interim meeting - 2019-06-07

P4 Hackathon

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

<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).

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

Coin mailing list
 <mailto:[email-masked]> [email-masked]
 <https://www.irtf.org/mailman/listinfo/coin> https://www.irtf.org/mailman/listinfo/coin

---

From: <[email-masked]>
Date: Mon, 17 Jun 2019 10:17:14 -0400

I do not expect Cisco or Arista to bring any switches to this Hackathon.  Thus, we don’t have to worry about P4-14.

Thanks,

Hemant

Hello all,

VBR/Marc

Marc LeClerc

Thanks,

Hemant

we may have 4 quadrants: 

My two cents,

Jianfei(Jeffrey)

Thanks for this.

 

mjm

 

 

P4 Hackathon

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

Hemant

Coin mailing list

---

From: Marie-Jose Montpetit <[email-masked]>
Date: Tue, 18 Jun 2019 12:03:12 -0400

Can we agree that we are going to offer a choice to the participants - depending on what they want to do?

Marie-Jose Montpetit, Ph.D.
[email-masked]
[email-masked]
+1-781-526-2661
@SocialTVMIT

> On Jun 17, 2019, at 10:17 AM, <[email-masked]> <[email-masked]> wrote:
> 
> From: Marc LeClerc <[email-masked] <mailto:[email-masked]>> 
> To: [email-masked] <mailto:[email-masked]>
> Cc: [email-masked] <mailto:[email-masked]>; Marie-Jose Montpetit <[email-masked] <mailto:[email-masked]>>; [email-masked] <mailto:[email-masked]>; [email-masked] <mailto:[email-masked]>
> www.noviflow.com <http://www.noviflow.com/>
> 
> 
>

---

From: <[email-masked]>
Date: Tue, 18 Jun 2019 12:12:12 -0400

I think, this is a question for NoviFlow.  Thanks again to NoviFlow to sponsor the hackathon!

If no equipment is brought to the hackathon, one has their MacOS machine or Window machine running Ubuntu in a VM.  The machines suffice to develop P4 code and compile the code with p4c running on a participant’s machine.  The compiled code can also be tested using STF and p4c’s bmv2 simple_switch.

Hemant

From: Marie-Jose Montpetit <[email-masked]> 
Sent: Tuesday, June 18, 2019 12:03 PM
To: [email-masked]
Cc: Marc LeClerc <[email-masked]>; [email-masked]; [email-masked]; [email-masked]
Subject: Re: P4 Hackathon tools

 

[email-masked] <mailto:[email-masked]> 

[email-masked] <mailto:[email-masked]> 

+1-781-526-2661

@SocialTVMIT

On Jun 17, 2019, at 10:17 AM, <[email-masked] <mailto:[email-masked]> > <[email-masked] <mailto:[email-masked]> > wrote:

Thanks,

Hemant

From: Marc LeClerc < <mailto:[email-masked]> [email-masked]> 
Sent: Monday, June 17, 2019 9:15 AM
To:  <mailto:[email-masked]> [email-masked]
Cc:  <mailto:[email-masked]> [email-masked]; Marie-Jose Montpetit < <mailto:[email-masked]> [email-masked]>;  <mailto:[email-masked]> [email-masked];  <mailto:[email-masked]> [email-masked]
Subject: Re: P4 Hackathon tools

Hello all,

VBR/Marc

Marc LeClerc
VP Strategy and Marketing
NoviFlow Inc.
Tel: +1-438-807-4363
Mob: +1-514-402-5948
 <mailto:[email-masked]> [email-masked]

 <http://www.noviflow.com/> www.noviflow.com

On Jun 17, 2019, at 8:13 AM,  <mailto:[email-masked]> [email-masked] wrote:

Thanks,

Hemant

we may have 4 quadrants: 

My two cents,

Jianfei(Jeffrey)

Thanks for this.

 

mjm

 

 

P4 Hackathon

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

Hemant

Coin mailing list