rsl: Implement the positive CRCX, MDCX and DLCX messages
This commit is contained in:
parent
6a514a588f
commit
6db40339de
|
@ -151,7 +151,7 @@ Osmo.TLVParserBase subclass: RSLMessageBase [
|
||||||
RSLMessageBase class >> ignoredBaseClasses [
|
RSLMessageBase class >> ignoredBaseClasses [
|
||||||
<category: 'handling'>
|
<category: 'handling'>
|
||||||
^ {RSLCommonChannelManagement. RSLTRXManagement.
|
^ {RSLCommonChannelManagement. RSLTRXManagement.
|
||||||
RSLDedicatedChannelManagement. RSLRadioLinkManagement}
|
RSLDedicatedChannelManagement. RSLRadioLinkManagement. RSLIPAVendorManagement}
|
||||||
]
|
]
|
||||||
|
|
||||||
RSLMessageBase class >> canHandle: aDiscrim transparent: aTrans type: aType [
|
RSLMessageBase class >> canHandle: aDiscrim transparent: aTrans type: aType [
|
||||||
|
@ -290,6 +290,14 @@ Object subclass: RSLMessageDefinitions [
|
||||||
beTV; valueSize: 1; yourself
|
beTV; valueSize: 1; yourself
|
||||||
]
|
]
|
||||||
|
|
||||||
|
causeIE [
|
||||||
|
<category: 'common-ie'>
|
||||||
|
^ Osmo.TLVDescription new
|
||||||
|
tag: RSLInformationElement attrCause;
|
||||||
|
instVarName: #cause; parseClass: RSLAttributeData;
|
||||||
|
beTLV; minSize: 1; yourself
|
||||||
|
]
|
||||||
|
|
||||||
radioLinkMessageBase [
|
radioLinkMessageBase [
|
||||||
<category: 'radio-link'>
|
<category: 'radio-link'>
|
||||||
^ OrderedCollection new
|
^ OrderedCollection new
|
||||||
|
@ -473,10 +481,7 @@ Object subclass: RSLMessageDefinitions [
|
||||||
channelActivationNackMessage [
|
channelActivationNackMessage [
|
||||||
<category: 'dedicated-channel'>
|
<category: 'dedicated-channel'>
|
||||||
^ self dedicatedChannelMessageBase
|
^ self dedicatedChannelMessageBase
|
||||||
add: (Osmo.TLVDescription new
|
add: self causeIE;
|
||||||
tag: RSLInformationElement attrCause;
|
|
||||||
instVarName: #cause; parseClass: RSLAttributeData;
|
|
||||||
beTLV; minSize: 1; yourself);
|
|
||||||
yourself
|
yourself
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -1120,3 +1125,170 @@ RSLRadioLinkManagement subclass: RSLReleaseIndication [
|
||||||
<rslMessageType: #messageRadioLinkReleaseIndication>
|
<rslMessageType: #messageRadioLinkReleaseIndication>
|
||||||
<rslMessageDefinition: #releaseIndicationMessage>
|
<rslMessageDefinition: #releaseIndicationMessage>
|
||||||
]
|
]
|
||||||
|
|
||||||
|
RSLMessageDefinitions subclass: RSLIPAMessageDefinitions [
|
||||||
|
RSLIPAMessageDefinitions class [
|
||||||
|
connectionIdentifierIE [
|
||||||
|
^ Osmo.TLVDescription new
|
||||||
|
tag: 16rF8; instVarName: #conn_id; parseClass: RSLAttributeData;
|
||||||
|
beTV; valueSize: 2; yourself
|
||||||
|
]
|
||||||
|
|
||||||
|
localIPIE [
|
||||||
|
^ Osmo.TLVDescription new
|
||||||
|
tag: 16rF5; instVarName: #local_ip; parseClass: RSLAttributeData;
|
||||||
|
beTV; valueSize: 4; yourself
|
||||||
|
]
|
||||||
|
|
||||||
|
localPortIE [
|
||||||
|
^ Osmo.TLVDescription new
|
||||||
|
tag: 16rF3; instVarName: #local_port; parseClass: RSLAttributeData;
|
||||||
|
beTV; valueSize: 2; yourself
|
||||||
|
]
|
||||||
|
|
||||||
|
remoteIPIE [
|
||||||
|
^ self localIPIE
|
||||||
|
tag: 16rF0; instVarName: #remote_ip; yourself
|
||||||
|
]
|
||||||
|
|
||||||
|
remotePortIE [
|
||||||
|
^ self localPortIE
|
||||||
|
tag: 16rF1; instVarName: #remote_port; yourself.
|
||||||
|
]
|
||||||
|
|
||||||
|
speechModeIE [
|
||||||
|
^ Osmo.TLVDescription new
|
||||||
|
tag: 16rF4; instVarName: #speech_mode; parseClass: RSLAttributeData;
|
||||||
|
beTV; valueSize: 1; yourself
|
||||||
|
]
|
||||||
|
|
||||||
|
rtpPayloadTypeIE [
|
||||||
|
^ Osmo.TLVDescription new
|
||||||
|
tag: 16rF2; instVarName: #rtp_payload; parseClass: RSLAttributeData;
|
||||||
|
beTV; valueSize: 1; yourself
|
||||||
|
]
|
||||||
|
|
||||||
|
connectionStatisticsIE [
|
||||||
|
^ Osmo.TLVDescription new
|
||||||
|
tag: 16rF6; instVarName: #stats; parseClass: RSLAttributeData;
|
||||||
|
beTLV; valueSize: 28; yourself
|
||||||
|
]
|
||||||
|
|
||||||
|
createConnectionMessage [
|
||||||
|
^ OrderedCollection new
|
||||||
|
add: self channelNumberIE;
|
||||||
|
add: self speechModeIE;
|
||||||
|
add: self rtpPayloadTypeIE;
|
||||||
|
yourself
|
||||||
|
]
|
||||||
|
|
||||||
|
createConnectionAckMessage [
|
||||||
|
^ OrderedCollection new
|
||||||
|
add: self channelNumberIE;
|
||||||
|
add: self connectionIdentifierIE;
|
||||||
|
add: self localPortIE;
|
||||||
|
add: self localIPIE;
|
||||||
|
yourself
|
||||||
|
]
|
||||||
|
|
||||||
|
modifyConnectionMessage [
|
||||||
|
<category: 'ipa'>
|
||||||
|
^ OrderedCollection new
|
||||||
|
add: self channelNumberIE;
|
||||||
|
add: self connectionIdentifierIE;
|
||||||
|
add: self remoteIPIE;
|
||||||
|
add: self remotePortIE;
|
||||||
|
add: self speechModeIE;
|
||||||
|
add: self rtpPayloadTypeIE;
|
||||||
|
yourself
|
||||||
|
]
|
||||||
|
|
||||||
|
modifyConnectionAckMessage [
|
||||||
|
^ OrderedCollection new
|
||||||
|
add: self channelNumberIE;
|
||||||
|
add: self connectionIdentifierIE;
|
||||||
|
yourself
|
||||||
|
]
|
||||||
|
|
||||||
|
deleteConnectionIndMessage [
|
||||||
|
^ OrderedCollection new
|
||||||
|
add: self channelNumberIE;
|
||||||
|
add: self connectionIdentifierIE;
|
||||||
|
add: self connectionStatisticsIE;
|
||||||
|
add: self causeIE;
|
||||||
|
yourself
|
||||||
|
]
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
RSLMessageBase subclass: RSLIPAVendorManagement [
|
||||||
|
<category: 'BTS-RSL-IPA'>
|
||||||
|
<comment: 'I represent a ip.access vendor extension'>
|
||||||
|
|
||||||
|
RSLIPAVendorManagement class [
|
||||||
|
messageCRCX [ <category: 'tag'> ^ 16r70 ]
|
||||||
|
messageCRCXAck [ <category: 'tag'> ^ 16r71 ]
|
||||||
|
messageCRCXNack [ <category: 'tag'> ^ 16r72 ]
|
||||||
|
messageMDCX [ <category: 'tag'> ^ 16r73 ]
|
||||||
|
messageMDCXAck [ <category: 'tag'> ^ 16r74 ]
|
||||||
|
messageMDCXNack [ <category: 'tag'> ^ 16r75 ]
|
||||||
|
messageDLCXInd [ <category: 'tag'> ^ 16r76 ]
|
||||||
|
messageDLCX [ <category: 'tag'> ^ 16r77 ]
|
||||||
|
messageDLCXAck [ <category: 'tag'> ^ 16r78 ]
|
||||||
|
messageDLCXNack [ <category: 'tag'> ^ 16r79 ]
|
||||||
|
]
|
||||||
|
|
||||||
|
RSLIPAVendorManagement class >> messageDiscrimator [
|
||||||
|
<category: 'parsing'>
|
||||||
|
^ 63
|
||||||
|
]
|
||||||
|
|
||||||
|
RSLIPAVendorManagement class >> isTransparent [
|
||||||
|
^ 0
|
||||||
|
]
|
||||||
|
|
||||||
|
RSLIPAVendorManagement class >> tlvDescription [
|
||||||
|
<category: 'tlv'>
|
||||||
|
^ RSLIPAMessageDefinitions perform: messageDefinition
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
RSLIPAVendorManagement subclass: RSLIPACreateConnection [
|
||||||
|
| channel_number speech_mode rtp_payload |
|
||||||
|
<category: 'BTS-RSL-IPA'>
|
||||||
|
<comment: 'I represent a Create Connection (CRCX) message'>
|
||||||
|
<rslMessageType: #messageCRCX>
|
||||||
|
<rslMessageDefinition: #createConnectionMessage>
|
||||||
|
]
|
||||||
|
|
||||||
|
RSLIPAVendorManagement subclass: RSLIPACreateConnectionAck [
|
||||||
|
| channel_number conn_id local_port local_ip |
|
||||||
|
<category: 'BTS-RSL-IPA'>
|
||||||
|
<comment: 'I represent a Create Connection (CRCX) ACK message'>
|
||||||
|
<rslMessageType: #messageCRCXAck>
|
||||||
|
<rslMessageDefinition: #createConnectionAckMessage>
|
||||||
|
]
|
||||||
|
|
||||||
|
RSLIPAVendorManagement subclass: RSLIPAModifyConnection [
|
||||||
|
| channel_number conn_id remote_ip remote_port speech_mode rtp_payload |
|
||||||
|
<category: 'BTS-RSL-IPA'>
|
||||||
|
<comment: 'I represent a Modify Connection (MDCX) message'>
|
||||||
|
<rslMessageType: #messageMDCX>
|
||||||
|
<rslMessageDefinition: #modifyConnectionMessage>
|
||||||
|
]
|
||||||
|
|
||||||
|
RSLIPAVendorManagement subclass: RSLIPAModifyConnectionAck [
|
||||||
|
| channel_number conn_id |
|
||||||
|
<category: 'BTS-RSL-IPA'>
|
||||||
|
<comment: 'I represent a Modify Connection (MDCX) ACK message'>
|
||||||
|
<rslMessageType: #messageMDCXAck>
|
||||||
|
<rslMessageDefinition: #modifyConnectionAckMessage>
|
||||||
|
]
|
||||||
|
|
||||||
|
RSLIPAVendorManagement subclass: RSLIPADeleteConnectionInd [
|
||||||
|
| channel_number conn_id stats cause |
|
||||||
|
<category: 'BTS-RSL-IPA'>
|
||||||
|
<comment: 'I represent a Delete Connection (DLCX) Indication message'>
|
||||||
|
<rslMessageType: #messageDLCXInd>
|
||||||
|
<rslMessageDefinition: #deleteConnectionIndMessage>
|
||||||
|
]
|
||||||
|
|
|
@ -472,6 +472,51 @@ RoundTripTestCase subclass: RSLRoundTripTest [
|
||||||
^ #(8 41 1 10 6 4 0 1 8 17 )
|
^ #(8 41 1 10 6 4 0 1 8 17 )
|
||||||
]
|
]
|
||||||
|
|
||||||
|
ipaCrcxData [
|
||||||
|
^ #(126 112 1 10 244 17 242 97)
|
||||||
|
]
|
||||||
|
|
||||||
|
ipaCrcxAckData [
|
||||||
|
^ #(16r7E 16r71 16r01 16r0A 16rF8 16r00 16r27 16rF3 16r0F
|
||||||
|
16rAE 16rF5 16rC0 16rA8 16r0A 16r4E)
|
||||||
|
]
|
||||||
|
|
||||||
|
ipaDlcxIndData [
|
||||||
|
^ #(16r7E 16r76 16r01 16r0A 16rF8 16r00 16r27 16rF6 16r1C
|
||||||
|
16r00 16r00 16r06 16rE4 16r00 16r00 16rD5 16r9C 16r00
|
||||||
|
16r00 16r07 16r14 16r00 16r00 16rDB 16r6C 16r00 16r00
|
||||||
|
16r00 16r2A 16r00 16r00 16r00 16r35 16r00 16r00 16r00
|
||||||
|
16r00 16r1A 16r01 16r0F)
|
||||||
|
]
|
||||||
|
|
||||||
|
ipaMdcxData [
|
||||||
|
^ #(126 115 1 10 248 0 0 240 0 0 0 0 241 0 0 244 1 242 97)
|
||||||
|
]
|
||||||
|
|
||||||
|
ipaMdcxDataAck [
|
||||||
|
^ #(16r7E 16r74 16r01 16r0A 16rF8 16r00 16r27)
|
||||||
|
]
|
||||||
|
|
||||||
|
testIpaCrcxAck [
|
||||||
|
self roundtripTestFor: #ipaCrcxAckData class: RSLIPACreateConnectionAck.
|
||||||
|
]
|
||||||
|
|
||||||
|
testIpaCrcx [
|
||||||
|
self roundtripTestFor: #ipaCrcxData class: RSLIPACreateConnection.
|
||||||
|
]
|
||||||
|
|
||||||
|
testIpaDlcx [
|
||||||
|
self roundtripTestFor: #ipaDlcxIndData class: RSLIPADeleteConnectionInd.
|
||||||
|
]
|
||||||
|
|
||||||
|
testIpaMdcx [
|
||||||
|
self roundtripTestFor: #ipaMdcxData class: RSLIPAModifyConnection.
|
||||||
|
]
|
||||||
|
|
||||||
|
testIpaMdcxAck [
|
||||||
|
self roundtripTestFor: #ipaMdcxDataAck class: RSLIPAModifyConnectionAck.
|
||||||
|
]
|
||||||
|
|
||||||
testBCCHInformation [
|
testBCCHInformation [
|
||||||
self roundtripTestFor: #bcchInformationData class: RSLBCCHInformation
|
self roundtripTestFor: #bcchInformationData class: RSLBCCHInformation
|
||||||
]
|
]
|
||||||
|
|
Reference in New Issue