Subject: RE: [Fwd: [Fwd: [IPTEL] FW: I-DACTION:draft-ietf-iptel-trip-mib-0 0.txt]]

From: Kevin Lingle <[email-masked]>
Date: Fri, 31 Aug 2001 11:41:59 -0400

hi,

i have some comments on the trip mib.  i'm not a trip expert, so
consider most comments from a general snmp/mib perspective.

my comments are embedded below. 

this is only a partial review.  i made it up to tripRouteTable.
i'll send more comments early next week.

> TRIP-MIB DEFINITIONS ::= BEGIN
> 
> IMPORTS
>     MODULE-IDENTITY,
>     OBJECT-TYPE,
>     NOTIFICATION-TYPE,
>     Unsigned32,
>     Integer32,
>     Gauge32,
>     Counter32,
>     mib-2
>         FROM SNMPv2-SMI
> 
>     TEXTUAL-CONVENTION,
>     DateAndTime,
>     TruthValue,
>     RowStatus
>         FROM SNMPv2-TC
> 
>     OBJECT-GROUP,
>     MODULE-COMPLIANCE,
>     NOTIFICATION-GROUP
>         FROM SNMPv2-CONF
> 
>     InetAddressType,
>     InetAddress
>         FROM INET-ADDRESS-MIB
> 
>     applIndex
>         FROM NETWORK-SERVICES-MIB;
> 
> tripMIB MODULE-IDENTITY
>    LAST-UPDATED "200108200000Z"
>    ORGANIZATION "IETF IPTel Working Group"
>    CONTACT-INFO
>    "Co-editor  Jianping Jiang
>                SS8 Networks, Inc.
>     postal:    55 Commerce Valley Drive West, Suite #510
>                Thornhill, ON, L3T 7B9 Canada
>     email:     [email-masked]
>     phone:     +1 905 889 5900
> 
>     Co-editor  Dave Walker
>                SS8 Networks, Inc.
>     postal:    495 March Road, Suite #500
>                Ottawa, ON, K2K 3G1 Canada
>     email:     [email-masked]
>     phone:     +1 613 592 2100
> 
>     Co-editor  David Zinman
>                SS8 Networks, Inc.
>     postal:    495 March Road, Suite #500
>                Ottawa, ON, K2K 3G1 Canada
>     email:     [email-masked]
>     phone:     +1 613 592 2100
> 
>     IP Telephony (iptel) Working Group
>     ==================================
>     Chair:
>       Jonathan Rosenberg <[email-masked]>
> 
>     Transport Area Directors:
>       Scott Bradner <[email-masked]>
>       Allison Mankin <[email-masked]>
> 
>     Transport Area Advisor:
>       Scott Bradner <[email-masked]>

the above wg information is nice, but i think you should
list it outside the mib module (elsewhere in the draft doc)
since it is subject to change.

the list of co-authors is presumed to be more stable, so 
it's good to keep in the mib.

> 
>     Mailing List
>     ============
>     [email-masked]
> 
>     General information about the mailing list is at:
>       http://lists.bell-labs.com/mailman/listinfo/iptel/
> 
>     Archives:
>       http://lists.bell-labs.com/pipermail/iptel/"

same basic comment about this maillist section.  although
you should provide one "Email" contact other than the
authors.  the iptel list might be a good common list for
trip mib discussion or create your own trip-mib list.

for sip mib work, we used yahoogroups.com, but now as we
get into last call, the comments have been that ietf
frowns on such list servers and we are using the general
discussion list for sip.   

try and pick a list that will be available longterm and salient 
to trip or specific to the trip-mib.  that way it won't 
need to be changed repeatedly in the mib... a task that will
be harder once this is an rfc.

> 
> DESCRIPTION
>    "The MIB module describing Telephony Routing
>     over IP (TRIP)"

i think you should add some more description here
of what trip is and does.

> REVISION      "200102260000Z"
> DESCRIPTION
>     "The initial revision of this MIB module was
>     published as draft-zinman-trip-mib-00.txt."

remove this reference to a old draft.  it will be of
no use shortly and certainly no down the road in a 
year or two.

just make this revision "The initial version of this MIB..."

> ::= { mib-2 } -- to be assigned by IANA
> 
> --
> -- Textual Conventions
> --
> TripItad ::= TEXTUAL-CONVENTION
>     STATUS current
>     DESCRIPTION
>        "The values for identifying the IP Telephony
>        Administrative Domain."

add "(ITAD)" to formally introduce the acryonym.

>     SYNTAX Unsigned32 (0..4294967295)
> 
> TripId ::= TEXTUAL-CONVENTION
>     STATUS current
>     DESCRIPTION
>        "The range of legal values for a TRIP Identifier."

say some more about what a trip identifier is and is used for.

>     SYNTAX Unsigned32 (0..4294967295)
> 
> TripAppProtocol ::= TEXTUAL-CONVENTION
>     STATUS current
>     DESCRIPTION
>         "The application protocol used for communication with
>         TRIP LS's. Protocol defined in this document are:

what's an "LS" - expand acryonmym on first use.

>             tripSupProtSIP
>             tripSupProtH323Q931
>             tripSupProtH323RAS
>             tripSupProtH323ANNEXG.
> 
>         Users can add their own application protocol types by defining
>         a TripAppProtocol type in a private specification."
>     SYNTAX OBJECT IDENTIFIER
> 
> TripAddressFamily ::= TEXTUAL-CONVENTION
>     STATUS current
>     DESCRIPTION
>         "A type of address for a TRIP route. Address families defined
>         within this document are:

change "document" to "MIB module".

>             tripAddrFamilyDecimal
>             tripAddrFamilyPentadecimal
>             tripAddrFamilyE164.
> 
>        Users can add their own address family types by defining a
>        TripAddressFamily type in a private specification."
>     SYNTAX OBJECT IDENTIFIER
> 
>     tripMIBNotifications OBJECT IDENTIFIER ::= { tripMIB 0 }
>     tripMIBObjects       OBJECT IDENTIFIER ::= { tripMIB 1 }
>     tripMIBConformance   OBJECT IDENTIFIER ::= { tripMIB 2 }
>     tripMIBCompliance    OBJECT IDENTIFIER ::= { tripMIBConformance 1 }
>     tripMIBGroups        OBJECT IDENTIFIER ::= { tripMIBConformance 2 }
> 
> --
> -- Supported protocols
> --
>     tripSupportedProtocols OBJECT IDENTIFIER ::= { tripMIBObjects 100 }

i think it would be cleaner to define these (and the addr family) oids
directly off tripMIB rather than picking some arbitrarily high
oid space under tripMIBObjects.

eg,
tripSupportedProtocols OBJECT IDENTIFIER ::= { tripMIB 3 }
tripAddressFamilies    OBJECT IDENTIFIER ::= { tripMIB 4 }

> 
>     tripSupProtSIP
>         OBJECT IDENTIFIER ::= { tripSupportedProtocols 1 }
>     tripSupProtH323Q931
>         OBJECT IDENTIFIER ::= { tripSupportedProtocols 2 }
>     tripSupProtH323RAS
>         OBJECT IDENTIFIER ::= { tripSupportedProtocols 3 }
>     tripSupProtH323ANNEXG
>         OBJECT IDENTIFIER ::= { tripSupportedProtocols 4 }
> 
> --
> -- Address Families
> --
>     tripAddressFamilies    OBJECT IDENTIFIER ::= { tripMIBObjects 101 }
> 
>     tripAddrFamilyDecimal
>         OBJECT IDENTIFIER ::= { tripAddressFamilies 1 }
>     tripAddrFamilyPentadecimal
>         OBJECT IDENTIFIER ::= { tripAddressFamilies 2 }
>     tripAddrFamilyE164
>         OBJECT IDENTIFIER ::= { tripAddressFamilies 3 }
> 
> --
> -- tripCfgTable
> --
>    tripCfgTable OBJECT-TYPE
>        SYNTAX     SEQUENCE OF TripCfgEntry
>        MAX-ACCESS not-accessible
>        STATUS     current
>        DESCRIPTION
>            "This table contains the common configuration objects
>             applicable to all TRIP entities.  Each row represents
>             those objects for a particular TRIP LS present in
>             this system. The instances of TRIP LS's are
>             uniquely identified by applIndex."

