1# 2# This file is part of pysnmp software. 3# 4# Copyright (c) 2005-2019, Ilya Etingof <etingof@gmail.com> 5# License: http://snmplabs.com/pysnmp/license.html 6# 7# PySNMP MIB module TRANSPORT-ADDRESS-MIB (http://snmplabs.com/pysnmp) 8# ASN.1 source http://mibs.snmplabs.com:80/asn1/TRANSPORT-ADDRESS-MIB 9# Produced by pysmi-0.1.3 at Tue Apr 18 01:08:18 2017 10# On host grommit.local platform Darwin version 16.4.0 by user ilya 11# Using Python version 3.4.2 (v3.4.2:ab2c023a9432, Oct 5 2014, 20:42:22) 12# 13 14from pyasn1.compat.octets import int2oct, oct2int 15from pysnmp import error 16from pysnmp.carrier import sockfix 17import socket 18 19has_ipv6 = socket.has_ipv6 20 21if hasattr(socket, 'inet_ntop') and hasattr(socket, 'inet_pton'): 22 inet_ntop = socket.inet_ntop 23 inet_pton = socket.inet_pton 24else: 25 import sys 26 27 if sys.platform != "win32": 28 from socket import inet_ntoa, inet_aton 29 30 inet_ntop = lambda x, y: inet_ntoa(y) 31 inet_pton = lambda x, y: inet_aton(y) 32 has_ipv6 = False 33 elif has_ipv6: 34 import struct # The case of old Python at old Windows 35 36 37 def inet_pton(address_family, ip_string): 38 if address_family == socket.AF_INET: 39 return socket.inet_aton(ip_string) 40 elif address_family != socket.AF_INET6: 41 raise socket.error( 42 'Unknown address family %s' % (address_family,) 43 ) 44 45 groups = ip_string.split(":") 46 spaces = groups.count('') 47 48 if '.' in groups[-1]: 49 groups[-1:] = ["%x" % x for x in struct.unpack("!HH", socket.inet_aton(groups[-1]))] 50 51 if spaces == 1: 52 idx = groups.index('') 53 groups[idx:idx + 1] = ['0'] * (8 - len(groups) + 1) 54 elif spaces == 2: 55 zeros = ['0'] * (8 - len(groups) + 2) 56 if ip_string.startswith('::'): 57 groups[:2] = zeros 58 elif ip_string.endswith('::'): 59 groups[-2:] = zeros 60 else: 61 raise socket.error( 62 'Invalid IPv6 address: "%s"' % (ip_string,) 63 ) 64 elif spaces == 3: 65 if ip_string != '::': 66 raise socket.error( 67 'Invalid IPv6 address: "%s"' % (ip_string,) 68 ) 69 return '\x00' * 16 70 elif spaces > 3: 71 raise socket.error( 72 'Invalid IPv6 address: "%s"' % (ip_string,) 73 ) 74 75 groups = [t for t in [int(t, 16) for t in groups] if t & 0xFFFF == t] 76 77 if len(groups) != 8: 78 raise socket.error( 79 'Invalid IPv6 address: "%s"' % (ip_string,) 80 ) 81 82 return struct.pack('!8H', *groups) 83 84 85 def inet_ntop(address_family, packed_ip): 86 if address_family == socket.AF_INET: 87 return socket.inet_ntop(packed_ip) 88 elif address_family != socket.AF_INET6: 89 raise socket.error( 90 'Unknown address family %s' % (address_family,) 91 ) 92 93 if len(packed_ip) != 16: 94 raise socket.error( 95 'incorrect address length: %s' % len(packed_ip) 96 ) 97 98 groups = list(struct.unpack('!8H', packed_ip)) 99 100 cur_base = best_base = cur_len = best_len = -1 101 102 for idx in range(8): 103 if groups[idx]: 104 if cur_base != -1: 105 if best_base == -1 or cur_len > best_len: 106 best_base, best_len = cur_base, cur_len 107 cur_base = -1 108 else: 109 if cur_base == -1: 110 cur_base, cur_len = idx, 1 111 else: 112 cur_len += 1 113 114 if cur_base != -1: 115 if best_base == -1 or cur_len > best_len: 116 best_base, best_len = cur_base, cur_len 117 118 if best_base != -1 and best_len > 1: 119 groups[best_base:best_base + best_len] = [':'] 120 121 if groups[0] == ':': 122 groups.insert(0, ':') 123 if groups[-1] == ':': 124 groups.append(':') 125 126 f = lambda x: x != ':' and '%x' % x or '' 127 128 return ':'.join([f(x) for x in groups]) 129 130Integer, OctetString, ObjectIdentifier = mibBuilder.importSymbols("ASN1", "Integer", "OctetString", "ObjectIdentifier") 131NamedValues, = mibBuilder.importSymbols("ASN1-ENUMERATION", "NamedValues") 132ConstraintsIntersection, ConstraintsUnion, ValueRangeConstraint, ValueSizeConstraint, SingleValueConstraint = mibBuilder.importSymbols("ASN1-REFINEMENT", "ConstraintsIntersection", "ConstraintsUnion", "ValueRangeConstraint", "ValueSizeConstraint", "SingleValueConstraint") 133NotificationGroup, ModuleCompliance = mibBuilder.importSymbols("SNMPv2-CONF", "NotificationGroup", "ModuleCompliance") 134Integer32, Unsigned32, MibIdentifier, Counter32, ModuleIdentity, MibScalar, MibTable, MibTableRow, MibTableColumn, NotificationType, Bits, TimeTicks, ObjectIdentity, Counter64, Gauge32, IpAddress, iso, mib_2 = mibBuilder.importSymbols("SNMPv2-SMI", "Integer32", "Unsigned32", "MibIdentifier", "Counter32", "ModuleIdentity", "MibScalar", "MibTable", "MibTableRow", "MibTableColumn", "NotificationType", "Bits", "TimeTicks", "ObjectIdentity", "Counter64", "Gauge32", "IpAddress", "iso", "mib-2") 135DisplayString, TextualConvention = mibBuilder.importSymbols("SNMPv2-TC", "DisplayString", "TextualConvention") 136transportAddressMIB = ModuleIdentity((1, 3, 6, 1, 2, 1, 100)) 137if mibBuilder.loadTexts: transportAddressMIB.setRevisions(('2002-11-01 00:00',)) 138if mibBuilder.loadTexts: transportAddressMIB.setLastUpdated('200211010000Z') 139if mibBuilder.loadTexts: transportAddressMIB.setOrganization('IETF Operations and Management Area') 140if mibBuilder.loadTexts: transportAddressMIB.setContactInfo('Juergen Schoenwaelder (Editor) TU Braunschweig Bueltenweg 74/75 38106 Braunschweig, Germany Phone: +49 531 391-3289 EMail: schoenw@ibr.cs.tu-bs.de Send comments to <mibs@ops.ietf.org>.') 141if mibBuilder.loadTexts: transportAddressMIB.setDescription('This MIB module provides commonly used transport address definitions. Copyright (C) The Internet Society (2002). This version of this MIB module is part of RFC 3419; see the RFC itself for full legal notices.') 142transportDomains = MibIdentifier((1, 3, 6, 1, 2, 1, 100, 1)) 143transportDomainUdpIpv4 = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 1)) 144if mibBuilder.loadTexts: transportDomainUdpIpv4.setStatus('current') 145if mibBuilder.loadTexts: transportDomainUdpIpv4.setDescription('The UDP over IPv4 transport domain. The corresponding transport address is of type TransportAddressIPv4 for global IPv4 addresses.') 146transportDomainUdpIpv6 = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 2)) 147if mibBuilder.loadTexts: transportDomainUdpIpv6.setStatus('current') 148if mibBuilder.loadTexts: transportDomainUdpIpv6.setDescription('The UDP over IPv6 transport domain. The corresponding transport address is of type TransportAddressIPv6 for global IPv6 addresses.') 149transportDomainUdpIpv4z = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 3)) 150if mibBuilder.loadTexts: transportDomainUdpIpv4z.setStatus('current') 151if mibBuilder.loadTexts: transportDomainUdpIpv4z.setDescription('The UDP over IPv4 transport domain. The corresponding transport address is of type TransportAddressIPv4z for scoped IPv4 addresses with a zone index.') 152transportDomainUdpIpv6z = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 4)) 153if mibBuilder.loadTexts: transportDomainUdpIpv6z.setStatus('current') 154if mibBuilder.loadTexts: transportDomainUdpIpv6z.setDescription('The UDP over IPv6 transport domain. The corresponding transport address is of type TransportAddressIPv6z for scoped IPv6 addresses with a zone index.') 155transportDomainTcpIpv4 = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 5)) 156if mibBuilder.loadTexts: transportDomainTcpIpv4.setStatus('current') 157if mibBuilder.loadTexts: transportDomainTcpIpv4.setDescription('The TCP over IPv4 transport domain. The corresponding transport address is of type TransportAddressIPv4 for global IPv4 addresses.') 158transportDomainTcpIpv6 = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 6)) 159if mibBuilder.loadTexts: transportDomainTcpIpv6.setStatus('current') 160if mibBuilder.loadTexts: transportDomainTcpIpv6.setDescription('The TCP over IPv6 transport domain. The corresponding transport address is of type TransportAddressIPv6 for global IPv6 addresses.') 161transportDomainTcpIpv4z = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 7)) 162if mibBuilder.loadTexts: transportDomainTcpIpv4z.setStatus('current') 163if mibBuilder.loadTexts: transportDomainTcpIpv4z.setDescription('The TCP over IPv4 transport domain. The corresponding transport address is of type TransportAddressIPv4z for scoped IPv4 addresses with a zone index.') 164transportDomainTcpIpv6z = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 8)) 165if mibBuilder.loadTexts: transportDomainTcpIpv6z.setStatus('current') 166if mibBuilder.loadTexts: transportDomainTcpIpv6z.setDescription('The TCP over IPv6 transport domain. The corresponding transport address is of type TransportAddressIPv6z for scoped IPv6 addresses with a zone index.') 167transportDomainSctpIpv4 = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 9)) 168if mibBuilder.loadTexts: transportDomainSctpIpv4.setStatus('current') 169if mibBuilder.loadTexts: transportDomainSctpIpv4.setDescription('The SCTP over IPv4 transport domain. The corresponding transport address is of type TransportAddressIPv4 for global IPv4 addresses. This transport domain usually represents the primary address on multihomed SCTP endpoints.') 170transportDomainSctpIpv6 = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 10)) 171if mibBuilder.loadTexts: transportDomainSctpIpv6.setStatus('current') 172if mibBuilder.loadTexts: transportDomainSctpIpv6.setDescription('The SCTP over IPv6 transport domain. The corresponding transport address is of type TransportAddressIPv6 for global IPv6 addresses. This transport domain usually represents the primary address on multihomed SCTP endpoints.') 173transportDomainSctpIpv4z = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 11)) 174if mibBuilder.loadTexts: transportDomainSctpIpv4z.setStatus('current') 175if mibBuilder.loadTexts: transportDomainSctpIpv4z.setDescription('The SCTP over IPv4 transport domain. The corresponding transport address is of type TransportAddressIPv4z for scoped IPv4 addresses with a zone index. This transport domain usually represents the primary address on multihomed SCTP endpoints.') 176transportDomainSctpIpv6z = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 12)) 177if mibBuilder.loadTexts: transportDomainSctpIpv6z.setStatus('current') 178if mibBuilder.loadTexts: transportDomainSctpIpv6z.setDescription('The SCTP over IPv6 transport domain. The corresponding transport address is of type TransportAddressIPv6z for scoped IPv6 addresses with a zone index. This transport domain usually represents the primary address on multihomed SCTP endpoints.') 179transportDomainLocal = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 13)) 180if mibBuilder.loadTexts: transportDomainLocal.setStatus('current') 181if mibBuilder.loadTexts: transportDomainLocal.setDescription('The Posix Local IPC transport domain. The corresponding transport address is of type TransportAddressLocal. The Posix Local IPC transport domain incorporates the well-known UNIX domain sockets.') 182transportDomainUdpDns = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 14)) 183if mibBuilder.loadTexts: transportDomainUdpDns.setStatus('current') 184if mibBuilder.loadTexts: transportDomainUdpDns.setDescription('The UDP transport domain using fully qualified domain names. The corresponding transport address is of type TransportAddressDns.') 185transportDomainTcpDns = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 15)) 186if mibBuilder.loadTexts: transportDomainTcpDns.setStatus('current') 187if mibBuilder.loadTexts: transportDomainTcpDns.setDescription('The TCP transport domain using fully qualified domain names. The corresponding transport address is of type TransportAddressDns.') 188transportDomainSctpDns = ObjectIdentity((1, 3, 6, 1, 2, 1, 100, 1, 16)) 189if mibBuilder.loadTexts: transportDomainSctpDns.setStatus('current') 190if mibBuilder.loadTexts: transportDomainSctpDns.setDescription('The SCTP transport domain using fully qualified domain names. The corresponding transport address is of type TransportAddressDns.') 191 192class TransportDomain(TextualConvention, ObjectIdentifier): 193 description = 'A value that represents a transport domain. Some possible values, such as transportDomainUdpIpv4, are defined in this module. Other possible values can be defined in other MIB modules.' 194 status = 'current' 195 196class TransportAddressType(TextualConvention, Integer32): 197 description = 'A value that represents a transport domain. This is the enumerated version of the transport domain registrations in this MIB module. The enumerated values have the following meaning: unknown(0) unknown transport address type udpIpv4(1) transportDomainUdpIpv4 udpIpv6(2) transportDomainUdpIpv6 udpIpv4z(3) transportDomainUdpIpv4z udpIpv6z(4) transportDomainUdpIpv6z tcpIpv4(5) transportDomainTcpIpv4 tcpIpv6(6) transportDomainTcpIpv6 tcpIpv4z(7) transportDomainTcpIpv4z tcpIpv6z(8) transportDomainTcpIpv6z sctpIpv4(9) transportDomainSctpIpv4 sctpIpv6(10) transportDomainSctpIpv6 sctpIpv4z(11) transportDomainSctpIpv4z sctpIpv6z(12) transportDomainSctpIpv6z local(13) transportDomainLocal udpDns(14) transportDomainUdpDns tcpDns(15) transportDomainTcpDns sctpDns(16) transportDomainSctpDns This textual convention can be used to represent transport domains in situations where a syntax of TransportDomain is unwieldy (for example, when used as an index). The usage of this textual convention implies that additional transport domains can only be supported by updating this MIB module. This extensibility restriction does not apply for the TransportDomain textual convention which allows MIB authors to define additional transport domains independently in other MIB modules.' 198 status = 'current' 199 subtypeSpec = Integer32.subtypeSpec + ConstraintsUnion(SingleValueConstraint(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)) 200 namedValues = NamedValues(("unknown", 0), ("udpIpv4", 1), ("udpIpv6", 2), ("udpIpv4z", 3), ("udpIpv6z", 4), ("tcpIpv4", 5), ("tcpIpv6", 6), ("tcpIpv4z", 7), ("tcpIpv6z", 8), ("sctpIpv4", 9), ("sctpIpv6", 10), ("sctpIpv4z", 11), ("sctpIpv6z", 12), ("local", 13), ("udpDns", 14), ("tcpDns", 15), ("sctpDns", 16)) 201 202class TransportAddress(TextualConvention, OctetString): 203 description = "Denotes a generic transport address. A TransportAddress value is always interpreted within the context of a TransportAddressType or TransportDomain value. Every usage of the TransportAddress textual convention MUST specify the TransportAddressType or TransportDomain object which provides the context. Furthermore, MIB authors SHOULD define a separate TransportAddressType or TransportDomain object for each TransportAddress object. It is suggested that the TransportAddressType or TransportDomain is logically registered before the object(s) which use the TransportAddress textual convention if they appear in the same logical row. The value of a TransportAddress object must always be consistent with the value of the associated TransportAddressType or TransportDomain object. Attempts to set a TransportAddress object to a value which is inconsistent with the associated TransportAddressType or TransportDomain must fail with an inconsistentValue error. When this textual convention is used as a syntax of an index object, there may be issues with the limit of 128 sub-identifiers specified in SMIv2, STD 58. In this case, the OBJECT-TYPE declaration MUST include a 'SIZE' clause to limit the number of potential instance sub-identifiers." 204 status = 'current' 205 subtypeSpec = OctetString.subtypeSpec + ValueSizeConstraint(0, 255) 206 207class TransportAddressIPv4(TextualConvention, OctetString): 208 description = 'Represents a transport address consisting of an IPv4 address and a port number (as used for example by UDP, TCP and SCTP): octets contents encoding 1-4 IPv4 address network-byte order 5-6 port number network-byte order This textual convention SHOULD NOT be used directly in object definitions since it restricts addresses to a specific format. However, if it is used, it MAY be used either on its own or in conjunction with TransportAddressType or TransportDomain as a pair.' 209 status = 'current' 210 displayHint = '1d.1d.1d.1d:2d' 211 subtypeSpec = OctetString.subtypeSpec + ValueSizeConstraint(6, 6) 212 fixedLength = 6 213 214 def prettyIn(self, value): 215 if isinstance(value, tuple): 216 # Wild hack -- need to implement TextualConvention.prettyIn 217 value = inet_pton(socket.AF_INET, value[0]) + int2oct((value[1] >> 8) & 0xff) + int2oct(value[1] & 0xff) 218 return OctetString.prettyIn(self, value) 219 220 # Socket address syntax coercion 221 def __asSocketAddress(self): 222 if not hasattr(self, '__tuple_value'): 223 v = self.asOctets() 224 self.__tuple_value = ( 225 inet_ntop(socket.AF_INET, v[:4]), 226 oct2int(v[4]) << 8 | oct2int(v[5]), 227 ) 228 return self.__tuple_value 229 230 def __iter__(self): 231 return iter(self.__asSocketAddress()) 232 233 def __getitem__(self, item): 234 return self.__asSocketAddress()[item] 235 236 237class TransportAddressIPv6(TextualConvention, OctetString): 238 description = 'Represents a transport address consisting of an IPv6 address and a port number (as used for example by UDP, TCP and SCTP): octets contents encoding 1-16 IPv6 address network-byte order 17-18 port number network-byte order This textual convention SHOULD NOT be used directly in object definitions since it restricts addresses to a specific format. However, if it is used, it MAY be used either on its own or in conjunction with TransportAddressType or TransportDomain as a pair.' 239 status = 'current' 240 displayHint = '0a[2x:2x:2x:2x:2x:2x:2x:2x]0a:2d' 241 subtypeSpec = OctetString.subtypeSpec + ValueSizeConstraint(18, 18) 242 fixedLength = 18 243 244 def prettyIn(self, value): 245 if not has_ipv6: 246 raise error.PySnmpError('IPv6 not supported by platform') 247 if isinstance(value, tuple): 248 value = inet_pton(socket.AF_INET6, value[0]) + int2oct((value[1] >> 8) & 0xff) + int2oct(value[1] & 0xff) 249 return OctetString.prettyIn(self, value) 250 251 # Socket address syntax coercion 252 def __asSocketAddress(self): 253 if not hasattr(self, '__tuple_value'): 254 if not has_ipv6: 255 raise error.PySnmpError('IPv6 not supported by platform') 256 v = self.asOctets() 257 self.__tuple_value = ( 258 inet_ntop(socket.AF_INET6, v[:16]), 259 oct2int(v[16]) << 8 | oct2int(v[17]), 260 0, # flowinfo 261 0) # scopeid 262 return self.__tuple_value 263 264 def __iter__(self): 265 return iter(self.__asSocketAddress()) 266 267 def __getitem__(self, item): 268 return self.__asSocketAddress()[item] 269 270class TransportAddressIPv4z(TextualConvention, OctetString): 271 description = 'Represents a transport address consisting of an IPv4 address, a zone index and a port number (as used for example by UDP, TCP and SCTP): octets contents encoding 1-4 IPv4 address network-byte order 5-8 zone index network-byte order 9-10 port number network-byte order This textual convention SHOULD NOT be used directly in object definitions since it restricts addresses to a specific format. However, if it is used, it MAY be used either on its own or in conjunction with TransportAddressType or TransportDomain as a pair.' 272 status = 'current' 273 displayHint = '1d.1d.1d.1d%4d:2d' 274 subtypeSpec = OctetString.subtypeSpec + ValueSizeConstraint(10, 10) 275 fixedLength = 10 276 277class TransportAddressIPv6z(TextualConvention, OctetString): 278 description = 'Represents a transport address consisting of an IPv6 address, a zone index and a port number (as used for example by UDP, TCP and SCTP): octets contents encoding 1-16 IPv6 address network-byte order 17-20 zone index network-byte order 21-22 port number network-byte order This textual convention SHOULD NOT be used directly in object definitions since it restricts addresses to a specific format. However, if it is used, it MAY be used either on its own or in conjunction with TransportAddressType or TransportDomain as a pair.' 279 status = 'current' 280 displayHint = '0a[2x:2x:2x:2x:2x:2x:2x:2x%4d]0a:2d' 281 subtypeSpec = OctetString.subtypeSpec + ValueSizeConstraint(22, 22) 282 fixedLength = 22 283 284class TransportAddressLocal(TextualConvention, OctetString): 285 reference = 'Protocol Independent Interfaces (IEEE POSIX 1003.1g)' 286 description = "Represents a POSIX Local IPC transport address: octets contents encoding all POSIX Local IPC address string The Posix Local IPC transport domain subsumes UNIX domain sockets. This textual convention SHOULD NOT be used directly in object definitions since it restricts addresses to a specific format. However, if it is used, it MAY be used either on its own or in conjunction with TransportAddressType or TransportDomain as a pair. When this textual convention is used as a syntax of an index object, there may be issues with the limit of 128 sub-identifiers specified in SMIv2, STD 58. In this case, the OBJECT-TYPE declaration MUST include a 'SIZE' clause to limit the number of potential instance sub-identifiers." 287 status = 'current' 288 displayHint = '1a' 289 subtypeSpec = OctetString.subtypeSpec + ValueSizeConstraint(1, 255) 290 291class TransportAddressDns(TextualConvention, OctetString): 292 description = "Represents a DNS domain name followed by a colon ':' (ASCII character 0x3A) and a port number in ASCII. The name SHOULD be fully qualified whenever possible. Values of this textual convention are not directly useable as transport-layer addressing information, and require runtime resolution. As such, applications that write them must be prepared for handling errors if such values are not supported, or cannot be resolved (if resolution occurs at the time of the management operation). The DESCRIPTION clause of TransportAddress objects that may have TransportAddressDns values must fully describe how (and when) such names are to be resolved to IP addresses and vice versa. This textual convention SHOULD NOT be used directly in object definitions since it restricts addresses to a specific format. However, if it is used, it MAY be used either on its own or in conjunction with TransportAddressType or TransportDomain as a pair. When this textual convention is used as a syntax of an index object, there may be issues with the limit of 128 sub-identifiers specified in SMIv2, STD 58. In this case, the OBJECT-TYPE declaration MUST include a 'SIZE' clause to limit the number of potential instance sub-identifiers." 293 status = 'current' 294 displayHint = '1a' 295 subtypeSpec = OctetString.subtypeSpec + ValueSizeConstraint(1, 255) 296 297mibBuilder.exportSymbols("TRANSPORT-ADDRESS-MIB", transportDomainUdpIpv6=transportDomainUdpIpv6, TransportDomain=TransportDomain, transportDomainSctpDns=transportDomainSctpDns, PYSNMP_MODULE_ID=transportAddressMIB, TransportAddressType=TransportAddressType, transportDomainTcpIpv4=transportDomainTcpIpv4, TransportAddressIPv6z=TransportAddressIPv6z, transportDomainLocal=transportDomainLocal, TransportAddressLocal=TransportAddressLocal, transportDomainUdpIpv4=transportDomainUdpIpv4, transportDomainUdpIpv4z=transportDomainUdpIpv4z, transportDomains=transportDomains, transportDomainSctpIpv4=transportDomainSctpIpv4, TransportAddressIPv6=TransportAddressIPv6, TransportAddressDns=TransportAddressDns, transportDomainSctpIpv6z=transportDomainSctpIpv6z, transportAddressMIB=transportAddressMIB, transportDomainTcpIpv6z=transportDomainTcpIpv6z, transportDomainSctpIpv6=transportDomainSctpIpv6, transportDomainUdpDns=transportDomainUdpDns, transportDomainTcpIpv6=transportDomainTcpIpv6, transportDomainUdpIpv6z=transportDomainUdpIpv6z, TransportAddressIPv4=TransportAddressIPv4, transportDomainSctpIpv4z=transportDomainSctpIpv4z, transportDomainTcpIpv4z=transportDomainTcpIpv4z, TransportAddress=TransportAddress, transportDomainTcpDns=transportDomainTcpDns, TransportAddressIPv4z=TransportAddressIPv4z) 298