| OID symbolic | OID numeric | Type | Access | Description |
| G32 teActiveTunnels | 1.3.6.1.2.1.122.1.1.7 | Gauge32 | read-only | Number of currently active Tunnels. |
| teAdminGroupEntry | 1.3.6.1.2.1.122.1.1.9.1 | | not-accessible | A mapping between a configured group number and
its human-readable name. The group number should
be between 1 and 32, inclusive. Group number n
represents bit number (n-1) in the bit vector for
Include/Exclude constraints.
All entries in this table MUST be kept in stable
storage so that they will re-appear in case of a
restart/reboot. |
| STR teAdminGroupName | 1.3.6.1.2.1.122.1.1.9.1.2 | SnmpAdminString | read-create | Name of the administrative group. |
| I32 teAdminGroupNumber | 1.3.6.1.2.1.122.1.1.9.1.1 | Integer32 | not-accessible | Index of the administrative group. |
| ROW teAdminGroupRowStatus | 1.3.6.1.2.1.122.1.1.9.1.3 | RowStatus | read-create | The status of this conceptual row.
The value of this object has no effect on whether
other objects in this conceptual row can be
modified. |
| teAdminGroupTable | 1.3.6.1.2.1.122.1.1.9 | | not-accessible | A mapping of configured administrative groups. Each
entry represents an Administrative Group and
provides a name and index for the group.
Administrative groups are used to label links in the
Traffic Engineering topology in order to place
constraints (include and exclude) on Tunnel paths.
A groupName can only be linked to one group number.
The groupNumber is the number assigned to the
administrative group used in constraints,
such as tePathIncludeAny or tePathIncludeAll. |
| G32 teConfiguredTunnels | 1.3.6.1.2.1.122.1.1.6 | Gauge32 | read-only | Number of currently configured Tunnels. |
| BIT teDistProtocol | 1.3.6.1.2.1.122.1.1.1 | Bits | read-only | IGP used to distribute Traffic Engineering
information and topology to each device for the
purpose of automatic path computation. More than
one IGP may be used to distribute TE information. |
| teGroups | 1.3.6.1.2.1.122.2.1 | | | |
| U32 teHopListIndex | 1.3.6.1.2.1.122.1.4.1.1 | Unsigned32 | not-accessible | An index that identifies a list of hops. This is
the primary index to access hops. |
| teInfo | 1.3.6.1.2.1.122.1.1 | | | |
| teMIB | 1.3.6.1.2.1.122 | | | The Traffic Engineering MIB module.
Copyright (C) The Internet Society (2005). This
version of this MIB module is part of RFC 3970;
see the RFC itself for full legal notices. |
| teMIBConformance | 1.3.6.1.2.1.122.2 | | | |
| teMIBNotifications | 1.3.6.1.2.1.122.0 | | | |
| teMIBObjects | 1.3.6.1.2.1.122.1 | | | |
| teModuleCompliance | 1.3.6.1.2.1.122.2.2 | | | |
| teModuleFullCompliance | 1.3.6.1.2.1.122.2.2.2 | | | When this MIB module is implemented with support for
read-create, then the implementation can claim
full compliance. Such devices can be both
monitored and configured with this MIB module. |
| teModuleReadOnlyCompliance | 1.3.6.1.2.1.122.2.2.1 | | | When this MIB module is implemented without support
for read-create (i.e., in read-only mode), then such
an implementation can claim read-only compliance.
Such a device can be monitored but cannot be
configured with this MIB module. |
| teModuleServerFullCompliance | 1.3.6.1.2.1.122.2.2.4 | | | When this MIB module is implemented by a path
computation server with support for read-create,
then the implementation can claim full
compliance. |
| teModuleServerReadOnlyCompliance | 1.3.6.1.2.1.122.2.2.3 | | | When this MIB module is implemented by a path
computation server without support for read-create
(i.e., in read-only mode), then the implementation
can claim read-only compliance. Such
a device can be monitored but cannot be
configured with this MIB module. |
| U32 teNextPathHopIndex | 1.3.6.1.2.1.122.1.1.5 | Unsigned32 | read-only | An integer that may be used as a new Index in the
tePathHopTable.
The special value of 0 indicates that no more new
entries can be created in that table.
When this MIB module is used for configuration, this
object always contains a legal value (if non-zero)
for an index that is not currently used in that
table. The Command Generator (Network Management
Application) reads this variable and uses the
(non-zero) value read when creating a new row with
an SNMP SET. When the SET is performed, the Command
Responder (agent) must determine whether the value
is indeed still unused; Two Network Management
Applications may attempt to create a row
(configuration entry) simultaneously and use the
same value. If it is currently unused, the SET
succeeds, and the Command Responder (agent) changes
the value of this object according to an
implementation-specific algorithm. If the value is
in use, however, the SET fails. The Network
Management Application must then re-read this
variable to obtain a new usable value. |
| U32 teNextTunnelIndex | 1.3.6.1.2.1.122.1.1.4 | Unsigned32 | read-only | An integer that may be used as a new Index in the
teTunnelTable.
The special value of 0 indicates that no more new
entries can be created in that table.
When this MIB module is used for configuration, this
object always contains a legal value (if non-zero)
for an index that is not currently used in that
table. The Command Generator (Network Management
Application) reads this variable and uses the
(non-zero) value read when creating a new row with
an SNMP SET. When the SET is performed, the Command
Responder (agent) must determine whether the value
is indeed still unused; Two Network Management
Applications may attempt to create a row
(configuration entry) simultaneously and use the
same value. If it is currently unused, the SET
succeeds, and the Command Responder (agent) changes
the value of this object according to an
implementation-specific algorithm. If the value is
in use, however, the SET fails. The Network
Management Application must then re-read this
variable to obtain a new usable value. |
| T/F teNotificationEnable | 1.3.6.1.2.1.122.1.1.3 | TruthValue | read-write | If this object is true, then it enables the
generation of notifications from this MIB module.
Otherwise notifications are not generated. |
| teNotificationGroup | 1.3.6.1.2.1.122.2.1.2 | | | Notifications specified in this MIB module. |
| INT tePathAdminStatus | 1.3.6.1.2.1.122.1.3.1.15 | INTEGER | read-create | The operational status of the path:
normal: Used normally for forwarding.
testing: Administratively set aside for testing. |
| MPL tePathBandwidth | 1.3.6.1.2.1.122.1.3.1.7 | MplsBitRate | read-create | The configured bandwidth for this Tunnel,
in units of thousands of bits per second (Kbps). |
| U32 tePathComputedRoute | 1.3.6.1.2.1.122.1.3.1.16 | Unsigned32 | read-only | The route computed for this path, perhaps using
some form of Constraint-based Routing. The
algorithm is implementation dependent.
This object returns the computed route as an ordered
list of hops. The value of this object gives the
primary index into the Hop Table. The secondary
index is the hop count in the path, so to get the
route, one could get the first hop with index
in the Hop Table and do a
getnext to get subsequent hops.
A value of zero (0) means there is no computedRoute. |
| U32 tePathConfiguredRoute | 1.3.6.1.2.1.122.1.3.1.6 | Unsigned32 | read-create | The route that this TE path is configured to follow;
i.e., an ordered list of hops. The value of this
object gives the primary index into the Hop Table.
The secondary index is the hop count in the path, so
to get the route, one could get the first hop with
index in the Hop Table
and do a getnext to get subsequent hops. |
| tePathEntry | 1.3.6.1.2.1.122.1.3.1 | | not-accessible | Entry containing information about a particular
Traffic Tunnel. Each Traffic Tunnel can have zero
or more Traffic Paths.
As a Traffic Path can only exist over an existing
Traffic Tunnel, all tePathEntries with
a value of n for teTunnelIndex MUST be removed by
the implementation when the corresponding
teTunnelEntry with a value of n for teTunnelIndex
is removed. |
| U32 tePathExclude | 1.3.6.1.2.1.122.1.3.1.10 | Unsigned32 | read-create | This is a configured set of administrative groups
specified as a bit vector (i.e., bit n is 1 if group
n is in the set, where n = 0 is the LSB). For each
link that this path goes through, the link MUST have
groups associated with it, and the intersection of
the link's groups and the 'exclude' set MUST be
null. |
| I32 tePathHoldPriority | 1.3.6.1.2.1.122.1.3.1.12 | Integer32 | read-create | The hold priority configured for this path, with 0
as the highest priority and 7 as the lowest. |
| ADR tePathHopAddress | 1.3.6.1.2.1.122.1.4.1.6 | TeHopAddress | read-create | The Traffic Engineered Tunnel hop Address of this
hop.
The type of this address is determined by the value
of the corresponding tePathHopAddressType.
The value of this object cannot be changed
if the value of the corresponding teTunnelRowStatus
object is 'active'. |
| ADR tePathHopAddrType | 1.3.6.1.2.1.122.1.4.1.5 | TeHopAddressType | read-create | The type of Traffic Engineered Tunnel hop Address
of this hop.
The value of this object cannot be changed
if the value of the corresponding tePathRowStatus
object is 'active'. |
| tePathHopEntry | 1.3.6.1.2.1.122.1.4.1 | | not-accessible | Entry containing information about a particular
hop. |
| U32 tePathHopIndex | 1.3.6.1.2.1.122.1.4.1.2 | Unsigned32 | not-accessible | An index that identifies a particular hop among the
list of hops for a path. An index of i identifies
the ith hop. This is the secondary index for a hop
entry. |
| ROW tePathHopRowStatus | 1.3.6.1.2.1.122.1.4.1.3 | RowStatus | read-create | The status of this conceptual row.
Any field in this table can be changed, even if the
value of this object is 'active'. However, such a
change may cause traffic to be rerouted or even
disrupted. |
| STO tePathHopStorageType | 1.3.6.1.2.1.122.1.4.1.4 | StorageType | read-create | The storage type for this conceptual row.
Conceptual rows having the value 'permanent' need
not allow write-access to any columnar objects
in the row. |
| tePathHopTable | 1.3.6.1.2.1.122.1.4 | | not-accessible | Table of Tunnel Path Hops. |
| INT tePathHopType | 1.3.6.1.2.1.122.1.4.1.7 | INTEGER | read-only | The type of hop:
unknown:
loose: This hop is a LOOSE hop.
strict: This hop is a STRICT hop. |
| U32 tePathIncludeAll | 1.3.6.1.2.1.122.1.3.1.9 | Unsigned32 | read-create | This is a configured set of administrative groups
specified as a bit vector (i.e., bit n is 1 if group
n is in the set, where n = 0 is the LSB). For each
link that this path goes through, the link must have
all of the groups specified in IncludeAll to be
acceptable. If IncludeAll is zero, all links are
acceptable. |
| U32 tePathIncludeAny | 1.3.6.1.2.1.122.1.3.1.8 | Unsigned32 | read-create | This is a configured set of administrative groups
specified as a bit vector (i.e., bit n is 1 if group
n is in the set, where n = 0 is the LSB). For each
link that this path goes through, the link must have
at least one of the groups specified in IncludeAny
to be acceptable. If IncludeAny is zero, all links
are acceptable. |
| U32 tePathIndex | 1.3.6.1.2.1.122.1.3.1.1 | Unsigned32 | not-accessible | An index that uniquely identifies a path within
a Tunnel.
The combination of thus
uniquely identifies a path among all paths on this
router. |
| STR tePathName | 1.3.6.1.2.1.122.1.3.1.2 | SnmpAdminString | read-create | The name of this path.
A pathName must be unique within the set of paths
over a single tunnel. If a SET request is received
with a duplicate name, then the implementation MUST
return an inconsistentValue error.
The value of this object cannot be changed
if the value of the corresponding teTunnelRowStatus
object is 'active'. |
| INT tePathOperStatus | 1.3.6.1.2.1.122.1.3.1.14 | INTEGER | read-only | The operational status of the path:
unknown:
down: Signaling failed.
testing: Administratively set aside for testing.
dormant: Not signaled (for a backup tunnel).
ready: Signaled but not yet carrying traffic.
operational: Signaled and carrying traffic. |
| BIT tePathProperties | 1.3.6.1.2.1.122.1.3.1.13 | Bits | read-create | The set of configured properties for this path,
expressed as a bit map. For example, if the path
supports 'make before break', then bit 2 is set. |
| U32 tePathRecordedRoute | 1.3.6.1.2.1.122.1.3.1.17 | Unsigned32 | read-only | The route actually used for this path, as recorded
by the signaling protocol. This is again an ordered
list of hops; each hop is expected to be strict.
The value of this object gives the primary index
into the Hop Table. The secondary index is the hop
count in the path, so to get the route, one can get
the first hop with index
in the Hop Table and do a getnext to get subsequent
hops.
A value of zero (0) means there is no recordedRoute. |
| ROW tePathRowStatus | 1.3.6.1.2.1.122.1.3.1.3 | RowStatus | read-create | The status of this conceptual row.
When the value of this object is 'active', then
the value of tePathName cannot be changed. All
other writable objects may be changed; however,
these changes may affect traffic going over the TE
tunnel or require the path to be computed and/or
re-signaled. |
| I32 tePathSetupPriority | 1.3.6.1.2.1.122.1.3.1.11 | Integer32 | read-create | The setup priority configured for this path, with 0
as the highest priority and 7 as the lowest. |
| STO tePathStorageType | 1.3.6.1.2.1.122.1.3.1.4 | StorageType | read-create | The storage type for this conceptual row.
Conceptual rows having the value 'permanent' need
not allow write-access to any columnar objects
in the row. |
| tePathTable | 1.3.6.1.2.1.122.1.3 | | not-accessible | Table of Configured Traffic Tunnels. |
| INT tePathType | 1.3.6.1.2.1.122.1.3.1.5 | INTEGER | read-create | The type for this PathEntry; i.e., whether this path
is a primary path, a standby path, or a secondary
path. |
| G32 tePrimaryTunnels | 1.3.6.1.2.1.122.1.1.8 | Gauge32 | read-only | Number of currently active Tunnels running on
their primary paths. |
| BIT teSignalingProto | 1.3.6.1.2.1.122.1.1.2 | Bits | read-only | Traffic Engineering signaling protocols supported
by this device. More than one protocol may be
supported. |
| teTrafficEngineeringGroup | 1.3.6.1.2.1.122.2.1.1 | | | Objects for Traffic Engineering in this MIB module. |
| TIK teTunnelAge | 1.3.6.1.2.1.122.1.2.1.16 | TimeTicks | read-only | The age (i.e., time from creation of this conceptual
row till now) of this Tunnel in hundredths of a
second. Note that because TimeTicks wrap in about
16 months, this value is best used in interval
measurements. |
| NTF teTunnelChanged | 1.3.6.1.2.1.122.0.3 | | | A teTunnelChanged notification is generated when an
active path on the Tunnel indexed by teTunnelName
changes or a new path becomes active. The value
of tePathName is the new active path.
This notification MUST be limited to at most one
every minute, in case the tunnel changes quickly. |
| G32 teTunnelConfiguredPaths | 1.3.6.1.2.1.122.1.2.1.23 | Gauge32 | read-only | The number of paths configured for this Tunnel. |
| ADR teTunnelDestinationAddress | 1.3.6.1.2.1.122.1.2.1.9 | TeHopAddress | read-create | The Destination Traffic Engineered Tunnel hop
address of this Tunnel.
The type of this address is determined by the value
of the corresponding teTunnelDestinationAddressType.
Note that source and destination addresses of a
Tunnel can be different address types.
The value of this object cannot be changed
if the value of the corresponding teTunnelRowStatus
object is 'active'. |
| ADR teTunnelDestinationAddressType | 1.3.6.1.2.1.122.1.2.1.8 | TeHopAddressType | read-create | The type of Traffic Engineered Tunnel hop address
for the destination of this Tunnel.
The value of this object cannot be changed
if the value of the corresponding teTunnelRowStatus
object is 'active'. |
| TIM teTunnelDiscontinuityTimer | 1.3.6.1.2.1.122.1.2.1.11 | TimeStamp | read-only | The value of sysUpTime on the most recent occasion
at which any one or more of this tunnel's counters
suffered a discontinuity. The relevant counters
are teTunnelOctets, teTunnelPackets,
teTunnelLPOctets, and teTunnelLPPackets. If no such
discontinuities have occurred since the last
re-initialization of the local management subsystem
then this object contains a zero value. |
| NTF teTunnelDown | 1.3.6.1.2.1.122.0.2 | | | A teTunnelDown notification is generated when the
Tunnel indexed by teTunnelName transitions to the
'down' state.
A tunnel is up when at least one of its paths is up.
The tePathName is the name of the path whose
transition to down made the tunnel go down.
This notification MUST be limited to at most one
every minute, in case the tunnel flaps up and down. |
| teTunnelEntry | 1.3.6.1.2.1.122.1.2.1 | | not-accessible | Entry containing information about a particular
Traffic Tunnel. |
| U32 teTunnelIndex | 1.3.6.1.2.1.122.1.2.1.1 | Unsigned32 | not-accessible | A unique index that identifies a Tunnel. If the TE
Tunnel is considered an interface, then this index
must match the interface index of the corresponding
interface. Otherwise, this index must be at least
2^24, so that it does not overlap with any existing
interface index. |
| TIK teTunnelLastPathChange | 1.3.6.1.2.1.122.1.2.1.22 | TimeTicks | read-only | The time in hundredths of a second since the last
path change occurred on this Tunnel.
Note that if the last transition was over 16
months ago, this value will be inaccurate.
Path changes may be caused by network events or by
reconfiguration that affects the path. |
| TIK teTunnelLastTransition | 1.3.6.1.2.1.122.1.2.1.20 | TimeTicks | read-only | The time in hundredths of a second since the last
operational state transition occurred on this
Tunnel.
Note that if the last transition was over 16
months ago, this value will be inaccurate. |
| C32 teTunnelLPOctets | 1.3.6.1.2.1.122.1.2.1.14 | Counter32 | read-only | The number of octets that have been forwarded over
the Tunnel.
Discontinuities in the value of this counter can
occur at re-initialization of the management system
and at other times, as indicated by the value of
teTunnelDiscontinuityTimer. |
| C32 teTunnelLPPackets | 1.3.6.1.2.1.122.1.2.1.15 | Counter32 | read-only | The number of packets that have been forwarded over
the Tunnel.
Discontinuities in the value of this counter can
occur at re-initialization of the management system
and at other times, as indicated by the value of
teTunnelDiscontinuityTimer. |
| STR teTunnelName | 1.3.6.1.2.1.122.1.2.1.2 | SnmpAdminString | read-create | Name of the Traffic Tunnel.
Note that the name of a Tunnel MUST be unique.
When a SET request contains a name that is already
in use for another entry, then the implementation
must return an inconsistentValue error.
The value of this object cannot be changed if the
if the value of the corresponding teTunnelRowStatus
object is 'active'. |
| U32 teTunnelNextPathIndex | 1.3.6.1.2.1.122.1.2.1.3 | Unsigned32 | read-only | An integer that may be used as a new Index for the
next Path in this Tunnel.
The special value of 0 indicates that no more Paths
can be created for this Tunnel, or that no more new
entries can be created in tePathTable.
When this MIB module is used for configuration, this
object always contains a legal value (if non-zero)
for an index that is not currently used in that
table. The Command Generator (Network Management
Application) reads this variable and uses the
(non-zero) value read when creating a new row with
an SNMP SET. When the SET is performed, the Command
Responder (agent) must determine whether the value
is indeed still unused; Two Network Management
Applications may attempt to create a row
(configuration entry) simultaneously and use the
same value. If it is currently unused, the SET
succeeds, and the Command Responder (agent) changes
the value of this object according to an
implementation-specific algorithm. If the value is
in use, however, the SET fails. The Network
Management Application must then re-read this
variable to obtain a new usable value. |
| C64 teTunnelOctetsEx | 1.3.6.1.2.1.122.1.2.1.12 | Counter64 | read-only | The number of octets that have been forwarded over
the Tunnel.
Discontinuities in the value of this counter can
occur at re-initialization of the management system,
and at other times, as indicated by the value of
teTunnelDiscontinuityTimer. |
| G32 teTunnelOperationalPaths | 1.3.6.1.2.1.122.1.2.1.25 | Gauge32 | read-only | The number of operational paths for this Tunnel.
This includes the path currently active, as
well as operational standby paths. |
| C64 teTunnelPackets | 1.3.6.1.2.1.122.1.2.1.13 | Counter64 | read-only | The number of packets that have been forwarded over
the Tunnel.
Discontinuities in the value of this counter can
occur at re-initialization of the management system
and at other times, as indicated by the value of
teTunnelDiscontinuityTimer. |
| C32 teTunnelPathChanges | 1.3.6.1.2.1.122.1.2.1.21 | Counter32 | read-only | The number of path changes this Tunnel has had. |
| TIK teTunnelPrimaryTimeUp | 1.3.6.1.2.1.122.1.2.1.18 | TimeTicks | read-only | The total time in hundredths of a second that this
Tunnel's primary path has been operational. Note
that because TimeTicks wrap in about 16 months, this
value is best used in interval measurements.
An example of usage of this field would be to
compute what percentage of time that a TE Tunnel was
on the primary path over a period of time by
computing
((teTunnelPrimaryTimeUp2 - teTunnelPrimaryTimeUp1)/
(teTunnelTimeUp2 - teTunnelTimeUp1))*100 %. In
doing so, the management station must account for
wrapping of the values of teTunnelPrimaryTimeUp and
teTunnelTimeUp between the two measurements. |
| NTF teTunnelRerouted | 1.3.6.1.2.1.122.0.4 | | | A teTunnelRerouted notification is generated when
an active path for the Tunnel indexed by
teTunnelName stays the same, but its route changes.
This notification MUST be limited to at most one
every minute, in case the tunnel reroutes quickly. |
| ROW teTunnelRowStatus | 1.3.6.1.2.1.122.1.2.1.4 | RowStatus | read-create | The status of this conceptual row.
When the value of this object is 'active', then
the values for the corresponding objects
teTunnelName, teTunnelSourceAddressType,
teTunnelSourceAddress,
teTunnelDestinationAddressType, and
teTunnelDestinationAddress cannot be changed. |
| ADR teTunnelSourceAddress | 1.3.6.1.2.1.122.1.2.1.7 | TeHopAddress | read-create | The Source Traffic Engineered Tunnel hop address of
this Tunnel.
The type of this address is determined by the value
of the corresponding teTunnelSourceAddressType.
Note that the source and destination addresses of a
Tunnel can be different address types.
The value of this object cannot be changed
if the value of the corresponding teTunnelRowStatus
object is 'active'. |
| ADR teTunnelSourceAddressType | 1.3.6.1.2.1.122.1.2.1.6 | TeHopAddressType | read-create | The type of Traffic Engineered Tunnel hop address
for the source of this Tunnel. Typically, this
address type is IPv4 or IPv6, with a prefix length
of 32 or 128, respectively. If the TE Tunnel path
is being computed by a path computation server,
however, it is possible to use more flexible source
address types, such as AS numbers or prefix lengths
less than host address lengths.
The value of this object cannot be changed
if the value of the corresponding teTunnelRowStatus
object is 'active'. |
| G32 teTunnelStandbyPaths | 1.3.6.1.2.1.122.1.2.1.24 | Gauge32 | read-only | The number of standby paths configured for this
Tunnel. |
| INT teTunnelState | 1.3.6.1.2.1.122.1.2.1.10 | INTEGER | read-only | The operational state of the Tunnel. |
| STO teTunnelStorageType | 1.3.6.1.2.1.122.1.2.1.5 | StorageType | read-create | The storage type for this conceptual row.
Conceptual rows having the value 'permanent' need
not allow write-access to any columnar objects
in the row. |
| teTunnelTable | 1.3.6.1.2.1.122.1.2 | | not-accessible | Table of Configured Traffic Tunnels. |
| TIK teTunnelTimeUp | 1.3.6.1.2.1.122.1.2.1.17 | TimeTicks | read-only | The total time in hundredths of a second that this
Tunnel has been operational. Note that because
TimeTicks wrap in about 16 months, this value is
best used in interval measurements.
An example of usage of this object would be to
compute the percentage up time over a period of time
by obtaining values of teTunnelAge and
teTunnelTimeUp at two points in time and computing
the following ratio:
((teTunnelTimeUp2 - teTunnelTimeUp1)/
(teTunnelAge2 - teTunnelAge1)) * 100 %. In doing
so, the management station must account for
wrapping of the values of teTunnelAge and
teTunnelTimeUp between the two measurements. |
| C32 teTunnelTransitions | 1.3.6.1.2.1.122.1.2.1.19 | Counter32 | read-only | The number of operational state transitions
(up -> down and down -> up) this Tunnel has
undergone. |
| NTF teTunnelUp | 1.3.6.1.2.1.122.0.1 | | | A teTunnelUp notification is generated when the
Tunnel indexed by teTunnelName transitions to the
'up' state.
A tunnel is up when at least one of its paths is up.
The tePathName is the name of the path whose
transition to up made the tunnel go up.
This notification MUST be limited to at most one
every minute, in case the tunnel flaps up and down. |