- Remove PVC volume mount from k8s/deployment.yaml - Delete k8s/mib-pvc.yaml (no longer needed) - Update .gitignore to commit MIB files to git - Add mix import_mibs task to copy MIBs from LibreNMS - Add all MIB files from priv/mibs/ to git This fixes the multi-attach volume error in Kubernetes where new pods couldn't start because the RWO (ReadWriteOnce) PVC was attached to the old pod. MIBs are now part of the Docker image and can be used by all pods simultaneously.
588 lines
22 KiB
Text
588 lines
22 KiB
Text
-- *****************************************************************
|
|
-- Optical APS MIB
|
|
-- *****************************************************************
|
|
|
|
SL-OPT-APS-MIB DEFINITIONS ::= BEGIN
|
|
|
|
IMPORTS
|
|
MODULE-IDENTITY, OBJECT-TYPE,
|
|
NOTIFICATION-TYPE ,Unsigned32,
|
|
Integer32, IpAddress, Opaque, Gauge32,
|
|
Counter32,TimeTicks FROM SNMPv2-SMI
|
|
DisplayString, TruthValue, RowStatus
|
|
FROM SNMPv2-TC
|
|
MODULE-COMPLIANCE, OBJECT-GROUP,
|
|
NOTIFICATION-GROUP FROM SNMPv2-CONF
|
|
slmTrapLogId FROM SL-MAIN-MIB
|
|
InterfaceIndex FROM IF-MIB
|
|
PerfCurrentCount, PerfIntervalCount,
|
|
PerfTotalCount FROM PerfHist-TC-MIB
|
|
sitelight FROM SL-NE-MIB;
|
|
|
|
slOptApsMib MODULE-IDENTITY
|
|
LAST-UPDATED "200201140000Z"
|
|
ORGANIZATION "PacketLight Networks Ltd."
|
|
CONTACT-INFO
|
|
"Omri_Viner@PacketLight.com"
|
|
DESCRIPTION
|
|
"This MIB module describes the Optical APS."
|
|
::= { sitelight 11 }
|
|
|
|
|
|
slOptApsConfig OBJECT IDENTIFIER ::= {slOptApsMib 1}
|
|
slOptApsTraps OBJECT IDENTIFIER ::= {slOptApsMib 2}
|
|
slOptApsTraps0 OBJECT IDENTIFIER ::= {slOptApsTraps 0}
|
|
|
|
--
|
|
-- Transponding APS config Table
|
|
--
|
|
|
|
optApsConfigTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF OptApsConfigEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This table contains objects to configure APS
|
|
(Automatic Protection Switching) feature in a Optical
|
|
Channel. APS is the ability to configure a pair of Optical
|
|
connections for redundancy so that the hardware will
|
|
automatically switch the active connection from working connection
|
|
to the protection connection or vice versa, within 50ms,
|
|
when the active connection fails.
|
|
The optical connections are specified in the
|
|
optXpdConnConfigTable in the SL-OPT-MIB.
|
|
The APS is defined be specifying two entries in this table
|
|
the backup each other.
|
|
The optXpdConnConfigTable defines two entries for each dircetion
|
|
of the connection.
|
|
Only one of the two entries is used by the optical aps table.
|
|
The direction that is used is the direction from the User to Network."
|
|
::= { slOptApsConfig 1 }
|
|
|
|
optApsConfigEntry OBJECT-TYPE
|
|
SYNTAX OptApsConfigEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An entry is identified by two transponding connections
|
|
that should protect each other."
|
|
INDEX {optApsConfigUserWorkingIndex }
|
|
::= { optApsConfigTable 1 }
|
|
|
|
OptApsConfigEntry ::=
|
|
SEQUENCE {
|
|
optApsConfigUserWorkingIndex InterfaceIndex,
|
|
optApsConfigNetWorkingIndex InterfaceIndex,
|
|
optApsConfigUserProtectingIndex InterfaceIndex,
|
|
optApsConfigNetProtectingIndex InterfaceIndex,
|
|
optApsConfigScheme INTEGER,
|
|
optApsConfigEnable INTEGER,
|
|
optApsConfigArchMode INTEGER,
|
|
optApsConfigActiveConnectionRx INTEGER,
|
|
optApsConfigActiveConnectionTx INTEGER,
|
|
optApsConfigWaitToRestore Unsigned32,
|
|
optApsConfigDirection INTEGER,
|
|
optApsConfigRevertive INTEGER,
|
|
optApsConfigChanStatus BITS,
|
|
optApsConfigChanSignalFailures Counter32,
|
|
optApsConfigChanSwitchovers Counter32,
|
|
optApsConfigChanLastSwitchover TimeTicks,
|
|
optApsConfigSwitchCommand INTEGER,
|
|
optApsConfigSwitchReason INTEGER,
|
|
optApsConfigResetCounters INTEGER,
|
|
optApsConfigActiveRequest INTEGER,
|
|
optApsConfigStatus RowStatus,
|
|
optApsConfigLosThreshold INTEGER
|
|
}
|
|
|
|
optApsConfigUserWorkingIndex OBJECT-TYPE
|
|
SYNTAX InterfaceIndex
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The ifIndex of the working optical interface connected to
|
|
the User side."
|
|
::= { optApsConfigEntry 1 }
|
|
|
|
optApsConfigNetWorkingIndex OBJECT-TYPE
|
|
SYNTAX InterfaceIndex
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The ifIndex of the working optical interface connected to
|
|
the Network side."
|
|
::= { optApsConfigEntry 2 }
|
|
|
|
optApsConfigUserProtectingIndex OBJECT-TYPE
|
|
SYNTAX InterfaceIndex
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The ifIndex of the protecting optical interface connected to
|
|
the User side. In the case of an Inline connection there is no
|
|
meaning to the order between the User and Network interfaces because
|
|
both side of the connections are connected to the Network."
|
|
::= { optApsConfigEntry 3 }
|
|
|
|
optApsConfigNetProtectingIndex OBJECT-TYPE
|
|
SYNTAX InterfaceIndex
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The ifIndex of the protecting optical interface connected to
|
|
the Network side. In the case of an Inline connection there is no
|
|
meaning to the order between the User and Network interfaces because
|
|
both side of the connections are connected to the Network."
|
|
::= { optApsConfigEntry 4 }
|
|
|
|
optApsConfigScheme OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
equipment(1),
|
|
facility(2)
|
|
}
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object is used to configure the optical
|
|
protection scheme.
|
|
|
|
equipment : Equipmet protection (with 4 FEO's)
|
|
facility : Facility protection (only 3 FEO's)"
|
|
::= { optApsConfigEntry 5 }
|
|
|
|
optApsConfigEnable OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
optApsDisabled (1),
|
|
optApsEnabled (2)
|
|
}
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object is used to enable or disable the APS feature
|
|
on the working/protection connection pairs. When enabled,
|
|
the hardware will automatically switch the active connection
|
|
from the working connection to the protection connection within 50ms,
|
|
or vice versa (read-write)."
|
|
::= { optApsConfigEntry 6 }
|
|
|
|
optApsConfigArchMode OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
onePlusOne(1),
|
|
oneToOne(2)
|
|
}
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object is used to configure APS architecture mode
|
|
on the working/protection connection pairs (read-write)."
|
|
::= { optApsConfigEntry 7 }
|
|
|
|
optApsConfigActiveConnectionRx OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
optApsWorkingConnection(1),
|
|
optApsProtectionConnection(2)
|
|
}
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates which Rx connection is currently active.
|
|
It could be the working connection, the protection connection or
|
|
none if neither working nor protection connection is active.
|
|
This object reflects the status of receive direction.
|
|
If optApsDirection is equal to biDirectional this object should
|
|
be eual to optApsActiveConnectionRx."
|
|
|
|
::= { optApsConfigEntry 8 }
|
|
|
|
optApsConfigActiveConnectionTx OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
optApsWorkingConnection(1),
|
|
optApsProtectionConnection(2)
|
|
}
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object indicates which Tx connection is currently active.
|
|
It could be the working connection, the protection connection or
|
|
none if neither working nor protection connection is active.
|
|
This object reflects the status of receive direction.
|
|
If optApsDirection is equal to biDirectional this object should
|
|
be eual to optApsActiveConnectionRx."
|
|
::= { optApsConfigEntry 9 }
|
|
|
|
optApsConfigWaitToRestore OBJECT-TYPE
|
|
SYNTAX Unsigned32 (1..12)
|
|
UNITS "minutes"
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object contains interval in minutes to wait
|
|
before attempting to switch back to working connection.
|
|
Not applicable if the connection is configured in
|
|
non-revertive mode, i.e. protection connection will
|
|
continue to be active, even if failures on the
|
|
working connection are cleared. The framer clears the
|
|
signal-fault and signal-degrade when APS switch
|
|
occurs. Please refer to 'optApsRevertive' for
|
|
description of non-revertive (read-write)."
|
|
::= { optApsConfigEntry 10 }
|
|
|
|
optApsConfigDirection OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
uniDirectional(1),
|
|
biDirectional(2)
|
|
}
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object is used to configure the switching
|
|
direction which this APS connection supports (read-write).
|
|
|
|
Unidirectional : APS switch only in one direction.
|
|
Bidirectional : APS switch in both ends of the conection."
|
|
::= { optApsConfigEntry 11 }
|
|
|
|
optApsConfigRevertive OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
nonrevertive(1),
|
|
revertive(2)
|
|
}
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object is used to configure the APS revertive or
|
|
nonrevertive option (read-write).
|
|
|
|
revertive :
|
|
Will switch the working connection back to active state after
|
|
the Wait-To-restore interval has expired and the
|
|
working connection Signal-Fault/Signal-Degrade has been
|
|
cleared. Please refer to 'optApsWaitToRestore' for
|
|
description of Wait-To-Restore interval.
|
|
nonrevertive :
|
|
The protection connection continues to be the active connection,
|
|
The active connection does not switch to the working connection."
|
|
::= { optApsConfigEntry 12 }
|
|
|
|
optApsConfigChanStatus OBJECT-TYPE
|
|
SYNTAX BITS {
|
|
lockedOut(0),
|
|
sfWorking(1),
|
|
sfProtecting(2),
|
|
switched(3),
|
|
lockedOutRemote(4)
|
|
}
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Indicates the current state of the port.
|
|
|
|
lockedOut
|
|
This bit, when applied to a working channel, indicates that
|
|
the channel is prevented from switching to the protection connection.
|
|
When applied to the null channel, this bit indicates that no
|
|
working channel may switch to the protection connection.
|
|
|
|
sfWorking
|
|
A signal failure condition on the working connection is in effect.
|
|
|
|
sfProtecting
|
|
A signal failure condition on the protecting connection is in effect.
|
|
|
|
switched
|
|
The switched bit is applied to a working channel if that
|
|
channel is currently switched to the protection connection.
|
|
|
|
lockedOutRemote
|
|
Indicate that the protection is locked out by
|
|
command issued on the remote NE."
|
|
::= { optApsConfigEntry 13 }
|
|
|
|
optApsConfigChanSignalFailures OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A count of Signal Failure conditions that have been
|
|
detected on the incoming signal. This condition occurs
|
|
when a loss of signal is detected."
|
|
::= { optApsConfigEntry 14 }
|
|
|
|
optApsConfigChanSwitchovers OBJECT-TYPE
|
|
SYNTAX Counter32
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The number of times this channel has switched to the protection
|
|
connection. When queried with index value apsChanNumber set to 0, which
|
|
is the protection connection, this object will return 0. "
|
|
::= { optApsConfigEntry 15 }
|
|
|
|
optApsConfigChanLastSwitchover OBJECT-TYPE
|
|
SYNTAX TimeTicks
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The value of sysUpTime when this channel last completed a switch
|
|
to the protection connection. If this channel has never switched to the
|
|
protection connection, or this channel is the protection connection, the value
|
|
0 will be returned."
|
|
::= { optApsConfigEntry 16 }
|
|
|
|
optApsConfigSwitchCommand OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
clear(1),
|
|
lockoutOfProtection(2),
|
|
forcedSwitchOfWorking(3),
|
|
forcedSwitchOfProtection(4),
|
|
manualSwitchOfWorking(5),
|
|
manualSwitchOfProtection(6)
|
|
}
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A switch command initiates one external request for evaluation
|
|
(read-write).
|
|
|
|
(1) Clear - Clears all switch commands on the channel.
|
|
|
|
(2) Lockout Of Protection - Prevents any of the working channels
|
|
from switching to the protection connection by issuing a Lockout of
|
|
Protection request [unless a request of equal priority (i.e., a
|
|
Lockout of Protection) is already in effect].
|
|
|
|
(3) Forced Switch of Working (to Protection) - Switches the
|
|
working channel to the protection connection unless a request of equal
|
|
or higher priority is in effect, by issuing a Forced Switch
|
|
request.
|
|
|
|
(4) Forced Switch of Protection (to Working) - Switches the
|
|
working channel back from the protection connection to the working
|
|
connection unless a request of equal or higher priority is in effect,
|
|
by issuing a Forced Switch request. This command applies only
|
|
in the 1+1 architecture.
|
|
|
|
(5) Manual Switch of Working (to Protection) - Switches the
|
|
working channel to the protection connection unless a request of equal
|
|
or higher priority is in effect, by issuing a Manual Switch
|
|
request.
|
|
|
|
(6) Manual Switch of Protection (to Working) - Switches the
|
|
working channel back from the protection connection to the working
|
|
connection unless a request of equal or higher priority is in effect,
|
|
by issuing a Manual Switch request. This command applies only
|
|
in the 1+1 architecture for the null.
|
|
|
|
Reading this variable always returns zero (0)."
|
|
DEFVAL { clear }
|
|
::= { optApsConfigEntry 17 }
|
|
|
|
optApsConfigSwitchReason OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
optApsOther(1),
|
|
optApsRevertive(2),
|
|
optApsManual(3),
|
|
optApsSignalFailure(4),
|
|
optApsForceSwitch(5),
|
|
optApsLockOut(6)
|
|
}
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The reason why APS switch happened. When the working
|
|
connection on one end fails, its other end is told to do
|
|
an APS switch. The following options in the increasing
|
|
order of priority indicate what type of switch request
|
|
it is.
|
|
|
|
optApsRevertive : Switch back to working connection after the
|
|
Wait-to-Restore interval is over, and failures are
|
|
cleared. It is the lowest priority.
|
|
optApsManual : Manual switch causes APS switch unless a
|
|
request of equal or higher priority is in effect.
|
|
optApsSignalFailureHigh : switch occured due to SD failure.
|
|
optApsForceSwitch : Forced switch forces hardware to switch
|
|
the active connection even if the other connection (could be
|
|
working connection or protection connection) is in alarm.
|
|
optApsLockOut : This is the highest priority switch. This
|
|
will override all other requests.
|
|
optApsLockOut : indicates that the last switchover to the
|
|
working occurred because of protection lockout."
|
|
::= { optApsConfigEntry 18 }
|
|
|
|
optApsConfigResetCounters OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
resetCounters(1)
|
|
}
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Setting this variable to 1 will cause the counters
|
|
on all of the Optical APS Config Table to be initialized
|
|
to zero (read-write)."
|
|
::= { optApsConfigEntry 19 }
|
|
|
|
optApsConfigActiveRequest OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
optApsOther(1),
|
|
optApsRevertive(2),
|
|
optApsManual(3),
|
|
optApsSignalFailure(4),
|
|
optApsForceSwitch(5),
|
|
optApsLockOut(6)
|
|
}
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The Active Switch APS request:
|
|
|
|
optApsRevertive : Switch back to working connection after the
|
|
Wait-to-Restore interval is over, and failures are
|
|
cleared. It is the lowest priority.
|
|
optApsManual : Manual switch causes APS switch unless a
|
|
request of equal or higher priority is in effect.
|
|
optApsSignalFailure : Switch due to signal failure.
|
|
optApsForceSwitch : Forced switch forces hardware to switch
|
|
the active connection even if the other connection (could be
|
|
working connection or protection connection) is in alarm.
|
|
optApsLockOut : This is the highest priority switch. This
|
|
will override all other requests.
|
|
optApsLockOut : indicates that the last switchover to the
|
|
working occurred because of protection lockout."
|
|
::= { optApsConfigEntry 20 }
|
|
|
|
optApsConfigStatus OBJECT-TYPE
|
|
SYNTAX RowStatus
|
|
MAX-ACCESS read-create
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This object is used to create and delete rows in the
|
|
optApsConfigTable."
|
|
::= { optApsConfigEntry 21 }
|
|
|
|
optApsConfigLosThreshold OBJECT-TYPE
|
|
SYNTAX INTEGER (0..65535)
|
|
MAX-ACCESS read-write
|
|
STATUS current
|
|
DESCRIPTION
|
|
"Configured threshold value for LOS detection of the optical switch.
|
|
This object is applicable only when slmOpticalSwitchExist is TRUE.
|
|
The value given in 0.1 dBm units. The range starts with -50.0 dBm."
|
|
::= { optApsConfigEntry 22 }
|
|
|
|
|
|
--
|
|
-- Equipment APS config Table
|
|
--
|
|
|
|
eqptApsConfigTable OBJECT-TYPE
|
|
SYNTAX SEQUENCE OF EqptApsConfigEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This table contains objects to configure Equipment APS
|
|
(Automatic Protection Switching) feature."
|
|
::= { slOptApsConfig 2 }
|
|
|
|
eqptApsConfigEntry OBJECT-TYPE
|
|
SYNTAX EqptApsConfigEntry
|
|
MAX-ACCESS not-accessible
|
|
STATUS current
|
|
DESCRIPTION
|
|
"This configuration is on device level thus only one entry exists."
|
|
INDEX {eqptApsConfigDummyIndex }
|
|
::= { eqptApsConfigTable 1 }
|
|
|
|
EqptApsConfigEntry ::=
|
|
SEQUENCE {
|
|
eqptApsConfigDummyIndex INTEGER,
|
|
eqptApsConfigRole INTEGER,
|
|
eqptApsConfigMate IpAddress,
|
|
eqptApsConfigLinkStatus INTEGER
|
|
}
|
|
|
|
eqptApsConfigDummyIndex OBJECT-TYPE
|
|
SYNTAX INTEGER
|
|
MAX-ACCESS read-only
|
|
STATUS current
|
|
DESCRIPTION
|
|
"A dummy index. Always 1."
|
|
::= { eqptApsConfigEntry 1 }
|
|
|
|
eqptApsConfigRole OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
eqptApsWorkingRole (1),
|
|
eqptApsProtectionRole(2)
|
|
}
|
|
MAX-ACCESS read-write
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The device role."
|
|
::= { eqptApsConfigEntry 2 }
|
|
|
|
eqptApsConfigMate OBJECT-TYPE
|
|
SYNTAX IpAddress
|
|
MAX-ACCESS read-write
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The IP address of the mate device."
|
|
::= { eqptApsConfigEntry 3 }
|
|
|
|
eqptApsConfigLinkStatus OBJECT-TYPE
|
|
SYNTAX INTEGER {
|
|
eqptApsLinkUp (1),
|
|
eqptApsLinkDown (2)
|
|
}
|
|
MAX-ACCESS read-write
|
|
STATUS current
|
|
DESCRIPTION
|
|
"The IP address of the mate device."
|
|
::= { eqptApsConfigEntry 4 }
|
|
|
|
|
|
--
|
|
-- APS TRAPS
|
|
--
|
|
|
|
optApsTrapSwitchover NOTIFICATION-TYPE
|
|
OBJECTS { optApsConfigUserWorkingIndex, optApsConfigActiveConnectionRx }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An optApsTrapSwitchover notification is sent when the
|
|
value of an instance of optApsChanSwitchovers increments."
|
|
::= { slOptApsTraps 1 }
|
|
|
|
optApsConfigTableChanged NOTIFICATION-TYPE
|
|
OBJECTS { optApsConfigUserWorkingIndex }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An optApsConfigTableChanged notification is sent when the
|
|
content of the optApsConfigTable is changed.
|
|
The added/deleted entry is identified by the
|
|
optApsUserWorkingIndex object."
|
|
::= { slOptApsTraps 2 }
|
|
|
|
optApsTrapSwitchover0 NOTIFICATION-TYPE
|
|
OBJECTS { optApsConfigUserWorkingIndex, optApsConfigActiveConnectionRx, slmTrapLogId }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An optApsTrapSwitchover notification is sent when the
|
|
value of an instance of optApsChanSwitchovers increments.
|
|
It is defined to support browsers that don't recognize RFC 2576."
|
|
::= { slOptApsTraps0 1 }
|
|
|
|
optApsConfigTableChanged0 NOTIFICATION-TYPE
|
|
OBJECTS { optApsConfigUserWorkingIndex, optApsConfigActiveConnectionRx, slmTrapLogId }
|
|
STATUS current
|
|
DESCRIPTION
|
|
"An optApsConfigTableChanged notification is sent when the
|
|
content of the optApsConfigTable is changed.
|
|
The added/deleted entry is identified by the
|
|
optApsUserWorkingIndex object.
|
|
It is defined to support browsers that don't recognize RFC 2576."
|
|
::= { slOptApsTraps0 2 }
|
|
|
|
END
|
|
|
|
|
|
|