-- WinAgents MIB Extraction Wizard
-- Extracted from rfc1227.txt 16.03.2005 20:20:14

SMUX DEFINITIONS ::= BEGIN

IMPORTS
        ObjectName
                FROM RFC1155-SMI
        DisplayString
                FROM RFC1213-MIB

        PDUs
                FROM RFC1157-SNMP;


-- tags for SMUX-specific PDUs are application-wide to
-- avoid conflict with tags for current (and future)
-- SNMP-generic PDUs

SMUX-PDUs ::=
    CHOICE {
        open            -- SMUX peer uses
            OpenPDU,    -- immediately after TCP open

        close           -- either uses immediately before TCP close
            ClosePDU,

        registerRequest -- SMUX peer uses
            RReqPDU,

        registerResponse -- SNMP agent uses
            RRspPDU,

            PDUs,       -- note that roles are reversed:
                        --   SNMP agent does get/get-next/set
                        --   SMUX peer does get-response/trap

        commitOrRollback -- SNMP agent uses
            SOutPDU
   }


-- open PDU
-- currently only simple authentication

OpenPDU ::=
    CHOICE {
       simple

           SimpleOpen
    }

SimpleOpen ::=
    [APPLICATION 0] IMPLICIT
        SEQUENCE {
            version     -- of SMUX protocol
                INTEGER {
                    version-1(0)
                },

            identity    -- of SMUX peer, authoritative
                OBJECT IDENTIFIER,

            description -- of SMUX peer, implementation-specific
                DisplayString,

            password    -- zero length indicates no authentication
                OCTET STRING
        }


-- close PDU

ClosePDU ::=
    [APPLICATION 1] IMPLICIT
        INTEGER {
            goingDown(0),
            unsupportedVersion(1),
            packetFormat(2),
            protocolError(3),
            internalError(4),
            authenticationFailure(5)
        }


-- insert PDU

RReqPDU ::=
    [APPLICATION 2] IMPLICIT
        SEQUENCE {
            subtree
                ObjectName,

            priority    -- the lower the better, "-1" means default
                INTEGER (-1..2147483647),

            operation

                INTEGER {
                    delete(0),    -- remove registration
                    readOnly(1),  -- add registration, objects are RO
                    readWrite(2)  --   .., objects are RW
                }
        }

RRspPDU ::=
    [APPLICATION 3] IMPLICIT
        INTEGER {
            failure(-1)

           -- on success the non-negative priority is returned
        }

SOutPDU ::=
    [APPLICATION 4] IMPLICIT
        INTEGER {
            commit(0),
            rollback(1)
        }

END