text: #
  # PySNMP MIB module ZHONE-COM-IP-ZEDGE-NAT-MIB (http://snmplabs.com/pysmi)
  # ASN.1 source file:///Users/davwang4/Dev/mibs.snmplabs.com/asn1/ZHONE-COM-IP-ZEDGE-NAT-MIB
  # Produced by pysmi-0.3.4 at Wed May  1 15:47:17 2019
  # On host DAVWANG4-M-1475 platform Darwin version 18.5.0 by user davwang4
  # Using Python version 3.7.3 (default, Mar 27 2019, 09:23:15) 
  #
  Integer, ObjectIdentifier, OctetString = mibBuilder.importSymbols("ASN1", "Integer", "ObjectIdentifier", "OctetString")
  NamedValues, = mibBuilder.importSymbols("ASN1-ENUMERATION", "NamedValues")
  ValueRangeConstraint, ValueSizeConstraint, ConstraintsIntersection, SingleValueConstraint, ConstraintsUnion = mibBuilder.importSymbols("ASN1-REFINEMENT", "ValueRangeConstraint", "ValueSizeConstraint", "ConstraintsIntersection", "SingleValueConstraint", "ConstraintsUnion")
  InterfaceIndex, = mibBuilder.importSymbols("IF-MIB", "InterfaceIndex")
  NotificationGroup, ModuleCompliance = mibBuilder.importSymbols("SNMPv2-CONF", "NotificationGroup", "ModuleCompliance")
  Integer32, iso, Counter64, Bits, MibScalar, MibTable, MibTableRow, MibTableColumn, Unsigned32, Counter32, MibIdentifier, TimeTicks, IpAddress, NotificationType, ObjectIdentity, Gauge32, ModuleIdentity = mibBuilder.importSymbols("SNMPv2-SMI", "Integer32", "iso", "Counter64", "Bits", "MibScalar", "MibTable", "MibTableRow", "MibTableColumn", "Unsigned32", "Counter32", "MibIdentifier", "TimeTicks", "IpAddress", "NotificationType", "ObjectIdentity", "Gauge32", "ModuleIdentity")
  TextualConvention, DisplayString, TruthValue = mibBuilder.importSymbols("SNMPv2-TC", "TextualConvention", "DisplayString", "TruthValue")
  zhoneModules, zhoneIp = mibBuilder.importSymbols("Zhone", "zhoneModules", "zhoneIp")
  ZhoneRowStatus, = mibBuilder.importSymbols("Zhone-TC", "ZhoneRowStatus")
  comIpZEdgeNat = ModuleIdentity((1, 3, 6, 1, 4, 1, 5504, 6, 66))
  comIpZEdgeNat.setRevisions(('2010-10-20 05:52', '2008-07-22 07:28', '2003-12-11 02:58', '2003-03-19 09:02', '2000-10-04 15:30',))
  
  if getattr(mibBuilder, 'version', (0, 0, 0)) > (4, 4, 0):
      if mibBuilder.loadTexts: comIpZEdgeNat.setRevisionsDescriptions(('Add cpemgrsecure(4) value to patEntry.portType.', 'Add cpemgr(3) valued to patEntry.portType. Limit patEntry.publicPort range to #defined values. Added description to other patEntry fields to support cpemgr(3) portType.', 'Added NAT-Exclude profile', 'Added PAT-Bind profile', 'V01.00.00 - Initial release',))
  if mibBuilder.loadTexts: comIpZEdgeNat.setLastUpdated('201010200727Z')
  if mibBuilder.loadTexts: comIpZEdgeNat.setOrganization('Zhone Technologies, Inc.')
  if mibBuilder.loadTexts: comIpZEdgeNat.setContactInfo(' Postal: Zhone Technologies, Inc. @ Zhone Way 7001 Oakport Street Oakland, CA 94621 USA Toll-Free: +1 877-ZHONE20 (+1 877-946-6320) Tel: +1-510-777-7000 Fax: +1-510-777-7001 E-mail: support@zhone.com')
  if mibBuilder.loadTexts: comIpZEdgeNat.setDescription('Network Address Translation MIB IP Software Minneapolis, MN')
  zedgeNat = ObjectIdentity((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16))
  if mibBuilder.loadTexts: zedgeNat.setStatus('current')
  if mibBuilder.loadTexts: zedgeNat.setDescription('Network Address Translation Configuration and Status. ')
  natConfigGroup = ObjectIdentity((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 1))
  if mibBuilder.loadTexts: natConfigGroup.setStatus('current')
  if mibBuilder.loadTexts: natConfigGroup.setDescription('Network Address Translation global configuration items.')
  natTcpTimeout = MibScalar((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 1, 1), Unsigned32().subtype(subtypeSpec=ValueRangeConstraint(0, 604800))).setUnits('seconds').setMaxAccess("readwrite")
  if mibBuilder.loadTexts: natTcpTimeout.setStatus('current')
  if mibBuilder.loadTexts: natTcpTimeout.setDescription('The number of seconds before an idle TCP connection will be removed. The default value is 300 seconds. The maximum is one week. Zero is a valid value that will cause the connection to timeout very quickly.')
  natUdpTimeout = MibScalar((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 1, 2), Unsigned32().subtype(subtypeSpec=ValueRangeConstraint(0, 604800))).setUnits('seconds').setMaxAccess("readwrite")
  if mibBuilder.loadTexts: natUdpTimeout.setStatus('current')
  if mibBuilder.loadTexts: natUdpTimeout.setDescription('The number of seconds before an idle UDP connection will be removed. The default value is 60 seconds. The maximum is one week. Zero is a valid value that will cause the connection to timeout very quickly.')
  natClearBindings = MibScalar((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 1, 3), TruthValue()).setMaxAccess("readwrite")
  if mibBuilder.loadTexts: natClearBindings.setStatus('current')
  if mibBuilder.loadTexts: natClearBindings.setDescription("Set this object to 'true' to clear the binding table. A GET on this object will always return 'false'.")
  natStatsGroup = ObjectIdentity((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 2))
  if mibBuilder.loadTexts: natStatsGroup.setStatus('current')
  if mibBuilder.loadTexts: natStatsGroup.setDescription('Network Address Translation global statistics.')
  natNumCurrentBindings = MibScalar((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 2, 1), Gauge32()).setMaxAccess("readonly")
  if mibBuilder.loadTexts: natNumCurrentBindings.setStatus('current')
  if mibBuilder.loadTexts: natNumCurrentBindings.setDescription('Number of bindings currently managed by NAT.')
  natNumExpiredBindings = MibScalar((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 2, 2), Gauge32()).setMaxAccess("readonly")
  if mibBuilder.loadTexts: natNumExpiredBindings.setStatus('current')
  if mibBuilder.loadTexts: natNumExpiredBindings.setDescription('Number of bindings that have been expired. A binding is expired when it has been idle for a period longer than the configured timeout.')
  natTotalPkts = MibScalar((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 2, 3), Counter32()).setMaxAccess("readonly")
  if mibBuilder.loadTexts: natTotalPkts.setStatus('current')
  if mibBuilder.loadTexts: natTotalPkts.setDescription('Total number of packets that have been forwarded by NAT since the last reset.')
  natDroppedPkts = MibScalar((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 2, 4), Counter32()).setMaxAccess("readonly")
  if mibBuilder.loadTexts: natDroppedPkts.setStatus('current')
  if mibBuilder.loadTexts: natDroppedPkts.setDescription('The total number of packets that have been dropped by NAT since the last reset.')
  natBindingsTable = MibTable((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 3), )
  if mibBuilder.loadTexts: natBindingsTable.setStatus('current')
  if mibBuilder.loadTexts: natBindingsTable.setDescription('The current set of NAT bindings in the system and statistics kept per-binding.')
  natBindingsEntry = MibTableRow((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 3, 1), ).setIndexNames((0, "ZHONE-COM-IP-ZEDGE-NAT-MIB", "natBindingsIfIndex"), (0, "ZHONE-COM-IP-ZEDGE-NAT-MIB", "natBindingLocalAddr"), (0, "ZHONE-COM-IP-ZEDGE-NAT-MIB", "natBindingLocalPort"), (0, "ZHONE-COM-IP-ZEDGE-NAT-MIB", "natBindingPublicAddr"), (0, "ZHONE-COM-IP-ZEDGE-NAT-MIB", "natBindingPublicPort"))
  if mibBuilder.loadTexts: natBindingsEntry.setStatus('current')
  if mibBuilder.loadTexts: natBindingsEntry.setDescription('An entry represents one NAT binding that currently exists in the system. An entry is indexed by Local IP Address, Local Port, Public IP Address, and Public Port.')
  natBindingsIfIndex = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 3, 1, 1), InterfaceIndex())
  if mibBuilder.loadTexts: natBindingsIfIndex.setStatus('current')
  if mibBuilder.loadTexts: natBindingsIfIndex.setDescription('The interface to which this binding belongs.')
  natBindingLocalAddr = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 3, 1, 2), IpAddress())
  if mibBuilder.loadTexts: natBindingLocalAddr.setStatus('current')
  if mibBuilder.loadTexts: natBindingLocalAddr.setDescription('The local IP address for this binding.')
  natBindingLocalPort = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 3, 1, 3), Unsigned32())
  if mibBuilder.loadTexts: natBindingLocalPort.setStatus('current')
  if mibBuilder.loadTexts: natBindingLocalPort.setDescription('The local port for this binding.')
  natBindingPublicAddr = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 3, 1, 4), IpAddress()).setMaxAccess("readonly")
  if mibBuilder.loadTexts: natBindingPublicAddr.setStatus('current')
  if mibBuilder.loadTexts: natBindingPublicAddr.setDescription('The public IP address for this binding.')
  natBindingPublicPort = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 3, 1, 5), Unsigned32()).setMaxAccess("readonly")
  if mibBuilder.loadTexts: natBindingPublicPort.setStatus('current')
  if mibBuilder.loadTexts: natBindingPublicPort.setDescription('The public port for this binding.')
  zhonePATBindings = MibIdentifier((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 4))
  patBindNextIndex = MibScalar((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 4, 1), Integer32()).setMaxAccess("readonly")
  if mibBuilder.loadTexts: patBindNextIndex.setStatus('current')
  if mibBuilder.loadTexts: patBindNextIndex.setDescription('Description. A hint for the next free zhonePATBindIndex , should the manager want to create a new PAT-Bind entry.')
  patTable = MibTable((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 4, 2), )
  if mibBuilder.loadTexts: patTable.setStatus('current')
  if mibBuilder.loadTexts: patTable.setDescription('The current set of Port Address translation bindings for this box.')
  patEntry = MibTableRow((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 4, 2, 1), ).setIndexNames((0, "ZHONE-COM-IP-ZEDGE-NAT-MIB", "zhonePATBindIndex"))
  if mibBuilder.loadTexts: patEntry.setStatus('current')
  if mibBuilder.loadTexts: patEntry.setDescription('A Port Forwarding translation entry.')
  zhonePATBindIndex = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 4, 2, 1, 1), Integer32().subtype(subtypeSpec=ValueRangeConstraint(1, 4320)))
  if mibBuilder.loadTexts: zhonePATBindIndex.setStatus('current')
  if mibBuilder.loadTexts: zhonePATBindIndex.setDescription('This value is used to identify this particular entry in the table. It is only used for access in the table and therefore not externally visible.')
  zhonePATBindRowStatus = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 4, 2, 1, 2), ZhoneRowStatus()).setMaxAccess("readcreate")
  if mibBuilder.loadTexts: zhonePATBindRowStatus.setStatus('current')
  if mibBuilder.loadTexts: zhonePATBindRowStatus.setDescription('RowStatus is used to create/delete entries in the table.')
  publicAddr = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 4, 2, 1, 3), IpAddress()).setMaxAccess("readcreate")
  if mibBuilder.loadTexts: publicAddr.setStatus('current')
  if mibBuilder.loadTexts: publicAddr.setDescription('The IP address that is acting as the port forwarding agent, this should be a public internet address. ')
  publicPort = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 4, 2, 1, 4), Integer32().subtype(subtypeSpec=ValueRangeConstraint(51921, 56250))).setMaxAccess("readcreate")
  if mibBuilder.loadTexts: publicPort.setStatus('current')
  if mibBuilder.loadTexts: publicPort.setDescription('The port number on the forwarding agent that is to be used. This number has been limited to range 51921 to 56250 to avoid overlap with other applications. When used with a portType of cpemgr, this value represents the first public port in a set of public ports. See the portType description for details.')
  localAddr = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 4, 2, 1, 5), IpAddress()).setMaxAccess("readcreate")
  if mibBuilder.loadTexts: localAddr.setStatus('current')
  if mibBuilder.loadTexts: localAddr.setDescription('The IP Address of a host machine on the private subnet that we want to make active through the usage of reverse port forwarding feature.')
  localPort = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 4, 2, 1, 6), Integer32().subtype(subtypeSpec=ValueRangeConstraint(1, 49151))).setMaxAccess("readcreate")
  if mibBuilder.loadTexts: localPort.setStatus('current')
  if mibBuilder.loadTexts: localPort.setDescription('The internal port number that we want to use on the private host that we want to forward to. The currently defined ports by the IANA are 1..49151. When used with the portType of cpemgr, this value represents the number of consecutive publicPorts reserved by this PAT_Bind instance.')
  portType = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 4, 2, 1, 7), Integer32().subtype(subtypeSpec=ConstraintsUnion(SingleValueConstraint(1, 2, 3, 4))).clone(namedValues=NamedValues(("tcp", 1), ("udp", 2), ("cpemgr", 3), ("cpemgrsecure", 4))).clone('tcp')).setMaxAccess("readcreate")
  if mibBuilder.loadTexts: portType.setStatus('current')
  if mibBuilder.loadTexts: portType.setDescription('The NAT code needs to know if this port uses a connection oriented exchange (TCP), or not (UDP). The cpemgr value represents a wildcard that defines a set of PAT Bindings. When using this wildcard, the publicPort value represents the first port of a consecutive block of publicPorts, and the localPort value represents the number of publicPorts in this block. The actual local ports are well known ports and the set of bindings is currently: Public | Local Well | Type | Name Port | Known Port | | ------------|------------|---------|-------- <publicPort>| 7 | TCP,UDP | ECHO +1 | 20 | TCP | FTP - data +2 | 21 | TCP | FTP - control +3 | 22 | TCP,UDP | SSH +4 | 23 | TCP,UDP | Telnet +5 | 80 | TCP | HTTP +6 | 81 | TCP | HTTP +7 | 161 | TCP,UDP | SNMP +8 | 443 | TCP | HTTPS With this set, the localPort value should be 9. Public | Local Well | Type | Name Port | Known Port | | ------------|------------|---------|-------- <publicPort>| 7 | TCP,UDP | ECHO +0 | 162 | UDP | SNMP traps +1 | 22 | TCP,UDP | SSH +2 | 443 | TCP | HTTPS +2 | 161 | UDP | SNMP With this set, the localPort value should be 3 and portType should be cpemgrsecure. Public | Local Well | Type | Name Port | Known Port | | ------------|------------|---------|-------- <publicPort>| 7 | TCP,UDP | ECHO +0 | 162 | UDP | SNMP traps +1 | 23 | TCP,UDP | Telnet +2 | 80 | TCP | HTTP +2 | 161 | UDP | SNMP With this set, the localPort value should be 3 and portType should be cpemgr. Public | Local Well | Type | Name Port | Known Port | | ------------|------------|---------|-------- <publicPort>| 7 | TCP,UDP | ECHO +1 | 22 | TCP,UDP | SSH +2 | 161 | TCP,UDP | SNMP +3 | 443 | TCP | HTTPS +3 | 162 | UDP | SNMP traps With this set, the localPort value should be 4 and portType should be cpemgrsecure. Public | Local Well | Type | Name Port | Known Port | | ------------|------------|---------|-------- <publicPort>| 7 | TCP,UDP | ECHO +1 | 23 | TCP,UDP | Telnet +2 | 161 | TCP,UDP | SNMP +3 | 80 | TCP | HTTP +3 | 162 | UDP | SNMP traps With this set, the localPort value should be 4 and portType should be cpemgr. ')
  zhoneNATExclusion = MibIdentifier((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 5))
  natExcludeNextIndex = MibScalar((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 5, 1), Integer32()).setMaxAccess("readonly")
  if mibBuilder.loadTexts: natExcludeNextIndex.setStatus('current')
  if mibBuilder.loadTexts: natExcludeNextIndex.setDescription('A hint for the next free zhoneNATExcludeIndex should the manager want to create a new NAT-Exclude entry.')
  natExcludeTable = MibTable((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 5, 2), )
  if mibBuilder.loadTexts: natExcludeTable.setStatus('current')
  if mibBuilder.loadTexts: natExcludeTable.setDescription('The current set of NAT exclusion ranges for this box.')
  natExcludeEntry = MibTableRow((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 5, 2, 1), ).setIndexNames((0, "ZHONE-COM-IP-ZEDGE-NAT-MIB", "zhoneNATExcludeIndex"))
  if mibBuilder.loadTexts: natExcludeEntry.setStatus('current')
  if mibBuilder.loadTexts: natExcludeEntry.setDescription('A NAT exclusion range entry (ie. an IP address range to exclude from NAT translation).')
  zhoneNATExcludeIndex = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 5, 2, 1, 1), Integer32().subtype(subtypeSpec=ValueRangeConstraint(1, 20)))
  if mibBuilder.loadTexts: zhoneNATExcludeIndex.setStatus('current')
  if mibBuilder.loadTexts: zhoneNATExcludeIndex.setDescription('This value is used to identify this particular entry in the table. It is only used for access in the table and therefore not externally visible.')
  zhoneNATExcludeRowStatus = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 5, 2, 1, 2), ZhoneRowStatus()).setMaxAccess("readcreate")
  if mibBuilder.loadTexts: zhoneNATExcludeRowStatus.setStatus('current')
  if mibBuilder.loadTexts: zhoneNATExcludeRowStatus.setDescription('RowStatus is used to create/delete entries in the table.')
  ipStartAddr = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 5, 2, 1, 3), IpAddress()).setMaxAccess("readcreate")
  if mibBuilder.loadTexts: ipStartAddr.setStatus('current')
  if mibBuilder.loadTexts: ipStartAddr.setDescription('This is the start of the IP range (inclusive) to exclude from NAT translation. Value must be less than or equal to ipEndAddr.')
  ipEndAddr = MibTableColumn((1, 3, 6, 1, 4, 1, 5504, 4, 1, 16, 5, 2, 1, 4), IpAddress()).setMaxAccess("readcreate")
  if mibBuilder.loadTexts: ipEndAddr.setStatus('current')
  if mibBuilder.loadTexts: ipEndAddr.setDescription('This is the end of the IP range (inclusive) to exclude from NAT translation. Value must be greater than or equal to ipStartAddr.')
  mibBuilder.exportSymbols("ZHONE-COM-IP-ZEDGE-NAT-MIB", natDroppedPkts=natDroppedPkts, patEntry=patEntry, portType=portType, zhoneNATExclusion=zhoneNATExclusion, publicPort=publicPort, zhonePATBindRowStatus=zhonePATBindRowStatus, zhoneNATExcludeIndex=zhoneNATExcludeIndex, natNumCurrentBindings=natNumCurrentBindings, natExcludeTable=natExcludeTable, natBindingsIfIndex=natBindingsIfIndex, natBindingPublicAddr=natBindingPublicAddr, natNumExpiredBindings=natNumExpiredBindings, localAddr=localAddr, natClearBindings=natClearBindings, natBindingsTable=natBindingsTable, natUdpTimeout=natUdpTimeout, ipStartAddr=ipStartAddr, natConfigGroup=natConfigGroup, natBindingsEntry=natBindingsEntry, zhonePATBindings=zhonePATBindings, comIpZEdgeNat=comIpZEdgeNat, zhoneNATExcludeRowStatus=zhoneNATExcludeRowStatus, natBindingPublicPort=natBindingPublicPort, natBindingLocalPort=natBindingLocalPort, patTable=patTable, natBindingLocalAddr=natBindingLocalAddr, natTcpTimeout=natTcpTimeout, patBindNextIndex=patBindNextIndex, zhonePATBindIndex=zhonePATBindIndex, natTotalPkts=natTotalPkts, ipEndAddr=ipEndAddr, natExcludeEntry=natExcludeEntry, zedgeNat=zedgeNat, publicAddr=publicAddr, localPort=localPort, PYSNMP_MODULE_ID=comIpZEdgeNat, natStatsGroup=natStatsGroup, natExcludeNextIndex=natExcludeNextIndex)
  