17#ifndef CONTROL_PLANE_P4RUNTIMESERIALIZER_H_
18#define CONTROL_PLANE_P4RUNTIMESERIALIZER_H_
20#pragma GCC diagnostic push
21#pragma GCC diagnostic ignored "-Wunused-parameter"
22#pragma GCC diagnostic ignored "-Wpedantic"
23#include <google/protobuf/util/json_util.h>
24#pragma GCC diagnostic pop
27#include <unordered_map>
29#include "lib/cstring.h"
30#include "p4RuntimeTypes.h"
67 const ::p4::config::v1::P4Info *
p4Info;
73 google::protobuf::util::JsonPrintOptions jsonPrintOptions;
75 P4RuntimeAPI(const ::p4::config::v1::P4Info *
p4Info, const ::p4::v1::WriteRequest *
entries)
77 jsonPrintOptions.add_whitespace =
true;
81 google::protobuf::util::JsonPrintOptions jsonPrintOptions)
90class P4RuntimeSerializer {
92 static P4RuntimeSerializer *get();
94 void registerArch(
const cstring archName,
138 P4RuntimeSerializer();
140 std::unordered_map<cstring, const ControlPlaneAPI::P4RuntimeArchHandlerBuilderIface *>
141 archHandlerBuilders{};
Definition frontends/common/options.h:30
static cstring resolveArch(const CompilerOptions &options)
Definition p4RuntimeSerializer.cpp:1662
void serializeP4InfoTo(std::ostream *destination, P4RuntimeFormat format) const
Definition p4RuntimeSerializer.cpp:1506
P4RuntimeAPI generateP4Runtime(const IR::P4Program *program, cstring arch)
Definition p4RuntimeSerializer.cpp:1677
void serializeP4RuntimeIfRequired(const IR::P4Program *program, const CompilerOptions &options)
Definition p4RuntimeSerializer.cpp:1583
P4RuntimeAPI generateP4Runtime(const IR::P4Program *program, cstring arch)
Definition p4RuntimeSerializer.cpp:1470
void serializeP4RuntimeIfRequired(const IR::P4Program *program, const CompilerOptions &options)
Definition p4RuntimeSerializer.cpp:1681
void serializeEntriesTo(std::ostream *destination, P4RuntimeFormat format) const
Definition p4RuntimeSerializer.cpp:1527
TODO(antonin): High level goals of the generator go here!!
Definition dpdk/control-plane/bfruntime_arch_handler.h:52
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24
P4RuntimeFormat
P4Runtime serialization formats.
Definition p4RuntimeTypes.h:23
Definition p4RuntimeArchHandler.h:204
Definition p4RuntimeSerializer.h:57
const ::p4::config::v1::P4Info * p4Info
Definition p4RuntimeSerializer.h:67
const ::p4::v1::WriteRequest * entries
Definition p4RuntimeSerializer.h:70