[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Comments on LMP MIB
Comments
inline. All editorial comments
look good.
My feedback comments are prefixed "BM>"
/Baktha
======================================================
7.5. lmpLinkVerificationTable
This table represents the link verification parameters
associated
with the TE links.
BM> Add "Augments lmpTeLinkTable"
----------
7.7. lmpDataBearingLinkPerfTable
This table contains the objects to measure the LMP
performance of
data-bearing links and is an AUGMENT to the
lmpDataBearingLinkTable.
BM> Add "Augments lmpDataBearingLinkTable"
------------
8. Example of LMP Control Channel Setup
In this section we provide a brief example of using the
MIB
objects described in section 11 to set up an LMP control
channel.
While this example is not meant to illustrate every nuance
of the
MIB, it is intended as an aid to understanding some of the
key
concepts. It is meant to be read after going through the MIB
itself.
BM> Should read "objects desribed in section 10"
----------------
lmpAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1), down(2) }
MAX-ACCESS read-write
STATUS
current
DESCRIPTION
"The desired operational status
of LMP on the node."
DEFVAL { up
}
::= { lmpObjects 1 }
BM> Do we mean administrative state?
----------------------
lmpNbrTable OBJECT-TYPE
SYNTAX SEQUENCE OF
LmpNbrEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"This table specifies the
neighbor node to which control channels
may be
established."
::= { lmpObjects 2 }
BM> neighbor node(s)
----------------------------
lmpNbrRetransmitInterval
= 10
Wouldn't want this to be the same for link verification, summary
etc.
----------------
lmpNbrAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1), down(2) }
MAX-ACCESS read-create
STATUS
current
DESCRIPTION
"The desired operational status
of LMP to this remote node."
::= { lmpNbrEntry 3 }
BM> Do we mean desired admin. state?
--------------------
lmpCcHelloIntervalDefaultMin
BM> Presumably, this serves as the default value for
lmpCcHelloIntervalMin?
lmpCcHelloIntervalDefaultMax
BM> Presumably, this serves as the default value for
lmpCcHelloIntervalMax?
lmpCcHelloDeadIntervalDefaultMin
BM> Presumably, this serves as the default value for
lmpCcHelloDeadIntervalMin?
lmpCcHelloDeadIntervalDefaultMax
BM> Presumably, this serves as the default value for
lmpCcHelloDeadIntervalMax?
------------------------
lmpCcHelloDeadIntervalDefault OBJECT-TYPE
SYNTAX
LmpInterval
MAX-ACCESS read-write
STATUS
current
DESCRIPTION
"This object specifies the
default HelloDeadInterval parameter to
use in the Hello protocol
keep-alive phase. It indicates how long
a device should wait before
declaring the control channel dead.
The HelloDeadInterval
parameter must be greater than the
HelloInterval parameter and
should be at least three times the
value of
HelloInterval."
BM> Remove the part "must be greated than the HelloInterval
parameter and"
-----------------
lmpCcIsIf OBJECT-TYPE
SYNTAX
TruthValue
MAX-ACCESS read-create
STATUS
current
DESCRIPTION
"Denotes whether or not this
control channel corresponds to
an interface represented in
the interfaces group table."
::= { lmpControlChannelEntry 3 }
BM> Why this additional object?. Why not require that there be a
valid
BM> lmpCcUnderlyingIfIndex for CC's rowstatsus to go into
"active" state
BM> and that in the absence of a valid underlying interface, the
CC
BM> will be in the "notReady"
state?
I think
that these are two different issues. This variable indicates that this CC
has its
own ifIndex. You can configure your CC as an IfIndex. If you relied on
the underlying
ifIndex to be present, then you run the risk of its ifIndex constantly
changing. That is
okay if your implementation wants this behavior, but if you want to
configure
a fixed ifIndex, this allows for it.
BM>
BM> In the TE LInk case, we require that an entry of type "TE
Link" exist
BM> BEFORE the corresponding teLinkEntry is created... Why not do the
same
BM> with CC?. After all, the CC is not usable until a real
underlying
BM> interface is defined!
Right, but
what if you just want to configure it and enable it later? It is
noted that the CC cannot become active until its associated underlying
interface
is active.
----------------
lmpCcNbrNodeId OBJECT-TYPE
SYNTAX
NodeID
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"This is the Node ID of the
control channel remote node.
This value gets created by the
node when a Config message
is received or when an
outgoing Config message is acknowledged
by the remote
node."
::= { lmpControlChannelEntry 4 }
BM> Should NOT be a read-only. Neighbor needs to be specified.
Consider
BM> an out-of-band Control channel over a shared ethernet LAN
interface-
BM> If neighbor is not specified, how will hello config be transmitted
to
BM> a neighbor?
BM> Only in the in-band (and with point to point link) case can the
neighbor
BM> IP address can be learnt!
Okay.
-----------------
lmpRemoteCcId OBJECT-TYPE
SYNTAX
Unsigned32
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"This value represents the
remote control channel identifier. It is
determined during the
negotiation phase. A value
of zero means that the remote
control channel identifier has not
yet been assigned."
::= { lmpControlChannelEntry 5 }
BM> Should read "A value of zero means that the remote CC ID has
not yet been learnt"
----------------------
lmpCcSetupRole OBJECT-TYPE
SYNTAX INTEGER {
active(1), passive(2) }
MAX-ACCESS read-create
STATUS
current
DESCRIPTION
"The role that this node should
take during establishment of this
control channel. An active
node will initiate establishment. A
passive node will wait for the
remote node to initiate. A pair
of nodes that both take the
passive role will never establish
communications."
DEFVAL { active
}
Well, this is not consistent with the LMP draft, which defines automatic
contention
resolution mechanism based on node ID. Besides, this is prone to
human(operator)-error.
The LMP draft reads:
"To avoid ambiguities, the node with the higher Node Id wins
the contention; the node with the lower Node Id MUST stop
transmitting the Config message and respond to the Config
message it
received."
The text
needs to be updated.
------------------------
lmpCcAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1), down(2) }
MAX-ACCESS read-create
STATUS
current
DESCRIPTION
"The desired operational status
of this control channel."
::= { lmpControlChannelEntry 17 }
BM> Should read "desired admin state"
BM> Why is the Admin Status of CC not tied to admin status of
the
BM> underlying interface?
---------------------
lmpTeLinkOperStatus OBJECT-TYPE
SYNTAX INTEGER {
up(1), down(2), testing(3), degraded(4) }
MAX-ACCESS read-only
STATUS
current
DESCRIPTION
"The actual operational status
of this TE link. The status
is set to testing when the TE
link is performing link
verification. A degraded
status indicates that the TE link
cannot provide the provisioned
protection level, but yet,
there is no disruption of
service. For instance, if the
protection type is 1+1 and one
link is down, the TE link
still carries the requested
amount of data traffic, but
this traffic is not protected
anymore."
::= { lmpTeLinkEntry 5 }
BM> This should reflect the Finite state machine states, defined in
the LMP draft,
BM> for TE Links.
Is that
necessary, or is the above subset sufficient?
------------------------------
lmpDataBearingLinkEntry OBJECT-TYPE
SYNTAX
LmpDataBearingLinkEntry
MAX-ACCESS not-accessible
STATUS
current
DESCRIPTION
"An entry in this table exists
for each ifEntry that represents
a data-bearing link. An
ifEntry with an ifIndex must exist
before the corresponding
lmpDataBearingLinkEntry is created.
If an entry representing the
data-bearing link is destroyed in
the ifTable, then so is the
corresponding entry in the
lmpDataBearingLinkTable. The
administrative status value is
controlled from the ifEntry.
The index to this table also
used to get information in the
dataBearingChannelTable
[BUNDLE-MIB]."
INDEX {
ifIndex }
BM> Why is this not an "AUGMENT" to
ifEntry?
Because it
would violate the stipulation that AUGMENTS entries
cannot be associated with the base table in a sparse relationship.
-------------
BM> From an LMP perspective, the "member data links" of a TE
Links need
BM> to be known.. I realize that this information is available from
the
BM> bundling MIB.. It may be handy to add an object to the data
bearing
BM> link table to store the TE Link ?
Isn't this
shown through the underlying ifIndex?
------------------
BM> Along the lines of TE Link and CC up/down traps, perhaps we should
have
BM> a trap to notify user when a data bearing link is transitioned to
"down"
BM> state due to link verification failure. Note that this information
is not
BM> obtainable from link up/down trap of underlying interface
===========================================
This
sounds useful. I think that we can add this.
--Tom
------------------------------------------------------------------------
Mathematics is the supreme nostalgia of our time.