    MIP-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        Counter32, Gauge32, Integer32, IpAddress, mib-2,
        MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE
                                        FROM SNMPv2-SMI
        RowStatus, TruthValue, TimeStamp,
        TEXTUAL-CONVENTION
                                        FROM SNMPv2-TC
        MODULE-COMPLIANCE, OBJECT-GROUP,
        NOTIFICATION-GROUP
                                        FROM SNMPv2-CONF;

    mipMIB    MODULE-IDENTITY
        LAST-UPDATED    "9606040000Z"
        ORGANIZATION    "IETF Mobile IP Working Group"
        CONTACT-INFO
                "       David Cong
                Postal: Motorola
                        1301 E. Algonquin Rd.
                        Schaumburg, IL 60196
                Phone:  +1-847-576-1357
                Email:  cong@comm.mot.com"
        DESCRIPTION
                "The MIB Module for the Mobile IP."
        ::= { mib-2 44 }

    mipMIBObjects    OBJECT IDENTIFIER ::= { mipMIB 1 }

    -- Groups under mipMIBObjects

    mipSystem    OBJECT IDENTIFIER ::= { mipMIBObjects 1 }
    mipSecurity    OBJECT IDENTIFIER ::= { mipMIBObjects 2 }
    mipMN    OBJECT IDENTIFIER ::= { mipMIBObjects 3 }
    mipMA    OBJECT IDENTIFIER ::= { mipMIBObjects 4 }
    mipFA    OBJECT IDENTIFIER ::= { mipMIBObjects 5 }
    mipHA    OBJECT IDENTIFIER ::= { mipMIBObjects 6 }

    mnSystem    OBJECT IDENTIFIER ::= { mipMN 1 }
    mnDiscovery    OBJECT IDENTIFIER ::= { mipMN 2 }
    mnRegistration    OBJECT IDENTIFIER ::= { mipMN 3 }

    maAdvertisement    OBJECT IDENTIFIER ::= { mipMA 2 }

    faSystem   OBJECT IDENTIFIER ::= { mipFA 1 }
    faAdvertisement   OBJECT IDENTIFIER ::= { mipFA 2 }
    faRegistration    OBJECT IDENTIFIER ::= { mipFA 3 }
    haRegistration    OBJECT IDENTIFIER ::= { mipHA 3 }

    -- Textual convention

    RegistrationFlags  ::= TEXTUAL-CONVENTION
        STATUS      current
        DESCRIPTION
                "This data type is used to define the registration
                flags for Mobile IP registration extension:
                   vjCompression
                       -- Request to use VJ compression
                   gre
                       -- Request to use GRE
                   minEnc
                       -- Request to use minimal encapsulation
                   decapsulationByMN
                       -- Decapsulation by mobile node
                   broadcastDatagram
                       -- Request to receive broadcasts
                   simultaneoursBindings
                       -- Request to retain prior binding(s)."
        SYNTAX      BITS {
                         vjCompression(0),
                         gre(1),
                         minEnc(2),
                         decapsulationbyMN(3),
                         broadcastDatagram(4),
                         simultaneousBindings(5)
                    }

    -- mipSystem Group

    mipEntities OBJECT-TYPE
        SYNTAX      BITS {
                         mobileNode(0),
                         foreignAgent(1),
                         homeAgent(2)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "This object describes which Mobile IP entities are
                supported by this managed entity. The entity may
                support more than one Mobile IP entities. For example,
                the entity supports both Foreign Agent (FA) and Home
                Agent (HA). Therefore, bit 1 and bit 2 are set to 1
                for this object."
        ::= { mipSystem 1 }

    mipEnable OBJECT-TYPE
        SYNTAX      INTEGER { enabled(1), disabled(2) }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
                "Indicates whether the Mobile IP protocol should be
                enabled for the managed entity. If it is disabled, the
                entity should disable both agent discovery and
                registration functions."
        ::= { mipSystem 2 }

    mipEncapsulationSupported   OBJECT-TYPE
        SYNTAX      BITS {
                         ipInIp(0),
                         gre(1),
                         minEnc(2),
                         other(3)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Encapsulation methods supported by the Mobile IP
                entity. The entity may support multiple encapsulation
                methods or none of them:
                    ipInIp(0), -- IP Encapsulation within IP
                    gre(1),    -- Generic Routing Encapsulation,
                               -- refers to RFC1701
                    minEnc(2), -- Minimal Encapsulation within IP."
        ::= { mipSystem 3 }

    -- mipSecurity Group

    mipSecAssocTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MipSecAssocEntry
        MAX-ACCESS      not-accessible
        STATUS      current
        DESCRIPTION
                "A table containing Mobility Security Associations."
        ::= { mipSecurity 1 }

    mipSecAssocEntry OBJECT-TYPE
        SYNTAX      MipSecAssocEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "One particular Mobility Security Association."
        INDEX   { mipSecPeerAddress, mipSecSPI }
        ::= { mipSecAssocTable 1 }

    MipSecAssocEntry ::=
        SEQUENCE {
            mipSecPeerAddress IpAddress,
            mipSecSPI Unsigned32,
            mipSecAlgorithmType INTEGER,
            mipSecAlgorithmMode INTEGER,
            mipSecKey OCTET STRING,
            mipSecReplayMethod INTEGER
        }

    mipSecPeerAddress  OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "The IP address of the peer entity with which this
                node shares the mobility security association."
        ::= { mipSecAssocEntry 1 }

    mipSecSPI OBJECT-TYPE
        SYNTAX      Unsigned32 (0..4294967295)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "The SPI is the 4-byte opaque index within the
                Mobility Security Association which selects the
                specific security parameters to be used to
                authenticate the peer, i.e. the rest of the variables
                in this MipSecAssocEntry."
        ::= { mipSecAssocEntry 2 }

    mipSecAlgorithmType OBJECT-TYPE
        SYNTAX      INTEGER {
                            other(1),
                            md5(2)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "Type of security algorithm."
        ::= { mipSecAssocEntry 3 }

    mipSecAlgorithmMode OBJECT-TYPE
        SYNTAX      INTEGER {
                            other(1),
                            prefixSuffix(2)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "Security mode used by this algorithm."
        ::= { mipSecAssocEntry 4 }

    mipSecKey  OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(16))
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The shared secret key for the security
                associations. Reading this object will always return
                zero length value."
        ::= { mipSecAssocEntry 5 }

    mipSecReplayMethod OBJECT-TYPE
        SYNTAX      INTEGER {
                             other(1),
                             timestamps(2),
                             nonces(3)
                    }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The replay-protection method supported for this SPI
                within this Mobility Security Association."
        ::= { mipSecAssocEntry 6 }

    -- Mobile IP security violation total counter

    mipSecTotalViolations OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
               "Total number of security violations in the entity"
           ::= { mipSecurity 2 }

    -- Mobile IP security violation table

    mipSecViolationTable  OBJECT-TYPE
        SYNTAX      SEQUENCE OF MipSecViolationEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A table containing information about security
                violations."
        ::= { mipSecurity 3 }

    mipSecViolationEntry  OBJECT-TYPE
        SYNTAX      MipSecViolationEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Information about one particular security violation."
        INDEX   { mipSecViolatorAddress }
        ::= { mipSecViolationTable 1 }

    MipSecViolationEntry ::=
        SEQUENCE {
            mipSecViolatorAddress IpAddress,
            mipSecViolationCounter Counter32,
            mipSecRecentViolationSPI Integer32,
            mipSecRecentViolationTime TimeStamp,
            mipSecRecentViolationIDLow Integer32,
            mipSecRecentViolationIDHigh Integer32,
            mipSecRecentViolationReason INTEGER
        }

    mipSecViolatorAddress  OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
                "Violator's IP address. The violator is not necessary
                in the mipSecAssocTable."
        ::= { mipSecViolationEntry 1 }

    mipSecViolationCounter OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of security violations for this peer."
        ::= { mipSecViolationEntry 2 }

    mipSecRecentViolationSPI  OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "SPI of the most recent security violation for this
                peer. If the security violation is due to an
                identification mismatch, then this is the SPI from the
                Mobile-Home Authentication Extension.  If the security
                violation is due to an invalid authenticator, then
                this is the SPI from the offending authentication
                extension.  In all other cases, it should be set to
                zero."
        ::= { mipSecViolationEntry 3 }

    mipSecRecentViolationTime OBJECT-TYPE
        SYNTAX      TimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Time of the most recent security violation for this
                peer."
        ::= { mipSecViolationEntry 4 }

    mipSecRecentViolationIDLow  OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
               "Low-order 32 bits of identification used in request or
                reply of the most recent security violation for this
                peer."
        ::= { mipSecViolationEntry 5 }

    mipSecRecentViolationIDHigh  OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "High-order 32 bits of identification used in request
                or reply of the most recent security violation for
                this peer."
        ::= { mipSecViolationEntry 6 }

    mipSecRecentViolationReason   OBJECT-TYPE
        SYNTAX      INTEGER {
                            noMobilitySecurityAssociation(1),
                            badAuthenticator(2),
                            badIdentifier(3),
                            badSPI(4),
                            missingSecurityExtension(5),
                            other(6)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Reason for the most recent security violation for
                this peer."
        ::= { mipSecViolationEntry 7 }

    -- mipMN Group
    -- mipSystem Group

    mnState OBJECT-TYPE
        SYNTAX      INTEGER {
                            home(1),
                            registered(2),
                            pending(3),
                            isolated(4),
                            unknown(5)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Indicates mobile node's state of Mobile IP:
                     home,
                         -- MN is connected to home network.
                     registered,
                         -- MN has registered on foreign network
                     pending,
                         -- MN has sent registration request and is
                            waiting for the reply
                     isolated,
                         -- MN is isolated from network
                     unknown
                         -- MN can not determine its state."
        ::= { mnSystem 1 }

    mnHomeAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "An IP address that is assigned for an extended period
                of time to the mobile node. It remains unchanged
                regardless of the mobile node's current point of
                attachment."
        ::= { mnSystem 2 }

   -- Mobile node's home agent list

    mnHATable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MnHAEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A table containing all of the mobile node's potential
                home agents."
        ::= { mnSystem 3 }

    mnHAEntry OBJECT-TYPE
        SYNTAX MnHAEntry
        MAX-ACCESS not-accessible
        STATUS      current
        DESCRIPTION
                "Information for a particular Home Agent."
        INDEX { mnHAAddress }
        ::= { mnHATable 1 }

    MnHAEntry ::= SEQUENCE {
        mnHAAddress IpAddress,
        mnCurrentHA TruthValue,
        mnHAStatus  RowStatus
    }

    mnHAAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "IP address of mobile node's Home Agent."
        ::= { mnHAEntry 1 }

    mnCurrentHA OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Whether this home agent is the current home agent for
                the mobile node. If it is true, the mobile node is
                registered with that home agent."
        ::= { mnHAEntry 2 }

    mnHAStatus  OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The row status for this home agent entry. If the
                status is set to 'createAndGo' or 'active', then the
                mobile node can use mnHAAddress as a valid candidate
                for a home agent. If the status is set to 'destroy',
                then the mobile node should delete this row, and
                deregister from that home agent."
        ::= { mnHAEntry 3 }

    mnFATable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MnFAEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A table containing all foreign agents that the mobile
                node knows about and their corresponding COA (care-of
                address). This COA is an address of a foreign agent
                with which the mobile node is registered. The table is
                updated when advertisements are received by the mobile
                node. If an advertisement expires, its entry(s) should
                be deleted from the table. One foreign agent can
                provide more than one COA in its advertisements."
        ::= { mnDiscovery 1 }

    mnFAEntry OBJECT-TYPE
        SYNTAX      MnFAEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "One pair of foreign agent IP address and COA for that
                foreign agent."
        INDEX { mnFAAddress, mnCOA }
        ::= { mnFATable 1 }

    MnFAEntry ::= SEQUENCE {
        mnFAAddress IpAddress,
        mnCOA IpAddress
    }

    mnFAAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Foreign agent's IP address."
        ::= { mnFAEntry 1 }

    mnCOA   OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "A care-of address being offered by this foreign agent
                or a co-located care-of address which the mobile node
                has associated with one of its own network
                interfaces."
        ::= { mnFAEntry 2 }

   -- Mobile node could store multiple agent advertisements, however,
   -- only the most recently received agent advertisement information
   -- is required to be made available to the manager station.

    mnRecentAdvReceived OBJECT IDENTIFIER ::= { mnDiscovery 2 }

    mnAdvSourceAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The source IP address of the most recently received
                Agent Advertisement. This address could be the address
                of a home agent or a foreign agent."
        ::= { mnRecentAdvReceived 1 }

    mnAdvSequence OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The sequence number of the most recently received
                advertisement. The sequence number ranges from 0 to
                0xffff. After the sequence number attains the value
                0xffff, it will roll over to 256."
        ::= { mnRecentAdvReceived 2 }

    mnAdvFlags OBJECT-TYPE
        SYNTAX      BITS {
                         vjCompression(0),
                         gre(1),
                         minEnc(2),
                         foreignAgent(3),
                         homeAgent(4),
                         busy(5),
                         regRequired(6)
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The flags are contained in the 7th byte in the
                extension of the most recently received mobility agent
                advertisement:
                    vjCompression
                        -- Agent supports Van Jacobson compression
                    gre
                        -- Agent offers Generice Routing Encapsulation
                    minEnc,
                        -- Agent offers Minimal Encapsulation
                    foreignAgent,
                        -- Agent is a Foreign Agent
                    homeAgent,
                        -- Agent is a Home Agent
                    busy,
                        -- Foreign Agent is busy
                    regRequired,
                        -- FA registration is required."
        ::= { mnRecentAdvReceived 3 }

    mnAdvMaxRegLifetime OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The longest lifetime in seconds that the agent is
                willing to accept in any registration request."
        ::= { mnRecentAdvReceived 4 }

    mnAdvMaxAdvLifetime OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The maximum length of time that the Advertisement is
                considered valid in the absence of further
                Advertisements."
        REFERENCE
                "AdvertisementLifeTime in RFC1256."
        ::= { mnRecentAdvReceived 5 }

    mnAdvTimeReceived OBJECT-TYPE
        SYNTAX      TimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The time at which the most recently received
                advertisement was received."
        ::= { mnRecentAdvReceived 6 }

   -- Mobile Node Discovery Group Counter

    mnSolicitationsSent OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of Solicitation sent by the mobile
                node."
        ::= { mnDiscovery 3 }

    mnAdvertisementsReceived OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of advertisements received by the mobile
                node."
        ::= { mnDiscovery 4 }

    mnAdvsDroppedInvalidExtension OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of advertisements dropped by the mobile
                node due to both poorly formed extensions and
                unrecognized extensions with extension number in the
                range 0-127."
        ::= { mnDiscovery 5 }

    mnAdvsIgnoredUnknownExtension OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of unrecognized extensions in the range
                128-255 that were ignored by the mobile node."
        ::= { mnDiscovery 6 }

    mnMoveFromHAToFA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Number of times that the mobile node has decided to
                move from its home network to a foreign network."
        ::= { mnDiscovery 7 }

    mnMoveFromFAToFA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Number of times that the mobile node has decided to
                move from one foreign network to another foreign
                network."
        ::= { mnDiscovery 8 }

    mnMoveFromFAToHA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Number of times that the mobile node has decided to
                move from a foreign network to its home network."
        ::= { mnDiscovery 9 }

    mnGratuitousARPsSend OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of Gratuitous ARPs sent by mobile node
                in order to clear out any stale ARP entries in the ARP
                caches of nodes on the home network."
        ::= { mnDiscovery 10 }

    mnAgentRebootsDectected OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of agent reboots detected by the mobile
                node through sequence number of the advertisement."
        ::= { mnDiscovery 11 }

    -- Mobile Node Registration Group

    -- Registration table of mobile node

    mnRegistrationTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MnRegistrationEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A table containing information about the mobile
                node's attempted registration(s).  The mobile node
                updates this table based upon Registration Requests
                sent and Registration Replies received in response to
                these requests.  Certain variables within this table
                are also updated if when Registration Requests are
                retransmitted."
        ::= { mnRegistration 1 }

    mnRegistrationEntry OBJECT-TYPE
        SYNTAX      MnRegistrationEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Information about one registration attempt."
        INDEX { mnRegAgentAddress, mnRegCOA}
        ::= { mnRegistrationTable 1 }

    MnRegistrationEntry ::= SEQUENCE {
        mnRegAgentAddress IpAddress,
        mnRegCOA IpAddress,
        mnRegFlags RegistrationFlags,
        mnRegIDLow Integer32,
        mnRegIDHigh Integer32,
        mnRegTimeRequested Integer32,
        mnRegTimeRemaining  Gauge32,
        mnRegTimeSent    TimeStamp,
        mnRegIsAccepted  TruthValue,
        mnCOAIsLocal     TruthValue
        }

    mnRegAgentAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                 "IP address of the agent as used in the destination
                 IP address of the Registration Request.  The agent
                 may be a home agent or a foreign agent."
        ::= { mnRegistrationEntry 1 }

    mnRegCOA OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Care-of address for the registration."
        ::= { mnRegistrationEntry 2 }

    mnRegFlags OBJECT-TYPE
        SYNTAX      RegistrationFlags
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Registration flags sent by the mobile node. It is the
                second byte in the Mobile IP Registratation Request
                message."
        ::= { mnRegistrationEntry 3 }

    mnRegIDLow OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Low-order 32 bits of the Identification used in that
                registration by the mobile node."
        ::= { mnRegistrationEntry 4 }

    mnRegIDHigh OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "High-order 32 bits of the Identification used in that
                registration by the mobile node."
        ::= { mnRegistrationEntry 5 }

    mnRegTimeRequested OBJECT-TYPE
        SYNTAX      Integer32
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "If the registration is pending, then this is the
                lifetime requested by the mobile node (in seconds).
                If the registration has been accepted, then this is
                the lifetime actually granted by the home agent in the
                reply."
        ::= { mnRegistrationEntry 6 }

    mnRegTimeRemaining OBJECT-TYPE
        SYNTAX      Gauge32
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The number of seconds remaining until this
                registration expires.  It has the same initial value
                as mnRegTimeRequested and is only valid if
                mnRegIsAccepted is TRUE."
        ::= { mnRegistrationEntry 7 }

    mnRegTimeSent OBJECT-TYPE
        SYNTAX      TimeStamp
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The time when the last (re-)transmission occured."
        ::= { mnRegistrationEntry 8 }

    mnRegIsAccepted OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "true(1) if the mobile node has received a
                Registration Reply indicating that service has been
                accepted; false(2) otherwise.  false(2) implies that
                the registration is still pending."
        ::= { mnRegistrationEntry 9 }

    mnCOAIsLocal OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Whether the COA is local to (dynamically acquired by)
                the mobile node or not.  If it is false(2), the COA is
                an address of the foreign agent."
        ::= { mnRegistrationEntry 10 }

    -- Mobile Node Registration Group Counters

    mnRegRequestsSent OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of registration requests sent by the
                mobile node. This does not include deregistrations
                (those with Lifetime equal to zero)."
        ::= { mnRegistration 2 }

    mnDeRegRequestsSent OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of deregistration requests sent by the
                mobile node (those with Lifetime equal to zero)."
        ::= { mnRegistration 3 }

    mnRegRepliesRecieved OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of registration replies received by the
                mobile node in which the Lifetime is greater than
                zero."
        ::= { mnRegistration 4 }

    mnDeRegRepliesRecieved OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of (de)registration replies received by
                the mobile node in which the Lifetime is equal to
                zero."
        ::= { mnRegistration 5 }

    mnRepliesInvalidHomeAddress OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies with invalid home address for
                the mobile node."
        ::= { mnRegistration 6 }

    mnRepliesUnknownHA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies with unknown home agents
                (not in home agent table)."
        ::= { mnRegistration 7 }

    mnRepliesUnknownFA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies with unknown foreign agents if
                replies relayed through foreign agent."
        ::= { mnRegistration 8 }

    mnRepliesInvalidID OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies with invalid Identification
                fields."
        ::= { mnRegistration 9 }

    mnRepliesDroppedInvalidExtension OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of Registration Replies dropped by the
                mobile node due to both poorly formed extensions and
                unrecognized extensions with extension number in the
                range 0-127."
        ::= { mnRegistration 10 }

    mnRepliesIgnoredUnknownExtension OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of Registration Replies that contained
                one or more unrecognized extensions in the range
                128-255 that were ignored by the mobile node."
        ::= { mnRegistration 11 }

    mnRepliesHAAuthenticationFailure OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies without a valid Home Agent to
                Mobile Node authenticator."
        ::= { mnRegistration 12 }

    mnRepliesFAAuthenticationFailure OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies without a valid Foreign Agent
                to Mobile Node authenticator."
        ::= { mnRegistration 13 }

    mnRegRequestsAccepted OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of registration requests accepted by the
                mobile node's home agent (Code 0 and Code 1)."
        ::= { mnRegistration 14 }

    mnRegRequestsDeniedByHA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of registration requests denied by
                mobile node's home agent (Sum of Code 128 through
                Code 191)."
        ::= { mnRegistration 15 }

    mnRegRequestsDeniedByFA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of registration requests denied by the
                foreign agent (Sum of Codes 64 through Code 127)."
        ::= { mnRegistration 16 }

    mnRegRequestsDeniedByHADueToID OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of Registration Request denied by home
                agent due to identification mismatch."
        ::= { mnRegistration 17 }

    mnRegRequestsWithDirectedBroadcast OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of Registration Requests sent by mobile
                node with a directed broadcast address in the home
                agent field."
        ::= { mnRegistration 18 }

    -- MA Advertisement Group

    -- Mobility agent advertisement configuration table

    maAdvConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MaAdvConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A table containing configurable advertisement
                parameters for all advertisement interfaces in
                the mobility agent."
        ::= { maAdvertisement 1 }

    maAdvConfigEntry OBJECT-TYPE
        SYNTAX      MaAdvConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Advertisement parameters for one advertisement
                interface."
        INDEX   { maInterfaceAddress }
        ::= { maAdvConfigTable 1 }

    MaAdvConfigEntry    ::= SEQUENCE {
          maInterfaceAddress IpAddress,
          maAdvMaxRegLifetime Integer32,
          maAdvPrefixLengthInclusion TruthValue,
          maAdvAddress IpAddress,
          maAdvMaxInterval Integer32,
          maAdvMinInterval Integer32,
          maAdvMaxAdvLifetime Integer32,
          maAdvResponseSolicitationOnly TruthValue,
          maAdvStatus RowStatus
        }

    maInterfaceAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "IP address for advertisement interface."
        ::= { maAdvConfigEntry 1 }

    maAdvMaxRegLifetime OBJECT-TYPE
        SYNTAX      Integer32 (0..65535)
        UNITS       "seconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The longest lifetime in seconds that mobility agent
                is willing to accept in any Registration Request."
        ::= { maAdvConfigEntry 2 }

    maAdvPrefixLengthInclusion OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "Whether the advertisement should include the Prefix-
                Lengths Extension. If it is true, all advertisements
                sent over this interface should include the
                Prefix-Lengths Extension."
        ::= { maAdvConfigEntry 3 }

    maAdvAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The IP destination address to be used for
                advertisements sent from the interface. The only
                permissible values are the all-systems multicast
                address (224.0.0.1) or the limited-broadcast address
                (255.255.255.255)."
        REFERENCE
                "AdvertisementAddress in RFC1256."
        ::= { maAdvConfigEntry 4 }

    maAdvMaxInterval OBJECT-TYPE
        SYNTAX      Integer32 (4..1800)
        UNITS       "seconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The maximum time in seconds between successive
                transmissions of Agent Advertisements from this
                interface."
        REFERENCE
                "MaxAdvertisementInterval in RFC1256."
        ::= { maAdvConfigEntry 5 }

    maAdvMinInterval OBJECT-TYPE
        SYNTAX      Integer32 (3..1800)
        UNITS       "seconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The minimum time in seconds between successive
                transmissions of Agent Advertisements from this
                interface."
        REFERENCE
                "MinAdvertisementInterval in RFC1256."
        ::= { maAdvConfigEntry 6 }

    maAdvMaxAdvLifetime OBJECT-TYPE
        SYNTAX      Integer32 (4..9000)
        UNITS       "seconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The time (in seconds) to be placed in the Lifetime
                field of the RFC 1256-portion of the Agent
                Advertisements sent over this interface."
        REFERENCE
                "AdvertisementLifetime in RFC1256."
        ::= { maAdvConfigEntry 7 }

    maAdvResponseSolicitationOnly OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The flag indicates whether the advertisement from
                that interface should be sent only in response to an
                Agent Solicitation message."
        DEFVAL      { false }
        ::= { maAdvConfigEntry 8 }

    maAdvStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The row status for the agent advertisement table. If
                this column status is 'active', the manager should not
                change any column in the row."
        ::= { maAdvConfigEntry 9 }

   -- MA Advertisement Group Counters

    maAdvertisementsSent OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of advertisements sent by the mobility
                agent."
        ::= { maAdvertisement 2 }

    maAdvsSentForSolicitation OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of advertisements sent by mobility agent
                in response to mobile node solicitations."
        ::= { maAdvertisement 3 }

    maSolicitationsReceived OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of solicitations received by the
                mobility agent."
        ::= { maAdvertisement 4 }

    -- Foreign Agent Group

    -- Foreign Agent System Group

    faCOATable OBJECT-TYPE
        SYNTAX      SEQUENCE OF FaCOAEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A table containing all of the care-of addresses
                (COAs) supported by the foreign agent. New entries can
                be added to the table. The order of entries in the
                faCOATAble is also the order in which the COAs are
                listed in the Agent Advertisement."
           ::= { faSystem 1 }

    faCOAEntry OBJECT-TYPE
        SYNTAX      FaCOAEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Entry of COA"
        INDEX { faSupportedCOA }
        ::= { faCOATable 1 }

    FaCOAEntry     ::=
        SEQUENCE {
                 faSupportedCOA IpAddress,
                 faCOAStatus    RowStatus
        }

    faSupportedCOA OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Care-of-address supported by this foreign agent."
        ::= { faCOAEntry 1 }

    faCOAStatus  OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The row status for COA entry."
        ::= { faCOAEntry 2 }

    -- Foreign Agent Advertisement Group
    -- FA needs to implement MA Advertisement Group plus that group

    faIsBusy OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Whether or not the foreign agent is too busy to
                accept additional registrations. If true(1), the agent
                is busy and any Agent advertisements sent from this
                agent should have the 'B' bit set to 1."
        ::= { faAdvertisement 1 }

    faRegistrationRequired OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
                "Whether or not this foreign agent requires
                registration even from those mobile nodes that have
                acquired their own, colocated care-of address.  If
                true(1), registration is required and any Agent
                Advertisements sent from this agent should have the
                'R' bit set to 1."
        ::= { faAdvertisement 2 }

    -- Foreign Agent Registration Group

    -- Foreign Agent Visitors List

    faVisitorTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF FaVisitorEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A table containing the foreign agent's visitor list.
                The foreign agent updates this table in response to
                registration events from mobile nodes."
        ::= { faRegistration 1 }

    faVisitorEntry OBJECT-TYPE
        SYNTAX      FaVisitorEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Information for one visitor."
        INDEX   { faVisitorIPAddress }
        ::= { faVisitorTable 1 }

    FaVisitorEntry     ::= SEQUENCE {
        faVisitorIPAddress IpAddress,
        faVisitorHomeAddress IpAddress,
        faVisitorHomeAgentAddress IpAddress,
        faVisitorTimeGranted Integer32,
        faVisitorTimeRemaining Gauge32,
        faVisitorRegFlags RegistrationFlags,
        faVisitorRegIDLow Integer32,
        faVisitorRegIDHigh Integer32,
        faVisitorRegIsAccepted TruthValue
        }

    faVisitorIPAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Source IP address of visitor's Registration Request."
        ::= { faVisitorEntry 1 }

    faVisitorHomeAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Home (IP) address of visiting mobile node."
        ::= { faVisitorEntry 2 }

    faVisitorHomeAgentAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Home agent IP address for that visiting mobile node."
        ::= { faVisitorEntry 3 }

    faVisitorTimeGranted OBJECT-TYPE
        SYNTAX      Integer32
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The lifetime in seconds granted to the mobile node
                for this registration.  Only valid if
                faVisitorRegIsAccepted is true(1)."
        ::= { faVisitorEntry 4 }

    faVisitorTimeRemaining OBJECT-TYPE
        SYNTAX      Gauge32
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The number of seconds remaining until the
                registration is expired. It has the same initial value
                as faVisitorTimeGranted, and is counted down by the
                foreign agent."
        ::= { faVisitorEntry 5 }

    faVisitorRegFlags OBJECT-TYPE
        SYNTAX      RegistrationFlags
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Registration flags sent by mobile node."
        ::= { faVisitorEntry 6 }

    faVisitorRegIDLow OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Low 32 bits of Identification used in that
                registration by the mobile node."
        ::= { faVisitorEntry 7 }

    faVisitorRegIDCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of registration replies received by the
                mobile node in which the Lifetime is greater than
                zero."
        ::= { mnRegistration 4 }

    mnDeRegRepliesRecieved OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of (de)registration replies received by
                the mobile node in which the Lifetime is equal to
                zero."
        ::= { mnRegistration 5 }

    mnRepliesInvalidHomeAddress OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies with invalid home address for
                the mobile node."
        ::= { mnRegistration 6 }

    mnRepliesUnknownHA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies with unknown home agents
                (not in home agent table)."
        ::= { mnRegistration 7 }

    mnRepliesUnknownFA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies with unknown foreign agents if
                replies relayed through foreign agent."
        ::= { mnRegistration 8 }

    mnRepliesInvalidID OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies with invalid Identification
                fields."
        ::= { mnRegistration 9 }

    mnRepliesDroppedInvalidExtension OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of Registration Replies dropped by the
                mobile node due to both poorly formed extensions and
                unrecognized extensions with extension number in the
                range 0-127."
        ::= { mnRegistration 10 }

    mnRepliesIgnoredUnknownExtension OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of Registration Replies that contained
                one or more unrecognized extensions in the range
                128-255 that were ignored by the mobile node."
        ::= { mnRegistration 11 }

    mnRepliesHAAuthenticationFailure OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies without a valid Home Agent to
                Mobile Node authenticator."
        ::= { mnRegistration 12 }

    mnRepliesFAAuthenticationFailure OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies without a valid Foreign Agent
                to Mobile Node authenticator."
        ::= { mnRegistration 13 }

    mnRegRequestsAccepted OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of registration requests accepted by the
                mobile node's home agent (Code 0 and Code 1)."
        ::= { mnRegistration 14 }

    mnRegRequestsDeniedByHA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of registration requests denied by
                mobile node's home agent (Sum of Code 128 through
                Code 191)."
        ::= { mnRegistration 15 }

    mnRegRequestsDeniedByFA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of registration requests denied by the
                foreign agent (Sum of Codes 64 through Code 127)."
        ::= { mnRegistration 16 }

    mnRegRequestsDeniedByHADueToID OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of Registration Request denied by home
                agent due to identification mismatch."
        ::= { mnRegistration 17 }

    mnRegRequestsWithDirectedBroadcast OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of Registration Requests sent by mobile
                node with a directed broadcast address in the home
                agent field."
        ::= { mnRegistration 18 }

    -- MA Advertisement Group

    -- Mobility agent advertisement configuration table

    maAdvConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MaAdvConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A table containing configurable advertisement
                parameters for all advertisement interfaces in
                the mobility agent."
        ::= { maAdvertisement 1 }

    maAdvConfigEntry OBJECT-TYPE
        SYNTAX      MaAdvConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Advertisement parameters for one advertisement
                interface."
        INDEX   { maInterfaceAddress }
        ::= { maAdvConfigTable 1 }

    MaAdvConfigEntry    ::= SEQUENCE {
          maInterfaceAddress IpAddress,
          maAdvMaxRegLifetime Integer32,
          maAdvPrefixLengthInclusion TruthValue,
          maAdvAddress IpAddress,
          maAdvMaxInterval Integer32,
          maAdvMinInterval Integer32,
          maAdvMaxAdvLifetime Integer32,
          maAdvResponseSolicitationOnly TruthValue,
          maAdvStatus RowStatus
        }

    maInterfaceAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "IP address for advertisement interface."
        ::= { maAdvConfigEntry 1 }

    maAdvMaxRegLifetime OBJECT-TYPE
        SYNTAX      Integer32 (0..65535)
        UNITS       "seconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The longest lifetime in seconds that mobility agent
                is willing to accept in any Registration Request."
        ::= { maAdvConfigEntry 2 }

    maAdvPrefixLengthInclusion OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "Whether the advertisement should include the Prefix-
                Lengths Extension. If it is true, all advertisements
                sent over this interface should include the
                Prefix-Lengths Extension."
        ::= { maAdvConfigEntry 3 }

    maAdvAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The IP destination address to be used for
                advertisements sent from the interface. The only
                permissible values are the all-systems multicast
                address (224.0.0.1) or the limited-broadcast address
                (255.255.255.255)."
        REFERENCE
                "AdvertisementAddress in RFC1256."
        ::= { maAdvConfigEntry 4 }

    maAdvMaxInterval OBJECT-TYPE
        SYNTAX      Integer32 (4..1800)
        UNITS       "seconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The maximum time in seconds between successive
                transmissions of Agent Advertisements from this
                interface."
        REFERENCE
                "MaxAdvertisementInterval in RFC1256."
        ::= { maAdvConfigEntry 5 }

    maAdvMinInterval OBJECT-TYPE
        SYNTAX      Integer32 (3..1800)
        UNITS       "seconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The minimum time in seconds between successive
                transmissions of Agent Advertisements from this
                interface."
        REFERENCE
                "MinAdvertisementInterval in RFC1256."
        ::= { maAdvConfigEntry 6 }

    maAdvMaxAdvLifetime OBJECT-TYPE
        SYNTAX      Integer32 (4..9000)
        UNITS       "seconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The time (in seconds) to be placed in the Lifetime
                field of the RFC 1256-portion of the Agent
                Advertisements sent over this interface."
        REFERENCE
                "AdvertisementLifetime in RFC1256."
        ::= { maAdvConfigEntry 7 }

    maAdvResponseSolicitationOnly OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The flag indicates whether the advertisement from
                that interface should be sent only in response to an
                Agent Solicitation message."
        DEFVAL      { false }
        ::= { maAdvConfigEntry 8 }

    maAdvStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The row status for the agent advertisement table. If
                this column status is 'active', the manager should not
                change any column in the row."
        ::= { maAdvConfigEntry 9 }

   -- MA Advertisement Group Counters

    maAdvertisementsSent OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of advertisements sent by the mobility
                agent."
        ::= { maAdvertisement 2 }

    maAdvsSentForSolicitation OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of advertisements sent by mobility agent
                in response to mobile node solicitations."
        ::= { maAdvertisement 3 }

    maSolicitationsReceived OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of solicitations received by the
                mobility agent."
        ::= { maAdvertisement 4 }

    -- Foreign Agent Group

    -- Foreign Agent System Group

    faCOATable OBJECT-TYPE
        SYNTAX      SEQUENCE OF FaCOAEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A table containing all of the care-of addresses
                (COAs) supported by the foreign agent. New entries can
                be added to the table. The order of entries in the
                faCOATAble is also the order in which the COAs are
                listed in the Agent Advertisement."
           ::= { faSystem 1 }

    faCOAEntry OBJECT-TYPE
        SYNTAX      FaCOAEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Entry of COA"
        INDEX { faSupportedCOA }
        ::= { faCOATable 1 }

    FaCOAEntry     ::=
        SEQUENCE {
                 faSupportedCOA IpAddress,
                 faCOAStatus    RowStatus
        }

    faSupportedCOA OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Care-of-address supported by this foreign agent."
        ::= { faCOAEntry 1 }

    faCOAStatus  OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The row status for COA entry."
        ::= { faCOAEntry 2 }

    -- Foreign Agent Advertisement Group
    -- FA needs to implement MA Advertisement Group plus that group

    faIsBusy OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Whether or not the foreign agent is too busy to
                accept additional registrations. If true(1), the agent
                is busy and any Agent advertisements sent from this
                agent should have the 'B' bit set to 1."
        ::= { faAdvertisement 1 }

    faRegistrationRequired OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
                "Whether or not this foreign agent requires
                registration even from those mobile nodes that have
                acquired their own, colocated care-of address.  If
                true(1), registration is required and any Agent
                Advertisements sent from this agent should have the
                'R' bit set to 1."
        ::= { faAdvertisement 2 }

    -- Foreign Agent Registration Group

    -- Foreign Agent Visitors List

    faVisitorTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF FaVisitorEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A table containing the foreign agent's visitor list.
                The foreign agent updates this table in response to
                registration events from mobile nodes."
        ::= { faRegistration 1 }

    faVisitorEntry OBJECT-TYPE
        SYNTAX      FaVisitorEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Information for one visitor."
        INDEX   { faVisitorIPAddress }
        ::= { faVisitorTable 1 }

    FaVisitorEntry     ::= SEQUENCE {
        faVisitorIPAddress IpAddress,
        faVisitorHomeAddress IpAddress,
        faVisitorHomeAgentAddress IpAddress,
        faVisitorTimeGranted Integer32,
        faVisitorTimeRemaining Gauge32,
        faVisitorRegFlags RegistrationFlags,
        faVisitorRegIDLow Integer32,
        faVisitorRegIDHigh Integer32,
        faVisitorRegIsAccepted TruthValue
        }

    faVisitorIPAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Source IP address of visitor's Registration Request."
        ::= { faVisitorEntry 1 }

    faVisitorHomeAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Home (IP) address of visiting mobile node."
        ::= { faVisitorEntry 2 }

    faVisitorHomeAgentAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Home agent IP address for that visiting mobile node."
        ::= { faVisitorEntry 3 }

    faVisitorTimeGranted OBJECT-TYPE
        SYNTAX      Integer32
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The lifetime in seconds granted to the mobile node
                for this registration.  Only valid if
                faVisitorRegIsAccepted is true(1)."
        ::= { faVisitorEntry 4 }

    faVisitorTimeRemaining OBJECT-TYPE
        SYNTAX      Gauge32
        UNITS       "seconds"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "The number of seconds remaining until the
                registration is expired. It has the same initial value
                as faVisitorTimeGranted, and is counted down by the
                foreign agent."
        ::= { faVisitorEntry 5 }

    faVisitorRegFlags OBJECT-TYPE
        SYNTAX      RegistrationFlags
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Registration flags sent by mobile node."
        ::= { faVisitorEntry 6 }

    faVisitorRegIDLow OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Low 32 bits of Identification used in that
                registration by the mobile node."
        ::= { faVisitorEntry 7 }

    faVisitorRegIDCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of registration replies received by the
                mobile node in which the Lifetime is greater than
                zero."
        ::= { mnRegistration 4 }

    mnDeRegRepliesRecieved OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of (de)registration replies received by
                the mobile node in which the Lifetime is equal to
                zero."
        ::= { mnRegistration 5 }

    mnRepliesInvalidHomeAddress OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies with invalid home address for
                the mobile node."
        ::= { mnRegistration 6 }

    mnRepliesUnknownHA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies with unknown home agents
                (not in home agent table)."
        ::= { mnRegistration 7 }

    mnRepliesUnknownFA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies with unknown foreign agents if
                replies relayed through foreign agent."
        ::= { mnRegistration 8 }

    mnRepliesInvalidID OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies with invalid Identification
                fields."
        ::= { mnRegistration 9 }

    mnRepliesDroppedInvalidExtension OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of Registration Replies dropped by the
                mobile node due to both poorly formed extensions and
                unrecognized extensions with extension number in the
                range 0-127."
        ::= { mnRegistration 10 }

    mnRepliesIgnoredUnknownExtension OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of Registration Replies that contained
                one or more unrecognized extensions in the range
                128-255 that were ignored by the mobile node."
        ::= { mnRegistration 11 }

    mnRepliesHAAuthenticationFailure OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies without a valid Home Agent to
                Mobile Node authenticator."
        ::= { mnRegistration 12 }

    mnRepliesFAAuthenticationFailure OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of replies without a valid Foreign Agent
                to Mobile Node authenticator."
        ::= { mnRegistration 13 }

    mnRegRequestsAccepted OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of registration requests accepted by the
                mobile node's home agent (Code 0 and Code 1)."
        ::= { mnRegistration 14 }

    mnRegRequestsDeniedByHA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of registration requests denied by
                mobile node's home agent (Sum of Code 128 through
                Code 191)."
        ::= { mnRegistration 15 }

    mnRegRequestsDeniedByFA OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of registration requests denied by the
                foreign agent (Sum of Codes 64 through Code 127)."
        ::= { mnRegistration 16 }

    mnRegRequestsDeniedByHADueToID OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of Registration Request denied by home
                agent due to identification mismatch."
        ::= { mnRegistration 17 }

    mnRegRequestsWithDirectedBroadcast OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of Registration Requests sent by mobile
                node with a directed broadcast address in the home
                agent field."
        ::= { mnRegistration 18 }

    -- MA Advertisement Group

    -- Mobility agent advertisement configuration table

    maAdvConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF MaAdvConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A table containing configurable advertisement
                parameters for all advertisement interfaces in
                the mobility agent."
        ::= { maAdvertisement 1 }

    maAdvConfigEntry OBJECT-TYPE
        SYNTAX      MaAdvConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Advertisement parameters for one advertisement
                interface."
        INDEX   { maInterfaceAddress }
        ::= { maAdvConfigTable 1 }

    MaAdvConfigEntry    ::= SEQUENCE {
          maInterfaceAddress IpAddress,
          maAdvMaxRegLifetime Integer32,
          maAdvPrefixLengthInclusion TruthValue,
          maAdvAddress IpAddress,
          maAdvMaxInterval Integer32,
          maAdvMinInterval Integer32,
          maAdvMaxAdvLifetime Integer32,
          maAdvResponseSolicitationOnly TruthValue,
          maAdvStatus RowStatus
        }

    maInterfaceAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "IP address for advertisement interface."
        ::= { maAdvConfigEntry 1 }

    maAdvMaxRegLifetime OBJECT-TYPE
        SYNTAX      Integer32 (0..65535)
        UNITS       "seconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The longest lifetime in seconds that mobility agent
                is willing to accept in any Registration Request."
        ::= { maAdvConfigEntry 2 }

    maAdvPrefixLengthInclusion OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "Whether the advertisement should include the Prefix-
                Lengths Extension. If it is true, all advertisements
                sent over this interface should include the
                Prefix-Lengths Extension."
        ::= { maAdvConfigEntry 3 }

    maAdvAddress OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The IP destination address to be used for
                advertisements sent from the interface. The only
                permissible values are the all-systems multicast
                address (224.0.0.1) or the limited-broadcast address
                (255.255.255.255)."
        REFERENCE
                "AdvertisementAddress in RFC1256."
        ::= { maAdvConfigEntry 4 }

    maAdvMaxInterval OBJECT-TYPE
        SYNTAX      Integer32 (4..1800)
        UNITS       "seconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The maximum time in seconds between successive
                transmissions of Agent Advertisements from this
                interface."
        REFERENCE
                "MaxAdvertisementInterval in RFC1256."
        ::= { maAdvConfigEntry 5 }

    maAdvMinInterval OBJECT-TYPE
        SYNTAX      Integer32 (3..1800)
        UNITS       "seconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The minimum time in seconds between successive
                transmissions of Agent Advertisements from this
                interface."
        REFERENCE
                "MinAdvertisementInterval in RFC1256."
        ::= { maAdvConfigEntry 6 }

    maAdvMaxAdvLifetime OBJECT-TYPE
        SYNTAX      Integer32 (4..9000)
        UNITS       "seconds"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The time (in seconds) to be placed in the Lifetime
                field of the RFC 1256-portion of the Agent
                Advertisements sent over this interface."
        REFERENCE
                "AdvertisementLifetime in RFC1256."
        ::= { maAdvConfigEntry 7 }

    maAdvResponseSolicitationOnly OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The flag indicates whether the advertisement from
                that interface should be sent only in response to an
                Agent Solicitation message."
        DEFVAL      { false }
        ::= { maAdvConfigEntry 8 }

    maAdvStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The row status for the agent advertisement table. If
                this column status is 'active', the manager should not
                change any column in the row."
        ::= { maAdvConfigEntry 9 }

   -- MA Advertisement Group Counters

    maAdvertisementsSent OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of advertisements sent by the mobility
                agent."
        ::= { maAdvertisement 2 }

    maAdvsSentForSolicitation OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of advertisements sent by mobility agent
                in response to mobile node solicitations."
        ::= { maAdvertisement 3 }

    maSolicitationsReceived OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Total number of solicitations received by the
                mobility agent."
        ::= { maAdvertisement 4 }

    -- Foreign Agent Group

    -- Foreign Agent System Group

    faCOATable OBJECT-TYPE
        SYNTAX      SEQUENCE OF FaCOAEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A table containing all of the care-of addresses
                (COAs) supported by the foreign agent. New entries can
                be added to the table. The order of entries in the
                faCOATAble is also the order in which the COAs are
                listed in the Agent Advertisement."
           ::= { faSystem 1 }

    faCOAEntry OBJECT-TYPE
        SYNTAX      FaCOAEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Entry of COA"
        INDEX { faSupportedCOA }
        ::= { faCOATable 1 }

    FaCOAEntry     ::=
        SEQUENCE {
                 faSupportedCOA IpAddress,
                 faCOAStatus    RowStatus
        }

    faSupportedCOA OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "Care-of-address supported by this foreign agent."
        ::= { faCOAEntry 1 }

    faCOAStatus  OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
                "The row status for COA entry."
        ::= { faCOAEntry 2 }

    -- Foreign Agent Advertisement Group
    -- FA needs to implement MA Advertisement Group plus that group

    faIsBusy OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
                "Whether or not the foreign agent is too busy to
                accept additional registrations. If true(1), the agent
                is busy and any Agent advertisements sent from this
                agent should have the 'B' bit set to 1."
        ::= { faAdvertisement 1 }

    faRegistrationRequired OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
                "Whether or not this foreign agent requires
                registration even from those mobile nodes that have
                acquired their own, colocated care-of address.  If
                true(1), registration is required and any Agent
                Advertisements sent from this agent should have the
                'R' bit set to 1."
        ::= { faAdvertisement 2 }

    -- Foreign Agent Registration Group

    -- Foreign Agent Visitors List

    faVisitorTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF FaVisitorEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
                "A table containing the foreign agent's visitor list.
                The foreign ag