48    enum BFRuntimeDataFieldIds : P4Id {
 
   54        BF_RT_DATA_START = TD_DATA_END,
 
   56        BF_RT_DATA_ACTION_MEMBER_ID,
 
   57        BF_RT_DATA_SELECTOR_GROUP_ID,
 
   58        BF_RT_DATA_ACTION_MEMBER_STATUS,
 
   59        BF_RT_DATA_MAX_GROUP_SIZE,
 
   60        BF_RT_DATA_HASH_VALUE,
 
   71    bool addMatchTypePriority(std::optional<cstring> &matchType) 
const override;
 
   73    bool addActionProfIds(
const p4configv1::Table &table,
 
   75    void addMatchActionData(
const p4configv1::Table &table, 
Util::JsonObject *tableJson,
 
   78    std::optional<bool> actProfHasSelector(P4Id actProfId) 
const override;
 
   80    static std::optional<ActionProf> fromDPDKActionProfile(
 
   81        const p4configv1::P4Info &p4info, 
const p4configv1::ExternInstance &externInstance) {
 
   82        const auto &pre = externInstance.preamble();
 
   83        p4configv1::ActionProfile actionProfile;
 
   84        if (!externInstance.info().UnpackTo(&actionProfile)) {
 
   85            ::error(ErrorType::ERR_NOT_FOUND,
 
   86                    "Extern instance %1% does not pack an ActionProfile object", pre.name());
 
   89        auto tableIds = collectTableIds(p4info, actionProfile.table_ids().begin(),
 
   90                                        actionProfile.table_ids().end());
 
   91        return ActionProf{pre.name(), pre.id(), actionProfile.size(), tableIds,
 
   92                          transformAnnotations(pre)};