DTNMA Reference Tools v2.0.0 - 9.gaff6489
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
Loading...
Searching...
No Matches
ietf_dtnma_agent.c File Reference

This is the compilation unit for the implementation of the ADM module "ietf-dtnma-agent" for the C-language reference DA. More...

#include "ietf_dtnma_agent.h"
#include "refda/agent.h"
#include "refda/register.h"
#include "refda/edd_prod_ctx.h"
#include "refda/ctrl_exec_ctx.h"
#include "refda/oper_eval_ctx.h"
#include <cace/amm/semtype.h>
#include <cace/ari/text.h>
#include <cace/util/logging.h>
#include <cace/util/defs.h>
#include "refda/eval.h"
#include "refda/exec.h"
#include "refda/reporting.h"
#include "cace/amm/numeric.h"
#include "cace/ari/text_util.h"
#include <timespec.h>
#include <math.h>
+ Include dependency graph for ietf_dtnma_agent.c:

Macros

#define NANOS_IN_SEC   1000000000
 
#define RET_PASS   0
 Return code that indicates normal completion.
 
#define RET_FAIL_UNDEFINED   1
 Return code that indicates the input resolves to an undefined result.
 
#define RET_FAIL_UNEXPECTED   2
 Return code that indicates the input resolves to an unexpected/abnormal state.
 

Functions

static void timespec_normalize (struct timespec *target)
 Ensure that the specified timespec is normalized.
 
