| /////////////////////////////////////////////////////////////////////////////// |
| // |
| // Copyright (c) 2000-2019 Ericsson Telecom AB |
| // |
| // All rights reserved. This program and the accompanying materials |
| // are made available under the terms of the Eclipse Public License v2.0 |
| // which accompanies this distribution, and is available at |
| // https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html |
| /////////////////////////////////////////////////////////////////////////////// |
| // |
| // File: SCTP_Types.ttcn |
| // Description: Type definition for SCTP |
| // Rev: R1B |
| // Prodnr: CNL 113 830 |
| // Reference: RFC4690 |
| // |
| module SCTP_Types{ |
| |
| external function f_SCTP_enc(in SCTP_Packet pl_pdu) return octetstring |
| with { |
| extension "prototype(convert)" |
| } |
| external function f_SCTP_dec(in octetstring pl_stream, out SCTP_Packet pl_pdu) return integer |
| with { |
| extension "prototype(backtrack)" |
| } |
| |
| |
| type integer SCTP_INT1 with {variant "FIELDLENGTH(8), COMP(nosign)"} |
| type integer SCTP_INT2 with {variant "FIELDLENGTH(16), COMP(nosign), BYTEORDER(last)"} |
| type integer SCTP_INT4 with {variant "FIELDLENGTH(32), COMP(nosign), BYTEORDER(last)"} |
| type bitstring BIT_FLAG length(1) |
| |
| |
| |
| type record SCTP_Packet{ |
| SCTP_Common_header common_header, |
| SCTP_Chunk_List chunks |
| } with { |
| variant "" |
| } |
| |
| type record of SCTP_Chunk SCTP_Chunk_List; |
| |
| type union SCTP_Chunk{ |
| SCTP_Data_chunk data, |
| SCTP_Init_chunk init, |
| SCTP_InitAck_chunk init_ack, |
| SCTP_SAck_chunk sack, |
| SCTP_Heartbeat_chunk heartbeat, |
| SCTP_Heartbeat_ack_chunk heartbeat_ack, |
| SCTP_abort_chunk abort, |
| SCTP_Shutdown_chunk shutdown, |
| SCTP_Shutdown_ack_chunk shutdown_ack, |
| SCTP_error_chunk error_, |
| SCTP_CookieEcho_chunk cookie_echo, |
| SCTP_Cookie_ack_chunk cookie_ack, |
| SCTP_ShutdownComplete_chunk shutdown_complete, |
| SCTP_Auth_chunk auth, |
| SCTP_IData_chunk idata, |
| SCTP_ASCONF_ack_chunk asconf_ack, |
| SCTP_Re_Config_chunk re_config, |
| SCTP_Padding_chunk padding, |
| SCTP_Forward_TSN_chunk forward_tsn, |
| SCTP_ASCONF_chunk asconf, |
| SCTP_IForward_TSN_chunk iforward_tsn, |
| SCTP_Unknown_chunk unknown_chunk |
| } with { |
| variant "PADDING(dword32)" |
| variant "TAG( data, chunk_type = 0; |
| init, chunk_type = 1; |
| init_ack, chunk_type = 2; |
| sack, chunk_type = 3; |
| heartbeat, chunk_type = 4; |
| heartbeat_ack, chunk_type = 5; |
| abort, chunk_type = 6; |
| shutdown, chunk_type = 7; |
| shutdown_ack, chunk_type = 8; |
| error_, chunk_type = 9; |
| cookie_echo, chunk_type = 10; |
| cookie_ack, chunk_type = 11; |
| shutdown_complete, chunk_type = 14; |
| auth, chunk_type = 15; |
| idata, chunk_type = 64; |
| asconf_ack, chunk_type = 128; |
| re_config, chunk_type = 130; |
| padding, chunk_type = 132; |
| forward_tsn, chunk_type = 192; |
| asconf, chunk_type = 193; |
| iforward_tsn, chunk_type = 194; |
| unknown_chunk, OTHERWISE; |
| )" |
| } |
| |
| |
| type record SCTP_Data_chunk{ |
| SCTP_INT1 chunk_type (0), |
| BIT_FLAG E_flag, |
| BIT_FLAG B_flag, |
| BIT_FLAG U_flag, |
| BIT_FLAG I_flag, |
| bitstring res_flags length(4), |
| SCTP_INT2 chunk_length, |
| SCTP_INT4 tsn, |
| SCTP_INT2 stream_id, |
| SCTP_INT2 ssn, |
| SCTP_INT4 ppid, |
| octetstring user_data |
| |
| } with { |
| variant "PRESENCE(chunk_type=0)" |
| variant (chunk_length) "LENGTHTO(chunk_type,E_flag,B_flag,U_flag,I_flag,res_flags,chunk_length,tsn,stream_id,ssn,ppid,user_data)" |
| } |
| |
| |
| type record SCTP_Init_chunk{ |
| SCTP_INT1 chunk_type (1), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| SCTP_INT4 init_tag, |
| SCTP_INT4 a_rwnd, |
| SCTP_INT2 os, |
| SCTP_INT2 mis, |
| SCTP_INT4 init_tsn, |
| SCTP_Param_list params optional |
| } with { |
| variant "PRESENCE(chunk_type=1)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,init_tag,a_rwnd,os,mis,init_tsn,params)" |
| } |
| |
| type record SCTP_InitAck_chunk{ |
| SCTP_INT1 chunk_type (2), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| SCTP_INT4 init_tag, |
| SCTP_INT4 a_rwnd, |
| SCTP_INT2 os, |
| SCTP_INT2 mis, |
| SCTP_INT4 init_tsn, |
| SCTP_Param_list params optional |
| } with { |
| variant "PRESENCE(chunk_type=2)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,init_tag,a_rwnd,os,mis,init_tsn,params)" |
| } |
| |
| type record SCTP_SAck_chunk{ |
| SCTP_INT1 chunk_type (3), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| SCTP_INT4 cum_tsn_ack, |
| SCTP_INT4 a_rwnd, |
| SCTP_INT2 no_of_gap_blocks, |
| SCTP_INT2 no_of_dup_tsn, |
| record of SCTP_Gap_block gap_blocks optional, |
| record of SCTP_INT4 dup_tsns optional |
| } with { |
| variant "PRESENCE(chunk_type=3)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,cum_tsn_ack,a_rwnd,no_of_gap_blocks,no_of_dup_tsn,gap_blocks,dup_tsns)" |
| variant (no_of_gap_blocks) "LENGTHTO(gap_blocks), UNIT(elements)" |
| variant (no_of_dup_tsn) "LENGTHTO(dup_tsns), UNIT(elements)" |
| } |
| |
| type record SCTP_Gap_block{ |
| SCTP_INT2 start_tsn, |
| SCTP_INT2 end_tsn |
| } |
| |
| type record SCTP_Heartbeat_chunk{ |
| SCTP_INT1 chunk_type (4), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| SCTP_Param_list params optional |
| } with { |
| variant "PRESENCE(chunk_type=4)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,params)" |
| } |
| |
| type record SCTP_Heartbeat_ack_chunk{ |
| SCTP_INT1 chunk_type (5), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| SCTP_Param_list params optional |
| } with { |
| variant "PRESENCE(chunk_type=5)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,params)" |
| } |
| |
| |
| type record SCTP_abort_chunk{ |
| SCTP_INT1 chunk_type (6), |
| BIT_FLAG T_flag, |
| bitstring flags length(7), |
| SCTP_INT2 chunk_length, |
| SCTP_Error_cause_list params optional |
| } with { |
| variant "PRESENCE(chunk_type=6)" |
| variant (chunk_length) "LENGTHTO(chunk_type,T_flag,flags,chunk_length,params)" |
| } |
| |
| type record SCTP_Shutdown_chunk{ |
| SCTP_INT1 chunk_type (7), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| SCTP_INT4 cum_tsn_ack |
| } with { |
| variant "PRESENCE(chunk_type=7)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,cum_tsn_ack)" |
| } |
| |
| type record SCTP_Shutdown_ack_chunk{ |
| SCTP_INT1 chunk_type (8), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length |
| } with { |
| variant "PRESENCE(chunk_type=8)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length)" |
| } |
| |
| |
| type record SCTP_error_chunk{ |
| SCTP_INT1 chunk_type (9), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| SCTP_Error_cause_list params optional |
| } with { |
| variant "PRESENCE(chunk_type=9)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,params)" |
| } |
| |
| |
| type record SCTP_CookieEcho_chunk{ |
| SCTP_INT1 chunk_type (10), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| octetstring cookie |
| } with { |
| variant "PRESENCE(chunk_type=10)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,cookie)" |
| } |
| |
| |
| type record SCTP_Cookie_ack_chunk{ |
| SCTP_INT1 chunk_type (11), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length |
| } with { |
| variant "PRESENCE(chunk_type=11)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length)" |
| } |
| |
| |
| type record SCTP_ShutdownComplete_chunk{ |
| SCTP_INT1 chunk_type (14), |
| BIT_FLAG T_flag, |
| bitstring flags length(7), |
| SCTP_INT2 chunk_length |
| } with { |
| variant "PRESENCE(chunk_type=14)" |
| variant (chunk_length) "LENGTHTO(chunk_type,T_flag,flags,chunk_length)" |
| } |
| |
| type record SCTP_Auth_chunk{ |
| SCTP_INT1 chunk_type (15), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| SCTP_INT2 key_id, |
| SCTP_INT2 hmac_id, |
| octetstring hmac |
| } with { |
| variant "PRESENCE(chunk_type=15)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,key_id,hmac_id,hmac)" |
| } |
| |
| type record SCTP_IData_chunk{ |
| SCTP_INT1 chunk_type (64), |
| BIT_FLAG E_flag, |
| BIT_FLAG B_flag, |
| BIT_FLAG U_flag, |
| BIT_FLAG I_flag, |
| bitstring res_flags length(4), |
| SCTP_INT2 chunk_length, |
| SCTP_INT4 tsn, |
| SCTP_INT2 stream_id, |
| SCTP_INT2 reserved, |
| SCTP_INT4 mid, |
| SCTP_INT4 ppid_fsn, |
| octetstring user_data |
| |
| } with { |
| variant "PRESENCE(chunk_type=64)" |
| variant (chunk_length) "LENGTHTO(chunk_type,E_flag,B_flag,U_flag,I_flag,res_flags,chunk_length,tsn,stream_id,reserved,mid,ppid_fsn,user_data)" |
| } |
| |
| type record SCTP_ASCONF_ack_chunk{ |
| SCTP_INT1 chunk_type (128), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| SCTP_INT4 seq_no, |
| SCTP_Param_list params optional |
| } with { |
| variant "PRESENCE(chunk_type=128)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,seq_no,params)" |
| } |
| |
| |
| type record SCTP_Re_Config_chunk{ |
| SCTP_INT1 chunk_type (130), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| SCTP_Param_list params optional |
| } with { |
| variant "PRESENCE(chunk_type=130)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,params)" |
| } |
| |
| type record SCTP_Padding_chunk{ |
| SCTP_INT1 chunk_type (132), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| octetstring padding |
| } with { |
| variant "PRESENCE(chunk_type=132)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,padding)" |
| } |
| |
| type record SCTP_Forward_TSN_chunk{ |
| SCTP_INT1 chunk_type (192), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| SCTP_INT4 new_tsn, |
| record of SCTP_Forward_TSN_streamdata stream_ssn_list |
| } with { |
| variant "PRESENCE(chunk_type=192)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,new_tsn,stream_ssn_list)" |
| } |
| |
| type record SCTP_Forward_TSN_streamdata{ |
| SCTP_INT2 stream_id, |
| SCTP_INT2 ssn |
| } |
| |
| type record SCTP_ASCONF_chunk{ |
| SCTP_INT1 chunk_type (193), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| SCTP_INT4 seq_no, |
| SCTP_Param_list params optional |
| } with { |
| variant "PRESENCE(chunk_type=193)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,seq_no,params)" |
| } |
| |
| type record SCTP_IForward_TSN_chunk{ |
| SCTP_INT1 chunk_type (194), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| SCTP_INT4 new_tsn, |
| record of SCTP_IForward_TSN_streamdata stream_ssn_list |
| } with { |
| variant "PRESENCE(chunk_type=194)" |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,new_tsn,stream_ssn_list)" |
| } |
| |
| type record SCTP_IForward_TSN_streamdata{ |
| SCTP_INT2 stream_id, |
| SCTP_INT2 reserved, |
| SCTP_INT4 mid |
| } |
| |
| type record SCTP_Unknown_chunk{ |
| SCTP_INT1 chunk_type (0..255), |
| bitstring flags length(8), |
| SCTP_INT2 chunk_length, |
| octetstring chunk_value |
| } with { |
| variant (chunk_length) "LENGTHTO(chunk_type,flags,chunk_length,chunk_value)" |
| } |
| |
| |
| type record of SCTP_Error_cause SCTP_Error_cause_list; |
| |
| type union SCTP_Error_cause { |
| SCTP_Invalid_StreamId_cause invalid_streamId, |
| SCTP_Missing_mand_param_cause missing_params, |
| SCTP_Stale_cookie_cause stale_cookie, |
| SCTP_Out_of_res_cause out_of_resources, |
| SCTP_Unresolvable_addr_cause unresolvable_addr, |
| SCTP_Unrecognized_chunk_cause unrecognized_chunk, |
| SCTP_Invalid_mand_param_cause invalid_mandatory_param, |
| SCTP_Unrecognized_params_cause unrecognized_params, |
| SCTP_No_User_data_cause no_user_data, |
| SCTP_Cookie_while_shutdown_cause cookie_while_shutdown, |
| SCTP_Restart_with_new_addr_cause restart_with_new_addr, |
| SCTP_User_abort_cause user_abort, |
| SCTP_Protocol_violation_cause protocol_violation, |
| SCTP_Req_del_last_ip_cause req_del_last_ip, |
| SCTP_Refused_res_shortage_cause refused_res_shortage, |
| SCTP_Req_del_source_ip_cause req_del_source_ip, |
| SCTP_Illegal_ASCONF_cause illegal_asconf, |
| SCTP_No_atuhorization_cause no_authorization, |
| SCTP_UnsupportedHMAC_cause unsupported_hmac, |
| SCTP_Unknown_error_cause unknown_cause |
| } with { |
| variant "PADDING(dword32)" |
| } |
| |
| type record SCTP_Invalid_StreamId_cause{ |
| SCTP_INT2 cause_code(1), |
| SCTP_INT2 cause_length, |
| SCTP_INT2 streamId, |
| SCTP_INT2 reserved |
| } with { |
| variant "PRESENCE(cause_code=1)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,streamId,reserved)" |
| } |
| |
| type record SCTP_Missing_mand_param_cause{ |
| SCTP_INT2 cause_code(2), |
| SCTP_INT2 cause_length, |
| SCTP_INT4 num_of_params, |
| record of SCTP_INT2 missing_type |
| } with { |
| variant "PRESENCE(cause_code=2)" |
| variant (num_of_params) "LENGTHTO(missing_type), UNIT(elements)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,num_of_params,missing_type)" |
| } |
| |
| type record SCTP_Stale_cookie_cause{ |
| SCTP_INT2 cause_code(3), |
| SCTP_INT2 cause_length, |
| SCTP_INT4 measure |
| } with { |
| variant "PRESENCE(cause_code=3)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,measure)" |
| } |
| |
| type record SCTP_Out_of_res_cause{ |
| SCTP_INT2 cause_code(4), |
| SCTP_INT2 cause_length |
| } with { |
| variant "PRESENCE(cause_code=4)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length)" |
| } |
| |
| type record SCTP_Unresolvable_addr_cause{ |
| SCTP_INT2 cause_code(5), |
| SCTP_INT2 cause_length, |
| octetstring addr |
| } with { |
| variant "PRESENCE(cause_code=5)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,addr)" |
| } |
| |
| type record SCTP_Unrecognized_chunk_cause{ |
| SCTP_INT2 cause_code(6), |
| SCTP_INT2 cause_length, |
| octetstring chunk |
| } with { |
| variant "PRESENCE(cause_code=6)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,chunk)" |
| } |
| |
| type record SCTP_Invalid_mand_param_cause{ |
| SCTP_INT2 cause_code(7), |
| SCTP_INT2 cause_length |
| } with { |
| variant "PRESENCE(cause_code=7)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length)" |
| } |
| |
| type record SCTP_Unrecognized_params_cause{ |
| SCTP_INT2 cause_code(8), |
| SCTP_INT2 cause_length, |
| octetstring params |
| } with { |
| variant "PRESENCE(cause_code=8)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,params)" |
| } |
| |
| type record SCTP_No_User_data_cause{ |
| SCTP_INT2 cause_code(9), |
| SCTP_INT2 cause_length, |
| SCTP_INT4 tsn |
| } with { |
| variant "PRESENCE(cause_code=9)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,tsn)" |
| } |
| |
| type record SCTP_Cookie_while_shutdown_cause{ |
| SCTP_INT2 cause_code(10), |
| SCTP_INT2 cause_length |
| } with { |
| variant "PRESENCE(cause_code=10)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length)" |
| } |
| |
| type record SCTP_Restart_with_new_addr_cause{ |
| SCTP_INT2 cause_code(11), |
| SCTP_INT2 cause_length, |
| octetstring new_addr |
| } with { |
| variant "PRESENCE(cause_code=11)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,new_addr)" |
| } |
| |
| type record SCTP_User_abort_cause{ |
| SCTP_INT2 cause_code(12), |
| SCTP_INT2 cause_length, |
| octetstring reason |
| } with { |
| variant "PRESENCE(cause_code=12)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,reason)" |
| } |
| |
| type record SCTP_Protocol_violation_cause{ |
| SCTP_INT2 cause_code(13), |
| SCTP_INT2 cause_length, |
| octetstring reason |
| } with { |
| variant "PRESENCE(cause_code=13)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,reason)" |
| } |
| |
| type record SCTP_Req_del_last_ip_cause{ |
| SCTP_INT2 cause_code(160), |
| SCTP_INT2 cause_length, |
| octetstring tlv |
| } with { |
| variant "PRESENCE(cause_code=160)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,tlv)" |
| } |
| |
| type record SCTP_Refused_res_shortage_cause{ |
| SCTP_INT2 cause_code(161), |
| SCTP_INT2 cause_length, |
| octetstring tlv |
| } with { |
| variant "PRESENCE(cause_code=161)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,tlv)" |
| } |
| |
| type record SCTP_Req_del_source_ip_cause{ |
| SCTP_INT2 cause_code(162), |
| SCTP_INT2 cause_length, |
| octetstring tlv |
| } with { |
| variant "PRESENCE(cause_code=162)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,tlv)" |
| } |
| |
| type record SCTP_Illegal_ASCONF_cause{ |
| SCTP_INT2 cause_code(163), |
| SCTP_INT2 cause_length |
| } with { |
| variant "PRESENCE(cause_code=163)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length)" |
| } |
| |
| type record SCTP_No_atuhorization_cause{ |
| SCTP_INT2 cause_code(164), |
| SCTP_INT2 cause_length, |
| octetstring tlv |
| } with { |
| variant "PRESENCE(cause_code=164)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,tlv)" |
| } |
| |
| type record SCTP_UnsupportedHMAC_cause{ |
| SCTP_INT2 cause_code(261), |
| SCTP_INT2 cause_length, |
| SCTP_INT2 hmac |
| } with { |
| variant "PRESENCE(cause_code=261)" |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,hmac)" |
| } |
| |
| type record SCTP_Unknown_error_cause{ |
| SCTP_INT2 cause_code, |
| SCTP_INT2 cause_length, |
| octetstring cause_value |
| } with { |
| variant (cause_length) "LENGTHTO(cause_code,cause_length,cause_value)" |
| } |
| |
| |
| type record of SCTP_parameters SCTP_Param_list; |
| |
| type union SCTP_parameters{ |
| SCTP_Hearbeat_info_parameter heartbeat_info, |
| SCTP_IPv4_parameter ipv4_addr, |
| SCTP_IPv6_parameter ipv6_addr, |
| SCTP_StateCookie_parameter state_cookie, |
| SCTP_unrecognized_params_parameter unrecognized_params, |
| SCTP_Cookie_pres_parameter cookie_preservative, |
| SCTP_HostNameAddr_parameter hostname, |
| SCTP_Supported_addr_types_parameter supported_addr_types, |
| SCTP_Out_SSN_Reset_req_parameter out_ssn_reset_req, |
| SCTP_In_SSN_Reset_req_parameter in_ssn_reset_req, |
| SCTP_SSN_TSN_Reset_req_parameter ssn_tsn_reset_req, |
| SCTP_Reconf_resp_parameter reconf_resp, |
| SCTP_Add_out_stream_req_parameter add_out_stream, |
| SCTP_Add_in_stream_req_parameter add_in_stream, |
| SCTP_Random_parameter random, |
| SCTP_chunk_list_parameter chunk_list, |
| SCTP_Req_HMAC_parameter req_HMAC, |
| SCTP_Padding_parameter padding, |
| SCTP_Supported_extensions_parameter supported_extensions, |
| SCTP_Forward_TSN_Supported_parameter forward_tsn_supported, |
| SCTP_Add_IP_addr_parameter add_address, |
| SCTP_Del_IP_addr_parameter del_address, |
| SCTP_Error_cause_parameter error_cause, |
| SCTP_Set_Pri_IP_addr_parameter set_primary_addr, |
| SCTP_Success_Ind_parameter success_ind, |
| SCTP_Adaptation_layer_Ind_parameter adaptation_layer_ind, |
| SCTP_Unknown_parameter unknown_param |
| } with { |
| variant "PADDING(dword32)" |
| } |
| |
| type record SCTP_Hearbeat_info_parameter{ |
| SCTP_INT2 param_type(1), |
| SCTP_INT2 param_length, |
| octetstring info |
| } with { |
| variant "PRESENCE(param_type=1)" |
| variant (param_length) "LENGTHTO(param_type,param_length,info)" |
| } |
| |
| type record SCTP_IPv4_parameter{ |
| SCTP_INT2 param_type(5), |
| SCTP_INT2 param_length, |
| octetstring ipv4_addr |
| } with { |
| variant "PRESENCE(param_type=5)" |
| variant (param_length) "LENGTHTO(param_type,param_length,ipv4_addr)" |
| } |
| |
| type record SCTP_IPv6_parameter{ |
| SCTP_INT2 param_type(6), |
| SCTP_INT2 param_length, |
| octetstring ipv6_addr |
| } with { |
| variant "PRESENCE(param_type=6)" |
| variant (param_length) "LENGTHTO(param_type,param_length,ipv6_addr)" |
| } |
| |
| type record SCTP_StateCookie_parameter{ |
| SCTP_INT2 param_type(7), |
| SCTP_INT2 param_length, |
| octetstring state_cookie |
| } with { |
| variant "PRESENCE(param_type=7)" |
| variant (param_length) "LENGTHTO(param_type,param_length,state_cookie)" |
| } |
| |
| type record SCTP_unrecognized_params_parameter{ |
| SCTP_INT2 param_type(8), |
| SCTP_INT2 param_length, |
| octetstring unrecognized_params |
| } with { |
| variant "PRESENCE(param_type=8)" |
| variant (param_length) "LENGTHTO(param_type,param_length,unrecognized_params)" |
| } |
| |
| type record SCTP_Cookie_pres_parameter{ |
| SCTP_INT2 param_type(9), |
| SCTP_INT2 param_length, |
| SCTP_INT2 suggested_incr |
| } with { |
| variant "PRESENCE(param_type=9)" |
| variant (param_length) "LENGTHTO(param_type,param_length,suggested_incr)" |
| } |
| |
| type record SCTP_HostNameAddr_parameter{ |
| SCTP_INT2 param_type(11), |
| SCTP_INT2 param_length, |
| octetstring host_name |
| } with { |
| variant "PRESENCE(param_type=11)" |
| variant (param_length) "LENGTHTO(param_type,param_length,host_name)" |
| } |
| |
| type record SCTP_Supported_addr_types_parameter{ |
| SCTP_INT2 param_type(12), |
| SCTP_INT2 param_length, |
| record of SCTP_INT2 supported_addr_types |
| } with { |
| variant "PRESENCE(param_type=12)" |
| variant (param_length) "LENGTHTO(param_type,param_length,supported_addr_types)" |
| } |
| |
| type record SCTP_Out_SSN_Reset_req_parameter{ |
| SCTP_INT2 param_type(13), |
| SCTP_INT2 param_length, |
| SCTP_INT4 reconf_req_seq, |
| SCTP_INT4 reconf_resp_seq, |
| SCTP_INT4 last_assigned_tsn, |
| record of SCTP_INT2 stream_numbers optional |
| } with { |
| variant "PRESENCE(param_type=13)" |
| variant (param_length) "LENGTHTO(param_type,param_length,reconf_req_seq,reconf_resp_seq,last_assigned_tsn,stream_numbers)" |
| } |
| |
| type record SCTP_In_SSN_Reset_req_parameter{ |
| SCTP_INT2 param_type(14), |
| SCTP_INT2 param_length, |
| SCTP_INT4 reconf_req_seq, |
| record of SCTP_INT2 stream_numbers optional |
| } with { |
| variant "PRESENCE(param_type=14)" |
| variant (param_length) "LENGTHTO(param_type,param_length,reconf_req_seq,stream_numbers)" |
| } |
| |
| type record SCTP_SSN_TSN_Reset_req_parameter{ |
| SCTP_INT2 param_type(15), |
| SCTP_INT2 param_length, |
| SCTP_INT4 reconf_req_seq |
| } with { |
| variant "PRESENCE(param_type=15)" |
| variant (param_length) "LENGTHTO(param_type,param_length,reconf_req_seq)" |
| } |
| |
| type record SCTP_Reconf_resp_parameter{ |
| SCTP_INT2 param_type(16), |
| SCTP_INT2 param_length, |
| SCTP_INT4 reconf_resp_seq, |
| SCTP_INT4 result, |
| SCTP_INT4 sender_next_tsn optional, |
| SCTP_INT4 receiver_next_tsn optional |
| } with { |
| variant "PRESENCE(param_type=16)" |
| variant (param_length) "LENGTHTO(param_type,param_length,reconf_resp_seq,result,sender_next_tsn,receiver_next_tsn)" |
| } |
| |
| type record SCTP_Add_out_stream_req_parameter{ |
| SCTP_INT2 param_type(17), |
| SCTP_INT2 param_length, |
| SCTP_INT4 reconf_req_seq, |
| SCTP_INT2 stream_num, |
| SCTP_INT2 reserved |
| } with { |
| variant "PRESENCE(param_type=17)" |
| variant (param_length) "LENGTHTO(param_type,param_length,reconf_req_seq,stream_num,reserved)" |
| } |
| |
| type record SCTP_Add_in_stream_req_parameter{ |
| SCTP_INT2 param_type(18), |
| SCTP_INT2 param_length, |
| SCTP_INT4 reconf_req_seq, |
| SCTP_INT2 stream_num, |
| SCTP_INT2 reserved |
| } with { |
| variant "PRESENCE(param_type=18)" |
| variant (param_length) "LENGTHTO(param_type,param_length,reconf_req_seq,stream_num,reserved)" |
| } |
| |
| type record SCTP_Random_parameter{ |
| SCTP_INT2 param_type(32770), |
| SCTP_INT2 param_length, |
| octetstring random |
| } with { |
| variant "PRESENCE(param_type=32770)" |
| variant (param_length) "LENGTHTO(param_type,param_length,random)" |
| } |
| |
| type record SCTP_chunk_list_parameter{ |
| SCTP_INT2 param_type(32771), |
| SCTP_INT2 param_length, |
| record of SCTP_INT1 chunk_list |
| } with { |
| variant "PRESENCE(param_type=32771)" |
| variant (param_length) "LENGTHTO(param_type,param_length,chunk_list)" |
| } |
| |
| type record SCTP_Req_HMAC_parameter{ |
| SCTP_INT2 param_type(32772), |
| SCTP_INT2 param_length, |
| record of SCTP_INT2 HMAC_IDs |
| } with { |
| variant "PRESENCE(param_type=32772)" |
| variant (param_length) "LENGTHTO(param_type,param_length,HMAC_IDs)" |
| } |
| |
| type record SCTP_Padding_parameter{ |
| SCTP_INT2 param_type(32773), |
| SCTP_INT2 param_length, |
| octetstring padding |
| } with { |
| variant "PRESENCE(param_type=32773)" |
| variant (param_length) "LENGTHTO(param_type,param_length,padding)" |
| } |
| |
| type record SCTP_Supported_extensions_parameter{ |
| SCTP_INT2 param_type(32776), |
| SCTP_INT2 param_length, |
| record of SCTP_INT1 supported_extensions |
| } with { |
| variant "PRESENCE(param_type=32776)" |
| variant (param_length) "LENGTHTO(param_type,param_length,supported_extensions)" |
| } |
| |
| type record SCTP_Forward_TSN_Supported_parameter{ |
| SCTP_INT2 param_type(49152), |
| SCTP_INT2 param_length |
| } with { |
| variant "PRESENCE(param_type=49152)" |
| variant (param_length) "LENGTHTO(param_type,param_length)" |
| } |
| |
| type record SCTP_Add_IP_addr_parameter{ |
| SCTP_INT2 param_type(49153), |
| SCTP_INT2 param_length, |
| SCTP_INT4 asconf_req_id, |
| SCTP_parameters addr |
| } with { |
| variant "PRESENCE(param_type=49153)" |
| variant (param_length) "LENGTHTO(param_type,param_length,asconf_req_id,addr)" |
| } |
| |
| type record SCTP_Del_IP_addr_parameter{ |
| SCTP_INT2 param_type(49154), |
| SCTP_INT2 param_length, |
| SCTP_INT4 asconf_req_id, |
| SCTP_parameters addr |
| } with { |
| variant "PRESENCE(param_type=49154)" |
| variant (param_length) "LENGTHTO(param_type,param_length,asconf_req_id,addr)" |
| } |
| |
| type record SCTP_Error_cause_parameter{ |
| SCTP_INT2 param_type(49155), |
| SCTP_INT2 param_length, |
| SCTP_INT4 asconf_req_id, |
| SCTP_Error_cause_list causes |
| } with { |
| variant "PRESENCE(param_type=49155)" |
| variant (param_length) "LENGTHTO(param_type,param_length,asconf_req_id,causes)" |
| } |
| |
| type record SCTP_Set_Pri_IP_addr_parameter{ |
| SCTP_INT2 param_type(49156), |
| SCTP_INT2 param_length, |
| SCTP_INT4 asconf_req_id, |
| SCTP_parameters addr |
| } with { |
| variant "PRESENCE(param_type=49156)" |
| variant (param_length) "LENGTHTO(param_type,param_length,asconf_req_id,addr)" |
| } |
| |
| type record SCTP_Success_Ind_parameter{ |
| SCTP_INT2 param_type(49157), |
| SCTP_INT2 param_length, |
| SCTP_INT4 asconf_req_id |
| } with { |
| variant "PRESENCE(param_type=49157)" |
| variant (param_length) "LENGTHTO(param_type,param_length,asconf_req_id)" |
| } |
| |
| type record SCTP_Adaptation_layer_Ind_parameter{ |
| SCTP_INT2 param_type(49157), |
| SCTP_INT2 param_length, |
| SCTP_INT4 code_point |
| } with { |
| variant "PRESENCE(param_type=49157)" |
| variant (param_length) "LENGTHTO(param_type,param_length,code_point)" |
| } |
| |
| |
| type record SCTP_Unknown_parameter{ |
| SCTP_INT2 param_type, |
| SCTP_INT2 param_length, |
| octetstring param_value |
| } with { |
| variant (param_length) "LENGTHTO(param_type,param_length,param_value)" |
| } |
| |
| type record SCTP_Common_header{ |
| SCTP_INT2 source_port (0..65535), |
| SCTP_INT2 destination_port (0..65535), |
| SCTP_INT4 verification_tag, |
| octetstring checksum length(4) |
| } with { |
| variant (verification_tag) "FIELDLENGTH(32)" |
| } |
| |
| } with { encode "RAW" } |