<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Thank you Vladimir for quick and detailed explanation.<br>
    <br>
    Great to know that it can be published to public!!<br>
    <br>
    And the future plan to open information about Tofino is also
    exciting.<br>
    Looking forward to living in a world where anyone can learn about
    Programmable Ethernet ASIC just like learning about Intel 64 CPU
    with SDM (Software Developer Manuals).<br>
    <br>
    Regards,<br>
    <pre class="moz-signature" cols="0">-- 
Kentaro Ebisawa | Mailing List: <a class="moz-txt-link-rfc2396E" href="mailto:ebiken.g@gmail.com"><ebiken.g@gmail.com></a> | Biz: <a class="moz-txt-link-rfc2396E" href="mailto:ebisawa@toyota-tokyo.tech"><ebisawa@toyota-tokyo.tech></a>

</pre>
    <div class="moz-cite-prefix">On 2020/05/30 3:58, Vladimir Gurevich
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAKkdYERVqXKS4qh=SCDBy2UddVO3Gv=82kWLvuo0OR2+shm_kA@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">Dear Kentaro,
        <div><br>
        </div>
        <div>Thank you so much for reaching out! </div>
        <div><br>
        </div>
        <div>The short answer is that you do <b>not</b> need to be a
          FASTER member to openly publish your code. You are also
          allowed to publish it in a <b>public </b>repo if you want
          to. </div>
        <div><br>
        </div>
        <div>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. </div>
        <div><br>
        </div>
        <div>Below are some excerpts from a short FAQ that I prepared
          for the FASTER members that can you might also find useful:</div>
        <div>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">Q: What is being allowed?</span></strong><span
              style="box-sizing:border-box"> </span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><span
              style="box-sizing:border-box">A: </span><span
              style="box-sizing:border-box">You can</span><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box"> </span></strong><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">openly</span></strong><span
              style="box-sizing:border-box"> </span><span
              style="box-sizing:border-box">publish your data plane code
              written for Tofino in both P4</span><span
              style="box-sizing:border-box">14</span><span
              style="box-sizing:border-box"> and P4</span><span
              style="box-sizing:border-box">16</span><span
              style="box-sizing:border-box">/TNA as well as the
              accompanying co</span><span style="box-sizing:border-box">ntrol
              plane code, written using Barefoot APIs such as </span><span
              style="box-sizing:border-box">BfRt</span><span
              style="box-sizing:border-box">, BF Runtime and the “older”
              style PD (and PD-Fixed) APIs</span><span
              style="box-sizing:border-box">.</span><span
              style="box-sizing:border-box"> </span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">Q: </span></strong><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">Why is this important?
                Couldn’t I do it before?</span></strong><span
              style="box-sizing:border-box"> </span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><span
              style="box-sizing:border-box">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</span><span
              style="box-sizing:border-box"> – it would be </span><span
              style="box-sizing:border-box">a </span><span
              style="box-sizing:border-box">violation of the agreements
              you signed</span><span style="box-sizing:border-box"> because
              it would disclose our confidential information without our
              consent</span><span style="box-sizing:border-box">. While
              Intel </span><span style="box-sizing:border-box">still </span><span
              style="box-sizing:border-box">retains full </span><span
              style="box-sizing:border-box">proprietary ownership
              rights </span><span style="box-sizing:border-box">and
              control over these interfaces, Intel </span><span
              style="box-sizing:border-box">is now granting </span><span
              style="box-sizing:border-box">you permission to publish
              your code that </span><span style="box-sizing:border-box">uses
              these interfaces.  </span><span
              style="box-sizing:border-box"> </span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">Q: How can I know exactly
                what’s open and what is not?</span></strong><span
              style="box-sizing:border-box"> </span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><span
              style="box-sizing:border-box">A: </span><span
              style="box-sizing:border-box">To assist the community
              further, Intel plans to o</span><span
              style="box-sizing:border-box">penly</span><span
              style="box-sizing:border-box"> publish these interfaces
              under the Creative Commons CC BY-ND (Attribution, No
              Derivatives) lice</span><span
              style="box-sizing:border-box">nse. In the interim,
              however, you can consider this notice as </span><span
              style="box-sizing:border-box">permission to publish your
              code that uses these interfaces. </span><span
              style="box-sizing:border-box"> </span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">Q: What can I publish?</span></strong><span
              style="box-sizing:border-box"> </span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><span
              style="box-sizing:border-box">A: You </span><span
              style="box-sizing:border-box">can</span><span
              style="box-sizing:border-box"> </span><span
              style="box-sizing:border-box">openly </span><span
              style="box-sizing:border-box">publish your own code</span><span
              style="box-sizing:border-box"> written for Tofino</span><span
              style="box-sizing:border-box">, e.g. by putting it on </span><span
              style="box-sizing:border-box">Github</span><span
              style="box-sizing:border-box">, attaching to a
              publication, etc. </span><span
              style="box-sizing:border-box"> </span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">Q: What </span></strong><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">can I not </span></strong><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">publish?</span></strong><span
              style="box-sizing:border-box"> </span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><span
              style="box-sizing:border-box">A: You are </span><strong
              style="box-sizing:border-box"><em
                style="box-sizing:border-box"><span
                  style="box-sizing:border-box">not</span></em></strong><span
              style="box-sizing:border-box"> allowed to publish Intel
              software, e.g. the P4Studio SDE </span><span
              style="box-sizing:border-box">in source </span><span
              style="box-sizing:border-box">or </span><span
              style="box-sizing:border-box">in binary. You are </span><strong
              style="box-sizing:border-box"><em
                style="box-sizing:border-box"><span
                  style="box-sizing:border-box">not</span></em></strong><span
              style="box-sizing:border-box"> allowed </span><span
              style="box-sizing:border-box">to publish </span><span
              style="box-sizing:border-box">the </span><span
              style="box-sizing:border-box">artifacts produced by the P4
              compiler and other P4Studio tools</span><span
              style="box-sizing:border-box">, such as T</span><span
              style="box-sizing:border-box">ofino binary file (</span><span
              style="box-sizing:border-box">tofino.bin</span><span
              style="box-sizing:border-box">), </span><span
              style="box-sizing:border-box">context.json</span><span
              style="box-sizing:border-box"> and </span><span
              style="box-sizing:border-box">bfrt.json</span><span
              style="box-sizing:border-box">, </span><span
              style="box-sizing:border-box"> logs, visualizations, etc.</span><span
              style="box-sizing:border-box"> You are also </span><strong
              style="box-sizing:border-box"><em
                style="box-sizing:border-box"><span
                  style="box-sizing:border-box">not</span></em></strong><span
              style="box-sizing:border-box"> allowed (yet), to publish
              Intel’s own interface files: first, there is no practical
              need to do that and, </span><span
              style="box-sizing:border-box">secondly</span><span
              style="box-sizing:border-box">, Intel will publish them on
              its own, once they are ready for publication.</span><span
              style="box-sizing:border-box"> </span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><span
              style="box-sizing:border-box">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.</span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><span
              style="box-sizing:border-box">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.</span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">Q: </span></strong><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">What code does this cover?
                 </span></strong><span style="box-sizing:border-box"> </span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><span
              style="box-sizing:border-box">A: The only code that is </span><span
              style="box-sizing:border-box">covered by this permission
              is </span><span style="box-sizing:border-box">the code
              without any comments</span><span
              style="box-sizing:border-box"> – the pure code. </span><span
              style="box-sizing:border-box">That is the precise
              definition of what is allowed. </span><span
              style="box-sizing:border-box"> This does not mean that you
              cannot comment</span><span style="box-sizing:border-box"> </span><span
              style="box-sizing:border-box">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, </span><span
              style="box-sizing:border-box">in the </span><span
              style="box-sizing:border-box">sa</span><span
              style="box-sizing:border-box">me way you need to be
              careful not </span><span style="box-sizing:border-box">to </span><span
              style="box-sizing:border-box">disclose it when you write a
              paper or present at a </span><span
              style="box-sizing:border-box">conference</span><span
              style="box-sizing:border-box">.</span><span
              style="box-sizing:border-box"> </span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">Q: What </span></strong><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">are</span></strong><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box"> Intel’s </span></strong><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">longer-term</span></strong><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box"> plans and </span></strong><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">vision </span></strong><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">for being more </span></strong><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box">open</span></strong><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box"> about</span></strong><strong
              style="box-sizing:border-box"><span
                style="box-sizing:border-box"> Tofino?</span></strong><span
              style="box-sizing:border-box"> </span></p>
          <p
