Skip to content
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

Ability to query for agent capabilities #213

Open
chrispsommers opened this issue Mar 16, 2018 · 2 comments
Open

Ability to query for agent capabilities #213

chrispsommers opened this issue Mar 16, 2018 · 2 comments
Labels
post-v1.0 To be addressed after P4Runtime v1.0 release

Comments

@chrispsommers
Copy link
Collaborator

We need to be able to query the P4 Runtime for Agent capabilities, especially for those which are optional. For example, rollback-on-failure and dataplane-atomic are optional; a target may support some batches in an atomic way but not others.

A controller could query the agent and determine what it supports, and potentially exploit enhanced capabilities which optimize the runtime interface. Conversely, the controller can avoid trying unsupported operations which will fail. Finally, this provides a tighter "contract" which can be validated by test harnesses which read the capabilities and test against them.

Let's accumulate a strawman list of capabilities so we can brainstorm how to represent them. I'll seed the list with:

  • api_version - the P4 Runtime version the agent currently implements
  • agent_capabilities[] A list of capabilities, consists of optional features as well as other TBD attributes. Should be easy to extend.

Extra credit and headaches:

  • api_versions[] - a list of the versions of the P4 Runtime API which the agent can support. This allows independent evolution of controllers and agents yet provide for compatibility. A controller could support one or more versions, likewise the agent could support one or more versions. Negotiation could establish the best match after connecting. One or the other party might only support a single version and this would dictate one possible choice (or none if there wan't a match).
@chrispsommers
Copy link
Collaborator Author

At todays' WG meeting RECONCILE_AND_COMMIT was determined to be optional. Another candidate for capability query.

@antoninbas
Copy link
Member

Another thing that came-up at the 05/16/2018 WG meeting: the ability to query minor+patch version. See p4lang/PI#294.

@antoninbas antoninbas transferred this issue from p4lang/PI Jun 25, 2019
@antoninbas antoninbas added the post-v1.0 To be addressed after P4Runtime v1.0 release label Jun 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
post-v1.0 To be addressed after P4Runtime v1.0 release
Projects
None yet
Development

No branches or pull requests

2 participants