P4C
The P4 Compiler
Loading...
Searching...
No Matches
P4::ControlPlaneAPI::Standard Namespace Reference

Declarations specific to standard architectures (v1model & PSA). More...

Classes

struct  ActionProfile
 
struct  ActionProfileTraits
 
struct  ActionProfileTraits< Arch::PNA >
 
struct  ActionProfileTraits< Arch::PSA >
 
struct  ActionProfileTraits< Arch::V1MODEL >
 
struct  ActionProfileTraits< Arch::V1MODEL2020 >
 
struct  ActionSelector
 
struct  ActionSelectorTraits
 
struct  ActionSelectorTraits< Arch::PNA >
 
struct  ActionSelectorTraits< Arch::PSA >
 
struct  ActionSelectorTraits< Arch::V1MODEL >
 
struct  ActionSelectorTraits< Arch::V1MODEL2020 >
 
class  BFRuntimeArchHandler
 
class  BFRuntimeArchHandlerPNA
 
class  BFRuntimeArchHandlerPSA
 
struct  CounterExtern
 
struct  Digest
 
struct  MeterExtern
 
class  P4RuntimeArchHandlerCommon
 
class  P4RuntimeArchHandlerPNA
 
class  P4RuntimeArchHandlerPSA
 
class  P4RuntimeArchHandlerPSAPNA
 
class  P4RuntimeArchHandlerUBPF
 
class  P4RuntimeArchHandlerV1Model
 
struct  PNAArchHandlerBuilder
 The architecture handler builder implementation for PNA. More...
 
struct  PNAArchHandlerBuilderForDPDK
 The architecture handler builder implementation for PNA. More...
 
struct  PSAArchHandlerBuilder
 The architecture handler builder implementation for PSA. More...
 
struct  PSAArchHandlerBuilderForDPDK
 The architecture handler builder implementation for PSA. More...
 
struct  Register
 
struct  RegisterTraits
 Traits for the register extern, must be specialized for v1model and PSA. More...
 
struct  RegisterTraits< Arch::PNA >
 
struct  RegisterTraits< Arch::PSA >
 
struct  RegisterTraits< Arch::V1MODEL >
 
struct  RegisterTraits< Arch::V1MODEL2020 >
 
class  SymbolType
 
class  SymbolTypeDPDK
 Extends P4RuntimeSymbolType for the DPDK extern types. More...
 
struct  UBPFArchHandlerBuilder
 The architecture handler builder implementation for UBPF. More...
 
struct  V1ModelArchHandlerBuilder
 The architecture handler builder implementation for v1model. 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)
 

Detailed Description

Declarations specific to standard architectures (v1model & PSA).


Class Documentation

◆ P4::ControlPlaneAPI::Standard::ActionProfileTraits

struct P4::ControlPlaneAPI::Standard::ActionProfileTraits
template<Arch arch>
struct P4::ControlPlaneAPI::Standard::ActionProfileTraits< arch >

Traits for the action profile extern, must be specialized for v1model and PSA.

◆ P4::ControlPlaneAPI::Standard::ActionSelectorTraits

struct P4::ControlPlaneAPI::Standard::ActionSelectorTraits
template<Arch arch>
struct P4::ControlPlaneAPI::Standard::ActionSelectorTraits< arch >

Traits for the action selector extern, must be specialized for v1model and PSA. Inherits from ActionProfileTraits because of their similarities.

◆ P4::ControlPlaneAPI::Standard::CounterExtern

struct P4::ControlPlaneAPI::Standard::CounterExtern
template<Arch arch>
struct P4::ControlPlaneAPI::Standard::CounterExtern< arch >

◆ P4::ControlPlaneAPI::Standard::Digest

struct P4::ControlPlaneAPI::Standard::Digest
Class Members
const IAnnotated * annotations
const cstring name
const P4DataTypeSpec * typeSpec

◆ P4::ControlPlaneAPI::Standard::MeterExtern

struct P4::ControlPlaneAPI::Standard::MeterExtern
template<Arch arch>
struct P4::ControlPlaneAPI::Standard::MeterExtern< arch >

◆ P4::ControlPlaneAPI::Standard::RegisterTraits

struct P4::ControlPlaneAPI::Standard::RegisterTraits
template<Arch arch>
struct P4::ControlPlaneAPI::Standard::RegisterTraits< arch >

Traits for the register extern, must be specialized for v1model and PSA.

Enumeration Type Documentation

◆ Arch

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.