static void refda_adm_ietf_dtnma_agent_ctrl_wait_finished (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_wait_cond_check (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_set_objpath (cace_ari_objpath_t *path, const cace_amm_obj_ns_t *ns, cace_ari_type_t obj_type, const cace_amm_obj_desc_t *obj)
 
static cace_ari_uvast numeric_add_uvast (cace_ari_uvast left, cace_ari_uvast right)
 
static cace_ari_vast numeric_add_vast (cace_ari_vast left, cace_ari_vast right)
 
static cace_ari_real64 numeric_add_real64 (cace_ari_real64 left, cace_ari_real64 right)
 
static cace_ari_uvast numeric_sub_uvast (cace_ari_uvast left, cace_ari_uvast right)
 
static cace_ari_vast numeric_sub_vast (cace_ari_vast left, cace_ari_vast right)
 
static cace_ari_real64 numeric_sub_real64 (cace_ari_real64 left, cace_ari_real64 right)
 
static cace_ari_uvast numeric_mul_uvast (cace_ari_uvast left, cace_ari_uvast right)
 
static cace_ari_vast numeric_mul_vast (cace_ari_vast left, cace_ari_vast right)
 
static cace_ari_real64 numeric_mul_real64 (cace_ari_real64 left, cace_ari_real64 right)
 
static cace_ari_uvast numeric_div_uvast (cace_ari_uvast left, cace_ari_uvast right)
 
static cace_ari_vast numeric_div_vast (cace_ari_vast left, cace_ari_vast right)
 
static cace_ari_real64 numeric_div_real64 (cace_ari_real64 left, cace_ari_real64 right)
 
static cace_ari_uvast numeric_mod_uvast (cace_ari_uvast left, cace_ari_uvast right)
 
static cace_ari_vast numeric_mod_vast (cace_ari_vast left, cace_ari_vast right)
 
static cace_ari_real64 numeric_mod_real64 (cace_ari_real64 left, cace_ari_real64 right)
 
static cace_ari_uvast numeric_gt_uvast (cace_ari_uvast left, cace_ari_uvast right)
 
static cace_ari_vast numeric_gt_vast (cace_ari_vast left, cace_ari_vast right)
 
static cace_ari_real64 numeric_gt_real64 (cace_ari_real64 left, cace_ari_real64 right)
 
static cace_ari_uvast numeric_gte_uvast (cace_ari_uvast left, cace_ari_uvast right)
 
static cace_ari_vast numeric_gte_vast (cace_ari_vast left, cace_ari_vast right)
 
static cace_ari_real64 numeric_gte_real64 (cace_ari_real64 left, cace_ari_real64 right)
 
static cace_ari_uvast numeric_lt_uvast (cace_ari_uvast left, cace_ari_uvast right)
 
static cace_ari_vast numeric_lt_vast (cace_ari_vast left, cace_ari_vast right)
 
static cace_ari_real64 numeric_lt_real64 (cace_ari_real64 left, cace_ari_real64 right)
 
static cace_ari_uvast numeric_lte_uvast (cace_ari_uvast left, cace_ari_uvast right)
 
static cace_ari_vast numeric_lte_vast (cace_ari_vast left, cace_ari_vast right)
 
static cace_ari_real64 numeric_lte_real64 (cace_ari_real64 left, cace_ari_real64 right)
 
static cace_ari_uvast bitwise_and_uvast (cace_ari_uvast left, cace_ari_uvast right)
 
static cace_ari_vast bitwise_and_vast (cace_ari_vast left, cace_ari_vast right)
 
static cace_ari_uvast bitwise_or_uvast (cace_ari_uvast left, cace_ari_uvast right)
 
static cace_ari_vast bitwise_or_vast (cace_ari_vast left, cace_ari_vast right)
 
static cace_ari_uvast bitwise_xor_uvast (cace_ari_uvast left, cace_ari_uvast right)
 
static cace_ari_vast bitwise_xor_vast (cace_ari_vast left, cace_ari_vast right)
 
static int timespec_numeric_add (cace_ari_t *result, const cace_ari_t *valueA, const cace_ari_t *valueB)
 
static int timespec_numeric_sub (cace_ari_t *result, const cace_ari_t *valueA, const cace_ari_t *valueB)
 
static int timespec_numeric_mul (cace_ari_t *result, const cace_ari_t *valueA, const cace_ari_t *valueB)
 
static int timespec_numeric_div (cace_ari_t *result, const cace_ari_t *valueA, const cace_ari_t *valueB)
 
static int timespec_numeric_mod (cace_ari_t *result, const cace_ari_t *left, const cace_ari_t *right)
 
static void refda_adm_ietf_dtnma_agent_edd_sw_vendor (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_sw_version (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_capability (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_num_msg_rx (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_num_msg_rx_failed (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_num_msg_tx (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_num_msg_tx_failed (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_num_exec_started (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_num_exec_succeeded (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_num_exec_failed (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_exec_running (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_odm_list (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_typedef_list (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_const_list (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_var_list (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_sbr_list (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_edd_tbr_list (refda_edd_prod_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_if_then_else (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_catch (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_wait_for (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_wait_until (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_wait_cond (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_inspect (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_report_on (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_ensure_odm (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_obsolete_odm (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_var_reset (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_var_store (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_ensure_const (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_obsolete_const (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_ensure_var (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_obsolete_var (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_ensure_sbr (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_ensure_tbr (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_ensure_rule_enabled (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_reset_rule_enabled (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_ctrl_obsolete_rule (refda_ctrl_exec_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_negate (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_add (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_sub (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_multiply (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_divide (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_remainder (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_bit_not (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_bit_and (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_bit_or (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_bit_xor (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_bool_not (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_bool_and (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_bool_or (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_bool_xor (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_compare_eq (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_compare_ne (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_compare_gt (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_compare_ge (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_compare_lt (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_compare_le (refda_oper_eval_ctx_t *ctx)
 
static void refda_adm_ietf_dtnma_agent_oper_tbl_filter (refda_oper_eval_ctx_t *ctx)
 
int refda_adm_ietf_dtnma_agent_init (refda_agent_t *agent)
 Initializer for the ADM module ietf-dtnma-agent.
 

Detailed Description

This is the compilation unit for the implementation of the ADM module "ietf-dtnma-agent" for the C-language reference DA.

This contains definitions of every AMM object instance in the ADM and file-local callback functions for all EDDs, CTRLs, and OPERs.

Function Documentation

◆ refda_adm_ietf_dtnma_agent_init()

int refda_adm_ietf_dtnma_agent_init ( refda_agent_t agent)

Initializer for the ADM module ietf-dtnma-agent.

Parameters
[in,out]agentThe agent to register this namespace and its objects within.
Returns
Zero upon success.

Register TYPEDEF objects

Register CONST objects

Register EDD objects

Register CTRL objects

Register OPER objects

References CACE_ARI_INIT_UNDEFINED, cace_ari_set_objref_path_intid(), CACE_ARI_TYPE_NAMESPACE, CACE_LOG_DEBUG, CACE_MALLOC, CHKERR1, cace_amm_semtype_union_t::choices, cace_amm_semtype_tblt_t::columns, cace_amm_formal_param_t::defval, refda_amm_oper_desc_t::evaluate, refda_amm_ctrl_desc_t::execute, cace_amm_semtype_ulist_t::item_type, cace_ari_ac_t::items, cace_amm_named_type_t::name, refda_agent_t::objs, refda_amm_oper_desc_t::operand_types, refda_amm_edd_desc_t::prod_type, refda_amm_edd_desc_t::produce, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_ADM, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CONST_HELLO, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_CATCH, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_ENSURE_CONST, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_ENSURE_ODM, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_ENSURE_RULE_ENABLED, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_ENSURE_SBR, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_ENSURE_TBR, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_ENSURE_VAR, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_IF_THEN_ELSE, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_INSPECT, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_OBSOLETE_CONST, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_OBSOLETE_ODM, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_OBSOLETE_RULE, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_OBSOLETE_VAR, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_REPORT_ON, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_RESET_RULE_ENABLED, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_VAR_RESET, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_VAR_STORE, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_WAIT_COND, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_WAIT_FOR, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_CTRL_WAIT_UNTIL, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_CAPABILITY, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_CONST_LIST, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_EXEC_RUNNING, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_NUM_EXEC_FAILED, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_NUM_EXEC_STARTED, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_NUM_EXEC_SUCCEEDED, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_NUM_MSG_RX, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_NUM_MSG_RX_FAILED, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_NUM_MSG_TX, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_NUM_MSG_TX_FAILED, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_ODM_LIST, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_SBR_LIST, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_SW_VENDOR, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_SW_VERSION, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_TBR_LIST, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_TYPEDEF_LIST, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_EDD_VAR_LIST, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_ADD, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_BIT_AND, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_BIT_NOT, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_BIT_OR, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_BIT_XOR, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_BOOL_AND, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_BOOL_NOT, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_BOOL_OR, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_BOOL_XOR, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_COMPARE_EQ, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_COMPARE_GE, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_COMPARE_GT, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_COMPARE_LE, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_COMPARE_LT, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_COMPARE_NE, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_DIVIDE, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_MULTIPLY, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_NEGATE, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_REMAINDER, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_SUB, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_OPER_TBL_FILTER, REFDA_ADM_IETF_DTNMA_AGENT_ENUM_OBJID_TYPEDEF_COLUMN_ID, refda_amm_ctrl_desc_t::res_type, refda_amm_oper_desc_t::res_type, cace_amm_named_type_t::typeobj, cace_amm_formal_param_t::typeobj, refda_amm_typedef_desc_t::typeobj, and refda_amm_const_desc_t::value.

◆ timespec_normalize()

static void timespec_normalize ( struct timespec *  target)
static

Ensure that the specified timespec is normalized.

Normalization consists of the absolute value of the timespec nano field being less than 1 billion.

Parameters
[in,out]targetThe timespec that is to be normalized.