DTNMA Reference Tools v2.1.0 - 13.gc5c0bac
Delay-Tolerant Networking Management Architecture (DTNMA) Tool Suite
Loading...
Searching...
No Matches
exec_proc.c File Reference
#include "exec_proc.h"
#include "exec.h"
#include "ctrl_exec_ctx.h"
#include "valprod.h"
#include "reporting.h"
#include "amm/ctrl.h"
#include <cace/ari/text.h>
#include <cace/ari/text_util.h>
#include <cace/amm/lookup.h>
#include <cace/util/logging.h>
#include <cace/util/defs.h>
#include <timespec.h>
+ Include dependency graph for exec_proc.c:

Functions

int refda_exec_proc_ctrl_finish (refda_exec_item_t *item)
 Finish the execution of an item referencing a single CTRL.
 
int refda_exec_proc_ctrl_start (refda_exec_seq_t *seq)
 Execute a single CTRL, possibly deferring its finish.
 
int refda_exec_proc_run (refda_exec_seq_t *seq)
 Implement the running procedure from Section TBD of [ietf-dtn-amm-01].
 
static int refda_exec_proc_exp_item (refda_runctx_t *runctx, refda_exec_seq_t *seq, size_t *seq_ix, const cace_ari_t *target, cace_ari_array_t invalid_items)
 Expand any ARI target (reference or literal).
 
static int refda_exec_proc_exp_ref (refda_runctx_t *runctx, refda_exec_seq_t *seq, size_t *seq_ix, const cace_ari_t *target, cace_ari_array_t invalid_items)
 Expand an arbitrary object reference.
 
static int refda_exec_proc_exp_mac (refda_runctx_t *runctx, refda_exec_seq_t *seq, size_t *seq_ix, const cace_ari_t *ari, cace_ari_array_t invalid_items)
 Expand a MAC-typed literal value.
 
int refda_exec_proc_expand (refda_exec_seq_t *seq, size_t *seq_ix, const cace_ari_t *target)
 Implement the expansion procedure from Section TBD of [ietf-dtn-amm-01].
 

Function Documentation

◆ refda_exec_proc_ctrl_finish()

◆ refda_exec_proc_ctrl_start()

◆ refda_exec_proc_exp_item()

static int refda_exec_proc_exp_item ( refda_runctx_t runctx,
refda_exec_seq_t seq,
size_t *  seq_ix,
const cace_ari_t target,
cace_ari_array_t  invalid_items 
)
static

◆ refda_exec_proc_exp_mac()

static int refda_exec_proc_exp_mac ( refda_runctx_t runctx,
refda_exec_seq_t seq,
size_t *  seq_ix,
const cace_ari_t ari,
cace_ari_array_t  invalid_items 
)
static

Expand a MAC-typed literal value.

References cace_ari_cget_ac(), CHKERR1, and refda_exec_proc_exp_item().

Referenced by refda_exec_proc_exp_item().

◆ refda_exec_proc_exp_ref()

◆ refda_exec_proc_expand()

int refda_exec_proc_expand ( refda_exec_seq_t seq,
size_t *  seq_ix,
const cace_ari_t target 
)

Implement the expansion procedure from Section TBD of [ietf-dtn-amm-01].

Parameters
[in,out]seqA freshly initialized sequence to expand into with its runctx already set.
[in,out]seq_ixA non-null pointer to the sequence index to expand starting at. Will be set to one-past the expanded sequence.
[in]targetThe target to dereference, if necessary, and expand.
Returns
Zero if successful.

References refda_runctx_t::agent, CACE_ARI_INIT_UNDEFINED, cace_ari_is_null(), CACE_ARI_TEXT_ENC_OPTS_DEFAULT, cace_ari_text_encode(), CACE_LOG_DEBUG, CACE_LOG_ERR, cace_log_is_enabled_for(), CHKERR1, refda_runctx_t::mgr_ident, refda_runctx_t::nonce, refda_exec_seq_t::pid, REFDA_AGENT_ERR_LOCK_FAILED, REFDA_AGENT_LOCK, REFDA_AGENT_UNLOCK, refda_exec_proc_exp_item(), refda_reporting_ctrl(), result, and refda_exec_seq_t::runctx.

Referenced by check_execute(), refda_exec_add_target(), refda_exec_next(), refda_exec_rule_action(), and test_util_agent_check_execute().

◆ refda_exec_proc_run()

int refda_exec_proc_run ( refda_exec_seq_t seq)

Implement the running procedure from Section TBD of [ietf-dtn-amm-01].

This executes items in a sequence until the first deferred completion.

Parameters
[in,out]seqThe sequence which will be popped as items are executed.
Returns
Zero if this sequence executed without error (so far).

References refda_exec_item_t::execution_stage, refda_exec_seq_t::items, refda_exec_proc_ctrl_start(), and REFDA_EXEC_WAITING.

Referenced by check_execute(), check_execute(), refda_exec_waiting(), and test_util_agent_check_execute().