7#ifndef CONTROL_PLANE_P4INFOAPI_H_
8#define CONTROL_PLANE_P4INFOAPI_H_
12#include "control-plane/p4RuntimeArchHandler.h"
13#include "control-plane/p4RuntimeSerializer.h"
14#include "lib/cstring.h"
16#pragma GCC diagnostic push
17#pragma GCC diagnostic ignored "-Wunused-parameter"
18#pragma GCC diagnostic ignored "-Wpedantic"
19#include "p4/config/v1/p4info.pb.h"
20#pragma GCC diagnostic pop
29auto findP4InfoObject(
const It &first,
const It &last, cstring controlPlaneName) ->
const
30 typename std::iterator_traits<It>::value_type * {
31 using T =
typename std::iterator_traits<It>::value_type;
32 auto desiredObject = std::find_if(
33 first, last, [&](
const T &
object) {
return object.preamble().name() == controlPlaneName; });
34 if (desiredObject == last) {
37 return &*desiredObject;
45auto findP4InfoObject(
const It &first,
const It &last, p4rt_id_t
id) ->
const
46 typename std::iterator_traits<It>::value_type * {
47 using T =
typename std::iterator_traits<It>::value_type;
49 std::find_if(first, last, [&](
const T &
object) {
return object.preamble().id() == id; });
50 if (desiredObject == last) {
53 return &*desiredObject;
63const p4::config::v1::Table *
findP4RuntimeTable(
const p4::config::v1::P4Info &p4Info, p4rt_id_t
id);
88 const p4::config::v1::P4Info &p4Info,
cstring controlPlaneName);
93 const p4::config::v1::P4Info &p4Info, p4rt_id_t
id);
108 const p4::config::v1::P4Info &p4Info,
cstring controlPlaneName);
113 const p4::config::v1::P4Info &p4Info, p4rt_id_t
id);
122const p4::config::v1::Meter *
findP4RuntimeMeter(
const p4::config::v1::P4Info &p4Info, p4rt_id_t
id);
137 const p4::config::v1::P4Info &p4Info,
cstring controlPlaneName);
142 const p4::config::v1::P4Info &p4Info, p4rt_id_t
id);
186std::optional<p4rt_id_t>
getP4RuntimeId(
const p4::config::v1::P4Info &p4Info,
187 const P4RuntimeSymbolType &type,
cstring controlPlaneName);
TODO(antonin): High level goals of the generator go here!!
Definition dpdk/control-plane/bfruntime_arch_handler.h:44
const p4::config::v1::ValueSet * findP4RuntimeValueSet(const p4::config::v1::P4Info &p4Info, cstring controlPlaneName)
Definition p4infoApi.cpp:123
const p4::config::v1::Digest * findP4RuntimeDigest(const p4::config::v1::P4Info &p4Info, cstring controlPlaneName)
Definition p4infoApi.cpp:144
const p4::config::v1::Extern * findP4RuntimeExtern(const p4::config::v1::P4Info &p4Info, cstring controlPlaneName)
Definition p4infoApi.cpp:154
const p4::config::v1::Meter * findP4RuntimeMeter(const p4::config::v1::P4Info &p4Info, cstring controlPlaneName)
Definition p4infoApi.cpp:90
const p4::config::v1::DirectMeter * findP4RuntimeDirectMeter(const p4::config::v1::P4Info &p4Info, cstring controlPlaneName)
Definition p4infoApi.cpp:100
const p4::config::v1::ActionProfile * findP4RuntimeActionProfile(const p4::config::v1::P4Info &p4Info, cstring controlPlaneName)
Definition p4infoApi.cpp:58
const p4::config::v1::Register * findP4RuntimeRegister(const p4::config::v1::P4Info &p4Info, cstring controlPlaneName)
Definition p4infoApi.cpp:134
const p4::config::v1::Table * findP4RuntimeTable(const p4::config::v1::P4Info &p4Info, cstring controlPlaneName)
Definition p4infoApi.cpp:18
const p4::config::v1::Counter * findP4RuntimeCounter(const p4::config::v1::P4Info &p4Info, cstring controlPlaneName)
Definition p4infoApi.cpp:69
const p4::config::v1::MatchField * findP4RuntimeMatchField(const p4::config::v1::Table &p4Table, cstring controlPlaneName)
Definition p4infoApi.cpp:28
const p4::config::v1::Action * findP4RuntimeAction(const p4::config::v1::P4Info &p4Info, cstring controlPlaneName)
Definition p4infoApi.cpp:48
const p4::config::v1::DirectCounter * findP4RuntimeDirectCounter(const p4::config::v1::P4Info &p4Info, cstring controlPlaneName)
Definition p4infoApi.cpp:79
const p4::config::v1::ControllerPacketMetadata * findP4RuntimeControllerPacketMetadata(const p4::config::v1::P4Info &p4Info, cstring controlPlaneName)
Definition p4infoApi.cpp:111
std::optional< p4rt_id_t > getP4RuntimeId(const p4::config::v1::P4Info &p4Info, const P4RuntimeSymbolType &type, cstring controlPlaneName)
Definition p4infoApi.cpp:174