12#ifndef _H_agt_acm_ietf
13#define _H_agt_acm_ietf
86#define y_ietf_netconf_acm_M_ietf_netconf_acm \
87 (const xmlChar *)"ietf-netconf-acm"
92#define y_ietf_netconf_acm_R_ietf_netconf_acm NULL
94#define y_ietf_netconf_acm_N_access_operations \
95 (const xmlChar *)"access-operations"
96#define y_ietf_netconf_acm_N_action (const xmlChar *)"action"
97#define y_ietf_netconf_acm_N_comment (const xmlChar *)"comment"
98#define y_ietf_netconf_acm_N_data_node (const xmlChar *)"data-node"
99#define y_ietf_netconf_acm_N_denied_data_writes \
100 (const xmlChar *)"denied-data-writes"
101#define y_ietf_netconf_acm_N_denied_notifications \
102 (const xmlChar *)"denied-notifications"
103#define y_ietf_netconf_acm_N_denied_operations \
104 (const xmlChar *)"denied-operations"
105#define y_ietf_netconf_acm_N_enable_external_groups \
106 (const xmlChar *)"enable-external-groups"
107#define y_ietf_netconf_acm_N_enable_nacm (const xmlChar *)"enable-nacm"
108#define y_ietf_netconf_acm_N_exec_default (const xmlChar *)"exec-default"
109#define y_ietf_netconf_acm_N_group (const xmlChar *)"group"
110#define y_ietf_netconf_acm_N_groups (const xmlChar *)"groups"
111#define y_ietf_netconf_acm_N_module_name (const xmlChar *)"module-name"
112#define y_ietf_netconf_acm_N_nacm (const xmlChar *)"nacm"
113#define y_ietf_netconf_acm_N_name (const xmlChar *)"name"
114#define y_ietf_netconf_acm_N_notification (const xmlChar *)"notification"
115#define y_ietf_netconf_acm_N_notification_name \
116 (const xmlChar *)"notification-name"
117#define y_ietf_netconf_acm_N_path (const xmlChar *)"path"
118#define y_ietf_netconf_acm_N_protocol_operation \
119 (const xmlChar *)"protocol-operation"
120#define y_ietf_netconf_acm_N_read_default (const xmlChar *)"read-default"
121#define y_ietf_netconf_acm_N_rpc_name (const xmlChar *)"rpc-name"
122#define y_ietf_netconf_acm_N_rule (const xmlChar *)"rule"
123#define y_ietf_netconf_acm_N_rule_list (const xmlChar *)"rule-list"
124#define y_ietf_netconf_acm_N_rule_type (const xmlChar *)"rule-type"
125#define y_ietf_netconf_acm_N_user_name (const xmlChar *)"user-name"
126#define y_ietf_netconf_acm_N_write_default (const xmlChar *)"write-default"
165 xmlChar **retgroups);
Multi-Protocol Network Management Server.
dlq provides general double-linked list and queue support:
boolean agt_acm_ietf_val_write_allowed(xml_msg_hdr_t *msg, const xmlChar *user, val_value_t *newval, val_value_t *curval, op_editop_t editop)
Check if the specified user is allowed to access a value node.
Definition: agt_acm_ietf.c:5626
status_t agt_acm_ietf_init2(void)
Phase 2 : Initialize the external data model configuration data structures.
Definition: agt_acm_ietf.c:5283
status_t agt_acm_ietf_init_msg_cache(ses_cb_t *scb, xml_msg_hdr_t *msg)
Malloc and initialize an agt_acm_cache_t struct and attach it to the incoming message.
Definition: agt_acm_ietf.c:5720
void agt_acm_ietf_register_group_cbfn(agt_acm_group_cbfn_t cbfn)
Register a get-external-groups callback function.
Definition: agt_acm_ietf.c:5881
void agt_acm_ietf_invalidate_session_cache(ses_cb_t *scb)
Invalidate an agt_acm_cache_t struct in a session control block.
Definition: agt_acm_ietf.c:5784
status_t(* agt_acm_group_cbfn_t)(const xmlChar *username, xmlChar **retgroups)
typedef for NACM External Groups callback function
Definition: agt_acm_ietf.h:164
void agt_acm_ietf_clear_session_cache(ses_cb_t *scb)
Clear an agt_acm_cache_t struct in a session control block.
Definition: agt_acm_ietf.c:5763
void agt_acm_ietf_clean_xpath_cache(void)
Clean any cached XPath results because the data rule results.
Definition: agt_acm_ietf.c:5829
status_t agt_acm_ietf_init1(void)
Phase 1: Load the external data module.
Definition: agt_acm_ietf.c:5164
boolean agt_acm_ietf_session_cache_valid(const ses_cb_t *scb)
Check if a session ACM cache is valid.
Definition: agt_acm_ietf.c:5808
void agt_acm_ietf_set_datarules(val_value_t *val, uint32 msgid)
Check the dataruleQ in the object and all child nodes For each rule found.
Definition: agt_acm_ietf.c:5898
boolean agt_acm_ietf_val_read_allowed(xml_msg_hdr_t *msg, const xmlChar *user, val_value_t *val)
Check if the specified user is allowed to read a value node.
Definition: agt_acm_ietf.c:5680
void agt_acm_ietf_cleanup(void)
Cleanup the external access control module.
Definition: agt_acm_ietf.c:5320
boolean agt_acm_ietf_notif_allowed(const xmlChar *user, const obj_template_t *notifobj)
Check if the specified user is allowed to receive a notification event.
Definition: agt_acm_ietf.c:5595
boolean agt_acm_ietf_rpc_allowed(xml_msg_hdr_t *msg, const xmlChar *user, const obj_template_t *rpcobj)
Check if the specified user is allowed to invoke an RPC.
Definition: agt_acm_ietf.c:5484
void agt_acm_ietf_clean_obj_datarule(ncx_module_t *mod)
Check all the rule list entry and its OBJ datarule cache and clean if the modules is getting unloaded...
Definition: agt_acm_ietf.c:5964
op_editop_t
NETCONF edit-config operation types.
Definition: op.h:122
status_t
global error return code
Definition: status_enum.h:210
NETCONF Session Common definitions module.
Global error messages for status code enumerations.
representation of one module or submodule during and after parsing
Definition: ncxtypes.h:1138
One YANG data-def-stmt.
Definition: obj.h:1229
Session Control Block.
Definition: ses.h:573
one value to match one type
Definition: val.h:912
Common Encoding Message Header No longer XML specific!! Used by JSON and CBOR parsing as well!...
Definition: xml_msg.h:404
Value Node Basic Support.
Schema and data model Xpath search support.