-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PSA Things not in PSA required to fully implement the INT draft #510
Comments
@jafingerhut Thanks for the great summary. These all make sense. |
PSA defines that the unit is allowed to vary from one PSA implementation to another. It does recommend that the value available in the P4 program advance at least as fast as once per microsecond, that it advance at a constant rate over time, and that it take at least one hour before it wraps around back to 0 (as any finite-sized representation must, eventually). I had started proposing PSA functions for converting this to other units like microseconds or nanoseconds, but that did not go very far, I didn't push for it very hard, and it is not part of the current PSA draft. One difficulty there is how expensive it can be for fast hardware implementations to do multiplication or division of large fixed-point numbers, which timestamps are. Unless you have a clock that just happens to run at 1.000 GHz, getting nanoseconds requires multiplication or division of some kind. It is possible, just maybe not easy to get people to agree on something that they want in the PSA, at least in v1.0. |
I see. Some architecture may have a h/w logic to compensate the frequency difference btw the oscillator and the timestamp clock, some may not, hence the P4 level solution was sought out. It makes sense to start PSA v1.0 from the most common building blocks and assumptions. |
@jafingerhut
They all provide unique information. For example, queueing latency is not necessarily a direct linear function of enqueue-time occupancy, the queue could be blocked by congestion happening at higher priority queues. And the delta between egress and ingress timestamps may include variable delay added by parser(s). Making these metadata also available at ingress is a different story. |
I was wondering if there has been any progress on this issue? Specially regarding the metadata on queue occupancy. Thanks a lot! |
There has not been any progress to define capabilities in PSA that would enable these features of the INT specification. If I understand correctly, INT explicitly allows different switches to use different units for some of these things, e.g. different time units, different units for buffer occupancy (bytes, or '80-byte cells', or '157-byte cells'), with the units conveyed not in every packet, but some control-plane time mechanism. If that is true, then it significantly simplifies the job of specifying capabilities for this, because the units can be allowed to vary across different implementations. (Getting multiple implementers to agree on common units in the fast path for these things is probably still a bit early now). |
That's right. The Apps WG started a YANG model for each vendor to be able to specify implementation-specific metadata semantics. The model may evolve to specify each field format, in addition to semantics. |
Reference: Draft version of INT spec dated Oct 17, 2017 retrieved here: https://github.com/p4lang/p4-spec/blob/master/applications/telemetry/SPEC_Inband_Network_Telemetry.pdf
In particular, Section 3 "What to monitor"
First, the list of things that are supported by the latest PSA draft as of 2017-Dec-05:
Now the ones that PSA has limited or no capabilities to enable:
The text was updated successfully, but these errors were encountered: