... | ... | @@ -90,15 +90,15 @@ To set default client configuration files you need to define your switches like: |
|
|
}
|
|
|
```
|
|
|
|
|
|
You can find all the documentation about `p4app.json` in the [*P4-Utils* documentation](https://github.com/nsg-ethz/p4-utils#topology-description).
|
|
|
You can find all the documentation about `p4app.json` in the [**official *P4-Utils* documentation**](https://nsg-ethz.github.io/p4-utils/usage.html#json).
|
|
|
|
|
|
|
|
|
## *Thrift* API
|
|
|
|
|
|
You can find a wrapper of the *Simple Switch* Client as one of the features of *P4-Utils*. It is called [`SimpleSwitchThriftAPI`](https://github.com/nsg-ethz/p4-utils/blob/master/p4utils/utils/sswitch_thrift_API.py) and basically allows the user to perform the same opertations but, instead of using text sent to the client, one can use the power of a scripting language such as Python. You can read more about this API [here](https://github.com/nsg-ethz/p4-utils#control-plane-api).
|
|
|
You can find a wrapper of the *Simple Switch* Client as one of the features of *P4-Utils*. It is called [`SimpleSwitchThriftAPI`](https://nsg-ethz.github.io/p4-utils/p4utils.utils.sswitch_thrift_API.html#p4utils.utils.sswitch_thrift_API.SimpleSwitchThriftAPI) and basically allows the user to perform the same opertations but, instead of using text sent to the client, one can use the power of a scripting language such as Python. You can read more about this API [here](https://nsg-ethz.github.io/p4-utils/advanced_usage.html#thrift-api).
|
|
|
|
|
|
## *P4Runtime* API
|
|
|
|
|
|
The P4 language consortium has recently defined [*P4Runtime*](https://p4.org/p4-spec/p4runtime/v1.3.0/P4Runtime-Spec.html), a control plane specification for controlling the data plane elements of a device defined or described by a P4 program. This new protocol aims at being the standard for P4 devices so that even control plane programs can be target-independent.
|
|
|
|
|
|
In response to this need, in the last update of *P4-Utils* a P4Runtime API was introduced. It is called [`SimpleSwitchP4RuntimeAPI`](https://github.com/nsg-ethz/p4-utils/blob/master/p4utils/utils/sswitch_p4runtime_API.py) and was designed to provide methods similar, in functioning and naming, to those of `SimpleSwitchThriftAPI` so that migrating from one to another is easier. Indeed, the only difference among the APIs is the protocol and it is as transparent as possible for the user. |
|
|
In response to this need, in the last update of *P4-Utils* a P4Runtime API was introduced. It is called [`SimpleSwitchP4RuntimeAPI`](https://nsg-ethz.github.io/p4-utils/p4utils.utils.sswitch_p4runtime_API.html#p4utils.utils.sswitch_p4runtime_API.SimpleSwitchP4RuntimeAPI) and was designed to provide methods similar, in functioning and naming, to those of [`SimpleSwitchThriftAPI`](https://nsg-ethz.github.io/p4-utils/p4utils.utils.sswitch_thrift_API.html#p4utils.utils.sswitch_thrift_API.SimpleSwitchThriftAPI) so that migrating from one to another is easier. You can read more about this API [here](https://nsg-ethz.github.io/p4-utils/advanced_usage.html#p4runtime-api). |