2 * SNMPv3 View-based Access Control Model
5 #ifndef _MIBGROUP_VACM_H
6 #define _MIBGROUP_VACM_H
8 #include <net-snmp/library/vacm.h>
10 config_require(util_funcs)
11 config_require(mibII/vacm_context)
12 config_add_mib(SNMP-VIEW-BASED-ACM-MIB)
13 config_add_mib(SNMP-COMMUNITY-MIB)
15 void init_vacm_vars(void);
16 void vacm_free_group(void);
17 void vacm_free_access(void);
18 void vacm_free_view(void);
19 void vacm_parse_group(const char *, char *);
20 void vacm_parse_access(const char *, char *);
21 void vacm_parse_view(const char *, char *);
22 void vacm_parse_simple(const char *, char *);
24 SNMPCallback vacm_in_view_callback;
25 SNMPCallback vacm_warn_if_not_configured;
27 int vacm_in_view(netsnmp_pdu *, oid *, size_t, int);
29 extern FindVarMethod var_vacm_sec2group;
30 extern FindVarMethod var_vacm_access;
31 extern FindVarMethod var_vacm_view;
33 WriteMethod write_vacmGroupName;
34 WriteMethod write_vacmSecurityToGroupStatus;
35 WriteMethod write_vacmSecurityToGroupStorageType;
37 WriteMethod write_vacmAccessContextMatch;
38 WriteMethod write_vacmAccessNotifyViewName;
39 WriteMethod write_vacmAccessReadViewName;
40 WriteMethod write_vacmAccessWriteViewName;
41 WriteMethod write_vacmAccessStatus;
42 WriteMethod write_vacmAccessStorageType;
44 WriteMethod write_vacmViewSpinLock;
45 WriteMethod write_vacmViewMask;
46 WriteMethod write_vacmViewStatus;
47 WriteMethod write_vacmViewStorageType;
48 WriteMethod write_vacmViewType;
51 oid *access_generate_OID(oid * prefix, size_t prefixLen,
52 struct vacm_accessEntry *aptr,
54 struct vacm_accessEntry *access_parse_accessEntry(oid * name,
56 int access_parse_oid(oid * oidIndex, size_t oidLen,
57 unsigned char **groupName,
58 size_t * groupNameLen,
59 unsigned char **contextPrefix,
60 size_t * contextPrefixLen,
61 int *model, int *level);
63 oid *sec2group_generate_OID(oid * prefix, size_t prefixLen,
64 struct vacm_groupEntry *geptr,
66 int sec2group_parse_oid(oid * oidIndex, size_t oidLen,
67 int *model, unsigned char **name,
69 struct vacm_groupEntry *sec2group_parse_groupEntry(oid * name,
72 oid *view_generate_OID(oid * prefix, size_t prefixLen,
73 struct vacm_viewEntry *vptr,
75 int view_parse_oid(oid * oidIndex, size_t oidLen,
76 unsigned char **viewName,
77 size_t * viewNameLen, oid ** subtree,
79 struct vacm_viewEntry *view_parse_viewEntry(oid * name,
84 #define OID_SNMPVACMMIB SNMP_OID_SNMPMODULES, 16
85 #define OID_VACMMIBOBJECTS OID_SNMPVACMMIB, 1
87 #define OID_VACMCONTEXTTABLE OID_VACMMIBOBJECTS, 1
88 #define OID_VACMCONTEXTENTRY OID_VACMCONTEXTTABLE, 1
90 #define OID_VACMGROUPTABLE OID_VACMMIBOBJECTS, 2
91 #define OID_VACMGROUPENTRY OID_VACMGROUPTABLE, 1
93 #define OID_VACMACCESSTABLE OID_VACMMIBOBJECTS, 4
94 #define OID_VACMACCESSENTRY OID_VACMACCESSTABLE, 1
96 #define OID_VACMMIBVIEWS OID_VACMMIBOBJECTS, 5
97 #define OID_VACMVIEWTABLE OID_VACMMIBVIEWS, 2
98 #define OID_VACMVIEWENTRY OID_VACMVIEWTABLE, 1
99 #define SEC2GROUP_MIB_LENGTH 11
100 #define ACCESS_MIB_LENGTH 11
101 #define VIEW_MIB_LENGTH 12
105 #endif /* _MIBGROUP_VACM_H */