COPS-PR-SPPI DEFINITIONS ::= BEGIN


IMPORTS    ObjectName, SimpleSyntax, ExtUTCTime, mgmt
                                                FROM SNMPv2-SMI;

-- the root for PIB definitions

      pib           OBJECT IDENTIFIER ::= { mgmt 2 }

-- definitions for PIB modules


--



-- syntax of attributes

-- the "base types" defined here are:
--   3 built-in ASN.1 types: INTEGER, OCTET STRING, OBJECT IDENTIFIER
--   7 application-defined types: Integer32, IpAddress, Unsigned32,
--         TimeTicks, Opaque, Integer64 and Unsigned64

ObjectSyntax ::=
    CHOICE {
        simple
            SimpleSyntax,

          -- note that SEQUENCEs for table and row definitions
          -- are not mentioned here...

        application-wide
            ApplicationSyntax
    }





-- application-wide types

ApplicationSyntax ::=
    CHOICE {
        ipAddress-value
            IpAddress,

        timeticks-value
            TimeTicks,

        arbitrary-value
            Opaque,

        unsigned-integer-value
            Unsigned32,

        large-integer-value                        -- new
            Integer64,

        large-unsigned-integer-value               -- new
            Unsigned64
    }


-- the following 5 types are copied from the SMI

-- indistinguishable from INTEGER, but never needs more than
-- 32-bits for a two's complement representation
Integer32 ::=
        INTEGER (-2147483648..2147483647)

-- (this is a tagged type for historical reasons)
IpAddress ::=
    [APPLICATION 0]
        IMPLICIT OCTET STRING (SIZE (4))
-- ******* THIS TYPE DEFINITION IS DEPRECATED *******
-- The IpAddress type represents a 32-bit internet
-- IPv4 address.  It is represented as an OctetString
-- of length 4, in network byte-order.
-- Note that the IpAddress type is present for
-- historical reasons. IPv4 and IPv6 addresses should
-- be represented using the INET-ADDRESS-MIB
-- defined in [INETADDR].

-- an unsigned 32-bit quantity
Unsigned32 ::=
    [APPLICATION 2]
        IMPLICIT INTEGER (0..4294967295)





-- hundredths of seconds since an epoch
TimeTicks ::=
    [APPLICATION 3]
        IMPLICIT INTEGER (0..4294967295)

--for backward compatibility only
Opaque ::=
    [APPLICATION 4]
        IMPLICIT OCTET STRING


-- the following 2 types are not present in the SMI

Integer64 ::=
    [APPLICATION 10]
        IMPLICIT INTEGER (-9223372036854775808..9223372036854775807)

Unsigned64 ::=
    [APPLICATION 11]
        IMPLICIT INTEGER (0..18446744073709551615)

-- definition for Provisioning Classes and their attributes
-- (differences from the SMI are noted in the ASN.1 comments)



-- definitions for conformance groups



-- definitions for compliance statements






-- definition of textual conventions

END




