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 */