style="box-sizing:border-box;color:rgb(85,85,85);font-family:Helvetica,Arial,sans-serif;font-size:13px"><span
              style="box-sizing:border-box">A: </span><span
              style="box-sizing:border-box">Intel </span><span
              style="box-sizing:border-box">intends to </span><span
              style="box-sizing:border-box">open</span><span
              style="box-sizing:border-box"> Tofino in the long term.
              As </span><span style="box-sizing:border-box">it is</span><span
              style="box-sizing:border-box"> the case</span><span
              style="box-sizing:border-box"> with general purpose CPUs, </span><span
              style="box-sizing:border-box">w</span><span
              style="box-sizing:border-box">e believe that people should
              be able to </span><span style="box-sizing:border-box">learn
              about the architecture and interfaces, teach about them
              and write the code openly. This announcement is just the
              first step. Stay tuned!</span><span
              style="box-sizing:border-box"> </span></p>
        </div>
        <div>
          <div>
            <div dir="ltr" data-smartmail="gmail_signature">
              <div dir="ltr">
                <div>
                  <div dir="ltr">
                    <div>
                      <div><b
                          style="font-size:large;color:rgb(136,136,136)">Vladimir
                          Gurevich</b><br>
                      </div>
                      <div style="color:rgb(136,136,136)"><b
                          style="font-size:large">Barefoot Networks</b></div>
                      <div style="color:rgb(136,136,136)"><b>Director,
                          FASTER Program</b></div>
                      <div style="color:rgb(136,136,136)"><font size="2">Email: <a
                            href="mailto:vgurevich@barefootnetworks.com"
                            style="color:rgb(17,85,204)" target="_blank"
                            moz-do-not-send="true">vgurevich@barefootnetworks.com</a></font></div>
                      <div style="color:rgb(136,136,136)"><font size="2">Phone:
                          (408) 833-4505</font><br>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
          <br>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>