MHS-DS-Definitions
DEFINITIONS ::=
BEGIN


 -- assign OID to module
 -- define imports and exports

routingTreeRoot OBJECT-CLASS ::= {
    SUBCLASS OF {routingInformation|subtree}
    ID oc-routing-tree-root}                                        10

routingTreeList ATTRIBUTE ::= {
        WITH SYNTAX RoutingTreeList
        SINGLE VALUE
        ID at-routing-tree-list}

RoutingTreeList ::= SEQUENCE OF RoutingTreeName

RoutingTreeName ::= DistinguishedName
                                                                    20
routingInformation OBJECT-CLASS ::= {
    SUBCLASS OF top
    KIND auxiliary
    MAY CONTAIN {





        subtreeInformation|
        routingFilter|
        routingFailureAction|
        mTAInfo|
        accessMD|
        nonDeliveryInfo|                                            30
        badAddressSearchPoint|
        badAddressSearchAttributes}
    ID oc-routing-information}
                -- No naming attributes as this is not a
                -- structural object class



subtreeInformation ATTRIBUTE ::= {
    WITH SYNTAX SubtreeInfo                                         40
    SINGLE VALUE
    ID at-subtree-information}

SubtreeInfo ::= ENUMERATED {
    all-children-present(0),
    not-all-children-present(1) }


routingFilter ATTRIBUTE ::= {
    WITH SYNTAX RoutingFilter                                       50
    ID at-routing-filter}


RoutingFilter ::= SEQUENCE{
        attribute-type OBJECT-IDENTIFIER,
        weight RouteWeight,
        dda-key String OPTIONAL,
        regex-match IA5String OPTIONAL,
        node DistinguishedName }
                                                                    60
String ::= CHOICE {PrintableString, TeletexString}

routingFailureAction ATTRIBUTE ::= {
    WITH SYNTAX RoutingFailureAction
    SINGLE VALUE
    ID at-routing-failure-action}

RoutingFailureAction ::= ENUMERATED {
            next-level(0),
            next-tree-only(1),                                      70
            next-tree-first(2),
            stop(3)  }





mTAInfo ATTRIBUTE ::= {
    WITH SYNTAX MTAInfo
    ID at-mta-info}

MTAInfo ::= SEQUENCE {
            name DistinguishedName,                                 80
            weight [1] RouteWeight DEFAULT preferred-access,
            mta-attributes [2] SET OF Attribute OPTIONAL,
            ae-info  SEQUENCE OF SEQUENCE {
                aEQualifier PrintableString,
                ae-weight RouteWeight DEFAULT preferred-access,
                ae-attributes SET OF Attribute OPTIONAL} OPTIONAL
}

RouteWeight ::= INTEGER  {endpoint(0),
                preferred-access(5),                                90
                backup(10)} (0..20)

accessMD ATTRIBUTE ::= {
        SUBTYPE OF distinguishedName
        ID at-access-md}

routedUA OBJECT-CLASS ::= {
    SUBCLASS OF {routingInformation}
    KIND auxiliary
    MAY CONTAIN {                                                  100
                        -- from X.402
        mhs-deliverable-content-length|
        mhs-deliverable-content-types|
        mhs-deliverable-eits|
        mhs-message-store|
        mhs-preferred-delivery-methods|
                        -- defined here
        supportedExtensions|
        redirect|
        supportingMTA|                                             110
        userName|
        nonDeliveryInfo}
    ID oc-routed-ua}

supportedExtensions ATTRIBUTE ::= {
    SUBTYPE OF objectIdentifier
    ID at-supported-extensions}

supportingMTA ATTRIBUTE ::= {
    SUBTYPE OF mTAInfo                                             120
    ID at-supporting-mta}






userName ATTRIBUTE ::= {
    SUBTYPE OF distinguishedName
    ID at-user-name}

mTAName ATTRIBUTE ::= {
    SUBTYPE OF name
    WITH SYNTAX DirectoryString{ub-mta-name-length}
    SINGLE VALUE                                                   130
    ID at-mta-name}
                        -- used for naming when
                        -- MTA is named in O=R Address Hierarchy

globalDomainID ATTRIBUTE ::= {
    WITH SYNTAX GlobalDomainIdentifier
    SINGLE VALUE
    ID at-global-domain-id}
                        -- both attributes present when MTA
                        -- is named outside O=R Address Hierarchy  140
                        -- to enable trace to be written

mTAApplicationProcess OBJECT-CLASS ::= {
    SUBCLASS OF {application-process}
    KIND auxiliary
    MAY CONTAIN {
        mTAWillRoute|
        globalDomainID|
        routingTreeList|
        localAccessUnit|                                           150
        accessUnitsUsed
    }
    ID oc-mta-application-process}

