@@ -3494,3 +3494,96 @@ table.
3494
3494
In either case, an implementation might also support putting the `if`
3495
3495
statement inside of the action `set_output_port`, but this is not
3496
3496
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