<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p><br>
</p>
<div class="moz-forward-container"><br>
<br>
-------- Forwarded Message --------
<table class="moz-email-headers-table" border="0" cellpadding="0"
cellspacing="0">
<tbody>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Subject:
</th>
<td>Re: [P4-design] P4_14 changes</td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">Date: </th>
<td>Thu, 3 Nov 2016 17:30:18 -0700</td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">From: </th>
<td>Changhoon Kim <a class="moz-txt-link-rfc2396E" href="mailto:chang@barefootnetworks.com"><chang@barefootnetworks.com></a></td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">To: </th>
<td><a class="moz-txt-link-abbreviated" href="mailto:p4-design@lists.p4.org">p4-design@lists.p4.org</a> <a class="moz-txt-link-rfc2396E" href="mailto:p4-design@lists.p4.org"><p4-design@lists.p4.org></a></td>
</tr>
<tr>
<th align="RIGHT" nowrap="nowrap" valign="BASELINE">CC: </th>
<td>Amin Vahdat <a class="moz-txt-link-rfc2396E" href="mailto:vahdat@google.com"><vahdat@google.com></a></td>
</tr>
</tbody>
</table>
<br>
<br>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div dir="ltr">All,
<div><br>
</div>
<div>Since we discussed this minor revision last week Monday, a
few members additionally expressed their support on this minor
revision of P4_14. Given that we had enough feedback and
support calls, I'll go ahead and replace the v1.0.2 version
with this one (attached). </div>
<div><br>
</div>
<div>I will also withdraw the v1.1 spec from the P4.org web page
and share the following news to set the stage for P4_16.</div>
<div><br>
</div>
<div><i><font face="arial, helvetica, sans-serif">"The P4
Language Design Working Group is working actively to
produce and publish a major revision of P4 (P4_16) soon.
This new public pre-release spec will offer the following
additional capabilities respective to the current
widely-adoped P4 (P4_14): </font></i></div>
<div><i><font face="arial, helvetica, sans-serif"><br>
</font></i></div>
<div><i><font face="arial, helvetica, sans-serif">- Support for
architectural heterogeneity (language-architecture
decoupling)</font></i></div>
<div><i><font face="arial, helvetica, sans-serif">- Support for
functional heterogeneity</font></i></div>
<div><i><font face="arial, helvetica, sans-serif">- Strong types</font></i></div>
<div><i><font face="arial, helvetica, sans-serif">- Improvement
on code re-usability</font></i></div>
<div><i><font face="arial, helvetica, sans-serif">"</font></i></div>
<div><i><font face="arial, helvetica, sans-serif"><br>
</font></i></div>
<div><i><font face="arial, helvetica, sans-serif"><br>
</font></i></div>
<div><br>
</div>
<div class="gmail_extra">
<div class="gmail_quote">On Sun, Oct 23, 2016 at 12:31 PM,
Changhoon Kim <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:chang@barefootnetworks.com" target="_blank">chang@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">All,
<div><br>
</div>
<div>Based on some feedback from a few p4-design
members, we made a few more minor updates to this
P4_14 v1.0.3 draft. Again, the main goal of all these
changes is making the reference P4 software switch
(BMv2) and the P4_14 spec as close as possible in
terms of primitive actions supported and their
details. This will help P4 users -- especially new P4
writers -- learn P4 programming more easily with few
surprises.</div>
<div><br>
</div>
<div>Section 15.3 (page 67 and 68) has the summary of
changes.</div>
<div><br>
</div>
<div>Let's also review this tomorrow and try to approve.</div>
<div><br>
</div>
<div>-- Chang</div>
<div><br>
</div>
<div><br>
</div>
<div>
<div class="gmail_extra">
<div class="gmail_quote"><span>On Wed, Sep 28, 2016
at 11:09 PM, Vladimir Gurevich <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:vag@barefootnetworks.com"
target="_blank">vag@barefootnetworks.com</a>></span>
wrote:<br>
</span>
<div>
<div class="m_-3467199225133497341h5">
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px
#ccc solid;padding-left:1ex">
<div dir="ltr">Hi Chang,
<div>
<ol>
<li>What is the status of other
arithmetic and logical primitives
beyond add()? They are available in
BMv2-simple_switch and some of them
are being used in switch.p4 for
example (bit_xor() to name one)?</li>
<li>What's the status of the
primitive modify_field_rng_uni<wbr>form(dst,
lower_boundary, upper_boundary) ? It
has been added to BMv2-simple_switch
a while ago, is used in switch.p4
and in any case people need some
sort of randomness<br>
</li>
<li>What's the decision on
execute_meter() and count() in
relation to direct meters and
counters? There were two schools of
thought: </li>
<ol>
<li>They are not needed and are
implicitly added to all actions
referenced in the table</li>
<li>There should be a special form
of these primitives
(count(counter_ref) and
execute_meter(meter_ref), i.e.
without index/destination field)
that can OPTIONALLY be added to
some or all actions, mentioned in
the table, therefore providing
more flexibility to the user and
reducing the amount of implicitly
generated code </li>
</ol>
</ol>
<div>Thanks,<br>
Vladimir</div>
</div>
<div><br>
</div>
<div><br>
</div>
</div>
<div
class="m_-3467199225133497341m_-8451994827727690453HOEnZb">
<div
class="m_-3467199225133497341m_-8451994827727690453h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Sep
27, 2016 at 11:11 PM, Changhoon Kim
<span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:chang@barefootnetworks.com"
target="_blank">chang@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">Team,
<div><br>
</div>
<div>We haven't had time to
discuss these changes at our
last meeting. Gordon, Peter,
and a few other told me
they're in favor of these
tidying-up changes for P4_14.
Please give me a holler in a
day or two if you oppose to
these. Otherwise, I'll publish
these changes via P4.org late
Friday.</div>
<div><br>
</div>
<div>Thanks.</div>
<div><br>
</div>
<div>-- Chang</div>
<div>
<div
class="m_-3467199225133497341m_-8451994827727690453m_-5873616731359524777h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On
Thu, Sep 22, 2016 at
10:03 AM, Peter Newman
(petenewm) <span
dir="ltr"><<a
moz-do-not-send="true"
href="mailto:petenewm@cisco.com" target="_blank">petenewm@cisco.com</a>></span>
wrote:<br>
<blockquote
class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px
#ccc
solid;padding-left:1ex">
<div
style="word-wrap:break-word">
Chang,
<div><br>
</div>
<div>Thanks for
tidying this up. I
had noticed that
the primitive
actions in
switch.p4 did not
exactly agree with
the spec. This
looks fine.</div>
<div><br>
</div>
<div>—Peter</div>
<div><br>
</div>
<div><br>
<div>
<div>
<div>
<div>On Sep
20, 2016, at
6:11 PM,
Changhoon Kim
<<a
moz-do-not-send="true"
href="mailto:chang@barefootnetworks.com" target="_blank">chang@barefootnetworks.com</a>>
wrote:</div>
<br>
</div>
</div>
<div>
<div>
<div>
<div dir="ltr">Hi
P4 designers,
<div><br>
</div>
<div>While
we're all
working busily
to review the
P4_16 proposal
and trying to
solidify it,
I'd like to
make a couple
proposals
related to a
completely
different
topic: P4_14.</div>
<div><br>
</div>
<div>1) The
currently
widely adopted
P4_14 spec is
the v1.0.2
version. All
the public
p4lang code
out there is
largely based
on this spec,
and I expect
that this
version will
continue to be
used for a
while, as
we'll phase
into P4_16.
Unfortunately
there are a
few minor
discrepancies
between the
v1.0.2 spec
and what's
actually
implemented in
p4lang/p4-hlir
and BMv2,
causing
confusion to
P4 beginners
and writers
right now. I
think it'll be
very helpful
for the P4
community if
we fix those
discrepancies
quickly. The
attached draft
-- which is
tentatively
versioned
v1.0.3, but
could be
officially
named P4_14 --
is an attempt
to fix those
issues. The
extent of
change is
minimal, and
the following
list
summarizes it.
There's a
revision
history in the
Appendix as
well. I
suggest we
review this
version
quickly and
publish it,
replacing the
v1.0.2 spec.</div>
<div>
<ul
style="font-size:12.8px">
<li
style="margin-left:15px"><span
style="font-size:12.8px">Page 29: removed register layout in register
declaration.</span><br>
</li>
<li
style="margin-left:15px"><span
style="font-size:12.8px">removed bracket-based register referencing
from </span><br>
<ul>
<span>
<li
style="margin-left:15px"><span
style="font-size:12.8px">the parameters of modify_field, add_to_field
and add
primitives</span></li>
</span>
</ul>
</li>
<li
style="margin-left:15px"><span
style="font-size:small">Page 27, Section 7 intro.</span></li>
<li
style="margin-left:15px"><span
style="font-size:small">Page 47, 9.1.2 Parameter Binding</span></li>
<li
style="margin-left:15px"><span
style="font-size:small">page 87, example code: Use register_read/write
primitives
instead.</span></li>
</ul>
<li
style="margin-left:15px"><span
style="font-size:12.8px">page 32: fixed execute_meter, <span
style="font-size:12.8px">modify_field_wi<wbr>th_hash_based_</span><span
style="font-size:12.8px">offset, </span></span><span
style="font-size:12.8px">added
register_read/write</span></li>
<li
style="margin-left:15px"><span
style="font-size:12.8px">pages 37: </span><span style="font-size:12.8px">fixed
the name,</span><span
style="font-size:12.8px"> description and parameter ordering of </span><span
style="font-size:12.8px">modify_field_with_hash_base<wbr>d_</span><span
style="font-size:12.8px">offset.</span></li>
<li
style="margin-left:15px"><span
style="font-size:12.8px">pages 40, 41: fixed execute_meter and </span><span
style="font-size:12.8px">added register_read/write primitives.</span></li>
<li
style="margin-left:15px">Changed
optional
parameters of
push, pop,
resubmit,
recirculate,
clone_*
primitives to
mandatory
parameters.
Revised
pop/push
descriptions
accordingly. </li>
</div>
<div>2) The
v1.1 spec is
currently in a
pre-release
review state.
It hasn't
gotten much
traction, and
we weren't
able to secure
the necessary
code
contributions
that fully
realize this
version
either.
Meanwhile
P4_16 offers
language
features
addressing all
the goals we
wanted to
achieve with
v1.1,
including
extern types,
stronger type,
expression
support, etc.,
and even more.
Given that
we'll publish
P4_16 soon, I
suggest we
withdraw the
v1.1 spec.
That way,
we'll avoid
proliferation
of spec
variations and
minimize
confusion. <br>
</div>
<div><br>
</div>
<div>Let me
know your
thought on
this. If
there's no
strong
objection,
I'll go ahead
and make these
changes by
next week.</div>
<div><br>
</div>
<div>Thanks.</div>
<div><br>
</div>
<div>-- Chang<br>
<div><br>
</div>
<div><br>
</div>
</div>
</div>
</div>
</div>
<span><p4_14_v1.0.3-draft.pdf></span>______<wbr>______________________________<wbr>___________<br>
P4-design
mailing list<br>
<a
moz-do-not-send="true"
href="mailto:P4-design@lists.p4.org" target="_blank">P4-design@lists.p4.org</a><br>
<a
moz-do-not-send="true"
href="http://lists.p4.org/mailman/listinfo/p4-design_lists.p4.org"
target="_blank">http://lists.p4.org/mailman/li<wbr>stinfo/p4-design_lists.p4.org</a><br>
<br>
</div>
</div>
<br>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
<br>
______________________________<wbr>_________________<br>
P4-design mailing list<br>
<a moz-do-not-send="true"
href="mailto:P4-design@lists.p4.org"
target="_blank">P4-design@lists.p4.org</a><br>
<a moz-do-not-send="true"
href="http://lists.p4.org/mailman/listinfo/p4-design_lists.p4.org"
rel="noreferrer" target="_blank">http://lists.p4.org/mailman/li<wbr>stinfo/p4-design_lists.p4.org</a><br>
<br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</div>
</div>
<br /><br />
<hr style='border:none; color:#909090; background-color:#B0B0B0; height: 1px; width: 99%;' />
<table style='border-collapse:collapse;border:none;'>
<tr>
<td style='border:none;padding:0px 15px 0px 8px'>
<a href="https://www.avast.com/antivirus">
<img border=0 src="http://static.avast.com/emails/avast-mail-stamp.png" alt="Avast logo" />
</a>
</td>
<td>
<p style='color:#3d4d5a; font-family:"Calibri","Verdana","Arial","Helvetica"; font-size:12pt;'>
Ezt az e-mailt az Avast víruskereső szoftver átvizsgálta.
<br><a href="https://www.avast.com/antivirus">www.avast.com</a>
</p>
</td>
</tr>
</table>
<br />
</body>
</html>