mTA OBJECT CLASS ::= {   -- Application Entity
    SUBCLASS OF {mhs-message-transfer-agent}
    KIND structural
    MAY CONTAIN {
        mTAName|
        globalDomainID|         -- per AE variant                  160
        responderAuthenticationRequirements|
        initiatorAuthenticationRequirements|
        responderPullingAuthenticationRequirements|
        initiatorPullingAuthenticationRequirements|
        initiatorP1Mode|
        responderP1Mode|
        polledMTAs|
        protocolInformation|
        respondingRTSCredentials|
        initiatingRTSCredentials|                                  170





        callingPresentationAddress|
        callingSelectorValidity|
        bilateralTable|
        mTAWillRoute|
        mhs-deliverable-content-length|
        routingTreeList|
        supportedMTSExtensions|
        mTAsAllowedToPoll
        }
    ID oc-mta}                                                     180

mTABilateralTableEntry OBJECT-CLASS ::=
    SUBCLASS OF {mTA| distinguishedNameTableEntry}
    ID oc-mta-bilateral-table-entry}

bilateralTable ATTRIBUTE ::= {
        WITH SYNTAX SEQUENCE OF DistinguishedName
        SINGLE VALUE
        ID at-bilateral-table}
                                                                   190
supportedMTSExtensions ATTRIBUTE ::= {
    SUBTYPE OF objectIdentifier
    ID at-supported-mts-extensions}

restrictedSubtree OBJECT-CLASS ::= {
        SUBCLASS OF {top}
        KIND auxiliary
        MAY CONTAIN {
                subtreeDeliverableContentLength|
                subtreeDeliverableContentTypes|                    200
                subtreeDeliverableEITs}
        ID oc-restricted-subtree}

subtreeDeliverableContentLength ATTRIBUTE ::= {
        SUBTYPE OF mhs-deliverable-content-length
        ID at-subtree-deliverable-content-length}

subtreeDeliverableContentTypes ATTRIBUTE ::= {
        SUBTYPE OF mhs-deliverable-content-types
        ID at-subtree-deliverable-content-types}                   210

subtreeDeliverableEITs ATTRIBUTE ::= {
        SUBTYPE OF mhs-deliverable-eits
        ID at-subtree-deliverable-eits}


initiatorP1Mode ATTRIBUTE ::= {
    WITH SYNTAX P1Mode





    SINGLE VALUE
    ID at-initiator-p1-mode}                                       220

responderP1Mode ATTRIBUTE ::= {
    WITH SYNTAX P1Mode
    SINGLE VALUE
    ID at-responder-p1-mode}

P1Mode ::= ENUMERATED {
    push-only(0),
    pull-only(1),
    twa(2) }                                                       230

polledMTAs ATTRIBUTE ::= {
    WITH SYNTAX PolledMTAs
    ID at-polled-mtas}

PolledMTAs ::= SEQUENCE {
        mta DistinguishedName,
        poll-frequency INTEGER OPTIONAL --frequency in minutes
        }
                                                                   240
mTAsAllowedToPoll ATTRIBUTE ::= {
        SUBTYPE OF distinguishedName
        ID at-mtas-allowed-to-poll}


responderAuthenticationRequirements ATTRIBUTE ::= {
   WITH SYNTAX AuthenticationRequirements
   SINGLE VALUE
   ID at-responder-authentication-requirements}
                                                                   250
initiatorAuthenticationRequirements ATTRIBUTE ::= {
   WITH SYNTAX AuthenticationRequirements
   SINGLE VALUE
   ID at-initiator-authentication-requirements}

responderPullingAuthenticationRequirements ATTRIBUTE ::= {
   WITH SYNTAX AuthenticationRequirements
   SINGLE VALUE
   ID at-responder-pulling-authentication-requirements}
                                                                   260
initiatorPullingAuthenticationRequirements ATTRIBUTE ::= {
   WITH SYNTAX AuthenticationRequirements
   SINGLE VALUE
   ID at-initiator-pulling-authentication-requirements}

AuthenticationRequirements ::= BITSTRING {





    mta-name-present(0),
    aet-present(1),
    aet-valid(2),
    network-address(3),                                            270
    simple-authentication(4),
    strong-authentication(5),
    bilateral-agreement-needed(6)}

respondingRTSCredentials ATTRIBUTE ::= {
        WITH SYNTAX RTSCredentials
        SINGLE VALUE
        ID at-responding-rts-credentials}

                                                                   280
initiatingRTSCredentials ATTRIBUTE ::= {
        WITH SYNTAX RTSCredentials
        SINGLE VALUE
        ID at-initiating-rts-credentials}


