1317 lines
42 KiB
Plaintext
1317 lines
42 KiB
Plaintext
CISCO-L2NAT-MIB DEFINITIONS ::= BEGIN
|
|
|
|
IMPORTS
|
|
MODULE-IDENTITY,
|
|
OBJECT-TYPE,
|
|
Integer32,
|
|
Counter32,
|
|
Counter64,
|
|
Unsigned32
|
|
FROM SNMPv2-SMI
|
|
MODULE-COMPLIANCE,
|
|
OBJECT-GROUP
|
|
FROM SNMPv2-CONF
|
|
RowStatus,
|
|
StorageType
|
|
FROM SNMPv2-TC
|
|
InetAddressType,
|
|
InetAddress
|
|
FROM INET-ADDRESS-MIB
|
|
SnmpAdminString
|
|
FROM SNMP-FRAMEWORK-MIB
|
|
CiscoInetAddressMask
|
|
FROM CISCO-TC
|
|
ciscoMgmt
|
|
FROM CISCO-SMI;
|
|
|
|
|
|
ciscoL2natMIB MODULE-IDENTITY
|
|
LAST-UPDATED "201304160000Z"
|
|
ORGANIZATION "Cisco Systems, Inc."
|
|
CONTACT-INFO
|
|
"Cisco Systems
|
|
Customer Service
|
|
|
|
Postal: 170 W Tasman Drive
|
|
San Jose, CA 95134
|
|
USA
|
|
|
|
Tel: +1 800 553-NETS
|
|
|
|
E-mail: cs-snmp@cisco.com"
|
|
DESCRIPTION
|
|
"Network Address Translation (NAT) involves translating the
|
|
source and or destination IP addresses of packets as they
|
|
traverse from one IP domain to another. NAT is usually
|
|
performed on packets that are routed, and there is a MIB
|
|
already defined for that, but the application addressed
|
|
here is for performing NAT for Layer 2 switched packets.
|
|
This MIB module defines objects and tables for Network
|
|
Address Translation (NAT) performed at layer 2. This
|
|
application is planned currently for Industrial Ethernet
|
|
switches, but this could be used for other applications.
|
|
This platform implements NAT using an FPGA which connects
|
|
to uplinks, so NAT is only applicable for packets
|
|
coming in from uplinks, and going out of uplinks.
|
|
There are 3 main logical modules that are referred in this MIB.
|
|
Global parameters : These provide statistics for the
|
|
entire platform.
|
|
L2NAT Instance Table : This table contains multiple
|
|
Layer 2 NAT instances. A Layer 2 NAT instance referred
|
|
throughout this MIB is an entity that is defined with respect
|
|
to the Layer 2 NAT feature, and is different from the concept
|
|
of instance as used in SNMP. Each Layer 2 NAT instance has a
|
|
unique number.
|
|
Each Layer 2 NAT instance consists of packets that are to be
|
|
permitted or denied, as well as packets that are supposed to be
|
|
fixed up. Fixup is a NAT concept which applies to certain
|
|
applications which embed IP addresses in the payload. For these
|
|
applications to work across NAT, the embedded IP addresses need
|
|
to be translated along with the header IP addresses.
|
|
Each Layer 2 NAT instance also contains a list of source and/or
|
|
destination IP address translations
|
|
An instance only becomes effective on traffic after being
|
|
applied to an interface vlan combination. This table actually
|
|
consists of these 2 MIB tables in order for indexing to work,
|
|
cl2natInstanceTable and cl2natInstanceIpTable
|
|
L2NAT Interface Config Table : This table contains multiple
|
|
entries, where each entry contains configuration
|
|
for the instance applied to an interface vlan combination.
|
|
This table actually consists of these 2 MIB tables in order for
|
|
indexing to work cl2natInterfaceConfigTable and
|
|
cl2natInterfaceIpConfigTable.
|
|
L2NAT Interface Statistics Table : This table contains multiple
|
|
entries, where each entry contains stats for the instance
|
|
applied to an interface vlan combination.
|
|
This table actually consists of these 2 MIB tables in order for
|
|
indexing to work , cl2natInterfaceStatisticsTable and
|
|
cl2natInterfaceIpStatisticsTable."
|
|
REVISION "201304160000Z"
|
|
DESCRIPTION
|
|
"Initial Version"
|
|
::= { ciscoMgmt 806 }
|
|
|
|
|
|
ciscoL2natMIBObjects OBJECT IDENTIFIER
|
|
::= { ciscoL2natMIB 1 }
|
|
|
|
|
|
-- Global Objects
|
|
|
|
cl2natTotalInstances OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the total number of Instances
|
|
defined by the user on this device. Each instance is an
|
|
independent module of configuration including IP address
|
|
translations that only becomes active after being applied to an
|
|
|
|
interface/vlan combination."
|
|
::= { ciscoL2natMIBObjects 1 }
|
|
|
|
cl2natTotalMatched OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the number of times a packet matches with
|
|
user configured IP translation entries. It should be noted that
|
|
the same packet can be counted twice if it matches both the
|
|
outside and inside entries, one for the source address
|
|
translation, and the other for the destination address
|
|
translation."
|
|
::= { ciscoL2natMIBObjects 2 }
|
|
|
|
cl2natTotalUnmatched OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the total number of packets that did not
|
|
match any of the configured NAT entries."
|
|
::= { ciscoL2natMIBObjects 3 }
|
|
|
|
cl2natTotalFixups OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the total number of packets that
|
|
required fixups."
|
|
::= { ciscoL2natMIBObjects 4 }
|
|
|
|
cl2natTotalTranslationEntryConfigured OBJECT-TYPE
|
|
SYNTAX Unsigned32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object specifies the total number IP translation entries
|
|
currently configured in the system."
|
|
::= { ciscoL2natMIBObjects 5 }
|
|
|
|
cl2natTotalPacketTranslated OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the total number of packets that got
|
|
translated per rules defined in the cl2natinstanceIpTable"
|
|
::= { ciscoL2natMIBObjects 6 }
|
|
-- The L2NAT Instance Table
|
|
|
|
cl2natInstConfigInstanceTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF Cl2natInstConfigInstanceEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This table contains multiple Layer 2 NAT instances. Each
|
|
Layer 2 NAT instance has a unique name and consists of
|
|
configurations other than the list of IP NAT translations for
|
|
which there is a separate table. An instance only becomes
|
|
effective on traffic after being applied to an interface/vlan
|
|
combination, which is done through the
|
|
cl2natInterfaceConfigTable."
|
|
::= { ciscoL2natMIBObjects 7 }
|
|
|
|
cl2natInstConfigInstanceEntry OBJECT-TYPE
|
|
SYNTAX Cl2natInstConfigInstanceEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This entry is created as a row in the
|
|
cl2natInstConfigInstanceTable
|
|
table when a user configures a new instance. Each entry
|
|
consists of the configuration parameters described below, and
|
|
is indexed by the Layer 2 NAT instance name."
|
|
INDEX { cl2natInstConfigInstanceName }
|
|
::= { cl2natInstConfigInstanceTable 1 }
|
|
|
|
Cl2natInstConfigInstanceEntry ::= SEQUENCE {
|
|
cl2natInstConfigInstanceName SnmpAdminString,
|
|
cl2natInstConfigPermitIn BITS,
|
|
cl2natInstConfigPermitOut BITS,
|
|
cl2natInstConfigFixup BITS,
|
|
cl2natInstConfigStorageType StorageType,
|
|
cl2natInstConfigInstanceRowStatus RowStatus
|
|
}
|
|
|
|
cl2natInstConfigInstanceName OBJECT-TYPE
|
|
SYNTAX SnmpAdminString (SIZE (1..64))
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object specifies the Name assigned by user to a created
|
|
Layer 2 NAT instance."
|
|
::= { cl2natInstConfigInstanceEntry 1 }
|
|
|
|
cl2natInstConfigPermitIn OBJECT-TYPE
|
|
SYNTAX BITS {
|
|
unmatched(0),
|
|
igmp(1),
|
|
multicast(2)
|
|
}
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object specifies user configured options for permitting
|
|
or denying packets coming in from uplinks that do not match any
|
|
|
|
NAT entry (unmatched), IGMP packets, multicast packets. A bit
|
|
value of 0 denotes drop and a value of 1 indicates permit
|
|
for that type. Default is 'drop' for all 3 types."
|
|
DEFVAL { { } }
|
|
::= { cl2natInstConfigInstanceEntry 2 }
|
|
|
|
cl2natInstConfigPermitOut OBJECT-TYPE
|
|
SYNTAX BITS {
|
|
unmatched(0),
|
|
igmp(1),
|
|
multicast(2)
|
|
}
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object specifies user configured options for permitting
|
|
or denying packets going out of uplinks that do not match any
|
|
NAT entry (unmatched), IGMP packets, multicast packets. A bit
|
|
value of 0 denotes drop and a value of 1 indicates permit
|
|
for that type. Default is drop for all 3 types."
|
|
DEFVAL { { } }
|
|
::= { cl2natInstConfigInstanceEntry 3 }
|
|
|
|
cl2natInstConfigFixup OBJECT-TYPE
|
|
SYNTAX BITS {
|
|
arp(0),
|
|
icmp(1),
|
|
profinet(2),
|
|
cip(3),
|
|
snmp(4)
|
|
}
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object specifies user configured options for fixing
|
|
up ARP, ICMP, Profinet, CIP and SNMP protocols. A fixup is
|
|
required for protocols which embed IP addresses to work across
|
|
NAT boundaries, and involves translating any IP address
|
|
embedded in the protocol payload to the corresponding
|
|
configured translated address. A bit value of 1 denotes fixup
|
|
is enabled for that protocol, and a value of 0 indicates fixup
|
|
is disabled. By default, fixup is enabled for ARP, ICMP,
|
|
Profinet and CIP (if required)."
|
|
DEFVAL { { arp , icmp , profinet , cip } }
|
|
::= { cl2natInstConfigInstanceEntry 4 }
|
|
|
|
cl2natInstConfigStorageType OBJECT-TYPE
|
|
SYNTAX StorageType
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object specifies the storage type for this conceptual row.
|
|
The following columnar objects are allowed to be writable
|
|
when the storageType of this conceptual row is permanent(4):
|
|
(replace with list of columns)"
|
|
::= { cl2natInstConfigInstanceEntry 5 }
|
|
|
|
cl2natInstConfigInstanceRowStatus OBJECT-TYPE
|
|
SYNTAX RowStatus
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object will follow RowStatus Textual convention
|
|
to create/destroy entries.
|
|
The following columnar objects are mandatory to make the entry
|
|
'active': cl2natInstIpInstanceName
|
|
Once the entry status has been set to active(1), the entry
|
|
cannot be modified. The only operation possible after this is
|
|
to delete the entry."
|
|
::= { cl2natInstConfigInstanceEntry 6 }
|
|
|
|
|
|
-- The L2NAT Instance IP Table
|
|
|
|
cl2natInstIpInstanceIpTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF Cl2natInstIpInstanceIpEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This table consists of multiple IP entries for each Layer2 NAT
|
|
instances. This table is a logical extension of the
|
|
cl2natInstInstanceTable because it is linked to the
|
|
same Layer 2
|
|
NAT instance. This table is required because there can be
|
|
multiple address translation entries for the same Layer 2 NAT
|
|
instance."
|
|
::= { ciscoL2natMIBObjects 8 }
|
|
|
|
cl2natInstIpInstanceIpEntry OBJECT-TYPE
|
|
SYNTAX Cl2natInstIpInstanceIpEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This Entry is created when a new IP translation entry is
|
|
added for a particular instance."
|
|
INDEX {
|
|
cl2natInstConfigInstanceName,
|
|
cl2natInstIpDirection,
|
|
cl2natInstIpFromIpAddressType,
|
|
cl2natInstIpFromIpAddress,
|
|
cl2natInstIpAddressType
|
|
}
|
|
::= { cl2natInstIpInstanceIpTable 1 }
|
|
|
|
Cl2natInstIpInstanceIpEntry ::= SEQUENCE {
|
|
cl2natInstIpDirection INTEGER,
|
|
cl2natInstIpAddressType INTEGER,
|
|
cl2natInstIpFromIpAddressType InetAddressType,
|
|
cl2natInstIpFromIpAddress InetAddress,
|
|
cl2natInstIpToIpAddressType InetAddressType,
|
|
cl2natInstIpToIpAddress InetAddress,
|
|
cl2natInstIpAddressMask CiscoInetAddressMask,
|
|
cl2natInstIpRange Integer32,
|
|
cl2natInstStorageIpStorageType StorageType,
|
|
cl2natInstIpRowStatus RowStatus
|
|
}
|
|
|
|
cl2natInstIpDirection OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
inside(1),
|
|
outside(2)
|
|
}
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object specifies the direction in which an address is to
|
|
be translated. A value of 1 denotes that this entry is for
|
|
translating source IP address of packets going out of uplinks,
|
|
or destination IP address of packets coming in. A value of 2
|
|
denotes that this entry is for translating destination
|
|
IP address of packets going out of uplinks, or source IP
|
|
address of packets coming in."
|
|
::= { cl2natInstIpInstanceIpEntry 1 }
|
|
|
|
cl2natInstIpAddressType OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
host(1),
|
|
range(2),
|
|
network(3)
|
|
}
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object specifies the type of address that is used to
|
|
configure this translation. 'host' implies that this is a
|
|
single IP address translation for one host. 'range' implies
|
|
that the cl2natFromAddress and cl2natToAddress are the starting
|
|
|
|
addresses of the range, and the cl2natIpRange is the number of
|
|
addresses that are translated with this single config.
|
|
'network' implies that an entire class C network of original IP
|
|
|
|
addresses is translated to the corresponding 254 address
|
|
starting from the cl2natToAddress."
|
|
::= { cl2natInstIpInstanceIpEntry 2 }
|
|
|
|
cl2natInstIpFromIpAddressType OBJECT-TYPE
|
|
SYNTAX InetAddressType
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The address type of cl2natFromIpAddress. This object specifies
|
|
whether this translation is for for IPv4 or IPv6."
|
|
::= { cl2natInstIpInstanceIpEntry 3 }
|
|
|
|
cl2natInstIpFromIpAddress OBJECT-TYPE
|
|
SYNTAX InetAddress (SIZE (4 | 16))
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the source IP address of packets going
|
|
out of the uplink before translation if the
|
|
cl2natInstIpDirection value for this entry is inside(1).
|
|
|
|
This objects indicate the destination IP address of packets
|
|
coming in from the uplinks after translation if the
|
|
cl2natInstIpDirection value for this entry is outside(2)"
|
|
::= { cl2natInstIpInstanceIpEntry 4 }
|
|
|
|
cl2natInstIpToIpAddressType OBJECT-TYPE
|
|
SYNTAX InetAddressType
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The address type of cl2natInstIpToIpAddress. This object
|
|
specifies whether this translation is for for IPv4 or IPv6."
|
|
::= { cl2natInstIpInstanceIpEntry 5 }
|
|
|
|
cl2natInstIpToIpAddress OBJECT-TYPE
|
|
SYNTAX InetAddress (SIZE (4 | 16))
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Source IP address of packets going
|
|
out of the uplink after translation, and destination IP address
|
|
of packets coming in from the uplinks before translation if the
|
|
cl2natInstIpDirection value for this entry is inside(1), or the
|
|
Destination IP address of packets going out of the
|
|
uplink after translation, and source IP address of
|
|
packets coming in from the uplinks before translation if
|
|
the cl2natInstIpDirection value for this entry is outside(2)."
|
|
::= { cl2natInstIpInstanceIpEntry 6 }
|
|
|
|
cl2natInstIpAddressMask OBJECT-TYPE
|
|
SYNTAX CiscoInetAddressMask
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object specifies the subnet address mask when
|
|
the value of cl2natInstIpAddressType is 'network'. This is not
|
|
used for any other option."
|
|
::= { cl2natInstIpInstanceIpEntry 7 }
|
|
|
|
cl2natInstIpRange OBJECT-TYPE
|
|
SYNTAX Integer32 (1..128)
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object specifies the number of addresses to be translated
|
|
in case the value of cl2natIpAddressType is 'range'. This is not
|
|
used for any other
|
|
option."
|
|
::= { cl2natInstIpInstanceIpEntry 8 }
|
|
|
|
cl2natInstStorageIpStorageType OBJECT-TYPE
|
|
SYNTAX StorageType
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object specifies the storage type for this conceptual row.
|
|
The following columnar objects are allowed to be writable
|
|
when the storageType of this conceptual row is permanent(4):
|
|
(replace with list of columns)"
|
|
::= { cl2natInstIpInstanceIpEntry 9 }
|
|
|
|
cl2natInstIpRowStatus OBJECT-TYPE
|
|
SYNTAX RowStatus
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object will follow RowStatus Textual convention
|
|
to create/destroy entries.
|
|
The following columnar objects are
|
|
mandatory to make the entry 'active':
|
|
cl2natInstIpDirection
|
|
cl2natInstIpFromIpAddress
|
|
cl2natInstIpToIpAddress
|
|
|
|
Once the entry status has been set to active(1), the entry
|
|
cannot be modified. The only operation possible after this is
|
|
to delete the entry."
|
|
::= { cl2natInstIpInstanceIpEntry 10 }
|
|
|
|
|
|
-- The L2NAT Interface Config Table
|
|
|
|
cl2natInterfaceConfigTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF Cl2natInterfaceConfigEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This table contains multiple entries, where each entry
|
|
contains configuration of the instance applied to an
|
|
interface/vlan combination."
|
|
::= { ciscoL2natMIBObjects 9 }
|
|
|
|
cl2natInterfaceConfigEntry OBJECT-TYPE
|
|
SYNTAX Cl2natInterfaceConfigEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Each Entry is created as a row in the
|
|
cl2natInterfaceConfigTable table when a user applies an
|
|
instance to an interface/vlan combination, and removed when
|
|
that instance is removed. A value of 0 in
|
|
cl2natInterfaceVlanIndex
|
|
indicates that this attachment is for untagged traffic. The
|
|
result of this lookup is actually an index that is used to
|
|
lookup the cl2natInstanceTable which gives the actual config
|
|
of the instance attached."
|
|
INDEX {
|
|
cl2natInterfaceConfigIfIndex,
|
|
cl2natInterfaceConfigVlanIndex
|
|
}
|
|
::= { cl2natInterfaceConfigTable 1 }
|
|
|
|
Cl2natInterfaceConfigEntry ::= SEQUENCE {
|
|
cl2natInterfaceConfigIfIndex Unsigned32,
|
|
cl2natInterfaceConfigVlanIndex Unsigned32,
|
|
cl2natInterfaceConfigInstanceName SnmpAdminString,
|
|
cl2natInterfaceConfigStorageType StorageType,
|
|
cl2natInterfaceConfigRowStatus RowStatus
|
|
}
|
|
|
|
cl2natInterfaceConfigIfIndex OBJECT-TYPE
|
|
SYNTAX Unsigned32
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The index value that uniquely identifies the interface to
|
|
which this entry is applicable. The interface identified by
|
|
a particular value of this index is the same interface as
|
|
identified by the same value of the IF-MIB's ifIndex."
|
|
::= { cl2natInterfaceConfigEntry 1 }
|
|
|
|
cl2natInterfaceConfigVlanIndex OBJECT-TYPE
|
|
SYNTAX Unsigned32
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the vlan ID the L2NAT instance is
|
|
attached to. A value of 0 indicates the instance is attached to
|
|
untagged traffic of the interface."
|
|
::= { cl2natInterfaceConfigEntry 2 }
|
|
|
|
cl2natInterfaceConfigInstanceName OBJECT-TYPE
|
|
SYNTAX SnmpAdminString (SIZE (1..64))
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Layer 2 NAT Instance Name to be
|
|
looked up to retrieve its configuration details. This name
|
|
corresponds to what's in cl2natInstConfigInstanceName"
|
|
::= { cl2natInterfaceConfigEntry 3 }
|
|
|
|
cl2natInterfaceConfigStorageType OBJECT-TYPE
|
|
SYNTAX StorageType
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object specifies the storage type for this conceptual row.
|
|
The following columnar objects are allowed to be writable
|
|
when the storageType of this conceptual row is permanent(4):
|
|
(replace with list of columns)"
|
|
::= { cl2natInterfaceConfigEntry 4 }
|
|
|
|
cl2natInterfaceConfigRowStatus OBJECT-TYPE
|
|
SYNTAX RowStatus
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object will follow RowStatus Textual convention
|
|
to create/destroy entries.
|
|
|
|
The following columnar objects are mandatory to make the entry
|
|
'active':
|
|
ifIndex
|
|
|
|
Once the entry status has been set to active(1), the entry
|
|
cannot be modified. The only operation possible after this is
|
|
to delete the entry."
|
|
::= { cl2natInterfaceConfigEntry 5 }
|
|
|
|
|
|
-- The L2NAT Interface Statistics Table
|
|
|
|
cl2natInterfaceStatisticsTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF Cl2natInterfaceStatisticsEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This table contains the Layer 2 NAT instance level statistics.
|
|
The IP address translation statistics are contained in the
|
|
cl2natInterfaceIpStatisticsTable."
|
|
::= { ciscoL2natMIBObjects 10 }
|
|
|
|
cl2natInterfaceStatisticsEntry OBJECT-TYPE
|
|
SYNTAX Cl2natInterfaceStatisticsEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This Entry is created as a row in the
|
|
cl2natInterfaceStatisticsTable table when a user applies an
|
|
instance to an interface/vlan combination, and removed when
|
|
that instance is removed."
|
|
INDEX {
|
|
cl2natInterfaceConfigIfIndex,
|
|
cl2natInterfaceConfigVlanIndex
|
|
}
|
|
::= { cl2natInterfaceStatisticsTable 1 }
|
|
|
|
Cl2natInterfaceStatisticsEntry ::= SEQUENCE {
|
|
cl2natFixupArpIn Counter64,
|
|
cl2natFixupIcmpIn Counter64,
|
|
cl2natFixupCipIn Counter64,
|
|
cl2natFixupProfinetIn Counter64,
|
|
cl2natFixupFtpIn Counter64,
|
|
cl2natFixupSnmpIn Counter64,
|
|
cl2natFixupSipIn Counter64,
|
|
cl2natFixupSccpIn Counter64,
|
|
cl2natUnmatchedIn Counter64,
|
|
cl2natTranslatedUnicastIn Counter64,
|
|
cl2natDroppedUnicastIn Counter64,
|
|
cl2natDroppedMulticastIn Counter64,
|
|
cl2natPassThruUnicastIn Counter64,
|
|
cl2natPassThruMulticastIn Counter64,
|
|
cl2natPassThruIgmpIn Counter64,
|
|
cl2natDroppedIgmpIn Counter64,
|
|
cl2natFixupArpOut Counter64,
|
|
cl2natFixupIcmpOut Counter64,
|
|
cl2natFixupCipOut Counter64,
|
|
cl2natFixupProfinetOut Counter64,
|
|
cl2natFixupFtpOut Counter64,
|
|
cl2natFixupSnmpOut Counter64,
|
|
cl2natFixupSipOut Counter64,
|
|
cl2natFixupSccpOut Counter64,
|
|
cl2natUnmatchedOut Counter64,
|
|
cl2natDroppedUnicastOut Counter64,
|
|
cl2natTranslatedUnicastOut Counter64,
|
|
cl2natPassThruUnicastOut Counter64,
|
|
cl2natDroppedMulticastOut Counter64,
|
|
cl2natPassThruMulticastOut Counter64,
|
|
cl2natDroppedIgmpOut Counter64,
|
|
cl2natPassThruIgmpOut Counter64
|
|
}
|
|
|
|
cl2natFixupArpIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up ARP packets for
|
|
this Layer 2 NAT Instance coming into the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 1 }
|
|
|
|
cl2natFixupIcmpIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up ICMP packets for
|
|
this Layer 2 NAT Instance coming into the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 2 }
|
|
|
|
cl2natFixupCipIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up CIP packets for
|
|
this Layer 2 NAT Instance coming into the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 3 }
|
|
|
|
cl2natFixupProfinetIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up Profinet packets
|
|
for this Layer 2 NAT Instance coming into the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 4 }
|
|
|
|
cl2natFixupFtpIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up FTP packets
|
|
for this Layer 2 NAT Instance coming into the uplinksk."
|
|
::= { cl2natInterfaceStatisticsEntry 5 }
|
|
|
|
cl2natFixupSnmpIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up SNMP packets for
|
|
this Layer 2 NAT Instance coming into the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 6 }
|
|
|
|
cl2natFixupSipIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up Sip packets for
|
|
this Layer 2 NAT Instance coming into the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 7 }
|
|
|
|
cl2natFixupSccpIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up Sccp packets for
|
|
this Layer 2 NAT Instance coming into the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 8 }
|
|
|
|
cl2natUnmatchedIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of unmatched packets for this
|
|
Layer 2 NAT Instance coming into the uplinks.
|
|
'Unmatched' packets are those that do not
|
|
match any IP address translation configured for this layer
|
|
2 NAT instance."
|
|
::= { cl2natInterfaceStatisticsEntry 9 }
|
|
|
|
cl2natTranslatedUnicastIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of translated unicast packets
|
|
for this Layer 2 NAT coming into the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 10 }
|
|
|
|
cl2natDroppedUnicastIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of Dropped unicast packets for
|
|
this Layer 2 NAT instance coming into the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 11 }
|
|
|
|
cl2natDroppedMulticastIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of dropped multicast packets
|
|
for this Layer 2 NAT coming into the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 12 }
|
|
|
|
cl2natPassThruUnicastIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of passed through unicast
|
|
packets for this Layer 2 NAT coming into the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 13 }
|
|
|
|
cl2natPassThruMulticastIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of passed through multicast
|
|
packets for this Layer 2 NAT coming into the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 14 }
|
|
|
|
cl2natPassThruIgmpIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of passed through IGMP packets
|
|
for this Layer 2 NAT coming into the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 15 }
|
|
|
|
cl2natDroppedIgmpIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of dropped IGMP packets for
|
|
this Layer 2 NAT coming into the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 16 }
|
|
|
|
cl2natFixupArpOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up ARP packets for
|
|
this Layer 2 NAT Instance going out of the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 17 }
|
|
|
|
cl2natFixupIcmpOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up ICMP packets for
|
|
this Layer 2 NAT Instance going out of the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 18 }
|
|
|
|
cl2natFixupCipOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up CIP packets for
|
|
this Layer 2 NAT Instance going out of the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 19 }
|
|
|
|
cl2natFixupProfinetOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up Profinet packets
|
|
for this Layer 2 NAT Instance going out of the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 20 }
|
|
|
|
cl2natFixupFtpOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up FTP packets
|
|
for this Layer 2 NAT Instance going out of the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 21 }
|
|
|
|
cl2natFixupSnmpOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up SNMP packets for
|
|
this Layer 2 NAT Instance going out of the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 22 }
|
|
|
|
cl2natFixupSipOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up Sip packets for
|
|
this Layer 2 NAT Instance going out of the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 23 }
|
|
|
|
cl2natFixupSccpOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of fixed up Sccp packets for
|
|
this Layer 2 NAT Instance going out of the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 24 }
|
|
|
|
cl2natUnmatchedOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of unmatched packets for
|
|
this Layer 2 NAT Instance going out of the uplinks.
|
|
'Unmatched' packets are those that do not
|
|
match any IP address translation configured for this layer
|
|
2 NAT instance."
|
|
::= { cl2natInterfaceStatisticsEntry 25 }
|
|
|
|
cl2natDroppedUnicastOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of Dropped unicast packets for
|
|
this Layer 2 NAT instance going out of the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 26 }
|
|
|
|
cl2natTranslatedUnicastOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of translated unicast packets
|
|
for
|
|
this Layer 2 NAT going out of the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 27 }
|
|
|
|
cl2natPassThruUnicastOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of passed through
|
|
unicast packets for this Layer 2 NAT instance going
|
|
out of the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 28 }
|
|
|
|
cl2natDroppedMulticastOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of dropped multicast
|
|
packets for this Layer 2 NAT instance going out of
|
|
the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 29 }
|
|
|
|
cl2natPassThruMulticastOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of passed through multicast
|
|
packets for this Layer 2 NAT coming out the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 30 }
|
|
|
|
cl2natDroppedIgmpOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of dropped IGMP packets for
|
|
this Layer 2 NAT coming out of the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 31 }
|
|
|
|
cl2natPassThruIgmpOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates the Number of passed through IGMP packets
|
|
for this Layer 2 NAT coming out of the uplinks."
|
|
::= { cl2natInterfaceStatisticsEntry 32 }
|
|
|
|
|
|
-- -L2NAT interface IP Statistics Table
|
|
|
|
cl2natInterfaceIpStatisticsTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF Cl2natInterfaceIpStatisticsEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This table contains statistics for IP translations of an L2
|
|
NAT instance that is applied to interface/vlan combination.
|
|
This table is a logical extension of the
|
|
cl2natInterfaceStatisticsTable, because these translations
|
|
belong to the same instance referred to in that table."
|
|
::= { ciscoL2natMIBObjects 11 }
|
|
|
|
cl2natInterfaceIpStatisticsEntry OBJECT-TYPE
|
|
SYNTAX Cl2natInterfaceIpStatisticsEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This Entry is created in the
|
|
cl2natInterfaceIpStatisticsTable
|
|
for each IP translation of a Layer 2 NAT instance when it is
|
|
attached to an interface/vlan."
|
|
INDEX {
|
|
cl2natInterfaceConfigIfIndex,
|
|
cl2natInterfaceConfigVlanIndex,
|
|
cl2natInstIpDirection,
|
|
cl2natInstIpFromIpAddressType,
|
|
cl2natInstIpFromIpAddress
|
|
}
|
|
::= { cl2natInterfaceIpStatisticsTable 1 }
|
|
|
|
Cl2natInterfaceIpStatisticsEntry ::= SEQUENCE {
|
|
cl2natTranslatesIn Counter64,
|
|
cl2natTranslatesOut Counter64
|
|
}
|
|
|
|
cl2natTranslatesIn OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This entry specifies the number of times this entry was
|
|
matched for packets going from inside to outside of uplinks."
|
|
::= { cl2natInterfaceIpStatisticsEntry 1 }
|
|
|
|
cl2natTranslatesOut OBJECT-TYPE
|
|
SYNTAX Counter64
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This entry specifies the number of times this entry was
|
|
matched for packets coming in from outside of uplinks to
|
|
inside."
|
|
::= { cl2natInterfaceIpStatisticsEntry 2 }
|
|
|
|
|
|
-- Conformance
|
|
|
|
ciscoL2natMIBConformance OBJECT IDENTIFIER
|
|
::= { ciscoL2natMIB 3 }
|
|
|
|
ciscoL2natMIBCompliances OBJECT IDENTIFIER
|
|
::= { ciscoL2natMIBConformance 1 }
|
|
|
|
ciscoL2natMIBGroups OBJECT IDENTIFIER
|
|
::= { ciscoL2natMIBConformance 2 }
|
|
|
|
|
|
-- Compliance
|
|
|
|
ciscoL2natMIBCompliance MODULE-COMPLIANCE
|
|
STATUS current
|
|
DESCRIPTION
|
|
"cisco L2NAT mib compliance object"
|
|
MODULE -- this module
|
|
MANDATORY-GROUPS {
|
|
cl2natGlobalStatisticsGroup,
|
|
cl2natInstanceConfigGroup,
|
|
cl2natInstanceStatisticsGroup,
|
|
cl2natInstanceTranslationStatisticsGroup
|
|
}
|
|
|
|
OBJECT cl2natInstConfigInstanceRowStatus
|
|
SYNTAX RowStatus
|
|
DESCRIPTION
|
|
"Support for createAndWait and notInService is not required."
|
|
|
|
OBJECT cl2natInstIpRowStatus
|
|
SYNTAX RowStatus
|
|
DESCRIPTION
|
|
"Support for createAndWait and notInService is not required."
|
|
|
|
OBJECT cl2natInterfaceConfigRowStatus
|
|
SYNTAX RowStatus
|
|
DESCRIPTION
|
|
"Support for createAndWait and notInService is not required."
|
|
::= { ciscoL2natMIBCompliances 1 }
|
|
|
|
-- Units of Conformance
|
|
|
|
cl2natGlobalStatisticsGroup OBJECT-GROUP
|
|
OBJECTS {
|
|
cl2natTotalInstances,
|
|
cl2natTotalMatched,
|
|
cl2natTotalUnmatched,
|
|
cl2natTotalFixups,
|
|
cl2natTotalTranslationEntryConfigured,
|
|
cl2natTotalPacketTranslated
|
|
}
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A collection of objects providing Global Statistics for NAT at
|
|
layer 2"
|
|
::= { ciscoL2natMIBGroups 1 }
|
|
|
|
cl2natInstanceConfigGroup OBJECT-GROUP
|
|
OBJECTS {
|
|
cl2natInstConfigPermitIn,
|
|
cl2natInstConfigPermitOut,
|
|
cl2natInstConfigFixup,
|
|
cl2natInstIpRange,
|
|
cl2natInstIpToIpAddress,
|
|
cl2natInstIpToIpAddressType,
|
|
cl2natInstConfigInstanceRowStatus,
|
|
cl2natInterfaceConfigRowStatus,
|
|
cl2natInstIpAddressMask,
|
|
cl2natInterfaceConfigInstanceName,
|
|
cl2natInstIpRowStatus,
|
|
cl2natInstConfigStorageType,
|
|
cl2natInstStorageIpStorageType,
|
|
cl2natInterfaceConfigStorageType
|
|
}
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A collection of objects providing Instance and interface
|
|
Config for NAT at layer 2"
|
|
::= { ciscoL2natMIBGroups 2 }
|
|
|
|
cl2natInstanceStatisticsGroup OBJECT-GROUP
|
|
OBJECTS {
|
|
cl2natUnmatchedIn,
|
|
cl2natDroppedUnicastIn,
|
|
cl2natTranslatedUnicastIn,
|
|
cl2natFixupArpIn,
|
|
cl2natFixupIcmpIn,
|
|
cl2natFixupCipIn,
|
|
cl2natFixupProfinetIn,
|
|
cl2natFixupFtpIn,
|
|
cl2natFixupSnmpIn,
|
|
cl2natFixupSipIn,
|
|
cl2natFixupSccpIn,
|
|
cl2natUnmatchedOut,
|
|
cl2natDroppedUnicastOut,
|
|
cl2natTranslatedUnicastOut,
|
|
cl2natFixupArpOut,
|
|
cl2natFixupIcmpOut,
|
|
cl2natFixupCipOut,
|
|
cl2natFixupProfinetOut,
|
|
cl2natFixupFtpOut,
|
|
cl2natFixupSnmpOut,
|
|
cl2natFixupSipOut,
|
|
cl2natFixupSccpOut,
|
|
cl2natPassThruUnicastIn,
|
|
cl2natPassThruUnicastOut,
|
|
cl2natDroppedMulticastIn,
|
|
cl2natDroppedMulticastOut,
|
|
cl2natPassThruMulticastIn,
|
|
cl2natPassThruMulticastOut,
|
|
cl2natDroppedIgmpIn,
|
|
cl2natDroppedIgmpOut,
|
|
cl2natPassThruIgmpIn,
|
|
cl2natPassThruIgmpOut
|
|
}
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A collection of objects providing per Instance
|
|
Statistics for NAT at layer 2"
|
|
::= { ciscoL2natMIBGroups 3 }
|
|
|
|
cl2natInstanceTranslationStatisticsGroup OBJECT-GROUP
|
|
OBJECTS {
|
|
cl2natTranslatesIn,
|
|
cl2natTranslatesOut
|
|
}
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A collection of objects providing per Instance per translation
|
|
statistics at layer 2"
|
|
::= { ciscoL2natMIBGroups 4 }
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|