[P4-design] meeting tomorrow

Nate Foster jnfoster at cs.cornell.edu
Wed May 10 16:03:51 EDT 2017


Hi folks,

I just wanted to check in with the status (details below). We are on track
to finalize all technical changes today. All of the critical action items
from Monday's meeting have been executed. There are three open pull
requests on the spec and one open issue (which is addressed by one of the
pull requests) and everything appears to be converging.

Here's what happens next:

* I will quickly take the token for a global pass to streamline the
formatting (e.g., fitting into 80 columns so diffs are easier to grok).

* I plan to do one or more careful end-to-end passes tonight and tomorrow.
The goal here is merely to standardize presentation and improve the prose,
not to change anything technical. I encourage others to do the same.

* We will have a release candidate on Friday morning.

* We have a small window with Friday, the weekend, and Monday to address
any last-minute issues and typos.

* We will release Monday afternoon -- come to Barefoot at 4:30pm for a
small celebration!

-N


> Proposal (Nate): p4.org/spec is full history of ALL specs.  Has pointer to
> autogenerated, "live" (most recent) spec.
>

Discussed with Prem. Will execute on Friday or Monday.


> Proposal (Nate): Monday happy hour to celebrate P4_16 release at Barefoot
> at
> 4:30pm.
>

Done.


> -- [Andy] Scope of specification
> https://github.com/p4lang/p4-spec/issues/137
>
> AI: Andy to remove the two bulleted items.
>

Done.


> -- [Cole] Control literals
> Issue: https://github.com/p4lang/p4-spec/issues/129
> Pull request: https://github.com/p4lang/p4-spec/issues/171
>
>  - We've adopted Mihai's proposal:
>
>     c.apply(...)
>
>  - This is reflected in the specification and the implementation
>
> AI: Cole to add a paragraph to the spec
>

Done.


> -- [Cole] Naming
> Issue: https://github.com/p4lang/p4-spec/issues/138
> Pull request: https://github.com/p4lang/p4-spec/issues/175
>
>  - We've adopted a solution that:
>
>     o rejects programs that don't have name annotations for ambiguous keys.
>     o adds support for @globalname and @hidden annotations
>
>  - Implementation status: @globalname is not implemented yet.
>
> AI: Cole to file an issue with p4c for @globalname
> AI: Cole to follow up with Antonin/Seth on PI support
>

Done.


> -- [Nate] Action names
> Issue: https://github.com/p4lang/p4-spec/issues/76
>
> Action names cannot appear more than once, even with different params.
> Kind of
> restrictive, to be revisited in the future.
>
> AI: Nothing!  Leave as is.
>

Done (trivially).


> -- [Vladimir] Default action
> Issue: https://github.com/p4lang/p4-spec/issues/160
>
> AI: Nate to amend the spec to adopt language from P4_14, along the lines
> of "If
> a table does not match and no default action is specified, the table has no
> effect."
>
> AI: Andy to extend 12.2.1.5 to mention that default table semantics may be
> overridden by target-specific table attributes (properties).
>
    - This will allow the "default default" behavior to be overridden from
> "no
>       effect" to something target specific, as Vladimir requested.
>

Pull requests posted and converging.



> -- [Nate] Header unions
> Issue: https://github.com/p4lang/p4-spec/issues/139
> Pull request: https://github.com/p4lang/p4-spec/pull/166
>
> Details settled upon:
>
>  - Name is "header_union".
>  - Added "isValid()" top level method.
>  - Removed "overwriting_header" exception from parser pseudo code.
>
> Implementation status:
>
>  - Antonin landed changes in the backend.
>  - Need midend features, but these are unlikely to be added before the
> release.
>
> AI: Nate to open issue on p4c for u.isValid().
>
> AI: Nate to add another example higher up in the spec, to address Mihai's
> feedback (but leave the current example where it is).
>
> AI: Andy to review entry in type table.
>

Done.


>
> -- [Calin] Constant table priorities
> Issue: https://github.com/p4lang/p4-spec/issues/168
>
> Mixing priorities (some there, some not) makes code less readable.  Because
> these tables are all constant, it's not strictly necessary to be able to
> specify priorities.
>
> AI: Calin to remove @priority from the spec.
> AI: Andy to double-check what's in the spec.
>

Done.


> -- Structs/tuples as headers
> Issue: https://github.com/p4lang/p4-spec/issues/170
>
> Mihai issued a PR against the spec allowing assigning structs/tuples to
> headers
> in initialization.  This makes the header valid and assigns the values of
> the
> fields.
>
> AI: Nate to review PR.
>

Done.


> AI: Vladimir to open a "future enhancement" tagged issue with empty list
> initializers.
>

Not done, but not relevant to finalizing the spec.


> -- Casts
> Issue: https://github.com/p4lang/p4-spec/issues/177
>
> Do we allow headers/structs to be used in casts?
>
> No.  We will follow C and disallow casts of non base types.  This will
> additionally disallow Case 2 of Nate's list of examples:
>
> ```
> apply {
>   h_t h1 = p.h;                 // ok
>   h_t h2 = (h_t) p.h;           // disallowed
>   h_t h3 = { p.h.f };           // special case
>   h_t h4 = (h_t) { p.h.f };     // disallowed
> }
> ```
>
> AI: Mihai to restrict casts to base types (and open an issue on p4c).
>

Done.


> AI: Nate to look for opportunities to summarize "exceptional" design
> decisions,
> like:
>
>     - Assigning tuples to headers
>     - Applying control/parser types
>

To be done on polishing pass.


> Top-level instances

Issue: https://github.com/p4lang/p4-spec/issues/150
> Pull requests: https://github.com/p4lang/p4-spec/pull/197


Discussion converging.

-N
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.p4.org/pipermail/p4-design_lists.p4.org/attachments/20170510/a47285a5/attachment-0002.html>


More information about the P4-design mailing list