P4C
The P4 Compiler
|
Declarations specific to standard architectures (v1model & PSA). More...
Enumerations | |
enum class | ActionProfileType { INDIRECT , INDIRECT_WITH_SELECTOR } |
The types of action profiles available in v1model & PSA. | |
enum class | Arch { V1MODEL , PSA , PNA , V1MODEL2020 } |
Functions | |
cstring | prefix (cstring p, cstring str) |
Declarations specific to standard architectures (v1model & PSA).
struct P4::ControlPlaneAPI::Standard::ActionProfileTraits |
Traits for the action profile extern, must be specialized for v1model and PSA.
struct P4::ControlPlaneAPI::Standard::ActionSelectorTraits |
Traits for the action selector extern, must be specialized for v1model and PSA. Inherits from ActionProfileTraits because of their similarities.
struct P4::ControlPlaneAPI::Standard::CounterExtern |
struct P4::ControlPlaneAPI::Standard::Digest |
Class Members | ||
---|---|---|
const IAnnotated * | annotations | |
const cstring | name | |
const P4DataTypeSpec * | typeSpec |
struct P4::ControlPlaneAPI::Standard::MeterExtern |
struct P4::ControlPlaneAPI::Standard::RegisterTraits |
Traits for the register extern, must be specialized for v1model and PSA.
|
strong |
We re-use as much code as possible between PSA and v1model. The two architectures have some differences though, in particular regarding naming (of table properties, extern types, parameter names). We define some "traits" for each extern type, templatized by the architecture name (using the Arch enum class defined below), as a convenient way to access architecture-specific names in the unified code. V1MODEL2020 is v1model with a version >= 20200408.