the description here indicates that the info in this table is
wrt the trip ls present on this system.  the use of the work
"peer" in later descriptions makes me think the information
might be wrt a peer trip ls elsewhere in the network.
perhaps all trip entities are referred to as Peers and 
you are still actually talking about the local trip entity.
it's a bit confusing, can that be clarified?

>        ::= { tripMIBObjects 1 }
> 
>    tripCfgEntry OBJECT-TYPE
>        SYNTAX     TripCfgEntry
>        MAX-ACCESS not-accessible
>        STATUS     current
>        DESCRIPTION
>            "A row of common configuration."
>        INDEX { applIndex }
>        ::= { tripCfgTable 1 }
> 
>    TripCfgEntry ::=
>        SEQUENCE {
>            tripProtocolVersion               Integer32,
>            tripLocalItad                     TripItad,
>            tripIdentifier                    TripId,
>            tripOperStatus                    INTEGER,
>            tripAdminStatus                   INTEGER,
>            tripLocalAddrIAddrType            InetAddressType,
>            tripLocalAddr                     InetAddress,
>            tripLocalPort                     Integer32,
>            tripMinItadOriginationInterval    Integer32,
>            tripMinRouteAdvertisementInterval Integer32,
>            tripMaxPurgeTime                  Integer32,
>            tripDisableTime                   Integer32,
>            tripSendReceiveMode               INTEGER
>       }
> 
>    tripProtocolVersion    OBJECT-TYPE
>        SYNTAX     Integer32 (1..255)
>        MAX-ACCESS read-only
>        STATUS     current
>        DESCRIPTION
>            "This object will reflect the version of TRIP
>            supported by this system.  It follows the same
>            format as TRIP version information contained
>            in the TRIP messages generated by this TRIP entity
>            as dictated by draft-ietf-iptel-trip-07.txt."

try to avoid referencing I-D documents.  the information will
be stale long before these mib object definitions are obsolete.
if you must for clarity, i understand, but expect to have to
remove/revise it in later revisions of the mib and put it
in a REFERENCE clause rather than the DESCRIPTION.  the
DESCRIPTION here could just say "... as dictated by the
TRIP standard."

>        ::= { tripCfgEntry 1 }
> 
>    tripLocalItad   OBJECT-TYPE
>        SYNTAX      TripItad
>        MAX-ACCESS  read-write
>        STATUS      current
>        DESCRIPTION
>            "The Local Internet Telephony Administrative domain."
>        ::= { tripCfgEntry 2 }
> 
>    tripIdentifier   OBJECT-TYPE
>        SYNTAX      TripId
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The object that identifies this TRIP Client."
>        ::= { tripCfgEntry 3 }
> 
>    tripAdminStatus OBJECT-TYPE
>        SYNTAX      INTEGER {
>                        up(1),
>                        down(2)
>                    }
>        MAX-ACCESS  read-write
>        STATUS      current
>        DESCRIPTION
>            "The desired TRIP state.
> 
>             up(1)  : Set the application to normal operation.
> 
>             down(2): Set the application to a state where it will not
>                      process TRIP messages."

gee, i wish we could simplify our sip mib admin status down to
this ;)

>        ::= { tripCfgEntry 4 }
> 
>    tripOperStatus OBJECT-TYPE
>        SYNTAX      INTEGER {
>                        up(1),
>                        down(2)
>                    }
>        MAX-ACCESS  read-write

oper status should be read-only.

>        STATUS      current
>        DESCRIPTION
>            "The current operational state of the TRIP protocol.
> 
>             up(1)  : The application is operating normally, and
>                      is processing (receiving and possibly
>                      issuing) TRIP requests and responses.
> 
>             down(2): The application is currently unable to
>                      process TRIP messages due to a fault or if
>                      TRIP is in an initialization state.
> 
>            If tripAdminStatus is down(2) then tripOperStatus should be
>            down(2). If tripAdminStatus is changed to up(1) then
>            tripOperStatus should change to up(1) if there is no fault
>            that prevents the TRIP protocol from moving to the up(1)
>            state."

consider adding another oper state that the appl can be in if
there is a fault of some sort.

>        ::= { tripCfgEntry 5 }
> 
>    tripLocalAddrIAddrType OBJECT-TYPE
>        SYNTAX      InetAddressType
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The type of Inet Address of the tripLocalAddr."
>        REFERENCE
>            "RFC 2851, section 3."
>        ::= { tripCfgEntry 6 }
> 
>    tripLocalAddr OBJECT-TYPE
>        SYNTAX      InetAddress
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The IP address of this entry's TRIP peer connection."

here is one of the confusing spots...
is this an address of a peer trip entity? if so, then the use of 
"Local" in the obj descriptor seems strange.

>        REFERENCE
>            "RFC 2851, section 3."
>        ::= { tripCfgEntry 7 }
> 
>    tripLocalPort OBJECT-TYPE
>        SYNTAX      Integer32 (1..65535)
>        MAX-ACCESS  read-write
>        STATUS      current
>        DESCRIPTION
>            "The local port that this entry's TRIP peer is using."

again, i'm a bit confused.  the description talks about a trip peer
using this port, but the "Local" reference in the obj has me confused.

also, is this s tcp/udp port or an "interface" on the box?  port
can be an ambiguous term in the world of networking, so please
be more specific.

>        ::= { tripCfgEntry 8 }
> 
>    tripMinItadOriginationInterval OBJECT-TYPE
>        SYNTAX      Integer32 (1..2147483647)

any reason not to use the SNMPv2-TC 
TimeInterval ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "A period of time, measured in units of 0.01 seconds."
    SYNTAX       INTEGER (0..2147483647)
?

is the 0 value of TimeInterval a problem?

>        UNITS       "Seconds"

if TimeInterval was used, UNITS would either come out of the mib
or need to reflect "hundreths of a second".

>        MAX-ACCESS  read-write
>        STATUS      current
>        DESCRIPTION
>            "Amount of time that must elapse between advertisement
>            of update message that report changes within the
>            Location Server's own ITAD."
>        DEFVAL { 30 }

DEFVAL would go to 3000 if TimeInterval used.

>        ::= { tripCfgEntry 9 }
> 
>    tripMinRouteAdvertisementInterval OBJECT-TYPE
>        SYNTAX      Integer32 (1..2147483647)

same comment wrt TimeInterval TC.

>        UNITS       "Seconds"
>        MAX-ACCESS  read-write
>        STATUS      current
>        DESCRIPTION
>            "Specifies minimal interval between successive
>            advertisement to a particular destination from an LS."
>        DEFVAL { 30 }
>        ::= { tripCfgEntry 10 }
> 
>    tripMaxPurgeTime OBJECT-TYPE
>        SYNTAX      Integer32 (1..65535)

same comment wrt TimeInterval TC.

>        UNITS       "Seconds"
>        MAX-ACCESS  read-write
>        STATUS      current
>        DESCRIPTION
>            "Indicate the interval that the location server must
>            maintain routes marked as withdrawn in its database."
>        DEFVAL { 10 }
>        ::= { tripCfgEntry 11 }
> 
>    tripDisableTime OBJECT-TYPE
>        SYNTAX      Integer32 (1..65535)

