SABP-PDU {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) 
umts-Access (20) modules (3) sabp(3) version1 (1) sabp-PDU (255) }

DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS
    maxProtocolIEs
FROM SABP-Constants

    Criticality,
    ProcedureCode,
    ProtocolIE-ID
FROM SABP-CommonDataTypes;

SABP-PDU ::= CHOICE {
    initiatingMessage		InitiatingMessage,
    successfulOutcome		SuccessfulOutcome,
    unsuccessfulOutcome		UnsuccessfulOutcome,
    ...
}

InitiatingMessage ::= SEQUENCE {
    procedureCode	ProcedureCode,
    criticality		Criticality,
    value		ANY
}

SuccessfulOutcome ::= SEQUENCE {
    procedureCode	ProcedureCode,
    criticality		Criticality,
    value		ANY
}

UnsuccessfulOutcome ::= SEQUENCE {
    procedureCode	ProcedureCode,
    criticality		Criticality,
    value		ANY
}


Write-Replace ::= SEQUENCE {
    write-Replace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Write-Replace-Complete ::= SEQUENCE {
    write-Replace-Complete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Write-Replace-Failure ::= SEQUENCE {
    write-Replace-Failure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Kill ::= SEQUENCE {
    kill-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Kill-Complete ::= SEQUENCE {
    kill-Complete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Kill-Failure ::= SEQUENCE {
    kill-Failure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Load-Query ::= SEQUENCE {
    load-Query-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Load-Query-Complete ::= SEQUENCE {
    load-Query-Complete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Load-Query-Failure ::= SEQUENCE {
    load-Query-Failure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Message-Status-Query ::= SEQUENCE {
    message-Status-Query-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Message-Status-Query-Complete ::= SEQUENCE {
    message-Status-Query-Complete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Message-Status-Query-Failure ::= SEQUENCE {
    message-Status-Query-Failure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Reset ::= SEQUENCE {
    reset-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Reset-Complete ::= SEQUENCE {
    reset-Complete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Reset-Failure ::= SEQUENCE {
    reset-Failure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Restart ::= SEQUENCE {
    restart-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Failure ::= SEQUENCE {
    failure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}

Error-Indication ::= SEQUENCE {
    error-Indication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
    ...
}


IE ::= SEQUENCE {
    id ProtocolIE-ID,
    criticality Criticality,
    value ANY
}

END
