Skip to content

Commit 5f6d804

Browse files
authored
Merge pull request #698 from jafingerhut/psa-add-change-log
PSA Add "Revision History" appendix
2 parents 6e4e23c + 30ef4dd commit 5f6d804

File tree

1 file changed

+93
-0
lines changed

1 file changed

+93
-0
lines changed

p4-16/psa/PSA.mdk

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3494,3 +3494,96 @@ table.
34943494
In either case, an implementation might also support putting the `if`
34953495
statement inside of the action `set_output_port`, but this is not
34963496
required by PSA.
3497+
3498+
3499+
# Appendix: Revision History {#appendix-revision-history}
3500+
3501+
|-----|-----|-----|
3502+
| Release | Release Date | Summary of Changes |
3503+
+:---:+-----+-----+
3504+
| 1.0 | March 1, 2018 | Initial version. |
3505+
+-----+-----+-----+
3506+
| 1.1 | November 22, 2018 | Version 1.1. See changes below |
3507+
+-----+-----+-----+
3508+
3509+
## Changes made in version 1.1
3510+
3511+
3512+
### Numeric translation between P4Runtime API values and data plane values
3513+
3514+
There was a series of meetings after PSA v1.0 was released to refine
3515+
the details of the plan to do numeric translation of values with type
3516+
`PortId_t` (and `ClassOfService_t`, and optionally other types in the
3517+
future). PSA v1.1 reflects the latest design for how to accomplish
3518+
this. Changes can be found here:
3519+
3520+
+ Section 4.1 "PSA type definitions"
3521+
+ Section 4.4 "Data plane vs. control plane data representations"
3522+
3523+
3524+
### Add the ability for packet clone sessions to create multiple copies
3525+
3526+
In PSA v1.0, requesting to make a clone of a packet was restricted to
3527+
creating a single clone, sent to a single output port. In PSA v1.1
3528+
you may now configure a clone session with a set of
3529+
`(egress_port, instance)` pairs, similar to how a multicast group can
3530+
be configured. Changes can be found here:
3531+
3532+
+ Section 6.2. "Behavior of packets after ingress processing is complete"
3533+
+ Section 6.4.5 "Multicast and clone copies" (formerly called "Multicast copies")
3534+
+ Section 6.5 "Behavior of packets after egress processing is complete"
3535+
+ Section 6.8 "Packet Cloning"
3536+
3537+
3538+
### Add psa_idle_timeout table property
3539+
3540+
Adding this brings PSA v1.1 up to date with the support for this
3541+
feature in the P4Runtime API. Using this table property enables the
3542+
P4 developer to specify that a table must maintain some state of when
3543+
the last time each table entry was matched, and if an entry remains
3544+
unmatched for longer than a time configured by the controller, then a
3545+
notification message should be sent to the controller.
3546+
3547+
+ Section 7.2.1 "Table entry timeout notification"
3548+
3549+
3550+
### Add psa_empty_group_action table property
3551+
3552+
PSA v1.0 did not specify the behavior of a table with an
3553+
`ActionSelector` implementation, if a packet matched a table entry
3554+
that was configured with an empty action selector group.
3555+
3556+
PSA v1.1 recommends (but does not require) that implementations
3557+
support a new `psa_empty_group_action` table property, whose value is
3558+
an action that should be executed when this situation occurs.
3559+
3560+
+ Section 7.12 "Action Selector"
3561+
3562+
3563+
### Other changes
3564+
3565+
In PSA v1.0, the `Digest` extern was required to be supported in both
3566+
the `IngressDeparser` and `EgressDeparser` control blocks. It is now
3567+
no longer required to be supported in the `EgressDeparser` control
3568+
block.
3569+
3570+
+ Table 5 "Summary of controls that can instantiate and invoke externs"
3571+
3572+
3573+
### Changes to the psa.p4 include file
3574+
3575+
+ Updates for the latest plan on P4Runtime API numerical translation
3576+
of type `PortId_t` and `ClassOfService_t`.
3577+
+ Eliminate obsolete `ValueSet` extern, because the `value_set`
3578+
construct was added to the P4~16~ language specification in version
3579+
1.1.0.
3580+
+ Fix a few typos in example control plane APIs in comments.
3581+
+ Eliminate `PSA_SWITCH` `#define` macro with arguments, since the
3582+
P4~16~ language spec does not require that the P4~16~ preprocessor
3583+
support such macros.
3584+
3585+
3586+
### Changes to example PSA programs in the `p4-16/psa/examples` directory
3587+
3588+
+ Small changes required to bring them in harmony with the latest
3589+
details on P4Runtime API numerical translation of type `PortId_t`.

0 commit comments

Comments
 (0)