RTSCredentials ::= SEQUENCE {
        request [0] MTAandPassword OPTIONAL,
        response [1] MTAandPassword OPTIONAL }
                                                                   290

MTAandPassword ::= SEQUENCE {
        MTAName,
        Password }              -- MTAName and Password
                                -- from X.411


callingPresentationAddress ATTRIBUTE ::= {
        SUBTYPE OF presentationAddress
        MULTI VALUE                                                300
        ID at-calling-presentation-address}

callingSelectorValidity ATTRIBUTE ::= {
        WITH SYNTAX CallingSelectorValidity
        SINGLE VALUE
        ID at-calling-selector-validity}

CallingSelectorValidity ::= ENUMERATED {
        all-selectors-fixed(0),
        tsel-may-vary(1),                                          310
        all-selectors-may-vary(2) }

mTAWillRoute ATTRIBUTE ::= {
    WITH SYNTAX MTAWillRoute





    ID at-mta-will-route}

MTAWillRoute ::= SEQUENCE {
        from [0]        SET OF ORAddressPrefix OPTIONAL,
        to [1]          SET OF ORAddressPrefix OPTIONAL,
        from-excludes [2]       SET OF ORAddressPrefix OPTIONAL,   320
        to-excludes [3]         SET OF ORAddressPrefix OPTIONAL }

ORAddressPrefix ::= DistinguishedName

redirect ATTRIBUTE ::= {
        WITH SYNTAX Redirect
        SINGLE VALUE
        ID at-redirect}

Redirect ::= SEQUENCE OF SEQUENCE {                                330
        or-name ORName,
        reason RedirectionReason, -- from X.411
        filter CHOICE {
                min-size [1] INTEGER,
                max-size [2] INTEGER,
                content [3] ContentType,
                eit [4] ExternalEncodedInformationType } OPTIONAL
        }

nonDeliveryInfo ATTRIBUTE ::= {                                    340
        WITH SYNTAX NonDeliveryReason
        SINGLE VALUE
        ID at-non-delivery-info}

NonDeliveryReason ::= SEQUENCE {
        reason INTEGER (0..ub-reason-codes),
        diagnostic INTEGER (0..ub-diagnostic-codes) OPTIONAL,
        supplementaryInfo PrintableString OPTIONAL }

badAddressSearchPoint ATTRIBUTE ::= {                              350
        SUBTYPE OF distinguishedName
        ID at-bad-address-search-point}

badAddressSearchAttributes ATTRIBUTE ::= {
        WITH SYNTAX AttributeType
        ID at-bad-address-search-attributes}

alternativeAddressInformation EXTENSION
        AlternativeAddressInformation
        ::= id-alternative-address-information                     360
                -- X.400(92) continues to use MACRO notation






AlternativeAddressInformation ::= SET OF SEQUENCE {
        distinguished-name DistinguishedName OPTIONAL,
        or-address ORAddress OPTIONAL,
        other-useful-info SET OF Attribute }

localAccessUnit ATTRIBUTE ::= {
        WITH SYNTAX AccessUnitType
        ID at-local-access-unit}                                   370

AccessUnitType ::= ENUMERATED {
        fax (1),
        physical-delivery (2),
        teletex (3),
        telex (4) }

accessUnitsUsed ATTRIBUTE ::= {
        WITH SYNTAX SelectedAccessUnit
        ID at-access-units-used}                                   380

SelectedAccessUnit ::= SEQUENCE {
        type AccessUnitType,
        providing-MTA DistinguishedName,
        filter SET OF ORAddress OPTIONAL }
mhs-ds OBJECT-IDENTIFIER ::= {iso(1) org(3) dod(6) internet(1) private(4)
          enterprises(1) isode-consortium (453) mhs-ds (7)}

routing OBJECT IDENTIFIER ::= {mhs-ds 3}
                                                                   390
oc OBJECT IDENTIFIER ::= {routing 1}
at OBJECT IDENTIFIER ::= {routing 2}
id OBJECT IDENTIFIER ::= {routing 3}
oc-mta OBJECT IDENTIFIER ::= {oc 1}
oc-mta-bilateral-table-entry OBJECT IDENTIFIER ::= {oc 2}
oc-routing-information OBJECT IDENTIFIER ::= {oc 3}
oc-restricted-subtree OBJECT IDENTIFIER ::= {oc 4}
oc-routed-ua OBJECT IDENTIFIER ::= {oc 8}                          400
oc-routing-tree-root OBJECT IDENTIFIER ::= {oc 6}
oc-mta-application-process OBJECT IDENTIFIER ::= {oc 7}

