-- Kentaro Ebisawa | Mailing List: <ebik...@gmail.com> | Biz: <ebi...@toyota-tokyo.tech>
Dear Kentaro,
Thank you so much for reaching out!
The short answer is that you do not need to be a FASTER member to openly publish your code. You are also allowed to publish it in a public repo if you want to.
Having said that, I would personally be very excited to see you joining FASTER. The advantage of doing that is that it allows you to openly collaborate with the other researchers, since (let's face it), one still needs to get the SDE and the actual hardware to work with these programs and SDE is not public yet. The other advantage of joining FASTER is the ability to get access to Barefoot documentation and Tofino-specific support.
Below are some excerpts from a short FAQ that I prepared for the FASTER members that can you might also find useful:Q: What is being allowed?
A: You can openly publish your data plane code written for Tofino in both P414 and P416/TNA as well as the accompanying control plane code, written using Barefoot APIs such as BfRt, BF Runtime and the “older” style PD (and PD-Fixed) APIs.
Q: Why is this important? Couldn’t I do it before?
A: All the interfaces mentioned above were proprietary and covered by the respective agreements. Thus, you were not legally allowed to openly share your code – it would be a violation of the agreements you signed because it would disclose our confidential information without our consent. While Intel still retains full proprietary ownership rights and control over these interfaces, Intel is now granting you permission to publish your code that uses these interfaces.
Q: How can I know exactly what’s open and what is not?
A: To assist the community further, Intel plans to openly publish these interfaces under the Creative Commons CC BY-ND (Attribution, No Derivatives) license. In the interim, however, you can consider this notice as permission to publish your code that uses these interfaces.
Q: What can I publish?
A: You can openly publish your own code written for Tofino, e.g. by putting it on Github, attaching to a publication, etc.
Q: What can I not publish?
A: You are not allowed to publish Intel software, e.g. the P4Studio SDE in source or in binary. You are not allowed to publish the artifacts produced by the P4 compiler and other P4Studio tools, such as Tofino binary file (tofino.bin), context.json and bfrt.json, logs, visualizations, etc. You are also not allowed (yet), to publish Intel’s own interface files: first, there is no practical need to do that and, secondly, Intel will publish them on its own, once they are ready for publication.
Please, note that in the course of your interaction with Barefoot/Intel you probably learned a lot more information than just these interfaces. That information is still governed by the agreements that you have in place.
It also goes without saying that you need to abide by all the agreements you have with your school or employer so that you do not accidentally disclose the information that they consider confidential.
Q: What code does this cover?
A: The only code that is covered by this permission is the code without any comments – the pure code. That is the precise definition of what is allowed. This does not mean that you cannot comment the code – you absolutely can. You simply need to make sure that in your comments and other documents (such as README files) you do not accidentally disclose protected information, in the same way you need to be careful not to disclose it when you write a paper or present at a conference.
Q: What are Intel’s longer-term plans and vision for being more open about Tofino?
A: Intel intends to open Tofino in the long term. As it is the case with general purpose CPUs, we believe that people should be able to learn about the architecture and interfaces, teach about them and write the code openly. This announcement is just the first step. Stay tuned!
Vladimir Gurevich
Barefoot NetworksDirector, FASTER ProgramEmail: vgur...@barefootnetworks.comPhone: (408) 833-4505