<div dir="ltr">Thanks Antonin for your reply.<div><br></div><div>Looking forward for extern support in bmv2 ... sounds really interesting!</div><div><br></div><div>Regards,</div><div>Aldo</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 7, 2017 at 10:36 AM, Antonin Bas <span dir="ltr"><<a href="mailto:antonin@barefootnetworks.com" target="_blank">antonin@barefootnetworks.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Aldo,<div><br></div><div>There is no native support for any encryption / decryption primitive in P4. However, the P4_16 version of the language (<a href="http://p4lang.github.io/p4-spec/docs/P4-16-v1.0.0-spec.html" target="_blank">http://p4lang.github.io/p4-sp<wbr>ec/docs/P4-16-v1.0.0-spec.html</a><wbr>) introduces the "extern" construct, which is a way to expose target-specific capabilities to a P4 programmer.</div><div>As an example, the architecture exposed to the P4 programmer could define the following extern:</div><div>extern T decrypt<T>(T data);</div><div><br></div><div>If you are not familiar with the P4_16 terminology (architecture, extern, etc...) I encourage you to read the spec.</div><div>A few important points:</div><div>- a P4 program is written for a given architecture. The architecture file is usually provided by the P4 hardware vendor, and the P4 programmer is not at liberty to modify it.</div><div>- for a given hardware & architecture, a P4 compiler backend needs to be available. The compiler takes your P4 programs written for the architecture and compile them for the hardware target. The compiler backend understands the extern types in your architecture (e.g. encrypt / decrypt) and can configure the hardware appropriately.</div><div>- the bmv2 software switch (<a href="https://github.com/p4lang/behavioral-model" target="_blank">https://github.com/p4lang/<wbr>behavioral-model</a>) is meant to be a convenient way to experiment with new architectures & new externs. The software switch is a special target as it enables us to have a single compiler backend that is able to support all architectures. However, at this stage, support is still somewhat incomplete.</div><div><br></div><div>Thanks,</div><div><br></div><div>Antonin</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Tue, Jun 6, 2017 at 11:05 PM, Aldo Febro <span dir="ltr"><<a href="mailto:af12abw@gmail.com" target="_blank">af12abw@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">Hi All,<div><br></div><div>I'm wondering whether it is possible to do a match against a TLS or DTLS packet? </div><div><br></div><div>Is there a way to do decryption as part of the pipeline i.e. decrypt -> match-action -> encrypt?<br></div><div><br></div><div>Thanks a lot!</div><span class="m_5001781092456018984HOEnZb"><font color="#888888"><div>Aldo</div><div><br></div><div><br></div></font></span></div>
<br></div></div>______________________________<wbr>_________________<br>
P4-dev mailing list<br>
<a href="mailto:P4-dev@lists.p4.org" target="_blank">P4-dev@lists.p4.org</a><br>
<a href="http://lists.p4.org/mailman/listinfo/p4-dev_lists.p4.org" rel="noreferrer" target="_blank">http://lists.p4.org/mailman/li<wbr>stinfo/p4-dev_lists.p4.org</a><span class="HOEnZb"><font color="#888888"><br></font></span></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div class="m_5001781092456018984gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Antonin<br></div></div>
</font></span></div>
</blockquote></div><br></div>