same comment wrt TimeInterval TC.

>        UNITS       "Seconds"
>        MAX-ACCESS  read-write
>        STATUS      current
>        DESCRIPTION
>            "Indicate the interval that the TRIP module of the
>             location server must be disabled while routes
>             originated by this location server with high
>             sequence numbers can be removed."
>        DEFVAL { 180 }
>        ::= { tripCfgEntry 12 }
> 
>    tripSendReceiveMode OBJECT-TYPE
>        SYNTAX INTEGER {
>                sendReceive(1),
>                sendOnly(2),
>                receiveOnly(3)
>                }
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The operational mode of this peer."

the trip entity running on this system??

>        ::= { tripCfgEntry 13 }
> 
> --
> -- tripSupportedCommunityTable
> --
> 
>    tripSupportedCommunityTable   OBJECT-TYPE
>        SYNTAX      SEQUENCE OF TripSupportedCommunityEntry
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "The list of TRIP communities that this LS supports. A TRIP
>            community is a group of destinations that share some common
>            property.

property -> properties.

> 
>            The TRIP Communities attribute is used to group destinations
>            so that the routing decision can be based on the identity of
>            the group."
>        REFERENCE
>            "draft-ietf-iptel-trip-07.txt, J. Rosenberg et al,
>            section 5.9."

again be aware of the pitfalls of referencing drafts.  -09 is the
current
draft i think, so this info is essentially stale already.

>        ::= { tripMIBObjects 2 }
> 
>    tripSupportedCommunityEntry OBJECT-TYPE
>        SYNTAX      TripSupportedCommunityEntry
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "Entry containing information a community. A TRIP

say "... information about a community."

>            community is a group of destinations that share some
>            common property."

typically, what's that "common property" the destination share?

>        INDEX { applIndex, tripSupportedCommunityId }
>        ::= { tripSupportedCommunityTable 1 }
> 
>    TripSupportedCommunityEntry ::= SEQUENCE {
>        tripSupportedCommunityId         TripItad,
>        tripSupportedCommunityItad       TripItad,
>        tripSupportedCommunityRowStatus  RowStatus
>    }
> 
>    tripSupportedCommunityId OBJECT-TYPE
>        SYNTAX      TripItad
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "The identifier of the supported Community."
>        ::= { tripSupportedCommunityEntry 1 }
> 
>    tripSupportedCommunityItad OBJECT-TYPE
>        SYNTAX      TripItad
>        MAX-ACCESS  read-create
>        STATUS      current
>        DESCRIPTION
>            "The Itad of the community."

i'm not clear on what the differences is between the
tripSupportedCommunityId (index object) and this
tripSupportedCommunityItad??

>        ::= { tripSupportedCommunityEntry 2 }
> 
>    tripSupportedCommunityRowStatus OBJECT-TYPE
>        SYNTAX      RowStatus
>        MAX-ACCESS  read-create
>        STATUS      current
>        DESCRIPTION
>            "The row status of the entry. This object is required to
>            create or delete rows."

what is the criteria for row creation?  is the
tripSupportedCommunityItad
a required object to create a row - seems a default Itad wouldn't be
likely.  do you createAndGo or do you need to create the row and then
transition it to active w/ an additional set operation?  things like
that help implementors out tremeduously.

>        ::= { tripSupportedCommunityEntry 3 }
> 
> --
> -- TripPeerTable
> --
>    tripPeerTable   OBJECT-TYPE
>        SYNTAX      SEQUENCE OF TripPeerEntry
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "The TRIP peer table. This table contains one entry per
>            TRIP peer, and information about the connection with
>            the peer."

so now this table seems to be info related to trip entities no
in this system, which reinforces my issues of ambiguity in the
earlier tripCfgTable (references to local and peer).

>        ::= { tripMIBObjects 4 }
> 
>    tripPeerEntry OBJECT-TYPE
>        SYNTAX      TripPeerEntry
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "Entry containing information about the connection with
>            a TRIP peer."
>        INDEX { applIndex,
>                tripPeerRemoteAddrInetType,
>                tripPeerRemoteAddr }

why use the peers address objects for indexing instead of
just tripPeerIdentifier?  isn't tripPeerIdentifier unique?

>          ::= {tripPeerTable 1}
> 
>    TripPeerEntry ::= SEQUENCE {
>        tripPeerRemoteAddrInetType            InetAddressType,
>        tripPeerRemoteAddr                    InetAddress,
>        tripPeerIdentifier                    TripId,
>        tripPeerState                         INTEGER,
>        tripPeerAdminStatus                   INTEGER,
>        tripPeerNegotiatedVersion             Integer32,
>        tripPeerSendReceiveMode               INTEGER,
>        tripPeerRemotePort                    Integer32,
>        tripPeerRemoteItad                    TripItad,
>        tripPeerConnectRetryInterval          Integer32,
>        tripPeerMaxRetryInterval              Integer32,
>        tripPeerHoldTime                      Integer32,
>        tripPeerKeepAlive                     Integer32,
>        tripPeerHoldTimeConfigured            Integer32,
>        tripPeerKeepAliveConfigured           Integer32,
>        tripPeerMinItadOriginationInterval    Integer32,
>        tripPeerMinRouteAdvertisementInterval Integer32,
>        tripPeerMaxPurgeTime                  Integer32,
>        tripPeerDisableTime                   Integer32,
>        tripPeerRowStatus                     RowStatus
>    }
> 
>    tripPeerRemoteAddrInetType OBJECT-TYPE
>        SYNTAX      InetAddressType
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "The type of Inet Address of the tripPeerRemoteAddr."
>        REFERENCE
>            "RFC 2851, section 3."
>        ::= { tripPeerEntry 1 }
> 
>    tripPeerRemoteAddr OBJECT-TYPE
>        SYNTAX      InetAddress (SIZE(0..125))
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "The remote IP address of this entry's TRIP peer. The
>            size value of 125 has been assigned due to the sub
>            identifier of object types length limitation as
>            defined in SMIv2."

i don't understand this last sentence.   is it something about
InetAddress??  was the same not relevant for tripLocalAddr??

>        REFERENCE
>            "RFC 2851, section 3."
>        ::= { tripPeerEntry 2 }
> 
>    tripPeerIdentifier OBJECT-TYPE
>        SYNTAX      TripId
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "TRIP identifier of this entry's TRIP peer."

what does it mean to be "this entry's TRIP peer"??
the peer is not a peer of this mib table entry but
rather a peer of the local TRIP LS, right?

>        ::= { tripPeerEntry 3 }
> 
>    tripPeerState OBJECT-TYPE
>        SYNTAX      INTEGER {
>                        idle(1),
>                        connect(2),
>                        active(3),
>                        openSent(4),
>                        openConfirm(5),
>                        established(6)
>                    }
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "TRIP Peer Finite State Machine state.
> 
>            idle(1)       : The initial state. Local LS refuses all
>                            incoming connections. No resources are
>                            allocated to the peer.
> 
>            connect(2)    : Local LS waiting for a transport protocol
>                            connection to be completed to the peer, and
>                            is listening for inbound transport
>                            connections from the peer.
> 
>            active(3)     : LS is listening for an inbound connection
>                            from the peer, but is not in the process of
>                            initiating a connection to the peer.
> 
>            openSent(4)   : LS has sent an OPEN message to its peer and
>                            is waiting for an OPEN message from its
>                            peer.
> 
>            openConfirm(5): LS has sent an OPEN to its peer, received an
>                            OPEN from its peer, and sent a KEEPALIVE in
>                            response to the OPEN. The LS is now waiting
>                            for a KEEPALIVE or NOTIFICATION message in
>                            response to its OPEN.
> 
>            established(6): LS can exchange UPDATE, NOTIFICATION,and
>                            KEEPALIVE messages with its peer."
>        ::= { tripPeerEntry 4 }
> 
>    tripPeerAdminStatus OBJECT-TYPE
>        SYNTAX      INTEGER {
>                        up(1),
>                        down(2)
>                    }
>        MAX-ACCESS  read-create
>        STATUS      current
>        DESCRIPTION
>            "The desired TRIP connection state."

