diff options
Diffstat (limited to '')
-rw-r--r-- | src/go/plugin/go.d/modules/snmp/netif.go | 412 |
1 files changed, 412 insertions, 0 deletions
diff --git a/src/go/plugin/go.d/modules/snmp/netif.go b/src/go/plugin/go.d/modules/snmp/netif.go new file mode 100644 index 000000000..1345e5ee4 --- /dev/null +++ b/src/go/plugin/go.d/modules/snmp/netif.go @@ -0,0 +1,412 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +package snmp + +import ( + "fmt" + "strings" +) + +const ( + oidIfIndex = "1.3.6.1.2.1.2.2.1.1" + oidIfDescr = "1.3.6.1.2.1.2.2.1.2" + oidIfType = "1.3.6.1.2.1.2.2.1.3" + oidIfMtu = "1.3.6.1.2.1.2.2.1.4" + oidIfSpeed = "1.3.6.1.2.1.2.2.1.5" + oidIfPhysAddress = "1.3.6.1.2.1.2.2.1.6" + oidIfAdminStatus = "1.3.6.1.2.1.2.2.1.7" + oidIfOperStatus = "1.3.6.1.2.1.2.2.1.8" + oidIfLastChange = "1.3.6.1.2.1.2.2.1.9" + oidIfInOctets = "1.3.6.1.2.1.2.2.1.10" + oidIfInUcastPkts = "1.3.6.1.2.1.2.2.1.11" + oidIfInNUcastPkts = "1.3.6.1.2.1.2.2.1.12" + oidIfInDiscards = "1.3.6.1.2.1.2.2.1.13" + oidIfInErrors = "1.3.6.1.2.1.2.2.1.14" + oidIfInUnknownProtos = "1.3.6.1.2.1.2.2.1.15" + oidIfOutOctets = "1.3.6.1.2.1.2.2.1.16" + oidIfOutUcastPkts = "1.3.6.1.2.1.2.2.1.17" + oidIfOutNUcastPkts = "1.3.6.1.2.1.2.2.1.18" + oidIfOutDiscards = "1.3.6.1.2.1.2.2.1.19" + oidIfOutErrors = "1.3.6.1.2.1.2.2.1.20" + + oidIfName = "1.3.6.1.2.1.31.1.1.1.1" + oidIfInMulticastPkts = "1.3.6.1.2.1.31.1.1.1.2" + oidIfInBroadcastPkts = "1.3.6.1.2.1.31.1.1.1.3" + oidIfOutMulticastPkts = "1.3.6.1.2.1.31.1.1.1.4" + oidIfOutBroadcastPkts = "1.3.6.1.2.1.31.1.1.1.5" + oidIfHCInOctets = "1.3.6.1.2.1.31.1.1.1.6" + oidIfHCInUcastPkts = "1.3.6.1.2.1.31.1.1.1.7" + oidIfHCInMulticastPkts = "1.3.6.1.2.1.31.1.1.1.8" + oidIfHCInBroadcastPkts = "1.3.6.1.2.1.31.1.1.1.9" + oidIfHCOutOctets = "1.3.6.1.2.1.31.1.1.1.10" + oidIfHCOutUcastPkts = "1.3.6.1.2.1.31.1.1.1.11" + oidIfHCOutMulticastPkts = "1.3.6.1.2.1.31.1.1.1.12" + oidIfHCOutBroadcastPkts = "1.3.6.1.2.1.31.1.1.1.13" + oidIfHighSpeed = "1.3.6.1.2.1.31.1.1.1.15" + oidIfAlias = "1.3.6.1.2.1.31.1.1.1.18" +) + +type netInterface struct { + updated bool + hasCharts bool + idx string + + ifIndex int64 + ifDescr string + ifType int64 + ifMtu int64 + ifSpeed int64 + //ifPhysAddress string + ifAdminStatus int64 + ifOperStatus int64 + //ifLastChange string + ifInOctets int64 + ifInUcastPkts int64 + ifInNUcastPkts int64 + ifInDiscards int64 + ifInErrors int64 + ifInUnknownProtos int64 + ifOutOctets int64 + ifOutUcastPkts int64 + ifOutNUcastPkts int64 + ifOutDiscards int64 + ifOutErrors int64 + ifName string + ifInMulticastPkts int64 + ifInBroadcastPkts int64 + ifOutMulticastPkts int64 + ifOutBroadcastPkts int64 + ifHCInOctets int64 + ifHCInUcastPkts int64 + ifHCInMulticastPkts int64 + ifHCInBroadcastPkts int64 + ifHCOutOctets int64 + ifHCOutUcastPkts int64 + ifHCOutMulticastPkts int64 + ifHCOutBroadcastPkts int64 + ifHighSpeed int64 + ifAlias string +} + +func (n *netInterface) String() string { + return fmt.Sprintf("iface index='%d',type='%s',name='%s',descr='%s',alias='%s'", + n.ifIndex, ifTypeMapping[n.ifType], n.ifName, n.ifDescr, strings.ReplaceAll(n.ifAlias, "\n", "\\n")) +} + +var ifAdminStatusMapping = map[int64]string{ + 1: "up", + 2: "down", + 3: "testing", +} + +var ifOperStatusMapping = map[int64]string{ + 1: "up", + 2: "down", + 3: "testing", + 4: "unknown", + 5: "dormant", + 6: "notPresent", + 7: "lowerLayerDown", +} + +var ifTypeMapping = map[int64]string{ + 1: "other", + 2: "regular1822", + 3: "hdh1822", + 4: "ddnX25", + 5: "rfc877x25", + 6: "ethernetCsmacd", + 7: "iso88023Csmacd", + 8: "iso88024TokenBus", + 9: "iso88025TokenRing", + 10: "iso88026Man", + 11: "starLan", + 12: "proteon10Mbit", + 13: "proteon80Mbit", + 14: "hyperchannel", + 15: "fddi", + 16: "lapb", + 17: "sdlc", + 18: "ds1", + 19: "e1", + 20: "basicISDN", + 21: "primaryISDN", + 22: "propPointToPointSerial", + 23: "ppp", + 24: "softwareLoopback", + 25: "eon", + 26: "ethernet3Mbit", + 27: "nsip", + 28: "slip", + 29: "ultra", + 30: "ds3", + 31: "sip", + 32: "frameRelay", + 33: "rs232", + 34: "para", + 35: "arcnet", + 36: "arcnetPlus", + 37: "atm", + 38: "miox25", + 39: "sonet", + 40: "x25ple", + 41: "iso88022llc", + 42: "localTalk", + 43: "smdsDxi", + 44: "frameRelayService", + 45: "v35", + 46: "hssi", + 47: "hippi", + 48: "modem", + 49: "aal5", + 50: "sonetPath", + 51: "sonetVT", + 52: "smdsIcip", + 53: "propVirtual", + 54: "propMultiplexor", + 55: "ieee80212", + 56: "fibreChannel", + 57: "hippiInterface", + 58: "frameRelayInterconnect", + 59: "aflane8023", + 60: "aflane8025", + 61: "cctEmul", + 62: "fastEther", + 63: "isdn", + 64: "v11", + 65: "v36", + 66: "g703at64k", + 67: "g703at2mb", + 68: "qllc", + 69: "fastEtherFX", + 70: "channel", + 71: "ieee80211", + 72: "ibm370parChan", + 73: "escon", + 74: "dlsw", + 75: "isdns", + 76: "isdnu", + 77: "lapd", + 78: "ipSwitch", + 79: "rsrb", + 80: "atmLogical", + 81: "ds0", + 82: "ds0Bundle", + 83: "bsc", + 84: "async", + 85: "cnr", + 86: "iso88025Dtr", + 87: "eplrs", + 88: "arap", + 89: "propCnls", + 90: "hostPad", + 91: "termPad", + 92: "frameRelayMPI", + 93: "x213", + 94: "adsl", + 95: "radsl", + 96: "sdsl", + 97: "vdsl", + 98: "iso88025CRFPInt", + 99: "myrinet", + 100: "voiceEM", + 101: "voiceFXO", + 102: "voiceFXS", + 103: "voiceEncap", + 104: "voiceOverIp", + 105: "atmDxi", + 106: "atmFuni", + 107: "atmIma", + 108: "pppMultilinkBundle", + 109: "ipOverCdlc", + 110: "ipOverClaw", + 111: "stackToStack", + 112: "virtualIpAddress", + 113: "mpc", + 114: "ipOverAtm", + 115: "iso88025Fiber", + 116: "tdlc", + 117: "gigabitEthernet", + 118: "hdlc", + 119: "lapf", + 120: "v37", + 121: "x25mlp", + 122: "x25huntGroup", + 123: "transpHdlc", + 124: "interleave", + 125: "fast", + 126: "ip", + 127: "docsCableMaclayer", + 128: "docsCableDownstream", + 129: "docsCableUpstream", + 130: "a12MppSwitch", + 131: "tunnel", + 132: "coffee", + 133: "ces", + 134: "atmSubInterface", + 135: "l2vlan", + 136: "l3ipvlan", + 137: "l3ipxvlan", + 138: "digitalPowerline", + 139: "mediaMailOverIp", + 140: "dtm", + 141: "dcn", + 142: "ipForward", + 143: "msdsl", + 144: "ieee1394", + 145: "if-gsn", + 146: "dvbRccMacLayer", + 147: "dvbRccDownstream", + 148: "dvbRccUpstream", + 149: "atmVirtual", + 150: "mplsTunnel", + 151: "srp", + 152: "voiceOverAtm", + 153: "voiceOverFrameRelay", + 154: "idsl", + 155: "compositeLink", + 156: "ss7SigLink", + 157: "propWirelessP2P", + 158: "frForward", + 159: "rfc1483", + 160: "usb", + 161: "ieee8023adLag", + 162: "bgppolicyaccounting", + 163: "frf16MfrBundle", + 164: "h323Gatekeeper", + 165: "h323Proxy", + 166: "mpls", + 167: "mfSigLink", + 168: "hdsl2", + 169: "shdsl", + 170: "ds1FDL", + 171: "pos", + 172: "dvbAsiIn", + 173: "dvbAsiOut", + 174: "plc", + 175: "nfas", + 176: "tr008", + 177: "gr303RDT", + 178: "gr303IDT", + 179: "isup", + 180: "propDocsWirelessMaclayer", + 181: "propDocsWirelessDownstream", + 182: "propDocsWirelessUpstream", + 183: "hiperlan2", + 184: "propBWAp2Mp", + 185: "sonetOverheadChannel", + 186: "digitalWrapperOverheadChannel", + 187: "aal2", + 188: "radioMAC", + 189: "atmRadio", + 190: "imt", + 191: "mvl", + 192: "reachDSL", + 193: "frDlciEndPt", + 194: "atmVciEndPt", + 195: "opticalChannel", + 196: "opticalTransport", + 197: "propAtm", + 198: "voiceOverCable", + 199: "infiniband", + 200: "teLink", + 201: "q2931", + 202: "virtualTg", + 203: "sipTg", + 204: "sipSig", + 205: "docsCableUpstreamChannel", + 206: "econet", + 207: "pon155", + 208: "pon622", + 209: "bridge", + 210: "linegroup", + 211: "voiceEMFGD", + 212: "voiceFGDEANA", + 213: "voiceDID", + 214: "mpegTransport", + 215: "sixToFour", + 216: "gtp", + 217: "pdnEtherLoop1", + 218: "pdnEtherLoop2", + 219: "opticalChannelGroup", + 220: "homepna", + 221: "gfp", + 222: "ciscoISLvlan", + 223: "actelisMetaLOOP", + 224: "fcipLink", + 225: "rpr", + 226: "qam", + 227: "lmp", + 228: "cblVectaStar", + 229: "docsCableMCmtsDownstream", + 230: "adsl2", + 231: "macSecControlledIF", + 232: "macSecUncontrolledIF", + 233: "aviciOpticalEther", + 234: "atmbond", + 235: "voiceFGDOS", + 236: "mocaVersion1", + 237: "ieee80216WMAN", + 238: "adsl2plus", + 239: "dvbRcsMacLayer", + 240: "dvbTdm", + 241: "dvbRcsTdma", + 242: "x86Laps", + 243: "wwanPP", + 244: "wwanPP2", + 245: "voiceEBS", + 246: "ifPwType", + 247: "ilan", + 248: "pip", + 249: "aluELP", + 250: "gpon", + 251: "vdsl2", + 252: "capwapDot11Profile", + 253: "capwapDot11Bss", + 254: "capwapWtpVirtualRadio", + 255: "bits", + 256: "docsCableUpstreamRfPort", + 257: "cableDownstreamRfPort", + 258: "vmwareVirtualNic", + 259: "ieee802154", + 260: "otnOdu", + 261: "otnOtu", + 262: "ifVfiType", + 263: "g9981", + 264: "g9982", + 265: "g9983", + 266: "aluEpon", + 267: "aluEponOnu", + 268: "aluEponPhysicalUni", + 269: "aluEponLogicalLink", + 270: "aluGponOnu", + 271: "aluGponPhysicalUni", + 272: "vmwareNicTeam", + 277: "docsOfdmDownstream", + 278: "docsOfdmaUpstream", + 279: "gfast", + 280: "sdci", + 281: "xboxWireless", + 282: "fastdsl", + 283: "docsCableScte55d1FwdOob", + 284: "docsCableScte55d1RetOob", + 285: "docsCableScte55d2DsOob", + 286: "docsCableScte55d2UsOob", + 287: "docsCableNdf", + 288: "docsCableNdr", + 289: "ptm", + 290: "ghn", + 291: "otnOtsi", + 292: "otnOtuc", + 293: "otnOduc", + 294: "otnOtsig", + 295: "microwaveCarrierTermination", + 296: "microwaveRadioLinkTerminal", + 297: "ieee8021axDrni", + 298: "ax25", + 299: "ieee19061nanocom", + 300: "cpri", + 301: "omni", + 302: "roe", + 303: "p2pOverLan", +} |