aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/t125/MCS-PROTOCOL.asn
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/asn1/t125/MCS-PROTOCOL.asn')
-rw-r--r--epan/dissectors/asn1/t125/MCS-PROTOCOL.asn445
1 files changed, 445 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/t125/MCS-PROTOCOL.asn b/epan/dissectors/asn1/t125/MCS-PROTOCOL.asn
new file mode 100644
index 0000000000..95fda65887
--- /dev/null
+++ b/epan/dissectors/asn1/t125/MCS-PROTOCOL.asn
@@ -0,0 +1,445 @@
+-- Module MCS-PROTOCOL (T.125:02/1998)
+MCS-PROTOCOL DEFINITIONS ::=
+BEGIN
+
+-- Part 1: Fundamental MCS types
+ChannelId ::= INTEGER(0..65535) -- range is 16 bits
+
+
+StaticChannelId ::= ChannelId(1..1000) -- those known permanently
+
+
+DynamicChannelId ::= ChannelId(1001..65535) -- those created and deleted
+
+
+UserId ::= DynamicChannelId -- created by Attach-User
+
+-- deleted by Detach-User
+PrivateChannelId ::=
+ DynamicChannelId -- created by Channel-Convene
+
+-- deleted by Channel-Disband
+AssignedChannelId ::=
+ DynamicChannelId -- created by Channel-Join zero
+
+-- deleted by last Channel-Leave
+TokenId ::= INTEGER(1..65535) -- all are known permanently
+
+
+TokenStatus ::= ENUMERATED {
+ notInUse(0), selfGrabbed(1), otherGrabbed(2), selfInhibited(3),
+ otherInhibited(4), selfRecipient(5), selfGiving(6), otherGiving(7)}
+
+DataPriority ::= ENUMERATED {top(0), high(1), medium(2), low(3)}
+
+Segmentation ::= BIT STRING {begin(0), end(1)}(SIZE (2))
+
+DomainParameters ::= SEQUENCE {
+ maxChannelIds INTEGER(0..MAX),
+ -- a limit on channel ids in use,
+ -- static + user id + private + assigned
+ maxUserIds INTEGER(0..MAX),
+ -- a sublimit on user id channels alone
+ maxTokenIds INTEGER(0..MAX),
+ -- a limit on token ids in use
+ -- grabbed + inhibited + giving + ungivable + given
+ numPriorities INTEGER(0..MAX),
+ -- the number of TCs in an MCS connection
+ minThroughput INTEGER(0..MAX),
+ -- the enforced number of octets per second
+ maxHeight INTEGER(0..MAX),
+ -- a limit on the height of a provider
+ maxMCSPDUsize INTEGER(0..MAX),
+ -- an octet limit on domain MCSPDUs
+ protocolVersion INTEGER(0..MAX)
+}
+
+-- Part 2: Connect provider
+Connect-Initial ::= [APPLICATION 101] IMPLICIT SEQUENCE {
+ callingDomainSelector OCTET STRING,
+ calledDomainSelector OCTET STRING,
+ upwardFlag BOOLEAN,
+ -- TRUE if called provider is higher
+ targetParameters DomainParameters,
+ minimumParameters DomainParameters,
+ maximumParameters DomainParameters,
+ userData OCTET STRING
+}
+
+Connect-Response ::= [APPLICATION 102] IMPLICIT SEQUENCE {
+ result Result,
+ calledConnectId INTEGER(0..MAX),
+ -- assigned by the called provider
+ -- to identify additional TCs of
+ -- the same MCS connection
+ domainParameters DomainParameters,
+ userData OCTET STRING
+}
+
+Connect-Additional ::= [APPLICATION 103] IMPLICIT SEQUENCE {
+ calledConnectId INTEGER(0..MAX),
+ dataPriority DataPriority
+}
+
+Connect-Result ::= [APPLICATION 104] IMPLICIT SEQUENCE {result Result
+}
+
+-- Part 3: Merge domain
+PlumbDomainIndication ::= [APPLICATION 0] IMPLICIT SEQUENCE {
+ heightLimit INTEGER(0..MAX)
+} -- a restriction on the MCSPDU receiver
+
+ErectDomainRequest ::= [APPLICATION 1] IMPLICIT SEQUENCE {
+ subHeight INTEGER(0..MAX),
+ -- height in domain of the MCSPDU transmitter
+ subInterval INTEGER(0..MAX)
+} -- its throughput enforcement interval in milliseconds
+
+ChannelAttributes ::= CHOICE {
+ static [0] IMPLICIT SEQUENCE {channelId StaticChannelId}, -- joined is implicitly TRUE
+ userId
+ [1] IMPLICIT SEQUENCE {joined BOOLEAN,
+ -- TRUE if user is joined to its user id
+ userId UserId},
+ private
+ [2] IMPLICIT SEQUENCE {joined BOOLEAN,
+ -- TRUE if channel id is joined below
+ channelId PrivateChannelId,
+ manager UserId,
+ admitted SET OF UserId}, -- may span multiple MergeChannelsRequest
+ assigned [3] IMPLICIT SEQUENCE {channelId AssignedChannelId} -- joined is implicitly TRUE
+}
+
+MergeChannelsRequest ::= [APPLICATION 2] IMPLICIT SEQUENCE {
+ mergeChannels SET OF ChannelAttributes,
+ purgeChannelIds SET OF ChannelId
+}
+
+MergeChannelsConfirm ::= [APPLICATION 3] IMPLICIT SEQUENCE {
+ mergeChannels SET OF ChannelAttributes,
+ purgeChannelIds SET OF ChannelId
+}
+
+PurgeChannelsIndication ::= [APPLICATION 4] IMPLICIT SEQUENCE {
+ detachUserIds SET OF UserId,
+ -- purge user id channels
+ purgeChannelIds SET OF ChannelId
+} -- purge other channels
+
+TokenAttributes ::= CHOICE {
+ grabbed [0] IMPLICIT SEQUENCE {tokenId TokenId,
+ grabber UserId},
+ inhibited
+ [1] IMPLICIT SEQUENCE {tokenId TokenId,
+ inhibitors SET OF UserId}, -- may span multiple MergeTokensRequest
+ giving
+ [2] IMPLICIT SEQUENCE {tokenId TokenId,
+ grabber UserId,
+ recipient UserId},
+ ungivable [3] IMPLICIT SEQUENCE {tokenId TokenId,
+ grabber UserId}, -- recipient has since detached
+ given [4] IMPLICIT SEQUENCE {tokenId TokenId,
+ recipient UserId} -- grabber released or detached
+}
+
+MergeTokensRequest ::= [APPLICATION 5] IMPLICIT SEQUENCE {
+ mergeTokens SET OF TokenAttributes,
+ purgeTokenIds SET OF TokenId
+}
+
+MergeTokensConfirm ::= [APPLICATION 6] IMPLICIT SEQUENCE {
+ mergeTokens SET OF TokenAttributes,
+ purgeTokenIds SET OF TokenId
+}
+
+PurgeTokensIndication ::= [APPLICATION 7] IMPLICIT SEQUENCE {
+ purgeTokenIds SET OF TokenId
+}
+
+-- Part 4: Disconnect provider
+DisconnectProviderUltimatum ::= [APPLICATION 8] IMPLICIT SEQUENCE {
+ reason Reason
+}
+
+RejectMCSPDUUltimatum ::= [APPLICATION 9] IMPLICIT SEQUENCE {
+ diagnostic Diagnostic,
+ initialOctets OCTET STRING
+}
+
+-- Part 5: Attach/Detach user
+AttachUserRequest ::= [APPLICATION 10] IMPLICIT SEQUENCE {
+}
+
+AttachUserConfirm ::= [APPLICATION 11] IMPLICIT SEQUENCE {
+ result Result,
+ initiator UserId OPTIONAL
+}
+
+DetachUserRequest ::= [APPLICATION 12] IMPLICIT SEQUENCE {
+ reason Reason,
+ userIds SET OF UserId
+}
+
+DetachUserIndication ::= [APPLICATION 13] IMPLICIT SEQUENCE {
+ reason Reason,
+ userIds SET OF UserId
+}
+
+-- Part 6: Channel management
+ChannelJoinRequest ::= [APPLICATION 14] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId ChannelId
+} -- may be zero
+
+ChannelJoinConfirm ::= [APPLICATION 15] IMPLICIT SEQUENCE {
+ result Result,
+ initiator UserId,
+ requested ChannelId,
+ -- may be zero
+ channelId ChannelId OPTIONAL
+}
+
+ChannelLeaveRequest ::= [APPLICATION 16] IMPLICIT SEQUENCE {
+ channelIds SET OF ChannelId
+}
+
+ChannelConveneRequest ::= [APPLICATION 17] IMPLICIT SEQUENCE {initiator UserId
+}
+
+ChannelConveneConfirm ::= [APPLICATION 18] IMPLICIT SEQUENCE {
+ result Result,
+ initiator UserId,
+ channelId PrivateChannelId OPTIONAL
+}
+
+ChannelDisbandRequest ::= [APPLICATION 19] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId PrivateChannelId
+}
+
+ChannelDisbandIndication ::= [APPLICATION 20] IMPLICIT SEQUENCE {
+ channelId PrivateChannelId
+}
+
+ChannelAdmitRequest ::= [APPLICATION 21] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId PrivateChannelId,
+ userIds SET OF UserId
+}
+
+ChannelAdmitIndication ::= [APPLICATION 22] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId PrivateChannelId,
+ userIds SET OF UserId
+}
+
+ChannelExpelRequest ::= [APPLICATION 23] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId PrivateChannelId,
+ userIds SET OF UserId
+}
+
+ChannelExpelIndication ::= [APPLICATION 24] IMPLICIT SEQUENCE {
+ channelId PrivateChannelId,
+ userIds SET OF UserId
+}
+
+-- Part 7: Data transfer
+SendDataRequest ::= [APPLICATION 25] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId ChannelId,
+ dataPriority DataPriority,
+ segmentation Segmentation,
+ userData OCTET STRING
+}
+
+SendDataIndication ::= [APPLICATION 26] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId ChannelId,
+ dataPriority DataPriority,
+ segmentation Segmentation,
+ userData OCTET STRING
+}
+
+UniformSendDataRequest ::= [APPLICATION 27] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId ChannelId,
+ dataPriority DataPriority,
+ segmentation Segmentation,
+ userData OCTET STRING
+}
+
+UniformSendDataIndication ::= [APPLICATION 28] IMPLICIT SEQUENCE {
+ initiator UserId,
+ channelId ChannelId,
+ dataPriority DataPriority,
+ segmentation Segmentation,
+ userData OCTET STRING
+}
+
+-- Part 8: Token management
+TokenGrabRequest ::= [APPLICATION 29] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId
+}
+
+TokenGrabConfirm ::= [APPLICATION 30] IMPLICIT SEQUENCE {
+ result Result,
+ initiator UserId,
+ tokenId TokenId,
+ tokenStatus TokenStatus
+}
+
+TokenInhibitRequest ::= [APPLICATION 31] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId
+}
+
+TokenInhibitConfirm ::= [APPLICATION 32] IMPLICIT SEQUENCE {
+ result Result,
+ initiator UserId,
+ tokenId TokenId,
+ tokenStatus TokenStatus
+}
+
+TokenGiveRequest ::= [APPLICATION 33] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId,
+ recipient UserId
+}
+
+TokenGiveIndication ::= [APPLICATION 34] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId,
+ recipient UserId
+}
+
+TokenGiveResponse ::= [APPLICATION 35] IMPLICIT SEQUENCE {
+ result Result,
+ recipient UserId,
+ tokenId TokenId
+}
+
+TokenGiveConfirm ::= [APPLICATION 36] IMPLICIT SEQUENCE {
+ result Result,
+ initiator UserId,
+ tokenId TokenId,
+ tokenStatus TokenStatus
+}
+
+TokenPleaseRequest ::= [APPLICATION 37] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId
+}
+
+TokenPleaseIndication ::= [APPLICATION 38] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId
+}
+
+TokenReleaseRequest ::= [APPLICATION 39] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId
+}
+
+TokenReleaseConfirm ::= [APPLICATION 40] IMPLICIT SEQUENCE {
+ result Result,
+ initiator UserId,
+ tokenId TokenId,
+ tokenStatus TokenStatus
+}
+
+TokenTestRequest ::= [APPLICATION 41] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId
+}
+
+TokenTestConfirm ::= [APPLICATION 42] IMPLICIT SEQUENCE {
+ initiator UserId,
+ tokenId TokenId,
+ tokenStatus TokenStatus
+}
+
+-- Part 9: Status codes
+-- in DisconnectProviderUltimatum, DetachUserRequest, DetachUserIndication
+Reason ::= ENUMERATED {
+ rn-domain-disconnected(0), rn-provider-initiated(1), rn-token-purged(2),
+ rn-user-requested(3), rn-channel-purged(4)}
+
+-- in Connect, response, confirm
+Result ::= ENUMERATED {
+ rt-successful(0), rt-domain-merging(1), rt-domain-not-hierarchical(2),
+ rt-no-such-channel(3), rt-no-such-domain(4), rt-no-such-user(5),
+ rt-not-admitted(6), rt-other-user-id(7), rt-parameters-unacceptable(8),
+ rt-token-not-available(9), rt-token-not-possessed(10),
+ rt-too-many-channels(11), rt-too-many-tokens(12), rt-too-many-users(13),
+ rt-unspecified-failure(14), rt-user-rejected(15)}
+
+-- in RejectMCSPDUUltimatum
+Diagnostic ::= ENUMERATED {
+ dc-inconsistent-merge(0), dc-forbidden-PDU-downward(1),
+ dc-forbidden-PDU-upward(2), dc-invalid-BER-encoding(3),
+ dc-invalid-PER-encoding(4), dc-misrouted-user(5), dc-unrequested-confirm(6),
+ dc-wrong-transport-priority(7), dc-channel-id-conflict(8),
+ dc-token-id-conflict(9), dc-not-user-id-channel(10),
+ dc-too-many-channels(11), dc-too-many-tokens(12), dc-too-many-users(13)
+}
+
+-- Part 10: MCSPDU repertoire
+ConnectMCSPDU ::= CHOICE {
+ connect-initial Connect-Initial,
+ connect-response Connect-Response,
+ connect-additional Connect-Additional,
+ connect-result Connect-Result
+}
+
+DomainMCSPDU ::= CHOICE {
+ plumbDomainIndication PlumbDomainIndication,
+ erectDomainRequest ErectDomainRequest,
+ mergeChannelsRequest MergeChannelsRequest,
+ mergeChannelsConfirm MergeChannelsConfirm,
+ purgeChannelsIndication PurgeChannelsIndication,
+ mergeTokensRequest MergeTokensRequest,
+ mergeTokensConfirm MergeTokensConfirm,
+ purgeTokensIndication PurgeTokensIndication,
+ disconnectProviderUltimatum DisconnectProviderUltimatum,
+ rejectMCSPDUUltimatum RejectMCSPDUUltimatum,
+ attachUserRequest AttachUserRequest,
+ attachUserConfirm AttachUserConfirm,
+ detachUserRequest DetachUserRequest,
+ detachUserIndication DetachUserIndication,
+ channelJoinRequest ChannelJoinRequest,
+ channelJoinConfirm ChannelJoinConfirm,
+ channelLeaveRequest ChannelLeaveRequest,
+ channelConveneRequest ChannelConveneRequest,
+ channelConveneConfirm ChannelConveneConfirm,
+ channelDisbandRequest ChannelDisbandRequest,
+ channelDisbandIndication ChannelDisbandIndication,
+ channelAdmitRequest ChannelAdmitRequest,
+ channelAdmitIndication ChannelAdmitIndication,
+ channelExpelRequest ChannelExpelRequest,
+ channelExpelIndication ChannelExpelIndication,
+ sendDataRequest SendDataRequest,
+ sendDataIndication SendDataIndication,
+ uniformSendDataRequest UniformSendDataRequest,
+ uniformSendDataIndication UniformSendDataIndication,
+ tokenGrabRequest TokenGrabRequest,
+ tokenGrabConfirm TokenGrabConfirm,
+ tokenInhibitRequest TokenInhibitRequest,
+ tokenInhibitConfirm TokenInhibitConfirm,
+ tokenGiveRequest TokenGiveRequest,
+ tokenGiveIndication TokenGiveIndication,
+ tokenGiveResponse TokenGiveResponse,
+ tokenGiveConfirm TokenGiveConfirm,
+ tokenPleaseRequest TokenPleaseRequest,
+ tokenPleaseIndication TokenPleaseIndication,
+ tokenReleaseRequest TokenReleaseRequest,
+ tokenReleaseConfirm TokenReleaseConfirm,
+ tokenTestRequest TokenTestRequest,
+ tokenTestConfirm TokenTestConfirm
+}
+
+END
+
+-- Generated by Asnp, the ASN.1 pretty-printer of France Telecom R&D
+