how might setting this to "up" affect  tripPeerState?
would tripPeerState connect->openSent->openConfirm->established?
if there is any relationship, you may want to describe it.
i may be offbase in presuming there is some relationship.

>        ::= { tripPeerEntry 5 }
> 
>    tripPeerNegotiatedVersion OBJECT-TYPE
>        SYNTAX      Integer32 (1..255)
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The negotiated version of TRIP running between this
>            local entity and this peer."
>        ::= { tripPeerEntry 6 }

this is the second object reflecting trip protocol version.
consider creating a TC TripProtocolVersion.

> 
>    tripPeerSendReceiveMode OBJECT-TYPE
>        SYNTAX      INTEGER {
>                sendReceive(1),
>                sendOnly(2),
>                receiveOnly(3)
>                }
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The operational mode of this peer."

this is the same syntax as tripSendRecieveMode.
again, a good candidate for making this syntax a TC
TripSendRecvMode.

>        ::= { tripPeerEntry 7 }
> 
>    tripPeerRemotePort OBJECT-TYPE
>        SYNTAX      Integer32 (1..65535)
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The remote port for the TCP connection between the
>            TRIP peers."

here you are explicit about this being a tcp port.
does that answer my question regarding tripLocalPort?

>        ::= { tripPeerEntry 8 }
> 
>    tripPeerRemoteItad OBJECT-TYPE
>        SYNTAX      TripItad
>        MAX-ACCESS  read-create
>        STATUS      current
>        DESCRIPTION
>            "The Internet Telephony Administrative domain of
>            this peer."
>        ::= { tripPeerEntry 9 }
> 
>    tripPeerConnectRetryInterval OBJECT-TYPE
>        SYNTAX      Integer32 (0..2147483647)

same comment as before on possibly using SNMPv2-TC TimeInterval.

>        UNITS       "Seconds"
>        MAX-ACCESS  read-create
>        STATUS      current
>        DESCRIPTION
>            "Specifies the initial amount of time that will elapse
>            between connection retry. This value should double
>            after each attempt up to the value of
>            tripPeerMaxRetryInterval."

therefore, the value of this object has a dependency on the
value of tripPeerMaxRetryInterval.  this objects value must
always be <= tripPeerMaxRetryInterval.  attempts to set it
higher than the max retry should not be allowed, right?

>        DEFVAL      { 120 }
>        ::= { tripPeerEntry 10 }
> 
>    tripPeerMaxRetryInterval OBJECT-TYPE
>        SYNTAX      Integer32 (0..2147483647)

same comment as before on possibly using SNMPv2-TC TimeInterval

>        UNITS       "Seconds"
>        MAX-ACCESS  read-create
>        STATUS      current
>        DESCRIPTION
>            "Specifies the maximum amount of time that will elapse
>            between connection retries."

somehow refer back to the relationship between this object and 
tripPeerConnectRetryInterval.  what if there's an attempt to 
set this object to be less than tripPeerConnectRetryInterval?
it should fail, right?

>        DEFVAL      { 360 }
>        ::= { tripPeerEntry 11 }
> 
>    tripPeerHoldTime OBJECT-TYPE
>        SYNTAX      Integer32 (1..2147483647)

same comment as before on possibly using SNMPv2-TC TimeInterval

>        UNITS       "Seconds"
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The time interval in seconds for the hold timer that
>            is established with the peer. The value of this object
>            is the smaller of the values in
>            tripPeerHoldTimeConfigured and the hold time received
>            in the open message."
>        ::= { tripPeerEntry 12 }
> 
>    tripPeerKeepAlive OBJECT-TYPE
>        SYNTAX      Integer32 (1..2147483647)

same comment as before on possibly using SNMPv2-TC TimeInterval

>        UNITS       "Seconds"
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "Specifies the amount of time that must elapse between
>            keep alive messages."
>        ::= { tripPeerEntry 13 }
> 
>    tripPeerHoldTimeConfigured OBJECT-TYPE
>        SYNTAX      Integer32 (0 | 3..65535)

same comment as before on possibly using SNMPv2-TC TimeInterval

>        UNITS       "Seconds"
>        MAX-ACCESS  read-create
>        STATUS      current
>        DESCRIPTION
>            "Specifies the maximum time that may elapse between the
>            receipt of successive keepalive or update message."
>        DEFVAL { 240 }
>        ::= { tripPeerEntry 14 }
> 
>    tripPeerKeepAliveConfigured OBJECT-TYPE
>        SYNTAX      Integer32 (1..2147483647)

same comment as before on possibly using SNMPv2-TC TimeInterval

>        UNITS       "Seconds"
>        MAX-ACCESS  read-create
>        STATUS      current
>        DESCRIPTION
>            "Specifies the amount of time that must elapse between
>            keep alive messages."
>        DEFVAL { 30 }
>        ::= { tripPeerEntry 15 }
> 
>    tripPeerMinItadOriginationInterval OBJECT-TYPE
>        SYNTAX      Integer32 (0..2147483647)

same comment as before on possibly using SNMPv2-TC TimeInterval

>        UNITS       "Seconds"
>        MAX-ACCESS  read-create
>        STATUS      current
>        DESCRIPTION
>            "Amount of time that must elapse between advertisement
>            of update message that report changes within the Location

message -> messages

>            Server's own ITAD."
>        DEFVAL { 30 }
>        ::= { tripPeerEntry 16 }
> 
>    tripPeerMinRouteAdvertisementInterval OBJECT-TYPE
>        SYNTAX      Integer32 (1..2147483647)

same comment as before on possibly using SNMPv2-TC TimeInterval

>        UNITS       "Seconds"
>        MAX-ACCESS  read-create
>        STATUS      current
>        DESCRIPTION
>            "Specifies minimal interval between successive
>            advertisement to a particular destination from an LS."
>        DEFVAL { 30 }
>        ::= { tripPeerEntry 17 }
> 
>    tripPeerMaxPurgeTime OBJECT-TYPE
>        SYNTAX      Integer32 (1..65535)

same comment as before on possibly using SNMPv2-TC TimeInterval

>        UNITS       "Seconds"
>        MAX-ACCESS  read-create
>        STATUS      current
>        DESCRIPTION
>            "Indicate the interval that the location server must

either say "location server" or "LS" throughout the mib, but don't
keep switching back and forth.  i've noticed this happening.

>            maintain routes marked as withdrawn in its database."
>        DEFVAL { 10 }
>        ::= { tripPeerEntry 18 }
> 
>    tripPeerDisableTime OBJECT-TYPE
>        SYNTAX      Integer32 (1..65535)

same comment as before on possibly using SNMPv2-TC TimeInterval

>        UNITS       "Seconds"
>        MAX-ACCESS  read-create
>        STATUS      current
>        DESCRIPTION
>            "Indicate the interval that the TRIP module of the

the peer LS presumably?

>            location server must be disabled while routes
>            originated by this location server with high sequence

is "this" referring to the local ls or the peer ls.

>            numbers can be removed."
>        DEFVAL { 180 }
>        ::= { tripPeerEntry 19 }
> 
>    tripPeerRowStatus OBJECT-TYPE
>        SYNTAX      RowStatus
>        MAX-ACCESS  read-create
>        STATUS      current
>        DESCRIPTION
>            "This object is used to create and delete rows in the
>            tripPeerTable."

