⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ospf6_snmp.c

📁 linux 路由软件 可支持RIP OSPF BGP等
💻 C
📖 第 1 页 / 共 2 页
字号:
/* OSPFv3 SNMP support * Copyright (C) 2004 Yasuhiro Ohara * * This file is part of GNU Zebra. * * GNU Zebra is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2, or (at your option) any * later version. * * GNU Zebra is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with GNU Zebra; see the file COPYING.  If not, write to the  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,  * Boston, MA 02111-1307, USA.   */#include <zebra.h>#ifdef HAVE_SNMP#ifdef HAVE_NETSNMP#include <net-snmp/net-snmp-config.h>#endif /*HAVE_NETSNMP*/#include <asn1.h>#include <snmp.h>#include <snmp_impl.h>#include "log.h"#include "vty.h"#include "linklist.h"#include "smux.h"#include "ospf6_proto.h"#include "ospf6_lsa.h"#include "ospf6_lsdb.h"#include "ospf6_route.h"#include "ospf6_top.h"#include "ospf6_area.h"#include "ospf6_interface.h"#include "ospf6_message.h"#include "ospf6_neighbor.h"#include "ospf6d.h"/* OSPFv3-MIB */#define OSPFv3MIB 1,3,6,1,3,102/* Zebra enterprise ospf6d MIB */#define OSPF6DOID 1,3,6,1,4,1,3317,1,2,6/* OSPFv3 MIB General Group values. */#define OSPFv3ROUTERID                   1#define OSPFv3ADMINSTAT                  2#define OSPFv3VERSIONNUMBER              3#define OSPFv3AREABDRRTRSTATUS           4#define OSPFv3ASBDRRTRSTATUS             5#define OSPFv3ASSCOPELSACOUNT            6#define OSPFv3ASSCOPELSACHECKSUMSUM      7#define OSPFv3ORIGINATENEWLSAS           8#define OSPFv3RXNEWLSAS                  9#define OSPFv3EXTLSACOUNT               10#define OSPFv3EXTAREALSDBLIMIT          11#define OSPFv3MULTICASTEXTENSIONS       12#define OSPFv3EXITOVERFLOWINTERVAL      13#define OSPFv3DEMANDEXTENSIONS          14#define OSPFv3TRAFFICENGINEERINGSUPPORT 15#define OSPFv3REFERENCEBANDWIDTH        16#define OSPFv3RESTARTSUPPORT            17#define OSPFv3RESTARTINTERVAL           18#define OSPFv3RESTARTSTATUS             19#define OSPFv3RESTARTAGE                20#define OSPFv3RESTARTEXITREASON         21/* OSPFv3 MIB Area Table values. */#define OSPFv3AREAID                     1#define OSPFv3IMPORTASEXTERN             2#define OSPFv3AREASPFRUNS                3#define OSPFv3AREABDRRTRCOUNT            4#define OSPFv3AREAASBDRRTRCOUNT          5#define OSPFv3AREASCOPELSACOUNT          6#define OSPFv3AREASCOPELSACKSUMSUM       7#define OSPFv3AREASUMMARY                8#define OSPFv3AREASTATUS                 9#define OSPFv3STUBMETRIC                10#define OSPFv3AREANSSATRANSLATORROLE    11#define OSPFv3AREANSSATRANSLATORSTATE   12#define OSPFv3AREANSSATRANSLATORSTABILITYINTERVAL    13#define OSPFv3AREANSSATRANSLATOREVENTS  14#define OSPFv3AREASTUBMETRICTYPE        15/* OSPFv3 MIB Area Lsdb Table values. */#define OSPFv3AREALSDBAREAID             1#define OSPFv3AREALSDBTYPE               2#define OSPFv3AREALSDBROUTERID           3#define OSPFv3AREALSDBLSID               4#define OSPFv3AREALSDBSEQUENCE           5#define OSPFv3AREALSDBAGE                6#define OSPFv3AREALSDBCHECKSUM           7#define OSPFv3AREALSDBADVERTISEMENT      8#define OSPFv3AREALSDBTYPEKNOWN          9/* SYNTAX Status from OSPF-MIB. */#define OSPF_STATUS_ENABLED  1#define OSPF_STATUS_DISABLED 2/* SNMP value hack. */#define COUNTER     ASN_COUNTER#define INTEGER     ASN_INTEGER#define GAUGE       ASN_GAUGE#define TIMETICKS   ASN_TIMETICKS#define IPADDRESS   ASN_IPADDRESS#define STRING      ASN_OCTET_STR/* For return values e.g. SNMP_INTEGER macro */SNMP_LOCAL_VARIABLESstatic struct in_addr tmp;#define INT32_INADDR(x) \  (tmp.s_addr = (x), tmp)/* OSPFv3-MIB instances. */oid ospfv3_oid [] = { OSPFv3MIB };oid ospf6d_oid [] = { OSPF6DOID };/* empty ID 0.0.0.0 e.g. empty router-id */static struct in_addr ospf6_empty_id = {0};/* Hook functions. */static u_char *ospfv3GeneralGroup ();static u_char *ospfv3AreaEntry ();static u_char *ospfv3AreaLsdbEntry ();struct variable ospfv3_variables[] ={  /* OSPF general variables */  {OSPFv3ROUTERID,              IPADDRESS, RWRITE, ospfv3GeneralGroup,   3, {1, 1, 1}},  {OSPFv3ADMINSTAT,             INTEGER,   RWRITE, ospfv3GeneralGroup,   3, {1, 1, 2}},  {OSPFv3VERSIONNUMBER,         INTEGER,   RONLY,  ospfv3GeneralGroup,   3, {1, 1, 3}},  {OSPFv3AREABDRRTRSTATUS,      INTEGER,   RONLY,  ospfv3GeneralGroup,   3, {1, 1, 4}},  {OSPFv3ASBDRRTRSTATUS,        INTEGER,   RWRITE, ospfv3GeneralGroup,   3, {1, 1, 5}},  {OSPFv3ASSCOPELSACOUNT,       GAUGE,     RONLY,  ospfv3GeneralGroup,   3, {1, 1, 6}},  {OSPFv3ASSCOPELSACHECKSUMSUM, INTEGER,   RONLY,  ospfv3GeneralGroup,   3, {1, 1, 7}},  {OSPFv3ORIGINATENEWLSAS,      COUNTER,   RONLY,  ospfv3GeneralGroup,   3, {1, 1, 8}},  {OSPFv3RXNEWLSAS,             COUNTER,   RONLY,  ospfv3GeneralGroup,   3, {1, 1, 9}},  {OSPFv3EXTLSACOUNT,           GAUGE,     RONLY,  ospfv3GeneralGroup,   3, {1, 1, 10}},  {OSPFv3EXTAREALSDBLIMIT,      INTEGER,   RWRITE, ospfv3GeneralGroup,   3, {1, 1, 11}},  {OSPFv3MULTICASTEXTENSIONS,   INTEGER,   RWRITE, ospfv3GeneralGroup,   3, {1, 1, 12}},  {OSPFv3EXITOVERFLOWINTERVAL,  INTEGER,   RWRITE, ospfv3GeneralGroup,   3, {1, 1, 13}},  {OSPFv3DEMANDEXTENSIONS,      INTEGER,   RWRITE, ospfv3GeneralGroup,   3, {1, 1, 14}},  {OSPFv3TRAFFICENGINEERINGSUPPORT, INTEGER, RWRITE, ospfv3GeneralGroup,   3, {1, 1, 15}},  {OSPFv3REFERENCEBANDWIDTH,    INTEGER, RWRITE, ospfv3GeneralGroup,   3, {1, 1, 16}},  {OSPFv3RESTARTSUPPORT,        INTEGER, RWRITE, ospfv3GeneralGroup,   3, {1, 1, 17}},  {OSPFv3RESTARTINTERVAL,       INTEGER, RWRITE, ospfv3GeneralGroup,   3, {1, 1, 18}},  {OSPFv3RESTARTSTATUS,         INTEGER, RONLY,  ospfv3GeneralGroup,   3, {1, 1, 19}},  {OSPFv3RESTARTAGE,            INTEGER, RONLY,  ospfv3GeneralGroup,   3, {1, 1, 20}},  {OSPFv3RESTARTEXITREASON,     INTEGER, RONLY,  ospfv3GeneralGroup,   3, {1, 1, 21}},  /* OSPFv3 Area Data Structure */  {OSPFv3AREAID,                IPADDRESS, RONLY,  ospfv3AreaEntry,   4, {1, 2, 1, 1}},  {OSPFv3IMPORTASEXTERN,        INTEGER,   RWRITE, ospfv3AreaEntry,   4, {1, 2, 1, 2}},  {OSPFv3AREASPFRUNS,           COUNTER,   RONLY,  ospfv3AreaEntry,   4, {1, 2, 1, 3}},  {OSPFv3AREABDRRTRCOUNT,       GAUGE,     RONLY,  ospfv3AreaEntry,   4, {1, 2, 1, 4}},  {OSPFv3AREAASBDRRTRCOUNT,     GAUGE,     RONLY,  ospfv3AreaEntry,   4, {1, 2, 1, 5}},  {OSPFv3AREASCOPELSACOUNT,     GAUGE,     RONLY,  ospfv3AreaEntry,   4, {1, 2, 1, 6}},  {OSPFv3AREASCOPELSACKSUMSUM,  INTEGER,   RONLY,  ospfv3AreaEntry,   4, {1, 2, 1, 7}},  {OSPFv3AREASUMMARY,           INTEGER,   RWRITE, ospfv3AreaEntry,   4, {1, 2, 1, 8}},  {OSPFv3AREASTATUS,            INTEGER,   RWRITE, ospfv3AreaEntry,   4, {1, 2, 1, 9}},  {OSPFv3STUBMETRIC,            INTEGER,   RWRITE, ospfv3AreaEntry,   4, {1, 2, 1, 10}},  {OSPFv3AREANSSATRANSLATORROLE, INTEGER,  RWRITE, ospfv3AreaEntry,   4, {1, 2, 1, 11}},  {OSPFv3AREANSSATRANSLATORSTATE, INTEGER, RONLY,  ospfv3AreaEntry,   4, {1, 2, 1, 12}},  {OSPFv3AREANSSATRANSLATORSTABILITYINTERVAL, INTEGER, RWRITE, ospfv3AreaEntry,   4, {1, 2, 1, 13}},  {OSPFv3AREANSSATRANSLATOREVENTS, COUNTER, RONLY, ospfv3AreaEntry,   4, {1, 2, 1, 14}},  {OSPFv3AREASTUBMETRICTYPE,    INTEGER, RWRITE, ospfv3AreaEntry,   4, {1, 2, 1, 15}},  {OSPFv3AREALSDBAREAID,        IPADDRESS, RONLY,  ospfv3AreaLsdbEntry,   4, {1, 4, 1, 1}},  {OSPFv3AREALSDBTYPE,          GAUGE,     RONLY,  ospfv3AreaLsdbEntry,   4, {1, 4, 1, 2}},  {OSPFv3AREALSDBROUTERID,      IPADDRESS, RONLY,  ospfv3AreaLsdbEntry,   4, {1, 4, 1, 3}},  {OSPFv3AREALSDBLSID,          IPADDRESS, RONLY,  ospfv3AreaLsdbEntry,   4, {1, 4, 1, 4}},  {OSPFv3AREALSDBSEQUENCE,      INTEGER,   RONLY,  ospfv3AreaLsdbEntry,   4, {1, 4, 1, 5}},  {OSPFv3AREALSDBAGE,           INTEGER,   RONLY,  ospfv3AreaLsdbEntry,   4, {1, 4, 1, 6}},  {OSPFv3AREALSDBCHECKSUM,      INTEGER,   RONLY,  ospfv3AreaLsdbEntry,   4, {1, 4, 1, 7}},  {OSPFv3AREALSDBADVERTISEMENT, STRING,    RONLY,  ospfv3AreaLsdbEntry,   4, {1, 4, 1, 8}},  {OSPFv3AREALSDBTYPEKNOWN,     INTEGER,   RONLY,  ospfv3AreaLsdbEntry,   4, {1, 4, 1, 9}},};static u_char *ospfv3GeneralGroup (struct variable *v, oid *name, size_t *length,                    int exact, size_t *var_len, WriteMethod **write_method){  /* Check whether the instance identifier is valid */  if (smux_header_generic (v, name, length, exact, var_len, write_method)      == MATCH_FAILED)    return NULL;  /* Return the current value of the variable */  switch (v->magic)    {    case OSPFv3ROUTERID:                  /* 1*/      /* Router-ID of this OSPF instance. */      if (ospf6)	return SNMP_IPADDRESS (INT32_INADDR (ospf6->router_id));      else	return SNMP_IPADDRESS (ospf6_empty_id);      break;    case OSPFv3ADMINSTAT:                 /* 2*/      break;    case OSPFv3VERSIONNUMBER:             /* 3*/      break;    case OSPFv3AREABDRRTRSTATUS:          /* 4*/      break;    case OSPFv3ASBDRRTRSTATUS:            /* 5*/      break;    case OSPFv3ASSCOPELSACOUNT:           /* 6*/      break;    case OSPFv3ASSCOPELSACHECKSUMSUM:     /* 7*/      break;    case OSPFv3ORIGINATENEWLSAS:          /* 8*/      break;    case OSPFv3RXNEWLSAS:                 /* 9*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -