RRM-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=

BEGIN

IMPORTS
        DRB-Identity,
        PhysCellId,
        RadioResourceConfigDedicated,
        RRCConnectionReconfiguration-r8-IEs,
        RRCConnectionReconfigurationComplete-r8-IEs,
        SystemInformation,
        SystemInformationBlockType1,
        SystemInformationBlockType2  FROM EUTRA-RRC-Definitions;

RRC-RRM-Message ::= SEQUENCE {
    message                 RRC-RRM-MessageType
}

RRC-RRM-MessageType ::= CHOICE {
    c1                      CHOICE {
        rrcSystemConfigurationRequest     RRCSystemConfigurationRequest,
        rrcAddUserRequest                 RRCAddUserRequest,
        rrcAddUserConfirm                 RRCAddUserConfirm,
        rrcAddDataRadioBearerRequest      RRCAddDataRadioBearerRequest,
        rrcAddDataRadioBearerConfirm      RRCAddDataRadioBearerConfirm,
        rrcRemoveUserRequest              RRCRemoveUserRequest,
        rrcRemoveDataRadioBearerRequest   RRCRemoveDataRadioBearerRequest,
        rrcRemoveDataRadioBearerConfirm   RRCRemoveDataRadioBearerConfirm,
        rrcUserReconfigurationComplete    RRCUserReconfigurationComplete

    },
    messageClassExtension   SEQUENCE {}
}



RRCSystemConfigurationRequest ::= SEQUENCE {
    transactionId                           TransactionId
}

RRCAddUserRequest ::= SEQUENCE {
    transactionId                           TransactionId,
    e-NodeB-Identity                        E-NodeB-Identity,
    c-RNTI                                  OpenAir-C-RNTI
}

RRCAddUserConfirm ::= SEQUENCE {
    transactionId                           TransactionId,
    e-NodeB-Identity                        E-NodeB-Identity,
    c-RNTI                                  OpenAir-C-RNTI
}

RRCAddDataRadioBearerRequest ::= SEQUENCE {
    transactionId                           TransactionId,
    e-NodeB-Identity                        E-NodeB-Identity,
    c-RNTI                                  OpenAir-C-RNTI,
    drb-Identity                            DRB-Identity,
    applicationTrafficClass                 OpenAir-Application-TrafficClass,
    applicationPacketDelay                  OpenAir-Application-ms-PacketDelay,
    guaranted-bit-rate-uplink               OpenAir-ApplicationKBitRate,
    max-bit-rate-uplink                     OpenAir-ApplicationKBitRate,
    guaranted-bit-rate-downlink             OpenAir-ApplicationKBitRate,
    max-bit-rate-downlink                   OpenAir-ApplicationKBitRate
}

RRCAddDataRadioBearerConfirm ::= SEQUENCE {
    transactionId                           TransactionId,
    e-NodeB-Identity                        E-NodeB-Identity,
    c-RNTI                                  OpenAir-C-RNTI,
    drb-Identity                            DRB-Identity
}

RRCRemoveUserRequest ::= SEQUENCE {
    transactionId                           TransactionId,
    e-NodeB-Identity                        E-NodeB-Identity,
    c-RNTI                                  OpenAir-C-RNTI
}


RRCRemoveDataRadioBearerRequest ::= SEQUENCE {
    transactionId                           TransactionId,
    e-NodeB-Identity                        E-NodeB-Identity,
    c-RNTI                                  OpenAir-C-RNTI,
    drb-Identity                            DRB-Identity
}

RRCRemoveDataRadioBearerConfirm ::= SEQUENCE {
    transactionId                           TransactionId,
    e-NodeB-Identity                        E-NodeB-Identity,
    c-RNTI                                  OpenAir-C-RNTI,
    drb-Identity                            DRB-Identity
}

RRCUserReconfigurationComplete ::= SEQUENCE {
    transactionId                           TransactionId,
    e-NodeB-Identity                        E-NodeB-Identity,
    c-RNTI                                  OpenAir-C-RNTI
}


RRM-RRC-Message ::= SEQUENCE {
    message                 RRM-RRC-MessageType
}

RRM-RRC-MessageType ::= CHOICE {
    c1                      CHOICE {
        rrcSystemConfigurationResponse     RRCSystemConfigurationResponse,
        rrcAddUserResponse                 RRCAddUserResponse,
        rrcAddDataRadioBearerResponse      RRCAddDataRadioBearerResponse,
        rrcRemoveUserResponse              RRCRemoveUserResponse,
        rrcRemoveDataRadioBearerResponse   RRCRemoveDataRadioBearerResponse,
        rrcUserReconfiguration             RRCUserReconfiguration
    },
    messageClassExtension   SEQUENCE {}
}

RRCSystemConfigurationResponse ::= SEQUENCE {
    transactionId                           TransactionId,
    rrm-Response-Status                     OpenAir-RRM-Response-Status,
    rrm-Response-Reason                     OpenAir-RRM-Response-Reason,
    e-NodeB-Identity                        E-NodeB-Identity,
    systemInformationBlockType1             SystemInformationBlockType1  OPTIONAL,
    systemInformation                       SystemInformation            OPTIONAL
}

RRCAddUserResponse ::= SEQUENCE {
    transactionId                           TransactionId,
    rrm-Response-Status                     OpenAir-RRM-Response-Status,
    rrm-Response-Reason                     OpenAir-RRM-Response-Reason,
    e-NodeB-Identity                        E-NodeB-Identity,
    c-RNTI                                  OpenAir-C-RNTI,
    radioResourceConfigDedicatedE-NodeB     RadioResourceConfigDedicated         OPTIONAL,
    radioResourceConfigDedicatedMobile      RadioResourceConfigDedicated         OPTIONAL
}

RRCAddDataRadioBearerResponse ::= SEQUENCE {
    transactionId                           TransactionId,
    rrm-Response-Status                     OpenAir-RRM-Response-Status,
    rrm-Response-Reason                     OpenAir-RRM-Response-Reason,
    e-NodeB-Identity                        E-NodeB-Identity,
    c-RNTI                                  OpenAir-C-RNTI,
    -- MAY BE USELESS SINCE INCLUDED IN RadioResourceConfigDedicated   drb-Identity                            DRB-Identity,
    radioResourceConfigDedicatedE-NodeB     RadioResourceConfigDedicated         OPTIONAL,
    radioResourceConfigDedicatedMobile      RadioResourceConfigDedicated         OPTIONAL
}

RRCRemoveUserResponse ::= SEQUENCE {
    transactionId                           TransactionId,
    rrm-Response-Status                     OpenAir-RRM-Response-Status,
    rrm-Response-Reason                     OpenAir-RRM-Response-Reason,
    e-NodeB-Identity                        E-NodeB-Identity,
    c-RNTI                                  OpenAir-C-RNTI,
    radioResourceConfigDedicatedE-NodeB     RadioResourceConfigDedicated         OPTIONAL,
    radioResourceConfigDedicatedMobile      RadioResourceConfigDedicated         OPTIONAL
}

RRCRemoveDataRadioBearerResponse ::= SEQUENCE {
    transactionId                           TransactionId,
    rrm-Response-Status                     OpenAir-RRM-Response-Status,
    rrm-Response-Reason                     OpenAir-RRM-Response-Reason,
    e-NodeB-Identity                        E-NodeB-Identity,
    c-RNTI                                  OpenAir-C-RNTI,
    radioResourceConfigDedicatedE-NodeB     RadioResourceConfigDedicated         OPTIONAL,
    radioResourceConfigDedicatedMobile      RadioResourceConfigDedicated         OPTIONAL
}

RRCUserReconfiguration ::= SEQUENCE {
    transactionId                           TransactionId,
    rrm-Response-Status                     OpenAir-RRM-Response-Status,
    rrm-Response-Reason                     OpenAir-RRM-Response-Reason,
    e-NodeB-Identity                        E-NodeB-Identity,
    c-RNTI                                  OpenAir-C-RNTI,
    radioResourceConfigDedicatedE-NodeB     RadioResourceConfigDedicated         OPTIONAL,
    radioResourceConfigDedicatedMobile      RadioResourceConfigDedicated         OPTIONAL
}

E-NodeB-Identity ::=              SEQUENCE {
    physCellId                          PhysCellId
}

TransactionId                      ::= INTEGER (0..255)
OpenAir-C-RNTI                     ::= INTEGER (0..255)
OpenAir-ApplicationKBitRate        ::= INTEGER (0..100000)
OpenAir-Application-ms-PacketDelay ::= INTEGER (0..10000)
OpenAir-Application-TrafficClass   ::= INTEGER (0..255)

OpenAir-RRM-Response-Reason ::=         ENUMERATED {
                                        ok, protocolError, ressourcesUnavailable, malformedMessage, unknownMessage, internalError }

OpenAir-RRM-Response-Status        ::= ENUMERATED {
                                        success, warning, failure }


END