again, row creation criteria should be added to aid implementors
and nm appl developers.

>        ::= { tripPeerEntry 20 }
> 
> --
> --     tripPeerRouteTypeTable
> --
>     tripPeerRouteTypeTable OBJECT-TYPE
>       SYNTAX      SEQUENCE OF TripPeerRouteTypeEntry
>       MAX-ACCESS  not-accessible
>       STATUS      current
>       DESCRIPTION
>           "The TRIP peer Route Type table. This table contains one
>           entry per supported protocol - address family pair."
>       ::= { tripMIBObjects 5 }
> 
>     tripPeerRouteTypeEntry OBJECT-TYPE
>       SYNTAX      TripPeerRouteTypeEntry
>       MAX-ACCESS  not-accessible
>       STATUS      current
>       DESCRIPTION
>           "Entry containing information about the route type that
>           the TRIP peer supports."
>       INDEX { applIndex,
>               tripPeerRemoteAddrInetType,
>               tripPeerRemoteAddr,

if tripPeerIdentifier is viable, use it instead of address objects.

>               tripPeerRtTypeProtocolId,
>               tripPeerRtTypeAddrFamilyId }

why do these need to be part of the index??
they are oids themselves.  your index into this
table, just to retrieve the value of the RowStatus
object could be very large and cumbersome.

why aren't the protoclid and addrfamily oids the
data retrieved from this table as object values 
rather than index components?

>         ::= { tripPeerRouteTypeTable 1 }
> 
>     TripPeerRouteTypeEntry ::= SEQUENCE {
>         tripPeerRtTypeProtocolId         TripAppProtocol,
>         tripPeerRtTypeAddrFamilyId       TripAddressFamily,
>         tripPeerRtTypeRowStatus          RowStatus
>     }
> 
>     tripPeerRtTypeProtocolId OBJECT-TYPE
>       SYNTAX      TripAppProtocol
>       MAX-ACCESS  not-accessible
>       STATUS      current
>       DESCRIPTION
>           "The object identifier of a protocol that this peer is
>           using."
>       ::= { tripPeerRouteTypeEntry 1 }
> 
>     tripPeerRtTypeAddrFamilyId OBJECT-TYPE
>       SYNTAX      TripAddressFamily
>       MAX-ACCESS  not-accessible
>       STATUS      current
>       DESCRIPTION
>           "The object identifier of an address family that this peer
>           belongs to."
>       ::= { tripPeerRouteTypeEntry 2 }
> 
>    tripPeerRtTypeRowStatus OBJECT-TYPE
>        SYNTAX      RowStatus
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "This object is used to instantiate a row in this table.
>            The normal row status values of createAndGo(4),
>            createAndWait(5) and delete(6) have no application in this
>            table."

good, some beginnings of the row creation criteria that i have been
mentioning.  now why not applicable here?   if i can't
do createAndGo or createAndWait then how do i create a row in this
table?  are these rows instantiated via trip and not by a nms??
i'm confused.

>        ::= { tripPeerRouteTypeEntry 3 }
> 
> --
> -- TripPeerStatsTable
> --
>    tripPeerStatsTable   OBJECT-TYPE
>        SYNTAX      SEQUENCE OF TripPeerStatsEntry
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "The TRIP peer stats table. This table contains one entry
>            per TRIP peer, and statistics related to the connection
>            with the peer."
>        ::= { tripMIBObjects 6 }
> 
>    tripPeerStatsEntry OBJECT-TYPE
>        SYNTAX      TripPeerStatsEntry
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "Entry containing information about the connection with
>            a TRIP peer."
>        AUGMENTS { tripPeerEntry }
>          ::= { tripPeerStatsTable 1 }
> 
>    TripPeerStatsEntry ::= SEQUENCE {
>        tripPeerInUpdates                   Counter32,
>        tripPeerOutUpdates                  Counter32,
>        tripPeerInTotalMessages             Counter32,
>        tripPeerOutTotalMessages            Counter32,
>        tripPeerFsmEstablishedTransitions   Counter32,
>        tripPeerFsmEstablishedTime          DateAndTime,
>        tripPeerInUpdateElapsedTime         Gauge32
>    }
> 
>     tripPeerInUpdates OBJECT-TYPE
>        SYNTAX      Counter32
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The number of TRIP update messages received from this
>            peer since the last restart of this location server."
>        ::= { tripPeerStatsEntry 1 }
> 
>    tripPeerOutUpdates OBJECT-TYPE
>        SYNTAX      Counter32
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The number of TRIP update messages transmitted to

transmitted -> sent.... consistent w/ other parts of the mib
using send/receive terminology.  i know.... a real nit! ;)

>            this peer since the last restart of this location
>            server."
>        ::= { tripPeerStatsEntry 2 }
> 
>    tripPeerInTotalMessages OBJECT-TYPE
>        SYNTAX      Counter32
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The total number of TRIP messages received to the

to -> from

>            remote peer on this connection since the last restart
>            of this location server."
>        ::= { tripPeerStatsEntry 3 }
> 
>    tripPeerOutTotalMessages OBJECT-TYPE
>        SYNTAX      Counter32
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The total number of outgoing TRIP messages sent since

for consistency sake... say "...sent to the remote peer since...."

>            the last restart of this location server."
>        ::= { tripPeerStatsEntry 4 }
> 
>    tripPeerFsmEstablishedTransitions OBJECT-TYPE
>        SYNTAX      Counter32
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The number of times the TRIP peer has transitioned into
>            the established state since the last restart of this
>            location server."
>        ::= { tripPeerStatsEntry 5 }
> 
>    tripPeerFsmEstablishedTime OBJECT-TYPE
>        SYNTAX      DateAndTime
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "Indicates how long in seconds this peer has been in the
>            established state."

description doesn't match up w/ the syntax.  DateAndTime is more
than just seconds.

>        ::= { tripPeerStatsEntry 6 }
> 
>    tripPeerInUpdateElapsedTime OBJECT-TYPE
>        SYNTAX      Gauge32
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "Elapsed time in seconds since the last TRIP update
>            message was received from the peer."

not sure why Gauge32 is used here.  again, why not TimeInterval.
description would have to not refer to seconds.

i have to stop here.  i will send more comments on the remainder
of the mib early next week.

