1 -- Module MCS-PROTOCOL (T.125:02/1998)
2 MCS-PROTOCOL DEFINITIONS ::=
5 -- Part 1: Fundamental MCS types
6 ChannelId ::= INTEGER(0..65535) -- range is 16 bits
9 StaticChannelId ::= ChannelId(1..1000) -- those known permanently
12 DynamicChannelId ::= ChannelId(1001..65535) -- those created and deleted
15 UserId ::= DynamicChannelId -- created by Attach-User
17 -- deleted by Detach-User
19 DynamicChannelId -- created by Channel-Convene
21 -- deleted by Channel-Disband
23 DynamicChannelId -- created by Channel-Join zero
25 -- deleted by last Channel-Leave
26 TokenId ::= INTEGER(1..65535) -- all are known permanently
29 TokenStatus ::= ENUMERATED {
30 notInUse(0), selfGrabbed(1), otherGrabbed(2), selfInhibited(3),
31 otherInhibited(4), selfRecipient(5), selfGiving(6), otherGiving(7)}
33 DataPriority ::= ENUMERATED {top(0), high(1), medium(2), low(3)}
35 Segmentation ::= BIT STRING {begin(0), end(1)}(SIZE (2))
37 DomainParameters ::= SEQUENCE {
38 maxChannelIds INTEGER(0..MAX),
39 -- a limit on channel ids in use,
40 -- static + user id + private + assigned
41 maxUserIds INTEGER(0..MAX),
42 -- a sublimit on user id channels alone
43 maxTokenIds INTEGER(0..MAX),
44 -- a limit on token ids in use
45 -- grabbed + inhibited + giving + ungivable + given
46 numPriorities INTEGER(0..MAX),
47 -- the number of TCs in an MCS connection
48 minThroughput INTEGER(0..MAX),
49 -- the enforced number of octets per second
50 maxHeight INTEGER(0..MAX),
51 -- a limit on the height of a provider
52 maxMCSPDUsize INTEGER(0..MAX),
53 -- an octet limit on domain MCSPDUs
54 protocolVersion INTEGER(0..MAX)
57 -- Part 2: Connect provider
58 Connect-Initial ::= [APPLICATION 101] IMPLICIT SEQUENCE {
59 callingDomainSelector OCTET STRING,
60 calledDomainSelector OCTET STRING,
62 -- TRUE if called provider is higher
63 targetParameters DomainParameters,
64 minimumParameters DomainParameters,
65 maximumParameters DomainParameters,
69 Connect-Response ::= [APPLICATION 102] IMPLICIT SEQUENCE {
71 calledConnectId INTEGER(0..MAX),
72 -- assigned by the called provider
73 -- to identify additional TCs of
74 -- the same MCS connection
75 domainParameters DomainParameters,
79 Connect-Additional ::= [APPLICATION 103] IMPLICIT SEQUENCE {
80 calledConnectId INTEGER(0..MAX),
81 dataPriority DataPriority
84 Connect-Result ::= [APPLICATION 104] IMPLICIT SEQUENCE {result Result
87 -- Part 3: Merge domain
88 PlumbDomainIndication ::= [APPLICATION 0] IMPLICIT SEQUENCE {
89 heightLimit INTEGER(0..MAX)
90 } -- a restriction on the MCSPDU receiver
92 ErectDomainRequest ::= [APPLICATION 1] IMPLICIT SEQUENCE {
93 subHeight INTEGER(0..MAX),
94 -- height in domain of the MCSPDU transmitter
95 subInterval INTEGER(0..MAX)
96 } -- its throughput enforcement interval in milliseconds
98 ChannelAttributes ::= CHOICE {
99 static [0] IMPLICIT SEQUENCE {channelId StaticChannelId}, -- joined is implicitly TRUE
101 [1] IMPLICIT SEQUENCE {joined BOOLEAN,
102 -- TRUE if user is joined to its user id
105 [2] IMPLICIT SEQUENCE {joined BOOLEAN,
106 -- TRUE if channel id is joined below
107 channelId PrivateChannelId,
109 admitted SET OF UserId}, -- may span multiple MergeChannelsRequest
110 assigned [3] IMPLICIT SEQUENCE {channelId AssignedChannelId} -- joined is implicitly TRUE
113 MergeChannelsRequest ::= [APPLICATION 2] IMPLICIT SEQUENCE {
114 mergeChannels SET OF ChannelAttributes,
115 purgeChannelIds SET OF ChannelId
118 MergeChannelsConfirm ::= [APPLICATION 3] IMPLICIT SEQUENCE {
119 mergeChannels SET OF ChannelAttributes,
120 purgeChannelIds SET OF ChannelId
123 PurgeChannelsIndication ::= [APPLICATION 4] IMPLICIT SEQUENCE {
124 detachUserIds SET OF UserId,
125 -- purge user id channels
126 purgeChannelIds SET OF ChannelId
127 } -- purge other channels
129 TokenAttributes ::= CHOICE {
130 grabbed [0] IMPLICIT SEQUENCE {tokenId TokenId,
133 [1] IMPLICIT SEQUENCE {tokenId TokenId,
134 inhibitors SET OF UserId}, -- may span multiple MergeTokensRequest
136 [2] IMPLICIT SEQUENCE {tokenId TokenId,
139 ungivable [3] IMPLICIT SEQUENCE {tokenId TokenId,
140 grabber UserId}, -- recipient has since detached
141 given [4] IMPLICIT SEQUENCE {tokenId TokenId,
142 recipient UserId} -- grabber released or detached
145 MergeTokensRequest ::= [APPLICATION 5] IMPLICIT SEQUENCE {
146 mergeTokens SET OF TokenAttributes,
147 purgeTokenIds SET OF TokenId
150 MergeTokensConfirm ::= [APPLICATION 6] IMPLICIT SEQUENCE {
151 mergeTokens SET OF TokenAttributes,
152 purgeTokenIds SET OF TokenId
155 PurgeTokensIndication ::= [APPLICATION 7] IMPLICIT SEQUENCE {
156 purgeTokenIds SET OF TokenId
159 -- Part 4: Disconnect provider
160 DisconnectProviderUltimatum ::= [APPLICATION 8] IMPLICIT SEQUENCE {
164 RejectMCSPDUUltimatum ::= [APPLICATION 9] IMPLICIT SEQUENCE {
165 diagnostic Diagnostic,
166 initialOctets OCTET STRING
169 -- Part 5: Attach/Detach user
170 AttachUserRequest ::= [APPLICATION 10] IMPLICIT SEQUENCE {
173 AttachUserConfirm ::= [APPLICATION 11] IMPLICIT SEQUENCE {
175 initiator UserId OPTIONAL
178 DetachUserRequest ::= [APPLICATION 12] IMPLICIT SEQUENCE {
180 userIds SET OF UserId
183 DetachUserIndication ::= [APPLICATION 13] IMPLICIT SEQUENCE {
185 userIds SET OF UserId
188 -- Part 6: Channel management
189 ChannelJoinRequest ::= [APPLICATION 14] IMPLICIT SEQUENCE {
194 ChannelJoinConfirm ::= [APPLICATION 15] IMPLICIT SEQUENCE {
199 channelId ChannelId OPTIONAL
202 ChannelLeaveRequest ::= [APPLICATION 16] IMPLICIT SEQUENCE {
203 channelIds SET OF ChannelId
206 ChannelConveneRequest ::= [APPLICATION 17] IMPLICIT SEQUENCE {initiator UserId
209 ChannelConveneConfirm ::= [APPLICATION 18] IMPLICIT SEQUENCE {
212 channelId PrivateChannelId OPTIONAL
215 ChannelDisbandRequest ::= [APPLICATION 19] IMPLICIT SEQUENCE {
217 channelId PrivateChannelId
220 ChannelDisbandIndication ::= [APPLICATION 20] IMPLICIT SEQUENCE {
221 channelId PrivateChannelId
224 ChannelAdmitRequest ::= [APPLICATION 21] IMPLICIT SEQUENCE {
226 channelId PrivateChannelId,
227 userIds SET OF UserId
230 ChannelAdmitIndication ::= [APPLICATION 22] IMPLICIT SEQUENCE {
232 channelId PrivateChannelId,
233 userIds SET OF UserId
236 ChannelExpelRequest ::= [APPLICATION 23] IMPLICIT SEQUENCE {
238 channelId PrivateChannelId,
239 userIds SET OF UserId
242 ChannelExpelIndication ::= [APPLICATION 24] IMPLICIT SEQUENCE {
243 channelId PrivateChannelId,
244 userIds SET OF UserId
247 -- Part 7: Data transfer
248 SendDataRequest ::= [APPLICATION 25] IMPLICIT SEQUENCE {
251 dataPriority DataPriority,
252 segmentation Segmentation,
253 userData OCTET STRING
256 SendDataIndication ::= [APPLICATION 26] IMPLICIT SEQUENCE {
259 dataPriority DataPriority,
260 segmentation Segmentation,
261 userData OCTET STRING
264 UniformSendDataRequest ::= [APPLICATION 27] IMPLICIT SEQUENCE {
267 dataPriority DataPriority,
268 segmentation Segmentation,
269 userData OCTET STRING
272 UniformSendDataIndication ::= [APPLICATION 28] IMPLICIT SEQUENCE {
275 dataPriority DataPriority,
276 segmentation Segmentation,
277 userData OCTET STRING
280 -- Part 8: Token management
281 TokenGrabRequest ::= [APPLICATION 29] IMPLICIT SEQUENCE {
286 TokenGrabConfirm ::= [APPLICATION 30] IMPLICIT SEQUENCE {
290 tokenStatus TokenStatus
293 TokenInhibitRequest ::= [APPLICATION 31] IMPLICIT SEQUENCE {
298 TokenInhibitConfirm ::= [APPLICATION 32] IMPLICIT SEQUENCE {
302 tokenStatus TokenStatus
305 TokenGiveRequest ::= [APPLICATION 33] IMPLICIT SEQUENCE {
311 TokenGiveIndication ::= [APPLICATION 34] IMPLICIT SEQUENCE {
317 TokenGiveResponse ::= [APPLICATION 35] IMPLICIT SEQUENCE {
323 TokenGiveConfirm ::= [APPLICATION 36] IMPLICIT SEQUENCE {
327 tokenStatus TokenStatus
330 TokenPleaseRequest ::= [APPLICATION 37] IMPLICIT SEQUENCE {
335 TokenPleaseIndication ::= [APPLICATION 38] IMPLICIT SEQUENCE {
340 TokenReleaseRequest ::= [APPLICATION 39] IMPLICIT SEQUENCE {
345 TokenReleaseConfirm ::= [APPLICATION 40] IMPLICIT SEQUENCE {
349 tokenStatus TokenStatus
352 TokenTestRequest ::= [APPLICATION 41] IMPLICIT SEQUENCE {
357 TokenTestConfirm ::= [APPLICATION 42] IMPLICIT SEQUENCE {
360 tokenStatus TokenStatus
363 -- Part 9: Status codes
364 -- in DisconnectProviderUltimatum, DetachUserRequest, DetachUserIndication
365 Reason ::= ENUMERATED {
366 rn-domain-disconnected(0), rn-provider-initiated(1), rn-token-purged(2),
367 rn-user-requested(3), rn-channel-purged(4)}
369 -- in Connect, response, confirm
370 Result ::= ENUMERATED {
371 rt-successful(0), rt-domain-merging(1), rt-domain-not-hierarchical(2),
372 rt-no-such-channel(3), rt-no-such-domain(4), rt-no-such-user(5),
373 rt-not-admitted(6), rt-other-user-id(7), rt-parameters-unacceptable(8),
374 rt-token-not-available(9), rt-token-not-possessed(10),
375 rt-too-many-channels(11), rt-too-many-tokens(12), rt-too-many-users(13),
376 rt-unspecified-failure(14), rt-user-rejected(15)}
378 -- in RejectMCSPDUUltimatum
379 Diagnostic ::= ENUMERATED {
380 dc-inconsistent-merge(0), dc-forbidden-PDU-downward(1),
381 dc-forbidden-PDU-upward(2), dc-invalid-BER-encoding(3),
382 dc-invalid-PER-encoding(4), dc-misrouted-user(5), dc-unrequested-confirm(6),
383 dc-wrong-transport-priority(7), dc-channel-id-conflict(8),
384 dc-token-id-conflict(9), dc-not-user-id-channel(10),
385 dc-too-many-channels(11), dc-too-many-tokens(12), dc-too-many-users(13)
388 -- Part 10: MCSPDU repertoire
389 ConnectMCSPDU ::= CHOICE {
390 connect-initial Connect-Initial,
391 connect-response Connect-Response,
392 connect-additional Connect-Additional,
393 connect-result Connect-Result
396 DomainMCSPDU ::= CHOICE {
397 plumbDomainIndication PlumbDomainIndication,
398 erectDomainRequest ErectDomainRequest,
399 mergeChannelsRequest MergeChannelsRequest,
400 mergeChannelsConfirm MergeChannelsConfirm,
401 purgeChannelsIndication PurgeChannelsIndication,
402 mergeTokensRequest MergeTokensRequest,
403 mergeTokensConfirm MergeTokensConfirm,
404 purgeTokensIndication PurgeTokensIndication,
405 disconnectProviderUltimatum DisconnectProviderUltimatum,
406 rejectMCSPDUUltimatum RejectMCSPDUUltimatum,
407 attachUserRequest AttachUserRequest,
408 attachUserConfirm AttachUserConfirm,
409 detachUserRequest DetachUserRequest,
410 detachUserIndication DetachUserIndication,
411 channelJoinRequest ChannelJoinRequest,
412 channelJoinConfirm ChannelJoinConfirm,
413 channelLeaveRequest ChannelLeaveRequest,
414 channelConveneRequest ChannelConveneRequest,
415 channelConveneConfirm ChannelConveneConfirm,
416 channelDisbandRequest ChannelDisbandRequest,
417 channelDisbandIndication ChannelDisbandIndication,
418 channelAdmitRequest ChannelAdmitRequest,
419 channelAdmitIndication ChannelAdmitIndication,
420 channelExpelRequest ChannelExpelRequest,
421 channelExpelIndication ChannelExpelIndication,
422 sendDataRequest SendDataRequest,
423 sendDataIndication SendDataIndication,
424 uniformSendDataRequest UniformSendDataRequest,
425 uniformSendDataIndication UniformSendDataIndication,
426 tokenGrabRequest TokenGrabRequest,
427 tokenGrabConfirm TokenGrabConfirm,
428 tokenInhibitRequest TokenInhibitRequest,
429 tokenInhibitConfirm TokenInhibitConfirm,
430 tokenGiveRequest TokenGiveRequest,
431 tokenGiveIndication TokenGiveIndication,
432 tokenGiveResponse TokenGiveResponse,
433 tokenGiveConfirm TokenGiveConfirm,
434 tokenPleaseRequest TokenPleaseRequest,
435 tokenPleaseIndication TokenPleaseIndication,
436 tokenReleaseRequest TokenReleaseRequest,
437 tokenReleaseConfirm TokenReleaseConfirm,
438 tokenTestRequest TokenTestRequest,
439 tokenTestConfirm TokenTestConfirm
444 -- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D