Blame agent/mibgroup/snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_storage.h

Packit fcad23
/*
Packit fcad23
 * Note: this file was created to separate storage from MIB implementation
Packit fcad23
 *
Packit fcad23
 * Portions of this file are copyrighted by:
Packit fcad23
 * Copyright (c) 2016 VMware, Inc. All rights reserved.
Packit fcad23
 * Use is subject to license terms specified in the COPYING file
Packit fcad23
 * distributed with the Net-SNMP package.
Packit fcad23
 */
Packit fcad23
#ifndef SNMPNOTIFYFILTERTABLE_DATA_STORAGE_H
Packit fcad23
#define SNMPNOTIFYFILTERTABLE_DATA_STORAGE_H
Packit fcad23
Packit fcad23
#ifdef __cplusplus
Packit fcad23
extern          "C" {
Packit fcad23
#endif
Packit fcad23
Packit fcad23
Packit fcad23
#include <net-snmp/library/asn1.h>
Packit fcad23
Packit fcad23
#ifndef SNMPNOTIFYFILTERTYPE_ENUMS
Packit fcad23
#define SNMPNOTIFYFILTERTYPE_ENUMS
Packit fcad23
#define SNMPNOTIFYFILTERTYPE_INCLUDED  1
Packit fcad23
#define SNMPNOTIFYFILTERTYPE_EXCLUDED  2
Packit fcad23
#endif                          /* SNMPNOTIFYFILTERTYPE_ENUMS */
Packit fcad23
Packit fcad23
    /*
Packit fcad23
     * BE VERY CAREFUL TO TAKE INTO ACCOUNT THE MAXIMUM
Packit fcad23
     * POSSIBLE LENGHT FOR EVERY VARIABLE LENGTH INDEX!
Packit fcad23
     * Guessing 128 - col/entry(2)  - oid len(9)
Packit fcad23
     */
Packit fcad23
#define MAX_snmpNotifyFilterTable_IDX_LEN     117
Packit fcad23
Packit fcad23
    typedef struct snmpNotifyFilterTable_data_storage_s {
Packit fcad23
Packit fcad23
        /** this must be first for container compare to work */
Packit fcad23
        netsnmp_index   oid_idx;
Packit fcad23
        oid             oid_tmp[MAX_snmpNotifyFilterTable_IDX_LEN];
Packit fcad23
Packit fcad23
        /*
Packit fcad23
         * snmpNotifyFilterProfileName(1)
Packit fcad23
         * SnmpAdminString/ASN_OCTET_STR/u_char(u_char)//L/A/W/e/R/d/H
Packit fcad23
         */
Packit fcad23
        u_char          snmpNotifyFilterProfileName[32];
Packit fcad23
        size_t          snmpNotifyFilterProfileName_len;
Packit fcad23
Packit fcad23
        /*
Packit fcad23
         * snmpNotifyFilterSubtree(1)
Packit fcad23
         * OBJECTID/ASN_OBJECT_ID/oid(oid)//L/a/w/e/r/d/h
Packit fcad23
         */
Packit fcad23
        /** 128 - 1(other indexes) - oid length(11) = 115 */
Packit fcad23
        oid             snmpNotifyFilterSubtree[115];
Packit fcad23
        size_t          snmpNotifyFilterSubtree_len;
Packit fcad23
Packit fcad23
        /** END OF INDEXES */
Packit fcad23
Packit fcad23
        /*
Packit fcad23
         * snmpNotifyFilterMask(2)
Packit fcad23
         * OCTETSTR/ASN_OCTET_STR/char(u_char)//L/A/W/e/R/D/h
Packit fcad23
         */
Packit fcad23
        u_char          snmpNotifyFilterMask[16];
Packit fcad23
        size_t          snmpNotifyFilterMask_len;
Packit fcad23
Packit fcad23
        /*
Packit fcad23
         * snmpNotifyFilterType(3)
Packit fcad23
         * INTEGER/ASN_INTEGER/long(u_long)//l/A/W/E/r/D/h
Packit fcad23
         */
Packit fcad23
        u_long          snmpNotifyFilterType;
Packit fcad23
Packit fcad23
    } snmpNotifyFilter_data_storage;
Packit fcad23
Packit fcad23
    /*
Packit fcad23
     *********************************************************************
Packit fcad23
     * function declarations
Packit fcad23
     */
Packit fcad23
    void            init_snmpNotifyFilterTable_data_storage(void);
Packit fcad23
    void            shutdown_snmpNotifyFilterTable_data_storage(void);
Packit fcad23
Packit fcad23
    snmpNotifyFilter_data_storage*
Packit fcad23
    snmpNotifyFilter_storage_create(const u_char *snmpNotifyFilterProfileName,
Packit fcad23
                                    size_t snmpNotifyFilterProfileName_len,
Packit fcad23
                                    const oid *snmpNotifyFilterSubtree,
Packit fcad23
                                    size_t snmpNotifyFilterSubtree_len);
Packit fcad23
Packit fcad23
    void
Packit fcad23
    snmpNotifyFilter_storage_dispose(snmpNotifyFilter_data_storage *data);
Packit fcad23
Packit fcad23
    int
Packit fcad23
    snmpNotifyFilter_storage_insert(snmpNotifyFilter_data_storage *data);
Packit fcad23
Packit fcad23
    snmpNotifyFilter_data_storage *
Packit fcad23
    snmpNotifyFilter_storage_add(const u_char *profile, size_t profile_len,
Packit fcad23
                                 const oid *filterSubtree,
Packit fcad23
                                 size_t filterSubtree_len, u_char *filterMask,
Packit fcad23
                                 size_t filterMask_len, u_long filterType);
Packit fcad23
    int
Packit fcad23
    snmpNotifyFilter_storage_remove(snmpNotifyFilter_data_storage *data);
Packit fcad23
Packit fcad23
    struct vacm_viewEntry *
Packit fcad23
    snmpNotifyFilter_vacm_view_subtree(const char *profile);
Packit fcad23
Packit fcad23
#ifdef __cplusplus
Packit fcad23
}
Packit fcad23
#endif
Packit fcad23
#endif                          /* SNMPNOTIFYFILTERTABLE_DATA_STORAGE_H */
Packit fcad23
/**  @} */
Packit fcad23