kevin
>        ::= { tripPeerStatsEntry 7 }
> 
> -- TRIP Received Route Table.  This table contains
> -- all routes from all sources. Each entry consists
> -- of a route and its associated path attributes.
> 
>    tripRouteTable OBJECT-TYPE
>        SYNTAX      SEQUENCE OF TripRouteEntry
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "The TRIP route table containing information about
>            reachable routes that are to be added to service by the
>            receiving LS."
>        ::= { tripMIBObjects 7 }
> 
>    tripRouteEntry OBJECT-TYPE
>        SYNTAX      TripRouteEntry
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "Information about a route to a called destination."
>        INDEX { applIndex,
>                tripRouteAppProtocol,
>                tripRouteAddressFamily,
>                tripRouteAddress,
>                tripRoutePeer
>                }
>        ::= { tripRouteTable 1 }
> 
>    TripRouteEntry ::= SEQUENCE {
>                tripRouteAppProtocol                 TripAppProtocol,
>                tripRouteAddressFamily               TripAddressFamily,
>                tripRouteAddress                     OCTET STRING,
>                tripRoutePeer                        TripId,
>                tripRouteAddressSequenceNumber       Integer32,
>                tripRouteAddressOriginatorId         TripItad,
>                tripRouteNextHopServerIAddrType      InetAddressType,
>                tripRouteNextHopServer               InetAddress,
>                tripRouteNextHopServerPort           Integer32,
>                tripRouteNextHopServerItad           TripItad,
>                tripRouteMultiExitDisc               Unsigned32,
>                tripRouteLocalPref                   Unsigned32,
>                tripRouteAdvertisementPath           OCTET STRING,
>                tripRouteRoutedPath                  OCTET STRING,
>                tripRouteAtomicAggregate             TruthValue,
>                tripRouteBest                        TruthValue,
>                tripRouteUnknown                     OCTET STRING,
>                tripRouteWithdrawn                   TruthValue,
>                tripRouteConverted                   TruthValue
>            }
> 
>    tripRouteAppProtocol OBJECT-TYPE
>        SYNTAX      TripAppProtocol
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "The protocol for which this routing table is
>            maintained."
>        ::= { tripRouteEntry 1 }
> 
>    tripRouteAddressFamily OBJECT-TYPE
>        SYNTAX      TripAddressFamily
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "Specifies the type of address for the destination
>            route."
>        ::= { tripRouteEntry 2 }
> 
>    tripRouteAddress OBJECT-TYPE
>        SYNTAX      OCTET STRING (SIZE(1..32))
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "This is an address (prefix) of the family type given by
>            Address Family of the destination."
>        ::= { tripRouteEntry 3 }
> 
>    tripRoutePeer OBJECT-TYPE
>        SYNTAX      TripId
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "The identifier of the peer where the route information
>            was learned."
>        ::= { tripRouteEntry 4 }
> 
>    tripRouteAddressSequenceNumber OBJECT-TYPE
>        SYNTAX      Integer32 (1..2147483647)
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "Indicates the version of the destination route
>            originated by the location server identified by
>            tripRouteAddressOriginatorId intra-domain
>            attribute."
>        ::= { tripRouteEntry 5 }
> 
>    tripRouteAddressOriginatorId OBJECT-TYPE
>        SYNTAX      TripItad
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "This is an intra-domain attribute indicating the
>            internal location server that originated the route
>            into the ITAD."
>        ::= { tripRouteEntry 6 }
> 
>    tripRouteNextHopServerIAddrType OBJECT-TYPE
>        SYNTAX      InetAddressType
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The type of Inet Address of the tripRouteNextHopServer."
>        REFERENCE
>            "RFC 2851, section 3."
>        ::= { tripRouteEntry 7 }
> 
>    tripRouteNextHopServer OBJECT-TYPE
>        SYNTAX      InetAddress
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "Indicates the next hop that messages of a given
>            protocol destined for tripRouteAddress should
>            be sent to."
>        ::= { tripRouteEntry 8 }
> 
>    tripRouteNextHopServerPort OBJECT-TYPE
>        SYNTAX      Integer32 (1..2147483647)
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The port of the next hop server that this route
>            will use."
>        ::= { tripRouteEntry 9 }
> 
>    tripRouteNextHopServerItad OBJECT-TYPE
>        SYNTAX      TripItad
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "Indicates the domain of the next hop."
>        ::= { tripRouteEntry 10 }
> 
>    tripRouteMultiExitDisc OBJECT-TYPE
>        SYNTAX      Unsigned32 (0..4294967295)
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "When two ITADs are connected by more than one set of peers,
>            it is used to descriminate between multiple exit points to
>            an adjacent ITAD."
>        ::= { tripRouteEntry 11 }
> 
>    tripRouteLocalPref OBJECT-TYPE
>        SYNTAX      Unsigned32 (0..4294967295)
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "Indicated the local LS's degree of preference for an
>            advertised route destination."
>        ::= { tripRouteEntry 12 }
> 
>    tripRouteAdvertisementPath OBJECT-TYPE
>        SYNTAX      OCTET STRING (SIZE(4..252))
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "Identifies the ITADs through wich routing information
>            carried in an advertisement has passed.
> 
>            This object is probably best represented as sequence of
>            integer. For SMI compatibility, though, it is represented
>            as OCTET STRING. This object is a sequence of ITADs in
>            network byte order."
>        ::= { tripRouteEntry 13 }
> 
>    tripRouteRoutedPath OBJECT-TYPE
>        SYNTAX      OCTET STRING (SIZE(4..252))
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "Identifies the ITADs through which messages sent using
>            this route would pass. These are as subset of
>            tripRouteAdvertisementPath.
> 
>            This object is probably best represented as sequence of
>            integer. For SMI compatibility, though, it is represented
>            as OCTET STRING.  This object is a sequence of ITADs in
>            network byte order."
>        ::= { tripRouteEntry 14 }
> 
>    tripRouteAtomicAggregate OBJECT-TYPE
>        SYNTAX      TruthValue
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "Indicates that a route may traverse domains not listed in
>            tripRouteRoutedPath. If an LS selects the less specific
>            route from a set of overlapping routes, then this value
>            returns TRUE."
>        ::= { tripRouteEntry 15 }
> 
>    tripRouteBest OBJECT-TYPE
>        SYNTAX      TruthValue
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "An indication of whether this route was chosen as the
>            best TRIP route."
>        ::= { tripRouteEntry 16 }
> 
>    tripRouteUnknown OBJECT-TYPE
>        SYNTAX      OCTET STRING (SIZE(0..255))
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "One or more attributes not understood by this location
>            server."
>        ::= { tripRouteEntry 17 }
> 
>    tripRouteWithdrawn OBJECT-TYPE
>        SYNTAX      TruthValue
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "Indicates if this route is to be removed from service by
>            the receiving LS."
>        ::= { tripRouteEntry 18 }
> 
>    tripRouteConverted OBJECT-TYPE
>        SYNTAX TruthValue
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "Indicates if this route has been converted to a
>            different application protocol than it had originally."
>        ::= { tripRouteEntry 19 }
> 
> --
> -- TRIP Received Route CommunityTable.
> --
> 
>    tripRouteCommunityTable OBJECT-TYPE
>        SYNTAX      SEQUENCE OF TripRouteCommunityEntry
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "A table containing a list of TRIP communities associated
>            with a route."
>        REFERENCE
>            "draft-ietf-iptel-trip-07.txt, J. Rosenberg et al,
>            section 5.9."
>        ::= { tripMIBObjects 8 }
> 
>    tripRouteCommunityEntry OBJECT-TYPE
>        SYNTAX      TripRouteCommunityEntry
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "Information about communities associated with a route. An
>            entry with a tripRouteAddress of 00 and a tripRoutePeer of
>            0 refers to the local LS."
>        INDEX { applIndex,
>                tripRouteAppProtocol,
>                tripRouteAddressFamily,
>                tripRouteAddress,
>                tripRoutePeer,
>                tripRouteCommunityId
>              }
>        ::= { tripRouteCommunityTable 1 }
> 
>    TripRouteCommunityEntry ::= SEQUENCE {
>         tripRouteCommunityId    TripItad,
>         tripRouteCommunityItad  TripItad
>         }
> 
>    tripRouteCommunityId OBJECT-TYPE
>        SYNTAX      TripItad
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "The community identifier."
>        ::= { tripRouteCommunityEntry 1 }
> 
>    tripRouteCommunityItad OBJECT-TYPE
>        SYNTAX      TripItad
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "The ITAD associated with this community."
>        ::= { tripRouteCommunityEntry 2 }
> 
> --
> -- tripItadTopologyTable
> --
> 
>    tripItadTopologyTable OBJECT-TYPE
>        SYNTAX      SEQUENCE OF TripItadTopologyEntry
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "The sequence of link connections between peers within
>            an ITAD."
>        ::= { tripMIBObjects 9 }
> 
>    tripItadTopologyEntry OBJECT-TYPE
>        SYNTAX      TripItadTopologyEntry
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "Information about a peer of the location server identified
>            by tripOriginatorIdentifier."
>        INDEX { applIndex, tripItadTopologyOrigId }
>        ::= { tripItadTopologyTable 1 }
> 
>    TripItadTopologyEntry ::= SEQUENCE {
>                tripItadTopologyOrigId    TripItad,
>                tripItadTopologySeqNum    Integer32
>            }
> 
>    tripItadTopologyOrigId OBJECT-TYPE
>        SYNTAX      TripItad
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "Indicates the internal location server that originated
>            the ITAD topology information into the ITAD."
>        ::= { tripItadTopologyEntry 1 }
> 
>    tripItadTopologySeqNum OBJECT-TYPE
>        SYNTAX      Integer32 (1..2147483647)
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "Indicates the version of the ITAD topology
>            originated by the location server identified by
>            tripOriginatorIdentifier."
>        ::= { tripItadTopologyEntry 2 }
> 
> --
> -- tripItadTopologyIdTable
> --
> 
>    tripItadTopologyIdTable OBJECT-TYPE
>        SYNTAX      SEQUENCE OF TripItadTopologyIdEntry
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "The list of other location servers within the ITAD
>            domain that the location server identified by
>            tripOriginatorIdentifier is currently peering."
>        ::= { tripMIBObjects 10 }
> 
>    tripItadTopologyIdEntry OBJECT-TYPE
>        SYNTAX      TripItadTopologyIdEntry
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "Information about a peer to the location server
>            identified by tripOriginatorIdentifier."
>        INDEX { applIndex,
>                tripItadTopologyOrigId,
>                tripItadTopologyId }
>        ::= { tripItadTopologyIdTable 1 }
> 
>    TripItadTopologyIdEntry ::= SEQUENCE {
>                tripItadTopologyId            TripId,
>                tripItadTopologyIdRowStatus   RowStatus
>            }
> 
>    tripItadTopologyId OBJECT-TYPE
>        SYNTAX      TripId
>        MAX-ACCESS  not-accessible
>        STATUS      current
>        DESCRIPTION
>            "The index into this entry. Indicates the other location
>            servers within the ITAD domain that this location server
>            identified by tripOriginatorIdentifier is currently
>            peering."
>        ::= { tripItadTopologyIdEntry 1 }
> 
>    tripItadTopologyIdRowStatus OBJECT-TYPE
>        SYNTAX      RowStatus
>        MAX-ACCESS  read-only
>        STATUS      current
>        DESCRIPTION
>            "This object is used to instantiate a row in this table.
>            The normal row status values of createAndGo(4),
>            createAndWait(5) and delete(6) have no application in this
>            table."
>        ::= { tripItadTopologyIdEntry 2 }
> 
> --
> -- Notification objects
> --
> 
>    tripNotifApplIndex    OBJECT-TYPE
>        SYNTAX     INTEGER (1..2147483647)
>        MAX-ACCESS accessible-for-notify
>        STATUS     current
>        DESCRIPTION
>             "This object contains the applIndex as described
>             in RFC 2788. It is used to bind this notification
>             with a specific instance of TRIP entity."
>        ::= { tripMIBNotifications 1 }
> 
>    tripNotifPeerAddrInetType OBJECT-TYPE
>        SYNTAX      InetAddressType
>        MAX-ACCESS  accessible-for-notify
>        STATUS      current
>        DESCRIPTION
>            "The type of Inet Address of the tripNotifPeerAddr."
>        REFERENCE
>            "RFC 2851, section 3."
>        ::= { tripMIBNotifications 2 }
> 
>    tripNotifPeerAddr OBJECT-TYPE
>        SYNTAX      InetAddress (SIZE(0..125))
>        MAX-ACCESS  accessible-for-notify
>        STATUS      current
>        DESCRIPTION
>            "The remote IP address of this entry's TRIP peer. The
>            size value of 125 has been assigned due to the sub
>            identifier of object types length limitation as
>            defined in SMIv2."
>        REFERENCE
>            "RFC 2851, section 3."
>        ::= { tripMIBNotifications 3 }
> 
>    tripNotifPeerErrCode OBJECT-TYPE
>        SYNTAX      INTEGER {
>                        messageHeader(1),
>                        openMessage(2),
>                        updateMessage(3),
>                        holdTimerExpired(4),
>                        finiteStateMachine(5),
>                        cease(6),
>                        tripNotification(7)
>                    }
>        MAX-ACCESS  accessible-for-notify
>        STATUS      current
>        DESCRIPTION
>            "Notification message of TRIP error. The meaning of this
>            value is applicable to the following functions:
> 
>            1 - message header.
>                All errors detected while processing the TRIP message
>                header.
>            2 - open message.
>                All errors detected while processing the OPEN message.
>            3 - update message.
>                All errors detected while processing the UPDATE message.
>            4 - hold timer expired.
>                A notification generated when the hold timer expires.
>            5 - finite state machine.
>                All errors detected by the TRIP Finite State Machine.
>            6 - cease.
>                Any fatal error condition that the rest of the values
>                do not cover.
>            7 - trip notification message.
>                Any error encountered while sending a notification
>                message."
>       ::= { tripMIBNotifications 4 }
> 
>    tripNotifPeerErrSubcode OBJECT-TYPE
>        SYNTAX      Integer32 (1..7)
>        MAX-ACCESS  accessible-for-notify
>        STATUS      current
>        DESCRIPTION
>            "The sub error code associated with error code. The meaning
>            of this value is dependent on the value of
>            tripNotifPeerErrCode.
> 
>            Message Header (1) Error Subcodes:
>            1 - Bad Message Length.
>            2 - Bad Message Type.
> 
>            OPEN Message (2) Error Subcodes:
>            1 - Unsupported Version Number.
>            2 - Bad Peer ITAD.
>            3 - Bad TRIP Identifier.
>            4 - Unsupported Optional Parameter.
>            5 - Unacceptable Hold Time.
>            6 - Unsupported Capability.
>            7 - Capability Mismatch.
> 
>            UPDATE Message (3) Error Subcodes:
>            1 - Malformed Attribute List.
>            2 - Unrecognized Well-known Attribute.
>            3 - Missing Well-known Mandatory Attribute.
>            4 - Attribute Flags Error.
>            5 - Attribute Length Error.
>            6 - Invalid Attribute."
>       ::= { tripMIBNotifications 5 }
> 
> --
> -- Notifications
> --
>    tripEstablished NOTIFICATION-TYPE
>        STATUS  current
>        DESCRIPTION
>            "The TRIP Established event is generated when the TRIP
>            FSM enters the ESTABLISHED state."
>        ::= { tripMIBNotifications 6 }
> 
>    tripFSM NOTIFICATION-TYPE
>        OBJECTS { tripNotifApplIndex,
>                  tripNotifPeerAddrInetType,
>                  tripNotifPeerAddr,
>                  tripNotifPeerErrCode,
>                  tripNotifPeerErrSubcode,
>                  tripPeerState
>                }
>        STATUS  current
>        DESCRIPTION
>            "The trip FSM Event is generated when any error is detected
>            by the TRIP Finite State Machine."
>        ::= { tripMIBNotifications 7 }
> 
>    tripOpenMessageError NOTIFICATION-TYPE
>        OBJECTS { tripNotifApplIndex,
>                  tripNotifPeerAddrInetType,
>                  tripNotifPeerAddr,
>                  tripNotifPeerErrCode,
>                  tripNotifPeerErrSubcode,
>                  tripPeerState
>                }
>        STATUS  current
>        DESCRIPTION
>            "Errors detected while processing the OPEN message."
>        ::= { tripMIBNotifications 8 }
> 
>    tripUpdateMessageError NOTIFICATION-TYPE
>        OBJECTS { tripNotifApplIndex,
>                  tripNotifPeerAddrInetType,
>                  tripNotifPeerAddr,
>                  tripNotifPeerErrCode,
>                  tripNotifPeerErrSubcode,
>                  tripPeerState
>                }
>        STATUS  current
>        DESCRIPTION
>            "Errors detected while processing the UPDATE message."
>        ::= { tripMIBNotifications 9 }
> 
>    tripHoldTimerExpired NOTIFICATION-TYPE
>        OBJECTS { tripNotifApplIndex,
>                  tripNotifPeerAddrInetType,
>                  tripNotifPeerAddr,
>                  tripNotifPeerErrCode,
>                  tripNotifPeerErrSubcode,
>                  tripPeerState
>                }
>        STATUS  current
>        DESCRIPTION
>            "The system does not receive successive messages within the
>            period specified by the negotiated Hold Time."
>        ::= { tripMIBNotifications 10 }
> 
>    tripConnectionCollision NOTIFICATION-TYPE
>        OBJECTS { tripNotifApplIndex }
>        STATUS  current
>        DESCRIPTION
>            "A pair of LSs tried to simultaneously to establish a
>            transport connection to each other."
>        ::= { tripMIBNotifications 11 }
> 
>    tripNotificationErr NOTIFICATION-TYPE
>        OBJECTS { tripNotifApplIndex }
>        STATUS  current
>        DESCRIPTION
>            "Generated if there is an error detected in a TRIP
>            notification message sent with another cause. Note that
>            the TRIP notification refered to in this object is not
>            an SNMP notification, it is a specific message described
>            in the TRIP specification."
>        REFERENCE
>            "draft-ietf-iptel-trip-07.txt, J. Rosenberg et al,
>            section 6.4."
>        ::= { tripMIBNotifications 12 }
> 
>    --
>    -- Compliance Statements
>    --
>    tripCompliance MODULE-COMPLIANCE
>        STATUS     current
>        DESCRIPTION
>             "The compliance statement for TRIP entities."
> 
>        MODULE -- this module
>             MANDATORY-GROUPS { tripConfigGroup,
>                                tripPeerTableConfigGroup,
>                                tripRouteGroup,
>                                tripItadTopologyGroup,
>                                tripPeerTableStatsGroup }
> 
>        GROUP tripNotificationGroup
>        DESCRIPTION
>            "This group is optional. A TRIP entity can choose not to
>            send any notifications. If this group is implemented, the
>            tripNotifObjectGroup must also be implemented."
> 
>        GROUP tripNotifObjectGroup
>        DESCRIPTION
>            "This group is optional. A TRIP entity can choose not to
>            send any notifications. If this group is implemented, the
>            tripNotificationGroup must also be implemented."
> 
>        MODULE NETWORK-SERVICES-MIB
>             MANDATORY-GROUPS { applRFC1565Group }
> 
>        ::= { tripMIBCompliance 1 }
> 
> --
> -- Object and event conformance groups
> --
> 
>    tripConfigGroup OBJECT-GROUP
>        OBJECTS {
>            tripProtocolVersion,
>            tripLocalItad,
>            tripIdentifier,
>            tripOperStatus,
>            tripAdminStatus,
>            tripLocalAddrIAddrType,
>            tripLocalAddr,
>            tripLocalPort,
>            tripMinItadOriginationInterval,
>            tripMinRouteAdvertisementInterval,
>            tripMaxPurgeTime,
>            tripDisableTime,
>            tripSendReceiveMode,
>            tripSupportedCommunityItad,
>            tripSupportedCommunityRowStatus
>        }
>        STATUS current
>        DESCRIPTION
>            "The global objects for configuring trip."
>        ::= { tripMIBGroups 1 }
> 
>    tripPeerTableConfigGroup OBJECT-GROUP
>        OBJECTS {
>            tripPeerIdentifier,
>            tripPeerState,
>            tripPeerAdminStatus,
>            tripPeerNegotiatedVersion,
>            tripPeerSendReceiveMode,
>            tripPeerRemotePort,
>            tripPeerRemoteItad,
>            tripPeerConnectRetryInterval,
>            tripPeerMaxRetryInterval,
>            tripPeerHoldTime,
>            tripPeerKeepAlive,
>            tripPeerHoldTimeConfigured,
>            tripPeerKeepAliveConfigured,
>            tripPeerMinItadOriginationInterval,
>            tripPeerMinRouteAdvertisementInterval,
>            tripPeerMaxPurgeTime,
>            tripPeerDisableTime,
>            tripPeerRowStatus
>            }
> 
>        STATUS current
>        DESCRIPTION
>            "The global objects for configuring the TRIP peer table."
>        ::= { tripMIBGroups 2 }
> 
>    tripPeerTableStatsGroup OBJECT-GROUP
>        OBJECTS {
>            tripPeerInUpdates,
>            tripPeerOutUpdates,
>            tripPeerInTotalMessages,
>            tripPeerOutTotalMessages,
>            tripPeerFsmEstablishedTransitions,
>            tripPeerFsmEstablishedTime,
>            tripPeerInUpdateElapsedTime
>            }
> 
>        STATUS current
>        DESCRIPTION
>            "The global statistics the TRIP peer table."
>        ::= { tripMIBGroups 3 }
> 
>    tripRouteGroup OBJECT-GROUP
>        OBJECTS {
>            tripRouteAddressSequenceNumber,
>            tripRouteAddressOriginatorId,
>            tripRouteNextHopServerIAddrType,
>            tripRouteNextHopServer,
>            tripRouteNextHopServerPort,
>            tripRouteNextHopServerItad,
>            tripRouteMultiExitDisc,
>            tripRouteLocalPref,
>            tripRouteAdvertisementPath,
>            tripRouteRoutedPath,
>            tripRouteAtomicAggregate,
>            tripRouteBest,
>            tripRouteUnknown,
>            tripRouteWithdrawn,
>            tripRouteConverted,
>            tripRouteCommunityItad,
>            tripPeerRtTypeRowStatus
>            }
> 
>        STATUS current
>        DESCRIPTION
>            "The global objects for configuring route attribute."
>        ::= { tripMIBGroups 4 }
> 
>    tripItadTopologyGroup OBJECT-GROUP
>        OBJECTS {
>            tripItadTopologySeqNum,
>            tripItadTopologyIdRowStatus
>            }
>        STATUS current
>        DESCRIPTION
>            "The objects that define the TRIP ITAD topology."
>        ::= { tripMIBGroups 5 }
> 
>    tripNotificationGroup NOTIFICATION-GROUP
>        NOTIFICATIONS {
>            tripEstablished,
>            tripFSM,
>            tripOpenMessageError,
>            tripUpdateMessageError,
>            tripHoldTimerExpired,
>            tripConnectionCollision,
>            tripNotificationErr
>        }
>        STATUS  current
>        DESCRIPTION
>             "A collection of notifications defined for TRIP."
>        ::= { tripMIBGroups 6 }
> 
>    tripNotifObjectGroup OBJECT-GROUP
>        OBJECTS {
>            tripNotifApplIndex,
>            tripNotifPeerAddrInetType,
>            tripNotifPeerAddr,
>            tripNotifPeerErrCode,
>            tripNotifPeerErrSubcode
>            }
>        STATUS current
>        DESCRIPTION
>            "The collection of objects that specify information for
>            TRIP notifications."
>        ::= { tripMIBGroups 7 }
> 
> END

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Kevin R. Lingle       919.392.2029
 checkout: http://wwwin-eng.cisco.com/Eng/IOS/SNMP_WWW/mib-police/
 Sometimes I think I understand everything, then I regain consciousness.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

_______________________________________________
IPTEL mailing list
[email-masked]
http://lists.bell-labs.com/mailman/listinfo/iptel