forked from osmocom/wireshark
Add some more V3 opcodes
svn path=/trunk/; revision=13397
This commit is contained in:
parent
f687d089de
commit
cba5f271e6
|
@ -129,6 +129,7 @@ CancelLocationArg ::= [3] IMPLICIT SEQUENCE {
|
|||
extensionContainer ExtensionContainer OPTIONAL,
|
||||
... }
|
||||
-- RESULT
|
||||
|
||||
CancelLocationRes ::= SEQUENCE {
|
||||
extensionContainer ExtensionContainer OPTIONAL,
|
||||
... }
|
||||
|
@ -254,14 +255,51 @@ PrepareHandoverV3Arg ::= [3] IMPLICIT SEQUENCE {
|
|||
|
||||
|
||||
PrepareHO-Res ::= SEQUENCE {
|
||||
handoverNumber OCTET STRING ( SIZE( 1 .. 20 ) ) ( SIZE( 1 .. 9 ) ) OPTIONAL,
|
||||
handoverNumber HandoverNumber OPTIONAL,
|
||||
bss-APDU Bss-APDU OPTIONAL,
|
||||
... }
|
||||
|
||||
HandoverNumber ::= OCTET STRING ( SIZE( 1 .. 20 ) ) ( SIZE( 1 .. 9 ) )
|
||||
|
||||
PrepareHandoverV3Res ::= [3] IMPLICIT SEQUENCE {
|
||||
handoverNumber [0] IMPLICIT HandoverNumber OPTIONAL,
|
||||
relocationNumberList [1] IMPLICIT SEQUENCE ( SIZE (1 .. 7 ) ) OF
|
||||
SEQUENCE {
|
||||
handoverNumber HandoverNumber,
|
||||
rab-Id INTEGER ( 1 .. 255 ),
|
||||
... } OPTIONAL,
|
||||
an-APDU [2] IMPLICIT An-APDU OPTIONAL,
|
||||
multicallBearerInfo [3] IMPLICIT INTEGER ( 1 .. 7 ) OPTIONAL,
|
||||
multipleBearerNotSupported NULL OPTIONAL,
|
||||
selectedUMTS-Algorithms [5] IMPLICIT SEQUENCE {
|
||||
integrityProtectionAlgorithm [0] IMPLICIT OCTET STRING ( SIZE (1 ) ) OPTIONAL,
|
||||
encryptionAlgorithm [1] IMPLICIT OCTET STRING ( SIZE (1 ) ) OPTIONAL,
|
||||
extensionContainer [2] IMPLICIT ExtensionContainer OPTIONAL,
|
||||
... } OPTIONAL,
|
||||
chosenRadioResourceInformation [6] IMPLICIT SEQUENCE {
|
||||
chosenChannelInfo [0] IMPLICIT OCTET STRING ( SIZE (1 ) ) OPTIONAL,
|
||||
chosenSpeechVersion [1] IMPLICIT OCTET STRING ( SIZE (1 ) ) OPTIONAL,
|
||||
... } OPTIONAL,
|
||||
extensionContainer [4] IMPLICIT ExtensionContainer OPTIONAL,
|
||||
... ,
|
||||
iuSelectedCodec [7] IMPLICIT OCTET STRING ( SIZE (1 .. 4 ) ) OPTIONAL,
|
||||
iuAvailableCodecsList [8] IMPLICIT SEQUENCE {
|
||||
codec1 [1] IMPLICIT OCTET STRING ( SIZE (1 .. 4 ) ),
|
||||
codec2 [2] IMPLICIT OCTET STRING ( SIZE (1 .. 4 ) ) OPTIONAL,
|
||||
codec3 [3] IMPLICIT OCTET STRING ( SIZE (1 .. 4 ) ) OPTIONAL,
|
||||
codec4 [4] IMPLICIT OCTET STRING ( SIZE (1 .. 4 ) ) OPTIONAL,
|
||||
codec5 [5] IMPLICIT OCTET STRING ( SIZE (1 .. 4 ) ) OPTIONAL,
|
||||
codec6 [6] IMPLICIT OCTET STRING ( SIZE (1 .. 4 ) ) OPTIONAL,
|
||||
codec7 [7] IMPLICIT OCTET STRING ( SIZE (1 .. 4 ) ) OPTIONAL,
|
||||
codec8 [8] IMPLICIT OCTET STRING ( SIZE (1 .. 4 ) ) OPTIONAL,
|
||||
extensionContainer [9] IMPLICIT ExtensionContainer OPTIONAL,
|
||||
... } OPTIONAL}
|
||||
|
||||
-- ERRORS {
|
||||
-- systemFailure localValue : 34,
|
||||
-- dataMissing localValue : 35,
|
||||
-- unexpectedDataValue localValue : 36,
|
||||
-- noHandoverNumberAvailable localValue : 25}
|
||||
-- noAvailable localValue : 25}
|
||||
-- ::= localValue : 68
|
||||
-- Ethereal adaptation --
|
||||
ProtocolId ::= ENUMERATED {
|
||||
|
@ -343,6 +381,27 @@ SendAuthenticationInfoRes ::= SEQUENCE ( SIZE( 1 .. 5 ) ) OF
|
|||
sres OCTET STRING ( SIZE( 4 ) ),
|
||||
kc OCTET STRING ( SIZE( 8 ) ),
|
||||
... }
|
||||
|
||||
-- RESULT [3] IMPLICIT SEQUENCE {
|
||||
SendAuthenticationInfoV3Res ::= [3] IMPLICIT SEQUENCE {
|
||||
authenticationSetList CHOICE {
|
||||
tripletList [0] IMPLICIT SEQUENCE ( SIZE (1 .. 5 ) ) OF
|
||||
SEQUENCE {
|
||||
rand OCTET STRING ( SIZE (16 ) ),
|
||||
sres OCTET STRING ( SIZE (4 ) ),
|
||||
kc OCTET STRING ( SIZE (8 ) ),
|
||||
... },
|
||||
quintupletList [1] IMPLICIT SEQUENCE ( SIZE (1 .. 5 ) ) OF
|
||||
SEQUENCE {
|
||||
rand OCTET STRING ( SIZE (16 ) ),
|
||||
xres OCTET STRING ( SIZE (4 .. 16 ) ),
|
||||
ck OCTET STRING ( SIZE (16 ) ),
|
||||
ik OCTET STRING ( SIZE (16 ) ),
|
||||
autn OCTET STRING ( SIZE (16 ) ),
|
||||
... }} OPTIONAL,
|
||||
extensionContainer ExtensionContainer OPTIONAL,
|
||||
... }
|
||||
|
||||
-- ERRORS {
|
||||
-- systemFailure localValue : 34,
|
||||
-- dataMissing localValue : 35,
|
||||
|
|
|
@ -18,12 +18,14 @@ InsertSubscriberDataRes/bearerServiceList bearerServiceList
|
|||
InsertSubscriberDataRes/ss-List ss_List
|
||||
DeleteSubscriberDataArg/ss-List ss_List
|
||||
SendRoutingInfoRes/ss-List ss_List
|
||||
SendIdentificationRes/authenticationSetList SendId_authenticationSetList
|
||||
|
||||
#.FIELD_RENAME
|
||||
RequestedInfo/locationInformation locationInformationFlag
|
||||
RequestedInfo/subscriberState subscriberStateFlag
|
||||
AdditionalSignalInfo/signalInfo ext_signalInfo
|
||||
ForwardingInfo/forwardingFeatureList forwardingFeatureList_1_32
|
||||
SendIdentificationRes/authenticationSetList sendId_authenticationSetList
|
||||
#----------------------------------------------------------------------------------------
|
||||
#.FN_BODY Sm-RP-UI
|
||||
|
||||
|
@ -75,7 +77,7 @@ ForwardingInfo/forwardingFeatureList forwardingFeatureList_1_32
|
|||
digit_str = unpack_digits(parameter_tvb, 1);
|
||||
|
||||
proto_tree_add_string(tree, hf_gsm_map_servicecentreaddress_digits, parameter_tvb, 1, -1, digit_str);
|
||||
g_free(digit_str);
|
||||
|
||||
|
||||
|
||||
#.END
|
||||
|
@ -98,7 +100,7 @@ ForwardingInfo/forwardingFeatureList forwardingFeatureList_1_32
|
|||
digit_str = unpack_digits(parameter_tvb, 1);
|
||||
|
||||
proto_tree_add_string(tree, hf_gsm_map_misdn_digits, parameter_tvb, 1, -1, digit_str);
|
||||
g_free(digit_str);
|
||||
|
||||
|
||||
|
||||
#.END
|
||||
|
@ -121,7 +123,7 @@ ForwardingInfo/forwardingFeatureList forwardingFeatureList_1_32
|
|||
digit_str = unpack_digits(parameter_tvb, 1);
|
||||
|
||||
proto_tree_add_string(tree, hf_gsm_map_map_gmsc_address_digits, parameter_tvb, 1, -1, digit_str);
|
||||
g_free(digit_str);
|
||||
|
||||
|
||||
|
||||
#.END
|
||||
|
@ -144,7 +146,7 @@ ForwardingInfo/forwardingFeatureList forwardingFeatureList_1_32
|
|||
digit_str = unpack_digits(parameter_tvb, 1);
|
||||
|
||||
proto_tree_add_string(tree, hf_gsm_map_map_hlr_number_digits, parameter_tvb, 1, -1, digit_str);
|
||||
g_free(digit_str);
|
||||
|
||||
|
||||
|
||||
#.END
|
||||
|
@ -167,11 +169,29 @@ ForwardingInfo/forwardingFeatureList forwardingFeatureList_1_32
|
|||
digit_str = unpack_digits(parameter_tvb, 1);
|
||||
|
||||
proto_tree_add_string(tree, hf_gsm_map_map_RoamingNumber_digits, parameter_tvb, 1, -1, digit_str);
|
||||
g_free(digit_str);
|
||||
|
||||
|
||||
#.END
|
||||
#----------------------------------------------------------------------------------------
|
||||
#.FN_BODY ForwardedToNumber
|
||||
|
||||
tvbuff_t *parameter_tvb;
|
||||
char *digit_str;
|
||||
|
||||
offset = dissect_ber_octet_string(implicit_tag, pinfo, tree, tvb, offset, hf_index,
|
||||
¶meter_tvb);
|
||||
|
||||
if (!parameter_tvb)
|
||||
return offset;
|
||||
|
||||
proto_tree_add_item(tree, hf_gsm_map_extension, parameter_tvb, 0,1,FALSE);
|
||||
proto_tree_add_item(tree, hf_gsm_map_nature_of_number, parameter_tvb, 0,1,FALSE);
|
||||
proto_tree_add_item(tree, hf_gsm_map_number_plan, parameter_tvb, 0,1,FALSE);
|
||||
|
||||
digit_str = unpack_digits(parameter_tvb, 1);
|
||||
|
||||
proto_tree_add_string(tree, hf_gsm_map_map_ForwardedToNumber_digits, parameter_tvb, 1, -1, digit_str);
|
||||
|
||||
#.END
|
||||
|
||||
#----------------------------------------------------------------------------------------
|
||||
#.FN_BODY Ss-Status
|
||||
|
|
|
@ -75,6 +75,7 @@ static int hf_gsm_map_imsi_digits = -1;
|
|||
static int hf_gsm_map_map_gmsc_address_digits = -1;
|
||||
static int hf_gsm_map_map_RoamingNumber_digits = -1;
|
||||
static int hf_gsm_map_map_hlr_number_digits = -1;
|
||||
static int hf_gsm_map_map_ForwardedToNumber_digits = -1;
|
||||
static int hf_gsm_map_Ss_Status_unused = -1;
|
||||
static int hf_gsm_map_Ss_Status_q_bit = -1;
|
||||
static int hf_gsm_map_Ss_Status_p_bit = -1;
|
||||
|
@ -530,7 +531,13 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
|
|||
offset=dissect_gsm_map_PurgeMS_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||
break;
|
||||
case 68: /*prepareHandover*/
|
||||
offset=dissect_gsm_map_PrepareHO_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||
octet = tvb_get_guint8(tvb,0) & 0xf;
|
||||
if ( octet == 3){ /* This is a V9 message ??? */
|
||||
offset = offset +2;
|
||||
offset=dissect_gsm_map_PrepareHandoverV3Arg(TRUE, tvb, offset, pinfo, tree, -1);
|
||||
}else{
|
||||
offset=offset=dissect_gsm_map_PrepareHO_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||
}
|
||||
break;
|
||||
case 69: /*prepareSubsequentHandover*/
|
||||
offset=dissect_gsm_map_PrepareSubsequentHO_Arg(FALSE, tvb, offset, pinfo, tree, -1);
|
||||
|
@ -576,6 +583,8 @@ static int dissect_invokeData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tv
|
|||
|
||||
|
||||
static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb, int offset) {
|
||||
|
||||
guint8 octet;
|
||||
switch(opcode){
|
||||
case 2: /*updateLocation*/
|
||||
offset=dissect_gsm_map_UpdateLocationRes(FALSE, tvb, offset, pinfo, tree, -1);
|
||||
|
@ -702,7 +711,13 @@ static int dissect_returnResultData(packet_info *pinfo, proto_tree *tree, tvbuff
|
|||
offset=dissect_gsm_map_PurgeMS_Res(FALSE, tvb, offset, pinfo, tree, -1);
|
||||
break;
|
||||
case 68: /*prepareHandover*/
|
||||
offset=dissect_gsm_map_PrepareHO_Res(FALSE, tvb, offset, pinfo, tree, -1);
|
||||
octet = tvb_get_guint8(tvb,0) & 0xf;
|
||||
if ( octet == 3){ /* This is a V9 message ??? */
|
||||
offset = offset +2;
|
||||
offset=dissect_gsm_map_PrepareHandoverV3Res(TRUE, tvb, offset, pinfo, tree, hf_gsm_mapSendEndSignal);
|
||||
}else{
|
||||
offset=dissect_gsm_map_PrepareHO_Res(FALSE, tvb, offset, pinfo, tree, -1);
|
||||
}
|
||||
break;
|
||||
case 69: /*prepareSubsequentHandover*/
|
||||
offset=dissect_gsm_map_Bss_APDU(FALSE, tvb, offset, pinfo, tree, -1);
|
||||
|
@ -961,9 +976,8 @@ dissect_gsm_map(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree)
|
|||
tap_rec.invoke = TRUE;
|
||||
tap_rec.opr_code_idx = op_idx;
|
||||
tap_rec.size = gsm_map_pdu_size;
|
||||
/*
|
||||
|
||||
tap_queue_packet(gsm_map_tap, pinfo, &tap_rec);
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
|
@ -1216,6 +1230,10 @@ void proto_register_gsm_map(void) {
|
|||
{ "Hlr-Number digits", "gsm_map.hlr_number_digits",
|
||||
FT_STRING, BASE_NONE, NULL, 0,
|
||||
"Hlr-Number digits", HFILL }},
|
||||
{&hf_gsm_map_map_ForwardedToNumber_digits,
|
||||
{ "Forwarded To Number digits", "gsm_map.forwardedtonumber_digits",
|
||||
FT_STRING, BASE_NONE, NULL, 0,
|
||||
"Forwarded To Number digits", HFILL }},
|
||||
{ &hf_gsm_map_Ss_Status_unused,
|
||||
{ "Unused", "gsm_map.unused",
|
||||
FT_UINT8, BASE_HEX, NULL, 0xf0,
|
||||
|
@ -1266,9 +1284,10 @@ void proto_register_gsm_map(void) {
|
|||
gsm_map_tap = register_tap("gsm_map");
|
||||
register_ber_oid_name("0.4.0.0.1.0.1.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkLocUp(1) version3(3)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.1.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) networkLocUp(1) version2(2)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.2.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locationCancel(2) version3(3)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.2.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locationCancel(2) version2(2)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.2.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locationCancel(2) version1(1)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.3.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) roamingNbEnquiry(3) version3(3)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.3.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) roamingNbEnquiry(3) version3(3)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.3.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) roamingNbEnquiry(3) version2(2)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.3.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) roamingNbEnquiry(3) version1(1)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.5.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locInfoRetrieval(5) version3(3)" );
|
||||
|
@ -1276,6 +1295,7 @@ void proto_register_gsm_map(void) {
|
|||
register_ber_oid_name("0.4.0.0.1.0.5.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) locInfoRetrieval(5) version1(1)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.10.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) reset(10) version2(2)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.10.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) reset(10) version1(1)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.11.3","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) handoverControl(11) version3(3)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.11.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) handoverControl(11) version2(2)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.11.1","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) handoverControl(11) version1(1)" );
|
||||
register_ber_oid_name("0.4.0.0.1.0.26.2","itu-t(0) identified-organization(4) etsi(0) mobileDomain(0) gsm-Network(1) map-ac(0) imsiRetrieval(26) version2(2)" );
|
||||
|
|
Loading…
Reference in New Issue