diff options
Diffstat (limited to 'lib/asn1/test/bench/per_bm.erl')
-rw-r--r-- | lib/asn1/test/bench/per_bm.erl | 650 |
1 files changed, 650 insertions, 0 deletions
diff --git a/lib/asn1/test/bench/per_bm.erl b/lib/asn1/test/bench/per_bm.erl new file mode 100644 index 0000000000..23f8a8f010 --- /dev/null +++ b/lib/asn1/test/bench/per_bm.erl @@ -0,0 +1,650 @@ +%% +%% %CopyrightBegin% +%% +%% Copyright Ericsson AB 2002-2009. 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(per_bm). + +-define(DATADIR,"/clearcase/otp/erts/lib/asn1/test/asn1_SUITE_data/"). +-include("bench.hrl"). + +-export([init/0,benchmarks/0]). +-export([encode/1,decode/1,ranap_enc/1,ranap_dec/1]). + + +init() -> + ok = asn1ct:compile(?DATADIR++"H235-SECURITY-MESSAGES",[per_bin]), + ok = asn1ct:compile(?DATADIR++"H323-MESSAGES",[per_bin]), + ok = asn1ct:compile("RanapASN1",[per_bin]), + ok. + + +benchmarks() -> + {5000,[encode,decode,ranap_enc,ranap_dec]}. + +ranap_dec(N) -> + V = ranap_v2(), + {ok,Bl} = asn1rt:encode('RanapASN1','RANAP-PDU',V), + B = list_to_binary(Bl), + ranap_n_dec(N,B), + ok. + +ranap_n_dec(0,_) -> + ok; +ranap_n_dec(N,B) -> + {ok,V}=asn1rt:decode('RanapASN1','RANAP-PDU',B), + ranap_n_dec(N-1,B). + +ranap_enc(N) -> + V = ranap_v2(), + ranap_n_enc(N,V), + ok. + +ranap_n_enc(0,V) -> + ok; +ranap_n_enc(N,V) -> + {ok,B} = asn1rt:encode('RanapASN1','RANAP-PDU',V), + ranap_n_enc(N-1,V). + + +decode(N) -> + V = v1(), + {ok,Bl} = asn1rt:encode('H323-MESSAGES','H323-UserInformation',V), + B = list_to_binary(Bl), + n_decode(N,B), + ok. + +n_decode(0,_) -> + ok; +n_decode(N,B) -> + {ok,V}=asn1rt:decode('H323-MESSAGES','H323-UserInformation',B), + n_decode(N-1,B). + + +v1() -> + V = + {'H323-UserInformation', + {'H323-UU-PDU', + {callProceeding, + {'CallProceeding-UUIE', + {0, + 7, + 180}, + {'EndpointType', + {'NonStandardParameter', + {object, + {0, + 8, + 202}}, + "O"}, + {'VendorIdentifier', + {'H221NonStandard', + 55, + 55, + 14277}, + "OC", + "OC"}, + {'GatekeeperInfo', + {'NonStandardParameter', + {object, + {0, + 9, + 232}}, + "O"}}, + {'GatewayInfo', + [{h320, + {'H320Caps', + {'NonStandardParameter', + {object, + {0, + 10, + 268}}, + "O"}, + [{'DataRate', + {'NonStandardParameter', + {object, + {0, + 11, + 284}}, + "O"}, + 1244176737, + 75}], + [{'SupportedPrefix', + {'NonStandardParameter', + {object, + {0, + 12, + 304}}, + "O"}, + {'h323-ID', + "BM"}}]}}], + {'NonStandardParameter', + {object, + {0, + 13, + 324}}, + "O"}}, + {'McuInfo', + {'NonStandardParameter', + {object, + {1, + 13, + 346, + 347}}, + "OC"}}, + {'TerminalInfo', + {'NonStandardParameter', + {object, + {1, + 14, + 363, + 363}}, + "OC"}}, + true, + true}, + {ipxAddress, + {'TransportAddress_ipxAddress', + "OCTET ", + "OCTE", + "OC"}}, + {'CallIdentifier', + "OCTET STRINGOCTE"}, + {noSecurity, + 'NULL'}, + [ +% {'ClearToken', +% 1703375497, +% "BM", +% {'DHset', +% [1], +% [1], +% [1]}, +% "OCTET STRI", +% -21825559, +% {'TypedCertificate', +% {1, +% 17, +% 424, +% 424}, +% "OC"}, +% "BMP", +% {'NonStandardParameter', +% {1, +% 17, +% 435, +% 436}, +% "OC"}}, + {'ClearToken', + 1929575502, + "BMP", + {'DHset', + [1], + [1], + [1]}, + "OCTET STRI", + -9591354, + {'TypedCertificate', + {1, + 18, + 471, + 471}, + "OC"}, + "BMP", + {'NonStandardParameter', + {1, + 19, + 482, + 483}, + "OC"}}], + [ +% {cryptoEPCert, +% {'CryptoH323Token_cryptoEPCert', +% {'ClearToken', +% 2227304001, +% "BMP", +% {'DHset', +% [1], +% [1], +% [1]}, +% "OCTET STRI", +% 9574387, +% {'TypedCertificate', +% {1, +% 21, +% 541, +% 542}, +% "OCT"}, +% "BMP", +% {'NonStandardParameter', +% {1, +% 22, +% 552, +% 553}, +% "OCT"}}, +% {1, +% 22, +% 559, +% 560}, +% {'Params', +% 18993485, +% "OCTET ST"}, +% [1, +% 0, +% 1]}}, + {cryptoEPCert, + {'CryptoH323Token_cryptoEPCert', + {'ClearToken', + 2581405450, + "BMPS", + {'DHset', + [1, + 0, + 1], + [1, + 0, + 1], + [1, + 0, + 1]}, + "OCTET STRIN", + 32050976, + {'TypedCertificate', + {1, + 25, + 625, + 625}, + "OCT"}, + "BMPS", + {'NonStandardParameter', + {1, + 25, + 636, + 637}, + "OCT"}}, + {1, + 25, + 644, + 645}, + {'Params', + 40708757, + "OCTET ST"}, + [1, + 0, + 1]}}], + ["OCT", + "OCT", + "OCT"]}}, + {'NonStandardParameter', + {h221NonStandard, + {'H221NonStandard', + 173, + 173, + 44666}}, + "OCTE"}, + ["OCTE", + "OCTE", + "OCTE", + "OCTE"], + true, + ["OCTE", + "OCTE", + "OCTE", + "OCTE"], + [ +% {'NonStandardParameter', +% {h221NonStandard, +% {'H221NonStandard', +% 182, +% 183, +% 46981}}, +% "OCTE"}, +% {'NonStandardParameter', +% {h221NonStandard, +% {'H221NonStandard', +% 186, +% 187, +% 48016}}, +% "OCTE"}, +% {'NonStandardParameter', +% {h221NonStandard, +% {'H221NonStandard', +% 190, +% 191, +% 49026}}, +% "OCTE"}, + {'NonStandardParameter', + {h221NonStandard, + {'H221NonStandard', + 195, + 196, + 50303}}, + "OCTE"}]}, + {'H323-UserInformation_user-data', + 197, + "OCTE"}}. + +encode(N) -> + V = v1(), + n_encode(N,V), + ok. + +n_encode(0,V) -> + ok; +n_encode(N,V) -> + {ok,B} = asn1rt:encode('H323-MESSAGES','H323-UserInformation',V), + n_encode(N-1,V). + + +ranap_v1() -> + {successfulOutcome, + {'SuccessfulOutcome', + 9, + ignore, + {'ResetAcknowledge', + [{'ProtocolIE-Field',3,ignore,'ps-domain'}, + {'ProtocolIE-Field', + 86, + ignore, + {'GlobalRNC-ID',"!Ce",2}}], + asn1_NOVALUE}}}. + +ranap_v2() -> + {initiatingMessage,{'InitiatingMessage', + 6, + {'Criticality',reject}, + {'SecurityModeCommand', + [{'ProtocolIE-Field', + 12, + {'Criticality',reject}, + {'IntegrityProtectionInformation', + ['standard-UMTS-integrity-algorithm-UIA1'], + [0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0], + asn1_NOVALUE}}, + {'ProtocolIE-Field', + 11, + {'Criticality',ignore}, + {'EncryptionInformation', + ['no-encryption', + 'standard-UMTS-encryption-algorith-UEA1'], + [0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1], + asn1_NOVALUE}}, + {'ProtocolIE-Field', + 75, + {'Criticality',reject}, + new}], + asn1_NOVALUE}}}. + + + + + + + |