1
0
Fork 0

rsl: Add the mode modify and ack/nack messages, test the requeest parsing

This commit is contained in:
Holger Hans Peter Freyther 2012-12-23 17:13:31 +01:00
parent 99e04a9e56
commit 0d7ad9fea2
2 changed files with 73 additions and 0 deletions

View File

@ -490,6 +490,51 @@ Object subclass: RSLMessageDefinitions [
^ self dedicatedChannelMessageBase
]
modeModifyMessage [
<category: 'dedicated-channel'>
^ self dedicatedChannelMessageBase
add: (Osmo.TLVDescription new
tag: RSLInformationElement attrChannelMode;
instVarName: #channel_mode; parseClass: RSLAttributeData;
beTLV; minSize: 6 maxSize: 7; yourself);
add: (Osmo.TLVDescription new
tag: RSLInformationElement attrEncryptionInformation;
instVarName: #encr_info; parseClass: RSLAttributeData;
beOptional; beTLV; minSize: 1; yourself);
add: (Osmo.TLVDescription new
tag: RSLInformationElement attrMainChannelReference;
instVarName: #main_channel; parseClass: RSLAttributeData;
beOptional; beTV; minSize: 1; yourself);
add: (Osmo.TLVDescription new
tag: RSLInformationElement attrMultiRateConfiguration;
instVarName: #mr; parseClass: RSLAttributeData;
beOptional; beTLV; minSize: 1; yourself);
add: (Osmo.TLVDescription new
tag: RSLInformationElement attrMultiRateControl;
instVarName: #mr_control; parseClass: RSLAttributeData;
beOptional; beTV; valueSize: 1; yourself);
add: (Osmo.TLVDescription new
tag: RSLInformationElement attrSupportedCodecTypes;
instVarName: #codec; parseClass: RSLAttributeData;
beOptional; beTLV; minSize: 3; yourself);
yourself.
]
modeModifyAck [
<category: 'dedicated-channel'>
^ self dedicatedChannelMessageBase
]
modeModifyNack [
<category: 'dedicated-channel'>
^ self dedicatedChannelMessageBase
add: (Osmo.TLVDescription new
tag: RSLInformationElement attrCause;
instVarName: #cause; parseClass: RSLAttributeData;
beTLV; minSize: 1; yourself);
yourself
]
encryptionCommandMessage [
<category: 'dedicated-channel'>
^ self dedicatedChannelMessageBase
@ -955,6 +1000,26 @@ RSLDedicatedChannelManagement subclass: RSLSacchDeactivate [
<rslMessageDefinition: #deactivateSacchMessage>
]
RSLDedicatedChannelManagement subclass: RSLModeModifyRequest [
| channel_mode encr_info main_channel mr mr_control codec |
<comment: 'I represent a GSM 08.58 8.4.9 MODE MODIFY'>
<rslMessageType: #messageDedModeModifyRequest>
<rslMessageDefinition: #modeModifyMessage>
]
RSLDedicatedChannelManagement subclass: RSLModeModifyAck [
<comment: 'I represent a GSM 08.58 8.4.10 MODE MODIFY ACKNOWLEDGE'>
<rslMessageType: #messageDedModeModifyAck>
<rslMessageDefinition: #modeModifyAck>
]
RSLDedicatedChannelManagement subclass: RSLModeModifyNack [
| cause |
<comment: 'I represent a GSM 08.58 8.4.11 MODE MODIFY NEGATIVE ACKNOWLEDGE'>
<rslMessageType: #messageDedModeModifyNack>
<rslMessageDefinition: #modeModifyNack>
]
RSLMessageBase subclass: RSLRadioLinkManagement [
| channel_number link_id |
<category: 'BTS-RSL'>

View File

@ -468,6 +468,10 @@ RoundTripTestCase subclass: RSLRoundTripTest [
^ #(2 7 1 32 2 0 20 0)
]
modeModifyRequestData [
^ #(8 41 1 10 6 4 0 1 8 17 )
]
testBCCHInformation [
self roundtripTestFor: #bcchInformationData class: RSLBCCHInformation
]
@ -539,6 +543,10 @@ RoundTripTestCase subclass: RSLRoundTripTest [
self assert: mi type = OsmoGSM.GSM48IdentityType typeTMSI.
self assert: mi tmsi asByteArray = #(83 211 211 3 ) asByteArray.
]
testModeModify [
self roundtripTestFor: #modeModifyRequestData class: RSLModeModifyRequest.
]
]
TestCase subclass: RSLIETest [