at-access-md OBJECT IDENTIFIER ::= {at 1}
at-access-units-used OBJECT IDENTIFIER ::= {at 2}
at-subtree-information OBJECT IDENTIFIER ::= {at 3}
at-bad-address-search-attributes OBJECT IDENTIFIER ::= {at 4}
at-bad-address-search-point OBJECT IDENTIFIER ::= {at 5}

at-calling-selector-validity OBJECT IDENTIFIER ::= {at 7}          410







at-global-domain-id OBJECT IDENTIFIER ::= {at 10}
at-initiating-rts-credentials OBJECT IDENTIFIER ::= {at 11}
at-initiator-authentication-requirements OBJECT IDENTIFIER ::= {at 12}
at-initiator-p1-mode OBJECT IDENTIFIER ::= {at 13}
at-initiator-pulling-authentication-requirements
                                         OBJECT IDENTIFIER ::= {at 14}
at-local-access-unit OBJECT IDENTIFIER ::= {at 15}
at-redirect OBJECT IDENTIFIER ::= {at 46}
at-mta-info OBJECT IDENTIFIER ::= {at 40}                          420
at-mta-name OBJECT IDENTIFIER ::= {at 19}

at-mta-will-route OBJECT IDENTIFIER ::= {at 21}
at-calling-presentation-address OBJECT IDENTIFIER ::= {at 22}
at-responder-authentication-requirements OBJECT IDENTIFIER ::= {at 23}
at-responder-p1-mode OBJECT IDENTIFIER ::= {at 24}
at-responder-pulling-authentication-requirements
                                         OBJECT IDENTIFIER ::= {at 25}
at-responding-rts-credentials OBJECT IDENTIFIER ::= {at 26}
at-routing-failure-action OBJECT IDENTIFIER ::= {at 27}
at-routing-filter OBJECT IDENTIFIER ::= {at 28}                    430
at-routing-tree-list OBJECT IDENTIFIER ::= {at 29}
at-subtree-deliverable-content-length OBJECT IDENTIFIER ::= {at 30}
at-subtree-deliverable-content-types OBJECT IDENTIFIER ::= {at 31}
at-subtree-deliverable-eits OBJECT IDENTIFIER ::= {at 32}
at-supporting-mta OBJECT IDENTIFIER ::= {at 33}
at-transport-community OBJECT IDENTIFIER ::= {at 34}
at-user-name OBJECT IDENTIFIER ::= {at 35}
at-non-delivery-info OBJECT IDENTIFIER ::= {at 47}
at-polled-mtas  OBJECT IDENTIFIER ::= {at 37}
at-bilateral-table OBJECT IDENTIFIER {at 45}                       440
at-supported-extension OBJECT IDENTIFIER {at 42}
at-supported-mts-extension OBJECT IDENTIFIER {at 43}
at-mtas-allowed-to-poll OBJECT IDENTIFIER {at 44}

id-alternative-address-information OBJECT IDENTIFIER ::= {id 1}

ts-communities OBJECT-IDENTIFIER ::= {iso(1) org(3) dod(6) internet(1)
private(4) enterprises(1) isode-consortium (453) ts-communities (4)}

                                                                   450
tc-cons OBJECT IDENTIFIER ::= {ts-communities 1}    -- OSI CONS
tc-clns OBJECT IDENTIFIER ::= {ts-communities 2}    -- OSI CLNS
tc-internet OBJECT IDENTIFIER ::= {ts-communities 3}-- Internet+RFC1006
tc-int-x25 OBJECT IDENTIFIER ::= {ts-communities 4} -- International X.25
                                                    -- Without CONS
tc-ixi OBJECT IDENTIFIER ::= {ts-communities 5}     -- IXI (Europe)
tc-janet OBJECT IDENTIFIER ::= {ts-communities 6}   -- Janet (UK)






mail-protocol OBJECT-IDENTIFIER ::= {iso(1) org(3) dod(6) internet(1)
private(4) enterprises(1) isode-consortium (453) mail-protocol (5)} 460

ac-p1-1984 OBJECT IDENTIFIER ::= {mail-protocol 1}      -- p1(1984)
ac-smtp  OBJECT IDENTIFIER ::= {mail-protocol 2}        -- SMTP
ac-uucp OBJECT IDENTIFIER ::= {mail-protocol 3}         -- UUCP Mail
ac-jnt-mail OBJECT IDENTIFIER ::= {mail-protocol 4}     -- JNT Mail (UK)
ac-p1-1988-x410 OBJECT IDENTIFIER ::= {mail-protocol 5}
                                               -- p1(1988) in X.410 mode
ac-p3-1984 OBJECT IDENTIFIER ::= {mail-protocol 6}      -- p3(1984)
END

                       
