├── .gitignore ├── src ├── snmp │ ├── .gitignore │ ├── generate │ ├── .indent.pro │ ├── ieee8021.h │ ├── struct.h │ ├── ds_agent.h │ ├── header_complex.h │ ├── makestubs │ ├── lldpV2TcMIB.h │ ├── ieee8021TcMib.h │ ├── util_funcs.h │ ├── ieee8021CfmV2Mib.h │ ├── mib2c.vartypes.conf │ ├── ptopoMIB.h │ ├── ieee8021FqtssMib.h │ ├── mib2c.conf │ ├── lldpXDot1EvbExtensions.h │ ├── ieee8021EcmpMib.h │ ├── ieee8021TpmrMib.h │ ├── ieee8021SpanningTreeMib.h │ ├── ieee8021SrpMib.h │ ├── ieee8021DdcfmMIB.h │ └── lldpV2Xdot3MIB.h ├── include │ └── sys │ │ └── beb_ioctl.h └── mibs │ └── IEEE8021-ECMP-MIB.mib └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .*.sw[nop] 2 | README.html 3 | *.log 4 | tmp*.txt 5 | -------------------------------------------------------------------------------- /src/snmp/.gitignore: -------------------------------------------------------------------------------- 1 | .*.sw[nop] 2 | *.lint 3 | *.tree 4 | *.mib 5 | *_openss7.[ch] 6 | *_openss7.[ch]~ 7 | *_master.[ch] 8 | *_master.[ch]~ 9 | -------------------------------------------------------------------------------- /src/snmp/generate: -------------------------------------------------------------------------------- 1 | #!/usr/bin/awk -f 2 | 3 | BEGIN { 4 | name = ""; 5 | root = ""; 6 | } 7 | /DEFINITIONS ::= BEGIN/ { 8 | name = $1; 9 | } 10 | /MODULE-IDENTITY/ { 11 | if ($NF ~ /MODULE-IDENTITY/) { 12 | root = $1; 13 | print "# root = " root; 14 | } 15 | } 16 | /^END/ { 17 | if (FILENAME != "-" && name != "" && root != "") { 18 | print ""; 19 | print "MIBPREFIXES += " root; 20 | print ""; 21 | print root ".mib: " FILENAME; 22 | print "\tsmidump -k " FILENAME ">$@ || :"; 23 | print ""; 24 | print root ".lint: " FILENAME; 25 | print "\tsmilint $(SMILINTIGNORES) -ms " FILENAME ">$@ 2>&1 || :"; 26 | print ""; 27 | print root ".tree: " FILENAME; 28 | print "\tsnmptranslate -Tp " name "::" root ">$@ || :"; 29 | print ""; 30 | print root "_simple.c " root "_simple.h: mib2c mib2c.conf " FILENAME; 31 | print "\t./mib2c -c ./mib2c.conf -f " root "_simple " name "::" root; 32 | print "\tindent -nhnl " root "_simple.[ch]"; 33 | print ""; 34 | print root "_storage.c " root "_storage.h: mib2c mib2c.conf " FILENAME; 35 | print "\t./mib2c -c ./mib2c.storage.conf -f " root "_storage " name "::" root; 36 | print "\tindent -nhnl " root "_storage.[ch]"; 37 | print ""; 38 | print root "_openss7.c " root "_openss7.h: mib2c mib2c.conf " FILENAME; 39 | print "\t./mib2c -c ./mib2c.openss7.conf -f " root "_openss7 " name "::" root; 40 | print "\tindent -nhnl " root "_openss7.[ch]"; 41 | print ""; 42 | } 43 | name = ""; 44 | root = ""; 45 | } 46 | -------------------------------------------------------------------------------- /src/snmp/.indent.pro: -------------------------------------------------------------------------------- 1 | -kr 2 | -nsc 3 | -psl 4 | -bad 5 | -nbbb 6 | -bap 7 | -sob 8 | -bbo 9 | -ncdb 10 | -l200 11 | -lc200 12 | -i8 13 | -ip8 14 | -cli0 15 | -bli0 16 | -cbi0 17 | -br 18 | -ce 19 | -fca 20 | -nfc1 21 | -cd41 22 | -di1 23 | -lps 24 | -ss 25 | -hnl 26 | -nbc 27 | -TSTR_DECLARATION 28 | -THEAD_DECLARATION 29 | -TSLIST_HEAD 30 | -TSLIST_HASH 31 | -TSLIST_COUNT 32 | -TSLIST_LINKAGE 33 | -TSLIST_COUNTERS 34 | -TSLIST_CONN 35 | -TSLIST_SMAP 36 | -Tqueue_t 37 | -Tmblk_t 38 | -Tdblk_t 39 | -Tfrtn_t 40 | -Tbcid_t 41 | -Ttoid_t 42 | -Tbufcall_id_t 43 | -Ttimeout_id_t 44 | -Tqpair_t 45 | -Tqband_t 46 | -Tcred_t 47 | -Tdev_t 48 | -TN_qos_sel_conn_mtp_t 49 | -Tuchar 50 | -Tcaddr_t 51 | -Tulong 52 | -Tushort 53 | -Tinline 54 | -Twait_queue_head_t 55 | -Tssize_t 56 | -Tsize_t 57 | -Tloff_t 58 | -Tlis_semaphore_t 59 | -Tstdata_t 60 | -Tlis_spin_lock_t 61 | -Tlis_rw_lock_t 62 | -Tlis_pci_dev_t 63 | -Tlis_atomic_t 64 | -Tpid_t 65 | -Tstreamtab_t 66 | -Tmajor_t 67 | -Tminor_t 68 | -Tdma_addr_t 69 | -Tdma64_addr_t 70 | -TmodID_t 71 | -Tmm_segment_t 72 | -Tspinlock_t 73 | -Trwlock_t 74 | -Tatomic_t 75 | -Ttimo_fcn_t 76 | -Tsyncq_t 77 | -Tkmem_cache_t 78 | -Tu_int8_t 79 | -Tu_int16_t 80 | -Tu_int32_t 81 | -Tuint 82 | -Tuint8_t 83 | -Tuint16_t 84 | -Tuint32_t 85 | -Tint 86 | -Tint8_t 87 | -Tint16_t 88 | -Tint32_t 89 | -Tu_char 90 | -Tuchar 91 | -Tulong 92 | -Tlong 93 | -Tklock_t 94 | -T__user 95 | -T__kernel 96 | -Tbool 97 | -Tintptr_t 98 | -Tqi_putp_t 99 | -Tqi_srvp_t 100 | -Tqi_qopen_t 101 | -Tqi_qclose_t 102 | -Tqi_qadmin_t 103 | -Tstreamscall 104 | -Tss_t 105 | -Tt_scalar_t 106 | -Tt_uscalar_t 107 | -Tdlpi_handle_t 108 | -Tdlpi_notifyid_t 109 | -Tdlpi_notifyfunc_t 110 | -Tdlpi_walkfunc_t 111 | -Tnp_long 112 | -Tnp_ulong 113 | -Tcd_long 114 | -Tcd_ulong 115 | -Tcd_ushort 116 | -Tdl_long 117 | -Tdl_ulong 118 | -Tdl_ushort 119 | -Tsl_long 120 | -Tsl_ulong 121 | -Tsl_ushort 122 | -Tmtp_long 123 | -Tmtp_ulong 124 | -Tmtp_ushort 125 | -TN_qos_sel_data_sccp_t 126 | -TN_qos_sel_conn_sccp_t 127 | -TN_qos_sel_info_sccp_t 128 | -TN_qos_range_info_sccp_t 129 | -TFILE 130 | -------------------------------------------------------------------------------- /src/snmp/ieee8021.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/ieee8021.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_IEEE8021_H__ 51 | #define __LOCAL_IEEE8021_H__ 52 | 53 | /* 54 | * This file was generated by mib2c and is intended for use as a mib module 55 | * for the ucd-snmp snmpd agent. 56 | */ 57 | 58 | extern const char sa_program[]; /* program name */ 59 | extern int sa_fclose; /* default close files between requests */ 60 | extern int sa_changed; /* indication to reread MIB configuration */ 61 | extern int sa_stats_refresh; /* indications that statistics, the mib or its tables need to be refreshed */ 62 | extern int sa_request; /* request number for per-request actions */ 63 | extern int sa_dump; /* default packet dump */ 64 | extern int sa_debug; /* default no debug */ 65 | 66 | #endif /* __LOCAL_IEEE8021_H__ */ 67 | -------------------------------------------------------------------------------- /src/snmp/struct.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/struct.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2001-2008 OpenSS7 Corporation 8 | Copyright (c) 1997-2001 Brian F. G. Bidulock 9 | 10 | All Rights Reserved. 11 | 12 | This program is free software; you can redistribute it and/or modify it under 13 | the terms of the GNU Affero General Public License as published by the Free 14 | Software Foundation; version 3 of the License. 15 | 16 | This program is distributed in the hope that it will be useful, but WITHOUT 17 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 19 | details. 20 | 21 | You should have received a copy of the GNU Affero General Public License 22 | along with this program. If not, see , or 23 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 24 | 02139, USA. 25 | 26 | ----------------------------------------------------------------------------- 27 | 28 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 29 | behalf of the U.S. Government ("Government"), the following provisions apply 30 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 31 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 32 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 33 | successor regulations) and the Government is acquiring only the license rights 34 | granted herein (the license rights customarily provided to non-Government 35 | users). If the Software is supplied to any unit or agency of the Government 36 | other than DoD, it is classified as "Restricted Computer Software" and the 37 | Government's rights in the Software are defined in paragraph 52.227-19 of the 38 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 39 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 40 | (or any successor regulations). 41 | 42 | ----------------------------------------------------------------------------- 43 | 44 | Commercial licensing and support of this software is available from OpenSS7 45 | Corporation at a fee. See http://www.openss7.com/ 46 | 47 | *****************************************************************************/ 48 | 49 | #ifndef __LOCAL_STRUCT_H__ 50 | #define __LOCAL_STRUCT_H__ 51 | 52 | #define STRMAX 1024 53 | 54 | #define SHPROC 1 55 | #define EXECPROC 2 56 | #define PASSTHRU 3 57 | #define PASSTHRU_PERSIST 4 58 | 59 | #define MIBMAX 30 60 | 61 | struct extensible { 62 | char name[STRMAX]; 63 | char command[STRMAX]; 64 | char fixcmd[STRMAX]; 65 | int type; 66 | int result; 67 | char output[STRMAX]; 68 | struct extensible *next; 69 | unsigned long miboid[MIBMAX]; 70 | size_t miblen; 71 | int pid; 72 | }; 73 | 74 | struct myproc { 75 | char name[STRMAX]; 76 | char fixcmd[STRMAX]; 77 | int min; 78 | int max; 79 | struct myproc *next; 80 | }; 81 | 82 | /* 83 | struct mibinfo 84 | { 85 | int numid; 86 | unsigned long mibid[10]; 87 | char *name; 88 | void (*handle) (); 89 | }; 90 | */ 91 | 92 | #endif /* __LOCAL_STRUCT_H__ */ 93 | -------------------------------------------------------------------------------- /src/snmp/ds_agent.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/ds_agent.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_DS_AGENT_H__ 51 | #define __LOCAL_DS_AGENT_H__ 52 | 53 | /* defines agent's default store registrations */ 54 | 55 | /* booleans */ 56 | #define DS_AGENT_VERBOSE 0 /* 1 if verbose output desired */ 57 | #define DS_AGENT_ROLE 1 /* 0 if master, 1 if client */ 58 | #define DS_AGENT_NO_ROOT_ACCESS 2 /* 1 if we can't get root access */ 59 | #define DS_AGENT_AGENTX_MASTER 3 /* 1 if AgentX desired */ 60 | 61 | /* strings */ 62 | #define DS_AGENT_PROGNAME 0 /* argv[0] */ 63 | #define DS_AGENT_X_SOCKET 1 /* AF_UNIX or ip:port socket addr */ 64 | #define DS_AGENT_PORTS 2 /* localhost:9161,tcp:localhost:9161... */ 65 | 66 | /* integers */ 67 | #define DS_AGENT_FLAGS 0 /* session.flags */ 68 | #define DS_AGENT_USERID 1 69 | #define DS_AGENT_GROUPID 2 70 | 71 | #endif /* __LOCAL_DS_AGENT_H__ */ 72 | -------------------------------------------------------------------------------- /src/snmp/header_complex.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/header_complex.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2001-2008 OpenSS7 Corporation 8 | Copyright (c) 1997-2001 Brian F. G. Bidulock 9 | 10 | All Rights Reserved. 11 | 12 | This program is free software; you can redistribute it and/or modify it under 13 | the terms of the GNU Affero General Public License as published by the Free 14 | Software Foundation; version 3 of the License. 15 | 16 | This program is distributed in the hope that it will be useful, but WITHOUT 17 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 18 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 19 | details. 20 | 21 | You should have received a copy of the GNU Affero General Public License 22 | along with this program. If not, see , or 23 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 24 | 02139, USA. 25 | 26 | ----------------------------------------------------------------------------- 27 | 28 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 29 | behalf of the U.S. Government ("Government"), the following provisions apply 30 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 31 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 32 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 33 | successor regulations) and the Government is acquiring only the license rights 34 | granted herein (the license rights customarily provided to non-Government 35 | users). If the Software is supplied to any unit or agency of the Government 36 | other than DoD, it is classified as "Restricted Computer Software" and the 37 | Government's rights in the Software are defined in paragraph 52.227-19 of the 38 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 39 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 40 | (or any successor regulations). 41 | 42 | ----------------------------------------------------------------------------- 43 | 44 | Commercial licensing and support of this software is available from OpenSS7 45 | Corporation at a fee. See http://www.openss7.com/ 46 | 47 | *****************************************************************************/ 48 | 49 | #ifndef __LOCAL_HEADER_COMPLEX_H__ 50 | #define __LOCAL_HEADER_COMPLEX_H__ 51 | 52 | /* 53 | * header_complex.h: More complex storage and data sorting for mib modules 54 | */ 55 | struct header_complex_index { 56 | oid *name; 57 | size_t namelen; 58 | void *data; 59 | struct header_complex_index *next; 60 | struct header_complex_index *prev; 61 | }; 62 | 63 | /* 64 | * Function pointer called by the header_comlpex functions when a client 65 | * pointer (void * to us) needs to be cleaned. 66 | */ 67 | 68 | typedef void (HeaderComplexCleaner) (void *); 69 | 70 | void *header_complex(struct header_complex_index *datalist, struct variable *vp, oid * name, 71 | size_t *length, int exact, size_t *var_len, WriteMethod ** write_method); 72 | 73 | int header_complex_generate_varoid(struct variable_list *var); 74 | 75 | int header_complex_parse_oid(oid * oidIndex, size_t oidLen, struct variable_list *data); 76 | 77 | void header_complex_generate_oid(oid * name, size_t *length, oid * prefix, size_t prefix_len, 78 | struct variable_list *data); 79 | 80 | void header_complex_free_all(struct header_complex_index *thestuff, HeaderComplexCleaner * cleaner); 81 | 82 | void header_complex_free_entry(struct header_complex_index *theentry, 83 | HeaderComplexCleaner * cleaner); 84 | 85 | void *header_complex_extract_entry(struct header_complex_index **thetop, 86 | struct header_complex_index *thespot); 87 | 88 | struct header_complex_index *header_complex_find_entry(struct header_complex_index *thestuff, 89 | void *entry); 90 | 91 | void *header_complex_get(struct header_complex_index *datalist, struct variable_list *index); 92 | 93 | struct header_complex_index *header_complex_add_data(struct header_complex_index **thedata, 94 | struct variable_list *var, void *data); 95 | 96 | #endif /* __LOCAL_HEADER_COMPLEX_H__ */ 97 | -------------------------------------------------------------------------------- /src/snmp/makestubs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # ============================================================================= 3 | # 4 | # @(#) src/snmp/makestubs 5 | # 6 | # ----------------------------------------------------------------------------- 7 | # 8 | # Copyright (c) 2008-2015 Monavacon Limited 9 | # Copyright (c) 2001-2008 OpenSS7 Corporation 10 | # Copyright (c) 1997-2001 Brian F. G. Bidulock 11 | # 12 | # All Rights Reserved. 13 | # 14 | # This program is free software; you can redistribute it and/or modify it under 15 | # the terms of the GNU Affero General Public License as published by the Free 16 | # Software Foundation; version 3 of the License. 17 | # 18 | # This program is distributed in the hope that it will be useful, but WITHOUT 19 | # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 20 | # FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 21 | # details. 22 | # 23 | # You should have received a copy of the GNU Affero General Public License along 24 | # with this program. If not, see , or write to 25 | # the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 26 | # 27 | # ----------------------------------------------------------------------------- 28 | # 29 | # U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | # behalf of the U.S. Government ("Government"), the following provisions apply 31 | # to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | # is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | # of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | # successor regulations) and the Government is acquiring only the license rights 35 | # granted herein (the license rights customarily provided to non-Government 36 | # users). If the Software is supplied to any unit or agency of the Government 37 | # other than DoD, it is classified as "Restricted Computer Software" and the 38 | # Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | # Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | # the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | # (or any successor regulations). 42 | # 43 | # ----------------------------------------------------------------------------- 44 | # 45 | # Commercial licensing and support of this software is available from OpenSS7 46 | # Corporation at a fee. See http://www.openss7.com/ 47 | # 48 | # ============================================================================= 49 | 50 | MIBDIRS=../mibs:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp 51 | MIBFILES= 52 | MIBS= 53 | 54 | export MIBS 55 | export MIBDIRS 56 | export MIBFILES 57 | 58 | all: lint dump tree openss7 master 59 | 60 | MIBPREFIXES = 61 | 62 | SMILINTIGNORES = -i type-unref -i namelength-32 -i opaque-smiv2 63 | 64 | -include makestubs.include 65 | 66 | dump: $(MIBPREFIXES:%=%.mib) 67 | 68 | lint: $(MIBPREFIXES:%=%.lint) 69 | 70 | tree check: $(MIBPREFIXES:%=%.tree) 71 | 72 | simple: $(MIBPREFIXES:%=%_simple.c) $(MIBPREFIXES:%=%_simple.h) 73 | 74 | storage: $(MIBPREFIXES:%=%_storage.c) $(MIBPREFIXES:%=%_storage.h) 75 | 76 | openss7: $(MIBPREFIXES:%=%_openss7.c) $(MIBPREFIXES:%=%_openss7.h) 77 | 78 | master: \ 79 | ieee8021_master.c ieee8021_master.h 80 | 81 | ieee8021_master.c ieee8021_master.h: mib2c mib2c.master.conf ../mibs/IEEE8021-TC-MIB.mib 82 | ./mib2c -c ./mib2c.master.conf -f ieee8021_master IEEE8021-TC-MIB::ieee8021TcMib 83 | indent -nhnl ieee8021_master.[ch] 84 | 85 | clean: 86 | @list='$(MIBPREFIXES)'; for p in $$list ; do \ 87 | echo "rm -fv $${p}_{openss7,simple,storage}.[ch]" ; \ 88 | rm -fv $${p}_openss7.[ch] ; \ 89 | rm -fv $${p}_simple.[ch] ; \ 90 | rm -fv $${p}_storage.[ch] ; \ 91 | echo "rm -fv $${p}_{openss7,simple,storage}.[ch]~" ; \ 92 | rm -fv $${p}_openss7.[ch]~ ; \ 93 | rm -fv $${p}_simple.[ch]~ ; \ 94 | rm -fv $${p}_storage.[ch]~ ; \ 95 | echo "rm -fv $${p}.{mib,lint,tree}" ; \ 96 | rm -fv $${p}.mib ; \ 97 | rm -fv $${p}.lint ; \ 98 | rm -fv $${p}.tree ; \ 99 | done 100 | rm -f ieee8021_master.[ch] 101 | rm -f ieee8021_master.[ch]~ 102 | 103 | .PHONY: all clean dump lint tree check openss7 simple storage 104 | -------------------------------------------------------------------------------- /src/snmp/lldpV2TcMIB.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/lldpv2tcmib.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_LLDPV2TCMIB_H__ 51 | #define __LOCAL_LLDPV2TCMIB_H__ 52 | 53 | /* 54 | * This file was generated by mib2c and is intended for use as a mib module 55 | * for the ucd-snmp snmpd agent. 56 | */ 57 | 58 | extern const char sa_program[]; 59 | extern int sa_fclose; /* default close files between requests */ 60 | extern int sa_changed; /* indication to reread MIB configuration */ 61 | extern int sa_stats_refresh; /* indications that statistics, the mib or its tables need to be refreshed */ 62 | extern int sa_request; /* request number for per-request actions */ 63 | 64 | /* our storage structure(s) */ 65 | struct lldpV2TcMIB_data { 66 | struct lldpV2TcMIB_data *lldpV2TcMIB_old; 67 | uint lldpV2TcMIB_rsvs; 68 | uint lldpV2TcMIB_tsts; 69 | uint lldpV2TcMIB_sets; 70 | uint lldpV2TcMIB_request; 71 | }; 72 | 73 | /* storage declarations */ 74 | extern struct lldpV2TcMIB_data *lldpV2TcMIBStorage; 75 | 76 | /* enum definitions from the covered mib sections */ 77 | 78 | /* notifications */ 79 | 80 | /* scalars accessible only for notify */ 81 | 82 | /* object id definitions */ 83 | 84 | /* function prototypes */ 85 | /* trap function prototypes */ 86 | 87 | /* variable function prototypes */ 88 | void init_lldpV2TcMIB(void); 89 | void deinit_lldpV2TcMIB(void); 90 | int term_lldpV2TcMIB(int majorID, int minorID, void *serverarg, void *clientarg); 91 | FindVarMethod var_lldpV2TcMIB; 92 | struct lldpV2TcMIB_data *lldpV2TcMIB_create(void); 93 | struct lldpV2TcMIB_data *lldpV2TcMIB_duplicate(struct lldpV2TcMIB_data *); 94 | int lldpV2TcMIB_destroy(struct lldpV2TcMIB_data **); 95 | int lldpV2TcMIB_add(struct lldpV2TcMIB_data *); 96 | void parse_lldpV2TcMIB(const char *, char *); 97 | SNMPCallback store_lldpV2TcMIB; 98 | void refresh_lldpV2TcMIB(int); 99 | 100 | #endif /* __LOCAL_LLDPV2TCMIB_H__ */ 101 | -------------------------------------------------------------------------------- /src/snmp/ieee8021TcMib.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/ieee8021tcmib.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_IEEE8021TCMIB_H__ 51 | #define __LOCAL_IEEE8021TCMIB_H__ 52 | 53 | /* 54 | * This file was generated by mib2c and is intended for use as a mib module 55 | * for the ucd-snmp snmpd agent. 56 | */ 57 | 58 | extern const char sa_program[]; 59 | extern int sa_fclose; /* default close files between requests */ 60 | extern int sa_changed; /* indication to reread MIB configuration */ 61 | extern int sa_stats_refresh; /* indications that statistics, the mib or its tables need to be refreshed */ 62 | extern int sa_request; /* request number for per-request actions */ 63 | 64 | /* our storage structure(s) */ 65 | struct ieee8021TcMib_data { 66 | struct ieee8021TcMib_data *ieee8021TcMib_old; 67 | uint ieee8021TcMib_rsvs; 68 | uint ieee8021TcMib_tsts; 69 | uint ieee8021TcMib_sets; 70 | uint ieee8021TcMib_request; 71 | }; 72 | 73 | /* storage declarations */ 74 | extern struct ieee8021TcMib_data *ieee8021TcMibStorage; 75 | 76 | /* enum definitions from the covered mib sections */ 77 | 78 | /* notifications */ 79 | 80 | /* scalars accessible only for notify */ 81 | 82 | /* object id definitions */ 83 | 84 | /* function prototypes */ 85 | /* trap function prototypes */ 86 | 87 | /* variable function prototypes */ 88 | void init_ieee8021TcMib(void); 89 | void deinit_ieee8021TcMib(void); 90 | int term_ieee8021TcMib(int majorID, int minorID, void *serverarg, void *clientarg); 91 | FindVarMethod var_ieee8021TcMib; 92 | struct ieee8021TcMib_data *ieee8021TcMib_create(void); 93 | struct ieee8021TcMib_data *ieee8021TcMib_duplicate(struct ieee8021TcMib_data *); 94 | int ieee8021TcMib_destroy(struct ieee8021TcMib_data **); 95 | int ieee8021TcMib_add(struct ieee8021TcMib_data *); 96 | void parse_ieee8021TcMib(const char *, char *); 97 | SNMPCallback store_ieee8021TcMib; 98 | void refresh_ieee8021TcMib(int); 99 | 100 | #endif /* __LOCAL_IEEE8021TCMIB_H__ */ 101 | -------------------------------------------------------------------------------- /src/snmp/util_funcs.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/util_funcs.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_UTIL_FUNCS_H__ 51 | #define __LOCAL_UTIL_FUNCS_H__ 52 | 53 | /* 54 | * util_funcs.h: utilitiy functions for extensible groups. 55 | */ 56 | 57 | //#ifdef IN_UCD_SNMP_SOURCE 58 | #include "struct.h" 59 | //#else 60 | //#include 61 | //#endif 62 | 63 | void Exit(int); 64 | int shell_command(struct extensible *); 65 | int exec_command(struct extensible *); 66 | int get_exec_output(struct extensible *); 67 | int get_exec_pipes(char *cmd, int *fdIn, int *fdOut, int *pid); 68 | WriteMethod clear_cache; 69 | RETSIGTYPE restart_doit(int); 70 | WriteMethod restart_hook; 71 | void print_mib_oid(oid *, size_t); 72 | void sprint_mib_oid(char *, oid *, size_t); 73 | int header_simple_table(struct variable *, oid *, size_t *, int, size_t *, 74 | WriteMethod ** write_method, int); 75 | int header_generic(struct variable *, oid *, size_t *, int, size_t *, WriteMethod **); 76 | int checkmib(struct variable *, oid *, size_t *, int, size_t *, WriteMethod ** write_method, int); 77 | char *find_field(char *, int); 78 | int parse_miboid(const char *, oid *); 79 | void string_append_int(char *, int); 80 | void wait_on_exec(struct extensible *); 81 | 82 | #define satosin(x) ((struct sockaddr_in *) &(x)) 83 | #define SOCKADDR(x) (satosin(x)->sin_addr.s_addr) 84 | #ifndef MIB_STATS_CACHE_TIMEOUT 85 | #define MIB_STATS_CACHE_TIMEOUT 5 86 | #endif 87 | 88 | typedef void *mib_table_t; 89 | typedef int (RELOAD) (mib_table_t); 90 | typedef int (COMPARE) (const void *, const void *); 91 | mib_table_t Initialise_Table(int, int, RELOAD, COMPARE); 92 | int Search_Table(mib_table_t, void *, int); 93 | int Add_Entry(mib_table_t, void *); 94 | void *Retrieve_Table_Data(mib_table_t, int *); 95 | 96 | #if 0 97 | int marker_uptime(marker_t pm); 98 | int marker_tticks(marker_t pm); 99 | int timeval_uptime(struct timeval *tv); 100 | int timeval_tticks(struct timeval *tv); 101 | #endif 102 | 103 | #endif /* __LOCAL_UTIL_FUNCS_H__ */ 104 | -------------------------------------------------------------------------------- /src/snmp/ieee8021CfmV2Mib.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/ieee8021cfmv2mib.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_IEEE8021CFMV2MIB_H__ 51 | #define __LOCAL_IEEE8021CFMV2MIB_H__ 52 | 53 | /* 54 | * This file was generated by mib2c and is intended for use as a mib module 55 | * for the ucd-snmp snmpd agent. 56 | */ 57 | 58 | extern const char sa_program[]; 59 | extern int sa_fclose; /* default close files between requests */ 60 | extern int sa_changed; /* indication to reread MIB configuration */ 61 | extern int sa_stats_refresh; /* indications that statistics, the mib or its tables need to be refreshed */ 62 | extern int sa_request; /* request number for per-request actions */ 63 | 64 | /* our storage structure(s) */ 65 | struct ieee8021CfmV2Mib_data { 66 | struct ieee8021CfmV2Mib_data *ieee8021CfmV2Mib_old; 67 | uint ieee8021CfmV2Mib_rsvs; 68 | uint ieee8021CfmV2Mib_tsts; 69 | uint ieee8021CfmV2Mib_sets; 70 | uint ieee8021CfmV2Mib_request; 71 | }; 72 | 73 | /* storage declarations */ 74 | extern struct ieee8021CfmV2Mib_data *ieee8021CfmV2MibStorage; 75 | 76 | /* enum definitions from the covered mib sections */ 77 | 78 | /* notifications */ 79 | 80 | /* scalars accessible only for notify */ 81 | 82 | /* object id definitions */ 83 | 84 | /* function prototypes */ 85 | /* trap function prototypes */ 86 | 87 | /* variable function prototypes */ 88 | void init_ieee8021CfmV2Mib(void); 89 | void deinit_ieee8021CfmV2Mib(void); 90 | int term_ieee8021CfmV2Mib(int majorID, int minorID, void *serverarg, void *clientarg); 91 | FindVarMethod var_ieee8021CfmV2Mib; 92 | struct ieee8021CfmV2Mib_data *ieee8021CfmV2Mib_create(void); 93 | struct ieee8021CfmV2Mib_data *ieee8021CfmV2Mib_duplicate(struct ieee8021CfmV2Mib_data *); 94 | int ieee8021CfmV2Mib_destroy(struct ieee8021CfmV2Mib_data **); 95 | int ieee8021CfmV2Mib_add(struct ieee8021CfmV2Mib_data *); 96 | void parse_ieee8021CfmV2Mib(const char *, char *); 97 | SNMPCallback store_ieee8021CfmV2Mib; 98 | void refresh_ieee8021CfmV2Mib(int); 99 | 100 | #endif /* __LOCAL_IEEE8021CFMV2MIB_H__ */ 101 | -------------------------------------------------------------------------------- /src/snmp/mib2c.vartypes.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Define types of data by mib type, and translate into needed C code. 3 | # 4 | # type: the label in question extracted from the mib. 5 | # asnType: the internal type #define we should use for this type. 6 | # variable: the name of the variable we're going to use. 7 | # variablePtr: How to get a pointer to the variable above (may be 8 | # the same, if variable is also a pointer) 9 | # cast: how to cast from a void * or a char * to a pointer of 10 | # your type. 11 | # writeInit: variable declaration 12 | # case: initialization of the variable to a bogus value. 13 | # 14 | # copy: copies the previous definition into the current one, 15 | # if most of it (or all of it) is the same. 16 | ############################################################################ 17 | type: OCTETSTR 18 | asnType: ASN_OCTET_STR 19 | vartypecheck: var_val_type != ASN_OCTET_STR 20 | variable: string 21 | variablePtr: string 22 | varlisttype: string 23 | cast: uint8_t * 24 | writeInit: static uint8_t string[SPRINT_MAX_LEN]; 25 | case: *string = 0; 26 | case: *var_len = strlen(string); 27 | case: return (u_char *) string; 28 | ############################################################################ 29 | type: INTEGER 30 | asnType: ASN_INTEGER 31 | vartypecheck: var_val_type != ASN_INTEGER 32 | variable: long_ret 33 | variablePtr: &long_ret 34 | varlisttype: integer 35 | cast: long * 36 | writeInit: static long *long_ret; 37 | case: long_ret = 0; 38 | case: return (u_char *) &long_ret; 39 | ############################################################################ 40 | type: INTEGER32 41 | copy: INTEGER 42 | ############################################################################ 43 | type: UNSIGNED32 44 | asnType: ASN_UNSIGNED 45 | vartypecheck: var_val_type != ASN_UNSIGNED 46 | variable: ulong_ret 47 | variablePtr: &ulong_ret 48 | varlisttype: integer 49 | cast: unsigned long * 50 | writeInit: static unsigned long *ulong_ret; 51 | case: ulong_ret = 0; 52 | case: return (u_char *) &ulong_ret; 53 | ############################################################################ 54 | type: OBJECTID 55 | asnType: ASN_OBJECT_ID 56 | vartypecheck: var_val_type != ASN_OBJECT_ID 57 | variable: objid 58 | variablePtr: objid 59 | varlisttype: objid 60 | cast: oid * 61 | writeInit: static oid *objid; 62 | case: objid[0] = 0; 63 | case: objid[1] = 0; 64 | case: *var_len = 2*sizeof(oid); 65 | case: return (u_char *) objid; 66 | ############################################################################ 67 | type: COUNTER64 68 | asnType: ASN_COUNTER64 69 | vartypecheck: var_val_type != ASN_COUNTER64 70 | variable: c64 71 | variablePtr: &c64 72 | varlisttype: counter64 73 | cast: struct counter64 * 74 | writeInit: struct counter64 *c64; 75 | case: c64.high = 0; 76 | case: c64.low = 0; 77 | case: *var_len = sizeof(c64); 78 | case: return (u_char *) &c64; 79 | ############################################################################ 80 | type: COUNTER 81 | copy: INTEGER 82 | delete: asnType 83 | asnType: ASN_COUNTER 84 | delete: vartypecheck 85 | vartypecheck: var_val_type != ASN_COUNTER 86 | ############################################################################ 87 | type: NETADDR 88 | copy: ASN_OBJECT_ID 89 | ############################################################################ 90 | type: UINTEGER 91 | copy: INTEGER 92 | delete: asnType 93 | asnType: ASN_UINTEGER 94 | delete: vartypecheck 95 | vartypecheck: (var_val_type != ASN_UINTEGER && var_val_type != ASN_INTEGER) 96 | ############################################################################ 97 | type: IPADDR 98 | copy: OCTETSTR 99 | delete: asnType 100 | asnType: ASN_IPADDRESS 101 | delete: vartypecheck 102 | vartypecheck: var_val_type != ASN_IPADDRESS 103 | ############################################################################ 104 | type: BITS 105 | copy: OCTETSTR 106 | #delete: asnType 107 | #asnType: ASN_BIT_STR 108 | delete: vartypecheck 109 | vartypecheck: (var_val_type != ASN_BIT_STR && var_val_type != ASN_OCTET_STR) 110 | #delete: varlencheck 111 | #varlencheck: var_val_len < 1 || var_val_len > SPRINT_MAX_LEN 112 | #delete: varptrcheck 113 | #varptrcheck: vp->val_len < 1 || vp->val_len > SPRINT_MAX_LEN 114 | ############################################################################ 115 | type: GAUGE 116 | copy: INTEGER 117 | delete: asnType 118 | asnType: ASN_GAUGE 119 | delete: vartypecheck 120 | vartypecheck: var_val_type != ASN_GAUGE 121 | ############################################################################ 122 | type: OPAQUE 123 | copy: OCTETSTR 124 | delete: asnType 125 | asnType: ASN_OPAQUE 126 | delete: vartypecheck 127 | vartypecheck: var_val_type != ASN_OPAQUE 128 | ############################################################################ 129 | type: TICKS 130 | copy: INTEGER 131 | delete: asnType 132 | asnType: ASN_TIMETICKS 133 | delete: vartypecheck 134 | vartypecheck: var_val_type != ASN_TIMETICKS 135 | -------------------------------------------------------------------------------- /src/snmp/ptopoMIB.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/ptopomib.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_PTOPOMIB_H__ 51 | #define __LOCAL_PTOPOMIB_H__ 52 | 53 | /* 54 | * This file was generated by mib2c and is intended for use as a mib module 55 | * for the ucd-snmp snmpd agent. 56 | */ 57 | 58 | extern const char sa_program[]; 59 | extern int sa_fclose; /* default close files between requests */ 60 | extern int sa_changed; /* indication to reread MIB configuration */ 61 | extern int sa_stats_refresh; /* indications that statistics, the mib or its tables need to be refreshed */ 62 | extern int sa_request; /* request number for per-request actions */ 63 | 64 | /* our storage structure(s) */ 65 | struct ptopoMIB_data { 66 | struct ptopoMIB_data *ptopoMIB_old; 67 | uint ptopoMIB_rsvs; 68 | uint ptopoMIB_tsts; 69 | uint ptopoMIB_sets; 70 | uint ptopoMIB_request; 71 | long ptopoLastChangeTime; /* ReadOnly */ 72 | long ptopoConnTabInserts; /* ReadOnly */ 73 | long ptopoConnTabDeletes; /* ReadOnly */ 74 | long ptopoConnTabDrops; /* ReadOnly */ 75 | long ptopoConnTabAgeouts; /* ReadOnly */ 76 | long ptopoConfigTrapInterval; /* ReadWrite */ 77 | long ptopoConfigMaxHoldTime; /* ReadWrite */ 78 | }; 79 | struct ptopoConnTable_data { 80 | struct ptopoConnTable_data *ptopoConnTable_old; 81 | uint ptopoConnTable_rsvs; 82 | uint ptopoConnTable_tsts; 83 | uint ptopoConnTable_sets; 84 | uint ptopoConnTable_request; 85 | uint ptopoConnTable_refs; 86 | uint ptopoConnTable_id; 87 | long ptopoConnTimeMark; /* NoAccess */ 88 | long ptopoConnLocalChassis; /* NoAccess */ 89 | long ptopoConnLocalPort; /* NoAccess */ 90 | long ptopoConnIndex; /* NoAccess */ 91 | long ptopoConnRemoteChassisType; /* Create */ 92 | uint8_t *ptopoConnRemoteChassis; /* Create */ 93 | size_t ptopoConnRemoteChassisLen; 94 | long ptopoConnRemotePortType; /* Create */ 95 | uint8_t *ptopoConnRemotePort; /* Create */ 96 | size_t ptopoConnRemotePortLen; 97 | oid *ptopoConnDiscAlgorithm; /* ReadOnly */ 98 | size_t ptopoConnDiscAlgorithmLen; 99 | long ptopoConnAgentNetAddrType; /* Create */ 100 | uint8_t *ptopoConnAgentNetAddr; /* Create */ 101 | size_t ptopoConnAgentNetAddrLen; 102 | long ptopoConnMultiMacSASeen; /* ReadOnly */ 103 | long ptopoConnMultiNetSASeen; /* ReadOnly */ 104 | long ptopoConnIsStatic; /* Create */ 105 | long ptopoConnLastVerifyTime; /* ReadOnly */ 106 | long ptopoConnRowStatus; /* Create */ 107 | }; 108 | 109 | /* storage declarations */ 110 | extern struct ptopoMIB_data *ptopoMIBStorage; 111 | extern struct header_complex_index *ptopoConnTableStorage; 112 | 113 | /* enum definitions from the covered mib sections */ 114 | 115 | #define PTOPOCONNREMOTECHASSISTYPE_CHASIDENTPHYSICALALIAS 1 116 | #define PTOPOCONNREMOTECHASSISTYPE_CHASIDIFALIAS 2 117 | #define PTOPOCONNREMOTECHASSISTYPE_CHASIDPORTENTPHYSICALALIAS 3 118 | #define PTOPOCONNREMOTECHASSISTYPE_CHASIDMACADDRESS 4 119 | #define PTOPOCONNREMOTECHASSISTYPE_CHASIDPTOPOGENADDR 5 120 | 121 | #define PTOPOCONNREMOTEPORTTYPE_PORTIDIFALIAS 1 122 | #define PTOPOCONNREMOTEPORTTYPE_PORTIDENTPHYSICALALIAS 2 123 | #define PTOPOCONNREMOTEPORTTYPE_PORTIDMACADDR 3 124 | #define PTOPOCONNREMOTEPORTTYPE_PORTIDPTOPOGENADDR 4 125 | 126 | #define PTOPOCONNAGENTNETADDRTYPE_OTHER 0 127 | #define PTOPOCONNAGENTNETADDRTYPE_IPV4 1 128 | #define PTOPOCONNAGENTNETADDRTYPE_IPV6 2 129 | #define PTOPOCONNAGENTNETADDRTYPE_NSAP 3 130 | #define PTOPOCONNAGENTNETADDRTYPE_HDLC 4 131 | #define PTOPOCONNAGENTNETADDRTYPE_BBN1822 5 132 | #define PTOPOCONNAGENTNETADDRTYPE_ALL802 6 133 | #define PTOPOCONNAGENTNETADDRTYPE_E163 7 134 | #define PTOPOCONNAGENTNETADDRTYPE_E164 8 135 | #define PTOPOCONNAGENTNETADDRTYPE_F69 9 136 | #define PTOPOCONNAGENTNETADDRTYPE_X121 10 137 | #define PTOPOCONNAGENTNETADDRTYPE_IPX 11 138 | #define PTOPOCONNAGENTNETADDRTYPE_APPLETALK 12 139 | #define PTOPOCONNAGENTNETADDRTYPE_DECNETIV 13 140 | #define PTOPOCONNAGENTNETADDRTYPE_BANYANVINES 14 141 | #define PTOPOCONNAGENTNETADDRTYPE_E164WITHNSAP 15 142 | #define PTOPOCONNAGENTNETADDRTYPE_DNS 16 143 | #define PTOPOCONNAGENTNETADDRTYPE_DISTINGUISHEDNAME 17 144 | #define PTOPOCONNAGENTNETADDRTYPE_ASNUMBER 18 145 | #define PTOPOCONNAGENTNETADDRTYPE_XTPOVERIPV4 19 146 | #define PTOPOCONNAGENTNETADDRTYPE_XTPOVERIPV6 20 147 | #define PTOPOCONNAGENTNETADDRTYPE_XTPNATIVEMODEXTP 21 148 | #define PTOPOCONNAGENTNETADDRTYPE_FIBRECHANNELWWPN 22 149 | #define PTOPOCONNAGENTNETADDRTYPE_FIBRECHANNELWWNN 23 150 | #define PTOPOCONNAGENTNETADDRTYPE_GWID 24 151 | #define PTOPOCONNAGENTNETADDRTYPE_AFI 25 152 | #define PTOPOCONNAGENTNETADDRTYPE_RESERVED 65535 153 | 154 | #define PTOPOCONNMULTIMACSASEEN_NOTUSED 1 155 | #define PTOPOCONNMULTIMACSASEEN_UNKNOWN 2 156 | #define PTOPOCONNMULTIMACSASEEN_ONEADDR 3 157 | #define PTOPOCONNMULTIMACSASEEN_MULTIADDR 4 158 | 159 | #define PTOPOCONNMULTINETSASEEN_NOTUSED 1 160 | #define PTOPOCONNMULTINETSASEEN_UNKNOWN 2 161 | #define PTOPOCONNMULTINETSASEEN_ONEADDR 3 162 | #define PTOPOCONNMULTINETSASEEN_MULTIADDR 4 163 | 164 | #define PTOPOCONNISSTATIC_TRUE 1 165 | #define PTOPOCONNISSTATIC_FALSE 2 166 | 167 | /* notifications */ 168 | extern oid ptopoConfigChange_oid[10]; 169 | 170 | /* scalars accessible only for notify */ 171 | 172 | /* object id definitions */ 173 | extern oid ptopoCompliance_oid[10]; 174 | extern oid ptopoDataGroup_oid[10]; 175 | extern oid ptopoGeneralGroup_oid[10]; 176 | extern oid ptopoConfigGroup_oid[10]; 177 | extern oid ptopoNotificationsGroup_oid[10]; 178 | 179 | /* function prototypes */ 180 | /* trap function prototypes */ 181 | extern void send_ptopoConfigChange_v2trap(struct variable_list *); 182 | 183 | /* variable function prototypes */ 184 | void init_ptopoMIB(void); 185 | void deinit_ptopoMIB(void); 186 | int term_ptopoMIB(int majorID, int minorID, void *serverarg, void *clientarg); 187 | FindVarMethod var_ptopoMIB; 188 | struct ptopoMIB_data *ptopoMIB_create(void); 189 | struct ptopoMIB_data *ptopoMIB_duplicate(struct ptopoMIB_data *); 190 | int ptopoMIB_destroy(struct ptopoMIB_data **); 191 | int ptopoMIB_add(struct ptopoMIB_data *); 192 | void parse_ptopoMIB(const char *, char *); 193 | SNMPCallback store_ptopoMIB; 194 | void refresh_ptopoMIB(int); 195 | FindVarMethod var_ptopoConnTable; 196 | struct ptopoConnTable_data *ptopoConnTable_create(void); 197 | struct ptopoConnTable_data *ptopoConnTable_duplicate(struct ptopoConnTable_data *); 198 | int ptopoConnTable_destroy(struct ptopoConnTable_data **); 199 | int ptopoConnTable_add(struct ptopoConnTable_data *); 200 | int ptopoConnTable_del(struct ptopoConnTable_data *); 201 | void parse_ptopoConnTable(const char *, char *); 202 | SNMPCallback store_ptopoConnTable; 203 | void refresh_ptopoConnTable(int); 204 | 205 | WriteMethod write_ptopoConnRemoteChassisType; 206 | WriteMethod write_ptopoConnRemoteChassis; 207 | WriteMethod write_ptopoConnRemotePortType; 208 | WriteMethod write_ptopoConnRemotePort; 209 | WriteMethod write_ptopoConnAgentNetAddrType; 210 | WriteMethod write_ptopoConnAgentNetAddr; 211 | WriteMethod write_ptopoConnIsStatic; 212 | WriteMethod write_ptopoConnRowStatus; 213 | WriteMethod write_ptopoConfigTrapInterval; 214 | WriteMethod write_ptopoConfigMaxHoldTime; 215 | #endif /* __LOCAL_PTOPOMIB_H__ */ 216 | -------------------------------------------------------------------------------- /src/snmp/ieee8021FqtssMib.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/ieee8021fqtssmib.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_IEEE8021FQTSSMIB_H__ 51 | #define __LOCAL_IEEE8021FQTSSMIB_H__ 52 | 53 | /* 54 | * This file was generated by mib2c and is intended for use as a mib module 55 | * for the ucd-snmp snmpd agent. 56 | */ 57 | 58 | extern const char sa_program[]; 59 | extern int sa_fclose; /* default close files between requests */ 60 | extern int sa_changed; /* indication to reread MIB configuration */ 61 | extern int sa_stats_refresh; /* indications that statistics, the mib or its tables need to be refreshed */ 62 | extern int sa_request; /* request number for per-request actions */ 63 | 64 | /* our storage structure(s) */ 65 | struct ieee8021FqtssMib_data { 66 | struct ieee8021FqtssMib_data *ieee8021FqtssMib_old; 67 | uint ieee8021FqtssMib_rsvs; 68 | uint ieee8021FqtssMib_tsts; 69 | uint ieee8021FqtssMib_sets; 70 | uint ieee8021FqtssMib_request; 71 | }; 72 | struct ieee8021FqtssBapTable_data { 73 | struct ieee8021FqtssBapTable_data *ieee8021FqtssBapTable_old; 74 | uint ieee8021FqtssBapTable_rsvs; 75 | uint ieee8021FqtssBapTable_tsts; 76 | uint ieee8021FqtssBapTable_sets; 77 | uint ieee8021FqtssBapTable_request; 78 | uint ieee8021FqtssBapTable_refs; 79 | uint ieee8021FqtssBapTable_id; 80 | ulong ieee8021BridgeBaseComponentId; /* NoAccess */ 81 | ulong ieee8021BridgeBasePort; /* NoAccess */ 82 | ulong ieee8021FqtssBAPTrafficClass; /* NoAccess */ 83 | ulong ieee8021FqtssDeltaBandwidth; /* Create */ 84 | ulong ieee8021FqtssOperIdleSlopeMs; /* ReadOnly */ 85 | ulong ieee8021FqtssOperIdleSlopeLs; /* ReadOnly */ 86 | ulong ieee8021FqtssAdminIdleSlopeMs; /* Create */ 87 | ulong ieee8021FqtssAdminIdleSlopeLs; /* Create */ 88 | long ieee8021FqtssBapRowStatus; /* Create */ 89 | }; 90 | struct ieee8021FqtssTxSelectionAlgorithmTable_data { 91 | struct ieee8021FqtssTxSelectionAlgorithmTable_data *ieee8021FqtssTxSelectionAlgorithmTable_old; 92 | uint ieee8021FqtssTxSelectionAlgorithmTable_rsvs; 93 | uint ieee8021FqtssTxSelectionAlgorithmTable_tsts; 94 | uint ieee8021FqtssTxSelectionAlgorithmTable_sets; 95 | uint ieee8021FqtssTxSelectionAlgorithmTable_request; 96 | uint ieee8021FqtssTxSelectionAlgorithmTable_refs; 97 | uint ieee8021FqtssTxSelectionAlgorithmTable_id; 98 | ulong ieee8021BridgeBaseComponentId; /* NoAccess */ 99 | ulong ieee8021BridgeBasePort; /* NoAccess */ 100 | ulong ieee8021FqtssTrafficClass; /* NoAccess */ 101 | ulong ieee8021FqtssTxSelectionAlgorithmID; /* ReadWrite */ 102 | }; 103 | struct ieee8021FqtssSrpRegenOverrideTable_data { 104 | struct ieee8021FqtssSrpRegenOverrideTable_data *ieee8021FqtssSrpRegenOverrideTable_old; 105 | uint ieee8021FqtssSrpRegenOverrideTable_rsvs; 106 | uint ieee8021FqtssSrpRegenOverrideTable_tsts; 107 | uint ieee8021FqtssSrpRegenOverrideTable_sets; 108 | uint ieee8021FqtssSrpRegenOverrideTable_request; 109 | uint ieee8021FqtssSrpRegenOverrideTable_refs; 110 | uint ieee8021FqtssSrpRegenOverrideTable_id; 111 | ulong ieee8021BridgeBaseComponentId; /* NoAccess */ 112 | ulong ieee8021BridgeBasePort; /* NoAccess */ 113 | ulong ieee8021FqtssSrClassPriority; /* NoAccess */ 114 | ulong ieee8021FqtssPriorityRegenOverride; /* ReadWrite */ 115 | long ieee8021FqtssSrpBoundaryPort; /* ReadOnly */ 116 | }; 117 | 118 | /* storage declarations */ 119 | extern struct ieee8021FqtssMib_data *ieee8021FqtssMibStorage; 120 | extern struct header_complex_index *ieee8021FqtssBapTableStorage; 121 | extern struct header_complex_index *ieee8021FqtssTxSelectionAlgorithmTableStorage; 122 | extern struct header_complex_index *ieee8021FqtssSrpRegenOverrideTableStorage; 123 | 124 | /* enum definitions from the covered mib sections */ 125 | 126 | #define IEEE8021FQTSSSRPBOUNDARYPORT_TRUE 1 127 | #define IEEE8021FQTSSSRPBOUNDARYPORT_FALSE 2 128 | 129 | /* notifications */ 130 | 131 | /* scalars accessible only for notify */ 132 | 133 | /* object id definitions */ 134 | extern oid ieee8021FqtssCompliance_oid[11]; 135 | extern oid ieee8021FqtssBapGroup_oid[11]; 136 | extern oid ieee8021FqtssTxSelectionAlgorithmGroup_oid[11]; 137 | extern oid ieee8021FqtssBoundaryPortGroup_oid[11]; 138 | 139 | /* function prototypes */ 140 | /* trap function prototypes */ 141 | 142 | /* variable function prototypes */ 143 | void init_ieee8021FqtssMib(void); 144 | void deinit_ieee8021FqtssMib(void); 145 | int term_ieee8021FqtssMib(int majorID, int minorID, void *serverarg, void *clientarg); 146 | FindVarMethod var_ieee8021FqtssMib; 147 | struct ieee8021FqtssMib_data *ieee8021FqtssMib_create(void); 148 | struct ieee8021FqtssMib_data *ieee8021FqtssMib_duplicate(struct ieee8021FqtssMib_data *); 149 | int ieee8021FqtssMib_destroy(struct ieee8021FqtssMib_data **); 150 | int ieee8021FqtssMib_add(struct ieee8021FqtssMib_data *); 151 | void parse_ieee8021FqtssMib(const char *, char *); 152 | SNMPCallback store_ieee8021FqtssMib; 153 | void refresh_ieee8021FqtssMib(int); 154 | FindVarMethod var_ieee8021FqtssBapTable; 155 | struct ieee8021FqtssBapTable_data *ieee8021FqtssBapTable_create(void); 156 | struct ieee8021FqtssBapTable_data *ieee8021FqtssBapTable_duplicate(struct ieee8021FqtssBapTable_data *); 157 | int ieee8021FqtssBapTable_destroy(struct ieee8021FqtssBapTable_data **); 158 | int ieee8021FqtssBapTable_add(struct ieee8021FqtssBapTable_data *); 159 | int ieee8021FqtssBapTable_del(struct ieee8021FqtssBapTable_data *); 160 | void parse_ieee8021FqtssBapTable(const char *, char *); 161 | SNMPCallback store_ieee8021FqtssBapTable; 162 | void refresh_ieee8021FqtssBapTable(int); 163 | FindVarMethod var_ieee8021FqtssTxSelectionAlgorithmTable; 164 | struct ieee8021FqtssTxSelectionAlgorithmTable_data *ieee8021FqtssTxSelectionAlgorithmTable_create(void); 165 | struct ieee8021FqtssTxSelectionAlgorithmTable_data *ieee8021FqtssTxSelectionAlgorithmTable_duplicate(struct ieee8021FqtssTxSelectionAlgorithmTable_data *); 166 | int ieee8021FqtssTxSelectionAlgorithmTable_destroy(struct ieee8021FqtssTxSelectionAlgorithmTable_data **); 167 | int ieee8021FqtssTxSelectionAlgorithmTable_add(struct ieee8021FqtssTxSelectionAlgorithmTable_data *); 168 | int ieee8021FqtssTxSelectionAlgorithmTable_del(struct ieee8021FqtssTxSelectionAlgorithmTable_data *); 169 | void parse_ieee8021FqtssTxSelectionAlgorithmTable(const char *, char *); 170 | SNMPCallback store_ieee8021FqtssTxSelectionAlgorithmTable; 171 | void refresh_ieee8021FqtssTxSelectionAlgorithmTable(int); 172 | FindVarMethod var_ieee8021FqtssSrpRegenOverrideTable; 173 | struct ieee8021FqtssSrpRegenOverrideTable_data *ieee8021FqtssSrpRegenOverrideTable_create(void); 174 | struct ieee8021FqtssSrpRegenOverrideTable_data *ieee8021FqtssSrpRegenOverrideTable_duplicate(struct ieee8021FqtssSrpRegenOverrideTable_data *); 175 | int ieee8021FqtssSrpRegenOverrideTable_destroy(struct ieee8021FqtssSrpRegenOverrideTable_data **); 176 | int ieee8021FqtssSrpRegenOverrideTable_add(struct ieee8021FqtssSrpRegenOverrideTable_data *); 177 | int ieee8021FqtssSrpRegenOverrideTable_del(struct ieee8021FqtssSrpRegenOverrideTable_data *); 178 | void parse_ieee8021FqtssSrpRegenOverrideTable(const char *, char *); 179 | SNMPCallback store_ieee8021FqtssSrpRegenOverrideTable; 180 | void refresh_ieee8021FqtssSrpRegenOverrideTable(int); 181 | 182 | WriteMethod write_ieee8021FqtssDeltaBandwidth; 183 | WriteMethod write_ieee8021FqtssAdminIdleSlopeMs; 184 | WriteMethod write_ieee8021FqtssAdminIdleSlopeLs; 185 | WriteMethod write_ieee8021FqtssBapRowStatus; 186 | WriteMethod write_ieee8021FqtssTxSelectionAlgorithmID; 187 | WriteMethod write_ieee8021FqtssPriorityRegenOverride; 188 | #endif /* __LOCAL_IEEE8021FQTSSMIB_H__ */ 189 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PBBR (Provider Backbone Bridge) 2 | 3 | This package is an implementation of Provider Backbone Bridging (PBB) as specified in IEEE 802.1ah 4 | and IEEE 802.1Q (2011) (both now part of IEEE 802.1Q-2018). It provides a separate 'bridge' device 5 | for the Linux Kernel that can act as a PBB-BEB and/or PBB-TE backbone bridge. It also implements 6 | IEEE 802.1aq-2012 (SPB) and IEEE 802.1Qbp-2014 (ECMP) (both now part of IEEE 7 | 802.1Q-2018). 8 | 9 | ## Objectives 10 | 11 | The objective of PBBR is to create a bridge device for Linux that provides an SPBM 12 | ECMP Level-1/Level-2 bridge for the Linux kernel. 13 | The primary uses are as follows: 14 | 15 | 1. Using the Linux Kernel as a PBB-TE provider-bridge (Level-2 Intermediate System). 16 | 17 | In the provider-bridge role, the bridge acts as a PBB-TE bridge for adding PBB 18 | participating nodes into the backbone network, or to interconnect clouds using 19 | WAN interfaces as PBB provider ports. 20 | 21 | 2. Using QEMU/KVM for virtualization of network interface devices. 22 | 23 | In the virtualization role, the bridge acts as a PBB-BEB bridge that enslaves 24 | host network interfaces as provider ports and TAP devices for **`virtio`** as 25 | customer ports. This enables automatic full-mesh resilient network 26 | connections for virtualized networks in the cloud. My primary purpose is for 27 | enabling resilient networking for NFVI. 28 | 29 | PBBR is intended to replace Open vSwitch for full-mesh networking between VNF 30 | instances in NFVI. 31 | 32 | ## Advantages 33 | 34 | The advantages of the PBB approach are as follows: 35 | 36 | * Resilience 37 | * Security 38 | * Migration 39 | * Virtual Instance Identification 40 | * Performance 41 | * Management 42 | * Service Assurance 43 | 44 | These advantages are detailed in the sections that follow: 45 | 46 | ### Resilience 47 | 48 | All other existing approaches in the Linux kernel utilize STP for bridging. 49 | Various forms of STP have resilience issues and provide for the possibility of 50 | back holes or significant network degradation dues to broadcast/multicast loops. 51 | 52 | SPB (Shortest Path Bridging) using the IS-IS link-state protocol is far more 53 | resilient to network component and path outages than is STP and MSTP, and 54 | exhibits faster convergence than STP. ECMP (Equal Cost Multiple Path) and flow 55 | filtering (F-TAG) can also be optionally activated for efficient load-sharing. 56 | When **`tun/tap`** ports are utilized on a BEB bridge in the host system, there 57 | is no longer a need for "learning" customer MACs on these **`virtio`** ports. 58 | This means that network convergence is faster, for both startup and shutdown of 59 | **`virtio`** NIC instances. 60 | 61 | ### Security 62 | 63 | Other approaches are normal **`br`** and **`tap`**, **`macvtap`**, **`gretap`**, 64 | and **`vxlan`**. (The **`macvtap`** in **`bridge`** mode is similar to the **`br`** 65 | and **`tap`** approach, however, setup is easier.) 66 | The problem with bridge- or vepa-mode approaches is that any virtual mac interface 67 | can send packets to any other mac in the cloud, with the attendant security 68 | ramifications. 69 | **`gre`** and **`vxlan`** tunnels achieve the separation between clients 70 | necessary for security, but are quite complex in implementation which leads to 71 | other possible security exposure. 72 | 73 | On the other hand, PBB approaches achieve fully transparent separation between 74 | clients (using service identifier) without complex configuration. 75 | 76 | ### Migration 77 | 78 | Some approaches using Open vSwitch allow for migration of VM images between 79 | hosts. However, they require complex coordination between vSwitch instances and 80 | do not exhibit fast convergence. 81 | 82 | Utilizing the IS-IS SPBM protocol and short-circuiting "learning" at the 83 | customer port, it is possible to achieve migration change-over times consistent 84 | with the underlying convergence of the SPB protocol. This can easily achieve 85 | migration times of less than 100 milliseconds at scale, or faster on high 86 | performance hosts. It is also possible to have VNFs able to perform C-MAC 87 | take-over that will also converge in the same interval and with minimal 88 | disruption of layer-3 traffic. 89 | 90 | Utilizing a **`tun/tap`** **`virtio`** interface to a PBB backbone edge bridge 91 | internal to the Linux kernel precludes the need for "learning" of customer MACs. 92 | IS-IS (SPBM) ES updates can be performed as soon as the customer **`tun/tap`** 93 | interface is brought up or when it is closed. Migration of customer MACs to 94 | another host is handled quickly and automatically. Because each BEB has a full 95 | network view of the entire customer networks, it is also possible to detect 96 | customer MAC conflicts at the time that the **`tun/tap`** interface is 97 | configured. 98 | 99 | Allowing a VM guest to add or remove MACs from the **`virtio`** interface can 100 | permit for MAC take-over to enable fault-tolerance of VNFs. 101 | 102 | ### Virtual Instance Identification 103 | 104 | Utilizing Open vSwitch and similar approaches, it is difficult to identify VM 105 | guest instances. Utilizing PBB, VM guest instances can be identified by a 106 | primary SID (service identifier) and C-MAC (customer MAC) combination. It is 107 | possible to identify the location of particular VM guest instance by hooking 108 | into the IS-IS SPBM protocol or by utilizing C-LAN approaches such as LLDP. 109 | 110 | ### Port Aggregation 111 | 112 | Port aggregation utilizing the **`macvtap`** approach relies on coordination 113 | between the host and external bridges. Port aggregation with GRE and VxLAN 114 | approaches is complex and inefficient. 115 | 116 | Utilizing SPBM, ECF and ECMP at the BEB in the host achieves port aggregation 117 | and load balancing that is completely transparent to non-participating backbone 118 | bridges. 119 | 120 | ### Full Mesh 121 | 122 | Full mesh networking can be achieved using **`macvtap`** approaches; however, it 123 | comes with attendant security issues. Full mesh can be achieved utilizing GRE 124 | or VxLAN tunnels without the attendant security risks of bridge-mode approaches; 125 | however, there are attendant performance, resilience and management complexity 126 | associated with these approaches. 127 | 128 | PBB achieves full mesh networking with resilience, performance and security, and 129 | provides single-point provisioning for greatly reduced complexity. 130 | 131 | ### Traffic Engineering 132 | 133 | Traffic engineering with PBB utilizes traditional models, both at the backbone 134 | level and at the service instance level. Standard link traffic control can be 135 | managed both for backbone traffic as well as for service instance traffic. 136 | 137 | Traffic control utilizing standard Linux host approaches is difficult when using 138 | GRE or VxLAN tunnels. 139 | 140 | ### Monitoring 141 | 142 | Monitoring of failures with PBB utilizes traditional and standard approaches. 143 | On the other hand, GRE tunnels, VxLAN and Open vSwitch approaches make failure 144 | monitoring difficult. 145 | 146 | Furthermore, as IS-IS is a link-state protocol that provides an entire network 147 | view at each IS-IS node, it is possible to determine the total state of the 148 | network by simply having a management station participate in the IS-IS protocol. 149 | 150 | ### Data Path Performance 151 | 152 | Bridge-mode approaches have good data path performance (as good as a Linux 153 | kernel bridge). GRE and VxLAN approaches have the data path performance hit of 154 | additional encapsulation and the use of the Layer-3 or 4 stack, as well as the 155 | performance hit of an internal socket interface to the Layer-3 or 4 stack. 156 | 157 | PBB-BEB is a bridge and can achieve the same data path performance as any other 158 | Linux kernel bridge. STREAMS implementation can achieve performance gains above 159 | and beyond that of the native Linux kernel bridges due to instruction cache 160 | bursting. 161 | 162 | ## Implementation 163 | 164 | The Linux kernel native implementation consists of the following elements: 165 | 166 | 1. An implementation of a customer port. 167 | 168 | A customer port (C-VLAN) is similar to a VLAN virtual port (in fact is more 169 | similar to a VLAN in VLAN virtual port), except that, instead of being 170 | instantiated based on VID, it is based on SID. The SID is a 24-bit service 171 | instance identifier, that identifies the customer network associated with the 172 | customer port. The lower interface acts as a provider port; the upper 173 | interface, a customer port. The basic kernel VLAN implementation is extended 174 | to add a new virtual interface type for the customer port. Just as with VLAN 175 | virtual interfaces, the MAC address is shared with the provider port. 176 | 177 | 2. An implementation of the SPBM (IS-IS). 178 | 179 | For a customer port, the SPBM protocol is associated with the lower provider 180 | port under the customer port. The MAC address of the provider port acts as a 181 | NET (Network Entity Title) for a Level-1/2 intermediate system in the IS-IS 182 | SPBM protocol. This network entity acts as a BEB (backbone edge bridge). All 183 | BEBs participate in the IS-IS SPBM protocol. 184 | 185 | The upper customer port acts as a normal Ethernet link and participates in the 186 | STP protocol when combined with a normal customer bridge (a normal **`br`** bridge 187 | in the Linux kernel). 188 | 189 | 3. An implementation of a **`pbbclan`** driver. 190 | 191 | The **`pbbclan`** driver is similar to the **`macvlan`** driver in that it 192 | combines a virtual interface with a bridge over a customer port lower device. 193 | In fact, it may be possible to simply modify the **`macvlan`** driver for 194 | direct use over C-VLAN ports. The initial implementation of the **`pbbclan`** 195 | driver will be modelled after the **`macvlan`** driver in an attempt to 196 | integrate the two in the end. 197 | 198 | 4. An implementation of a **`pbbctap`** driver. 199 | 200 | The **`pcbctap`** driver is similar to the **`macvtap`** driver in that it 201 | combines a **`tun/tap`** interface with a bridge over a customer port lower 202 | device. In fact, it may be possible to simply modify the **`macvtap`** driver 203 | for direct use of C-VLAN ports. The initial implementation of the 204 | **`pbbctap`** driver will be modelled after the **`macvtap`** driver in an 205 | attempt to integrate to two in the end. 206 | 207 | 5. An implementation of a **`beb`** bridge driver. 208 | 209 | The **`beb`** driver is similar to a **`br`** driver. The major difference 210 | in setting up a **`beb`** bridge, is that the provider and customer ports must 211 | be distinguished when enslaving them. 212 | 213 | 6. Possibly an implementation of a **`pbb-te`** bridge. 214 | 215 | The major difference between a **`beb`** bridge and a **`pbb-te`** bridge is 216 | the later provides S-TAG aware bridging between separate provider backbone 217 | networks. Because a **`pbb-te`** bridge is not really necessary to achieve 218 | virtualization, it will likely be skipped for now. 219 | -------------------------------------------------------------------------------- /src/snmp/mib2c.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Define types of data by mib type, and translate into needed C code. 3 | # 4 | 5 | ############################################################################ 6 | # source variable typing information: 7 | include: mib2c.vartypes.conf 8 | 9 | # Begin code template section 10 | ############################################################################ 11 | # variable statemnts used in a couple of places below 12 | ############################################################################ 13 | type: code-varInits 14 | code: /* variables we may use later */ 15 | code: static long long_ret; 16 | code: static u_long ulong_ret; 17 | code: static unsigned char string[SPRINT_MAX_LEN]; 18 | code: static oid objid[MAX_OID_LEN]; 19 | code: static struct counter64 c64; 20 | 21 | 22 | ############################################################################ 23 | # The .h file 24 | ############################################################################ 25 | type: code-dot-h 26 | code: /* This file was generated by mib2c and is intended for use as a mib module 27 | code: for the ucd-snmp snmpd agent. */ 28 | code: 29 | code: #ifndef _MIBGROUP_${OUTPUTNAME}_H 30 | code: #define _MIBGROUP_${OUTPUTNAME}_H 31 | code: 32 | code: /* we may use header_generic and header_simple_table from the util_funcs module */ 33 | code: 34 | code: config_require(util_funcs) 35 | code: 36 | code: /* function prototypes */ 37 | code: 38 | code: void init_$outputName(void); 39 | code: FindVarMethod var_$outputName; 40 | code: $variables{'code-var_table-decl'}{'processed'} 41 | code: $variables{'code-write-func-decl'}{'processed'} 42 | code: 43 | code: #endif /* _MIBGROUP_${OUTPUTNAME}_H */ 44 | 45 | ############################################################################ 46 | # The .c file, top 47 | ############################################################################ 48 | type: code-main-part 49 | code: /* This file was generated by mib2c and is intended for use as a mib module 50 | code: for the ucd-snmp snmpd agent. */ 51 | code: 52 | code: #ifdef IN_UCD_SNMP_SOURCE 53 | code: /* If we're compiling this file inside the ucd-snmp source tree */ 54 | code: 55 | code: /* This should always be included first before anything else */ 56 | code: #include 57 | code: 58 | code: /* minimal include directives */ 59 | code: #include \"mibincl.h\" 60 | code: #include \"util_funcs.h\" 61 | code: 62 | code: #else /* !IN_UCD_SNMP_SOURCE */ 63 | code: 64 | code: #include 65 | code: #include 66 | code: #include 67 | code: 68 | code: #endif /* !IN_UCD_SNMP_SOURCE */ 69 | code: 70 | code: #include \"$outputName.h\" 71 | code: 72 | code: /* 73 | code: * ${outputName}_variables_oid: 74 | code: * this is the top level oid that we want to register under. This 75 | code: * is essentially a prefix, with the suffix appearing in the 76 | code: * variable below. 77 | code: */ 78 | code: 79 | code: oid ${outputName}_variables_oid[] = { $commaoid }; 80 | code: 81 | code: /* 82 | code: * variable$varlen ${outputName}_variables: 83 | code: * this variable defines function callbacks and type return information 84 | code: * for the $outputName mib section 85 | code: */ 86 | code: 87 | code: struct variable$varlen ${outputName}_variables[] = { 88 | code: /* magic number , variable type , ro/rw , callback fn , L, oidsuffix */ 89 | code: $variables{'variable-structure-info'}{'processed'} 90 | code: }; 91 | code: /* (L = length of the oidsuffix) */ 92 | code: 93 | code: /* 94 | code: * init_$outputName(): 95 | code: * Initialization routine. This is called when the agent starts up. 96 | code: * At a minimum, registration of your variables should take place here. 97 | code: */ 98 | code: void init_$outputName(void) { 99 | code: 100 | code: /* register ourselves with the agent to handle our mib tree */ 101 | code: REGISTER_MIB(\"$outputName\", ${outputName}_variables, variable$varlen,\ 102 | code: ${outputName}_variables_oid); 103 | code: 104 | code: /* place any other initialization junk you need here */ 105 | code: } 106 | code: 107 | code: /* 108 | code: * var_$outputName(): 109 | code: * This function is called every time the agent gets a request for 110 | code: * a scalar variable that might be found within your mib section 111 | code: * registered above. It is up to you to do the right thing and 112 | code: * return the correct value. 113 | code: * You should also correct the value of \"var_len\" if necessary. 114 | code: * 115 | code: * Please see the documentation for more information about writing 116 | code: * module extensions, and check out the examples in the examples 117 | code: * and mibII directories. 118 | code: */ 119 | code: unsigned char * 120 | code: var_$outputName(struct variable *vp, 121 | code: oid *name, 122 | code: size_t *length, 123 | code: int exact, 124 | code: size_t *var_len, 125 | code: WriteMethod **write_method) 126 | code: { 127 | code: 128 | code: $variables{'code-varInits'}{'code'} 129 | code: 130 | code: if (header_generic(vp,name,length,exact,var_len,write_method) 131 | code: == MATCH_FAILED ) 132 | code: return NULL; 133 | code: 134 | code: /* 135 | code: * this is where we do the value assignments for the mib results. 136 | code: */ 137 | code: switch(vp->magic) {\n\n 138 | code: $variables{$outputName}{'code-case-statements'}{'processed'} 139 | code: default: 140 | code: ERROR_MSG(\"\"); 141 | code: } 142 | code: return NULL; 143 | code: } 144 | code: 145 | code: $variables{'code-var_table'}{'processed'} 146 | code: 147 | code: $variables{'code-write-func'}{'processed'} 148 | 149 | ############################################################################ 150 | # var_ function for tables, which is handled specially and used above 151 | # 152 | # Note: $vtable is set to the table name in the processtable loop. 153 | ############################################################################ 154 | 155 | # 156 | # header file defs first 157 | # 158 | type: code-var_table-decl 159 | processtable: code-var_table-decl 160 | 161 | code: FindVarMethod var_$vtable; 162 | 163 | # 164 | # Code code per table 165 | # 166 | type: code-var_table 167 | processtable: code-var_table 168 | 169 | code: /* 170 | code: * var_$vtable(): 171 | code: * Handle this table separately from the scalar value case. 172 | code: * The workings of this are basically the same as for var_$outputName above. 173 | code: */ 174 | code: unsigned char * 175 | code: var_$vtable(struct variable *vp, 176 | code: oid *name, 177 | code: size_t *length, 178 | code: int exact, 179 | code: size_t *var_len, 180 | code: WriteMethod **write_method) 181 | code: { 182 | code: 183 | code: $variables{'code-varInits'}{'code'} 184 | code: 185 | code: /* 186 | code: * This assumes that the table is a \'simple\' table. 187 | code: * See the implementation documentation for the meaning of this. 188 | code: * You will need to provide the correct value for the TABLE_SIZE parameter 189 | code: * 190 | code: * If this table does not meet the requirements for a simple table, 191 | code: * you will need to provide the replacement code yourself. 192 | code: * Mib2c is not smart enough to write this for you. 193 | code: * Again, see the implementation documentation for what is required. 194 | code: */ 195 | code: if (header_simple_table(vp,name,length,exact,var_len,write_method, TABLE_SIZE) 196 | code: == MATCH_FAILED ) 197 | code: return NULL; 198 | code: 199 | code: /* 200 | code: * this is where we do the value assignments for the mib results. 201 | code: */ 202 | code: switch(vp->magic) {\n\n 203 | code: $variables{$vtable}{'code-case-statements'}{'processed'} 204 | code: default: 205 | code: ERROR_MSG(\"\"); 206 | code: } 207 | code: return NULL; 208 | code: } 209 | 210 | 211 | ############################################################################ 212 | # case statement sections 213 | ############################################################################ 214 | type: code-case-statements 215 | process: code-case-statements 216 | skipif: $mib->{'access'} =~ /NoAccess/ 217 | 218 | code: case $NAME: 219 | code: " . (($mib->{'access'} =~ /ReadWrite|WriteOnly|Create/) ? "*write_method = write_$mib->{label};" : "") . " 220 | code: $variables{$mib->{'type'}}{'case'} 221 | code: 222 | 223 | ############################################################################ 224 | # storage structure information 225 | ############################################################################ 226 | type: variable-structure-info 227 | process: variable-structure-info 228 | skipif: $mib->{'access'} =~ /NoAccess/ 229 | code: " . sprintf("#define %-20s $count", $NAME) . " 230 | code: " . sprintf(" { %-20s, %-14s, %-6.6s, %s, %d, { %s } },", $NAME, $variables{$mib->{'type'}}{'asnType'}, $accessToUCD{$mib->{'access'}}, "var_$vroutine", $depth-1, $subid) . " 231 | 232 | ############################################################################ 233 | # write function defitition, also appended to the end of the .c file. 234 | ############################################################################ 235 | # 236 | # Header info: declair write functions for set processing 237 | # 238 | process: code-write-func-decl 239 | type: code-write-func-decl 240 | skipif: $mib->{'access'} !~ /Write|Create/ 241 | code: WriteMethod write_$name; 242 | # 243 | # C code 244 | # 245 | type: code-write-func 246 | process: code-write-func 247 | skipif: $mib->{'access'} !~ /Write|Create/ 248 | code: int 249 | code: write_$name(int action, 250 | code: unsigned char *var_val, 251 | code: unsigned char var_val_type, 252 | code: size_t var_val_len, 253 | code: unsigned char *statP, 254 | code: oid *name, 255 | code: size_t name_len) 256 | code: { 257 | code: $variables{$mib->{'type'}}{writeInit} 258 | code: int size; 259 | code: 260 | code: switch ( action ) { 261 | code: case RESERVE1: 262 | code: if (var_val_type != $variables{$mib->{'type'}}{asnType}){ 263 | code: fprintf(stderr, \"write to $name not $variables{$mib->{'type'}}{asnType}\\n\"); 264 | code: return SNMP_ERR_WRONGTYPE; 265 | code: } 266 | code: if (var_val_len > sizeof($variables{$mib->{'type'}}{variable})){ 267 | code: fprintf(stderr,\"write to $name: bad length\\n\"); 268 | code: return SNMP_ERR_WRONGLENGTH; 269 | code: } 270 | code: break; 271 | code: 272 | code: case RESERVE2: 273 | code: size = var_val_len; 274 | code: $variables{$mib->{'type'}}{variable} = ($variables{$mib->{'type'}}{cast}) var_val; 275 | code: 276 | code: break; 277 | code: 278 | code: case FREE: 279 | code: /* Release any resources that have been allocated */ 280 | code: break; 281 | code: 282 | code: case ACTION: 283 | code: /* The variable has been stored in $variables{$mib->{'type'}}{variable} for 284 | code: you to use, and you have just been asked to do something with 285 | code: it. Note that anything done here must be reversable in the UNDO case */ 286 | code: break; 287 | code: 288 | code: case UNDO: 289 | code: /* Back out any changes made in the ACTION case */ 290 | code: break; 291 | code: 292 | code: case COMMIT: 293 | code: /* Things are working well, so it's now safe to make the change 294 | code: permanently. Make sure that anything done here can't fail! */ 295 | code: break; 296 | code: } 297 | code: return SNMP_ERR_NOERROR; 298 | code: } 299 | code: 300 | code: 301 | -------------------------------------------------------------------------------- /src/include/sys/beb_ioctl.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/include/sys/beb_ioctl.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __BEB_IOCTL_H__ 51 | #define __BEB_IOCTL_H__ 52 | 53 | /* This file can be processed by doxygen(1). */ 54 | 55 | #include 56 | 57 | #define BEB_IOC_MAGIC 'B' 58 | 59 | #define BEB_OBJ_TYPE_DF 0 /* default */ 60 | #define BEB_OBJ_TYPE_BR 1 /* bridge (BEB user) */ 61 | #define BEB_OBJ_TYPE_DL 2 /* data link */ 62 | #define BEB_OBJ_TYPE_TS 3 /* tap/tun stream */ 63 | 64 | #ifdef __KERNEL__ 65 | typedef mblk_t *beb_timer_t; 66 | #else /* __KERNEL__ */ 67 | typedef unsigned long beb_timer_t; 68 | #endif /* __KERNEL__ */ 69 | 70 | /* 71 | * Data link options 72 | */ 73 | typedef struct beb_opt_conf_dl { 74 | unsigned int ifIndex; 75 | uint64_t delayExceededDiscards; 76 | uint64_t mtuExceededDiscards; 77 | uint32_t capabilities; 78 | uint32_t typeCapabilities; 79 | uint32_t type; 80 | bool external; 81 | uint32_t adminPointToPoint; 82 | bool operPointToPoint; 83 | char name[32]; 84 | int nameLen; 85 | } beb_opt_conf_dl_t; 86 | 87 | /* 88 | * tap/tun stream options 89 | */ 90 | typedef struct beb_opt_conf_ts { 91 | } beb_opt_conf_ts_t; 92 | 93 | enum ieee8021BridgeBaseComponentType { 94 | iComponent = 1, 95 | bComponent = 2, 96 | cVlanComponent = 3, 97 | sVlanComponent = 4, 98 | dBridgeComponent = 5, 99 | erComponrnt = 6, 100 | tComponent = 7, 101 | }; 102 | 103 | enum ieee8021BridgeBaseDeviceCapabilities { 104 | dot1ExtendedFilteringServices = 0, 105 | dot1DTrafficClasses = 1, 106 | dot1QStaticEntryIndividualPOrt = 2, 107 | dot1QIVLCapable = 3, 108 | dot1QSVLCapable = 4, 109 | dot1QHybridCapable = 5, 110 | dot1QConfigurablePVIDTagging = 6, 111 | dot1DLocalVLANCapable = 7, 112 | }; 113 | 114 | /* 115 | * Bridge options 116 | */ 117 | typedef struct beb_opt_conf_br { 118 | uint8_t address[6]; 119 | int addressLen; 120 | int numPorts; 121 | enum ieee8021BridgeBaseComponentType componentType; 122 | unsigned int deviceCapablities; 123 | bool trafficClassesEnabled; 124 | bool mmrpEnabledStatus; 125 | unsigned int rowStatus; 126 | } beb_opt_conf_br_t; 127 | 128 | /* 129 | * Default options 130 | */ 131 | typedef struct beb_opt_conf_df { 132 | } beb_opt_conf_df_t; 133 | 134 | typedef union beb_option_obj { 135 | struct beb_opt_conf_dl dl; /* data link */ 136 | struct beb_opt_conf_ts ts; /* tap/tun stream */ 137 | struct beb_opt_conf_br br; /* bridge */ 138 | struct beb_opt_conf_df df; /* default */ 139 | } beb_option_obj_t; 140 | 141 | /* 142 | * OPTIONS 143 | */ 144 | typedef struct beb_option { 145 | dl_ulong type; /* object type */ 146 | dl_ulong id; /* object id */ 147 | /* followed by object-specific protocol options structure */ 148 | beb_option_obj_t options[0]; 149 | } beb_option_t; 150 | 151 | #define BEB_IOCGOPTION _IOWR( BEB_IOC_MAGIC, 0, beb_option_t ) 152 | #define BEB_IOCSOPTION _IOWR( BEB_IOC_MAGIC, 1, beb_option_t ) 153 | 154 | /* 155 | * Data link configuration 156 | */ 157 | typedef struct beb_conf_dl { 158 | int muxid; /* lower multiplexor id */ 159 | dl_ulong brid; /* bridge id */ 160 | } beb_conf_dl_t; 161 | 162 | /* 163 | * Bridge configuration 164 | */ 165 | typedef struct beb_conf_br { 166 | } beb_conf_br_t; 167 | 168 | /* 169 | * TAP/TUN stream configuration 170 | */ 171 | typedef struct beb_conf_ts { 172 | } beb_conf_ts_t; 173 | 174 | /* 175 | * Default configuration 176 | */ 177 | typedef struct beb_conf_df { 178 | } beb_conf_df_t; 179 | 180 | typedef union beb_conf_obj { 181 | struct beb_conf_dl dl; /* data link */ 182 | struct beb_conf_br br; /* bridge */ 183 | struct beb_conf_ts ts; /* tap/tun stream */ 184 | struct beb_conf_df df; /* default */ 185 | } beb_conf_obj_t; 186 | 187 | /* 188 | * CONFIGURATION 189 | */ 190 | typedef struct beb_config { 191 | dl_ulong type; /* object type */ 192 | dl_ulong id; /* object id */ 193 | dl_ulong cmd; /* configuration command */ 194 | /* followed by object-specific configuration structure */ 195 | beb_conf_obj_t config[0]; 196 | } beb_config_t; 197 | 198 | #define BEB_GET 0 /* get configuration */ 199 | #define BEB_ADD 1 /* add configuration */ 200 | #define BEB_CHA 2 /* cha configuration */ 201 | #define BEB_DEL 3 /* del configuraiton */ 202 | 203 | #define BEB_IOCGCONFIG _IOWR( BEB_IOC_MAGIC, 2, beb_config_t ) 204 | #define BEB_IOCSCONFIG _IOWR( BEB_IOC_MAGIC, 3, beb_config_t ) 205 | #define BEB_IOCTCONFIG _IOWR( BEB_IOC_MAGIC, 4, beb_config_t ) 206 | #define BEB_IOCCCONFIG _IOWR( BEB_IOC_MAGIC, 5, beb_config_t ) 207 | 208 | /* 209 | * Data link state 210 | */ 211 | typedef struct beb_timers_dl { 212 | } beb_timers_dl_t; 213 | typedef struct beb_statem_dl { 214 | struct beb_timers_dl timers; 215 | } beb_statem_dl_t; 216 | 217 | /* 218 | * Bridge state 219 | */ 220 | typedef struct beb_timers_br { 221 | } beb_timers_br_t; 222 | typedef struct beb_statem_br { 223 | struct beb_timers_br timers; 224 | } beb_statem_br_t; 225 | 226 | /* 227 | * Tap/tun state 228 | */ 229 | typedef struct beb_timers_ts { 230 | } beb_timers_ts_t; 231 | typedef struct beb_statem_ts { 232 | struct beb_timers_ts timers; 233 | } beb_statem_ts_t; 234 | 235 | /* 236 | * Default state 237 | */ 238 | typedef struct beb_timers_df { 239 | } beb_timers_df_t; 240 | typedef struct beb_statem_df { 241 | struct beb_timers_df timers; 242 | } beb_statem_df_t; 243 | 244 | typedef union beb_statem_obj { 245 | struct beb_statem_dl dl; /* data link */ 246 | struct beb_statem_br br; /* bridge */ 247 | struct beb_statem_ts ts; /* tap/tun stream */ 248 | struct beb_statem_df df; /* default */ 249 | } beb_statem_obj_t; 250 | 251 | /* 252 | * STATE 253 | */ 254 | typedef struct beb_statem { 255 | dl_ulong type; /* object type */ 256 | dl_ulong id; /* object id */ 257 | dl_ulong flags; /* object flags */ 258 | dl_ulong state; /* object state */ 259 | /* followed by object-specific state structure */ 260 | beb_statem_obj_t statem[0]; 261 | } beb_statem_t; 262 | 263 | #define BEB_IOCGSTATEM _IOWR( BEB_IOC_MAGIC, 6, beb_statem_t ) 264 | #define BEB_IOCCMRESET _IOWR( BEB_IOC_MAGIC, 7, beb_statem_t ) 265 | 266 | /* 267 | * Data link statistics 268 | */ 269 | typedef struct beb_stats_dl { 270 | } beb_stats_dl_t; 271 | 272 | /* 273 | * Bridge statistics 274 | */ 275 | typedef struct beb_stats_br { 276 | } beb_stats_br_t; 277 | 278 | /* 279 | * Tun/tap stream statistics 280 | */ 281 | typedef struct beb_stats_ts { 282 | } beb_stats_ts_t; 283 | 284 | /* 285 | * Default statistics 286 | */ 287 | typedef struct beb_stats_df { 288 | } beb_stats_df_t; 289 | 290 | typedef union beb_stats_obj { 291 | struct beb_stats_dl dl; /* data link */ 292 | struct beb_stats_br br; /* bridge */ 293 | struct beb_stats_ts ts; /* tap/tun stream */ 294 | struct beb_stats_df df; /* default */ 295 | } beb_stats_obj_t; 296 | 297 | /* 298 | * STATISTICS 299 | */ 300 | typedef struct beb_stats { 301 | dl_ulong type; /* object type */ 302 | dl_ulong id; /* object id */ 303 | dl_ulong header; /* object stats header */ 304 | /* followed by object-specific statistics structure */ 305 | beb_stats_obj_t stats[0]; 306 | } beb_stats_t; 307 | 308 | #define BEB_IOCGSTATSP _IOWR( BEB_IOC_MAGIC, 8, beb_stats_t ) 309 | #define BEB_IOCSSTATSP _IOWR( BEB_IOC_MAGIC, 9, beb_stats_t ) 310 | #define BEB_IOCGSTATS _IOWR( BEB_IOC_MAGIC, 10, beb_stats_t ) 311 | #define BEB_IOCCSTATS _IOWR( BEB_IOC_MAGIC, 11, beb_stats_t ) 312 | 313 | /* 314 | * Data link notificiations 315 | */ 316 | typedef struct beb_notify_dl { 317 | dl_ulong events; 318 | } beb_notify_dl_t; 319 | 320 | /* 321 | * Bridge notifications 322 | */ 323 | typedef struct beb_notify_br { 324 | dl_ulong events; 325 | } beb_notify_br_t; 326 | 327 | /* 328 | * Tap/tun notifications 329 | */ 330 | typedef struct beb_notify_ts { 331 | dl_ulong events; 332 | } beb_notify_ts_t; 333 | 334 | /* 335 | * Default notifications 336 | */ 337 | typedef struct beb_notify_df { 338 | dl_ulong events; 339 | } beb_notify_df_t; 340 | 341 | typedef union beb_notify_obj { 342 | struct beb_notify_dl dl; /* data link */ 343 | struct beb_notify_br br; /* bridge */ 344 | struct beb_notify_ts ts; /* tap/tun stream */ 345 | struct beb_notify_df df; /* default */ 346 | } beb_notify_obj_t; 347 | 348 | /* 349 | * EVENTS 350 | */ 351 | typedef struct beb_notify { 352 | dl_ulong type; /* object type */ 353 | dl_ulong id; /* object id */ 354 | /* followed by object-specific notification structure */ 355 | beb_notify_obj_t events[0]; 356 | } beb_notify_t; 357 | 358 | #define BEB_IOCGNOTIFY _IOWR( BEB_IOC_MAGIC, 12, beb_notify_t ) 359 | #define BEB_IOCSNOTIFY _IOWR( BEB_IOC_MAGIC, 13, beb_notify_t ) 360 | #define BEB_IOCCNOTIFY _IOWR( BEB_IOC_MAGIC, 14, beb_notify_t ) 361 | 362 | /* 363 | * MANAGEMENT 364 | */ 365 | typedef struct beb_mgmt { 366 | dl_ulong type; /* object type */ 367 | dl_ulong id; /* object id */ 368 | dl_ulong cmd; /* mgmt command */ 369 | } beb_mgmt_t; 370 | 371 | #define BEB_IOCCMGMT _IOW( BEB_IOC_MAGIC, 15, beb_mgmt_t ) 372 | 373 | /* 374 | * PASS LOWER 375 | */ 376 | typedef struct beb_pass { 377 | dl_ulong muxid; /* mux index of lower DL structure to pass message to */ 378 | dl_ulong type; /* type of message block */ 379 | dl_ulong band; /* band of message block */ 380 | dl_ulong ctl_length; /* length of cntl part */ 381 | dl_ulong dat_length; /* length of data part */ 382 | /* followed by cntl and data part of message to pass to data link */ 383 | } beb_pass_t; 384 | 385 | #define BEB_IOCCPASS _IOW( BEB_IOC_MAGIC, 16, beb_pass_t ) 386 | 387 | #define BEB_IOC_FIRST 0 388 | #define BEB_IOC_LAST 15 389 | #define BEB_IOC_PRIVATE 32 390 | 391 | #endif /* __BEB_IOCTL_H__ */ 392 | -------------------------------------------------------------------------------- /src/snmp/lldpXDot1EvbExtensions.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/lldpxdot1evbextensions.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_LLDPXDOT1EVBEXTENSIONS_H__ 51 | #define __LOCAL_LLDPXDOT1EVBEXTENSIONS_H__ 52 | 53 | /* 54 | * This file was generated by mib2c and is intended for use as a mib module 55 | * for the ucd-snmp snmpd agent. 56 | */ 57 | 58 | extern const char sa_program[]; 59 | extern int sa_fclose; /* default close files between requests */ 60 | extern int sa_changed; /* indication to reread MIB configuration */ 61 | extern int sa_stats_refresh; /* indications that statistics, the mib or its tables need to be refreshed */ 62 | extern int sa_request; /* request number for per-request actions */ 63 | 64 | /* our storage structure(s) */ 65 | struct lldpXDot1EvbExtensions_data { 66 | struct lldpXDot1EvbExtensions_data *lldpXDot1EvbExtensions_old; 67 | uint lldpXDot1EvbExtensions_rsvs; 68 | uint lldpXDot1EvbExtensions_tsts; 69 | uint lldpXDot1EvbExtensions_sets; 70 | uint lldpXDot1EvbExtensions_request; 71 | }; 72 | struct lldpXdot1EvbConfigEvbTable_data { 73 | struct lldpXdot1EvbConfigEvbTable_data *lldpXdot1EvbConfigEvbTable_old; 74 | uint lldpXdot1EvbConfigEvbTable_rsvs; 75 | uint lldpXdot1EvbConfigEvbTable_tsts; 76 | uint lldpXdot1EvbConfigEvbTable_sets; 77 | uint lldpXdot1EvbConfigEvbTable_request; 78 | uint lldpXdot1EvbConfigEvbTable_refs; 79 | uint lldpXdot1EvbConfigEvbTable_id; 80 | long lldpV2PortConfigIfIndex; /* NoAccess */ 81 | ulong lldpV2PortConfigDestAddressIndex; /* NoAccess */ 82 | long lldpXdot1EvbConfigEvbTxEnable; /* ReadWrite */ 83 | }; 84 | struct lldpXdot1EvbConfigCdcpTable_data { 85 | struct lldpXdot1EvbConfigCdcpTable_data *lldpXdot1EvbConfigCdcpTable_old; 86 | uint lldpXdot1EvbConfigCdcpTable_rsvs; 87 | uint lldpXdot1EvbConfigCdcpTable_tsts; 88 | uint lldpXdot1EvbConfigCdcpTable_sets; 89 | uint lldpXdot1EvbConfigCdcpTable_request; 90 | uint lldpXdot1EvbConfigCdcpTable_refs; 91 | uint lldpXdot1EvbConfigCdcpTable_id; 92 | long lldpV2PortConfigIfIndex; /* NoAccess */ 93 | ulong lldpV2PortConfigDestAddressIndex; /* NoAccess */ 94 | long lldpXdot1EvbConfigCdcpTxEnable; /* ReadWrite */ 95 | }; 96 | struct lldpV2Xdot1LocEvbTlvTable_data { 97 | struct lldpV2Xdot1LocEvbTlvTable_data *lldpV2Xdot1LocEvbTlvTable_old; 98 | uint lldpV2Xdot1LocEvbTlvTable_rsvs; 99 | uint lldpV2Xdot1LocEvbTlvTable_tsts; 100 | uint lldpV2Xdot1LocEvbTlvTable_sets; 101 | uint lldpV2Xdot1LocEvbTlvTable_request; 102 | uint lldpV2Xdot1LocEvbTlvTable_refs; 103 | uint lldpV2Xdot1LocEvbTlvTable_id; 104 | long lldpV2LocPortIfIndex; /* NoAccess */ 105 | uint8_t *lldpV2Xdot1LocEvbTlvString; /* ReadOnly */ 106 | size_t lldpV2Xdot1LocEvbTlvStringLen; 107 | }; 108 | struct lldpV2Xdot1LocCdcpTlvTable_data { 109 | struct lldpV2Xdot1LocCdcpTlvTable_data *lldpV2Xdot1LocCdcpTlvTable_old; 110 | uint lldpV2Xdot1LocCdcpTlvTable_rsvs; 111 | uint lldpV2Xdot1LocCdcpTlvTable_tsts; 112 | uint lldpV2Xdot1LocCdcpTlvTable_sets; 113 | uint lldpV2Xdot1LocCdcpTlvTable_request; 114 | uint lldpV2Xdot1LocCdcpTlvTable_refs; 115 | uint lldpV2Xdot1LocCdcpTlvTable_id; 116 | long lldpV2LocPortIfIndex; /* NoAccess */ 117 | uint8_t *lldpV2Xdot1LocCdcpTlvString; /* ReadOnly */ 118 | size_t lldpV2Xdot1LocCdcpTlvStringLen; 119 | }; 120 | struct lldpV2Xdot1RemEvbTlvTable_data { 121 | struct lldpV2Xdot1RemEvbTlvTable_data *lldpV2Xdot1RemEvbTlvTable_old; 122 | uint lldpV2Xdot1RemEvbTlvTable_rsvs; 123 | uint lldpV2Xdot1RemEvbTlvTable_tsts; 124 | uint lldpV2Xdot1RemEvbTlvTable_sets; 125 | uint lldpV2Xdot1RemEvbTlvTable_request; 126 | uint lldpV2Xdot1RemEvbTlvTable_refs; 127 | uint lldpV2Xdot1RemEvbTlvTable_id; 128 | long lldpV2RemTimeMark; /* NoAccess */ 129 | long lldpV2RemLocalIfIndex; /* NoAccess */ 130 | ulong lldpV2RemLocalDestMACAddress; /* NoAccess */ 131 | ulong lldpV2RemIndex; /* NoAccess */ 132 | uint8_t *lldpV2Xdot1RemEvbTlvString; /* ReadOnly */ 133 | size_t lldpV2Xdot1RemEvbTlvStringLen; 134 | }; 135 | struct lldpV2Xdot1RemCdcpTlvTable_data { 136 | struct lldpV2Xdot1RemCdcpTlvTable_data *lldpV2Xdot1RemCdcpTlvTable_old; 137 | uint lldpV2Xdot1RemCdcpTlvTable_rsvs; 138 | uint lldpV2Xdot1RemCdcpTlvTable_tsts; 139 | uint lldpV2Xdot1RemCdcpTlvTable_sets; 140 | uint lldpV2Xdot1RemCdcpTlvTable_request; 141 | uint lldpV2Xdot1RemCdcpTlvTable_refs; 142 | uint lldpV2Xdot1RemCdcpTlvTable_id; 143 | long lldpV2RemTimeMark; /* NoAccess */ 144 | long lldpV2RemLocalIfIndex; /* NoAccess */ 145 | ulong lldpV2RemLocalDestMACAddress; /* NoAccess */ 146 | ulong lldpV2RemIndex; /* NoAccess */ 147 | uint8_t *lldpV2Xdot1RemCdcpTlvString; /* ReadOnly */ 148 | size_t lldpV2Xdot1RemCdcpTlvStringLen; 149 | }; 150 | 151 | /* storage declarations */ 152 | extern struct lldpXDot1EvbExtensions_data *lldpXDot1EvbExtensionsStorage; 153 | extern struct header_complex_index *lldpXdot1EvbConfigEvbTableStorage; 154 | extern struct header_complex_index *lldpXdot1EvbConfigCdcpTableStorage; 155 | extern struct header_complex_index *lldpV2Xdot1LocEvbTlvTableStorage; 156 | extern struct header_complex_index *lldpV2Xdot1LocCdcpTlvTableStorage; 157 | extern struct header_complex_index *lldpV2Xdot1RemEvbTlvTableStorage; 158 | extern struct header_complex_index *lldpV2Xdot1RemCdcpTlvTableStorage; 159 | 160 | /* enum definitions from the covered mib sections */ 161 | 162 | #define LLDPXDOT1EVBCONFIGEVBTXENABLE_TRUE 1 163 | #define LLDPXDOT1EVBCONFIGEVBTXENABLE_FALSE 2 164 | 165 | #define LLDPXDOT1EVBCONFIGCDCPTXENABLE_TRUE 1 166 | #define LLDPXDOT1EVBCONFIGCDCPTXENABLE_FALSE 2 167 | 168 | /* notifications */ 169 | 170 | /* scalars accessible only for notify */ 171 | 172 | /* object id definitions */ 173 | extern oid lldpXdot1EvbCompliance_oid[16]; 174 | extern oid lldpXdot1EvbGroup_oid[16]; 175 | 176 | /* function prototypes */ 177 | /* trap function prototypes */ 178 | 179 | /* variable function prototypes */ 180 | void init_lldpXDot1EvbExtensions(void); 181 | void deinit_lldpXDot1EvbExtensions(void); 182 | int term_lldpXDot1EvbExtensions(int majorID, int minorID, void *serverarg, void *clientarg); 183 | FindVarMethod var_lldpXDot1EvbExtensions; 184 | struct lldpXDot1EvbExtensions_data *lldpXDot1EvbExtensions_create(void); 185 | struct lldpXDot1EvbExtensions_data *lldpXDot1EvbExtensions_duplicate(struct lldpXDot1EvbExtensions_data *); 186 | int lldpXDot1EvbExtensions_destroy(struct lldpXDot1EvbExtensions_data **); 187 | int lldpXDot1EvbExtensions_add(struct lldpXDot1EvbExtensions_data *); 188 | void parse_lldpXDot1EvbExtensions(const char *, char *); 189 | SNMPCallback store_lldpXDot1EvbExtensions; 190 | void refresh_lldpXDot1EvbExtensions(int); 191 | FindVarMethod var_lldpXdot1EvbConfigEvbTable; 192 | struct lldpXdot1EvbConfigEvbTable_data *lldpXdot1EvbConfigEvbTable_create(void); 193 | struct lldpXdot1EvbConfigEvbTable_data *lldpXdot1EvbConfigEvbTable_duplicate(struct lldpXdot1EvbConfigEvbTable_data *); 194 | int lldpXdot1EvbConfigEvbTable_destroy(struct lldpXdot1EvbConfigEvbTable_data **); 195 | int lldpXdot1EvbConfigEvbTable_add(struct lldpXdot1EvbConfigEvbTable_data *); 196 | int lldpXdot1EvbConfigEvbTable_del(struct lldpXdot1EvbConfigEvbTable_data *); 197 | void parse_lldpXdot1EvbConfigEvbTable(const char *, char *); 198 | SNMPCallback store_lldpXdot1EvbConfigEvbTable; 199 | void refresh_lldpXdot1EvbConfigEvbTable(int); 200 | FindVarMethod var_lldpXdot1EvbConfigCdcpTable; 201 | struct lldpXdot1EvbConfigCdcpTable_data *lldpXdot1EvbConfigCdcpTable_create(void); 202 | struct lldpXdot1EvbConfigCdcpTable_data *lldpXdot1EvbConfigCdcpTable_duplicate(struct lldpXdot1EvbConfigCdcpTable_data *); 203 | int lldpXdot1EvbConfigCdcpTable_destroy(struct lldpXdot1EvbConfigCdcpTable_data **); 204 | int lldpXdot1EvbConfigCdcpTable_add(struct lldpXdot1EvbConfigCdcpTable_data *); 205 | int lldpXdot1EvbConfigCdcpTable_del(struct lldpXdot1EvbConfigCdcpTable_data *); 206 | void parse_lldpXdot1EvbConfigCdcpTable(const char *, char *); 207 | SNMPCallback store_lldpXdot1EvbConfigCdcpTable; 208 | void refresh_lldpXdot1EvbConfigCdcpTable(int); 209 | FindVarMethod var_lldpV2Xdot1LocEvbTlvTable; 210 | struct lldpV2Xdot1LocEvbTlvTable_data *lldpV2Xdot1LocEvbTlvTable_create(void); 211 | struct lldpV2Xdot1LocEvbTlvTable_data *lldpV2Xdot1LocEvbTlvTable_duplicate(struct lldpV2Xdot1LocEvbTlvTable_data *); 212 | int lldpV2Xdot1LocEvbTlvTable_destroy(struct lldpV2Xdot1LocEvbTlvTable_data **); 213 | int lldpV2Xdot1LocEvbTlvTable_add(struct lldpV2Xdot1LocEvbTlvTable_data *); 214 | int lldpV2Xdot1LocEvbTlvTable_del(struct lldpV2Xdot1LocEvbTlvTable_data *); 215 | void parse_lldpV2Xdot1LocEvbTlvTable(const char *, char *); 216 | SNMPCallback store_lldpV2Xdot1LocEvbTlvTable; 217 | void refresh_lldpV2Xdot1LocEvbTlvTable(int); 218 | FindVarMethod var_lldpV2Xdot1LocCdcpTlvTable; 219 | struct lldpV2Xdot1LocCdcpTlvTable_data *lldpV2Xdot1LocCdcpTlvTable_create(void); 220 | struct lldpV2Xdot1LocCdcpTlvTable_data *lldpV2Xdot1LocCdcpTlvTable_duplicate(struct lldpV2Xdot1LocCdcpTlvTable_data *); 221 | int lldpV2Xdot1LocCdcpTlvTable_destroy(struct lldpV2Xdot1LocCdcpTlvTable_data **); 222 | int lldpV2Xdot1LocCdcpTlvTable_add(struct lldpV2Xdot1LocCdcpTlvTable_data *); 223 | int lldpV2Xdot1LocCdcpTlvTable_del(struct lldpV2Xdot1LocCdcpTlvTable_data *); 224 | void parse_lldpV2Xdot1LocCdcpTlvTable(const char *, char *); 225 | SNMPCallback store_lldpV2Xdot1LocCdcpTlvTable; 226 | void refresh_lldpV2Xdot1LocCdcpTlvTable(int); 227 | FindVarMethod var_lldpV2Xdot1RemEvbTlvTable; 228 | struct lldpV2Xdot1RemEvbTlvTable_data *lldpV2Xdot1RemEvbTlvTable_create(void); 229 | struct lldpV2Xdot1RemEvbTlvTable_data *lldpV2Xdot1RemEvbTlvTable_duplicate(struct lldpV2Xdot1RemEvbTlvTable_data *); 230 | int lldpV2Xdot1RemEvbTlvTable_destroy(struct lldpV2Xdot1RemEvbTlvTable_data **); 231 | int lldpV2Xdot1RemEvbTlvTable_add(struct lldpV2Xdot1RemEvbTlvTable_data *); 232 | int lldpV2Xdot1RemEvbTlvTable_del(struct lldpV2Xdot1RemEvbTlvTable_data *); 233 | void parse_lldpV2Xdot1RemEvbTlvTable(const char *, char *); 234 | SNMPCallback store_lldpV2Xdot1RemEvbTlvTable; 235 | void refresh_lldpV2Xdot1RemEvbTlvTable(int); 236 | FindVarMethod var_lldpV2Xdot1RemCdcpTlvTable; 237 | struct lldpV2Xdot1RemCdcpTlvTable_data *lldpV2Xdot1RemCdcpTlvTable_create(void); 238 | struct lldpV2Xdot1RemCdcpTlvTable_data *lldpV2Xdot1RemCdcpTlvTable_duplicate(struct lldpV2Xdot1RemCdcpTlvTable_data *); 239 | int lldpV2Xdot1RemCdcpTlvTable_destroy(struct lldpV2Xdot1RemCdcpTlvTable_data **); 240 | int lldpV2Xdot1RemCdcpTlvTable_add(struct lldpV2Xdot1RemCdcpTlvTable_data *); 241 | int lldpV2Xdot1RemCdcpTlvTable_del(struct lldpV2Xdot1RemCdcpTlvTable_data *); 242 | void parse_lldpV2Xdot1RemCdcpTlvTable(const char *, char *); 243 | SNMPCallback store_lldpV2Xdot1RemCdcpTlvTable; 244 | void refresh_lldpV2Xdot1RemCdcpTlvTable(int); 245 | 246 | WriteMethod write_lldpXdot1EvbConfigEvbTxEnable; 247 | WriteMethod write_lldpXdot1EvbConfigCdcpTxEnable; 248 | #endif /* __LOCAL_LLDPXDOT1EVBEXTENSIONS_H__ */ 249 | -------------------------------------------------------------------------------- /src/snmp/ieee8021EcmpMib.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/ieee8021ecmpmib.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_IEEE8021ECMPMIB_H__ 51 | #define __LOCAL_IEEE8021ECMPMIB_H__ 52 | 53 | /* 54 | * This file was generated by mib2c and is intended for use as a mib module 55 | * for the ucd-snmp snmpd agent. 56 | */ 57 | 58 | extern const char sa_program[]; 59 | extern int sa_fclose; /* default close files between requests */ 60 | extern int sa_changed; /* indication to reread MIB configuration */ 61 | extern int sa_stats_refresh; /* indications that statistics, the mib or its tables need to be refreshed */ 62 | extern int sa_request; /* request number for per-request actions */ 63 | 64 | /* our storage structure(s) */ 65 | struct ieee8021EcmpMib_data { 66 | struct ieee8021EcmpMib_data *ieee8021EcmpMib_old; 67 | uint ieee8021EcmpMib_rsvs; 68 | uint ieee8021EcmpMib_tsts; 69 | uint ieee8021EcmpMib_sets; 70 | uint ieee8021EcmpMib_request; 71 | }; 72 | struct ieee8021QBridgeEcmpFdbTable_data { 73 | struct ieee8021QBridgeEcmpFdbTable_data *ieee8021QBridgeEcmpFdbTable_old; 74 | uint ieee8021QBridgeEcmpFdbTable_rsvs; 75 | uint ieee8021QBridgeEcmpFdbTable_tsts; 76 | uint ieee8021QBridgeEcmpFdbTable_sets; 77 | uint ieee8021QBridgeEcmpFdbTable_request; 78 | uint ieee8021QBridgeEcmpFdbTable_refs; 79 | uint ieee8021QBridgeEcmpFdbTable_id; 80 | ulong ieee8021QBridgeFdbComponentId; /* NoAccess */ 81 | ulong ieee8021QBridgeFdbId; /* NoAccess */ 82 | uint8_t *ieee8021QBridgeTpFdbAddress; /* NoAccess */ 83 | size_t ieee8021QBridgeTpFdbAddressLen; 84 | uint8_t *ieee8021QBridgeEcmpFdbPortList; /* ReadOnly */ 85 | size_t ieee8021QBridgeEcmpFdbPortListLen; 86 | }; 87 | struct ieee8021EcmpFlowFilterCtlTable_data { 88 | struct ieee8021EcmpFlowFilterCtlTable_data *ieee8021EcmpFlowFilterCtlTable_old; 89 | uint ieee8021EcmpFlowFilterCtlTable_rsvs; 90 | uint ieee8021EcmpFlowFilterCtlTable_tsts; 91 | uint ieee8021EcmpFlowFilterCtlTable_sets; 92 | uint ieee8021EcmpFlowFilterCtlTable_request; 93 | uint ieee8021EcmpFlowFilterCtlTable_refs; 94 | uint ieee8021EcmpFlowFilterCtlTable_id; 95 | ulong ieee8021BridgeBasePortComponentId; /* NoAccess */ 96 | ulong ieee8021BridgeBasePort; /* NoAccess */ 97 | long ieee8021EcmpFlowFilterCtlVid; /* NoAccess */ 98 | long ieee8021EcmpFlowFilterCtlEnabled; /* ReadOnly */ 99 | long ieee8021EcmpFlowFilterCtlHashGen; /* ReadOnly */ 100 | long ieee8021EcmpFlowFilterCtlTtl; /* ReadWrite */ 101 | }; 102 | struct ieee8021EcmpEctStaticTable_data { 103 | struct ieee8021EcmpEctStaticTable_data *ieee8021EcmpEctStaticTable_old; 104 | uint ieee8021EcmpEctStaticTable_rsvs; 105 | uint ieee8021EcmpEctStaticTable_tsts; 106 | uint ieee8021EcmpEctStaticTable_sets; 107 | uint ieee8021EcmpEctStaticTable_request; 108 | uint ieee8021EcmpEctStaticTable_refs; 109 | uint ieee8021EcmpEctStaticTable_id; 110 | ulong ieee8021SpbTopIx; /* NoAccess */ 111 | long ieee8021EcmpEctStaticEntryTieBreakMask; /* NoAccess */ 112 | uint8_t *ieee8021EcmpEctStaticEntryBridgePriority; /* Create */ 113 | size_t ieee8021EcmpEctStaticEntryBridgePriorityLen; 114 | long ieee8021EcmpEctStaticEntryRowStatus; /* Create */ 115 | }; 116 | struct ieee8021EcmpTopSrvTable_data { 117 | struct ieee8021EcmpTopSrvTable_data *ieee8021EcmpTopSrvTable_old; 118 | uint ieee8021EcmpTopSrvTable_rsvs; 119 | uint ieee8021EcmpTopSrvTable_tsts; 120 | uint ieee8021EcmpTopSrvTable_sets; 121 | uint ieee8021EcmpTopSrvTable_request; 122 | uint ieee8021EcmpTopSrvTable_refs; 123 | uint ieee8021EcmpTopSrvTable_id; 124 | ulong ieee8021SpbmTopSrvEntryTopIx; /* NoAccess */ 125 | uint8_t *ieee8021SpbmTopSrvEntrySysId; /* NoAccess */ 126 | size_t ieee8021SpbmTopSrvEntrySysIdLen; 127 | ulong ieee8021SpbmTopSrvEntryIsid; /* NoAccess */ 128 | long ieee8021SpbmTopSrvEntryBaseVid; /* NoAccess */ 129 | uint8_t *ieee8021SpbmTopSrvEntryMac; /* NoAccess */ 130 | size_t ieee8021SpbmTopSrvEntryMacLen; 131 | long ieee8021EcmpTopSrvEntryTsBit; /* ReadOnly */ 132 | long ieee8021EcmpTopSrvEntryTieBreakMask; /* ReadOnly */ 133 | }; 134 | struct ieee8021QBridgePortVlanTtlStatisticsTable_data { 135 | struct ieee8021QBridgePortVlanTtlStatisticsTable_data *ieee8021QBridgePortVlanTtlStatisticsTable_old; 136 | uint ieee8021QBridgePortVlanTtlStatisticsTable_rsvs; 137 | uint ieee8021QBridgePortVlanTtlStatisticsTable_tsts; 138 | uint ieee8021QBridgePortVlanTtlStatisticsTable_sets; 139 | uint ieee8021QBridgePortVlanTtlStatisticsTable_request; 140 | uint ieee8021QBridgePortVlanTtlStatisticsTable_refs; 141 | uint ieee8021QBridgePortVlanTtlStatisticsTable_id; 142 | ulong ieee8021BridgeBasePortComponentId; /* NoAccess */ 143 | ulong ieee8021BridgeBasePort; /* NoAccess */ 144 | ulong ieee8021QBridgeVlanIndex; /* NoAccess */ 145 | struct counter64 ieee8021QBridgeTpVlanPortTtlDiscards; /* ReadOnly */ 146 | }; 147 | 148 | /* storage declarations */ 149 | extern struct ieee8021EcmpMib_data *ieee8021EcmpMibStorage; 150 | extern struct header_complex_index *ieee8021QBridgeEcmpFdbTableStorage; 151 | extern struct header_complex_index *ieee8021EcmpFlowFilterCtlTableStorage; 152 | extern struct header_complex_index *ieee8021EcmpEctStaticTableStorage; 153 | extern struct header_complex_index *ieee8021EcmpTopSrvTableStorage; 154 | extern struct header_complex_index *ieee8021QBridgePortVlanTtlStatisticsTableStorage; 155 | 156 | /* enum definitions from the covered mib sections */ 157 | 158 | #define IEEE8021ECMPFLOWFILTERCTLENABLED_TRUE 1 159 | #define IEEE8021ECMPFLOWFILTERCTLENABLED_FALSE 2 160 | 161 | #define IEEE8021ECMPFLOWFILTERCTLHASHGEN_TRUE 1 162 | #define IEEE8021ECMPFLOWFILTERCTLHASHGEN_FALSE 2 163 | 164 | #define IEEE8021ECMPTOPSRVENTRYTSBIT_TRUE 1 165 | #define IEEE8021ECMPTOPSRVENTRYTSBIT_FALSE 2 166 | 167 | /* notifications */ 168 | 169 | /* scalars accessible only for notify */ 170 | 171 | /* object id definitions */ 172 | extern oid ieee8021QBridgeEcmpFdbGroup_oid[11]; 173 | extern oid ieee8021EcmpFlowFilterCtlGroup_oid[11]; 174 | extern oid ieee8021EcmpEctStaticGroup_oid[11]; 175 | extern oid ieee8021EcmpTopSrvGroup_oid[11]; 176 | extern oid ieee8021QBridgePortVlanTtlStatisticsGroup_oid[11]; 177 | extern oid ieee8021EcmpCompliance_oid[11]; 178 | extern oid ieee8021EcmpFlowFilteringCompliance_oid[11]; 179 | 180 | /* function prototypes */ 181 | /* trap function prototypes */ 182 | 183 | /* variable function prototypes */ 184 | void init_ieee8021EcmpMib(void); 185 | void deinit_ieee8021EcmpMib(void); 186 | int term_ieee8021EcmpMib(int majorID, int minorID, void *serverarg, void *clientarg); 187 | FindVarMethod var_ieee8021EcmpMib; 188 | struct ieee8021EcmpMib_data *ieee8021EcmpMib_create(void); 189 | struct ieee8021EcmpMib_data *ieee8021EcmpMib_duplicate(struct ieee8021EcmpMib_data *); 190 | int ieee8021EcmpMib_destroy(struct ieee8021EcmpMib_data **); 191 | int ieee8021EcmpMib_add(struct ieee8021EcmpMib_data *); 192 | void parse_ieee8021EcmpMib(const char *, char *); 193 | SNMPCallback store_ieee8021EcmpMib; 194 | void refresh_ieee8021EcmpMib(int); 195 | FindVarMethod var_ieee8021QBridgeEcmpFdbTable; 196 | struct ieee8021QBridgeEcmpFdbTable_data *ieee8021QBridgeEcmpFdbTable_create(void); 197 | struct ieee8021QBridgeEcmpFdbTable_data *ieee8021QBridgeEcmpFdbTable_duplicate(struct ieee8021QBridgeEcmpFdbTable_data *); 198 | int ieee8021QBridgeEcmpFdbTable_destroy(struct ieee8021QBridgeEcmpFdbTable_data **); 199 | int ieee8021QBridgeEcmpFdbTable_add(struct ieee8021QBridgeEcmpFdbTable_data *); 200 | int ieee8021QBridgeEcmpFdbTable_del(struct ieee8021QBridgeEcmpFdbTable_data *); 201 | void parse_ieee8021QBridgeEcmpFdbTable(const char *, char *); 202 | SNMPCallback store_ieee8021QBridgeEcmpFdbTable; 203 | void refresh_ieee8021QBridgeEcmpFdbTable(int); 204 | FindVarMethod var_ieee8021EcmpFlowFilterCtlTable; 205 | struct ieee8021EcmpFlowFilterCtlTable_data *ieee8021EcmpFlowFilterCtlTable_create(void); 206 | struct ieee8021EcmpFlowFilterCtlTable_data *ieee8021EcmpFlowFilterCtlTable_duplicate(struct ieee8021EcmpFlowFilterCtlTable_data *); 207 | int ieee8021EcmpFlowFilterCtlTable_destroy(struct ieee8021EcmpFlowFilterCtlTable_data **); 208 | int ieee8021EcmpFlowFilterCtlTable_add(struct ieee8021EcmpFlowFilterCtlTable_data *); 209 | int ieee8021EcmpFlowFilterCtlTable_del(struct ieee8021EcmpFlowFilterCtlTable_data *); 210 | void parse_ieee8021EcmpFlowFilterCtlTable(const char *, char *); 211 | SNMPCallback store_ieee8021EcmpFlowFilterCtlTable; 212 | void refresh_ieee8021EcmpFlowFilterCtlTable(int); 213 | FindVarMethod var_ieee8021EcmpEctStaticTable; 214 | struct ieee8021EcmpEctStaticTable_data *ieee8021EcmpEctStaticTable_create(void); 215 | struct ieee8021EcmpEctStaticTable_data *ieee8021EcmpEctStaticTable_duplicate(struct ieee8021EcmpEctStaticTable_data *); 216 | int ieee8021EcmpEctStaticTable_destroy(struct ieee8021EcmpEctStaticTable_data **); 217 | int ieee8021EcmpEctStaticTable_add(struct ieee8021EcmpEctStaticTable_data *); 218 | int ieee8021EcmpEctStaticTable_del(struct ieee8021EcmpEctStaticTable_data *); 219 | void parse_ieee8021EcmpEctStaticTable(const char *, char *); 220 | SNMPCallback store_ieee8021EcmpEctStaticTable; 221 | void refresh_ieee8021EcmpEctStaticTable(int); 222 | FindVarMethod var_ieee8021EcmpTopSrvTable; 223 | struct ieee8021EcmpTopSrvTable_data *ieee8021EcmpTopSrvTable_create(void); 224 | struct ieee8021EcmpTopSrvTable_data *ieee8021EcmpTopSrvTable_duplicate(struct ieee8021EcmpTopSrvTable_data *); 225 | int ieee8021EcmpTopSrvTable_destroy(struct ieee8021EcmpTopSrvTable_data **); 226 | int ieee8021EcmpTopSrvTable_add(struct ieee8021EcmpTopSrvTable_data *); 227 | int ieee8021EcmpTopSrvTable_del(struct ieee8021EcmpTopSrvTable_data *); 228 | void parse_ieee8021EcmpTopSrvTable(const char *, char *); 229 | SNMPCallback store_ieee8021EcmpTopSrvTable; 230 | void refresh_ieee8021EcmpTopSrvTable(int); 231 | FindVarMethod var_ieee8021QBridgePortVlanTtlStatisticsTable; 232 | struct ieee8021QBridgePortVlanTtlStatisticsTable_data *ieee8021QBridgePortVlanTtlStatisticsTable_create(void); 233 | struct ieee8021QBridgePortVlanTtlStatisticsTable_data *ieee8021QBridgePortVlanTtlStatisticsTable_duplicate(struct ieee8021QBridgePortVlanTtlStatisticsTable_data *); 234 | int ieee8021QBridgePortVlanTtlStatisticsTable_destroy(struct ieee8021QBridgePortVlanTtlStatisticsTable_data **); 235 | int ieee8021QBridgePortVlanTtlStatisticsTable_add(struct ieee8021QBridgePortVlanTtlStatisticsTable_data *); 236 | int ieee8021QBridgePortVlanTtlStatisticsTable_del(struct ieee8021QBridgePortVlanTtlStatisticsTable_data *); 237 | void parse_ieee8021QBridgePortVlanTtlStatisticsTable(const char *, char *); 238 | SNMPCallback store_ieee8021QBridgePortVlanTtlStatisticsTable; 239 | void refresh_ieee8021QBridgePortVlanTtlStatisticsTable(int); 240 | 241 | WriteMethod write_ieee8021EcmpFlowFilterCtlTtl; 242 | WriteMethod write_ieee8021EcmpEctStaticEntryBridgePriority; 243 | WriteMethod write_ieee8021EcmpEctStaticEntryRowStatus; 244 | #endif /* __LOCAL_IEEE8021ECMPMIB_H__ */ 245 | -------------------------------------------------------------------------------- /src/snmp/ieee8021TpmrMib.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/ieee8021tpmrmib.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_IEEE8021TPMRMIB_H__ 51 | #define __LOCAL_IEEE8021TPMRMIB_H__ 52 | 53 | /* 54 | * This file was generated by mib2c and is intended for use as a mib module 55 | * for the ucd-snmp snmpd agent. 56 | */ 57 | 58 | extern const char sa_program[]; 59 | extern int sa_fclose; /* default close files between requests */ 60 | extern int sa_changed; /* indication to reread MIB configuration */ 61 | extern int sa_stats_refresh; /* indications that statistics, the mib or its tables need to be refreshed */ 62 | extern int sa_request; /* request number for per-request actions */ 63 | 64 | /* our storage structure(s) */ 65 | struct ieee8021TpmrMib_data { 66 | struct ieee8021TpmrMib_data *ieee8021TpmrMib_old; 67 | uint ieee8021TpmrMib_rsvs; 68 | uint ieee8021TpmrMib_tsts; 69 | uint ieee8021TpmrMib_sets; 70 | uint ieee8021TpmrMib_request; 71 | }; 72 | struct ieee8021TpmrPortTable_data { 73 | struct ieee8021TpmrPortTable_data *ieee8021TpmrPortTable_old; 74 | uint ieee8021TpmrPortTable_rsvs; 75 | uint ieee8021TpmrPortTable_tsts; 76 | uint ieee8021TpmrPortTable_sets; 77 | uint ieee8021TpmrPortTable_request; 78 | uint ieee8021TpmrPortTable_refs; 79 | uint ieee8021TpmrPortTable_id; 80 | ulong ieee8021BridgeBasePortComponentId; /* NoAccess */ 81 | ulong ieee8021TpmrPortNumber; /* NoAccess */ 82 | long ieee8021TpmrPortMgmtAddr; /* ReadOnly */ 83 | long ieee8021TpmrPortMgmtAddrForwarding; /* ReadOnly */ 84 | }; 85 | struct ieee8021TpmrPortStatsTable_data { 86 | struct ieee8021TpmrPortStatsTable_data *ieee8021TpmrPortStatsTable_old; 87 | uint ieee8021TpmrPortStatsTable_rsvs; 88 | uint ieee8021TpmrPortStatsTable_tsts; 89 | uint ieee8021TpmrPortStatsTable_sets; 90 | uint ieee8021TpmrPortStatsTable_request; 91 | uint ieee8021TpmrPortStatsTable_refs; 92 | uint ieee8021TpmrPortStatsTable_id; 93 | ulong ieee8021BridgeBasePortComponentId; /* NoAccess */ 94 | ulong ieee8021TpmrPortNumber; /* NoAccess */ 95 | struct counter64 ieee8021TpmrPortStatsRxFrames; /* ReadOnly */ 96 | struct counter64 ieee8021TpmrPortStatsRxOctets; /* ReadOnly */ 97 | struct counter64 ieee8021TpmrPortStatsFramesForwarded; /* ReadOnly */ 98 | struct counter64 ieee8021TpmrPortStatsFramesDiscarded; /* ReadOnly */ 99 | struct counter64 ieee8021TpmrPortStatsFramesDiscardedQueueFull; /* ReadOnly */ 100 | struct counter64 ieee8021TpmrPortStatsFramesDiscardedLifetime; /* ReadOnly */ 101 | struct counter64 ieee8021TpmrPortStatsFramesDiscardedError; /* ReadOnly */ 102 | }; 103 | struct ieee8021TpmrPortDiscardDetailsTable_data { 104 | struct ieee8021TpmrPortDiscardDetailsTable_data *ieee8021TpmrPortDiscardDetailsTable_old; 105 | uint ieee8021TpmrPortDiscardDetailsTable_rsvs; 106 | uint ieee8021TpmrPortDiscardDetailsTable_tsts; 107 | uint ieee8021TpmrPortDiscardDetailsTable_sets; 108 | uint ieee8021TpmrPortDiscardDetailsTable_request; 109 | uint ieee8021TpmrPortDiscardDetailsTable_refs; 110 | uint ieee8021TpmrPortDiscardDetailsTable_id; 111 | ulong ieee8021BridgeBasePortComponentId; /* NoAccess */ 112 | ulong ieee8021TpmrPortNumber; /* NoAccess */ 113 | ulong ieee8021TpmrPortDiscardDetailsIndex; /* NoAccess */ 114 | uint8_t *ieee8021TpmrPortDiscardDetailsSource; /* ReadOnly */ 115 | size_t ieee8021TpmrPortDiscardDetailsSourceLen; 116 | long ieee8021TpmrPortDiscardDetailsReason; /* ReadOnly */ 117 | }; 118 | struct ieee8021TpmrMspTable_data { 119 | struct ieee8021TpmrMspTable_data *ieee8021TpmrMspTable_old; 120 | uint ieee8021TpmrMspTable_rsvs; 121 | uint ieee8021TpmrMspTable_tsts; 122 | uint ieee8021TpmrMspTable_sets; 123 | uint ieee8021TpmrMspTable_request; 124 | uint ieee8021TpmrMspTable_refs; 125 | uint ieee8021TpmrMspTable_id; 126 | ulong ieee8021BridgeBasePortComponentId; /* NoAccess */ 127 | ulong ieee8021TpmrPortNumber; /* NoAccess */ 128 | long ieee8021TpmrMspLinkNotify; /* ReadWrite */ 129 | long ieee8021TpmrMspLinkNotifyWait; /* ReadWrite */ 130 | long ieee8021TpmrMspLinkNotifyRetry; /* ReadWrite */ 131 | long ieee8021TpmrMspMacNotify; /* ReadWrite */ 132 | long ieee8021TpmrMspMacNotifyTime; /* ReadWrite */ 133 | long ieee8021TpmrMspMacRecoverTime; /* ReadWrite */ 134 | long ieee8021TpmrMspStorageType; /* ReadWrite */ 135 | }; 136 | struct ieee8021TpmrMspStatsTable_data { 137 | struct ieee8021TpmrMspStatsTable_data *ieee8021TpmrMspStatsTable_old; 138 | uint ieee8021TpmrMspStatsTable_rsvs; 139 | uint ieee8021TpmrMspStatsTable_tsts; 140 | uint ieee8021TpmrMspStatsTable_sets; 141 | uint ieee8021TpmrMspStatsTable_request; 142 | uint ieee8021TpmrMspStatsTable_refs; 143 | uint ieee8021TpmrMspStatsTable_id; 144 | ulong ieee8021BridgeBasePortComponentId; /* NoAccess */ 145 | ulong ieee8021TpmrPortNumber; /* NoAccess */ 146 | long ieee8021TpmrMspStatsTxAcks; /* ReadOnly */ 147 | long ieee8021TpmrMspStatsTxAddNotifications; /* ReadOnly */ 148 | long ieee8021TpmrMspStatsTxAddConfirmations; /* ReadOnly */ 149 | long ieee8021TpmrMspStatsTxLossNotifications; /* ReadOnly */ 150 | long ieee8021TpmrMspStatsTxLossConfirmations; /* ReadOnly */ 151 | long ieee8021TpmrMspStatsRxAcks; /* ReadOnly */ 152 | long ieee8021TpmrMspStatsRxAddNotifications; /* ReadOnly */ 153 | long ieee8021TpmrMspStatsRxAddConfirmations; /* ReadOnly */ 154 | long ieee8021TpmrMspStatsRxLossNotifications; /* ReadOnly */ 155 | long ieee8021TpmrMspStatsRxLossConfirmations; /* ReadOnly */ 156 | long ieee8021TpmrMspStatsAddEvents; /* ReadOnly */ 157 | long ieee8021TpmrMspStatsLossEvents; /* ReadOnly */ 158 | long ieee8021TpmrMspStatsMacStatusNotifications; /* ReadOnly */ 159 | }; 160 | 161 | /* storage declarations */ 162 | extern struct ieee8021TpmrMib_data *ieee8021TpmrMibStorage; 163 | extern struct header_complex_index *ieee8021TpmrPortTableStorage; 164 | extern struct header_complex_index *ieee8021TpmrPortStatsTableStorage; 165 | extern struct header_complex_index *ieee8021TpmrPortDiscardDetailsTableStorage; 166 | extern struct header_complex_index *ieee8021TpmrMspTableStorage; 167 | extern struct header_complex_index *ieee8021TpmrMspStatsTableStorage; 168 | 169 | /* enum definitions from the covered mib sections */ 170 | 171 | #define IEEE8021TPMRPORTMGMTADDR_TRUE 1 172 | #define IEEE8021TPMRPORTMGMTADDR_FALSE 2 173 | 174 | #define IEEE8021TPMRPORTMGMTADDRFORWARDING_TRUE 1 175 | #define IEEE8021TPMRPORTMGMTADDRFORWARDING_FALSE 2 176 | 177 | #define IEEE8021TPMRPORTDISCARDDETAILSREASON_TXSDUSIZEEXCEEDED 1 178 | 179 | #define IEEE8021TPMRMSPLINKNOTIFY_TRUE 1 180 | #define IEEE8021TPMRMSPLINKNOTIFY_FALSE 2 181 | 182 | #define IEEE8021TPMRMSPMACNOTIFY_TRUE 1 183 | #define IEEE8021TPMRMSPMACNOTIFY_FALSE 2 184 | 185 | /* notifications */ 186 | 187 | /* scalars accessible only for notify */ 188 | 189 | /* object id definitions */ 190 | extern oid ieee8021TpmrCompliance_oid[11]; 191 | extern oid ieee8021TpmrPortGroup_oid[11]; 192 | extern oid ieee8021TpmrPortStatsGroup_oid[11]; 193 | extern oid ieee8021TpmrPortDiscardDetailsGroup_oid[11]; 194 | extern oid ieee8021TpmrMspGroup_oid[11]; 195 | extern oid ieee8021TpmrMspStatsGroup_oid[11]; 196 | 197 | /* function prototypes */ 198 | /* trap function prototypes */ 199 | 200 | /* variable function prototypes */ 201 | void init_ieee8021TpmrMib(void); 202 | void deinit_ieee8021TpmrMib(void); 203 | int term_ieee8021TpmrMib(int majorID, int minorID, void *serverarg, void *clientarg); 204 | FindVarMethod var_ieee8021TpmrMib; 205 | struct ieee8021TpmrMib_data *ieee8021TpmrMib_create(void); 206 | struct ieee8021TpmrMib_data *ieee8021TpmrMib_duplicate(struct ieee8021TpmrMib_data *); 207 | int ieee8021TpmrMib_destroy(struct ieee8021TpmrMib_data **); 208 | int ieee8021TpmrMib_add(struct ieee8021TpmrMib_data *); 209 | void parse_ieee8021TpmrMib(const char *, char *); 210 | SNMPCallback store_ieee8021TpmrMib; 211 | void refresh_ieee8021TpmrMib(int); 212 | FindVarMethod var_ieee8021TpmrPortTable; 213 | struct ieee8021TpmrPortTable_data *ieee8021TpmrPortTable_create(void); 214 | struct ieee8021TpmrPortTable_data *ieee8021TpmrPortTable_duplicate(struct ieee8021TpmrPortTable_data *); 215 | int ieee8021TpmrPortTable_destroy(struct ieee8021TpmrPortTable_data **); 216 | int ieee8021TpmrPortTable_add(struct ieee8021TpmrPortTable_data *); 217 | int ieee8021TpmrPortTable_del(struct ieee8021TpmrPortTable_data *); 218 | void parse_ieee8021TpmrPortTable(const char *, char *); 219 | SNMPCallback store_ieee8021TpmrPortTable; 220 | void refresh_ieee8021TpmrPortTable(int); 221 | FindVarMethod var_ieee8021TpmrPortStatsTable; 222 | struct ieee8021TpmrPortStatsTable_data *ieee8021TpmrPortStatsTable_create(void); 223 | struct ieee8021TpmrPortStatsTable_data *ieee8021TpmrPortStatsTable_duplicate(struct ieee8021TpmrPortStatsTable_data *); 224 | int ieee8021TpmrPortStatsTable_destroy(struct ieee8021TpmrPortStatsTable_data **); 225 | int ieee8021TpmrPortStatsTable_add(struct ieee8021TpmrPortStatsTable_data *); 226 | int ieee8021TpmrPortStatsTable_del(struct ieee8021TpmrPortStatsTable_data *); 227 | void parse_ieee8021TpmrPortStatsTable(const char *, char *); 228 | SNMPCallback store_ieee8021TpmrPortStatsTable; 229 | void refresh_ieee8021TpmrPortStatsTable(int); 230 | FindVarMethod var_ieee8021TpmrPortDiscardDetailsTable; 231 | struct ieee8021TpmrPortDiscardDetailsTable_data *ieee8021TpmrPortDiscardDetailsTable_create(void); 232 | struct ieee8021TpmrPortDiscardDetailsTable_data *ieee8021TpmrPortDiscardDetailsTable_duplicate(struct ieee8021TpmrPortDiscardDetailsTable_data *); 233 | int ieee8021TpmrPortDiscardDetailsTable_destroy(struct ieee8021TpmrPortDiscardDetailsTable_data **); 234 | int ieee8021TpmrPortDiscardDetailsTable_add(struct ieee8021TpmrPortDiscardDetailsTable_data *); 235 | int ieee8021TpmrPortDiscardDetailsTable_del(struct ieee8021TpmrPortDiscardDetailsTable_data *); 236 | void parse_ieee8021TpmrPortDiscardDetailsTable(const char *, char *); 237 | SNMPCallback store_ieee8021TpmrPortDiscardDetailsTable; 238 | void refresh_ieee8021TpmrPortDiscardDetailsTable(int); 239 | FindVarMethod var_ieee8021TpmrMspTable; 240 | struct ieee8021TpmrMspTable_data *ieee8021TpmrMspTable_create(void); 241 | struct ieee8021TpmrMspTable_data *ieee8021TpmrMspTable_duplicate(struct ieee8021TpmrMspTable_data *); 242 | int ieee8021TpmrMspTable_destroy(struct ieee8021TpmrMspTable_data **); 243 | int ieee8021TpmrMspTable_add(struct ieee8021TpmrMspTable_data *); 244 | int ieee8021TpmrMspTable_del(struct ieee8021TpmrMspTable_data *); 245 | void parse_ieee8021TpmrMspTable(const char *, char *); 246 | SNMPCallback store_ieee8021TpmrMspTable; 247 | void refresh_ieee8021TpmrMspTable(int); 248 | FindVarMethod var_ieee8021TpmrMspStatsTable; 249 | struct ieee8021TpmrMspStatsTable_data *ieee8021TpmrMspStatsTable_create(void); 250 | struct ieee8021TpmrMspStatsTable_data *ieee8021TpmrMspStatsTable_duplicate(struct ieee8021TpmrMspStatsTable_data *); 251 | int ieee8021TpmrMspStatsTable_destroy(struct ieee8021TpmrMspStatsTable_data **); 252 | int ieee8021TpmrMspStatsTable_add(struct ieee8021TpmrMspStatsTable_data *); 253 | int ieee8021TpmrMspStatsTable_del(struct ieee8021TpmrMspStatsTable_data *); 254 | void parse_ieee8021TpmrMspStatsTable(const char *, char *); 255 | SNMPCallback store_ieee8021TpmrMspStatsTable; 256 | void refresh_ieee8021TpmrMspStatsTable(int); 257 | 258 | WriteMethod write_ieee8021TpmrMspLinkNotify; 259 | WriteMethod write_ieee8021TpmrMspLinkNotifyWait; 260 | WriteMethod write_ieee8021TpmrMspLinkNotifyRetry; 261 | WriteMethod write_ieee8021TpmrMspMacNotify; 262 | WriteMethod write_ieee8021TpmrMspMacNotifyTime; 263 | WriteMethod write_ieee8021TpmrMspMacRecoverTime; 264 | WriteMethod write_ieee8021TpmrMspStorageType; 265 | #endif /* __LOCAL_IEEE8021TPMRMIB_H__ */ 266 | -------------------------------------------------------------------------------- /src/snmp/ieee8021SpanningTreeMib.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/ieee8021spanningtreemib.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_IEEE8021SPANNINGTREEMIB_H__ 51 | #define __LOCAL_IEEE8021SPANNINGTREEMIB_H__ 52 | 53 | /* 54 | * This file was generated by mib2c and is intended for use as a mib module 55 | * for the ucd-snmp snmpd agent. 56 | */ 57 | 58 | extern const char sa_program[]; 59 | extern int sa_fclose; /* default close files between requests */ 60 | extern int sa_changed; /* indication to reread MIB configuration */ 61 | extern int sa_stats_refresh; /* indications that statistics, the mib or its tables need to be refreshed */ 62 | extern int sa_request; /* request number for per-request actions */ 63 | 64 | /* our storage structure(s) */ 65 | struct ieee8021SpanningTreeMib_data { 66 | struct ieee8021SpanningTreeMib_data *ieee8021SpanningTreeMib_old; 67 | uint ieee8021SpanningTreeMib_rsvs; 68 | uint ieee8021SpanningTreeMib_tsts; 69 | uint ieee8021SpanningTreeMib_sets; 70 | uint ieee8021SpanningTreeMib_request; 71 | }; 72 | struct ieee8021SpanningTreeTable_data { 73 | struct ieee8021SpanningTreeTable_data *ieee8021SpanningTreeTable_old; 74 | uint ieee8021SpanningTreeTable_rsvs; 75 | uint ieee8021SpanningTreeTable_tsts; 76 | uint ieee8021SpanningTreeTable_sets; 77 | uint ieee8021SpanningTreeTable_request; 78 | uint ieee8021SpanningTreeTable_refs; 79 | uint ieee8021SpanningTreeTable_id; 80 | ulong ieee8021SpanningTreeComponentId; /* NoAccess */ 81 | long ieee8021SpanningTreeProtocolSpecification; /* ReadOnly */ 82 | long ieee8021SpanningTreePriority; /* ReadWrite */ 83 | long ieee8021SpanningTreeTimeSinceTopologyChange; /* ReadOnly */ 84 | struct counter64 ieee8021SpanningTreeTopChanges; /* ReadOnly */ 85 | uint8_t *ieee8021SpanningTreeDesignatedRoot; /* ReadOnly */ 86 | size_t ieee8021SpanningTreeDesignatedRootLen; 87 | long ieee8021SpanningTreeRootCost; /* ReadOnly */ 88 | ulong ieee8021SpanningTreeRootPort; /* ReadOnly */ 89 | long ieee8021SpanningTreeMaxAge; /* ReadOnly */ 90 | long ieee8021SpanningTreeHelloTime; /* ReadOnly */ 91 | long ieee8021SpanningTreeHoldTime; /* ReadOnly */ 92 | long ieee8021SpanningTreeForwardDelay; /* ReadWrite */ 93 | long ieee8021SpanningTreeBridgeMaxAge; /* ReadWrite */ 94 | long ieee8021SpanningTreeBridgeHelloTime; /* ReadWrite */ 95 | long ieee8021SpanningTreeBridgeForwardDelay; /* ReadWrite */ 96 | long ieee8021SpanningTreeVersion; /* ReadWrite */ 97 | long ieee8021SpanningTreeRstpTxHoldCount; /* ReadWrite */ 98 | }; 99 | struct ieee8021SpanningTreePortTable_data { 100 | struct ieee8021SpanningTreePortTable_data *ieee8021SpanningTreePortTable_old; 101 | uint ieee8021SpanningTreePortTable_rsvs; 102 | uint ieee8021SpanningTreePortTable_tsts; 103 | uint ieee8021SpanningTreePortTable_sets; 104 | uint ieee8021SpanningTreePortTable_request; 105 | uint ieee8021SpanningTreePortTable_refs; 106 | uint ieee8021SpanningTreePortTable_id; 107 | ulong ieee8021SpanningTreePortComponentId; /* NoAccess */ 108 | ulong ieee8021SpanningTreePort; /* NoAccess */ 109 | long ieee8021SpanningTreePortPriority; /* ReadWrite */ 110 | long ieee8021SpanningTreePortState; /* ReadOnly */ 111 | long ieee8021SpanningTreePortEnabled; /* ReadWrite */ 112 | long ieee8021SpanningTreePortPathCost; /* ReadWrite */ 113 | uint8_t *ieee8021SpanningTreePortDesignatedRoot; /* ReadOnly */ 114 | size_t ieee8021SpanningTreePortDesignatedRootLen; 115 | long ieee8021SpanningTreePortDesignatedCost; /* ReadOnly */ 116 | uint8_t *ieee8021SpanningTreePortDesignatedBridge; /* ReadOnly */ 117 | size_t ieee8021SpanningTreePortDesignatedBridgeLen; 118 | uint8_t *ieee8021SpanningTreePortDesignatedPort; /* ReadOnly */ 119 | size_t ieee8021SpanningTreePortDesignatedPortLen; 120 | struct counter64 ieee8021SpanningTreePortForwardTransitions; /* ReadOnly */ 121 | long ieee8021SpanningTreeRstpPortProtocolMigration; /* ReadWrite */ 122 | long ieee8021SpanningTreeRstpPortAdminEdgePort; /* ReadWrite */ 123 | long ieee8021SpanningTreeRstpPortOperEdgePort; /* ReadOnly */ 124 | long ieee8021SpanningTreeRstpPortAdminPathCost; /* ReadWrite */ 125 | }; 126 | struct ieee8021SpanningTreePortExtensionTable_data { 127 | struct ieee8021SpanningTreePortExtensionTable_data *ieee8021SpanningTreePortExtensionTable_old; 128 | uint ieee8021SpanningTreePortExtensionTable_rsvs; 129 | uint ieee8021SpanningTreePortExtensionTable_tsts; 130 | uint ieee8021SpanningTreePortExtensionTable_sets; 131 | uint ieee8021SpanningTreePortExtensionTable_request; 132 | uint ieee8021SpanningTreePortExtensionTable_refs; 133 | uint ieee8021SpanningTreePortExtensionTable_id; 134 | ulong ieee8021SpanningTreePortComponentId; /* NoAccess */ 135 | ulong ieee8021SpanningTreePort; /* NoAccess */ 136 | long ieee8021SpanningTreeRstpPortAutoEdgePort; /* ReadWrite */ 137 | long ieee8021SpanningTreeRstpPortAutoIsolatePort; /* ReadOnly */ 138 | long ieee8021SpanningTreeRstpPortIsolatePort; /* ReadOnly */ 139 | }; 140 | 141 | /* storage declarations */ 142 | extern struct ieee8021SpanningTreeMib_data *ieee8021SpanningTreeMibStorage; 143 | extern struct header_complex_index *ieee8021SpanningTreeTableStorage; 144 | extern struct header_complex_index *ieee8021SpanningTreePortTableStorage; 145 | extern struct header_complex_index *ieee8021SpanningTreePortExtensionTableStorage; 146 | 147 | /* enum definitions from the covered mib sections */ 148 | 149 | #define IEEE8021SPANNINGTREEPROTOCOLSPECIFICATION_UNKNOWN 1 150 | #define IEEE8021SPANNINGTREEPROTOCOLSPECIFICATION_DECLB100 2 151 | #define IEEE8021SPANNINGTREEPROTOCOLSPECIFICATION_IEEE8021D 3 152 | #define IEEE8021SPANNINGTREEPROTOCOLSPECIFICATION_IEEE8021Q 4 153 | 154 | #define IEEE8021SPANNINGTREEVERSION_STP 0 155 | #define IEEE8021SPANNINGTREEVERSION_RSTP 2 156 | #define IEEE8021SPANNINGTREEVERSION_MSTP 3 157 | 158 | #define IEEE8021SPANNINGTREEPORTSTATE_DISABLED 1 159 | #define IEEE8021SPANNINGTREEPORTSTATE_BLOCKING 2 160 | #define IEEE8021SPANNINGTREEPORTSTATE_LISTENING 3 161 | #define IEEE8021SPANNINGTREEPORTSTATE_LEARNING 4 162 | #define IEEE8021SPANNINGTREEPORTSTATE_FORWARDING 5 163 | #define IEEE8021SPANNINGTREEPORTSTATE_BROKEN 6 164 | 165 | #define IEEE8021SPANNINGTREEPORTENABLED_TRUE 1 166 | #define IEEE8021SPANNINGTREEPORTENABLED_FALSE 2 167 | 168 | #define IEEE8021SPANNINGTREERSTPPORTPROTOCOLMIGRATION_TRUE 1 169 | #define IEEE8021SPANNINGTREERSTPPORTPROTOCOLMIGRATION_FALSE 2 170 | 171 | #define IEEE8021SPANNINGTREERSTPPORTADMINEDGEPORT_TRUE 1 172 | #define IEEE8021SPANNINGTREERSTPPORTADMINEDGEPORT_FALSE 2 173 | 174 | #define IEEE8021SPANNINGTREERSTPPORTOPEREDGEPORT_TRUE 1 175 | #define IEEE8021SPANNINGTREERSTPPORTOPEREDGEPORT_FALSE 2 176 | 177 | #define IEEE8021SPANNINGTREERSTPPORTAUTOEDGEPORT_TRUE 1 178 | #define IEEE8021SPANNINGTREERSTPPORTAUTOEDGEPORT_FALSE 2 179 | 180 | #define IEEE8021SPANNINGTREERSTPPORTAUTOISOLATEPORT_TRUE 1 181 | #define IEEE8021SPANNINGTREERSTPPORTAUTOISOLATEPORT_FALSE 2 182 | 183 | #define IEEE8021SPANNINGTREERSTPPORTISOLATEPORT_TRUE 1 184 | #define IEEE8021SPANNINGTREERSTPPORTISOLATEPORT_FALSE 2 185 | 186 | /* notifications */ 187 | extern oid ieee8021SpanningTreeNewRoot_oid[10]; 188 | extern oid ieee8021SpanningTreeTopologyChange_oid[10]; 189 | 190 | /* scalars accessible only for notify */ 191 | 192 | /* object id definitions */ 193 | extern oid ieee8021SpanningTreeCompliance_oid[11]; 194 | extern oid ieee8021SpanningTreeRstpCompliance_oid[11]; 195 | extern oid ieee8021SpanningTreeGroup_oid[11]; 196 | extern oid ieee8021SpanningTreeRstpGroup_oid[11]; 197 | extern oid ieee8021SpanningTreePortGroup_oid[11]; 198 | extern oid ieee8021SpanningTreeRstpPortGroup_oid[11]; 199 | extern oid ieee8021SpanningTreeNotificationGroup_oid[11]; 200 | extern oid ieee8021SpanningTreeRstpFragileGroup_oid[11]; 201 | 202 | /* function prototypes */ 203 | /* trap function prototypes */ 204 | extern void send_ieee8021SpanningTreeNewRoot_v2trap(struct variable_list *); 205 | extern void send_ieee8021SpanningTreeTopologyChange_v2trap(struct variable_list *); 206 | 207 | /* variable function prototypes */ 208 | void init_ieee8021SpanningTreeMib(void); 209 | void deinit_ieee8021SpanningTreeMib(void); 210 | int term_ieee8021SpanningTreeMib(int majorID, int minorID, void *serverarg, void *clientarg); 211 | FindVarMethod var_ieee8021SpanningTreeMib; 212 | struct ieee8021SpanningTreeMib_data *ieee8021SpanningTreeMib_create(void); 213 | struct ieee8021SpanningTreeMib_data *ieee8021SpanningTreeMib_duplicate(struct ieee8021SpanningTreeMib_data *); 214 | int ieee8021SpanningTreeMib_destroy(struct ieee8021SpanningTreeMib_data **); 215 | int ieee8021SpanningTreeMib_add(struct ieee8021SpanningTreeMib_data *); 216 | void parse_ieee8021SpanningTreeMib(const char *, char *); 217 | SNMPCallback store_ieee8021SpanningTreeMib; 218 | void refresh_ieee8021SpanningTreeMib(int); 219 | FindVarMethod var_ieee8021SpanningTreeTable; 220 | struct ieee8021SpanningTreeTable_data *ieee8021SpanningTreeTable_create(void); 221 | struct ieee8021SpanningTreeTable_data *ieee8021SpanningTreeTable_duplicate(struct ieee8021SpanningTreeTable_data *); 222 | int ieee8021SpanningTreeTable_destroy(struct ieee8021SpanningTreeTable_data **); 223 | int ieee8021SpanningTreeTable_add(struct ieee8021SpanningTreeTable_data *); 224 | int ieee8021SpanningTreeTable_del(struct ieee8021SpanningTreeTable_data *); 225 | void parse_ieee8021SpanningTreeTable(const char *, char *); 226 | SNMPCallback store_ieee8021SpanningTreeTable; 227 | void refresh_ieee8021SpanningTreeTable(int); 228 | FindVarMethod var_ieee8021SpanningTreePortTable; 229 | struct ieee8021SpanningTreePortTable_data *ieee8021SpanningTreePortTable_create(void); 230 | struct ieee8021SpanningTreePortTable_data *ieee8021SpanningTreePortTable_duplicate(struct ieee8021SpanningTreePortTable_data *); 231 | int ieee8021SpanningTreePortTable_destroy(struct ieee8021SpanningTreePortTable_data **); 232 | int ieee8021SpanningTreePortTable_add(struct ieee8021SpanningTreePortTable_data *); 233 | int ieee8021SpanningTreePortTable_del(struct ieee8021SpanningTreePortTable_data *); 234 | void parse_ieee8021SpanningTreePortTable(const char *, char *); 235 | SNMPCallback store_ieee8021SpanningTreePortTable; 236 | void refresh_ieee8021SpanningTreePortTable(int); 237 | FindVarMethod var_ieee8021SpanningTreePortExtensionTable; 238 | struct ieee8021SpanningTreePortExtensionTable_data *ieee8021SpanningTreePortExtensionTable_create(void); 239 | struct ieee8021SpanningTreePortExtensionTable_data *ieee8021SpanningTreePortExtensionTable_duplicate(struct ieee8021SpanningTreePortExtensionTable_data *); 240 | int ieee8021SpanningTreePortExtensionTable_destroy(struct ieee8021SpanningTreePortExtensionTable_data **); 241 | int ieee8021SpanningTreePortExtensionTable_add(struct ieee8021SpanningTreePortExtensionTable_data *); 242 | int ieee8021SpanningTreePortExtensionTable_del(struct ieee8021SpanningTreePortExtensionTable_data *); 243 | void parse_ieee8021SpanningTreePortExtensionTable(const char *, char *); 244 | SNMPCallback store_ieee8021SpanningTreePortExtensionTable; 245 | void refresh_ieee8021SpanningTreePortExtensionTable(int); 246 | 247 | WriteMethod write_ieee8021SpanningTreePriority; 248 | WriteMethod write_ieee8021SpanningTreeForwardDelay; 249 | WriteMethod write_ieee8021SpanningTreeBridgeMaxAge; 250 | WriteMethod write_ieee8021SpanningTreeBridgeHelloTime; 251 | WriteMethod write_ieee8021SpanningTreeBridgeForwardDelay; 252 | WriteMethod write_ieee8021SpanningTreeVersion; 253 | WriteMethod write_ieee8021SpanningTreeRstpTxHoldCount; 254 | WriteMethod write_ieee8021SpanningTreePortPriority; 255 | WriteMethod write_ieee8021SpanningTreePortEnabled; 256 | WriteMethod write_ieee8021SpanningTreePortPathCost; 257 | WriteMethod write_ieee8021SpanningTreeRstpPortProtocolMigration; 258 | WriteMethod write_ieee8021SpanningTreeRstpPortAdminEdgePort; 259 | WriteMethod write_ieee8021SpanningTreeRstpPortAdminPathCost; 260 | WriteMethod write_ieee8021SpanningTreeRstpPortAutoEdgePort; 261 | #endif /* __LOCAL_IEEE8021SPANNINGTREEMIB_H__ */ 262 | -------------------------------------------------------------------------------- /src/snmp/ieee8021SrpMib.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/ieee8021srpmib.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_IEEE8021SRPMIB_H__ 51 | #define __LOCAL_IEEE8021SRPMIB_H__ 52 | 53 | /* 54 | * This file was generated by mib2c and is intended for use as a mib module 55 | * for the ucd-snmp snmpd agent. 56 | */ 57 | 58 | extern const char sa_program[]; 59 | extern int sa_fclose; /* default close files between requests */ 60 | extern int sa_changed; /* indication to reread MIB configuration */ 61 | extern int sa_stats_refresh; /* indications that statistics, the mib or its tables need to be refreshed */ 62 | extern int sa_request; /* request number for per-request actions */ 63 | 64 | /* our storage structure(s) */ 65 | struct ieee8021SrpMib_data { 66 | struct ieee8021SrpMib_data *ieee8021SrpMib_old; 67 | uint ieee8021SrpMib_rsvs; 68 | uint ieee8021SrpMib_tsts; 69 | uint ieee8021SrpMib_sets; 70 | uint ieee8021SrpMib_request; 71 | }; 72 | struct ieee8021SrpBridgeBaseTable_data { 73 | struct ieee8021SrpBridgeBaseTable_data *ieee8021SrpBridgeBaseTable_old; 74 | uint ieee8021SrpBridgeBaseTable_rsvs; 75 | uint ieee8021SrpBridgeBaseTable_tsts; 76 | uint ieee8021SrpBridgeBaseTable_sets; 77 | uint ieee8021SrpBridgeBaseTable_request; 78 | uint ieee8021SrpBridgeBaseTable_refs; 79 | uint ieee8021SrpBridgeBaseTable_id; 80 | ulong ieee8021BridgeBaseComponentId; /* NoAccess */ 81 | long ieee8021SrpBridgeBaseMsrpEnabledStatus; /* Create */ 82 | long ieee8021SrpBridgeBaseMsrpTalkerPruning; /* Create */ 83 | ulong ieee8021SrpBridgeBaseMsrpMaxFanInPorts; /* Create */ 84 | ulong ieee8021SrpBridgeBaseMsrpLatencyMaxFrameSize; /* Create */ 85 | }; 86 | struct ieee8021SrpBridgePortTable_data { 87 | struct ieee8021SrpBridgePortTable_data *ieee8021SrpBridgePortTable_old; 88 | uint ieee8021SrpBridgePortTable_rsvs; 89 | uint ieee8021SrpBridgePortTable_tsts; 90 | uint ieee8021SrpBridgePortTable_sets; 91 | uint ieee8021SrpBridgePortTable_request; 92 | uint ieee8021SrpBridgePortTable_refs; 93 | uint ieee8021SrpBridgePortTable_id; 94 | ulong ieee8021BridgeBasePortComponentId; /* NoAccess */ 95 | ulong ieee8021BridgeBasePort; /* NoAccess */ 96 | long ieee8021SrpBridgePortMsrpEnabledStatus; /* Create */ 97 | struct counter64 ieee8021SrpBridgePortMsrpFailedRegistrations; /* ReadOnly */ 98 | uint8_t *ieee8021SrpBridgePortMsrpLastPduOrigin; /* ReadOnly */ 99 | size_t ieee8021SrpBridgePortMsrpLastPduOriginLen; 100 | ulong ieee8021SrpBridgePortSrPvid; /* Create */ 101 | }; 102 | struct ieee8021SrpLatencyTable_data { 103 | struct ieee8021SrpLatencyTable_data *ieee8021SrpLatencyTable_old; 104 | uint ieee8021SrpLatencyTable_rsvs; 105 | uint ieee8021SrpLatencyTable_tsts; 106 | uint ieee8021SrpLatencyTable_sets; 107 | uint ieee8021SrpLatencyTable_request; 108 | uint ieee8021SrpLatencyTable_refs; 109 | uint ieee8021SrpLatencyTable_id; 110 | ulong ieee8021BridgeBaseComponentId; /* NoAccess */ 111 | ulong ieee8021BridgeBasePort; /* NoAccess */ 112 | ulong ieee8021SrpTrafficClass; /* NoAccess */ 113 | ulong ieee8021SrpPortTcLatency; /* ReadOnly */ 114 | }; 115 | struct ieee8021SrpStreamTable_data { 116 | struct ieee8021SrpStreamTable_data *ieee8021SrpStreamTable_old; 117 | uint ieee8021SrpStreamTable_rsvs; 118 | uint ieee8021SrpStreamTable_tsts; 119 | uint ieee8021SrpStreamTable_sets; 120 | uint ieee8021SrpStreamTable_request; 121 | uint ieee8021SrpStreamTable_refs; 122 | uint ieee8021SrpStreamTable_id; 123 | uint8_t *ieee8021SrpStreamId; /* NoAccess */ 124 | size_t ieee8021SrpStreamIdLen; 125 | uint8_t *ieee8021SrpStreamDestinationAddress; /* ReadOnly */ 126 | size_t ieee8021SrpStreamDestinationAddressLen; 127 | ulong ieee8021SrpStreamVlanId; /* ReadOnly */ 128 | ulong ieee8021SrpStreamTspecMaxFrameSize; /* ReadOnly */ 129 | ulong ieee8021SrpStreamTspecMaxIntervalFrames; /* ReadOnly */ 130 | long ieee8021SrpStreamDataFramePriority; /* ReadOnly */ 131 | long ieee8021SrpStreamRank; /* ReadOnly */ 132 | }; 133 | struct ieee8021SrpReservationsTable_data { 134 | struct ieee8021SrpReservationsTable_data *ieee8021SrpReservationsTable_old; 135 | uint ieee8021SrpReservationsTable_rsvs; 136 | uint ieee8021SrpReservationsTable_tsts; 137 | uint ieee8021SrpReservationsTable_sets; 138 | uint ieee8021SrpReservationsTable_request; 139 | uint ieee8021SrpReservationsTable_refs; 140 | uint ieee8021SrpReservationsTable_id; 141 | ulong ieee8021BridgeBaseComponentId; /* NoAccess */ 142 | ulong ieee8021BridgeBasePort; /* NoAccess */ 143 | uint8_t *ieee8021SrpReservationStreamId; /* NoAccess */ 144 | size_t ieee8021SrpReservationStreamIdLen; 145 | long ieee8021SrpReservationDirection; /* NoAccess */ 146 | long ieee8021SrpReservationDeclarationType; /* ReadOnly */ 147 | ulong ieee8021SrpReservationAccumulatedLatency; /* ReadOnly */ 148 | uint8_t *ieee8021SrpReservationFailureBridgeId; /* ReadOnly */ 149 | size_t ieee8021SrpReservationFailureBridgeIdLen; 150 | long ieee8021SrpReservationFailureCode; /* ReadOnly */ 151 | struct counter64 ieee8021SrpReservationDroppedStreamFrames; /* ReadOnly */ 152 | ulong ieee8021SrpReservationStreamAge; /* ReadOnly */ 153 | }; 154 | 155 | /* storage declarations */ 156 | extern struct ieee8021SrpMib_data *ieee8021SrpMibStorage; 157 | extern struct header_complex_index *ieee8021SrpBridgeBaseTableStorage; 158 | extern struct header_complex_index *ieee8021SrpBridgePortTableStorage; 159 | extern struct header_complex_index *ieee8021SrpLatencyTableStorage; 160 | extern struct header_complex_index *ieee8021SrpStreamTableStorage; 161 | extern struct header_complex_index *ieee8021SrpReservationsTableStorage; 162 | 163 | /* enum definitions from the covered mib sections */ 164 | 165 | #define IEEE8021SRPBRIDGEBASEMSRPENABLEDSTATUS_TRUE 1 166 | #define IEEE8021SRPBRIDGEBASEMSRPENABLEDSTATUS_FALSE 2 167 | 168 | #define IEEE8021SRPBRIDGEBASEMSRPTALKERPRUNING_TRUE 1 169 | #define IEEE8021SRPBRIDGEBASEMSRPTALKERPRUNING_FALSE 2 170 | 171 | #define IEEE8021SRPBRIDGEPORTMSRPENABLEDSTATUS_TRUE 1 172 | #define IEEE8021SRPBRIDGEPORTMSRPENABLEDSTATUS_FALSE 2 173 | 174 | #define IEEE8021SRPSTREAMDATAFRAMEPRIORITY_CODEPOINT8P0D 1 175 | #define IEEE8021SRPSTREAMDATAFRAMEPRIORITY_CODEPOINT7P1D 2 176 | #define IEEE8021SRPSTREAMDATAFRAMEPRIORITY_CODEPOINT6P2D 3 177 | #define IEEE8021SRPSTREAMDATAFRAMEPRIORITY_CODEPOINT5P3D 4 178 | 179 | #define IEEE8021SRPSTREAMRANK_EMERGENCY 0 180 | #define IEEE8021SRPSTREAMRANK_NONEMERGENCY 1 181 | 182 | #define IEEE8021SRPRESERVATIONDIRECTION_TALKERREGISTRATIONS 0 183 | #define IEEE8021SRPRESERVATIONDIRECTION_LISTENERREGISTRATIONS 1 184 | 185 | #define IEEE8021SRPRESERVATIONDECLARATIONTYPE_TALKERADVERTISE 0 186 | #define IEEE8021SRPRESERVATIONDECLARATIONTYPE_TALKERFAILED 1 187 | #define IEEE8021SRPRESERVATIONDECLARATIONTYPE_LISTENERASKINGFAILED 2 188 | #define IEEE8021SRPRESERVATIONDECLARATIONTYPE_LISTENERREADY 3 189 | #define IEEE8021SRPRESERVATIONDECLARATIONTYPE_LISTENERREADYFAILED 4 190 | 191 | #define IEEE8021SRPRESERVATIONFAILURECODE_NOFAILURE 0 192 | #define IEEE8021SRPRESERVATIONFAILURECODE_INSUFFICIENTBANDWIDTH 1 193 | #define IEEE8021SRPRESERVATIONFAILURECODE_INSUFFICIENTRESOURCES 2 194 | #define IEEE8021SRPRESERVATIONFAILURECODE_INSUFFICIENTTRAFFICCLASSBANDWIDTH 3 195 | #define IEEE8021SRPRESERVATIONFAILURECODE_STREAMIDINUSE 4 196 | #define IEEE8021SRPRESERVATIONFAILURECODE_STREAMDESTINATIONADDRESSINUSE 5 197 | #define IEEE8021SRPRESERVATIONFAILURECODE_STREAMPREEMPTEDBYHIGHERRANK 6 198 | #define IEEE8021SRPRESERVATIONFAILURECODE_LATENCYHASCHANGED 7 199 | #define IEEE8021SRPRESERVATIONFAILURECODE_EGRESSPORTNOTAVBCAPABLE 8 200 | #define IEEE8021SRPRESERVATIONFAILURECODE_USEDIFFERENTDESTINATIONADDRESS 9 201 | #define IEEE8021SRPRESERVATIONFAILURECODE_OUTOFMSRPRESOURCES 10 202 | #define IEEE8021SRPRESERVATIONFAILURECODE_OUTOFMMRPRESOURCES 11 203 | #define IEEE8021SRPRESERVATIONFAILURECODE_CANNOTSTOREDESTINATIONADDRESS 12 204 | #define IEEE8021SRPRESERVATIONFAILURECODE_PRIORITYISNOANSRCLASS 13 205 | #define IEEE8021SRPRESERVATIONFAILURECODE_MAXFRAMESIZETOOLARGE 14 206 | #define IEEE8021SRPRESERVATIONFAILURECODE_MAXFANINPORTSLIMITREACHED 15 207 | #define IEEE8021SRPRESERVATIONFAILURECODE_FIRSTVALUECHANGEDFORSTREAMID 16 208 | #define IEEE8021SRPRESERVATIONFAILURECODE_VLANBLOCKEDONEGRESS 17 209 | #define IEEE8021SRPRESERVATIONFAILURECODE_VLANTAGGINGDISABLEDONEGRESS 18 210 | #define IEEE8021SRPRESERVATIONFAILURECODE_SRCLASSPRIORITYMISMATCH 19 211 | 212 | /* notifications */ 213 | 214 | /* scalars accessible only for notify */ 215 | 216 | /* object id definitions */ 217 | extern oid ieee8021SrpCompliance_oid[11]; 218 | extern oid ieee8021SrpConfigurationGroup_oid[11]; 219 | extern oid ieee8021SrpLatencyGroup_oid[11]; 220 | extern oid ieee8021SrpStreamsGroup_oid[11]; 221 | extern oid ieee8021SrpReservationsGroup_oid[11]; 222 | 223 | /* function prototypes */ 224 | /* trap function prototypes */ 225 | 226 | /* variable function prototypes */ 227 | void init_ieee8021SrpMib(void); 228 | void deinit_ieee8021SrpMib(void); 229 | int term_ieee8021SrpMib(int majorID, int minorID, void *serverarg, void *clientarg); 230 | FindVarMethod var_ieee8021SrpMib; 231 | struct ieee8021SrpMib_data *ieee8021SrpMib_create(void); 232 | struct ieee8021SrpMib_data *ieee8021SrpMib_duplicate(struct ieee8021SrpMib_data *); 233 | int ieee8021SrpMib_destroy(struct ieee8021SrpMib_data **); 234 | int ieee8021SrpMib_add(struct ieee8021SrpMib_data *); 235 | void parse_ieee8021SrpMib(const char *, char *); 236 | SNMPCallback store_ieee8021SrpMib; 237 | void refresh_ieee8021SrpMib(int); 238 | FindVarMethod var_ieee8021SrpBridgeBaseTable; 239 | struct ieee8021SrpBridgeBaseTable_data *ieee8021SrpBridgeBaseTable_create(void); 240 | struct ieee8021SrpBridgeBaseTable_data *ieee8021SrpBridgeBaseTable_duplicate(struct ieee8021SrpBridgeBaseTable_data *); 241 | int ieee8021SrpBridgeBaseTable_destroy(struct ieee8021SrpBridgeBaseTable_data **); 242 | int ieee8021SrpBridgeBaseTable_add(struct ieee8021SrpBridgeBaseTable_data *); 243 | int ieee8021SrpBridgeBaseTable_del(struct ieee8021SrpBridgeBaseTable_data *); 244 | void parse_ieee8021SrpBridgeBaseTable(const char *, char *); 245 | SNMPCallback store_ieee8021SrpBridgeBaseTable; 246 | void refresh_ieee8021SrpBridgeBaseTable(int); 247 | FindVarMethod var_ieee8021SrpBridgePortTable; 248 | struct ieee8021SrpBridgePortTable_data *ieee8021SrpBridgePortTable_create(void); 249 | struct ieee8021SrpBridgePortTable_data *ieee8021SrpBridgePortTable_duplicate(struct ieee8021SrpBridgePortTable_data *); 250 | int ieee8021SrpBridgePortTable_destroy(struct ieee8021SrpBridgePortTable_data **); 251 | int ieee8021SrpBridgePortTable_add(struct ieee8021SrpBridgePortTable_data *); 252 | int ieee8021SrpBridgePortTable_del(struct ieee8021SrpBridgePortTable_data *); 253 | void parse_ieee8021SrpBridgePortTable(const char *, char *); 254 | SNMPCallback store_ieee8021SrpBridgePortTable; 255 | void refresh_ieee8021SrpBridgePortTable(int); 256 | FindVarMethod var_ieee8021SrpLatencyTable; 257 | struct ieee8021SrpLatencyTable_data *ieee8021SrpLatencyTable_create(void); 258 | struct ieee8021SrpLatencyTable_data *ieee8021SrpLatencyTable_duplicate(struct ieee8021SrpLatencyTable_data *); 259 | int ieee8021SrpLatencyTable_destroy(struct ieee8021SrpLatencyTable_data **); 260 | int ieee8021SrpLatencyTable_add(struct ieee8021SrpLatencyTable_data *); 261 | int ieee8021SrpLatencyTable_del(struct ieee8021SrpLatencyTable_data *); 262 | void parse_ieee8021SrpLatencyTable(const char *, char *); 263 | SNMPCallback store_ieee8021SrpLatencyTable; 264 | void refresh_ieee8021SrpLatencyTable(int); 265 | FindVarMethod var_ieee8021SrpStreamTable; 266 | struct ieee8021SrpStreamTable_data *ieee8021SrpStreamTable_create(void); 267 | struct ieee8021SrpStreamTable_data *ieee8021SrpStreamTable_duplicate(struct ieee8021SrpStreamTable_data *); 268 | int ieee8021SrpStreamTable_destroy(struct ieee8021SrpStreamTable_data **); 269 | int ieee8021SrpStreamTable_add(struct ieee8021SrpStreamTable_data *); 270 | int ieee8021SrpStreamTable_del(struct ieee8021SrpStreamTable_data *); 271 | void parse_ieee8021SrpStreamTable(const char *, char *); 272 | SNMPCallback store_ieee8021SrpStreamTable; 273 | void refresh_ieee8021SrpStreamTable(int); 274 | FindVarMethod var_ieee8021SrpReservationsTable; 275 | struct ieee8021SrpReservationsTable_data *ieee8021SrpReservationsTable_create(void); 276 | struct ieee8021SrpReservationsTable_data *ieee8021SrpReservationsTable_duplicate(struct ieee8021SrpReservationsTable_data *); 277 | int ieee8021SrpReservationsTable_destroy(struct ieee8021SrpReservationsTable_data **); 278 | int ieee8021SrpReservationsTable_add(struct ieee8021SrpReservationsTable_data *); 279 | int ieee8021SrpReservationsTable_del(struct ieee8021SrpReservationsTable_data *); 280 | void parse_ieee8021SrpReservationsTable(const char *, char *); 281 | SNMPCallback store_ieee8021SrpReservationsTable; 282 | void refresh_ieee8021SrpReservationsTable(int); 283 | 284 | WriteMethod write_ieee8021SrpBridgeBaseMsrpEnabledStatus; 285 | WriteMethod write_ieee8021SrpBridgeBaseMsrpTalkerPruning; 286 | WriteMethod write_ieee8021SrpBridgeBaseMsrpMaxFanInPorts; 287 | WriteMethod write_ieee8021SrpBridgeBaseMsrpLatencyMaxFrameSize; 288 | WriteMethod write_ieee8021SrpBridgePortMsrpEnabledStatus; 289 | WriteMethod write_ieee8021SrpBridgePortSrPvid; 290 | #endif /* __LOCAL_IEEE8021SRPMIB_H__ */ 291 | -------------------------------------------------------------------------------- /src/snmp/ieee8021DdcfmMIB.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/ieee8021ddcfmmib.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_IEEE8021DDCFMMIB_H__ 51 | #define __LOCAL_IEEE8021DDCFMMIB_H__ 52 | 53 | /* 54 | * This file was generated by mib2c and is intended for use as a mib module 55 | * for the ucd-snmp snmpd agent. 56 | */ 57 | 58 | extern const char sa_program[]; 59 | extern int sa_fclose; /* default close files between requests */ 60 | extern int sa_changed; /* indication to reread MIB configuration */ 61 | extern int sa_stats_refresh; /* indications that statistics, the mib or its tables need to be refreshed */ 62 | extern int sa_request; /* request number for per-request actions */ 63 | 64 | /* our storage structure(s) */ 65 | struct ieee8021DdcfmMIB_data { 66 | struct ieee8021DdcfmMIB_data *ieee8021DdcfmMIB_old; 67 | uint ieee8021DdcfmMIB_rsvs; 68 | uint ieee8021DdcfmMIB_tsts; 69 | uint ieee8021DdcfmMIB_sets; 70 | uint ieee8021DdcfmMIB_request; 71 | }; 72 | struct ieee8021DdcfmStackTable_data { 73 | struct ieee8021DdcfmStackTable_data *ieee8021DdcfmStackTable_old; 74 | uint ieee8021DdcfmStackTable_rsvs; 75 | uint ieee8021DdcfmStackTable_tsts; 76 | uint ieee8021DdcfmStackTable_sets; 77 | uint ieee8021DdcfmStackTable_request; 78 | uint ieee8021DdcfmStackTable_refs; 79 | uint ieee8021DdcfmStackTable_id; 80 | long ieee8021DdcfmStackIfIndex; /* NoAccess */ 81 | long ieee8021DdcfmStackRrMdLevel; /* ReadOnly */ 82 | long ieee8021DdcfmStackRrDirection; /* ReadOnly */ 83 | long ieee8021DdcfmStackRFMreceiverMdLevel; /* ReadOnly */ 84 | long ieee8021DdcfmStackDrMdLevel; /* ReadOnly */ 85 | long ieee8021DdcfmStackDrVlanIdOrNone; /* ReadOnly */ 86 | long ieee8021DdcfmStackSFMOriginatorMdLevel; /* ReadOnly */ 87 | long ieee8021DdcfmStackSFMOriginatorVlanIdOrNone; /* ReadOnly */ 88 | long ieee8021DdcfmStackSFMOriginatorDirection; /* ReadOnly */ 89 | }; 90 | struct ieee8021DdcfmRrTable_data { 91 | struct ieee8021DdcfmRrTable_data *ieee8021DdcfmRrTable_old; 92 | uint ieee8021DdcfmRrTable_rsvs; 93 | uint ieee8021DdcfmRrTable_tsts; 94 | uint ieee8021DdcfmRrTable_sets; 95 | uint ieee8021DdcfmRrTable_request; 96 | uint ieee8021DdcfmRrTable_refs; 97 | uint ieee8021DdcfmRrTable_id; 98 | long ieee8021DdcfmRrIfIndex; /* NoAccess */ 99 | long ieee8021DdcfmRrMdIndex; /* NoAccess */ 100 | long ieee8021DdcfmRrDirection; /* NoAccess */ 101 | long ieee8021DdcfmRrPrimaryVlanIdOrNone; /* Create */ 102 | uint8_t *ieee8021DdcfmRrFilter; /* Create */ 103 | size_t ieee8021DdcfmRrFilterLen; 104 | ulong ieee8021DdcfmRrSamplingInterval; /* Create */ 105 | uint8_t *ieee8021DdcfmRrTargetAddress; /* Create */ 106 | size_t ieee8021DdcfmRrTargetAddressLen; 107 | long ieee8021DdcfmRrContinueFlag; /* Create */ 108 | ulong ieee8021DdcfmRrDuration; /* Create */ 109 | long ieee8021DdcfmRrDurationInTimeFlag; /* Create */ 110 | long ieee8021DdcfmRrVlanPriority; /* Create */ 111 | long ieee8021DdcfmRrVlanDropEligible; /* Create */ 112 | long ieee8021DdcfmRrFloodingFlag; /* Create */ 113 | long ieee8021DdcfmRrTruncationFlag; /* Create */ 114 | long ieee8021DdcfmRrActivationStatus; /* ReadOnly */ 115 | ulong ieee8021DdcfmRrRemainDuration; /* ReadOnly */ 116 | ulong ieee8021DdcfmRrNextRfmTransID; /* ReadOnly */ 117 | long ieee8021DdcfmRrRowStatus; /* Create */ 118 | }; 119 | struct ieee8021DdcfmRFMReceiverTable_data { 120 | struct ieee8021DdcfmRFMReceiverTable_data *ieee8021DdcfmRFMReceiverTable_old; 121 | uint ieee8021DdcfmRFMReceiverTable_rsvs; 122 | uint ieee8021DdcfmRFMReceiverTable_tsts; 123 | uint ieee8021DdcfmRFMReceiverTable_sets; 124 | uint ieee8021DdcfmRFMReceiverTable_request; 125 | uint ieee8021DdcfmRFMReceiverTable_refs; 126 | uint ieee8021DdcfmRFMReceiverTable_id; 127 | long ieee8021DdcfmRfmReceiverIfIndex; /* NoAccess */ 128 | long ieee8021DdcfmRfmReceiverMdIndex; /* NoAccess */ 129 | long ieee8021DdcfmRFMRowStatus; /* Create */ 130 | }; 131 | struct ieee8021DdcfmDrTable_data { 132 | struct ieee8021DdcfmDrTable_data *ieee8021DdcfmDrTable_old; 133 | uint ieee8021DdcfmDrTable_rsvs; 134 | uint ieee8021DdcfmDrTable_tsts; 135 | uint ieee8021DdcfmDrTable_sets; 136 | uint ieee8021DdcfmDrTable_request; 137 | uint ieee8021DdcfmDrTable_refs; 138 | uint ieee8021DdcfmDrTable_id; 139 | long ieee8021DdcfmDrIfIndex; /* NoAccess */ 140 | long ieee8021DdcfmDrMdIndex; /* NoAccess */ 141 | long ieee8021DdcfmDrVlanIdOrNone; /* NoAccess */ 142 | uint8_t *ieee8021DdcfmDrSfmOriginator; /* Create */ 143 | size_t ieee8021DdcfmDrSfmOriginatorLen; 144 | long ieee8021DdcfmDrSourceAddressStayFlag; /* Create */ 145 | long ieee8021DdcfmDrFloodingFlag; /* Create */ 146 | ulong ieee8021DdcfmDrDuration; /* Create */ 147 | long ieee8021DdcfmDrActivationStatus; /* ReadOnly */ 148 | ulong ieee8021DdcfmDrRemainDuration; /* ReadOnly */ 149 | ulong ieee8021DdcfmDrSFMsequenceErrors; /* ReadOnly */ 150 | long ieee8021DdcfmDrRowStatus; /* Create */ 151 | }; 152 | struct ieee8021DdcfmSoTable_data { 153 | struct ieee8021DdcfmSoTable_data *ieee8021DdcfmSoTable_old; 154 | uint ieee8021DdcfmSoTable_rsvs; 155 | uint ieee8021DdcfmSoTable_tsts; 156 | uint ieee8021DdcfmSoTable_sets; 157 | uint ieee8021DdcfmSoTable_request; 158 | uint ieee8021DdcfmSoTable_refs; 159 | uint ieee8021DdcfmSoTable_id; 160 | long ieee8021DdcfmSfmIfIndex; /* NoAccess */ 161 | long ieee8021DdcfmSoMdIndex; /* NoAccess */ 162 | long ieee8021DdcfmSoVlanIdOrNone; /* NoAccess */ 163 | long ieee8021DdcfmSoDirection; /* NoAccess */ 164 | uint8_t *ieee8021DdcfmSoDrMacAddress; /* Create */ 165 | size_t ieee8021DdcfmSoDrMacAddressLen; 166 | ulong ieee8021DdcfmSoDuration; /* Create */ 167 | long ieee8021DdcfmSoActivationStatus; /* ReadOnly */ 168 | ulong ieee8021DdcfmSoRemainDuration; /* ReadOnly */ 169 | long ieee8021DdcfmSoRowStatus; /* Create */ 170 | }; 171 | 172 | /* storage declarations */ 173 | extern struct ieee8021DdcfmMIB_data *ieee8021DdcfmMIBStorage; 174 | extern struct header_complex_index *ieee8021DdcfmStackTableStorage; 175 | extern struct header_complex_index *ieee8021DdcfmRrTableStorage; 176 | extern struct header_complex_index *ieee8021DdcfmRFMReceiverTableStorage; 177 | extern struct header_complex_index *ieee8021DdcfmDrTableStorage; 178 | extern struct header_complex_index *ieee8021DdcfmSoTableStorage; 179 | 180 | /* enum definitions from the covered mib sections */ 181 | 182 | #define IEEE8021DDCFMSTACKRRDIRECTION_DOWN 1 183 | #define IEEE8021DDCFMSTACKRRDIRECTION_UP 2 184 | 185 | #define IEEE8021DDCFMSTACKSFMORIGINATORDIRECTION_DOWN 1 186 | #define IEEE8021DDCFMSTACKSFMORIGINATORDIRECTION_UP 2 187 | 188 | #define IEEE8021DDCFMRRDIRECTION_DOWN 1 189 | #define IEEE8021DDCFMRRDIRECTION_UP 2 190 | 191 | #define IEEE8021DDCFMRRCONTINUEFLAG_TRUE 1 192 | #define IEEE8021DDCFMRRCONTINUEFLAG_FALSE 2 193 | 194 | #define IEEE8021DDCFMRRDURATIONINTIMEFLAG_TRUE 1 195 | #define IEEE8021DDCFMRRDURATIONINTIMEFLAG_FALSE 2 196 | 197 | #define IEEE8021DDCFMRRVLANDROPELIGIBLE_TRUE 1 198 | #define IEEE8021DDCFMRRVLANDROPELIGIBLE_FALSE 2 199 | 200 | #define IEEE8021DDCFMRRFLOODINGFLAG_TRUE 1 201 | #define IEEE8021DDCFMRRFLOODINGFLAG_FALSE 2 202 | 203 | #define IEEE8021DDCFMRRTRUNCATIONFLAG_TRUE 1 204 | #define IEEE8021DDCFMRRTRUNCATIONFLAG_FALSE 2 205 | 206 | #define IEEE8021DDCFMRRACTIVATIONSTATUS_TRUE 1 207 | #define IEEE8021DDCFMRRACTIVATIONSTATUS_FALSE 2 208 | 209 | #define IEEE8021DDCFMDRSOURCEADDRESSSTAYFLAG_TRUE 1 210 | #define IEEE8021DDCFMDRSOURCEADDRESSSTAYFLAG_FALSE 2 211 | 212 | #define IEEE8021DDCFMDRFLOODINGFLAG_TRUE 1 213 | #define IEEE8021DDCFMDRFLOODINGFLAG_FALSE 2 214 | 215 | #define IEEE8021DDCFMDRACTIVATIONSTATUS_TRUE 1 216 | #define IEEE8021DDCFMDRACTIVATIONSTATUS_FALSE 2 217 | 218 | #define IEEE8021DDCFMSODIRECTION_DOWN 1 219 | #define IEEE8021DDCFMSODIRECTION_UP 2 220 | 221 | #define IEEE8021DDCFMSOACTIVATIONSTATUS_TRUE 1 222 | #define IEEE8021DDCFMSOACTIVATIONSTATUS_FALSE 2 223 | 224 | /* notifications */ 225 | 226 | /* scalars accessible only for notify */ 227 | 228 | /* object id definitions */ 229 | extern oid ieee8021DdcfmCompliance_oid[11]; 230 | extern oid ieee8021DdcfmStackGroup_oid[11]; 231 | extern oid ieee8021DdcfmRrGroup_oid[11]; 232 | extern oid ieee8021DdcfmRFMReceiverGroup_oid[11]; 233 | extern oid ieee8021DdcfmDrGroup_oid[11]; 234 | extern oid ieee8021DdcfmSoGroup_oid[11]; 235 | 236 | /* function prototypes */ 237 | /* trap function prototypes */ 238 | 239 | /* variable function prototypes */ 240 | void init_ieee8021DdcfmMIB(void); 241 | void deinit_ieee8021DdcfmMIB(void); 242 | int term_ieee8021DdcfmMIB(int majorID, int minorID, void *serverarg, void *clientarg); 243 | FindVarMethod var_ieee8021DdcfmMIB; 244 | struct ieee8021DdcfmMIB_data *ieee8021DdcfmMIB_create(void); 245 | struct ieee8021DdcfmMIB_data *ieee8021DdcfmMIB_duplicate(struct ieee8021DdcfmMIB_data *); 246 | int ieee8021DdcfmMIB_destroy(struct ieee8021DdcfmMIB_data **); 247 | int ieee8021DdcfmMIB_add(struct ieee8021DdcfmMIB_data *); 248 | void parse_ieee8021DdcfmMIB(const char *, char *); 249 | SNMPCallback store_ieee8021DdcfmMIB; 250 | void refresh_ieee8021DdcfmMIB(int); 251 | FindVarMethod var_ieee8021DdcfmStackTable; 252 | struct ieee8021DdcfmStackTable_data *ieee8021DdcfmStackTable_create(void); 253 | struct ieee8021DdcfmStackTable_data *ieee8021DdcfmStackTable_duplicate(struct ieee8021DdcfmStackTable_data *); 254 | int ieee8021DdcfmStackTable_destroy(struct ieee8021DdcfmStackTable_data **); 255 | int ieee8021DdcfmStackTable_add(struct ieee8021DdcfmStackTable_data *); 256 | int ieee8021DdcfmStackTable_del(struct ieee8021DdcfmStackTable_data *); 257 | void parse_ieee8021DdcfmStackTable(const char *, char *); 258 | SNMPCallback store_ieee8021DdcfmStackTable; 259 | void refresh_ieee8021DdcfmStackTable(int); 260 | FindVarMethod var_ieee8021DdcfmRrTable; 261 | struct ieee8021DdcfmRrTable_data *ieee8021DdcfmRrTable_create(void); 262 | struct ieee8021DdcfmRrTable_data *ieee8021DdcfmRrTable_duplicate(struct ieee8021DdcfmRrTable_data *); 263 | int ieee8021DdcfmRrTable_destroy(struct ieee8021DdcfmRrTable_data **); 264 | int ieee8021DdcfmRrTable_add(struct ieee8021DdcfmRrTable_data *); 265 | int ieee8021DdcfmRrTable_del(struct ieee8021DdcfmRrTable_data *); 266 | void parse_ieee8021DdcfmRrTable(const char *, char *); 267 | SNMPCallback store_ieee8021DdcfmRrTable; 268 | void refresh_ieee8021DdcfmRrTable(int); 269 | FindVarMethod var_ieee8021DdcfmRFMReceiverTable; 270 | struct ieee8021DdcfmRFMReceiverTable_data *ieee8021DdcfmRFMReceiverTable_create(void); 271 | struct ieee8021DdcfmRFMReceiverTable_data *ieee8021DdcfmRFMReceiverTable_duplicate(struct ieee8021DdcfmRFMReceiverTable_data *); 272 | int ieee8021DdcfmRFMReceiverTable_destroy(struct ieee8021DdcfmRFMReceiverTable_data **); 273 | int ieee8021DdcfmRFMReceiverTable_add(struct ieee8021DdcfmRFMReceiverTable_data *); 274 | int ieee8021DdcfmRFMReceiverTable_del(struct ieee8021DdcfmRFMReceiverTable_data *); 275 | void parse_ieee8021DdcfmRFMReceiverTable(const char *, char *); 276 | SNMPCallback store_ieee8021DdcfmRFMReceiverTable; 277 | void refresh_ieee8021DdcfmRFMReceiverTable(int); 278 | FindVarMethod var_ieee8021DdcfmDrTable; 279 | struct ieee8021DdcfmDrTable_data *ieee8021DdcfmDrTable_create(void); 280 | struct ieee8021DdcfmDrTable_data *ieee8021DdcfmDrTable_duplicate(struct ieee8021DdcfmDrTable_data *); 281 | int ieee8021DdcfmDrTable_destroy(struct ieee8021DdcfmDrTable_data **); 282 | int ieee8021DdcfmDrTable_add(struct ieee8021DdcfmDrTable_data *); 283 | int ieee8021DdcfmDrTable_del(struct ieee8021DdcfmDrTable_data *); 284 | void parse_ieee8021DdcfmDrTable(const char *, char *); 285 | SNMPCallback store_ieee8021DdcfmDrTable; 286 | void refresh_ieee8021DdcfmDrTable(int); 287 | FindVarMethod var_ieee8021DdcfmSoTable; 288 | struct ieee8021DdcfmSoTable_data *ieee8021DdcfmSoTable_create(void); 289 | struct ieee8021DdcfmSoTable_data *ieee8021DdcfmSoTable_duplicate(struct ieee8021DdcfmSoTable_data *); 290 | int ieee8021DdcfmSoTable_destroy(struct ieee8021DdcfmSoTable_data **); 291 | int ieee8021DdcfmSoTable_add(struct ieee8021DdcfmSoTable_data *); 292 | int ieee8021DdcfmSoTable_del(struct ieee8021DdcfmSoTable_data *); 293 | void parse_ieee8021DdcfmSoTable(const char *, char *); 294 | SNMPCallback store_ieee8021DdcfmSoTable; 295 | void refresh_ieee8021DdcfmSoTable(int); 296 | 297 | WriteMethod write_ieee8021DdcfmRrPrimaryVlanIdOrNone; 298 | WriteMethod write_ieee8021DdcfmRrFilter; 299 | WriteMethod write_ieee8021DdcfmRrSamplingInterval; 300 | WriteMethod write_ieee8021DdcfmRrTargetAddress; 301 | WriteMethod write_ieee8021DdcfmRrContinueFlag; 302 | WriteMethod write_ieee8021DdcfmRrDuration; 303 | WriteMethod write_ieee8021DdcfmRrDurationInTimeFlag; 304 | WriteMethod write_ieee8021DdcfmRrVlanPriority; 305 | WriteMethod write_ieee8021DdcfmRrVlanDropEligible; 306 | WriteMethod write_ieee8021DdcfmRrFloodingFlag; 307 | WriteMethod write_ieee8021DdcfmRrTruncationFlag; 308 | WriteMethod write_ieee8021DdcfmRrRowStatus; 309 | WriteMethod write_ieee8021DdcfmRFMRowStatus; 310 | WriteMethod write_ieee8021DdcfmDrSfmOriginator; 311 | WriteMethod write_ieee8021DdcfmDrSourceAddressStayFlag; 312 | WriteMethod write_ieee8021DdcfmDrFloodingFlag; 313 | WriteMethod write_ieee8021DdcfmDrDuration; 314 | WriteMethod write_ieee8021DdcfmDrRowStatus; 315 | WriteMethod write_ieee8021DdcfmSoDrMacAddress; 316 | WriteMethod write_ieee8021DdcfmSoDuration; 317 | WriteMethod write_ieee8021DdcfmSoRowStatus; 318 | #endif /* __LOCAL_IEEE8021DDCFMMIB_H__ */ 319 | -------------------------------------------------------------------------------- /src/snmp/lldpV2Xdot3MIB.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | 3 | @(#) src/snmp/lldpv2xdot3mib.h 4 | 5 | ----------------------------------------------------------------------------- 6 | 7 | Copyright (c) 2008-2015 Monavacon Limited 8 | Copyright (c) 2001-2008 OpenSS7 Corporation 9 | Copyright (c) 1997-2001 Brian F. G. Bidulock 10 | 11 | All Rights Reserved. 12 | 13 | This program is free software; you can redistribute it and/or modify it under 14 | the terms of the GNU Affero General Public License as published by the Free 15 | Software Foundation; version 3 of the License. 16 | 17 | This program is distributed in the hope that it will be useful, but WITHOUT 18 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 19 | FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more 20 | details. 21 | 22 | You should have received a copy of the GNU Affero General Public License 23 | along with this program. If not, see , or 24 | write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 25 | 02139, USA. 26 | 27 | ----------------------------------------------------------------------------- 28 | 29 | U.S. GOVERNMENT RESTRICTED RIGHTS. If you are licensing this Software on 30 | behalf of the U.S. Government ("Government"), the following provisions apply 31 | to you. If the Software is supplied by the Department of Defense ("DoD"), it 32 | is classified as "Commercial Computer Software" under paragraph 252.227-7014 33 | of the DoD Supplement to the Federal Acquisition Regulations ("DFARS") (or any 34 | successor regulations) and the Government is acquiring only the license rights 35 | granted herein (the license rights customarily provided to non-Government 36 | users). If the Software is supplied to any unit or agency of the Government 37 | other than DoD, it is classified as "Restricted Computer Software" and the 38 | Government's rights in the Software are defined in paragraph 52.227-19 of the 39 | Federal Acquisition Regulations ("FAR") (or any successor regulations) or, in 40 | the cases of NASA, in paragraph 18.52.227-86 of the NASA Supplement to the FAR 41 | (or any successor regulations). 42 | 43 | ----------------------------------------------------------------------------- 44 | 45 | Commercial licensing and support of this software is available from OpenSS7 46 | Corporation at a fee. See http://www.openss7.com/ 47 | 48 | *****************************************************************************/ 49 | 50 | #ifndef __LOCAL_LLDPV2XDOT3MIB_H__ 51 | #define __LOCAL_LLDPV2XDOT3MIB_H__ 52 | 53 | /* 54 | * This file was generated by mib2c and is intended for use as a mib module 55 | * for the ucd-snmp snmpd agent. 56 | */ 57 | 58 | extern const char sa_program[]; 59 | extern int sa_fclose; /* default close files between requests */ 60 | extern int sa_changed; /* indication to reread MIB configuration */ 61 | extern int sa_stats_refresh; /* indications that statistics, the mib or its tables need to be refreshed */ 62 | extern int sa_request; /* request number for per-request actions */ 63 | 64 | /* our storage structure(s) */ 65 | struct lldpV2Xdot3MIB_data { 66 | struct lldpV2Xdot3MIB_data *lldpV2Xdot3MIB_old; 67 | uint lldpV2Xdot3MIB_rsvs; 68 | uint lldpV2Xdot3MIB_tsts; 69 | uint lldpV2Xdot3MIB_sets; 70 | uint lldpV2Xdot3MIB_request; 71 | }; 72 | struct lldpV2Xdot3PortConfigTable_data { 73 | struct lldpV2Xdot3PortConfigTable_data *lldpV2Xdot3PortConfigTable_old; 74 | uint lldpV2Xdot3PortConfigTable_rsvs; 75 | uint lldpV2Xdot3PortConfigTable_tsts; 76 | uint lldpV2Xdot3PortConfigTable_sets; 77 | uint lldpV2Xdot3PortConfigTable_request; 78 | uint lldpV2Xdot3PortConfigTable_refs; 79 | uint lldpV2Xdot3PortConfigTable_id; 80 | long lldpV2PortConfigIfIndex; /* NoAccess */ 81 | ulong lldpV2PortConfigDestAddressIndex; /* NoAccess */ 82 | uint8_t *lldpV2Xdot3PortConfigTLVsTxEnable; /* ReadWrite */ 83 | size_t lldpV2Xdot3PortConfigTLVsTxEnableLen; 84 | }; 85 | struct lldpV2Xdot3LocPortTable_data { 86 | struct lldpV2Xdot3LocPortTable_data *lldpV2Xdot3LocPortTable_old; 87 | uint lldpV2Xdot3LocPortTable_rsvs; 88 | uint lldpV2Xdot3LocPortTable_tsts; 89 | uint lldpV2Xdot3LocPortTable_sets; 90 | uint lldpV2Xdot3LocPortTable_request; 91 | uint lldpV2Xdot3LocPortTable_refs; 92 | uint lldpV2Xdot3LocPortTable_id; 93 | long lldpV2LocPortIfIndex; /* NoAccess */ 94 | long lldpV2Xdot3LocPortAutoNegSupported; /* ReadOnly */ 95 | long lldpV2Xdot3LocPortAutoNegEnabled; /* ReadOnly */ 96 | uint8_t *lldpV2Xdot3LocPortAutoNegAdvertisedCap; /* ReadOnly */ 97 | size_t lldpV2Xdot3LocPortAutoNegAdvertisedCapLen; 98 | ulong lldpV2Xdot3LocPortOperMauType; /* ReadOnly */ 99 | }; 100 | struct lldpV2Xdot3LocPowerTable_data { 101 | struct lldpV2Xdot3LocPowerTable_data *lldpV2Xdot3LocPowerTable_old; 102 | uint lldpV2Xdot3LocPowerTable_rsvs; 103 | uint lldpV2Xdot3LocPowerTable_tsts; 104 | uint lldpV2Xdot3LocPowerTable_sets; 105 | uint lldpV2Xdot3LocPowerTable_request; 106 | uint lldpV2Xdot3LocPowerTable_refs; 107 | uint lldpV2Xdot3LocPowerTable_id; 108 | long lldpV2LocPortIfIndex; /* NoAccess */ 109 | long lldpV2Xdot3LocPowerPortClass; /* ReadOnly */ 110 | long lldpV2Xdot3LocPowerMDISupported; /* ReadOnly */ 111 | long lldpV2Xdot3LocPowerMDIEnabled; /* ReadOnly */ 112 | long lldpV2Xdot3LocPowerPairControlable; /* ReadOnly */ 113 | ulong lldpV2Xdot3LocPowerPairs; /* ReadOnly */ 114 | ulong lldpV2Xdot3LocPowerClass; /* ReadOnly */ 115 | }; 116 | struct lldpV2Xdot3LocMaxFrameSizeTable_data { 117 | struct lldpV2Xdot3LocMaxFrameSizeTable_data *lldpV2Xdot3LocMaxFrameSizeTable_old; 118 | uint lldpV2Xdot3LocMaxFrameSizeTable_rsvs; 119 | uint lldpV2Xdot3LocMaxFrameSizeTable_tsts; 120 | uint lldpV2Xdot3LocMaxFrameSizeTable_sets; 121 | uint lldpV2Xdot3LocMaxFrameSizeTable_request; 122 | uint lldpV2Xdot3LocMaxFrameSizeTable_refs; 123 | uint lldpV2Xdot3LocMaxFrameSizeTable_id; 124 | long lldpV2LocPortIfIndex; /* NoAccess */ 125 | ulong lldpV2Xdot3LocMaxFrameSize; /* ReadOnly */ 126 | }; 127 | struct lldpV2Xdot3RemPortTable_data { 128 | struct lldpV2Xdot3RemPortTable_data *lldpV2Xdot3RemPortTable_old; 129 | uint lldpV2Xdot3RemPortTable_rsvs; 130 | uint lldpV2Xdot3RemPortTable_tsts; 131 | uint lldpV2Xdot3RemPortTable_sets; 132 | uint lldpV2Xdot3RemPortTable_request; 133 | uint lldpV2Xdot3RemPortTable_refs; 134 | uint lldpV2Xdot3RemPortTable_id; 135 | long lldpV2RemTimeMark; /* NoAccess */ 136 | long lldpV2RemLocalIfIndex; /* NoAccess */ 137 | ulong lldpV2RemLocalDestMACAddress; /* NoAccess */ 138 | ulong lldpV2RemIndex; /* NoAccess */ 139 | long lldpV2Xdot3RemPortAutoNegSupported; /* ReadOnly */ 140 | long lldpV2Xdot3RemPortAutoNegEnabled; /* ReadOnly */ 141 | uint8_t *lldpV2Xdot3RemPortAutoNegAdvertisedCap; /* ReadOnly */ 142 | size_t lldpV2Xdot3RemPortAutoNegAdvertisedCapLen; 143 | ulong lldpV2Xdot3RemPortOperMauType; /* ReadOnly */ 144 | }; 145 | struct lldpV2Xdot3RemPowerTable_data { 146 | struct lldpV2Xdot3RemPowerTable_data *lldpV2Xdot3RemPowerTable_old; 147 | uint lldpV2Xdot3RemPowerTable_rsvs; 148 | uint lldpV2Xdot3RemPowerTable_tsts; 149 | uint lldpV2Xdot3RemPowerTable_sets; 150 | uint lldpV2Xdot3RemPowerTable_request; 151 | uint lldpV2Xdot3RemPowerTable_refs; 152 | uint lldpV2Xdot3RemPowerTable_id; 153 | long lldpV2RemTimeMark; /* NoAccess */ 154 | long lldpV2RemLocalIfIndex; /* NoAccess */ 155 | ulong lldpV2RemLocalDestMACAddress; /* NoAccess */ 156 | ulong lldpV2RemIndex; /* NoAccess */ 157 | long lldpV2Xdot3RemPowerPortClass; /* ReadOnly */ 158 | long lldpV2Xdot3RemPowerMDISupported; /* ReadOnly */ 159 | long lldpV2Xdot3RemPowerMDIEnabled; /* ReadOnly */ 160 | long lldpV2Xdot3RemPowerPairControlable; /* ReadOnly */ 161 | ulong lldpV2Xdot3RemPowerPairs; /* ReadOnly */ 162 | ulong lldpV2Xdot3RemPowerClass; /* ReadOnly */ 163 | }; 164 | struct lldpV2Xdot3RemMaxFrameSizeTable_data { 165 | struct lldpV2Xdot3RemMaxFrameSizeTable_data *lldpV2Xdot3RemMaxFrameSizeTable_old; 166 | uint lldpV2Xdot3RemMaxFrameSizeTable_rsvs; 167 | uint lldpV2Xdot3RemMaxFrameSizeTable_tsts; 168 | uint lldpV2Xdot3RemMaxFrameSizeTable_sets; 169 | uint lldpV2Xdot3RemMaxFrameSizeTable_request; 170 | uint lldpV2Xdot3RemMaxFrameSizeTable_refs; 171 | uint lldpV2Xdot3RemMaxFrameSizeTable_id; 172 | long lldpV2RemTimeMark; /* NoAccess */ 173 | long lldpV2RemLocalIfIndex; /* NoAccess */ 174 | ulong lldpV2RemLocalDestMACAddress; /* NoAccess */ 175 | ulong lldpV2RemIndex; /* NoAccess */ 176 | ulong lldpV2Xdot3RemMaxFrameSize; /* ReadOnly */ 177 | }; 178 | 179 | /* storage declarations */ 180 | extern struct lldpV2Xdot3MIB_data *lldpV2Xdot3MIBStorage; 181 | extern struct header_complex_index *lldpV2Xdot3PortConfigTableStorage; 182 | extern struct header_complex_index *lldpV2Xdot3LocPortTableStorage; 183 | extern struct header_complex_index *lldpV2Xdot3LocPowerTableStorage; 184 | extern struct header_complex_index *lldpV2Xdot3LocMaxFrameSizeTableStorage; 185 | extern struct header_complex_index *lldpV2Xdot3RemPortTableStorage; 186 | extern struct header_complex_index *lldpV2Xdot3RemPowerTableStorage; 187 | extern struct header_complex_index *lldpV2Xdot3RemMaxFrameSizeTableStorage; 188 | 189 | /* enum definitions from the covered mib sections */ 190 | 191 | #define LLDPV2XDOT3PORTCONFIGTLVSTXENABLE_MACPHYCONFIGSTATUS 0 192 | #define LLDPV2XDOT3PORTCONFIGTLVSTXENABLE_POWERVIAMDI 1 193 | #define LLDPV2XDOT3PORTCONFIGTLVSTXENABLE_UNUSED 2 194 | #define LLDPV2XDOT3PORTCONFIGTLVSTXENABLE_MAXFRAMESIZE 3 195 | 196 | #define LLDPV2XDOT3LOCPORTAUTONEGSUPPORTED_TRUE 1 197 | #define LLDPV2XDOT3LOCPORTAUTONEGSUPPORTED_FALSE 2 198 | 199 | #define LLDPV2XDOT3LOCPORTAUTONEGENABLED_TRUE 1 200 | #define LLDPV2XDOT3LOCPORTAUTONEGENABLED_FALSE 2 201 | 202 | #define LLDPV2XDOT3LOCPOWERPORTCLASS_PCLASSPSE 1 203 | #define LLDPV2XDOT3LOCPOWERPORTCLASS_PCLASSPD 2 204 | 205 | #define LLDPV2XDOT3LOCPOWERMDISUPPORTED_TRUE 1 206 | #define LLDPV2XDOT3LOCPOWERMDISUPPORTED_FALSE 2 207 | 208 | #define LLDPV2XDOT3LOCPOWERMDIENABLED_TRUE 1 209 | #define LLDPV2XDOT3LOCPOWERMDIENABLED_FALSE 2 210 | 211 | #define LLDPV2XDOT3LOCPOWERPAIRCONTROLABLE_TRUE 1 212 | #define LLDPV2XDOT3LOCPOWERPAIRCONTROLABLE_FALSE 2 213 | 214 | #define LLDPV2XDOT3REMPORTAUTONEGSUPPORTED_TRUE 1 215 | #define LLDPV2XDOT3REMPORTAUTONEGSUPPORTED_FALSE 2 216 | 217 | #define LLDPV2XDOT3REMPORTAUTONEGENABLED_TRUE 1 218 | #define LLDPV2XDOT3REMPORTAUTONEGENABLED_FALSE 2 219 | 220 | #define LLDPV2XDOT3REMPOWERPORTCLASS_PCLASSPSE 1 221 | #define LLDPV2XDOT3REMPOWERPORTCLASS_PCLASSPD 2 222 | 223 | #define LLDPV2XDOT3REMPOWERMDISUPPORTED_TRUE 1 224 | #define LLDPV2XDOT3REMPOWERMDISUPPORTED_FALSE 2 225 | 226 | #define LLDPV2XDOT3REMPOWERMDIENABLED_TRUE 1 227 | #define LLDPV2XDOT3REMPOWERMDIENABLED_FALSE 2 228 | 229 | #define LLDPV2XDOT3REMPOWERPAIRCONTROLABLE_TRUE 1 230 | #define LLDPV2XDOT3REMPOWERPAIRCONTROLABLE_FALSE 2 231 | 232 | /* notifications */ 233 | 234 | /* scalars accessible only for notify */ 235 | 236 | /* object id definitions */ 237 | extern oid lldpV2Xdot3TxRxCompliance_oid[14]; 238 | extern oid lldpV2Xdot3TxCompliance_oid[14]; 239 | extern oid lldpV2Xdot3RxCompliance_oid[14]; 240 | extern oid lldpV2Xdot3ConfigGroup_oid[14]; 241 | extern oid lldpV2Xdot3LocSysGroup_oid[14]; 242 | extern oid lldpV2Xdot3RemSysGroup_oid[14]; 243 | 244 | /* function prototypes */ 245 | /* trap function prototypes */ 246 | 247 | /* variable function prototypes */ 248 | void init_lldpV2Xdot3MIB(void); 249 | void deinit_lldpV2Xdot3MIB(void); 250 | int term_lldpV2Xdot3MIB(int majorID, int minorID, void *serverarg, void *clientarg); 251 | FindVarMethod var_lldpV2Xdot3MIB; 252 | struct lldpV2Xdot3MIB_data *lldpV2Xdot3MIB_create(void); 253 | struct lldpV2Xdot3MIB_data *lldpV2Xdot3MIB_duplicate(struct lldpV2Xdot3MIB_data *); 254 | int lldpV2Xdot3MIB_destroy(struct lldpV2Xdot3MIB_data **); 255 | int lldpV2Xdot3MIB_add(struct lldpV2Xdot3MIB_data *); 256 | void parse_lldpV2Xdot3MIB(const char *, char *); 257 | SNMPCallback store_lldpV2Xdot3MIB; 258 | void refresh_lldpV2Xdot3MIB(int); 259 | FindVarMethod var_lldpV2Xdot3PortConfigTable; 260 | struct lldpV2Xdot3PortConfigTable_data *lldpV2Xdot3PortConfigTable_create(void); 261 | struct lldpV2Xdot3PortConfigTable_data *lldpV2Xdot3PortConfigTable_duplicate(struct lldpV2Xdot3PortConfigTable_data *); 262 | int lldpV2Xdot3PortConfigTable_destroy(struct lldpV2Xdot3PortConfigTable_data **); 263 | int lldpV2Xdot3PortConfigTable_add(struct lldpV2Xdot3PortConfigTable_data *); 264 | int lldpV2Xdot3PortConfigTable_del(struct lldpV2Xdot3PortConfigTable_data *); 265 | void parse_lldpV2Xdot3PortConfigTable(const char *, char *); 266 | SNMPCallback store_lldpV2Xdot3PortConfigTable; 267 | void refresh_lldpV2Xdot3PortConfigTable(int); 268 | FindVarMethod var_lldpV2Xdot3LocPortTable; 269 | struct lldpV2Xdot3LocPortTable_data *lldpV2Xdot3LocPortTable_create(void); 270 | struct lldpV2Xdot3LocPortTable_data *lldpV2Xdot3LocPortTable_duplicate(struct lldpV2Xdot3LocPortTable_data *); 271 | int lldpV2Xdot3LocPortTable_destroy(struct lldpV2Xdot3LocPortTable_data **); 272 | int lldpV2Xdot3LocPortTable_add(struct lldpV2Xdot3LocPortTable_data *); 273 | int lldpV2Xdot3LocPortTable_del(struct lldpV2Xdot3LocPortTable_data *); 274 | void parse_lldpV2Xdot3LocPortTable(const char *, char *); 275 | SNMPCallback store_lldpV2Xdot3LocPortTable; 276 | void refresh_lldpV2Xdot3LocPortTable(int); 277 | FindVarMethod var_lldpV2Xdot3LocPowerTable; 278 | struct lldpV2Xdot3LocPowerTable_data *lldpV2Xdot3LocPowerTable_create(void); 279 | struct lldpV2Xdot3LocPowerTable_data *lldpV2Xdot3LocPowerTable_duplicate(struct lldpV2Xdot3LocPowerTable_data *); 280 | int lldpV2Xdot3LocPowerTable_destroy(struct lldpV2Xdot3LocPowerTable_data **); 281 | int lldpV2Xdot3LocPowerTable_add(struct lldpV2Xdot3LocPowerTable_data *); 282 | int lldpV2Xdot3LocPowerTable_del(struct lldpV2Xdot3LocPowerTable_data *); 283 | void parse_lldpV2Xdot3LocPowerTable(const char *, char *); 284 | SNMPCallback store_lldpV2Xdot3LocPowerTable; 285 | void refresh_lldpV2Xdot3LocPowerTable(int); 286 | FindVarMethod var_lldpV2Xdot3LocMaxFrameSizeTable; 287 | struct lldpV2Xdot3LocMaxFrameSizeTable_data *lldpV2Xdot3LocMaxFrameSizeTable_create(void); 288 | struct lldpV2Xdot3LocMaxFrameSizeTable_data *lldpV2Xdot3LocMaxFrameSizeTable_duplicate(struct lldpV2Xdot3LocMaxFrameSizeTable_data *); 289 | int lldpV2Xdot3LocMaxFrameSizeTable_destroy(struct lldpV2Xdot3LocMaxFrameSizeTable_data **); 290 | int lldpV2Xdot3LocMaxFrameSizeTable_add(struct lldpV2Xdot3LocMaxFrameSizeTable_data *); 291 | int lldpV2Xdot3LocMaxFrameSizeTable_del(struct lldpV2Xdot3LocMaxFrameSizeTable_data *); 292 | void parse_lldpV2Xdot3LocMaxFrameSizeTable(const char *, char *); 293 | SNMPCallback store_lldpV2Xdot3LocMaxFrameSizeTable; 294 | void refresh_lldpV2Xdot3LocMaxFrameSizeTable(int); 295 | FindVarMethod var_lldpV2Xdot3RemPortTable; 296 | struct lldpV2Xdot3RemPortTable_data *lldpV2Xdot3RemPortTable_create(void); 297 | struct lldpV2Xdot3RemPortTable_data *lldpV2Xdot3RemPortTable_duplicate(struct lldpV2Xdot3RemPortTable_data *); 298 | int lldpV2Xdot3RemPortTable_destroy(struct lldpV2Xdot3RemPortTable_data **); 299 | int lldpV2Xdot3RemPortTable_add(struct lldpV2Xdot3RemPortTable_data *); 300 | int lldpV2Xdot3RemPortTable_del(struct lldpV2Xdot3RemPortTable_data *); 301 | void parse_lldpV2Xdot3RemPortTable(const char *, char *); 302 | SNMPCallback store_lldpV2Xdot3RemPortTable; 303 | void refresh_lldpV2Xdot3RemPortTable(int); 304 | FindVarMethod var_lldpV2Xdot3RemPowerTable; 305 | struct lldpV2Xdot3RemPowerTable_data *lldpV2Xdot3RemPowerTable_create(void); 306 | struct lldpV2Xdot3RemPowerTable_data *lldpV2Xdot3RemPowerTable_duplicate(struct lldpV2Xdot3RemPowerTable_data *); 307 | int lldpV2Xdot3RemPowerTable_destroy(struct lldpV2Xdot3RemPowerTable_data **); 308 | int lldpV2Xdot3RemPowerTable_add(struct lldpV2Xdot3RemPowerTable_data *); 309 | int lldpV2Xdot3RemPowerTable_del(struct lldpV2Xdot3RemPowerTable_data *); 310 | void parse_lldpV2Xdot3RemPowerTable(const char *, char *); 311 | SNMPCallback store_lldpV2Xdot3RemPowerTable; 312 | void refresh_lldpV2Xdot3RemPowerTable(int); 313 | FindVarMethod var_lldpV2Xdot3RemMaxFrameSizeTable; 314 | struct lldpV2Xdot3RemMaxFrameSizeTable_data *lldpV2Xdot3RemMaxFrameSizeTable_create(void); 315 | struct lldpV2Xdot3RemMaxFrameSizeTable_data *lldpV2Xdot3RemMaxFrameSizeTable_duplicate(struct lldpV2Xdot3RemMaxFrameSizeTable_data *); 316 | int lldpV2Xdot3RemMaxFrameSizeTable_destroy(struct lldpV2Xdot3RemMaxFrameSizeTable_data **); 317 | int lldpV2Xdot3RemMaxFrameSizeTable_add(struct lldpV2Xdot3RemMaxFrameSizeTable_data *); 318 | int lldpV2Xdot3RemMaxFrameSizeTable_del(struct lldpV2Xdot3RemMaxFrameSizeTable_data *); 319 | void parse_lldpV2Xdot3RemMaxFrameSizeTable(const char *, char *); 320 | SNMPCallback store_lldpV2Xdot3RemMaxFrameSizeTable; 321 | void refresh_lldpV2Xdot3RemMaxFrameSizeTable(int); 322 | 323 | WriteMethod write_lldpV2Xdot3PortConfigTLVsTxEnable; 324 | #endif /* __LOCAL_LLDPV2XDOT3MIB_H__ */ 325 | -------------------------------------------------------------------------------- /src/mibs/IEEE8021-ECMP-MIB.mib: -------------------------------------------------------------------------------- 1 | -- =================================================================== 2 | -- IEEE 802.1 Equal Cost Multiple Paths (ECMP) MIB 3 | -- =================================================================== 4 | 5 | IEEE8021-ECMP-MIB DEFINITIONS ::= BEGIN 6 | 7 | IMPORTS 8 | ieee8021BridgeBasePort, ieee8021BridgeBasePortComponentId 9 | FROM IEEE8021-BRIDGE-MIB 10 | ieee8021QBridgePortVlanStatisticsEntry, ieee8021QBridgeTpFdbEntry 11 | FROM IEEE8021-Q-BRIDGE-MIB 12 | IEEE8021SpbBridgePriority, ieee8021SpbTopIx, ieee8021SpbmTopSrvEntry 13 | FROM IEEE8021-SPB-MIB 14 | ieee802dot1mibs 15 | FROM IEEE8021-TC-MIB 16 | PortList, VlanId 17 | FROM Q-BRIDGE-MIB 18 | MODULE-COMPLIANCE, OBJECT-GROUP 19 | FROM SNMPv2-CONF 20 | Counter64, Integer32, MODULE-IDENTITY, OBJECT-TYPE 21 | FROM SNMPv2-SMI 22 | RowStatus, TruthValue 23 | FROM SNMPv2-TC; 24 | 25 | ieee8021EcmpMib MODULE-IDENTITY 26 | LAST-UPDATED "201305130000Z" -- May 13, 2013 27 | ORGANIZATION 28 | "IEEE 802.1 Working Group" 29 | CONTACT-INFO 30 | "WG-URL: http://grouper.ieee.org/groups/802/1/index.html 31 | WG-EMail: stds-802-1@ieee.org 32 | 33 | Contact: Ben Mack-Crane 34 | Postal: C/O IEEE 802.1 Working Group 35 | IEEE Standards Association 36 | 445 Hoes Lane 37 | P.O. Box 1331 38 | Piscataway 39 | NJ 08855-1331 40 | USA 41 | E-mail: STDS-802-1-L@LISTSERV.IEEE.ORG" 42 | DESCRIPTION 43 | "802.1 ECMP MIB" 44 | REVISION "201305130000Z" -- May 13, 2013 45 | DESCRIPTION 46 | "802.1 Equal Cost Multiple Paths MIB Initial Version" 47 | ::= { ieee802dot1mibs 28 } 48 | 49 | 50 | ieee8021EcmpNotifications OBJECT IDENTIFIER 51 | ::= { ieee8021EcmpMib 0 } 52 | 53 | ieee8021EcmpObjects OBJECT IDENTIFIER 54 | ::= { ieee8021EcmpMib 1 } 55 | 56 | -- =================================================================== 57 | -- OBJECT DEFINITIONS 58 | -- =================================================================== 59 | 60 | -- ============================================================= 61 | -- ECMP FDB object for Individual Addresses 62 | -- ============================================================= 63 | 64 | ieee8021QBridgeEcmpFdbTable OBJECT-TYPE 65 | SYNTAX SEQUENCE OF Ieee8021QBridgeEcmpFdbEntry 66 | MAX-ACCESS not-accessible 67 | STATUS current 68 | DESCRIPTION 69 | "A table that contains information about unicast entries 70 | for which the device has forwarding and/or filtering 71 | information. This information is used by the 72 | ECMP next hop selection function in determining how to 73 | propagate a received frame." 74 | REFERENCE 75 | "12.7.7.3, 8.8.3:c" 76 | ::= { ieee8021EcmpObjects 1 } 77 | 78 | ieee8021QBridgeEcmpFdbEntry OBJECT-TYPE 79 | SYNTAX Ieee8021QBridgeEcmpFdbEntry 80 | MAX-ACCESS not-accessible 81 | STATUS current 82 | DESCRIPTION 83 | "Information about a specific unicast MAC address for 84 | which the device has some forwarding and/or filtering 85 | information." 86 | AUGMENTS { ieee8021QBridgeTpFdbEntry } 87 | ::= { ieee8021QBridgeEcmpFdbTable 1 } 88 | 89 | Ieee8021QBridgeEcmpFdbEntry ::= SEQUENCE { 90 | ieee8021QBridgeEcmpFdbPortList PortList 91 | } 92 | 93 | ieee8021QBridgeEcmpFdbPortList OBJECT-TYPE 94 | SYNTAX PortList 95 | MAX-ACCESS read-only 96 | STATUS current 97 | DESCRIPTION 98 | "The complete set of ports, in this FID, to which 99 | frames destined for this individual MAC address may be 100 | forwarded." 101 | ::= { ieee8021QBridgeEcmpFdbEntry 1 } 102 | 103 | -- ============================================================= 104 | -- Flow Filtering Control Table 105 | -- ============================================================= 106 | 107 | ieee8021EcmpFlowFilterCtlTable OBJECT-TYPE 108 | SYNTAX SEQUENCE OF Ieee8021EcmpFlowFilterCtlEntry 109 | MAX-ACCESS not-accessible 110 | STATUS current 111 | DESCRIPTION 112 | "A table flow filtering control informmation for ports 113 | in a Bridge supporting F-Tag processing." 114 | REFERENCE 115 | "12.16.5.4, 12.16.5.5" 116 | ::= { ieee8021EcmpObjects 2 } 117 | 118 | ieee8021EcmpFlowFilterCtlEntry OBJECT-TYPE 119 | SYNTAX Ieee8021EcmpFlowFilterCtlEntry 120 | MAX-ACCESS not-accessible 121 | STATUS current 122 | DESCRIPTION 123 | "An entry in the Flow Filtering Control Table for a 124 | port (CPB or PNP)." 125 | INDEX { ieee8021BridgeBasePortComponentId, 126 | ieee8021BridgeBasePort, ieee8021EcmpFlowFilterCtlVid } 127 | ::= { ieee8021EcmpFlowFilterCtlTable 1 } 128 | 129 | Ieee8021EcmpFlowFilterCtlEntry ::= SEQUENCE { 130 | ieee8021EcmpFlowFilterCtlVid VlanId, 131 | ieee8021EcmpFlowFilterCtlEnabled TruthValue, 132 | ieee8021EcmpFlowFilterCtlHashGen TruthValue, 133 | ieee8021EcmpFlowFilterCtlTtl Integer32 134 | } 135 | 136 | ieee8021EcmpFlowFilterCtlVid OBJECT-TYPE 137 | SYNTAX VlanId 138 | MAX-ACCESS not-accessible 139 | STATUS current 140 | DESCRIPTION 141 | "A B-vID registered on the port." 142 | ::= { ieee8021EcmpFlowFilterCtlEntry 1 } 143 | 144 | ieee8021EcmpFlowFilterCtlEnabled OBJECT-TYPE 145 | SYNTAX TruthValue 146 | MAX-ACCESS read-only 147 | STATUS current 148 | DESCRIPTION 149 | "Indicates whether or not flow filtering behavior 150 | is enabled on the port for the VID 151 | (true(1) is enabled, false(2) is disabled)." 152 | ::= { ieee8021EcmpFlowFilterCtlEntry 2 } 153 | 154 | ieee8021EcmpFlowFilterCtlHashGen OBJECT-TYPE 155 | SYNTAX TruthValue 156 | MAX-ACCESS read-only 157 | STATUS current 158 | DESCRIPTION 159 | "indicates whether or not flow hash generation 160 | is enabled on the port for the VID 161 | (true(1) is enabled, false(2) is disabled)." 162 | ::= { ieee8021EcmpFlowFilterCtlEntry 3 } 163 | 164 | ieee8021EcmpFlowFilterCtlTtl OBJECT-TYPE 165 | SYNTAX Integer32 (0..63) 166 | MAX-ACCESS read-write 167 | STATUS current 168 | DESCRIPTION 169 | "the initial TTL value for frames entering 170 | the flow filtering SPT Domain. 171 | Valid values are 1..63, zero indicates the 172 | value has not been set. 173 | This object is persistent." 174 | ::= { ieee8021EcmpFlowFilterCtlEntry 4 } 175 | 176 | -- =================================================================== 177 | -- ECMP ECT Static Entry Table 178 | -- =================================================================== 179 | 180 | ieee8021EcmpEctStaticTable OBJECT-TYPE 181 | SYNTAX SEQUENCE OF Ieee8021EcmpEctStaticEntry 182 | MAX-ACCESS not-accessible 183 | STATUS current 184 | DESCRIPTION 185 | "Table containing alternate Bridge priorities for tie-breaker 186 | masks used in selecting shared tree root bridges. 187 | The table is indexed by 188 | - ieee8021SpbTopIx from ieee8021SpbMtidStaticTable 189 | indicating the ISIS-SPB topology instance into 190 | which the bridge priority will be advertised, and 191 | - ieee8021EcmpEctStaticEntryTieBreakMask 192 | the associated tie-break mask value." 193 | REFERENCE 194 | "12.25.14" 195 | ::= { ieee8021EcmpObjects 3 } 196 | 197 | ieee8021EcmpEctStaticEntry OBJECT-TYPE 198 | SYNTAX Ieee8021EcmpEctStaticEntry 199 | MAX-ACCESS not-accessible 200 | STATUS current 201 | DESCRIPTION 202 | "This entry contains information about backbone services 203 | configured on this system to be advertised by ISIS-SPB." 204 | REFERENCE 205 | "12.25.8" 206 | INDEX { ieee8021SpbTopIx, 207 | ieee8021EcmpEctStaticEntryTieBreakMask } 208 | ::= { ieee8021EcmpEctStaticTable 1 } 209 | 210 | Ieee8021EcmpEctStaticEntry ::= SEQUENCE { 211 | ieee8021EcmpEctStaticEntryTieBreakMask Integer32, 212 | ieee8021EcmpEctStaticEntryBridgePriority IEEE8021SpbBridgePriority, 213 | ieee8021EcmpEctStaticEntryRowStatus RowStatus 214 | } 215 | 216 | ieee8021EcmpEctStaticEntryTieBreakMask OBJECT-TYPE 217 | SYNTAX Integer32 (0..15) 218 | MAX-ACCESS not-accessible 219 | STATUS current 220 | DESCRIPTION 221 | "The value used to create the Tie-Break Mask 222 | for selecting a shared tree root bridge." 223 | ::= { ieee8021EcmpEctStaticEntry 1 } 224 | 225 | ieee8021EcmpEctStaticEntryBridgePriority OBJECT-TYPE 226 | SYNTAX IEEE8021SpbBridgePriority 227 | MAX-ACCESS read-create 228 | STATUS current 229 | DESCRIPTION 230 | "A Bridge Priority value to be used 231 | for selecting a shared tree root bridge, 232 | i.e. the four most significant bits of the 233 | Bridge Identifier. 234 | This object is persistent." 235 | ::= { ieee8021EcmpEctStaticEntry 2 } 236 | 237 | ieee8021EcmpEctStaticEntryRowStatus OBJECT-TYPE 238 | SYNTAX RowStatus 239 | MAX-ACCESS read-create 240 | STATUS current 241 | DESCRIPTION 242 | "This column holds the status for this row. 243 | 244 | When the status is active, no columns of this table may be 245 | modified. All columns must have a valid value before the row 246 | can be activated. 247 | This object is persistent." 248 | ::= { ieee8021EcmpEctStaticEntry 3 } 249 | 250 | -- =================================================================== 251 | -- ECMP extensions to ieee8021SpbmTopSrvTable 252 | -- =================================================================== 253 | 254 | ieee8021EcmpTopSrvTable OBJECT-TYPE 255 | SYNTAX SEQUENCE OF Ieee8021EcmpTopSrvEntry 256 | MAX-ACCESS not-accessible 257 | STATUS current 258 | DESCRIPTION 259 | "Added info for SPBM PBB encapsulated services in this network." 260 | REFERENCE 261 | "12.25.8" 262 | ::= { ieee8021EcmpObjects 4 } 263 | 264 | ieee8021EcmpTopSrvEntry OBJECT-TYPE 265 | SYNTAX Ieee8021EcmpTopSrvEntry 266 | MAX-ACCESS not-accessible 267 | STATUS current 268 | DESCRIPTION 269 | "This table contains additional information about backbone 270 | services configured on this system to be advertised by 271 | ISIS-SPB." 272 | REFERENCE 273 | "12.25.8" 274 | AUGMENTS { ieee8021SpbmTopSrvEntry } 275 | ::= { ieee8021EcmpTopSrvTable 1 } 276 | 277 | Ieee8021EcmpTopSrvEntry ::= SEQUENCE { 278 | ieee8021EcmpTopSrvEntryTsBit TruthValue, 279 | ieee8021EcmpTopSrvEntryTieBreakMask Integer32 280 | } 281 | 282 | ieee8021EcmpTopSrvEntryTsBit OBJECT-TYPE 283 | SYNTAX TruthValue 284 | MAX-ACCESS read-only 285 | STATUS current 286 | DESCRIPTION 287 | "If true(1), indicates the BSI transmits multicast 288 | frames on a shared tree from this CBP." 289 | ::= { ieee8021EcmpTopSrvEntry 1 } 290 | 291 | ieee8021EcmpTopSrvEntryTieBreakMask OBJECT-TYPE 292 | SYNTAX Integer32 (0..15) 293 | MAX-ACCESS read-only 294 | STATUS current 295 | DESCRIPTION 296 | "The value used to create the Tie-Break Mask 297 | for calculating multicast trees." 298 | ::= { ieee8021EcmpTopSrvEntry 2 } 299 | 300 | -- ============================================================= 301 | -- Per port VLAN TTL Statistics Table 302 | -- ============================================================= 303 | 304 | ieee8021QBridgePortVlanTtlStatisticsTable OBJECT-TYPE 305 | SYNTAX SEQUENCE OF Ieee8021QBridgePortVlanTtlStatisticsEntry 306 | MAX-ACCESS not-accessible 307 | STATUS current 308 | DESCRIPTION 309 | "A table containing per-port, per-VID TTL discard statistics." 310 | ::= { ieee8021EcmpObjects 5 } 311 | 312 | ieee8021QBridgePortVlanTtlStatisticsEntry OBJECT-TYPE 313 | SYNTAX Ieee8021QBridgePortVlanTtlStatisticsEntry 314 | MAX-ACCESS not-accessible 315 | STATUS current 316 | DESCRIPTION 317 | "TTL discard statistics for a VID on an interface." 318 | AUGMENTS { ieee8021QBridgePortVlanStatisticsEntry } 319 | ::= { ieee8021QBridgePortVlanTtlStatisticsTable 1 } 320 | 321 | Ieee8021QBridgePortVlanTtlStatisticsEntry ::= SEQUENCE { 322 | ieee8021QBridgeTpVlanPortTtlDiscards Counter64 323 | } 324 | 325 | ieee8021QBridgeTpVlanPortTtlDiscards OBJECT-TYPE 326 | SYNTAX Counter64 327 | UNITS "frames" 328 | MAX-ACCESS read-only 329 | STATUS current 330 | DESCRIPTION 331 | "The number of valid frames received by this port from 332 | its segment that were classified as belonging to this 333 | VLAN and that were discarded due to TTL expiry. 334 | Discontinuities in the value of the counter can occur 335 | at re-initialization of the management system, and at 336 | other times as indicated by the value of 337 | ifCounterDiscontinuityTime object of the associated 338 | interface (if any)." 339 | REFERENCE 340 | "12.6.1.1.3" 341 | ::= { ieee8021QBridgePortVlanTtlStatisticsEntry 1 } 342 | 343 | -- =================================================================== 344 | -- Conformance Information 345 | -- =================================================================== 346 | 347 | ieee8021EcmpConformance OBJECT IDENTIFIER 348 | ::= { ieee8021EcmpMib 2 } 349 | 350 | ieee8021EcmpGroups OBJECT IDENTIFIER 351 | ::= { ieee8021EcmpConformance 1 } 352 | 353 | ieee8021EcmpCompliances OBJECT IDENTIFIER 354 | ::= { ieee8021EcmpConformance 2 } 355 | 356 | -- =================================================================== 357 | -- Units of conformance 358 | -- =================================================================== 359 | 360 | ieee8021QBridgeEcmpFdbGroup OBJECT-GROUP 361 | OBJECTS { ieee8021QBridgeEcmpFdbPortList } 362 | STATUS current 363 | DESCRIPTION 364 | "FDB Port Map for ECMP Individual address" 365 | ::= { ieee8021EcmpGroups 1 } 366 | 367 | ieee8021EcmpFlowFilterCtlGroup OBJECT-GROUP 368 | OBJECTS { ieee8021EcmpFlowFilterCtlEnabled, 369 | ieee8021EcmpFlowFilterCtlHashGen, 370 | ieee8021EcmpFlowFilterCtlTtl } 371 | STATUS current 372 | DESCRIPTION 373 | "Flow filtering control parameters on a CBP or PNP" 374 | ::= { ieee8021EcmpGroups 2 } 375 | 376 | ieee8021EcmpEctStaticGroup OBJECT-GROUP 377 | OBJECTS { ieee8021EcmpEctStaticEntryBridgePriority, 378 | ieee8021EcmpEctStaticEntryRowStatus } 379 | STATUS current 380 | DESCRIPTION 381 | "Optional Bridge Priority for selecting shared tree root" 382 | ::= { ieee8021EcmpGroups 3 } 383 | 384 | ieee8021EcmpTopSrvGroup OBJECT-GROUP 385 | OBJECTS { ieee8021EcmpTopSrvEntryTsBit, 386 | ieee8021EcmpTopSrvEntryTieBreakMask } 387 | STATUS current 388 | DESCRIPTION 389 | "Advertised I-SID parameters controlling multicast routing" 390 | ::= { ieee8021EcmpGroups 4 } 391 | 392 | ieee8021QBridgePortVlanTtlStatisticsGroup OBJECT-GROUP 393 | OBJECTS { ieee8021QBridgeTpVlanPortTtlDiscards } 394 | STATUS current 395 | DESCRIPTION 396 | "TTL discard statistics" 397 | ::= { ieee8021EcmpGroups 5 } 398 | 399 | -- =================================================================== 400 | -- Compliance statements 401 | -- =================================================================== 402 | 403 | ieee8021EcmpCompliance MODULE-COMPLIANCE 404 | STATUS current 405 | DESCRIPTION 406 | "Compliance to IEEE 802.1 SPBM ECMP" 407 | 408 | MODULE -- this module 409 | 410 | MANDATORY-GROUPS { ieee8021QBridgeEcmpFdbGroup, 411 | ieee8021EcmpEctStaticGroup, ieee8021EcmpTopSrvGroup } 412 | 413 | ::= { ieee8021EcmpCompliances 1 } 414 | 415 | ieee8021EcmpFlowFilteringCompliance MODULE-COMPLIANCE 416 | STATUS current 417 | DESCRIPTION 418 | "Compliance to IEEE 802.1 SPBM ECMP with flow filtering" 419 | 420 | MODULE -- this module 421 | 422 | MANDATORY-GROUPS { ieee8021EcmpFlowFilterCtlGroup, 423 | ieee8021QBridgePortVlanTtlStatisticsGroup } 424 | 425 | ::= { ieee8021EcmpCompliances 2 } 426 | 427 | END -- end of module IEEE8021-ECMP-MIB. 428 | 429 | -- vim: ft=mib comments=\f\:\",\b\:\-\-,\:\-\-,\f\b\:- fo+=tcqlornw tw=68 nocin nosi sts=4 sw=4 et 430 | --------------------------------------------------------------------------------