blob: 3b6f072371e199c93355c96d6d1adc24e0cf8896 [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000-2018 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" }