-- smi.my - Internet-standard SMI definitions

-- $Id: smi.my,v 1.1.1.2 1997/07/03 21:44:59 chopps Exp $
--
-- Contributed by NYSERNet Inc.  This work was partially supported by the
-- U.S. Defense Advanced Research Projects Agency and the Rome Air Development
-- Center of the U.S. Air Force Systems Command under contract number
-- F30602-88-C-0016.
--
--
-- smi.my,v
--Revision 1.7  1992/07/29  03:10:03  jch
--Add symlinks for src/configs to src/util/checkout
--Change RCS comment delimiter for .my files
--Version.c include needed have "" instead of <>
--Change distribution built to use cvs export instead of tar
--
-- Revision 1.6  1992/07/28  22:09:34  jch
-- Forgot to add VERSION before the last commit
--
-- Revision 1.5  1992/07/28  21:55:49  jch
-- Added CVS version support
--
-- Revision 1.4  1992/07/28  20:37:57  jch
-- checkout didn't make it to 1.3; Add some more ident headers
--
-- Revision 1.3  1992/07/28  20:16:54  jch
-- Testing export
--
-- Revision 1.1  1992/07/28  18:20:32  jch
-- Placed under CVS control
--
-- Revision 8.0  91/07/17  13:00:51  isode
-- Release 7.0
-- 
--

--
--				  NOTICE
--
--    Acquisition, use, and distribution of this module and related
--    materials are subject to the restrictions of a license agreement.
--    Consult the Preface in the User's Manual for the full terms of
--    this agreement.
--
--


RFC1155-SMI DEFINITIONS ::= BEGIN

EXPORTS -- EVERYTHING
	internet, directory, mgmt,
	experimental, private, enterprises,
	OBJECT-TYPE, ObjectName, ObjectSyntax, SimpleSyntax,
	ApplicationSyntax, NetworkAddress, IpAddress,
	Counter, Gauge, TimeTicks, Opaque;

-- the path to the root

internet      OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }

directory     OBJECT IDENTIFIER ::= { internet 1 }

mgmt          OBJECT IDENTIFIER ::= { internet 2 }

experimental  OBJECT IDENTIFIER ::= { internet 3 }

private       OBJECT IDENTIFIER ::= { internet 4 }
enterprises   OBJECT IDENTIFIER ::= { private 1 }


-- definition of object types

-- OBJECT-TYPE MACRO ::=
-- BEGIN
--     TYPE NOTATION ::= "SYNTAX" type (TYPE ObjectSyntax)
-- 		      "ACCESS" Access
-- 		      "STATUS" Status
--     VALUE NOTATION ::= value (VALUE ObjectName)
-- 
--     Access ::= "read-only"
-- 		    | "read-write"
-- 		    | "write-only"
-- 		    | "not-accessible"
--     Status ::= "mandatory"
-- 		    | "optional"
-- 		    | "obsolete"
-- 		    | "deprecated"
-- END


-- names of objects in the MIB

ObjectName ::=
    OBJECT IDENTIFIER

-- syntax of objects in the MIB

ObjectSyntax ::=
    CHOICE {
        simple
            SimpleSyntax,

-- note that simple SEQUENCEs are not directly
-- mentioned here to keep things simple (i.e.,
-- prevent mis-use).  However, application-wide 
-- types which are IMPLICITly encoded simple
-- SEQUENCEs may appear in the following CHOICE

        application-wide
            ApplicationSyntax
    }
    
SimpleSyntax ::=
    CHOICE {
        number
            INTEGER,
    
        string
            OCTET STRING,
    
        object
            OBJECT IDENTIFIER,
    
        empty
            NULL
    }

ApplicationSyntax ::=
    CHOICE {
        address
            NetworkAddress,
    
	counter
    	    Counter,

	gauge
	    Gauge,

	ticks
	    TimeTicks,

        arbitrary
            Opaque

-- other application-wide types, as they are
-- defined, will be added here
    }


-- application-wide types

NetworkAddress ::=
    CHOICE {
        internet
            IpAddress
    }
    
IpAddress ::=
    [APPLICATION 0]            -- in network-byte order
        IMPLICIT OCTET STRING (SIZE (4))
    
Counter ::=
    [APPLICATION 1]
	IMPLICIT INTEGER (0..4294967295)

Gauge ::=
    [APPLICATION 2]
	IMPLICIT INTEGER (0..4294967295)

TimeTicks ::=
    [APPLICATION 3]
	IMPLICIT INTEGER (0..4294967295)

Opaque ::=
    [APPLICATION 4]             -- arbitrary ASN.1 value,
        IMPLICIT OCTET STRING   --   "double-wrapped"

DisplayString ::=
	OCTET STRING

END
