home *** CD-ROM | disk | FTP | other *** search
/ ftp.muug.mb.ca / 2014.06.ftp.muug.mb.ca.tar / ftp.muug.mb.ca / pub / openh323.tar.gz / openh323.tar / openh323 / src / mcspdu.asn < prev    next >
Text File  |  1998-12-14  |  12KB  |  573 lines

  1. MCS-PROTOCOL DEFINITIONS ::=
  2. BEGIN
  3.  
  4. -- Part 1:  Fundamental MCS types
  5.  
  6. ChannelId    ::= INTEGER (0..65535)        -- range is 16 bits
  7.  
  8. StaticChannelId    ::= ChannelId (1..1000)        -- those known permanently
  9.  
  10. DynamicChannelId::= ChannelId (1001..65535)    -- those created and deleted
  11.  
  12. UserId        ::= DynamicChannelId        -- created by Attach-User
  13.                         -- deleted by Detach-User
  14.  
  15. PrivateChannelId::= DynamicChannelId        -- created by Channel-Convene
  16.                         -- deleted by Channel-Disband
  17.  
  18. AssignedChannelId::=DynamicChannelId        -- created by Channel-Join zero
  19.                         -- deleted by last Channel-Leave
  20.  
  21. TokenId        ::= INTEGER (1..65535)        -- all are known permanently
  22.  
  23. TokenStatus    ::= ENUMERATED
  24. {
  25.             notInUse        (0),
  26.             selfGrabbed        (1),
  27.             otherGrabbed        (2),
  28.             selfInhibited        (3),
  29.             otherInhibited        (4),
  30.             selfRecipient        (5),
  31.             selfGiving        (6),
  32.             otherGiving        (7)
  33. }
  34.  
  35. DataPriority    ::= ENUMERATED
  36. {
  37.             top            (0),
  38.             high            (1),
  39.             medium            (2),
  40.             low            (3)
  41. }
  42.  
  43. Segmentation    ::= BIT STRING
  44. {
  45.             begin            (0),
  46.             end            (1)
  47. } (SIZE (2))
  48.  
  49. DomainParameters::= SEQUENCE
  50. {
  51.     maxChannelIds    INTEGER (0..MAX),
  52.             -- a limit on channel ids in use,
  53.             -- static + user id + private + assigned
  54.     maxUserIds    INTEGER (0..MAX),
  55.             -- a sublimit on user id channels alone
  56.     maxTokenIds    INTEGER (0..MAX),
  57.             -- a limit on token ids in use
  58.             -- grabbed + inhibited + giving + ungivable + given
  59.     numPriorities    INTEGER (0..MAX),
  60.             -- the number of TCs in an MCS connection
  61.     minThroughput    INTEGER (0..MAX),
  62.             -- the enforced number of octets per second
  63.     maxHeight    INTEGER (0..MAX),
  64.             -- a limit on the height of a provider
  65.     maxMCSPDUsize    INTEGER (0..MAX),
  66.             -- an octet limit on domain MCSPDUs
  67.     protocolVersion    INTEGER (0..MAX)
  68. }
  69.  
  70. -- Part 2:  Connect provider
  71.  
  72. Connect-Initial        ::= [APPLICATION 101] IMPLICIT SEQUENCE
  73. {
  74.     callingDomainSelector    OCTET STRING,
  75.     calledDomainSelector    OCTET STRING,
  76.     upwardFlag        BOOLEAN,
  77.                 -- TRUE if called provider is higher
  78.     targetParameters    DomainParameters,
  79.     minimumParameters    DomainParameters,
  80.     maximumParameters    DomainParameters,
  81.     userData        OCTET STRING
  82. }
  83.  
  84. Connect-Response    ::= [APPLICATION 102] IMPLICIT SEQUENCE
  85. {
  86.     result            Result,
  87.     calledConnectId        INTEGER (0..MAX),
  88.                 -- assigned by the called provider
  89.                 -- to identify additional TCs of
  90.                 -- the same MCS connection
  91.     domainParameters    DomainParameters,
  92.     userData        OCTET STRING
  93. }
  94.  
  95. Connect-Additional    ::= [APPLICATION 103] IMPLICIT SEQUENCE
  96. {
  97.     calledConnectId        INTEGER (0..MAX),
  98.     dataPriority        DataPriority
  99. }
  100.  
  101. Connect-Result        ::= [APPLICATION 104] IMPLICIT SEQUENCE
  102. {
  103.     result            Result
  104. }
  105.  
  106. -- Part 3:  Merge domain
  107.  
  108. PDin    ::= [APPLICATION 0] IMPLICIT SEQUENCE     -- plumb domain indication
  109. {
  110.     heightLimit        INTEGER (0..MAX)
  111.                 -- a restriction on the MCSPDU receiver
  112. }
  113.  
  114. EDrq    ::= [APPLICATION 1] IMPLICIT SEQUENCE     -- erect domain request
  115. {
  116.     subHeight        INTEGER (0..MAX),
  117.                 -- height in domain of the MCSPDU transmitter
  118.     subInterval        INTEGER (0..MAX)
  119.                 -- its throughput enforcement interval in milliseconds
  120. }
  121.  
  122. ChannelAttributes ::= CHOICE
  123. {
  124.     static            [0] IMPLICIT SEQUENCE
  125.     {
  126.         channelId        StaticChannelId
  127.                     -- joined is implicitly TRUE
  128.     },
  129.     userId            [1] IMPLICIT SEQUENCE
  130.     {
  131.         joined            BOOLEAN,
  132.                     -- TRUE if user is joined to its user id
  133.         userId            UserId
  134.     },
  135.     private            [2] IMPLICIT SEQUENCE
  136.     {
  137.         joined            BOOLEAN,
  138.                     -- TRUE if channel id is joined below
  139.         channelId        PrivateChannelId,
  140.         manager            UserId,
  141.         admitted        SET OF UserId
  142.                     -- may span multiple MCrq
  143.     },
  144.     assigned        [3] IMPLICIT SEQUENCE
  145.     {
  146.         channelId        AssignedChannelId
  147.                     -- joined is implicitly TRUE
  148.     }
  149. }
  150.  
  151. MCrq    ::= [APPLICATION 2] IMPLICIT SEQUENCE     -- merge channels request
  152. {
  153.     mergeChannels        SET OF ChannelAttributes,
  154.     purgeChannelIds        SET OF ChannelId
  155. }
  156.  
  157. MCcf    ::= [APPLICATION 3] IMPLICIT SEQUENCE     -- merge channels confirm
  158. {
  159.     mergeChannels        SET OF ChannelAttributes,
  160.     purgeChannelIds        SET OF ChannelId
  161. }
  162.  
  163. PCin    ::= [APPLICATION 4] IMPLICIT SEQUENCE     -- purge channels indication
  164. {
  165.     detachUserIds        SET OF UserId,
  166.                 -- purge user id channels
  167.     purgeChannelIds        SET OF ChannelId
  168.                 -- purge other channel ids
  169. }
  170.  
  171. TokenAttributes ::= CHOICE
  172. {
  173.     grabbed            [0] IMPLICIT SEQUENCE
  174.     {
  175.         tokenId            TokenId,
  176.         grabber            UserId
  177.     },
  178.     inhibited        [1] IMPLICIT SEQUENCE
  179.     {
  180.         tokenId            TokenId,
  181.         inhibitors        SET OF UserId
  182.                     -- may span multiple MTrq
  183.     },
  184.     giving            [2] IMPLICIT SEQUENCE
  185.     {
  186.         tokenId            TokenId,
  187.         grabber            UserId,
  188.         recipient        UserId
  189.     },
  190.     ungivable        [3] IMPLICIT SEQUENCE
  191.     {
  192.         tokenId            TokenId,
  193.         grabber            UserId
  194.         -- recipient has since detached
  195.     },
  196.     given            [4] IMPLICIT SEQUENCE
  197.     {
  198.         tokenId            TokenId,
  199.         recipient        UserId
  200.         -- grabber released or detached
  201.     }
  202. }
  203.  
  204. MTrq    ::= [APPLICATION 5] IMPLICIT SEQUENCE     -- merge tokens request
  205. {
  206.     mergeTokens        SET OF TokenAttributes,
  207.     purgeTokenIds        SET OF TokenId
  208. }
  209.  
  210. MTcf    ::= [APPLICATION 6] IMPLICIT SEQUENCE     -- merge tokens indication
  211. {
  212.     mergeTokens        SET OF TokenAttributes,
  213.     purgeTokenIds        SET OF TokenId
  214. }
  215.  
  216. PTin    ::= [APPLICATION 7] IMPLICIT SEQUENCE     -- purge tokens indication
  217. {
  218.     purgeTokenIds        SET OF TokenId
  219. }
  220.  
  221. -- Part 4:  Disconnect provider
  222.  
  223. DPum    ::= [APPLICATION 8] IMPLICIT SEQUENCE     -- disconnect provider ultimatum
  224. {
  225.     reason            Reason
  226. }
  227.  
  228. RJum    ::= [APPLICATION 9] IMPLICIT SEQUENCE     -- reject MCSPDU ultimatum
  229. {
  230.     diagnostic        Diagnostic,
  231.     initialOctets        OCTET STRING
  232. }
  233.  
  234. -- Part 5:  Attach/Detach user
  235.  
  236. AUrq    ::= [APPLICATION 10] IMPLICIT SEQUENCE     -- attach user request
  237. {
  238. }
  239.  
  240. AUcf    ::= [APPLICATION 11] IMPLICIT SEQUENCE     -- attach user confirm
  241. {
  242.     result            Result,
  243.     initiator        UserId OPTIONAL
  244. }
  245.  
  246. DUrq    ::= [APPLICATION 12] IMPLICIT SEQUENCE     -- detach user request
  247. {
  248.     reason            Reason,
  249.     userIds            SET OF UserId
  250. }
  251. DUin    ::= [APPLICATION 13] IMPLICIT SEQUENCE     -- detach user indication
  252. {
  253.     reason            Reason,
  254.     userIds            SET OF UserId
  255. }
  256.  
  257. -- Part 6:  Channel management
  258.  
  259. CJrq    ::= [APPLICATION 14] IMPLICIT SEQUENCE     -- channel join request
  260. {
  261.     initiator        UserId,
  262.     channelId        ChannelId
  263.                 -- may be zero
  264. }
  265.  
  266. CJcf    ::= [APPLICATION 15] IMPLICIT SEQUENCE     -- channel join confirm
  267. {
  268.     result            Result,
  269.     initiator        UserId,
  270.     requested        ChannelId,
  271.                 -- may be zero
  272.     channelId        ChannelId OPTIONAL
  273. }
  274.  
  275. CLrq    ::= [APPLICATION 16] IMPLICIT SEQUENCE     -- channel leave request
  276. {
  277.     channelIds        SET OF ChannelId
  278. }
  279.  
  280. CCrq    ::= [APPLICATION 17] IMPLICIT SEQUENCE     -- channel convene request
  281. {
  282.     initiator        UserId
  283. }
  284.  
  285. CCcf    ::= [APPLICATION 18] IMPLICIT SEQUENCE     -- channel convene confirm
  286. {
  287.     result            Result,
  288.     initiator        UserId,
  289.     channelId        PrivateChannelId OPTIONAL
  290. }
  291.  
  292. CDrq    ::= [APPLICATION 19] IMPLICIT SEQUENCE     -- channel disband request
  293. {
  294.     initiator        UserId,
  295.     channelId        PrivateChannelId
  296. }
  297.  
  298. CDin    ::= [APPLICATION 20] IMPLICIT SEQUENCE     -- channel disband indication
  299. {
  300.     channelId        PrivateChannelId
  301. }
  302.  
  303. CArq    ::= [APPLICATION 21] IMPLICIT SEQUENCE     -- channel admit request
  304. {
  305.     initiator        UserId,
  306.     channelId        PrivateChannelId,
  307.     userIds            SET OF UserId
  308. }
  309.  
  310. CAin    ::= [APPLICATION 22] IMPLICIT SEQUENCE     -- channel admit indication
  311. {
  312.     initiator        UserId,
  313.     channelId        PrivateChannelId,
  314.     userIds            SET OF UserId
  315. }
  316.  
  317. CErq    ::= [APPLICATION 23] IMPLICIT SEQUENCE     -- channel expel request
  318. {
  319.     initiator        UserId,
  320.     channelId        PrivateChannelId,
  321.     userIds            SET OF UserId
  322. }
  323.  
  324. CEin    ::= [APPLICATION 24] IMPLICIT SEQUENCE     -- channel expel indication
  325. {
  326.     channelId        PrivateChannelId,
  327.     userIds            SET OF UserId
  328. }
  329.  
  330. -- Part 7:  Data transfer
  331.  
  332. SDrq    ::= [APPLICATION 25] IMPLICIT SEQUENCE     -- send data request
  333. {
  334.     initiator        UserId,
  335.     channelId        ChannelId,
  336.     dataPriority        DataPriority,
  337.     segmentation        Segmentation,
  338.     userData        OCTET STRING
  339. }
  340.  
  341. SDin    ::= [APPLICATION 26] IMPLICIT SEQUENCE     -- send data indication
  342. {
  343.     initiator        UserId,
  344.     channelId        ChannelId,
  345.     dataPriority        DataPriority,
  346.     segmentation        Segmentation,
  347.     userData        OCTET STRING
  348. }
  349.  
  350. USrq    ::= [APPLICATION 27] IMPLICIT SEQUENCE     -- uniform send data request
  351. {
  352.     initiator        UserId,
  353.     channelId        ChannelId,
  354.     dataPriority        DataPriority,
  355.     segmentation        Segmentation,
  356.     userData        OCTET STRING
  357. }
  358.  
  359. USin    ::= [APPLICATION 28] IMPLICIT SEQUENCE     -- uniform send data indication
  360. {
  361.     initiator        UserId,
  362.     channelId        ChannelId,
  363.     dataPriority        DataPriority,
  364.     segmentation        Segmentation,
  365.     userData        OCTET STRING
  366. }
  367.  
  368. -- Part 8:  Token management
  369.  
  370. TGrq    ::= [APPLICATION 29] IMPLICIT SEQUENCE     -- token grab request
  371. {
  372.     initiator        UserId,
  373.     tokenId            TokenId
  374. }
  375.  
  376. TGcf    ::= [APPLICATION 30] IMPLICIT SEQUENCE     -- token grab confirm
  377. {
  378.     result            Result,
  379.     initiator        UserId,
  380.     tokenId            TokenId,
  381.     tokenStatus        TokenStatus
  382. }
  383.  
  384. TIrq    ::= [APPLICATION 31] IMPLICIT SEQUENCE     -- token inhibit request
  385. {
  386.     initiator        UserId,
  387.     tokenId            TokenId
  388. }
  389.  
  390. TIcf    ::= [APPLICATION 32] IMPLICIT SEQUENCE     -- token inhibit confirm
  391. {
  392.     result            Result,
  393.     initiator        UserId,
  394.     tokenId            TokenId,
  395.     tokenStatus        TokenStatus
  396. }
  397.  
  398. TVrq    ::= [APPLICATION 33] IMPLICIT SEQUENCE     -- token give request
  399. {
  400.     initiator        UserId,
  401.     tokenId            TokenId,
  402.     recipient        UserId
  403. }
  404.  
  405. TVin    ::= [APPLICATION 34] IMPLICIT SEQUENCE     -- token give indication
  406. {
  407.     initiator        UserId,
  408.     tokenId            TokenId,
  409.     recipient        UserId
  410. }
  411.  
  412. TVrs    ::= [APPLICATION 35] IMPLICIT SEQUENCE     -- token give response
  413. {
  414.     result            Result,
  415.     recipient        UserId,
  416.     tokenId            TokenId
  417. }
  418.  
  419. TVcf    ::= [APPLICATION 36] IMPLICIT SEQUENCE     -- token give confirm
  420. {
  421.     result            Result,
  422.     initiator        UserId,
  423.     tokenId            TokenId,
  424.     tokenStatus        TokenStatus
  425. }
  426.  
  427. TPrq    ::= [APPLICATION 37] IMPLICIT SEQUENCE     -- token please request
  428. {
  429.     initiator        UserId,
  430.     tokenId            TokenId
  431. }
  432.  
  433. TPin    ::= [APPLICATION 38] IMPLICIT SEQUENCE     -- token please indication
  434. {
  435.     initiator        UserId,
  436.     tokenId            TokenId
  437. }
  438.  
  439. TRrq    ::= [APPLICATION 39] IMPLICIT SEQUENCE     -- token release request
  440. {
  441.     initiator        UserId,
  442.     tokenId            TokenId
  443. }
  444.  
  445. TRcf    ::= [APPLICATION 40] IMPLICIT SEQUENCE     -- token release confirm
  446. {
  447.     result            Result,
  448.     initiator        UserId,
  449.     tokenId            TokenId,
  450.     tokenStatus        TokenStatus
  451. }
  452.  
  453. TTrq    ::= [APPLICATION 41] IMPLICIT SEQUENCE     -- token test request
  454. {
  455.     initiator        UserId,
  456.     tokenId            TokenId
  457. }
  458.  
  459. TTcf    ::= [APPLICATION 42] IMPLICIT SEQUENCE     -- token test confirm
  460. {
  461.     initiator        UserId,
  462.     tokenId            TokenId,
  463.     tokenStatus        TokenStatus
  464. }
  465.  
  466. -- Part 9:  Status codes
  467.  
  468. Reason        ::= ENUMERATED        -- in DPum, DUrq, DUin
  469. {
  470.         rn-domain-disconnected        (0),
  471.         rn-provider-initiated        (1),
  472.         rn-token-purged            (2),
  473.         rn-user-requested        (3),
  474.         rn-channel-purged        (4)
  475. }
  476.  
  477. Result        ::= ENUMERATED        -- in Connect, response, confirm
  478. {
  479.         rt-successful            (0),
  480.         rt-domain-merging        (1),
  481.         rt-domain-not-hierarchical    (2),
  482.         rt-no-such-channel        (3),
  483.         rt-no-such-domain        (4),
  484.         rt-no-such-user            (5),
  485.         rt-not-admitted            (6),
  486.         rt-other-user-id        (7),
  487.         rt-parameters-unacceptable    (8),
  488.         rt-token-not-available        (9),
  489.         rt-token-not-possessed           (10),
  490.         rt-too-many-channels           (11),
  491.         rt-too-many-tokens           (12),
  492.         rt-too-many-users           (13),
  493.         rt-unspecified-failure           (14),
  494.         rt-user-rejected           (15)
  495. }
  496.  
  497. Diagnostic    ::= ENUMERATED        -- in RJum
  498. {
  499.         dc-inconsistent-merge        (0),
  500.         dc-forbidden-PDU-downward    (1),
  501.         dc-forbidden-PDU-upward        (2),
  502.         dc-invalid-BER-encoding        (3),
  503.         dc-invalid-PER-encoding        (4),
  504.         dc-misrouted-user        (5),
  505.         dc-unrequested-confirm        (6),
  506.         dc-wrong-transport-priority    (7),
  507.         dc-channel-id-conflict        (8),
  508.         dc-token-id-conflict        (9),
  509.         dc-not-user-id-channel           (10),
  510.         dc-too-many-channels           (11),
  511.         dc-too-many-tokens           (12),
  512.         dc-too-many-users           (13)
  513. }
  514.  
  515. -- Part 10:  MCSPDU repertoire
  516.  
  517. ConnectMCSPDU     ::= CHOICE
  518. {
  519.     connect-initial        Connect-Initial,
  520.     connect-response    Connect-Response,
  521.     connect-additional    Connect-Additional,
  522.     connect-result        Connect-Result
  523. }
  524.  
  525. DomainMCSPDU     ::= CHOICE
  526. {
  527.     pdin            PDin,
  528.     edrq            EDrq,
  529.     mcrq            MCrq,
  530.     mccf            MCcf,
  531.     pcin            PCin,
  532.     mtrq            MTrq,
  533.     mtcf            MTcf,
  534.     ptin            PTin,
  535.     dpum            DPum,
  536.     rjum            RJum,
  537.     aurq            AUrq,
  538.     aucf            AUcf,
  539.     durq            DUrq,
  540.     duin            DUin,
  541.     cjrq            CJrq,
  542.     cjcf            CJcf,
  543.     clrq            CLrq,
  544.     ccrq            CCrq,
  545.     cccf            CCcf,
  546.     cdrq            CDrq,
  547.     cdin            CDin,
  548.     carq            CArq,
  549.     cain            CAin,
  550.     cerq            CErq,
  551.     cein            CEin,
  552.     sdrq            SDrq,
  553.     sdin            SDin,
  554.     usrq            USrq,
  555.     usin            USin,
  556.     tgrq            TGrq,
  557.     tgcf            TGcf,
  558.     tirq            TIrq,
  559.     ticf            TIcf,
  560.     tvrq            TVrq,
  561.     tvin            TVin,
  562.     tvrs            TVrs,
  563.     tvcf            TVcf,
  564.     tprq            TPrq,
  565.     tpin            TPin,
  566.     trrq            TRrq,
  567.     trcf            TRcf,
  568.     ttrq            TTrq,
  569.     ttcf            TTcf
  570. }
  571.  
  572. END
  573.