[P4-edu] p4-guide repository

2 views
Skip to first unread message

Andy Fingerhut

unread,
Nov 25, 2018, 4:22:55 PM11/25/18
to p4-...@lists.p4.org
I know others interested in the p4-edu have their own collections of code and documentation, too, and I am not claiming that what I have in my p4-guide repository [1] should be used by anyone over those, but just wanted to let others know that if they find something there that is useful for including in other P4 educational materials, everything in the p4-guide repository that I have written is copyright by Cisco Systems, Inc., my employer, and released under the Apache license.

If those terms are satisfactory for the use of those materials in another context or project, you are welcome to copy them under those terms.  I don't recall the Apache license details well enough to know whether that legally requires maintaining the copyright notice, but please do so.

If you have a potential use in mind that would benefit from copying those materials under different terms, please contact me and we can discuss it.

Regarding my personal goals for the code and README files in the p4-guide repository, they are basically:

I want to easily be able to create a new Ubuntu 16.04 or 18.04 Linux system (and other Ubuntu long term release versions as they come out), and run one script to install the latest versions of the P4 compiler, behavioral model, and related low level control plane code (e.g. P4Runtime API implementation) from source code.  Nothing in there at the moment is tied to a specific date or commit of the source code.

The focus is on the behavior of individual P4 programs running in a single software switch, not a network of multiple devices, with no automated control plane software, only manually installed table entries.  I find that at least during my learning and debugging, it helps to have manual control over table entries and a single device, to better understand what is going on, and/or what is going wrong.

I have nothing against more automated control plane software or multiple devices, and may one day add examples of this to that repository, but it isn't a high priority right now.  If I did add control plane examples, my preference would be to do so using the P4Runtime API and controller software written in Python, to provide a higher level language than C++ in which to develop such things.  Any such controller software I would develop would be quite small and likely focused on a small set of functionality.

There is also a docs directory in that repo where I occasionally write articles intended to publish, usually for the purpose of supporting various design decisions in the P4.org working groups.

Andy

Reply all
Reply to author
Forward
0 new messages