aboutsummaryrefslogtreecommitdiffstats
path: root/lib/asn1/test/asn1_bin_v2_SUITE_data/testobj.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/asn1/test/asn1_bin_v2_SUITE_data/testobj.erl')
-rw-r--r--lib/asn1/test/asn1_bin_v2_SUITE_data/testobj.erl1443
1 files changed, 0 insertions, 1443 deletions
diff --git a/lib/asn1/test/asn1_bin_v2_SUITE_data/testobj.erl b/lib/asn1/test/asn1_bin_v2_SUITE_data/testobj.erl
deleted file mode 100644
index be7ceee7d1..0000000000
--- a/lib/asn1/test/asn1_bin_v2_SUITE_data/testobj.erl
+++ /dev/null
@@ -1,1443 +0,0 @@
-%%
-%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2001-2010. All Rights Reserved.
-%%
-%% The contents of this file are subject to the Erlang Public License,
-%% Version 1.1, (the "License"); you may not use this file except in
-%% compliance with the License. You should have received a copy of the
-%% Erlang Public License along with this software. If not, it can be
-%% retrieved online at http://www.erlang.org/.
-%%
-%% Software distributed under the License is distributed on an "AS IS"
-%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
-%% the License for the specific language governing rights and limitations
-%% under the License.
-%%
-%% %CopyrightEnd%
-%%
-%%
--module(testobj).
-
--include("RANAP.hrl").
-
--compile(export_all).
-
--define(ranap, 'RANAP').
-
-
-%% These are possible Reason-values for sccp_disconnect_req in RANPM
-%%
-%% 0,0,0,0,0,1,0,0, % Message-type
-%% 0,0,0,0,0,0,0,0, % Dest local ref (dummy) - 3 octets
-%% 0,0,0,0,0,0,0,0,
-%% 0,0,0,0,0,0,0,1,
-%% 0,0,0,0,0,0,0,0, % Source local ref (dummy) - 3 octets
-%% 0,0,0,0,0,0,0,0,
-%% 0,0,0,0,0,0,1,0,
-
-run() ->
- ok = run_com_id(),
- ok = run_dir_tsf_2cn(),
- ok = run_dir_tsf_2rnc(),
- ok = run_init_ue(),
- ok = run_iu_rel_cmd(),
- ok = run_iu_rel_cmp(),
- ok = run_rab_ass_rsp_delete(),
- ok = run_rab_ass_rsp_setup(),
- ok = run_rab_create(),
- ok = run_rab_rel(),
- ok = run_reset(),
- ok = run_reset_res(),
- ok = run_sm_cmd(),
- ok = run_sm_cmp(),
- ok = run_sm_rej().
-
-
-ranap_pdu_contents(Enc,Type) ->
- {initiatingMessage, #'InitiatingMessage'{
- procedureCode = Type,
- criticality = ignore, %{'Criticality', ignore}, %XXX
- value = Enc
- }}.
-
-ranap_pdu_contents_outcome(Enc,Type) ->
- {outcome, #'Outcome'{
- procedureCode = Type,
- criticality = ignore,%XXX
- value = Enc
- }}.
-
-ranap_pdu_contents_suc(Enc,Type) ->
- {successfulOutcome, #'SuccessfulOutcome'{
- procedureCode = Type,
- criticality = ignore,%XXX
- value = Enc
- }}.
-
-ranap_pdu_contents_unsuc(Enc,Type) ->
- {unsuccessfulOutcome, #'UnsuccessfulOutcome'{
- procedureCode = Type,
- criticality = ignore,%XXX
- value = Enc
- }}.
-
-
-
-run_rab_rel() ->
- RAS = rab_release_request(),
- io:format("~w~n~n", [RAS]),
- RanapRAS = ranap_pdu_contents(RAS,0), % 0=Rab Assignment Procedure
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAS),
- EncRanapRAS = lists:flatten(Tmp2),
- io:format("~w~n~n", [EncRanapRAS]),
- {ok,{initiatingMessage,
- #'InitiatingMessage'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAS),
- io:format("~w~n~n", [DecGeneral]),
- case DecGeneral of
- {'RAB-AssignmentRequest',[{_ProtIEField,_Code,_Crit,DecRel}],_ASN1novalue} ->
- io:format("~w~n~n", [DecRel])
- end,
- case DecRel of
- [[{_ProtIEField1,_Code1,_Crit1,DecRelList}]] ->
- io:format("~w~n~n", [DecRelList])
- end,
- ok.
-
-run_rab_create() ->
- RabID = [0,1,0,1,0,1,0,1],
- Teid = [0,13,83,211],
- SgsnIP = [0,0,0,0,1,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,1,0,1,0],
- RAS = rab_create_request(RabID, Teid, SgsnIP),
- io:format("~w~n~n", [RAS]),
- RanapRAS = ranap_pdu_contents(RAS,0), % 0=Rab Assignment Procedure
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAS),
- EncRanapRAS = lists:flatten(Tmp2),
- io:format("~w~n~n", [EncRanapRAS]),
- {ok,{initiatingMessage,
- #'InitiatingMessage'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAS),
- io:format("~w~n~n", [DecGeneral]),
- case DecGeneral of
- {'RAB-AssignmentRequest',[{_ProtIEField,_Code,_Crit,DecSetOrMod}],_ASN1novalue} ->
- io:format("~w~n~n", [DecSetOrMod])
- end,
- case DecSetOrMod of
- [[{'ProtocolIE-FieldPair',_Code1,_Crit1,DecSetOrModFirst,_Crit2,DecSetOrModSecond}]] ->
- io:format("~w~n~n", [DecSetOrModFirst]),
- io:format("~w~n~n", [DecSetOrModSecond])
- end,
- ok.
-
-decode_initiating_ras(ProcedureCode,Crit,Val) ->
- case ProcedureCode of
- 0 -> % RAB-Assignment
- wrapper_decode(?ranap, 'RAB-AssignmentRequest',Val)
- end.
-
-
-run_rab_ass_rsp_setup() ->
- RAR = rab_assignment_response_setup(),
- io:format("~w~n~n", [RAR]),
- RanapRAR = ranap_pdu_contents_outcome(RAR,0), % 0=Rab Assignment Procedure
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAR),
- EncRanapRAR = lists:flatten(Tmp2),
- io:format("~w~n~n", [EncRanapRAR]),
- {ok,{outcome,
- #'Outcome'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAR),
- io:format("~w~n~n", [DecGeneral]),
- case DecGeneral of
- {'RAB-AssignmentResponse',[{_ProtIEField,52,_Crit,DecSetOrMod}], _ASN1novalue} ->
- io:format("Setup or Modified: ~w~n~n", [DecSetOrMod])
- end,
- case DecSetOrMod of
- [[{_ProtIEField1,51,_Crit1,DecSetOrModFirst}]] ->
- io:format("Setup or Modified: ~w~n~n", [DecSetOrModFirst])
- end,
- ok.
-
-run_rab_ass_rsp_delete() ->
- RAR = rab_assignment_response_delete(),
- io:format("~w~n~n", [RAR]),
- RanapRAR = ranap_pdu_contents_outcome(RAR,0), % 0=Rab Assignment Procedure
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRAR),
- EncRanapRAR = lists:flatten(Tmp2),
- io:format("~w~n~n", [EncRanapRAR]),
- {ok,{outcome,
- #'Outcome'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRAR),
- io:format("~w~n~n", [DecGeneral]),
- case DecGeneral of
- {'RAB-AssignmentResponse',[{_ProtIEField2,43,_Crit2,DecRelsd}], _ASN1novalue} ->
- io:format("Released: ~w~n~n", [DecRelsd])
- end,
- case DecRelsd of
- [[{_ProtIEField3,_Code3,_Crit3,DecRelsdItem}]] ->
- io:format("Released: ~w~n~n", [DecRelsdItem])
- end,
- ok.
-
-decode_initiating_rar(ProcedureCode,Crit,Val) ->
- case ProcedureCode of
- 0 -> % RAB-Assignment
- wrapper_decode(?ranap, 'RAB-AssignmentResponse',Val)
- end.
-
-
-
-run_init_ue() ->
- INI = initial_ue(),
- io:format("~w~n~n", [INI]),
- RanapINI = ranap_pdu_contents(INI, 19), % 19 = InitialUE-Message
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapINI),
- EncRanapINI = lists:flatten(Tmp2),
- io:format("~w~n~n", [EncRanapINI]),
-
- {ok,{initiatingMessage,
- #'InitiatingMessage'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapINI),
- io:format("~w~n~n", [DecGeneral]),
- case DecGeneral of
- {'InitialUE-Message',[{_ProtIEField,Code,_Crit,DecCN},
- {_ProtIEField1,Code1,_Crit1,
- {_LAI,LaiPlmnid,LaiLac,_ASN1novalue}},
- {_ProtIEField2,Code2,_Crit2,DecRAC},
- {_ProtIEField3,Code3,_Crit3,
- {_SAI,SaiPlmnid,SaiLac,SaiSac,_ASN1novalue}},
- {_ProtIEField4,Code4,_Crit4,DecNASPDU},
- {_ProtIEField5,Code5,_Crit5,DecIUSCID},
- {_ProtIEField6,Code6,_Crit6,
- {_GRI,GlPlmnid,GlRNCID}}],_ASN1novalue} ->
- io:format("CN Dom Ind: ~w~n", [DecCN]),
- io:format("Code: ~w~n~n", [Code]),
- io:format("LaiPlmnid: ~w~n", [LaiPlmnid]),
- io:format("LaiLac: ~w~n", [LaiLac]),
- io:format("Code: ~w~n~n", [Code1]),
- io:format("RAC: ~w~n", [DecRAC]),
- io:format("Code: ~w~n~n", [Code2]),
- io:format("SaiPlmnid: ~w~n", [SaiPlmnid]),
- io:format("SaiLac: ~w~n", [SaiLac]),
- io:format("SaiSac: ~w~n", [SaiSac]),
- io:format("Code: ~w~n~n", [Code3]),
- io:format("NAS-PDU: ~w~n", [DecNASPDU]),
- io:format("Code: ~w~n~n", [Code4]),
- io:format("Iu Sign Con Id: ~w~n", [DecIUSCID]),
- io:format("Code: ~w~n~n", [Code5]),
- io:format("GlPlmnid: ~w~n", [GlPlmnid]),
- io:format("GlRNCID: ~w~n", [GlRNCID]),
- io:format("Code: ~w~n~n", [Code6])
- end,
- ok.
-
-% NasPdu = extract_ie({init_ue},'InitUE-MessageIEsNAS-PDU',ListsinLists),
-% io:format("Tebax~n~w~n~n", [NasPdu]),
-% ok.
-
-decode_initiating_ini(ProcedureCode,Crit,Val) ->
- case ProcedureCode of
- 19 -> % InitialUE-Message
- wrapper_decode(?ranap, 'InitialUE-Message',Val)
- end.
-
-
-run_dir_tsf_2cn() ->
- DIR = direct_transfer_cn(),
- io:format("~w~n~n", [DIR]),
- RanapDIR = ranap_pdu_contents(DIR, 20), % 20 = DirectTransfer
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
- EncRanapDIR = lists:flatten(Tmp2),
- io:format("~w~n~n", [EncRanapDIR]),
- {ok,{initiatingMessage,
- #'InitiatingMessage'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
- io:format("~w~n~n", [DecGeneral]),
- case DecGeneral of
- {'DirectTransfer',
- [{_ProtIEField1,_Code1,_Crit1,DecNASPDU},
- {_ProtIEField2,_Code2,_Crit2,DecLAI},
- {_ProtIEField3,_Code3,_Crit3,DecRAC}],
- _ASN1novalue} ->
- io:format("NAS-PDU: ~w~n~n", [DecNASPDU]),
- io:format("LAI: ~w~n~n", [DecLAI]),
- io:format("RAC: ~w~n~n", [DecRAC])
- end,
- ok.
-
-run_dir_tsf_2rnc() ->
- DIR = direct_transfer_rnc(),
- io:format("~w~n~n", [DIR]),
- RanapDIR = ranap_pdu_contents(DIR, 20), % 20 = DirectTransfer
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
- EncRanapDIR = lists:flatten(Tmp2),
- io:format("~w~n~n", [EncRanapDIR]),
- {ok,{initiatingMessage,
- #'InitiatingMessage'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
- io:format("~w~n~n", [DecGeneral]),
- case DecGeneral of
- {'DirectTransfer',
- [{_ProtIEField1,_Code1,_Crit1,DecNASPDU},
- {_ProtIEField2,_Code2,_Crit2,DecSAPI}],
- _ASN1novalue} ->
- io:format("NAS-PDU: ~w~n~n", [DecNASPDU]),
- io:format("SAPI: m~w~n~n", [DecSAPI])
- end,
- ok.
-
-decode_initiating_dir(ProcedureCode,Crit,Val) ->
- io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
- case ProcedureCode of
- 20 -> % DirectTransfer
- wrapper_decode(?ranap, 'DirectTransfer',Val)
- end.
-
-% List = tuple2list(Dec),
-% io:format("~w~n~n", [List]),
-% NasPdu = extract_ie({dir_trans},'DirTransIEs-NAS-PDU',List),
-% io:format("~w~n~n", [NasPdu]),
-% ok.
-
-
-run_iu_rel_cmd() ->
- IUR = iu_release_command(),
- io:format("~w~n~n", [IUR]),
- RanapIUR = ranap_pdu_contents(IUR, 1), % 1 = Iu-Release
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUR),
- EncRanapIUR = lists:flatten(Tmp2),
- io:format("~w~n~n", [EncRanapIUR]),
- {ok,{initiatingMessage,
- #'InitiatingMessage'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUR),
- io:format("General: ~w~n~n", [DecGeneral]),
- case DecGeneral of
- {'Iu-ReleaseCommand',[{_ProtIEField,_Code,_Crit,DecCause}],_ASN1novalue} ->
- io:format("Cause: ~w~n~n", [DecCause])
- end.
-
-run_iu_rel_cmp() ->
- IUP = iu_release_complete(),
- io:format("~w~n~n", [IUP]),
- RanapIUP = ranap_pdu_contents_suc(IUP, 1), % 1 = Iu-Release
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
- EncRanapIUP = lists:flatten(Tmp2),
- io:format("~w~n~n", [EncRanapIUP]),
- {ok,{successfulOutcome,
- #'SuccessfulOutcome'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP),
- io:format("~w~n~n", [DecGeneral]).
-
-% run_iu_rel_req() ->
-% IUP = iu_release_request(),
-% io:format("~w~n~n", [IUP]),
-% {ok, Tmp} = wrapper_encode(?ranap, 'Iu-ReleaseRequest', IUP),
-% EncIUP = lists:flatten(Tmp),
-% RanapIUP = ranap_pdu_contents(EncIUP, 1), % 1 = Iu-Release
-% {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
-% EncRanapIUP = lists:flatten(Tmp2),
-% io:format("~w~n~n", [EncRanapIUP]),
-% case wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP) of
-% {ok,{initiatingMessage,
-% #'InitiatingMessage'{procedureCode=ProcedureCode,
-% criticality=Criticality,
-% value=Value}}} ->
-% DecGeneral = decode_initiating_iu(ProcedureCode,Criticality,Value)
-% end,
-% io:format("~w~n~n", [DecGeneral]).
-
-decode_initiating_iu(ProcedureCode,Crit,Val) ->
- case ProcedureCode of
- 1 -> % Iu-Release
- wrapper_decode(?ranap, 'Iu-ReleaseComplete',Val)
- end.
-
-
-
-
-
-run_com_id() ->
- COM = common_id(),
- io:format("~w~n~n", [COM]),
- RanapCOM = ranap_pdu_contents(COM, 15), % 15 = CommonID
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapCOM),
- EncRanapCOM = lists:flatten(Tmp2),
- io:format("~w~n~n", [EncRanapCOM]),
- {ok,{initiatingMessage,
- #'InitiatingMessage'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapCOM),
- io:format("DecGeneral: ~w~n~n", [DecGeneral]),
- case DecGeneral of
- {'CommonID',[{_ProtIEField,23,_Crit,DecCause}],_ASN1novalue} ->
- io:format("Cause: ~w~n~n", [DecCause]);
- Error ->
- io:format("Error: ~w~n~n", [Error])
- end.
-
-
-decode_common_id(ProcedureCode,Crit,Val) ->
- case ProcedureCode of
- 15 -> % Common ID
- wrapper_decode(?ranap, 'CommonID',Val);
- Error ->
- io:format("Error: ~w~n~n", [Error])
- end.
-
-
-
-
-run_sm_cmd() ->
- DIR = security_mode_cmd(),
- io:format("~w~n~n", [DIR]),
- RanapDIR = ranap_pdu_contents(DIR, 6), % 6 = Sec Mode
- io:format("~w~n~n", [RanapDIR]),
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
- EncRanapDIR = lists:flatten(Tmp2),
- io:format("~w~n~n", [EncRanapDIR]),
- {ok,{initiatingMessage,
- #'InitiatingMessage'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
- io:format("~w~n~n", [DecGeneral]),
- case DecGeneral of
- {'SecurityModeCommand',
- [{_ProtIEField1,12,_Crit1,DecIPI},
- {_ProtIEField2,11,_Crit2,DecEI},
- {_ProtIEField3,75,_Crit3,DecKS}],
- _ASN1novalue} ->
- io:format("Integrity Protection Algoritm: ~w~n~n", [DecIPI]),
- io:format("Encryption Information: ~w~n~n", [DecEI]),
- io:format("Key Status: ~w~n~n", [DecKS])
- end,
- ok.
-
-run_sm_cmp() ->
- DIR = security_mode_cmp(),
- io:format("~w~n~n", [DIR]),
- RanapDIR = ranap_pdu_contents_suc(DIR, 6), % 6 = Sec Mode
- io:format("~w~n~n", [RanapDIR]),
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
- EncRanapDIR = lists:flatten(Tmp2),
- io:format("~w~n~n", [EncRanapDIR]),
- {ok,{successfulOutcome,
- #'SuccessfulOutcome'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
- io:format("~w~n~n", [DecGeneral]),
- case DecGeneral of
- {'SecurityModeComplete',
- [{_ProtIEField1,6,_Crit1,DecIPA},
- {_ProtIEField2,5,_Crit2,DecEI}],
- _ASN1novalue} ->
- io:format("Integrity Protection Algoritm: ~w~n~n", [DecIPA]),
- io:format("Encryption Information: ~w~n~n", [DecEI])
- end,
- ok.
-
-run_sm_rej() ->
- DIR = security_mode_rej(),
- io:format("~w~n~n", [DIR]),
- RanapDIR = ranap_pdu_contents_unsuc(DIR, 6), % 6 = Sec Mode
- io:format("~w~n~n", [RanapDIR]),
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapDIR),
- EncRanapDIR = lists:flatten(Tmp2),
- io:format("~w~n~n", [EncRanapDIR]),
- {ok,{unsuccessfulOutcome,
- #'UnsuccessfulOutcome'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapDIR),
- io:format("~w~n~n", [DecGeneral]),
-% case DecGeneral of
-% {ok,{'SecurityModeReject',
-% [{_ProtIEField1,6,_Crit1,Value1},
-% {_ProtIEField2,5,_Crit2,Value2}],
-% _ASN1novalue}} ->
-% io:format("Value1: ~w~n~n", [Value1]),
-% io:format("Value2: ~w~n~n", [Value2]),
-% {ok,DecIPA} = wrapper_decode(?ranap, 'IntegrityProtectionAlgorithm', Value1),
-% {ok,DecEI} = wrapper_decode(?ranap, 'EncryptionAlgorithm', Value2),
-% io:format("Integrity Protection Algoritm: ~w~n~n", [DecIPA]),
-% io:format("Encryption Information: ~w~n~n", [DecEI])
-% end,
- ok.
-
-decode_initiating_sm(ProcedureCode,Crit,Val) ->
- io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
- case ProcedureCode of
- 6 -> % Sec Mode
- wrapper_decode(?ranap, 'SecurityModeCommand',Val)
- end.
-
-decode_suc_sm(ProcedureCode,Criticality,Value) ->
- io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
- case ProcedureCode of
- 6 -> % Sec Mode
- wrapper_decode(?ranap, 'SecurityModeComplete',Value)
- end.
-
-decode_unsuc_sm(ProcedureCode,Criticality,Value) ->
- io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
- case ProcedureCode of
- 6 -> % Sec Mode
- wrapper_decode(?ranap, 'SecurityModeReject',Value)
- end.
-
-
-
-
-
-
-
-run_reset() ->
- IUP = reset(),
- io:format("Reset: ~w~n~n", [IUP]),
- RanapIUP = ranap_pdu_contents(IUP, 9), % 9 = Reset
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
- EncRanapIUP = lists:flatten(Tmp2),
- io:format("Coded Reset: ~w~n~n", [EncRanapIUP]),
- {ok,{initiatingMessage,
- #'InitiatingMessage'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP),
- io:format("Decoded Reset: ~w~n~n", [DecGeneral]),
-
- IUP1 = reset_ack(),
- io:format("Reset Ack:~w~n~n", [IUP1]),
- RanapIUP1 = ranap_pdu_contents_suc(IUP1, 9), % 9 = Reset
- {ok, Tmp21} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP1),
- EncRanapIUP1 = lists:flatten(Tmp21),
- io:format("Coded Reset Ack: ~w~n~n", [EncRanapIUP1]),
- {ok,{successfulOutcome,
- #'SuccessfulOutcome'{procedureCode=ProcedureCode1,
- criticality=Criticality1,
- value=DecGeneral1}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP1),
- io:format("Decoded Reset Ack: ~w~n~n", [DecGeneral1]).
-
-% decode_init_reset(ProcedureCode,Crit,Val) ->
-% io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
-% case ProcedureCode of
-% 9 -> % reset
-% wrapper_decode(?ranap, 'Reset',Val)
-% end.
-
-% decode_init_reset_ack(ProcedureCode,Crit,Val) ->
-% io:format("ProcedureCode: ~w~n~n", [ProcedureCode]),
-% case ProcedureCode of
-% 9 -> % reset
-% wrapper_decode(?ranap, 'ResetAcknowledge',Val)
-% end.
-
-
-
-
-
-
-
-
-
-run_reset_res() ->
- IUP = reset_res([12,13,14,15,16,17,18,19,20]),
- io:format("Reset Rsource: ~w~n~n", [IUP]),
- RanapIUP = ranap_pdu_contents(IUP, 27), % 27 = Reset Res
- {ok, Tmp2} = wrapper_encode(?ranap, 'RANAP-PDU', RanapIUP),
- EncRanapIUP = lists:flatten(Tmp2),
- io:format("Coded Reset Resource: ~w~n~n", [EncRanapIUP]),
- {ok,{initiatingMessage,
- #'InitiatingMessage'{procedureCode=ProcedureCode,
- criticality=Criticality,
- value=DecGeneral}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapIUP),
- io:format("Decoded Reset Resource: ~w~n~n", [DecGeneral]),
-% case DecGeneral of
-% {ok,{'ResetResource',
-% [{'ProtocolIE-Field',3,ignore,Value1},
-% {'ProtocolIE-Field',4,ignore,Value2},
-% {'ProtocolIE-Field',77,ignore,Value3},
-% {'ProtocolIE-Field',86,ignore,Value4}],
-% asn1_NOVALUE}} ->
-% io:format("Value1: ~w~n~n", [Value1]),
-% io:format("Value2: ~w~n~n", [Value2]),
-% io:format("Value3: ~w~n~n", [Value3]),
-% io:format("Value4: ~w~n~n", [Value4]),
-% {ok,DecIPA} = wrapper_decode(?ranap, 'CN-DomainIndicator', Value1),
-% {ok,{_Radio,DecEI}} = wrapper_decode(?ranap, 'Cause', Value2),
-% {ok,DecRR} = wrapper_decode(?ranap, 'ResetResourceList', Value3),
-% DecRRI = case DecRR of
-% [[{'ProtocolIE-Field',78,ignore,Value5}]] ->
-% {ok,{_apa,DecRI,_asn1novalue}} =
-% wrapper_decode(?ranap, 'ResetResourceItem', Value5),
-% DecRI
-% end,
-% {ok,{_Gl_id,PLMN_ID,RNC_ID}} = wrapper_decode(?ranap, 'GlobalRNC-ID', Value4),
-% io:format("CN-DomainIndicator: ~w~n~n", [DecIPA]),
-% io:format("Cause: ~w~n~n", [DecEI]),
-% io:format("ResetResourceList: ~w~n~n", [DecRR]),
-% io:format(" ResetResourceItem: ~w~n~n", [DecRRI]),
-% io:format("GlobalRNC-ID: PLMN_ID: ~w, RNC_ID: ~w~n~n", [PLMN_ID,RNC_ID])
-% end,
-
- RSA = reset_res_ack([12,13,14,15,16,17,18,19,20]),
- io:format("~n~nReset Resource Ack:~w~n~n", [RSA]),
- RanapRSA = ranap_pdu_contents_suc(RSA, 27), % 27 = Reset Res
- {ok, Tmp12} = wrapper_encode(?ranap, 'RANAP-PDU', RanapRSA),
- EncRanapRSA = lists:flatten(Tmp12),
- io:format("Coded Reset Resource Ack: ~w~n~n", [EncRanapRSA]),
- {ok,{successfulOutcome,
- #'SuccessfulOutcome'{procedureCode=ProcedureCode1,
- criticality=Criticality1,
- value=DecGeneral1}}} =
- wrapper_decode(?ranap, 'RANAP-PDU', EncRanapRSA),
- io:format("Decoded Reset Resource Ack: ~w~n~n", [DecGeneral1]).
-% case DecGeneral1 of
-% {ok,{'ResetResourceAcknowledge',
-% [{'ProtocolIE-Field',3,ignore,Value12},
-% {'ProtocolIE-Field',77,ignore,Value32}],
-% asn1_NOVALUE}} ->
-% io:format("Value1: ~w~n~n", [Value12]),
-% io:format("Value3: ~w~n~n", [Value32]),
-% {ok,DecIPA2} = wrapper_decode(?ranap, 'CN-DomainIndicator', Value12),
-% {ok,DecRR2} = wrapper_decode(?ranap, 'ResetResourceList', Value32),
-% DecRRI2 = case DecRR2 of
-% [[{'ProtocolIE-Field',78,ignore,Value52}]] ->
-% {ok,{_apa2,DecRI2,_asn1novalue2}} =
-% wrapper_decode(?ranap, 'ResetResourceItem', Value52),
-% DecRI2
-% end,
-% io:format("CN-DomainIndicator: ~w~n~n", [DecIPA2]),
-% io:format("ResetResourceList: ~w~n~n", [DecRR2]),
-% io:format(" ResetResourceItem: ~w~n~n", [DecRRI2])
-% end.
-
-
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%
-%% Kod f�r att s�tta ihop RANAP-meddelanden
-%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-rab_release_request() ->
- #'RAB-AssignmentRequest'{
- protocolIEs = rab_assign_request_release_ies()
- }.
-
-rab_assign_request_release_ies() ->
- [rab_assign_release_rab_release_list()].
-
-rab_assign_release_rab_release_list() ->
- #'ProtocolIE-Field'{
- id = 41, % 41 = id-RAB-ReleaseList
- criticality = ignore,%XXX
- value = rab_release_list()
- }.
-
-rab_release_list() ->
- [release_lists()].
-
-release_lists() ->
- [rab_release_item_ies()].
-
-rab_release_item_ies() ->
- #'ProtocolIE-Field'{
- id = 40, % 40 = id-RAB-ReleaseItem
- criticality = ignore,%XXX
- value = rab_release_item()}.
-
-rab_release_item() ->
- #'RAB-ReleaseItem'{'rAB-ID' = rab_id(),
- cause = cause_nas()}.
-
-cause_nas() ->
- {nAS, 'normal-release'}.
-
-
-
-
-
-
-rab_create_request(Rabid, Teid, SgsnIP) ->
- #'RAB-AssignmentRequest'{
- protocolIEs =
- rab_assign_create_request_ies(Rabid, Teid, SgsnIP)
- }.
-
-rab_assign_create_request_ies(Rabid, Teid, SgsnIP) ->
- [rab_assign_setup_or_modify_list(Rabid, Teid, SgsnIP)].
-
-rab_assign_setup_or_modify_list(Rabid, Teid, SgsnIP) ->
- #'ProtocolIE-Field'{
- id = 54, %id-RAB-SetupOrModifyList
- criticality = ignore,%XXX
- value = rab_setup_or_modify_list(Rabid, Teid, SgsnIP)
- }.
-
-rab_setup_or_modify_list(Rabid, Teid, SgsnIP) ->
- [setup_or_modify_lists(Rabid, Teid, SgsnIP)].
-
-setup_or_modify_lists(Rabid, Teid, SgsnIP) ->
- [rab_setup_or_modify_item_ies(Rabid, Teid, SgsnIP)].
-
-rab_setup_or_modify_item_ies(Rabid, Teid, SgsnIP) ->
- #'ProtocolIE-FieldPair'{
- id = 53,
- firstCriticality = reject, %{'Criticality',reject},
- firstValue = rab_setup_or_modify_item_first(Rabid, Teid, SgsnIP),
- secondCriticality = ignore, %{'Criticality', ignore}
- secondValue = rab_setup_or_modify_item_second()
- }.
-
-rab_setup_or_modify_item_first(Rabid, Teid, SgsnIP) ->
- #'RAB-SetupOrModifyItemFirst'{
- 'rAB-ID' = Rabid, %ras_rab_id(Rabid),
- 'rAB-Parameters' = rab_parameters(),
- userPlaneInformation = user_plane_information(),
- transportLayerAddress = SgsnIP,
- iuTransportAssociation = ras_iu_transport_association(Teid)
- }.
-
-ras_iu_transport_association(Teid) ->
- {'gTP-TEI', Teid}.
-
-rab_id() ->
- [0,1,0,1,0,1,0,1].
-
-rab_parameters() ->
- #'RAB-Parameters'{
- trafficClass = background,
- 'rAB-AsymmetryIndicator' = 'symmetric-bidirectional',
- maxBitrate = [200000],
- deliveryOrder = 'delivery-order-not-requested',
- 'maxSDU-Size' = 11,
- 'sDU-Parameters' = sdu_parameters(),
- trafficHandlingPriority = 14 %{'TrafficHandlingPriority', 14} %14=lowest
- }.
-
-user_plane_information() ->
- #'UserPlaneInformation'{
- userPlaneMode = 'support-mode-for-predefined-SDU-sizes',
- 'uP-ModeVersions' = 2#1010101010101010
- }.
-
-transport_layer_address() ->
- [1,1,0,0,1,1,0,0,1,1,1,1,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,1,1,1,1].
-% 1 2 3 4
-
-iu_transport_association() ->
- {'gTP-TEI', [31,32,33,34]}.
-
-sdu_parameters() ->
- [#'SDU-Parameters_SEQOF'{
- 'sDU-ErrorRatio' = sdu_error_ratio(),
- residualBitErrorRatio = residual_bit_error_ratio(),
- deliveryOfErroneousSDU = no
- }].
-
-sdu_error_ratio() ->
- #'SDU-ErrorRatio'{
- mantissa = 9,
- exponent = 4
- }.
-
-residual_bit_error_ratio() ->
- #'ResidualBitErrorRatio'{
- mantissa = 9,
- exponent = 5
- }.
-
-%allocationOrRetentionPriority() ->
-% #'AllocationOrRetentionPriority'{
-% priorityLevel = lowest,
-% 'pre-emptionCapability' = {'Pre-emptionCapability','can-trigger-pre-emption'},
-% 'pre-emptionVulnerability' = {'Pre-emptionVulnerability','not-vulnerable-to-pre-emption'},
-% queuingAllowed = {'QueuingAllowed','queueing-allowed'}
-% }.
-
-rab_setup_or_modify_item_second() -> % returns OpenType value
- #'RAB-SetupOrModifyItemSecond'{
- 'pDP-TypeInformation' = ['ipv4'],
- dataVolumeReportingIndication = 'do-not-report',
- 'dl-GTP-PDU-SequenceNumber' = 1,
- 'ul-GTP-PDU-SequenceNumber' = 2,
- 'dl-N-PDU-SequenceNumber' = 0,
- 'ul-N-PDU-SequenceNumber' = 0
- }.
-
-
-
-
-rab_assignment_response_setup() ->
- #'RAB-AssignmentResponse'{
- protocolIEs = rab_assignement_response_ies_setup()
- }.
-
-rab_assignement_response_ies_setup() ->
- [rab_ass_rsp_setup_or_modified_list()].
-
-rab_ass_rsp_setup_or_modified_list() ->
- #'ProtocolIE-Field'{
- id = 52, % 52=RAB-AssignRABSetupOrModifiedList
- criticality = ignore,%XXX
- value = rab_setup_or_modified_list()
- }.
-
-rab_setup_or_modified_list() ->
- [rab_setup_or_modified_item_list()].
-
-rab_setup_or_modified_item_list() ->
- [rab_setup_or_modified_item_ies()].
-
-rab_setup_or_modified_item_ies() ->
- #'ProtocolIE-Field'{
- id = 51, % 51 = RAB-SetupOrModifiedItemIEs
- criticality = reject, %{'Criticality', reject},
- value = rab_setup_or_modified_item()
- }.
-
-rab_setup_or_modified_item() ->
- #'RAB-SetupOrModifiedItem'{
- 'rAB-ID' = rab_id(),
- transportLayerAddress = transport_layer_address(),
- iuTransportAssociation = iu_transport_association()
- }.
-
-
-
-
-
-
-rab_assignment_response_delete() ->
- #'RAB-AssignmentResponse'{
- protocolIEs = rab_assignement_response_ies_delete()
- }.
-
-rab_assignement_response_ies_delete() ->
- [rab_ass_rsp_rab_release_list()].
-
-rab_ass_rsp_rab_release_list() ->
- #'ProtocolIE-Field'{
- id = 43, % 41 = RAB-AssignRABReleasedList
- criticality = ignore,%XXX
- value = rab_released_list()
- }.
-
-rab_released_list() ->
- [released_lists()].
-
-released_lists() ->
- [rab_released_item_ies()]. % 'ReleasedLists'
-
-rab_released_item_ies() ->
- #'ProtocolIE-Field'{
- id = 42, % 42 = RAB-ReleaseItemIEs
- criticality = ignore,%XXX
- value = rab_released_item()
- }.
-
-rab_released_item() ->
- #'RAB-ReleasedItem'{
- 'rAB-ID' = rab_id()
- }.
-
-
-
-initial_ue() ->
- #'InitialUE-Message'{
- protocolIEs = initial_ue_ies()
- }.
-
-initial_ue_ies() ->
- [cn_domain_ind(),
- init_lai(),
- init_rac(),
- init_sai(),
- init_nas_pdu(),
- init_iu_sign_con_id(),
- init_global_rnc_id_initial_ue()].
-
-
-cn_domain_indicator() ->
- {'CN-DomainIndicator', 'ps-domain'}.
-
-init_lai() ->
- #'ProtocolIE-Field'{
- id = 15, % 15 = LAI
- criticality = ignore,%XXX
- value = lai()
- }.
-
-lai() ->
- #'LAI'{'pLMN-ID' = [25,26,27],
- lAC = [25,26]}.
-
-init_rac() ->
- #'ProtocolIE-Field'{
- id = 55, % 55 = RAC
- criticality = ignore,%XXX
- value = rac()
- }.
-
-rac() ->
- [25].
-
-init_sai() ->
- #'ProtocolIE-Field'{
- id = 58, % 58 = SAI
- criticality = ignore,%XXX
- value = sai()
- }.
-
-sai() ->
- #'SAI'{'pLMN-ID' = [28,29,30], %KOLLA!!!!
- lAC = [30,31],
- sAC = [32,33]}.
-
-init_nas_pdu() ->
- #'ProtocolIE-Field'{
- id = 16, % 16 = NAS-PDU
- criticality = ignore,%XXX
- value = pdu_ar()
- }.
-
-pdu_ac()->
- [16#08,
- 16#03].
-
-pdu_ar() ->
- [16#08, % Skip indicator | Protocol discriminator
- 16#01, % Attach Request
- 16#01,16#b7, % MsNetworkCapability
- 16#21, % Cksn | AttachType
- 16#55,16#06, % DrxParameter
- 16#05,16#61,16#86,16#14,16#09,16#f7, % MsId
- 16#21,16#63,16#54,16#ac,16#dc,16#d5, % OldRai
- 16#0a,16#f0,16#f1,16#f2,16#f3,16#f4, % MsRaCap
- 16#f5,16#f6,16#f7,16#f8,16#f9 % MsRaCap continues
- %%16#19,16#ab,16#cd,16#ef, % P-TMSI signature
- %%16#17,16#5b, % Requested READY timer
- %%16#91 % TMSI status
- ].
-
-pdu_pdp() ->
- [2#01001010, % Transaction_id | Protocol_disc
- 2#01000001, % Message_type
- 2#00001001, % Nsapi
- 1, % Llc_sapi (dummie_value)
- 1,1,1,1, % QoS dummie_value=1 (19 octets)
- 1,1,1,1,1,
- 1,1,1,1,1,
- 1,1,1,1,1,
- 7, % PDP_Address (Ltot=7),
- 2#00000001, % ietf/etsi organisation
- 2#00100001, % IPv4
- 198, % IP address MSD
- 124,
- 56,
- 124, % IP address LSD
- 1, % APN optional (octet1=IEI)
- 25, % APN total length
- 4, % length lable1
- 116,101,115,116, % lable1 = test
- 4, % length lable2
- 116,101,115,116, % lable2 = test
- 4, % lenght lable3
- 116,101,115,116, % lable3 = test
- 4, % length lable3
- 116,101,115,116, % lable4 = test
- 4, % length label5
- 103,112,114,115
- ].
-
-pdu_auth_rsp() ->
- [8,16#13,0,1,2,3,16#21,2,0,1].
-
-pdu_auth_fail() ->
- [8,16#1C,1,16#22,2,0,1].
-
-init_iu_sign_con_id() ->
- #'ProtocolIE-Field'{
- id = 79, % 79 = id-IuSigConId
- criticality = ignore,%XXX
- value = iu_sign_con_id()
- }.
-
-iu_sign_con_id() ->
- 53245.
-% [1,0,1,0,1,0,1,0,
-% 1,0,1,0,1,0,1,0,
-% 1,0,1,0,1,0,1,1]
-
-init_global_rnc_id_initial_ue() ->
- #'ProtocolIE-Field'{
- id = 86, % 86 = id-GlobalRNC-ID
- criticality = ignore,%XXX
- value = global_rnc_id()
- }.
-
-global_rnc_id() ->
- #'GlobalRNC-ID'{'pLMN-ID' = [10,11,12], 'rNC-ID' = 2048}.
-
-direct_transfer_cn() ->
- #'DirectTransfer'{
- protocolIEs = direct_transfer_cn_ies()
- }.
-
-direct_transfer_cn_ies() ->
- [dir_cn_nas_pdu(),
- dir_lai(),
- dir_rac()].
-
-dir_cn_nas_pdu() ->
- #'ProtocolIE-Field'{
- id = 16, % 16 = id-NAS-PDU
- criticality = ignore,%XXX
- value = pdu_auth_fail()
- }.
-
-dir_lai() ->
- #'ProtocolIE-Field'{
- id = 15, % 15 = id-LAI
- criticality = ignore,%XXX
- value = lai()
- }.
-
-dir_rac() ->
- #'ProtocolIE-Field'{
- id = 55, % 55 = id-RAC
- criticality = ignore,%XXX
- value = rac()
- }.
-
-
-
-
-
-
-direct_transfer_rnc() ->
- #'DirectTransfer'{
- protocolIEs = direct_transfer_rnc_ies()
- }.
-
-direct_transfer_rnc_ies() ->
- [dir_rnc_nas_pdu(),
- dir_sapi()].
-
-dir_rnc_nas_pdu() ->
- #'ProtocolIE-Field'{
- id = 16, % 16 = id-NAS-PDU
- criticality = ignore,%XXX
- value = pdu_auth_rsp()
- }.
-
-dir_sapi() ->
- #'ProtocolIE-Field'{
- id = 59, % 59 = id-SAPI
- criticality = ignore,%XXX
- value = sapi()
- }.
-
-sapi() ->
- 'normal-priority'.
-
-
-
-
-
-iu_release_command() ->
- #'Iu-ReleaseCommand'{
- protocolIEs = iu_rel_command_ies()
- }.
-
-iu_rel_command_ies() ->
- [iu_relcomcause_nas()].
-
-iu_relcomcause_nas() ->
- #'ProtocolIE-Field'{
- id = 4, % 4 = Id-Cause
- criticality = ignore,%XXX
- value = cause()
- }.
-
-cause() ->
- cause_nas().
-
-% cause() ->
-% {ok,Bytes} =
-% wrapper_encode(?ranap,'CauseNAS',
-% {'CauseNAS', 'normal-release'}),
-% Bytes.
-
-
-
-
-
-
-iu_release_complete() ->
- #'Iu-ReleaseComplete'{
- protocolIEs = iu_rel_comp_ies()
- }.
-
-iu_rel_comp_ies() ->
- [].
-% 'iu-RelCompRABDataVolumeReportList' = asn1_NOVALUE,
-% 'iu-RelCompRABReleasedListIuRelComp' = asn1_NOVALUE,
-% 'iu-RelCompCriticalityDiagnostics' = asn1_NOVALUE
-% }.
-
-
-
-
-
-
-
-
-common_id() ->
- #'CommonID'{
- protocolIEs = common_id_ies()
- }.
-
-common_id_ies() ->
- [common_id_imsi()].
-
-common_id_imsi() ->
- #'ProtocolIE-Field'{
- id = 23, % 23 = Perm. NAS ID (IMSI)
- criticality = ignore, %ignore,%XXX %XXX
- value = imsi()
- }.
-
-imsi() ->
- {iMSI, [1,2,3,4,5,6,7,8]}.
-
-
-
-
-
-
-
-
-
-
-security_mode_cmd() ->
- #'SecurityModeCommand'{
- protocolIEs = security_mode_cmd_ies()
- }.
-
-security_mode_cmd_ies() ->
- [security_mode_cmd_integ(),
- security_mode_cmd_encr(),
- security_mode_cmd_keystat()
- ].
-
-security_mode_cmd_integ() ->
- #'ProtocolIE-Field'{
- id = 12, % 12 = Integ info
- criticality = ignore,%{'Criticality', ignore},
- value = integ_info()
- }.
-
-integ_info() ->
- #'IntegrityProtectionInformation'{
- permittedAlgorithms = perm_integ_algs(),
- key = key() }.
-
-perm_integ_algs() ->
- [integ_prot_alg()].
-
-integ_prot_alg() ->
- 'standard-UMTS-integrity-algorithm-UIA1'.
-
-key() ->
- [1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
- 1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0].
-
-
-
-security_mode_cmd_encr() ->
- #'ProtocolIE-Field'{
- id = 11, % 11 = Encr info
- criticality = ignore,%{'Criticality', ignore},
- value = encr_info()
- }.
-
-encr_info() ->
- #'EncryptionInformation'{
- permittedAlgorithms = perm_encr_algs(),
- key = key() }.
-
-perm_encr_algs() ->
- [encr_prot_alg()].
-
-encr_prot_alg() ->
- 'standard-UMTS-encryption-algorith-UEA1'.
-
-security_mode_cmd_keystat() ->
- #'ProtocolIE-Field'{
- id = 75, % 75 = id-KeyStatus
- criticality = ignore,%{'Criticality', ignore},
- value = key_status()
- }.
-
-key_status() ->
- new.
-
-
-
-
-
-security_mode_cmp() ->
- #'SecurityModeComplete'{
- protocolIEs = security_mode_cmp_ies()
- }.
-
-security_mode_cmp_ies() ->
- [security_mode_cmp_ch_integ_prot_alg(),
- security_mode_cmp_ch_encr_alg()
- ].
-
-security_mode_cmp_ch_integ_prot_alg() ->
- #'ProtocolIE-Field'{
- id = 6, % 6 = Chosen Integ prot alg
- criticality = ignore,%XXX
- value = ch_integ_prot_alg()
- }.
-
-ch_integ_prot_alg() ->
- 'standard-UMTS-integrity-algorithm-UIA1'.
-
-
-security_mode_cmp_ch_encr_alg() ->
- #'ProtocolIE-Field'{
- id = 5, % 5 = Chosen Encr alg
- criticality = ignore,%XXX
- value = ch_encr_alg()
- }.
-
-ch_encr_alg() ->
- 'standard-UMTS-encryption-algorith-UEA1'.
-
-
-
-
-security_mode_rej() ->
- #'SecurityModeReject'{
- protocolIEs = security_mode_rej_ies()
- }.
-
-security_mode_rej_ies() ->
- [security_mode_rej_cause()].
-
-
-security_mode_rej_cause() ->
- #'ProtocolIE-Field'{
- id = 4, % 4 = Id-Cause
- criticality = ignore,%XXX
- value = cause_radio() % Se Reset
- }.
-
-
-
-
-
-
-
-
-reset() ->
- #'Reset'{
- protocolIEs = reset_ies()
- }.
-reset_ies() ->
- {'Reset_protocolIEs', % this identifier is very unneccesary here
- [reset_cause(),
- cn_domain_ind(), % Se initial Ue
- init_global_rnc_id() % ---- " ----
- ]}.
-init_global_rnc_id() ->
- #'ProtocolIE-Field'{
- id = 86, % 86 = id-GlobalRNC-ID
- criticality = ignore,%XXX
- value = global_rnc_id()
- }.
-
-reset_cause() ->
- #'ProtocolIE-Field'{
- id = 4, % 4 = id-Cause
- criticality = ignore,%XXX
- value = cause_radio()
- }.
-%cause_open() ->
-% {ok,Bytes} =
-% wrapper_encode(?ranap,'Cause', cause_radio()),
-% Bytes.
-cause_radio() ->
- {radioNetwork, 'release-due-to-utran-generated-reason'}.
-
-
-cn_domain_ind(IEs) when atom(IEs)->
- setelement(1,cn_domain_ind(),IEs).
-
-cn_domain_ind() ->
- #'ProtocolIE-Field'{
- id = 3, % 3 = InitUE-MessageIEsCN-DomainIndicator
- criticality = ignore,%XXX
- value = cn_domain_indicator()
- }.
-
-
-
-
-reset_ack() ->
- #'ResetAcknowledge'{
- protocolIEs = reset_ack_ies()
- }.
-reset_ack_ies() ->
- {'ResetAcknowledge_protocolIEs', % very unneccesary
- [cn_domain_ind()]}. % Se initial Ue
-
-
-
-
-
-reset_res(IuSCId) ->
- #'ResetResource'{
- protocolIEs = reset_res_ies(IuSCId)
- }.
-
-reset_res_ies(IuSCId) ->
- {'ResetResource_protocolIEs', % very unneccesary
- [
- cn_domain_ind() % Se initial Ue
- ,reset_cause() % Se reset
- ,reset_res_list(IuSCId)
- ,init_global_rnc_id_reset_res() % ---- " ----
- ]}.
-
-init_global_rnc_id_reset_res() ->
- #'ProtocolIE-Field'{
- id = 86, % 86 = id-GlobalRNC-ID
- criticality = ignore,%XXX
- value = global_rnc_id()
- }.
-
-reset_res_list(IuSCId) ->
- #'ProtocolIE-Field'{
- id = 77, % 77 = id-IuSigConIdList
- criticality = ignore,%XXX
- value = res_list(IuSCId)
- }.
-
-res_list(IuSCId) ->
- iu_Sig_Con_Id_list(IuSCId,[]).
-
-iu_Sig_Con_Id_list([],List) ->
- List;
-
-iu_Sig_Con_Id_list([IuSCId|T],List) ->
- Ie = [iu_Sig_Con_Id_ie(IuSCId)],
- iu_Sig_Con_Id_list(T,[Ie|List]).
-
-iu_Sig_Con_Id_ie(IuSCId) ->
- #'ProtocolIE-Field'{
- id = 78, % 78 = id-IuSigConIdItem
- criticality = ignore,%XXX
- value = iu_Sig_Con_Id_item(IuSCId)}.
-
-iu_Sig_Con_Id_item(IuSCId) ->
- #'ResetResourceItem'{
- iuSigConId = IuSCId
-% 53432
-% [1,0,1,0,1,0,1,0,
-% 1,0,1,0,1,0,1,0,
-% 1,0,1,0,1,0,1,0]
- }.
-
-
-reset_res_ack(IuSCId) ->
- #'ResetResourceAcknowledge'{
- protocolIEs = reset_res_ack_ies(IuSCId)
- }.
-reset_res_ack_ies(IuSCId) ->
- [
- cn_domain_ind() % Se initial Ue
- ,reset_res_list(IuSCId) % Se Reset Ressource
- ].
-
-
-int2bin(Int) ->
- EmptyList = [],
- BitList_b1 = [Int band 2#1 | EmptyList],
- BitList_b2 = [(Int bsr 1) band 2#1 | BitList_b1],
- BitList_b3 = [(Int bsr 2) band 2#1 | BitList_b2],
- BitList_b4 = [(Int bsr 3) band 2#1 | BitList_b3],
- BitList_b5 = [(Int bsr 4) band 2#1 | BitList_b4],
- BitList_b6 = [(Int bsr 5) band 2#1 | BitList_b5],
- BitList_b7 = [(Int bsr 6) band 2#1 | BitList_b6],
- BitList = [(Int bsr 7) band 2#1 | BitList_b7],
- io:format("~n~w~n", [BitList]).
-
-
-%%%%%%%%%%%%%%%%% wrappers %%%%%%%%%%%%%%%%%%%%%%%%
-
-wrapper_encode(Module,Type,Value) ->
- case asn1rt:encode(Module,Type,Value) of
- {ok,X} when binary(X) ->
- {ok, binary_to_list(X)};
- {ok,X} ->
- {ok, binary_to_list(list_to_binary(X))};
- Error ->
- Error
- end.
-
-wrapper_decode(Module,Type,Bytes) ->
- case Module:encoding_rule() of
- ber ->
- asn1rt:decode(Module,Type,Bytes);
- ber_bin when binary(Bytes) ->
- asn1rt:decode(Module,Type,Bytes);
- ber_bin ->
- asn1rt:decode(Module,Type,list_to_binary(Bytes));
- ber_bin_v2 when binary(Bytes) ->
- asn1rt:decode(Module,Type,Bytes);
- ber_bin_v2 ->
- asn1rt:decode(Module,Type,list_to_binary(Bytes));
- per ->
- asn1rt:decode(Module,Type,Bytes);
- per_bin when binary(Bytes) ->
- asn1rt:decode(Module,Type,Bytes);
- per_bin ->
- asn1rt:decode(Module,Type,list_to_binary(Bytes));
- uper_bin ->
- asn1rt:decode(Module,Type,list_to_binary(Bytes))
- end.