Revert "Revert "and added files""
[bcm963xx.git] / userapps / opensource / net-snmp / agent / mibgroup / mibII / vacm_vars.h
1 /*
2  * SNMPv3 View-based Access Control Model
3  */
4
5 #ifndef _MIBGROUP_VACM_H
6 #define _MIBGROUP_VACM_H
7
8 #include <net-snmp/library/vacm.h>
9
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)
14
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 *);
23
24      SNMPCallback    vacm_in_view_callback;
25      SNMPCallback    vacm_warn_if_not_configured;
26
27      int             vacm_in_view(netsnmp_pdu *, oid *, size_t, int);
28
29      extern FindVarMethod var_vacm_sec2group;
30      extern FindVarMethod var_vacm_access;
31      extern FindVarMethod var_vacm_view;
32
33      WriteMethod     write_vacmGroupName;
34      WriteMethod     write_vacmSecurityToGroupStatus;
35      WriteMethod     write_vacmSecurityToGroupStorageType;
36
37      WriteMethod     write_vacmAccessContextMatch;
38      WriteMethod     write_vacmAccessNotifyViewName;
39      WriteMethod     write_vacmAccessReadViewName;
40      WriteMethod     write_vacmAccessWriteViewName;
41      WriteMethod     write_vacmAccessStatus;
42      WriteMethod     write_vacmAccessStorageType;
43
44      WriteMethod     write_vacmViewSpinLock;
45      WriteMethod     write_vacmViewMask;
46      WriteMethod     write_vacmViewStatus;
47      WriteMethod     write_vacmViewStorageType;
48      WriteMethod     write_vacmViewType;
49
50
51      oid            *access_generate_OID(oid * prefix, size_t prefixLen,
52                                          struct vacm_accessEntry *aptr,
53                                          size_t * length);
54      struct vacm_accessEntry *access_parse_accessEntry(oid * name,
55                                                        size_t name_len);
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);
62
63      oid            *sec2group_generate_OID(oid * prefix, size_t prefixLen,
64                                             struct vacm_groupEntry *geptr,
65                                             size_t * length);
66      int             sec2group_parse_oid(oid * oidIndex, size_t oidLen,
67                                          int *model, unsigned char **name,
68                                          size_t * nameLen);
69      struct vacm_groupEntry *sec2group_parse_groupEntry(oid * name,
70                                                         size_t name_len);
71
72      oid            *view_generate_OID(oid * prefix, size_t prefixLen,
73                                        struct vacm_viewEntry *vptr,
74                                        size_t * length);
75      int             view_parse_oid(oid * oidIndex, size_t oidLen,
76                                     unsigned char **viewName,
77                                     size_t * viewNameLen, oid ** subtree,
78                                     size_t * subtreeLen);
79      struct vacm_viewEntry *view_parse_viewEntry(oid * name,
80                                                  size_t name_len);
81
82
83
84 #define OID_SNMPVACMMIB         SNMP_OID_SNMPMODULES, 16
85 #define OID_VACMMIBOBJECTS      OID_SNMPVACMMIB, 1
86
87 #define OID_VACMCONTEXTTABLE    OID_VACMMIBOBJECTS, 1
88 #define OID_VACMCONTEXTENTRY    OID_VACMCONTEXTTABLE, 1
89
90 #define OID_VACMGROUPTABLE      OID_VACMMIBOBJECTS, 2
91 #define OID_VACMGROUPENTRY      OID_VACMGROUPTABLE, 1
92
93 #define OID_VACMACCESSTABLE     OID_VACMMIBOBJECTS, 4
94 #define OID_VACMACCESSENTRY     OID_VACMACCESSTABLE, 1
95
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
102 #define CM_EXACT 1
103 #define CM_PREFIX 2
104
105 #endif                          /* _MIBGROUP_VACM_H */