Subject: [Isis-wg] Changes for System Host table

From: Jeff Parker <[email-masked]>
Date: Thu, 20 Feb 2003 11:08:47 -0500

I had mentioned adding a table to track the hostname
and routerID.  I have a first draft below.  There 
are a few issues which may merit discussion.  

I have called it "RouterTable", feeling that "ISTable" 
might be too archaic, but RouterTable is also pretty ugly.

Following suggestions, I have included the level as an index,
in case there is confusion at different levels.  

The RouterID is an Unsigned32.  It coud be argued that
it should be an IP address, but I am trying to maintain
the fiction that RouterID and IP address are two
different name spaces.  

There is an assumption that the SystemID is unique, but
no assumption that the router ID or hostname is unique.  
Duplicating any of these, of course, creates problems.  
We currently have a Notification called isisOwnLSPPurge,
so responsibility for spotting the reuse of a system ID
is placed on the owners of the system ID, rather than
on every system in the network.  
I have just added a field in that notification to hold 
the remote router ID, which may provide an alternative 
way of contacting a misconfigured system (perhaps using 
the router ID as an IP address?)

We may wish to add notifications if we see a duplication
of the routerID or the hostname.  I would use the
same rule: the owner of the duplicated item should
complain, to reduce the noise level.  

Here are the relevant changes: first the RouterTable,
and then the changes to the Notifications.  

- jeff parker

-- The Router Table keeps track of hostnames and router IDs
-- associated with peers in the area and domain.

    isisRouterTable OBJECT-TYPE
        SYNTAX SEQUENCE OF IsisRouterEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The set of hostnames and router ID."
    ::= { isisSystem 7 }

    isisRouterEntry OBJECT-TYPE
        SYNTAX IsisRouterEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Each entry tracks information about one peer at one level."
        INDEX { isisSysInstance,
                isisRouterSysID,
                isisRouterLevel }
    ::= { isisRouterTable 1 }

    IsisRouterEntry ::=
        SEQUENCE {
            isisRouterSysID
                SystemID,
            isisRouterLevel
                INTEGER,
            isisRouterHostName
                DisplayString,
            isisRouterID
                Unsigned32
        }

    isisRouterSysID OBJECT-TYPE
        SYNTAX SystemID
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The System ID of the Router Peer."
    ::= { isisRouterEntry 1 }

    isisRouterLevel OBJECT-TYPE
        SYNTAX INTEGER
            {
                area(1),        -- L1
                domain(2),      -- L2
                both(3)         -- L1L2
            }
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The level of this Intermediate System."
    ::= { isisRouterEntry 2 }

    isisRouterHostName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The hostname listed in LSP, or NULL if none."
    ::= { isisRouterEntry 3 }

    isisRouterID OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The Router ID of the Peer found in LSP, or NULL if none."
    ::= { isisRouterEntry 4 }

//////////////////////

    isisRemoteRouterID OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The Router ID of a remote system.
             If not known, we set this to 0."
    ::= { isisNotificationEntry 12 }

....
   
    isisOwnLSPPurge NOTIFICATION-TYPE
        OBJECTS {
            isisSystemInstance,
            isisSystemLevel,
            isisCircIfIndex,
            isisTrapLSPID,
            isisRemoteRouterID
        }
        STATUS current
       DESCRIPTION
            "A notification sent when we receive a PDU
             with our systemID and zero age.  This
             notification includes the circuit Index
             and router ID from the LSP, if available, 
             which may help a network manager
             identify the source of the confusion."

    ::= { isisTrapPrefix 7 }
_______________________________________________
Isis-wg mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/isis-wg

---

From: Jeff Parker <[email-masked]>
Date: Thu, 20 Feb 2003 11:54:01 -0500

> Jeff -
> 
> Your use of an enumeration for the isisRouterLevel 
> entry concerns me as it may prevent use of this MIB 
> by future multi-level IS-IS implementations.  Could
> it instead be a bitfield, with each bit stating the 
> level?  This is generally compatible with the 
> enumeration you have described, but is not
> bounded at 2 levels.
> 
> Jonathan Sadler
 
Jonathan -

	One thing I could do would be to use the TC
ISLevel, which I've introduced to allow some 
indirection for just this sort of change.  See
below for details.  

	Since this takes more "objects" to describe
a tuple that is valid at multiple levels, this is
less efficient that the proposed scheme, but it
may simplify implementation.

- jeff parker

    ISLevel ::= TEXTUAL-CONVENTION
        STATUS current
        DESCRIPTION
            "Identifies a level."
        SYNTAX INTEGER
            {
                none(0),
                area(1),        -- L1
                domain(2)       -- L2
            }
_______________________________________________
Isis-wg mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/isis-wg