/* packet-dect_nwk.c
 *
 * Dissector for the DECT (Digital Enhanced Cordless Telecommunications)
 * NWK protocol layer as described in ETSI EN 300 175-5 V2.7.1 (2017-11)
 *
 * Copyright 2018 by Harald Welte <laforge@gnumonks.org>
 * Copyright 2022 by Bernhard Dick <bernhard@bdick.de>
 *
 * Wireshark - Network traffic analyzer
 * By Gerald Combs <gerald@wireshark.org>
 * Copyright 1998 Gerald Combs
 *
 * SPDX-License-Identifier: GPL-2.0-or-later
 */

#include "config.h"
#include <epan/packet.h>
#include <epan/packet_info.h>
#include <epan/proto.h>
#include <epan/tfs.h>
#include <epan/tvbuff.h>
#include <epan/value_string.h>
#include <epan/wmem_scopes.h>
#include <ftypes/ftypes.h>

#include "packet-e212.h"

void proto_register_dect_nwk(void);
void proto_reg_handoff_dect_nwk(void);

static int proto_dect_nwk = -1;

static int hf_nwk_ti = -1;
static int hf_nwk_pdisc = -1;
static int hf_nwk_msg_type_lce = -1;
static int hf_nwk_msg_type_cc = -1;
static int hf_dect_nwk_message_type_ciss = -1;
static int hf_dect_nwk_message_type_crss = -1;
static int hf_dect_nwk_message_type_clms = -1;
static int hf_dect_nwk_message_type_coms = -1;
static int hf_nwk_msg_type_mm = -1;

static int ett_dect_nwk_s_ie_element = -1;

static int hf_dect_nwk_s_ie_fl = -1;

static int hf_dect_nwk_s_ie_fl_type = -1;
static int hf_dect_nwk_s_ie_fl_double_octet_type = -1;

static int hf_dect_nwk_s_ie_fl_control_type = -1;

static int hf_dect_nwk_s_ie_fl_repeat_indicator_type = -1;

static int hf_dect_nwk_s_ie_fl_shift_locking = -1;
static int hf_dect_nwk_s_ie_fl_shift_new_codeset = -1;

static int hf_dect_nwk_s_ie_fl_basic_service_call_class = -1;
static int hf_dect_nwk_s_ie_fl_basic_service_type = -1;

static int hf_dect_nwk_s_ie_fl_single_display_display_info = -1;

static int hf_dect_nwk_s_ie_fl_single_keypad_keypad_info = -1;

static int hf_dect_nwk_s_ie_fl_release_reason_code = -1;

static int hf_dect_nwk_s_ie_fl_signal_value = -1;

static int hf_dect_nwk_s_ie_fl_timer_restart_value = -1;

static int hf_dect_nwk_s_ie_fl_test_hook_control_hook_value = -1;

static int hf_dect_nwk_s_ie_type = -1;
static int hf_dect_nwk_s_ie_length = -1;

static int hf_dect_nwk_s_ie_octet_group_extension = -1;

static int hf_dect_nwk_s_ie_auth_type_authentication_algorithm = -1;
static int hf_dect_nwk_s_ie_auth_type_proprietary_algorithm = -1;
static int hf_dect_nwk_s_ie_auth_type_ak_type = -1;
static int hf_dect_nwk_s_ie_auth_type_ak_number = -1;
static int hf_dect_nwk_s_ie_auth_type_inc = -1;
static int hf_dect_nwk_s_ie_auth_type_def = -1;
static int hf_dect_nwk_s_ie_auth_type_txc = -1;
static int hf_dect_nwk_s_ie_auth_type_upc = -1;
static int hf_dect_nwk_s_ie_auth_type_cipher_key_number = -1;
static int hf_dect_nwk_s_ie_auth_type_cipher_key_number_related = -1;
static int hf_dect_nwk_s_ie_auth_type_default_cipher_key_index = -1;
static int hf_dect_nwk_s_ie_auth_type_default_cipher_key_algorithm = -1;

static int hf_dect_nwk_s_ie_calling_party_number_type = -1;
static int hf_dect_nwk_s_ie_calling_party_number_numbering_plan = -1;
static int hf_dect_nwk_s_ie_calling_party_number_presentation = -1;
static int hf_dect_nwk_s_ie_calling_party_number_screening = -1;
static int hf_dect_nwk_s_ie_calling_party_number_address = -1;

static int hf_dect_nwk_s_ie_cipher_info_yn = -1;
static int hf_dect_nwk_s_ie_cipher_info_algorithm = -1;
static int hf_dect_nwk_s_ie_cipher_info_proprietary_algorithm = -1;
static int hf_dect_nwk_s_ie_cipher_info_key_type = -1;
static int hf_dect_nwk_s_ie_cipher_info_key_number = -1;

static int hf_dect_nwk_s_ie_duration_lock_limits = -1;
static int hf_dect_nwk_s_ie_duration_time_limits = -1;
static int hf_dect_nwk_s_ie_duration_time_duration = -1;

static int hf_dect_nwk_s_ie_fixed_identity_type = -1;
static int hf_dect_nwk_s_ie_fixed_identity_value_length = -1;
static int hf_dect_nwk_s_ie_fixed_identity_arc = -1;
static int hf_dect_nwk_s_ie_fixed_identity_ard = -1;
static int hf_dect_nwk_s_ie_fixed_identity_padding = -1;

static int hf_dect_nwk_s_ie_iwu_to_iwu_sr = -1;
static int hf_dect_nwk_s_ie_iwu_to_iwu_protocol_discriminator = -1;
static int hf_dect_nwk_s_ie_iwu_to_iwu_information = -1;
static int hf_dect_nwk_s_ie_iwu_to_iwu_discriminator_type = -1;
static int hf_dect_nwk_s_ie_iwu_to_iwu_user_specific_contents = -1;
static int hf_dect_nwk_s_ie_iwu_to_iwu_emc_discriminator = -1;
static int hf_dect_nwk_s_ie_iwu_to_iwu_proprietary_contents = -1;

static int ett_dect_nwk_s_ie_location_area_li_type = -1;
static int hf_dect_nwk_s_ie_location_area_li_type = -1;
static int hf_dect_nwk_s_ie_location_area_la_level_included = -1;
static int hf_dect_nwk_s_ie_location_area_li_extended_included = -1;
static int hf_dect_nwk_s_ie_location_area_la_level = -1;
static int hf_dect_nwk_s_ie_location_area_eli_type = -1;
static int hf_dect_nwk_s_ie_location_area_lac = -1;
static int hf_dect_nwk_s_ie_location_area_ci = -1;

static int hf_dect_nwk_s_ie_multi_display_information = -1;

static int hf_dect_nwk_s_ie_multi_keypad_information = -1;

static int hf_dect_nwk_s_ie_nwk_assigned_identity_type = -1;
static int hf_dect_nwk_s_ie_nwk_assigned_identity_value_length = -1;
static int hf_dect_nwk_s_ie_nwk_assigned_identity_value = -1;
static int hf_dect_nwk_s_ie_nwk_assigned_identity_padding = -1;

static int hf_dect_nwk_s_ie_portable_identity_type = -1;
static int hf_dect_nwk_s_ie_portable_identity_value_length = -1;
static int hf_dect_nwk_s_ie_portable_identity_put = -1;
static int hf_dect_nwk_s_ie_portable_identity_padding = -1;
static int hf_dect_nwk_s_ie_portable_identity_ipei = -1;
static int hf_dect_nwk_s_ie_portable_identity_tpui_assignment_type = -1;
static int hf_dect_nwk_s_ie_portable_identity_tpui_value = -1;
static int hf_dect_nwk_s_ie_portable_identity_ipui_o_number = -1;
static int hf_dect_nwk_s_ie_portable_identity_ipui_p_poc = -1;
static int hf_dect_nwk_s_ie_portable_identity_ipui_p_acc = -1;
static int hf_dect_nwk_s_ie_portable_identity_ipui_q_bacn = -1;
static int hf_dect_nwk_s_ie_portable_identity_ipui_r_imsi = -1;
static int hf_dect_nwk_s_ie_portable_identity_ipui_s_number = -1;
static int hf_dect_nwk_s_ie_portable_identity_ipui_t_eic = -1;
static int hf_dect_nwk_s_ie_portable_identity_ipui_t_number = -1;
static int hf_dect_nwk_s_ie_portable_identity_ipui_u_cacn = -1;

static int hf_dect_nwk_s_ie_rand_rand_field = -1;

static int hf_dect_nwk_s_ie_res_res_field = -1;

static int hf_dect_nwk_s_ie_rs_rs_field = -1;

static int hf_dect_nwk_s_ie_terminal_capability_tone_capabilities = -1;
static int hf_dect_nwk_s_ie_terminal_capability_display_capabilities = -1;
static int hf_dect_nwk_s_ie_terminal_capability_echo_parameter = -1;
static int hf_dect_nwk_s_ie_terminal_capability_n_rej = -1;
static int hf_dect_nwk_s_ie_terminal_capability_a_vol = -1;
static int hf_dect_nwk_s_ie_terminal_capability_slot_type_capability = -1;
static int hf_dect_nwk_s_ie_terminal_capability_slot_type_half_80 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_slot_type_long_640 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_slot_type_long_672 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_slot_type_full = -1;
static int hf_dect_nwk_s_ie_terminal_capability_slot_type_double = -1;
static int hf_dect_nwk_s_ie_terminal_capability_stored_display_characters = -1;
static int hf_dect_nwk_s_ie_terminal_capability_lines_in_display = -1;
static int hf_dect_nwk_s_ie_terminal_capability_chars_per_line = -1;
static int hf_dect_nwk_s_ie_terminal_capability_scrolling_behaviour = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_cap = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_gap = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_dect_gsm = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_isdn = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_lrms = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_dprs_stream = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_dprs_asymmetric = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_dprs_class_2 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_data_services = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_isdn = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_dect_umts_bearer = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_dect_umts_sms = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_dect_umts_facsimile = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_rap = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_dect_gsm = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_wrs = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_sms = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_dmap = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_cta = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_ethernet = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_token_ring = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_ip = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_ppp = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_v24 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_cf = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_ipq = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_rap_2 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_dprs = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_2bz = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_4bz = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_8bz = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_16bz = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_2a = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_4a = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_8a = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_dect_umts = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_dect_umts_gprs = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_odap = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_f_mms = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_gf = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_fast_hopping = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_no_emission = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_mod64 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_ng_dect_1 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_ng_dect_3 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_headset_management = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_re_keying = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_associated_melody = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_ng_dect_5 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8_mux_e_u = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8_channel_ipf = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8_channel_sipf = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8_packet_data_category = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9_dprs_3 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9_dprs_4 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9_dect_ule = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9_light_data = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_date_time_recovery = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_extended_list_change = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_screening = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_wrs_2 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_wrs_ule = -1;
static int hf_dect_nwk_s_ie_terminal_capability_dsaa2 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_dsc2 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_control_codes = -1;
static int hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1_latin_no1 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1_latin_no9 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1_latin_no5 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1_greek = -1;
static int hf_dect_nwk_s_ie_terminal_capability_blind_slot_6 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_blind_slot_indication = -1;
static int hf_dect_nwk_s_ie_terminal_capability_sp0 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_sp1 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_sp2 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_sp3 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_sp4 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_blind_slot_6a = -1;
static int hf_dect_nwk_s_ie_terminal_capability_sp5 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_sp6 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_sp7 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_sp8 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_sp9 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_sp10 = -1;
static int hf_dect_nwk_s_ie_terminal_capability_sp11 = -1;

static int hf_dect_nwk_s_ie_escape_to_proprietary_discriminator_type = -1;
static int hf_dect_nwk_s_ie_escape_to_proprietary_discriminator = -1;

static int hf_dect_nwk_s_ie_model_identifier_manic = -1;
static int hf_dect_nwk_s_ie_model_identifier_modic = -1;
static int hf_dect_nwk_s_ie_model_identifier_imeisv = -1;

static int hf_dect_nwk_s_ie_codec_list_negotiation_indicator = -1;
static int hf_dect_nwk_s_ie_codec_list_codec_identifier = -1;
static int hf_dect_nwk_s_ie_codec_list_mac_and_dlc_service = -1;
static int hf_dect_nwk_s_ie_codec_list_last_codec = -1;
static int hf_dect_nwk_s_ie_codec_list_c_plane_routing = -1;
static int hf_dect_nwk_s_ie_codec_list_slot_size = -1;

static gint ett_dect_nwk = -1;

static dissector_handle_t dect_nwk_handle;

/*********************************************************************************
 * DECT DEFINITIONS
 *********************************************************************************/

/* Section 7.2 */
enum dect_nwk_proto_disc {
	DECT_NWK_PDISC_LCE		= 0x0,
	DECT_NWK_PDISC_CC		= 0x3,
	DECT_NWK_PDISC_CISS		= 0x4,
	DECT_NWK_PDISC_MM		= 0x5,
	DECT_NWK_PDISC_CLMS		= 0x6,
	DECT_NWK_PDISC_COMS		= 0x7,
};

/* Section 7.4.1 */
enum dect_nwk_cc_msg_type {
	DECT_NWK_CC_ALERTING		= 0x01,
	DECT_NWK_CC_CALL_PROC		= 0x02,
	DECT_NWK_CC_SETUP		= 0x05,
	DECT_NWK_CC_CONNECT		= 0x07,
	DECT_NWK_CC_SETUP_ACK		= 0x0d,
	DECT_NWK_CC_CONNECT_ACK		= 0x0f,
	DECT_NWK_CC_SERVICE_CHANGE	= 0x20,
	DECT_NWK_CC_SERVICE_ACCEPT	= 0x21,
	DECT_NWK_CC_SERVICE_REJECT	= 0x23,
	DECT_NWK_CC_RELEASE		= 0x4d,
	DECT_NWK_CC_RELEASE_COM		= 0x5a,
	DECT_NWK_CC_IWU_INFO		= 0x60,
	DECT_NWK_CC_NOTIFY		= 0x6e,
	DECT_NWK_CC_INFO		= 0x7b,
};

/* Section 7.4.2 */
enum dect_nwk_ss_msg_type {
	DECT_NWK_SS_CISS_RELEASE_COM	= 0x5a,
	DECT_NWK_SS_CISS_FACILITY	= 0x62,
	DECT_NWK_SS_CISS_REGISTER	= 0x64,

	DECT_NWK_SS_CRSS_HOLD		= 0x24,
	DECT_NWK_SS_CRSS_HOLD_ACK	= 0x28,
	DECT_NWK_SS_CRSS_HOLD_REJ	= 0x30,
	DECT_NWK_SS_CRSS_RETRIEVE	= 0x31,
	DECT_NWK_SS_CRSS_RETRIEVE_ACK	= 0x33,
	DECT_NWK_SS_CRSS_RETRIEVE_REJ	= 0x37,
#define DECT_NWK_SS_CRSS_FACILITY	DECT_NWK_SS_CISS_FACILITY
};

/* Section 7.4.3 */
enum dect_nwk_coms_msg_type {
	DECT_NWK_COMS_SETUP		= 0x05,
	DECT_NWK_COMS_CONNECT		= 0x07,
	DECT_NWK_COMS_NOTIFY		= 0x08,
	DECT_NWK_COMS_RELEASE		= 0x4d,
	DECT_NWK_COMS_RELEASE_COM	= 0x5a,
	DECT_NWK_COMS_INFO		= 0x7b,
	DECT_NWK_COMS_ACK		= 0x78,
};

/* Section 7.4.4 */
enum dect_nwk_clms_msg_type {
	DECT_NWK_CLMS_VARIABLE		= 0x01,
};

/* Section 7.4.5 */
enum dect_nwk_mm_msg_type {
	DECT_NWK_MM_AUTH_REQ		= 0x40,
	DECT_NWK_MM_AUTH_REPLY		= 0x41,
	DECT_NWK_MM_KEY_ALLOC		= 0x42,
	DECT_NWK_MM_AUTH_REJ		= 0x43,
	DECT_NWK_MM_ACC_RIGHTS_REQ	= 0x44,
	DECT_NWK_MM_ACC_RIGHTS_ACK	= 0x45,
	DECT_NWK_MM_ACC_RIGHTS_REJ	= 0x47,
	DECT_NWK_MM_ACC_RIGHTS_TERM_REQ	= 0x48,
	DECT_NWK_MM_ACC_RIGHTS_TERM_ACK	= 0x49,
	DECT_NWK_MM_ACC_RIGHTS_TERM_REJ	= 0x4b,
	DECT_NWK_MM_CIPH_REQ		= 0x4c,
	DECT_NWK_MM_CIPH_SUGGEST	= 0x4e,
	DECT_NWK_MM_CIPH_REJ		= 0x4f,
	DECT_NWK_MM_INFO_REQ		= 0x50,
	DECT_NWK_MM_INFO_ACK		= 0x51,
	DECT_NWK_MM_INFO_SUGGEST	= 0x52,
	DECT_NWK_MM_INFO_REJ		= 0x53,
	DECT_NWK_MM_LOCATE_REQ		= 0x54,
	DECT_NWK_MM_LOCATE_ACK		= 0x55,
	DECT_NWK_MM_DETACH		= 0x56,
	DECT_NWK_MM_LOCATE_REJ		= 0x57,
	DECT_NWK_MM_ID_REQ		= 0x58,
	DECT_NWK_MM_ID_REPLY		= 0x59,
	DECT_NWK_MM_IWU			= 0x5b,
	DECT_NWK_MM_TID_ASSIGN		= 0x5c,
	DECT_NWK_MM_TID_ASSIGN_ACK	= 0x5d,
	DECT_NWK_MM_TID_ASSIGN_REJ	= 0x5f,
	DECT_NWK_MM_NOTIFY		= 0x6e,
};

/* Section 7.4.6 */
enum dect_nwk_lce_msg_type {
	DECT_NWK_LCE_PAGE_RESP		= 0x71,
	DECT_NWK_LCE_PAGE_REJ		= 0x72,
};

/* Section 7.5.1 */
enum dect_nwk_s_ie_octet_identifier {
	DECT_NWK_S_IE_OCTET_FIRST = 0,
	DECT_NWK_S_IE_OCTET_A     = 1,
	DECT_NWK_S_IE_OCTET_B     = 2,
	DECT_NWK_S_IE_OCTET_C     = 3,
	DECT_NWK_S_IE_OCTET_D     = 4,
	DECT_NWK_S_IE_OCTET_E     = 5,
	DECT_NWK_S_IE_OCTET_F     = 6,
	DECT_NWK_S_IE_OCTET_G     = 7,
	DECT_NWK_S_IE_OCTET_H     = 8,
	DECT_NWK_S_IE_OCTET_I     = 9,
};

/* Section 7.5.3 */
enum dect_nwk_s_fl_ie_shift_codeset {
	DECT_NWK_S_FL_IE_SHIFT_CODESET_INITIAL        = 0x0,
	DECT_NWK_S_FL_IE_SHIFT_CODESET_NON_STANDARD_0 = 0x4,
	DECT_NWK_S_FL_IE_SHIFT_CODESET_NON_STANDARD_1 = 0x5,
	DECT_NWK_S_FL_IE_SHIFT_CODESET_NON_STANDARD_2 = 0x6,
	DECT_NWK_S_FL_IE_SHIFT_CODESET_NON_STANDARD_3 = 0x7,
};

/* Section 7.6.1 */
enum dect_nwk_s_fl_ie_type {
	DECT_NWK_S_IE_FL_SHIFT                = 0x1,
	DECT_NWK_S_IE_FL_CONTROL              = 0x2,
	DECT_NWK_S_IE_FL_REPEAT_INDICATOR     = 0x5,
	DECT_NWK_S_IE_FL_DOUBLE_OCTET_ELEMENT = 0x6,
};

enum dect_nwk_s_fl_ie_control_type {
	DECT_NWK_S_IE_FL_CONTROL_SENDING_COMPLETE  = 0x1,
	DECT_NWK_S_IE_FL_CONTROL_DELIMITER_REQUEST = 0x2,
	DECT_NWK_S_IE_FL_CONTROL_USE_TPUI          = 0x3
};

enum dect_nwk_s_fl_ie_double_octet_type {
	DECT_NWK_S_IE_FL_DOUBLE_OCTET_BASIC_SERVICE     = 0x0,
	DECT_NWK_S_IE_FL_DOUBLE_OCTET_RELEASE_REASON    = 0x2,
	DECT_NWK_S_IE_FL_DOUBLE_OCTET_SIGNAL            = 0x4,
	DECT_NWK_S_IE_FL_DOUBLE_OCTET_TIMER_RESTART     = 0x5,
	DECT_NWK_S_IE_FL_DOUBLE_OCTET_TEST_HOOK_CONTROL = 0x6,
	DECT_NWK_S_IE_FL_DOUBLE_OCTET_SINGLE_DISPLAY    = 0x8,
	DECT_NWK_S_IE_FL_DOUBLE_OCTET_SINGLE_KEYPAD     = 0x9,
};

/* Section 7.6.3 */
enum dect_nwk_s_ie_fl_repeat_indicator_type {
	DECT_NWK_S_IE_FL_REPEAT_INDICATOR_NON_PRIORITIZED = 0x1,
	DECT_NWK_S_IE_FL_REPEAT_INDICATOR_PRIORITIZED     = 0x2,
};

/* Section 7.6.4 */
enum dect_nwk_s_ie_fl_basic_service_call_class {
	DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_LIA                   = 0x2,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_ULE                   = 0x3,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_MESSAGE               = 0x4,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_DECT_ISDN_IIP         = 0x7,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_NORMAL                = 0x8,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_INTERNAL              = 0x9,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_EMERGENCY             = 0xA,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_SERVICE               = 0xB,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_EXTERNAL_HANDOVER     = 0xC,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_SUPPLEMENTARY_SERVICE = 0xD,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_OA_M                  = 0xE,
};

enum dect_nwk_s_ie_fl_basic_service_type {
	DECT_NWK_S_IE_FL_BASIC_SERVICE_BASIC_SPEECH              = 0x0,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_DECT_GSM_IWP              = 0x4,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_LRMS                      = 0x5,
	/* Specification assigns 0b0110 to DECT UMTS IWP and GSM IWP SMS*/
	DECT_NWK_S_IE_FL_BASIC_SERVICE_DECT_UMTS_IWP_GSM_IWP_SMS = 0x6,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_WIDEBAND_SPEECH           = 0x8,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_SUOTA_CLASS_4_DPRS        = 0x9,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_SUOTA_CLASS_3_DPRS        = 0xA,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_DTAM_WIDEBAND_SPEECH      = 0xB,
	DECT_NWK_S_IE_FL_BASIC_SERVICE_OTHER                     = 0xF,
};

/* Section 7.6.7 */
enum dect_nwk_s_ie_fl_release_reason {
	DECT_NWK_S_IE_FL_RELEASE_REASON_NORMAL                                = 0x00,
	DECT_NWK_S_IE_FL_RELEASE_REASON_UNEXPECTED_MESSAGE                    = 0x01,
	DECT_NWK_S_IE_FL_RELEASE_REASON_UNKNOWN_TRANSACTION_IDENTIFIER        = 0x02,
	DECT_NWK_S_IE_FL_RELEASE_REASON_MANDATORY_INFORMATION_ELEMENT_MISSING = 0x03,
	DECT_NWK_S_IE_FL_RELEASE_REASON_INVALID_INFORMATION_ELEMENT_CONTENTS  = 0x04,
	DECT_NWK_S_IE_FL_RELEASE_REASON_INCOMPATIBLE_SERVICE                  = 0x05,
	DECT_NWK_S_IE_FL_RELEASE_REASON_SERVICE_NOT_IMPLEMENTED               = 0x06,
	DECT_NWK_S_IE_FL_RELEASE_REASON_NEGOTIATION_NOT_SUPPORTED             = 0x07,
	DECT_NWK_S_IE_FL_RELEASE_REASON_INVALID_ENTITY                        = 0x08,
	DECT_NWK_S_IE_FL_RELEASE_REASON_AUTHENTICATION_FAILED                 = 0x09,
	DECT_NWK_S_IE_FL_RELEASE_REASON_UNKNOWN_IDENTITY                      = 0x0A,
	DECT_NWK_S_IE_FL_RELEASE_REASON_NEGOTIATION_FAILED                    = 0x0B,
	DECT_NWK_S_IE_FL_RELEASE_REASON_COLLISION                             = 0x0C,
	DECT_NWK_S_IE_FL_RELEASE_REASON_TIMER_EXPIRY                          = 0x0D,
	DECT_NWK_S_IE_FL_RELEASE_REASON_PARTIAL_RELEASE                       = 0x0E,
	DECT_NWK_S_IE_FL_RELEASE_REASON_UNKNOWN                               = 0x0F,
	DECT_NWK_S_IE_FL_RELEASE_REASON_USER_DETACHED                         = 0x10,
	DECT_NWK_S_IE_FL_RELEASE_REASON_USER_NOT_IN_RANGE                     = 0x11,
	DECT_NWK_S_IE_FL_RELEASE_REASON_USER_UNKNOWN                          = 0x12,
	DECT_NWK_S_IE_FL_RELEASE_REASON_USER_ALREADY_ACTIVE                   = 0x13,
	DECT_NWK_S_IE_FL_RELEASE_REASON_USER_BUSY                             = 0x14,
	DECT_NWK_S_IE_FL_RELEASE_REASON_USER_REJECTION                        = 0x15,
	DECT_NWK_S_IE_FL_RELEASE_REASON_USER_CALL_MODIFY                      = 0x16,
	DECT_NWK_S_IE_FL_RELEASE_REASON_EXTERNAL_HANDOVER_NOT_SUPPORTED       = 0x21,
	DECT_NWK_S_IE_FL_RELEASE_REASON_NETWORK_PARAMETERS_MISSING            = 0x22,
	DECT_NWK_S_IE_FL_RELEASE_REASON_EXTERNAL_HANDOVER_RELEASE             = 0x23,
	DECT_NWK_S_IE_FL_RELEASE_REASON_OVERLOAD                              = 0x31,
	DECT_NWK_S_IE_FL_RELEASE_REASON_INSUFFICIENT_RESOURCES                = 0x32,
	DECT_NWK_S_IE_FL_RELEASE_REASON_INSUFFICIENT_BEARERS_AVAILABLE        = 0x33,
	DECT_NWK_S_IE_FL_RELEASE_REASON_IWU_CONGESTION                        = 0x34,
	DECT_NWK_S_IE_FL_RELEASE_REASON_SECURITY_ATTACK_ASSUMED               = 0x40,
	DECT_NWK_S_IE_FL_RELEASE_REASON_ENCRYPTION_ACTIVATION_FAILED          = 0x41,
	DECT_NWK_S_IE_FL_RELEASE_REASON_RE_KEYING_FAILED                      = 0x42,
	DECT_NWK_S_IE_FL_RELEASE_REASON_NO_CIPHER_KEY_AVAILABLE               = 0x43,
};

/* Section 7.6.8 */
enum dect_nwk_s_ie_fl_signal_value {
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_DIAL_TONE_ON = 0x00,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_RINGBACK_TONE_ON = 0x01,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_INTERCEPT_TONE_ON = 0x02,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_NETWORK_CONGESTION_TONE_ON = 0x03,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_BUSY_TONE_ON               = 0x04,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_CONFIRM_TONE_ON            = 0x05,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_ANSWER_TONE_ON             = 0x06,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_CALL_WAITING_TONE_ON       = 0x07,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_OFF_HOOK_WARNING_TONE_ON   = 0x08,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_NEGATIVE_ACK_TONE          = 0x09,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_TONES_OFF                  = 0x3F,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_0      = 0x40,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_1      = 0x41,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_2      = 0x42,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_3      = 0x43,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_4      = 0x44,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_5      = 0x45,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_6      = 0x46,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_7      = 0x47,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_CONTINUOUS     = 0x48,
	DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_OFF               = 0x4F,
};

/* Section 7.6.9 */
enum dect_nwk_s_ie_fl_timer_restart_value {
	DECT_NWK_S_IE_FL_TIMER_RESTART_VALUE_RESTART_TIMER = 0x00,
	DECT_NWK_S_IE_FL_TIMER_RESTART_VALUE_STOP_TIMER = 0x01,
};

/* Section 7.6.10 */
enum dect_nwk_s_ie_fl_test_hook_control_hook_value {
	DECT_NWK_S_IE_FL_TEST_HOOK_CONTROL_HOOK_VALUE_ON_HOOK  = 0x00,
	DECT_NWK_S_IE_FL_TEST_HOOK_CONTROL_HOOK_VALUE_OFF_HOOK = 0x01,
};

/* Section 7.7.1 */
enum dect_nkw_s_ie_type {
	DECT_NWK_S_IE_INFO_TYPE                  = 0x01,
	DECT_NWK_S_IE_IDENTITY_TYPE              = 0x02,
	DECT_NWK_S_IE_PORTABLE_IDENTITY          = 0x05,
	DECT_NWK_S_IE_FIXED_IDENTITY             = 0x06,
	DECT_NWK_S_IE_LOCATION_AREA              = 0x07,
	DECT_NWK_S_IE_NWK_ASSIGNED_IDENTITY      = 0x09,
	DECT_NWK_S_IE_AUTH_TYPE                  = 0x0A,
	DECT_NWK_S_IE_ALLOCATION_TYPE            = 0x0B,
	DECT_NWK_S_IE_RAND                       = 0x0C,
	DECT_NWK_S_IE_RES                        = 0x0D,
	DECT_NWK_S_IE_RS                         = 0x0E,
	DECT_NWK_S_IE_IWU_ATTRIBUTES             = 0x12,
	DECT_NWK_S_IE_CALL_ATTRIBUES             = 0x13,
	DECT_NWK_S_IE_SERVICE_CHANGE_INFO        = 0x16,
	DECT_NWK_S_IE_CONNECTION_ATTRIBUTES      = 0x17,
	DECT_NWK_S_IE_CIPHER_INFO                = 0x19,
	DECT_NWK_S_IE_CALL_IDENTITY              = 0x1A,
	DECT_NWK_S_IE_CONNECTION_IDENTITY        = 0x1B,
	DECT_NWK_S_IE_FACILITY                   = 0x1C,
	DECT_NWK_S_IE_PROGRESS_INDICATOR         = 0x1E,
	DECT_NWK_S_IE_MMS_GENERIC_HEADER         = 0x20,
	DECT_NWK_S_IE_MMS_OBJECT_HEADER          = 0x21,
	DECT_NWK_S_IE_MMS_EXTENDED_HEADER        = 0x22,
	DECT_NWK_S_IE_TIME_DATE                  = 0x23,
	DECT_NWK_S_IE_MULTI_DISPLAY              = 0x28,
	DECT_NWK_S_IE_MULTI_KEYPAD               = 0x2C,
	DECT_NWK_S_IE_FEATURE_ACTIVATE           = 0x38,
	DECT_NWK_S_IE_FEATURE_INDICATE           = 0x39,
	DECT_NWK_S_IE_NETWORK_PARAMETER          = 0x41,
	DECT_NWK_S_IE_EXT_HO_INDICATOR           = 0x42,
	DECT_NWK_S_IE_ZAP_FIELD                  = 0x52,
	DECT_NWK_S_IE_SERVICE_CLASS              = 0x54,
	DECT_NWK_S_IE_KEY                        = 0x56,
	DECT_NWK_S_IE_REJECT_REASON              = 0x60,
	DECT_NWK_S_IE_SETUP_CAPABILITY           = 0x62,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY        = 0x63,
	DECT_NWK_S_IE_END_TO_END_COMPATIBILITY   = 0x64,
	DECT_NWK_S_IE_RATE_PARAMETERS            = 0x65,
	DECT_NWK_S_IE_TRANSIT_DELAY              = 0x66,
	DECT_NWK_S_IE_WINDOW_SIZE                = 0x67,
	DECT_NWK_S_IE_ULE_MAC_CONFIGURATION_INFO = 0x68,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER       = 0x6C,
	DECT_NWK_S_IE_CALLING_PARTY_NAME         = 0x6D,
	DECT_NWK_S_IE_CALLED_PARTY_NUMBER        = 0x70,
	DECT_NWK_S_IE_CALLED_PARTY_SUBADDR       = 0x71,
	DECT_NWK_S_IE_DURATION                   = 0x72,
	DECT_NWK_S_IE_CALLED_PARTY_NAME          = 0x73,
	DECT_NWK_S_IE_LIST_CHANGE_DETAILS        = 0x74,
	DECT_NWK_S_IE_SEGMENTED_INFO             = 0x75,
	DECT_NWK_S_IE_ALPHANUMERIC               = 0x76,
	DECT_NWK_S_IE_IWU_TO_IWU                 = 0x77,
	DECT_NWK_S_IE_MODEL_IDENTIFIER           = 0x78,
	DECT_NWK_S_IE_IWU_PACKET                 = 0x7A,
	DECT_NWK_S_IE_ESCAPE_TO_PROPRIETARY      = 0x7B,
	DECT_NWK_S_IE_CODEC_LIST                 = 0x7C,
	DECT_NWK_S_IE_EVENTS_NOTIFICATION        = 0x7D,
	DECT_NWK_S_IE_CALL_INFORMATION           = 0x7E,
	DECT_NWK_S_IE_ESCAPE_FOR_EXTENSION       = 0x7F,
};

/* Section 7.7.4 */
enum dect_nwk_s_ie_auth_type_authentication_algorithm {
	DECT_NWK_S_IE_AUTH_TYPE_AUTHENTICATION_ALGORITHM_DSAA        = 0x01,
	DECT_NWK_S_IE_AUTH_TYPE_AUTHENTICATION_ALGORITHM_DSAA2       = 0x02,
	DECT_NWK_S_IE_AUTH_TYPE_AUTHENTICATION_ALGORITHM_UMTS        = 0x20,
	DECT_NWK_S_IE_AUTH_TYPE_AUTHENTICATION_ALGORITHM_GSM         = 0x40,
	DECT_NWK_S_IE_AUTH_TYPE_AUTHENTICATION_ALGORITHM_PROPRIETARY = 0x7F,
};

enum dect_nwk_s_ie_auth_type_ak_type {
	DECT_NWK_S_IE_AUTH_TYPE_AK_TYPE_USER_AK             = 0x1,
	DECT_NWK_S_IE_AUTH_TYPE_AK_TYPE_USER_PERSONAL_ID    = 0x3,
	DECT_NWK_S_IE_AUTH_TYPE_AK_TYPE_AUTHENTICATION_CODE = 0x4,
};

enum dect_nwk_s_ie_auth_type_default_cipher_key_algorithm {
	DECT_NWK_S_IE_AUTH_TYPE_DEFAULT_CIPHER_KEY_ALGORITHM_DSC =  0x0,
	DECT_NWK_S_IE_AUTH_TYPE_DEFAULT_CIPHER_KEY_ALGORITHM_DSC2 = 0x1,
};

/* Section 7.7.9 */
enum dect_nwk_s_ie_calling_party_number_type {
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_TYPE_UNKNOWN          = 0x0,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_TYPE_INTERNATIONAL    = 0x1,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_TYPE_NATIONAL         = 0x2,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_TYPE_NETWORK_SPECIFIC = 0x3,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_TYPE_SUBSCRIBER       = 0x4,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_TYPE_ABBREVIATED      = 0x6,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_TYPE_RESERVED         = 0x7,
};

enum dect_nwk_s_ie_calling_party_number_numbering_plan {
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_UNKNOWN  = 0x0,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_ISDN     = 0x1,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_DATA     = 0x3,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_TCP_IP   = 0x7,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_NATIONAL = 0x8,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_PRIVATE  = 0x9,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_SIP      = 0xA,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_INTERNET = 0xB,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_LAN_MAC  = 0xC,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_X400     = 0xD,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_PROFILE  = 0xE,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_RESERVED = 0xF,
};

enum dect_nwk_s_ie_calling_party_number_presentation {
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_ALLOWED              = 0x0,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_RESTRICTED           = 0x1,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_NUMBER_NOT_AVAILABLE = 0x2,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_RESERVED             = 0x3,
};

enum dect_nwk_s_ie_calling_party_number_screening {
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_USER_NOT_SCREENED    = 0x0,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_USER_VERIFIED_PASSED = 0x1,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_USER_VERIFIED_FAILED = 0x2,
	DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_NETWORK              = 0x3,
};

/* Section 7.7.10 */
enum dect_nwk_s_ie_cipher_info_algorithm {
	DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_DSC         = 0x01,
	DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_DSC2        = 0x02,
	DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_NO     = 0x28,
	DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_GEA1   = 0x29,
	DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_GEA2   = 0x2A,
	DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_GEA3   = 0x2B,
	DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_GEA4   = 0x2C,
	DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_GEA5   = 0x2D,
	DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_GEA6   = 0x2E,
	DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_GEA7   = 0x2F,
	DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_PROPRIETARY = 0x7F,
};

enum dect_nwk_s_ie_cipher_info_key_type {
	DECT_NWK_S_IE_CIPHER_INFO_KEY_TYPE_DERIVED = 0x9,
	DECT_NWK_S_IE_CIPHER_INFO_KEY_TYPE_STATIC  = 0xA,
};

/* Section 7.7.13 */
enum dect_nwk_s_ie_duration_lock_limits_type {
	DECT_NWK_S_IE_DURATION_LOCK_LIMITS_TEMPORARY2 = 0x5,
	DECT_NWK_S_IE_DURATION_LOCK_LIMITS_TEMPORARY  = 0x6,
	DECT_NWK_S_IE_DURATION_LOCK_LIMITS_NO         = 0x7,
};

enum dect_nwk_s_ie_duration_time_limits_type {
	DECT_NWK_S_IE_DURATION_TIME_LIMITS_ERASE     = 0x0,
	DECT_NWK_S_IE_DURATION_TIME_LIMITS_DEFINED_1 = 0x1,
	DECT_NWK_S_IE_DURATION_TIME_LIMITS_DEFINED_2 = 0x2,
	DECT_NWK_S_IE_DURATION_TIME_LIMITS_STANDARD  = 0x4,
	DECT_NWK_S_IE_DURATION_TIME_LIMITS_INFINITE  = 0xF,
};

/* Section 7.7.18 */
enum dect_nwk_s_ie_fixed_identity_type {
	DECT_NWK_S_IE_FIXED_IDENTITY_ARI              = 0x00,
	DECT_NWK_S_IE_FIXED_IDENTITY_ARI_PLUS_RPN     = 0x01,
	DECT_NWK_S_IE_FIXED_IDENTITY_ARI_PLUS_RPN_WRS = 0x02,
	DECT_NWK_S_IE_FIXED_IDENTITY_PARK             = 0x20,
};

enum dect_nwk_arc_type {
	DECT_NWK_ARC_TYPE_A = 0x0,
	DECT_NWK_ARC_TYPE_B = 0x1,
	DECT_NWK_ARC_TYPE_C = 0x2,
	DECT_NWK_ARC_TYPE_D = 0x3,
	DECT_NWK_ARC_TYPE_E = 0x4,
	DECT_NWK_ARC_TYPE_F = 0x5,
	DECT_NWK_ARC_TYPE_G = 0x6,
	DECT_NWK_ARC_TYPE_H = 0x7,
};

/* Section 7.7.23 */
enum dect_nwk_s_ie_iwu_to_iwu_protocol_discriminator_type {
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_USER_SPECIFIC     = 0x00,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_OSI_HIGH_LAYER    = 0x01,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_X263              = 0x02,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_LIST_ACCESS       = 0x03,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_IA5_CHARS         = 0x04,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_ULE_NON_CCM       = 0x05,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_SUOTA             = 0x06,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_V120              = 0x07,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_Q931_MESSAGE      = 0x08,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_Q931_IE           = 0x09,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_Q931_PARTIAL      = 0x0A,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_ULE_CCM_AUX0      = 0x0C,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_ULE_CCM_AUX1      = 0x0D,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_ULE_CCM_AUX2      = 0x0E,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_DTAM              = 0x0F,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_GSM_MESSAGE       = 0x10,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_GSM_IE            = 0x11,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_UMTS_GPRS_IE      = 0x12,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_UMTS_GPRS_MESSAGE = 0x13,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_LRMS              = 0x14,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_RLL_AP            = 0x15,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_WRS               = 0x16,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_DECT_ISDN_C_PLANE = 0x20,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_DECT_ISDN_U_PLANE = 0x21,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_DECT_ISDN_OPER    = 0x22,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_TERMINAL_DATA     = 0x23,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_DECT_IP           = 0x24,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_MPEG4             = 0x25,
	DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_UNKNOWN           = 0x2F,
};

enum dect_nwk_s_ie_iwu_to_iwu_discriminator_type {
	DECT_NWK_S_IE_IWU_TO_IWU_DISCRIMINATOR_TYPE_UNSPECIFIED = 0x00,
	DECT_NWK_S_IE_IWU_TO_IWU_DISCRIMINATOR_TYPE_EMC         = 0x01,
};

/* Section 7.7.25 */
enum dect_nwk_s_ie_location_area_eli_type {
	DECT_NWK_S_IE_LOCATION_AREA_ELI_TYPE_LI_REQ_NOT_INCLUDED = 0x7,
	DECT_NWK_S_IE_LOCATION_AREA_ELI_TYPE_LI                  = 0xF,
};

/* Section 7.7.28 */
enum dect_nwk_s_ie_nwk_assigned_identity_type {
	DECT_NWK_S_IE_NWK_ASSIGNED_IDENTITY_TMSI        = 0xE4,
	DECT_NWK_S_IE_NWK_ASSIGNED_IDENTITY_PROPRIETARY = 0xFF,
};

/* Section 7.7.30 */
enum dect_nwk_s_ie_portable_identity_type {
	DECT_NWK_S_IE_PORTABLE_IDENTITY_IPUI = 0x00,
	DECT_NWK_S_IE_PORTABLE_IDENTITY_IPEI = 0x10,
	DECT_NWK_S_IE_PORTABLE_IDENTITY_TPUI = 0x20,
};

enum dect_nwk_s_ie_portable_identity_tpui_assignment_type_coding {
	DECT_NWK_S_IE_PORTABLE_IDENTITY_TPUI_ASSIGNMENT_TYPE_TPUI                      = 0x0,
	DECT_NWK_S_IE_PORTABLE_IDENTITY_TPUI_ASSIGNMENT_TYPE_TPUI_WITH_NUMBER_ASSIGNED = 0x1,
};

enum dect_nwk_ipui_type {
	DECT_NWK_IPUI_TYPE_N = 0x0,
	DECT_NWK_IPUI_TYPE_O = 0x1,
	DECT_NWK_IPUI_TYPE_P = 0x2,
	DECT_NWK_IPUI_TYPE_Q = 0x3,
	DECT_NWK_IPUI_TYPE_R = 0x4,
	DECT_NWK_IPUI_TYPE_S = 0x5,
	DECT_NWK_IPUI_TYPE_T = 0x6,
	DECT_NWK_IPUI_TYPE_U = 0x7,
};

/* Section 7.7.41 */
enum dect_nwk_s_ie_terminal_capability_tone_capabilites {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_TONE_CAPABILITY_NA                            = 0x0,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_TONE_CAPABILITY_NO_TONE_CAPABILITY            = 0x1,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_TONE_CAPABILITY_DIAL_TONE_ONLY                = 0x2,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_TONE_CAPABILITY_E182_TONES_SUPPORTED          = 0x3,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_TONE_CAPABILITY_COMPLETE_DECT_TONES_SUPPORTED = 0x4,
};

enum dect_nwk_s_ie_terminal_capability_display_capabilities {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_DISPLAY_CAPABILITY_NA           = 0x0,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_DISPLAY_CAPABILITY_NO_DISPLAY   = 0x1,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_DISPLAY_CAPABILITY_NUMERIC      = 0x2,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_DISPLAY_CAPABILITY_NUMERIC_PLUS = 0x3,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_DISPLAY_CAPABILITY_ALPHANUMERIC = 0x4,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_DISPLAY_CAPABILITY_FULL_DISPLAY = 0x5,
};

enum dect_nwk_s_ie_terminal_capability_echo_parameters {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_ECHO_PARAMETER_NA                   = 0x0,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_ECHO_PARAMETER_MINIMUM_TCLW         = 0x1,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_ECHO_PARAMETER_TCLW_FULL            = 0x2,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_ECHO_PARAMETER_TCLW_VOIP_COMPATIBLE = 0x3,
};

enum dect_nwk_s_ie_terminal_capability_n_rej_capabilities {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_N_REJ_NA       = 0x0,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_N_REJ_NO       = 0x1,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_N_REJ_PROVIDED = 0x2,
};

enum dect_nwk_s_ie_terminal_capability_a_vol_capabilities {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_A_VOL_NA            = 0x0,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_A_VOL_NO_PP_A_VOL   = 0x1,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_A_VOL_PP_A_VOL_USED = 0x2,
};

enum dect_nwk_s_ie_terminal_capability_slot_type {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SLOT_TYPE_HALF_80  = 0x1,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SLOT_TYPE_LONG_640 = 0x02,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SLOT_TYPE_LONG_672 = 0x04,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SLOT_TYPE_FULL     = 0x08,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SLOT_TYPE_DOUBLE   = 0x10,
};

enum dect_nwk_s_ie_terminal_capability_scrolling_behaviour_type {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SCROLLING_BEHAVIOUR_NOT_SPECIFIED = 0x00,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SCROLLING_BEHAVIOUR_TYPE_1 = 0x01,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SCROLLING_BEHAVIOUR_TYPE_2 = 0x02,
};

enum dect_nwk_s_ie_terminal_capability_profile_indicator_1 {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_1_CAP             = 0x01,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_1_GAP             = 0x02,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_1_DECT_GSM        = 0x04,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_1_ISDN            = 0x08,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_1_LRMS            = 0x10,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_1_DPRS_STREAM     = 0x20,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_1_DPRS_ASYMMETRIC = 0x40,
};

enum dect_nwk_s_ie_terminal_capability_profile_indicator_2 {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_2_DPRS_CLASS_2        = 0x01,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_2_DATA_SERVICES       = 0x02,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_2_ISDN                = 0x04,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_2_DECT_UMTS_BEARER    = 0x08,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_2_DECT_UMTS_SMS       = 0x10,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_2_DECT_UMTS_FACSIMILE = 0x20,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_2_RAP                 = 0x40,
};

enum dect_nwk_s_ie_terminal_capability_profile_indicator_3 {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_3_DECT_GSM   = 0x01,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_3_WRS        = 0x02,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_3_SMS        = 0x04,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_3_DMAP       = 0x08,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_3_CTA        = 0x10,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_3_ETHERNET   = 0x20,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_3_TOKEN_RING = 0x40,
};

enum dect_nwk_s_ie_terminal_capability_profile_indicator_4 {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_4_IP    = 0x01,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_4_PPP   = 0x02,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_4_V24  = 0x04,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_4_CF    = 0x08,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_4_IPQ   = 0x10,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_4_RAP_2 = 0x20,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_4_DPRS  = 0x40,
};

enum dect_nwk_s_ie_terminal_capability_profile_indicator_5 {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_5_MOD_2BZ      = 0x01,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_5_MOD_4BZ      = 0x02,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_5_MOD_8BZ      = 0x04,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_5_MOD_16BZ     = 0x08,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_5_MOD_2A       = 0x10,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_5_MOD_4A       = 0x20,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_5_MOD_8A       = 0x40,
};
enum dect_nwk_s_ie_terminal_capability_profile_indicator_6 {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_6_DECT_UMTS      = 0x01,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_6_DECT_UMTS_GPRS = 0x02,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_6_ODAP           = 0x04,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_6_F_MMS          = 0x08,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_6_GF             = 0x10,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_6_FAST_HOPPING   = 0x20,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_6_NO_EMISSION    = 0x40,
};

enum dect_nwk_s_ie_terminal_capability_profile_indicator_7 {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_7_MOD64              = 0x01,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_7_NG_DECT_1          = 0x02,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_7_NG_DECT_3          = 0x04,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_7_HEADSET_MANAGEMENT = 0x08,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_7_RE_KEYING          = 0x10,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_7_ASSOCIATED_MELODY  = 0x20,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_7_NG_DECT_5          = 0x40,
};

enum dect_nwk_s_ie_terminal_capability_profile_indicator_8 {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_MUX_E_U              = 0x01,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_CHANNEL_IPF          = 0x02,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_CHANNEL_SIPF         = 0x04,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_PACKET_DATA_CATEGORY = 0x78,
};

enum dect_nwk_s_ie_terminal_capability_profile_indicator_9 {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_9_DPRS_3     = 0x01,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_9_DPRS_4     = 0x02,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_9_DECT_ULE   = 0x1C,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_9_LIGHT_DATA = 0x20,
};

enum dect_nwk_s_ie_terminal_capability_profile_indicator_10 {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_10_DATE_TIME_RECOVERY   = 0x01,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_10_EXTENDED_LIST_CHANGE = 0x02,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_10_SCREENING            = 0x04,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_10_WRS_2                = 0x08,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_10_WRS_ULE              = 0x10,
};

enum dect_nwk_s_ie_terminal_capability_profile_indicator_8_packet_data_categories {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_PACKET_DATA_NO          = 0x0,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_PACKET_DATA_CAT_1       = 0x1,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_PACKET_DATA_CAT_2       = 0x2,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_PACKET_DATA_CAT_3       = 0x3,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_PACKET_DATA_CAT_4_8PSK  = 0x4,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_PACKET_DATA_CAT_4_64QAM = 0x5,
};

enum dect_nwk_s_ie_terminal_capability_profile_indicator_9_dect_ule_versions {
	DECT_NWK_S_IE_TERMINA_CAPABILITY_PROFILE_INDICATOR_9_DECT_ULE_1_V111 = 0x1,
	DECT_NWK_S_IE_TERMINA_CAPABILITY_PROFILE_INDICATOR_9_DECT_ULE_1_V121 = 0x3,
	DECT_NWK_S_IE_TERMINA_CAPABILITY_PROFILE_INDICATOR_9_DECT_ULE_2      = 0x5,
	DECT_NWK_S_IE_TERMINA_CAPABILITY_PROFILE_INDICATOR_9_DECT_ULE_3      = 0x7,
};

enum dect_nwk_s_ie_terminal_capability_control_codes {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_CONTROL_CODES_NOT_SPECIFIED = 0x0,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_CONTROL_CODES_0CH           = 0x1,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_CONTROL_CODES_CODING_001    = 0x2,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_CONTROL_CODES_CODING_010    = 0x3,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_CONTROL_CODES_CODING_011    = 0x4,
};

enum dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1 {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_ESCAPE_TO_CHAR_SETS_1_LATIN_NO1 = 0x01,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_ESCAPE_TO_CHAR_SETS_1_LATIN_NO9 = 0x02,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_ESCAPE_TO_CHAR_SETS_1_LATIN_NO5 = 0x04,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_ESCAPE_TO_CHAR_SETS_1_GREEK     = 0x08,
};

enum dect_nwk_s_ie_terminal_capability_blind_slot_indication {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_BLIND_SLOT_INDICATION_NO                            = 0x0,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_BLIND_SLOT_INDICATION_NOT_POSSIBLE_ADJACENT         = 0x1,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_BLIND_SLOT_INDICATION_NOT_POSSIBLE_EVERY_SECOND     = 0x2,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_BLIND_SLOT_INDICATION_LIMITATIONS_IN_FOLLOWING_BITS = 0x3,
};

enum dect_nwk_s_ie_terminal_capability_blind_slot_6 {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP0 = 0x10,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP1 = 0x08,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP2 = 0x04,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP3 = 0x02,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP4 = 0x01,
};

enum dect_nwk_s_ie_terminal_capability_blind_slot_6a {
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP5 = 0x40,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP6 = 0x20,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP7 = 0x10,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP8 = 0x08,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP9 = 0x04,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP10 = 0x02,
	DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP11 = 0x01,
};

/* Section 7.7.45 */
enum dect_nwk_s_ie_escape_to_proprietary_discriminator_type {
	DECT_NWK_S_IE_ESCAPE_TO_PROPRIETARY_DISCRIMINATOR_TYPE_UNSPECIFIED = 0x00,
	DECT_NWK_S_IE_ESCAPE_TO_PROPRIETARY_DISCRIMINATOR_TYPE_EMC = 0x01,
};

/* Section 7.7.54 */
enum dect_nwk_s_ie_codec_list_negotiation_indicator_type {
	DECT_NWK_S_IE_CODEC_LIST_NEGOTIATION_INDICATOR_NOT_POSSIBLE      = 0x0,
	DECT_NWK_S_IE_CODEC_LIST_NEGOTIATION_INDICATOR_CODEC_NEGOTIATION = 0x1,
};

enum dect_nwk_s_ie_codec_list_codec_identifier_type {
	DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_USER_32      = 0x01,
	DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_G726_32      = 0x02,
	DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_G722_64      = 0x03,
	DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_G711_ALAW_64 = 0x04,
	DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_G711_ULAW_64 = 0x05,
	DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_G729_1_32    = 0x06,
	DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_MPEG4_32     = 0x07,
	DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_MPEG4_64     = 0x08,
	DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_USER_64      = 0x09,
};

enum dect_nwk_s_ie_codec_list_mac_and_dlc_service_type {
	DECT_NWK_S_IE_CODEC_LIST_MAC_AND_DLC_SERVICE_LU1_INA  = 0x0,
	DECT_NWK_S_IE_CODEC_LIST_MAC_AND_DLC_SERVICE_LU1_INB  = 0x1,
	DECT_NWK_S_IE_CODEC_LIST_MAC_AND_DLC_SERVICE_LU1_IPM  = 0x2,
	DECT_NWK_S_IE_CODEC_LIST_MAC_AND_DLC_SERVICE_LU1_IPQ  = 0x3,
	DECT_NWK_S_IE_CODEC_LIST_MAC_AND_DLC_SERVICE_LU7_INB  = 0x4,
	DECT_NWK_S_IE_CODEC_LIST_MAC_AND_DLC_SERVICE_LU12_INB = 0x5,
};

enum dect_nwk_s_ie_codec_list_c_plane_routing_type {
	DECT_NWK_S_IE_CODEC_LIST_C_PLANE_ROUTING_CS_ONLY                  = 0x0,
	DECT_NWK_S_IE_CODEC_LIST_C_PLANE_ROUTING_CS_PREFERRED_CF_ACCEPTED = 0x1,
	DECT_NWK_S_IE_CODEC_LIST_C_PLANE_ROUTING_CF_PREFERRED_CS_ACCEPTED = 0x2,
	DECT_NWK_S_IE_CODEC_LIST_C_PLANE_ROUTING_CF_ONLY                  = 0x4,
};

enum dect_nwk_s_ie_codec_list_slot_size_type {
	DECT_NWK_S_IE_CODEC_LIST_SLOT_SIZE_HALF     = 0x0,
	DECT_NWK_S_IE_CODEC_LIST_SLOT_SIZE_LONG_640 = 0x1,
	DECT_NWK_S_IE_CODEC_LIST_SLOT_SIZE_LONG_672 = 0x2,
	DECT_NWK_S_IE_CODEC_LIST_SLOT_SIZE_FULL     = 0x4,
	DECT_NWK_S_IE_CODEC_LIST_SLOT_SIZE_DOUBLE   = 0x5,
};

/* Annex D.2.2 */
enum dect_charset_control_codes {
	DECT_CHARSET_CANCEL_DTMF_TONE                          = 0x00,
	DECT_CHARSET_RETURN_HOME                               = 0x02,
	DECT_CHARSET_RETURN_END                                = 0x03,
	DECT_CHARSET_DIALLING_PAUSE                            = 0x05,
	DECT_CHARSET_MOVE_FORWARD_TO_NEXT_COLUMN_TAB_POSITION  = 0x06,
	DECT_CHARSET_MOVE_BACKWARD_TO_NEXT_COLUMN_TAB_POSITION = 0x07,
	DECT_CHARSET_MOVE_BACKWARD_ONE_COLUMN                  = 0x08,
	DECT_CHARSET_MOVE_FORWARD_ONE_COLUMN                   = 0x09,
	DECT_CHARSET_MOVE_DOWN_ONE_ROW                         = 0x0A,
	DECT_CHARSET_MOVE_UP_ONE_ROW                           = 0x0B,
	DECT_CHARSET_CLEAR_DISPLAY                             = 0x0C,
	DECT_CHARSET_RETURN_TO_START_OF_CURRENT_ROW            = 0x0D,
	DECT_CHARSET_FLASH_OFF                                 = 0x0E,
	DECT_CHARSET_FLASH_ON                                  = 0x0F,
	DECT_CHARSET_XON                                       = 0x11,
	DECT_CHARSET_GO_TO_PULSE_DIALLING                      = 0x12,
	DECT_CHARSET_XOFF                                      = 0x13,
	DECT_CHARSET_GO_TO_DTMF_DIALLING_DEFINED_TONE_LENGTH   = 0x14,
	DECT_CHARSET_REGISTER_RECALL                           = 0x15,
	DECT_CHARSET_GO_TO_DTMF_DIALLING_INFINITE_TONE_LENGTH  = 0x16,
	DECT_CHARSET_INTERNAL_CALL                             = 0x17,
	DECT_CHARSET_SERVICE_CALL                              = 0x18,
	DECT_CHARSET_CLEAR_TO_END_OF_DISPLAY                   = 0x19,
	DECT_CHARSET_CLEAR_TO_END_OF_LINE                      = 0x1A,
	DECT_CHARSET_ESC                                       = 0x1B,
	DECT_CHARSET_SUPPLEMENTARY_SERVICE                     = 0x1C,
};

/*********************************************************************************
 * DECT VALUE STRINGS
 *********************************************************************************/

/* Section 7.2 */
static const value_string nwk_pdisc_vals[] = {
	{ DECT_NWK_PDISC_LCE,		"Link Control Entity (LCE)" },
	{ DECT_NWK_PDISC_CC,		"Call Control (CC)" },
	{ DECT_NWK_PDISC_CISS,		"Call Independent Supplementary Services (CISS)" },
	{ DECT_NWK_PDISC_MM,		"Mobility Management (MM)" },
	{ DECT_NWK_PDISC_CLMS,		"ConnectionLess Message Service (CLMS)" },
	{ DECT_NWK_PDISC_COMS,		"Connection Oriented Message Service (COMS)" },
	{ 0, NULL }
};

/* Section 7.4.1 */
static const value_string nwk_cc_msgt_vals[] = {
	{ DECT_NWK_CC_ALERTING,		"CC-ALERTING" },
	{ DECT_NWK_CC_CALL_PROC,	"CC-CALL-PROC" },
	{ DECT_NWK_CC_SETUP,		"CC-SETUP" },
	{ DECT_NWK_CC_CONNECT,		"CC-CONNECT" },
	{ DECT_NWK_CC_SETUP_ACK,	"CC-SETUP-ACK" },
	{ DECT_NWK_CC_CONNECT_ACK,	"CC-CONNECT-ACK" },
	{ DECT_NWK_CC_SERVICE_CHANGE,	"CC-SERVICE-CHANGE" },
	{ DECT_NWK_CC_SERVICE_ACCEPT,	"CC-SERVICE-ACCEPT" },
	{ DECT_NWK_CC_SERVICE_REJECT,	"CC-SERVICE-REJECT" },
	{ DECT_NWK_CC_RELEASE,		"CC-RELEASE" },
	{ DECT_NWK_CC_RELEASE_COM,	"CC-RELEASE-COM" },
	{ DECT_NWK_CC_IWU_INFO,		"CC-IWU-INFO" },
	{ DECT_NWK_CC_NOTIFY,		"CC-NOTIFY" },
	{ DECT_NWK_CC_INFO,		"CC-INFO" },
	{ 0, NULL }
};

/* Section 7.4.2 */
static const value_string dect_nwk_ciss_message_type_vals[] = {
	{ DECT_NWK_SS_CISS_RELEASE_COM, "CISS-RELEASE-COM" },
	{ DECT_NWK_SS_CISS_FACILITY,    "FACILITY" },
	{ DECT_NWK_SS_CISS_REGISTER,    "CISS-REGISTER" },
	{ 0, NULL }
};

static const value_string dect_nwk_crss_message_type_vals[] = {
	{ DECT_NWK_SS_CRSS_HOLD,         "HOLD" },
	{ DECT_NWK_SS_CRSS_HOLD_ACK,     "HOLD-ACK" },
	{ DECT_NWK_SS_CRSS_HOLD_REJ,     "HOLD-REJECT" },
	{ DECT_NWK_SS_CRSS_RETRIEVE,     "RETRIEVE" },
	{ DECT_NWK_SS_CRSS_RETRIEVE_ACK, "RETRIEVE-ACK" },
	{ DECT_NWK_SS_CRSS_RETRIEVE_REJ, "RETRIEVE-REJECT" },
	{ DECT_NWK_SS_CRSS_FACILITY,     "FACILITY" },
	{ 0, NULL }
};

/* Section 7.4.3 */
static const value_string dect_nwk_coms_message_type_vals[] = {
	{ DECT_NWK_COMS_SETUP,       "COMS-SETUP" },
	{ DECT_NWK_COMS_CONNECT,     "COMS-CONNECT" },
	{ DECT_NWK_COMS_NOTIFY,      "COMS-NOTIFY" },
	{ DECT_NWK_COMS_RELEASE,     "COMS-RELEASE" },
	{ DECT_NWK_COMS_RELEASE_COM, "COMS-RELEASE-COM" },
	{ DECT_NWK_COMS_INFO,        "COMS-INFO" },
	{ DECT_NWK_COMS_ACK,         "COMS-ACK" },
	{ 0, NULL }
};

/* Section 7.4.4 */
static const value_string  dect_nwk_clms_message_type_vals[] = {
	{ DECT_NWK_CLMS_VARIABLE, "CLMS-VARIABLE" },
	{ 0, NULL }
};

/* Section 7.4.5 */
static const value_string nwk_mm_msgt_vals[] = {
	{ DECT_NWK_MM_AUTH_REQ,            "MM-AUTH-REQ" },
	{ DECT_NWK_MM_AUTH_REPLY,          "MM-AUTH-REPLY" },
	{ DECT_NWK_MM_KEY_ALLOC,           "MM-KEY-ALLOCATE" },
	{ DECT_NWK_MM_AUTH_REJ,            "MM-AUTH-REJECT" },
	{ DECT_NWK_MM_ACC_RIGHTS_REQ,      "MM-ACCESS-RIGHTS-REQUEST" },
	{ DECT_NWK_MM_ACC_RIGHTS_ACK,      "MM-ACCESS-RIGHTS-ACCEPT" },
	{ DECT_NWK_MM_ACC_RIGHTS_REJ,      "MM-ACCESS-RIGHTS-REJECT" },
	{ DECT_NWK_MM_ACC_RIGHTS_TERM_REQ, "MM-ACCESS-RIGHTS-TERMINATE-REQUEST" },
	{ DECT_NWK_MM_ACC_RIGHTS_TERM_ACK, "MM-ACCESS-RIGHTS-TERMINATE-ACCEPT" },
	{ DECT_NWK_MM_ACC_RIGHTS_TERM_REJ, "MM-ACCESS-RIGHTS-TERMINATE-REJECT" },
	{ DECT_NWK_MM_CIPH_REQ,            "MM-CIPHER-REQUEST" },
	{ DECT_NWK_MM_CIPH_SUGGEST,        "MM-CIPHER-SUGGEST" },
	{ DECT_NWK_MM_CIPH_REJ,            "MM-CIPHER-REJECT" },
	{ DECT_NWK_MM_INFO_REQ,            "MM-INFO-REQUEST" },
	{ DECT_NWK_MM_INFO_ACK,            "MM-INFO-ACCEPT" },
	{ DECT_NWK_MM_INFO_SUGGEST,        "MM-INFO-SUGGEST" },
	{ DECT_NWK_MM_INFO_REJ,            "MM-INFO-REJECT" },
	{ DECT_NWK_MM_LOCATE_REQ,          "MM-LOCATE-REQUEST" },
	{ DECT_NWK_MM_LOCATE_ACK,          "MM-LOCATE-ACCEPT" },
	{ DECT_NWK_MM_DETACH,              "MM-DETACH" },
	{ DECT_NWK_MM_LOCATE_REJ,          "MM-LOCATE-REJECT" },
	{ DECT_NWK_MM_ID_REQ,              "MM-IDENTITY-REQUEST" },
	{ DECT_NWK_MM_ID_REPLY,            "MM-IDENTITY-REPLY" },
	{ DECT_NWK_MM_IWU,                 "MM-IWU" },
	{ DECT_NWK_MM_TID_ASSIGN,          "MM-TEMPORARY-IDENTITY-ASSIGN" },
	{ DECT_NWK_MM_TID_ASSIGN_ACK,      "MM-TEMPORARY-IDENTITY-ASSIGN-ACK" },
	{ DECT_NWK_MM_TID_ASSIGN_REJ,      "MM-TEMPORARY-IDENTITY-ASSIGN-REJ" },
	{ DECT_NWK_MM_NOTIFY,              "MM-NOTIFY" },
	{ 0, NULL }
};

/* Section 7.4.6 */
static const value_string nwk_lce_msgt_vals[] = {
	{ DECT_NWK_LCE_PAGE_RESP,	"LCE-PAGE-RESPONSE" },
	{ DECT_NWK_LCE_PAGE_REJ, 	"LCE-PAGE-REJECT" },
	{ 0, NULL }
};

/* Section 7.5.3 */
static const true_false_string dect_nwk_s_ie_fl_shift_locking_tfs = {
	"non-locking",
	"locking"
};

static const value_string dect_nwk_s_ie_fl_shift_codeset_val[] = {
	{ DECT_NWK_S_FL_IE_SHIFT_CODESET_INITIAL, "Initial codeset" },
	{ DECT_NWK_S_FL_IE_SHIFT_CODESET_NON_STANDARD_0, "Non-Standard codeset 0" },
	{ DECT_NWK_S_FL_IE_SHIFT_CODESET_NON_STANDARD_1, "Non-Standard codeset 1" },
	{ DECT_NWK_S_FL_IE_SHIFT_CODESET_NON_STANDARD_2, "Non-Standard codeset 2" },
	{ DECT_NWK_S_FL_IE_SHIFT_CODESET_NON_STANDARD_3, "Non-Standard codeset 3" },
	{ 0, NULL }
};

/* Section 7.6.1 */
static const value_string dect_nwk_s_ie_fl_type_val[] = {
	{ DECT_NWK_S_IE_FL_SHIFT,                "SHIFT" },
	{ DECT_NWK_S_IE_FL_CONTROL,              "CONTROL" },
	{ DECT_NWK_S_IE_FL_REPEAT_INDICATOR,     "REPEAT-INDICATOR" },
	{ DECT_NWK_S_IE_FL_DOUBLE_OCTET_ELEMENT, "DOUBLE-OCTET-ELEMENT" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_fl_control_type_val[] = {
	{ DECT_NWK_S_IE_FL_CONTROL_SENDING_COMPLETE,  "SENDING-COMPLETE" },
	{ DECT_NWK_S_IE_FL_CONTROL_DELIMITER_REQUEST, "DELIMITER-REQUEST" },
	{ DECT_NWK_S_IE_FL_CONTROL_USE_TPUI,          "USE-TPUI" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_fl_double_octet_type_val[] = {
	{ DECT_NWK_S_IE_FL_DOUBLE_OCTET_BASIC_SERVICE,     "BASIC-SERVICE" },
	{ DECT_NWK_S_IE_FL_DOUBLE_OCTET_RELEASE_REASON,    "RELEASE-REASON" },
	{ DECT_NWK_S_IE_FL_DOUBLE_OCTET_SIGNAL,            "SIGNAL" },
	{ DECT_NWK_S_IE_FL_DOUBLE_OCTET_TIMER_RESTART,     "TIMER-RESTART" },
	{ DECT_NWK_S_IE_FL_DOUBLE_OCTET_TEST_HOOK_CONTROL, "TEST-HOOK-CONTROL" },
	{ DECT_NWK_S_IE_FL_DOUBLE_OCTET_SINGLE_DISPLAY,    "SINGLE-DISPLAY" },
	{ DECT_NWK_S_IE_FL_DOUBLE_OCTET_SINGLE_KEYPAD,     "SINGLE-KEYPAD" },
	{ 0, NULL }
};

/* Section 7.6.3 */
static const value_string dect_nwk_s_ie_fl_repeat_indicator_type_val[] = {
	{ DECT_NWK_S_IE_FL_REPEAT_INDICATOR_NON_PRIORITIZED, "Non prioritized list" },
	{ DECT_NWK_S_IE_FL_REPEAT_INDICATOR_PRIORITIZED,     "Prioritized list" },
	{ 0, NULL }
};

/* Section 7.6.4 */
static const value_string dect_nwk_s_ie_fl_basic_service_call_class_val[] = {
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_LIA,                   "Basic speech default setup attributes" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_ULE,                   "ULE service call setup"},
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_MESSAGE,               "Message call setup" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_DECT_ISDN_IIP,         "DECT/ISDN IIP" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_NORMAL,                "Normal call setup" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_INTERNAL,              "Internal call setup" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_EMERGENCY,             "Emergency call setup" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_SERVICE,               "Service call setup" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_EXTERNAL_HANDOVER,     "External handover call setup" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_SUPPLEMENTARY_SERVICE, "Supplementary service call setup" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_CALL_CLASS_OA_M,                  "OA&M call setup" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_fl_basic_service_type_val[] = {
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_BASIC_SPEECH,              "Basic speech default setup attributes" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_DECT_GSM_IWP,              "DECT GSM IWP profile (Phase 2)" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_LRMS,                      "LRMS (E-profile) service" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_DECT_UMTS_IWP_GSM_IWP_SMS, "DECT UMTS IWP or GSM IWP SMS" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_WIDEBAND_SPEECH,           "Wideband speech default setup attributes" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_SUOTA_CLASS_4_DPRS,        "Light data services: SUOTA, Class 4 DPRS management, default setup attributes" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_SUOTA_CLASS_3_DPRS,        "Light data services: SUOTA, Class 3 DPRS management, default setup attributes" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_DTAM_WIDEBAND_SPEECH,      "DTAM Wideband speech default setup attributes" },
	{ DECT_NWK_S_IE_FL_BASIC_SERVICE_OTHER,                     "Other" },
	{ 0, NULL }
};

/* Section 7.6.7 */
static const value_string dect_nwk_s_ie_fl_release_reason_val[] = {
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_NORMAL,                                "Normal" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_UNEXPECTED_MESSAGE,                    "Unexpected Message" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_UNKNOWN_TRANSACTION_IDENTIFIER,        "Unknown Transaction Identifier" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_MANDATORY_INFORMATION_ELEMENT_MISSING, "Mandatory information element missing" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_INVALID_INFORMATION_ELEMENT_CONTENTS,  "Invalid information element contents" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_INCOMPATIBLE_SERVICE,                  "Incompatible service" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_SERVICE_NOT_IMPLEMENTED,               "Service not implemented" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_NEGOTIATION_NOT_SUPPORTED,             "Negotiation not supported" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_INVALID_ENTITY,                        "Invalid identity" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_AUTHENTICATION_FAILED,                 "Authentication failed" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_UNKNOWN_IDENTITY,                      "Unknown identity" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_NEGOTIATION_FAILED,                    "Negotiation failed" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_COLLISION,                             "Collision" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_TIMER_EXPIRY,                          "Timer expiry" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_PARTIAL_RELEASE,                       "Partial release" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_UNKNOWN,                               "Unknown" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_USER_DETACHED,                         "User detached" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_USER_NOT_IN_RANGE,                     "User not in range" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_USER_UNKNOWN,                          "User unknown" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_USER_ALREADY_ACTIVE,                   "User already active" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_USER_BUSY,                             "User busy" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_USER_REJECTION,                        "User rejection" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_USER_CALL_MODIFY,                      "User call modify" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_EXTERNAL_HANDOVER_NOT_SUPPORTED,       "External Handover not supported" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_NETWORK_PARAMETERS_MISSING,            "Network Parameters missing" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_EXTERNAL_HANDOVER_RELEASE,             "External Handover release" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_OVERLOAD,                              "Overload" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_INSUFFICIENT_RESOURCES,                "Insufficient resources" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_INSUFFICIENT_BEARERS_AVAILABLE,        "Insufficient bearers available" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_IWU_CONGESTION,                        "IWU congestion" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_SECURITY_ATTACK_ASSUMED,               "Security attack assumed" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_ENCRYPTION_ACTIVATION_FAILED,          "Encryption activation failed" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_RE_KEYING_FAILED,                      "Re-Keying failed" },
	{ DECT_NWK_S_IE_FL_RELEASE_REASON_NO_CIPHER_KEY_AVAILABLE,               "No Cipher Key available" },
	{ 0, NULL }
};

/* Section 7.6.8 */
static const value_string dect_nwk_s_ie_fl_signal_value_val[] = {
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_DIAL_TONE_ON,               "Dial tone on" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_RINGBACK_TONE_ON,           "Ring-back tone on" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_INTERCEPT_TONE_ON,          "Intercept tone on " },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_NETWORK_CONGESTION_TONE_ON, "Network congestion tone on" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_BUSY_TONE_ON,               "Busy tone on" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_CONFIRM_TONE_ON,            "Confirm tone on" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_ANSWER_TONE_ON,             "Answer tone on" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_CALL_WAITING_TONE_ON,       "Call waiting tone on" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_OFF_HOOK_WARNING_TONE_ON,   "Off-hook warning tone on" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_NEGATIVE_ACK_TONE,          "Negative acknowledgement tone" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_TONES_OFF,                  "Tones off" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_0,      "Alerting on - pattern 0" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_1,      "Alerting on - pattern 1" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_2,      "Alerting on - pattern 2" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_3,      "Alerting on - pattern 3" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_4,      "Alerting on - pattern 4" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_5,      "Alerting on - pattern 5" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_6,      "Alerting on - pattern 6" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_PATTERN_7,      "Alerting on - pattern 7" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_ON_CONTINUOUS,     "Alerting on - continuous" },
	{ DECT_NWK_S_IE_FL_SIGNAL_VALUE_ALERTING_OFF,               "Alerting off" },
	{ 0, NULL }
};

/* Section 7.6.9 */
static const value_string dect_nwk_s_ie_fl_timer_restart_value_val[] = {
	{ DECT_NWK_S_IE_FL_TIMER_RESTART_VALUE_RESTART_TIMER, "Restart timer" },
	{ DECT_NWK_S_IE_FL_TIMER_RESTART_VALUE_STOP_TIMER,    "Stop timer" },
	{ 0, NULL }
};

/* Section 7.6.10 */
static const value_string dect_nwk_s_ie_fl_test_hook_control_hook_value_val[] = {
	{ DECT_NWK_S_IE_FL_TEST_HOOK_CONTROL_HOOK_VALUE_ON_HOOK,  "On-Hook" },
	{ DECT_NWK_S_IE_FL_TEST_HOOK_CONTROL_HOOK_VALUE_OFF_HOOK, "Off-Hook" },
	{ 0, NULL }
};

/* Section 7.7.1 */
static const value_string dect_nwk_s_ie_type_val[] = {
	{ DECT_NWK_S_IE_INFO_TYPE,                 "INFO-TYPE" },
	{ DECT_NWK_S_IE_IDENTITY_TYPE,             "IDENTITY-TYPE" },
	{ DECT_NWK_S_IE_PORTABLE_IDENTITY,         "PORTABLE-IDENTITY" },
	{ DECT_NWK_S_IE_FIXED_IDENTITY,            "FIXED-IDENTITY" },
	{ DECT_NWK_S_IE_LOCATION_AREA,             "LOCATION-AREA" },
	{ DECT_NWK_S_IE_NWK_ASSIGNED_IDENTITY,     "NWK-ASSIGNED-IDENTITY" },
	{ DECT_NWK_S_IE_AUTH_TYPE,                  "AUTH-TYPE" },
	{ DECT_NWK_S_IE_ALLOCATION_TYPE,            "ALLOCATION-TYPE" },
	{ DECT_NWK_S_IE_RAND,                       "RAND" },
	{ DECT_NWK_S_IE_RES,                        "RES" },
	{ DECT_NWK_S_IE_RS,                         "RS" },
	{ DECT_NWK_S_IE_IWU_ATTRIBUTES,             "IWU-ATTRIBUTES" },
	{ DECT_NWK_S_IE_CALL_ATTRIBUES,             "CALL-ATTRIBUTES" },
	{ DECT_NWK_S_IE_SERVICE_CHANGE_INFO,        "SERVICE-CHANGE-INFO" },
	{ DECT_NWK_S_IE_CONNECTION_ATTRIBUTES,      "CONNECTION-ATTRIBUTES" },
	{ DECT_NWK_S_IE_CIPHER_INFO,                "CIPHER-INFO" },
	{ DECT_NWK_S_IE_CALL_IDENTITY,              "CALL-IDENTITY" },
	{ DECT_NWK_S_IE_CONNECTION_IDENTITY,        "CONNECTION-IDENTITY" },
	{ DECT_NWK_S_IE_FACILITY,                   "FACILITY" },
	{ DECT_NWK_S_IE_PROGRESS_INDICATOR,         "PROGRESS-INDICATOR" },
	{ DECT_NWK_S_IE_MMS_GENERIC_HEADER,         "MMS-GENERIC-HEADER" },
	{ DECT_NWK_S_IE_MMS_OBJECT_HEADER,          "MMS-OBJECT-HEADER" },
	{ DECT_NWK_S_IE_MMS_EXTENDED_HEADER,        "MMS-EXTENDED-HEADER" },
	{ DECT_NWK_S_IE_TIME_DATE,                  "TIME-DATE" },
	{ DECT_NWK_S_IE_MULTI_DISPLAY,              "MULTI-DISPLAY" },
	{ DECT_NWK_S_IE_MULTI_KEYPAD,               "MULTI-KEYPAD" },
	{ DECT_NWK_S_IE_FEATURE_ACTIVATE,           "FEATURE-ACTIVATE" },
	{ DECT_NWK_S_IE_FEATURE_INDICATE,           "FEATURE-INDICATE" },
	{ DECT_NWK_S_IE_NETWORK_PARAMETER,          "NETWORK-PARAMETER" },
	{ DECT_NWK_S_IE_EXT_HO_INDICATOR,           "EXT-HO-INDICATOR" },
	{ DECT_NWK_S_IE_ZAP_FIELD,                  "ZAP-FIELD" },
	{ DECT_NWK_S_IE_SERVICE_CLASS,              "SERVICE-CLASS" },
	{ DECT_NWK_S_IE_KEY,                        "KEY" },
	{ DECT_NWK_S_IE_REJECT_REASON,              "REJECT-REASON" },
	{ DECT_NWK_S_IE_SETUP_CAPABILITY,           "SETUP-CAPABILITY" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY,        "TERMINAL-CAPABILITY" },
	{ DECT_NWK_S_IE_END_TO_END_COMPATIBILITY,   "END-TO-END-COMPATIBILITY" },
	{ DECT_NWK_S_IE_RATE_PARAMETERS,            "RATE-PARAMETERS" },
	{ DECT_NWK_S_IE_TRANSIT_DELAY,              "TRANSIT-DELAY" },
	{ DECT_NWK_S_IE_WINDOW_SIZE,                "WINDOWS-SIZE" },
	{ DECT_NWK_S_IE_ULE_MAC_CONFIGURATION_INFO, "ULE-MAC-CONFIGURATION-INFO" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER,       "CALLING-PARTY-NUMBER" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NAME,         "CALLING-PARTY-NAME" },
	{ DECT_NWK_S_IE_CALLED_PARTY_NUMBER,        "CALLED-PARTY-NUMBER" },
	{ DECT_NWK_S_IE_CALLED_PARTY_SUBADDR,       "CALLED-PARTY-SUBADDR" },
	{ DECT_NWK_S_IE_DURATION,                   "DURATION" },
	{ DECT_NWK_S_IE_CALLED_PARTY_NAME,          "CALLED-PARTY-NAME" },
	{ DECT_NWK_S_IE_LIST_CHANGE_DETAILS,        "LIST-CHANGE-DETAILS" },
	{ DECT_NWK_S_IE_SEGMENTED_INFO,             "SEGMENTED_INFO" },
	{ DECT_NWK_S_IE_ALPHANUMERIC,               "ALPHANUMERIC" },
	{ DECT_NWK_S_IE_IWU_TO_IWU,                 "IWU-TO-IWU" },
	{ DECT_NWK_S_IE_MODEL_IDENTIFIER,           "MODEL-IDENTIFIER" },
	{ DECT_NWK_S_IE_IWU_PACKET,                 "IWU-PACKET" },
	{ DECT_NWK_S_IE_ESCAPE_TO_PROPRIETARY,      "ESCAPE-TO-PROPRIETARY" },
	{ DECT_NWK_S_IE_CODEC_LIST,                 "CODEC-LIST" },
	{ DECT_NWK_S_IE_EVENTS_NOTIFICATION,        "EVENTS-NOTIFICATION" },
	{ DECT_NWK_S_IE_CALL_INFORMATION,           "CALL-INFORMATION" },
	{ DECT_NWK_S_IE_ESCAPE_FOR_EXTENSION,       "ESCAPE-FOR-EXTENSION" },
	{ 0, NULL }
};

/* Section 7.7.4 */
static const value_string dect_nwk_s_ie_auth_type_authentication_algorithm_val[] = {
	{ DECT_NWK_S_IE_AUTH_TYPE_AUTHENTICATION_ALGORITHM_DSAA,        "DECT standard authentication algorithm (DSAA)" },
	{ DECT_NWK_S_IE_AUTH_TYPE_AUTHENTICATION_ALGORITHM_DSAA2,       "DECT standard authentication algorithm #2 (DSAA2)" },
	{ DECT_NWK_S_IE_AUTH_TYPE_AUTHENTICATION_ALGORITHM_UMTS,        "GSM authentication algorithm" },
	{ DECT_NWK_S_IE_AUTH_TYPE_AUTHENTICATION_ALGORITHM_GSM,         "UMTS authentication algorithm" },
	{ DECT_NWK_S_IE_AUTH_TYPE_AUTHENTICATION_ALGORITHM_PROPRIETARY, "Escape to proprietary algorithm identifier" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_auth_type_ak_type_val[] = {
	{ DECT_NWK_S_IE_AUTH_TYPE_AK_TYPE_USER_AK,             "User authentication key" },
	{ DECT_NWK_S_IE_AUTH_TYPE_AK_TYPE_USER_PERSONAL_ID,    "User personal identity" },
	{ DECT_NWK_S_IE_AUTH_TYPE_AK_TYPE_AUTHENTICATION_CODE, "Authentication code" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_auth_type_default_cipher_key_algorithm_val[] = {
	{ DECT_NWK_S_IE_AUTH_TYPE_DEFAULT_CIPHER_KEY_ALGORITHM_DSC,  "DSC" },
	{ DECT_NWK_S_IE_AUTH_TYPE_DEFAULT_CIPHER_KEY_ALGORITHM_DSC2, "DSC2" },
	{ 0, NULL }
};

static const true_false_string dect_nwk_s_ie_auth_type_cipher_key_number_related_tfs = {
	"IPUI/PARK pair",
	"IPUI"
};

/* Section 7.7.9 */
static const value_string dect_nwk_s_ie_calling_party_number_type_val[] = {
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_TYPE_UNKNOWN,          "Unknown" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_TYPE_INTERNATIONAL,    "International number" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_TYPE_NATIONAL,         "National number" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_TYPE_NETWORK_SPECIFIC, "Network specific number" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_TYPE_SUBSCRIBER,       "Subscriber number" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_TYPE_ABBREVIATED,      "Abbreviated number" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_TYPE_RESERVED,         "Reserved for extension" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_calling_party_number_numbering_plan_val[] = {
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_UNKNOWN,  "Unknown" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_ISDN,     "ISDN/telephony plan" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_DATA,     "Data plan" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_TCP_IP,   "TCP/IP address" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_NATIONAL, "National standard plan" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_PRIVATE,  "Private plan" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_SIP,      "SIP addressing scheme, \"From:\" field" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_INTERNET, "Internet character format address" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_LAN_MAC,  "LAN MAC address" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_X400,     "Recommendation ITU-T X.400 address" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_PROFILE,  "Profile service specific alphanumeric identifier" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_NUMBERING_PLAN_RESERVED, "Reserved for extension" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_calling_party_number_presentation_val[] = {
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_ALLOWED,              "Presentation allowed" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_RESTRICTED,           "Presentation restricted" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_NUMBER_NOT_AVAILABLE, "Number not available" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_RESERVED,             "Reserved" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_calling_party_number_screening_val[] = {
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_USER_NOT_SCREENED,    "User-provided, not screened" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_USER_VERIFIED_PASSED, "User-provided, verified and passed" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_USER_VERIFIED_FAILED, "User-provided, verified and failed" },
	{ DECT_NWK_S_IE_CALLING_PARTY_NUMBER_PRESENTATION_NETWORK,              "Network provided" },
	{ 0, NULL }
};

/* Section 7.7.10 */
static const value_string dect_nwk_s_ie_cipher_info_algorithm_val[] = {
	{ DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_DSC,         "DECT Standard Cipher algorithm #1 (DSC)" },
	{ DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_DSC2,        "DECT Standard Cipher algorithm #2 (DSC2)" },
	{ DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_NO,     "GPRS ciphering not used" },
	{ DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_GEA1,   "GPRS encryption algorithm GEA/1" },
	{ DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_GEA2,   "GPRS encryption algorithm GEA/2" },
	{ DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_GEA3,   "GPRS encryption algorithm GEA/3" },
	{ DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_GEA4,   "GPRS encryption algorithm GEA/4" },
	{ DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_GEA5,   "GPRS encryption algorithm GEA/5" },
	{ DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_GEA6,   "GPRS encryption algorithm GEA/6" },
	{ DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_GPRS_GEA7,   "GPRS encryption algorithm GEA/7" },
	{ DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_PROPRIETARY, "Escape to proprietary algorithm identifier" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_cipher_info_key_type_val[] = {
	{ DECT_NWK_S_IE_CIPHER_INFO_KEY_TYPE_DERIVED, "Derived cipher key" },
	{ DECT_NWK_S_IE_CIPHER_INFO_KEY_TYPE_STATIC,  "Static cipher key" },
	{ 0, NULL }
};

/* Section 7.7.13 */
static const value_string dect_nwk_s_ie_duration_lock_limits_type_val[] = {
	{ DECT_NWK_S_IE_DURATION_LOCK_LIMITS_TEMPORARY2, "Temporary user limits 2" },
	{ DECT_NWK_S_IE_DURATION_LOCK_LIMITS_TEMPORARY,  "Temporary user limits" },
	{ DECT_NWK_S_IE_DURATION_LOCK_LIMITS_NO,         "No limits" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_duration_time_limits_type_val[] = {
	{ DECT_NWK_S_IE_DURATION_TIME_LIMITS_ERASE,     "Erase (time limit zero)" },
	{ DECT_NWK_S_IE_DURATION_TIME_LIMITS_DEFINED_1, "Defined time limit 1" },
	{ DECT_NWK_S_IE_DURATION_TIME_LIMITS_DEFINED_2, "Defined time limit 2" },
	{ DECT_NWK_S_IE_DURATION_TIME_LIMITS_STANDARD,  "Standard time limit" },
	{ DECT_NWK_S_IE_DURATION_TIME_LIMITS_INFINITE,  "Infinite" },
	{ 0, NULL }
};

/* Section 7.7.18 */
static const value_string dect_nwk_s_ie_fixed_identity_type_val[] = {
	{ DECT_NWK_S_IE_FIXED_IDENTITY_ARI,              "Access rights identity (ARI)" },
	{ DECT_NWK_S_IE_FIXED_IDENTITY_ARI_PLUS_RPN,     "Access rights identity plus radio fixed part number (ARI + RPN)" },
	{ DECT_NWK_S_IE_FIXED_IDENTITY_ARI_PLUS_RPN_WRS, "Access rights identity plus radio fixed part number for WRS (ARI + RPN for WRS)" },
	{ DECT_NWK_S_IE_FIXED_IDENTITY_PARK,             "Portable access rights key (PARK)" },
	{ 0, NULL }
};

static const value_string dect_nwk_arc_type_val[] = {
	{ DECT_NWK_ARC_TYPE_A, "A (small residential 1..7 RFPs" },
	{ DECT_NWK_ARC_TYPE_B, "B (LAN and multi-cell)" },
	{ DECT_NWK_ARC_TYPE_C, "C (public access)" },
	{ DECT_NWK_ARC_TYPE_D, "D (public with GSM/UMTS)" },
	{ DECT_NWK_ARC_TYPE_E, "E (PP-to-PP)"},
	{ 0, NULL }
};

/* Section 7.7.23 */
static const value_string dect_nwk_s_ie_iwu_to_iwu_protocol_discriminator_type_val[] = {
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_USER_SPECIFIC,     "User specific" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_OSI_HIGH_LAYER,    "OSI high layer protocols" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_X263,              "ITU-T X.263" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_LIST_ACCESS,       "List Access" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_IA5_CHARS,         "IA 5 characters" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_ULE_NON_CCM,       "ULE Configuration and Control (non CCM encrypted) service channel" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_SUOTA,             "Light data service, Software Upgrade Over The Air (SUOTA)" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_V120,              "ITU-T V.120 Rate adaption" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_Q931_MESSAGE,      "ITU-T Q.931, message" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_Q931_IE,           "ITU-T Q.931, information element(s)" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_Q931_PARTIAL,      "ITU-T Q.931, partial message" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_ULE_CCM_AUX0,      "ULE CCM encrypted service channel AUX0" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_ULE_CCM_AUX1,      "ULE CCM encrypted service channel AUX1" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_ULE_CCM_AUX2,      "ULE CCM encrypted service channel AUX2" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_DTAM,              "Digital Telephone Answering Machine (DTAM)" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_GSM_MESSAGE,       "GSM, message" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_GSM_IE,            "GSM, information element(s)" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_UMTS_GPRS_IE,      "UMTS/GPRS, information element(s)" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_UMTS_GPRS_MESSAGE, "UMTS/GPRS, messages" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_LRMS,              "LRMS" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_RLL_AP,            "RLL Access Profile" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_WRS,               "WRS" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_DECT_ISDN_C_PLANE, "DECT/ISDN Intermediate System C-plane specific" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_DECT_ISDN_U_PLANE, "DECT/ISDN Intermediate System U-plane specific" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_DECT_ISDN_OPER,    "DECT/ISDN Intermediate System Operation and Maintenance" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_TERMINAL_DATA,     "Terminal Data" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_DECT_IP,           "DECT access to IP Networks specific" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_MPEG4,             "MPEG-4 ER AAC-LD Configuration Description" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_UNKNOWN,           "Unknown" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_iwu_to_iwu_discriminator_type_val[] = {
	{ DECT_NWK_S_IE_IWU_TO_IWU_DISCRIMINATOR_TYPE_UNSPECIFIED, "Unspecified" },
	{ DECT_NWK_S_IE_IWU_TO_IWU_DISCRIMINATOR_TYPE_EMC,         "EMC" },
	{ 0, NULL }
};

/* Section 7.7.25 */
static const value_string dect_nwk_s_ie_location_area_eli_type_val[] = {
	{ DECT_NWK_S_IE_LOCATION_AREA_ELI_TYPE_LI_REQ_NOT_INCLUDED, "Location information is requested and not included" },
	{ DECT_NWK_S_IE_LOCATION_AREA_ELI_TYPE_LI,                  "Location information" },
	{ 0, NULL }
};

/* Section 7.7.28 */
static const value_string dect_nwk_s_ie_nwk_assigned_identity_type_val[] = {
	{ DECT_NWK_S_IE_NWK_ASSIGNED_IDENTITY_TMSI,        "Temporary Mobile Subscriber Identity (TMSI, P-TMSI)" },
	{ DECT_NWK_S_IE_NWK_ASSIGNED_IDENTITY_PROPRIETARY, "Proprietary (application specific)" },
	{ 0, NULL }
};

/* Section 7.7.30 */
static const value_string dect_nwk_s_ie_portable_identity_type_val[] = {
	{ DECT_NWK_S_IE_PORTABLE_IDENTITY_IPUI, "International Portable User Identity (IPUI)" },
	{ DECT_NWK_S_IE_PORTABLE_IDENTITY_IPEI, "International Portable Equipment Identity (IPEI)" },
	{ DECT_NWK_S_IE_PORTABLE_IDENTITY_TPUI, "Temporary Portable User Identity (TPUI)" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_portable_identity_tpui_assignment_type_val[] = {
	{ DECT_NWK_S_IE_PORTABLE_IDENTITY_TPUI_ASSIGNMENT_TYPE_TPUI,                      "TPUI" },
	{ DECT_NWK_S_IE_PORTABLE_IDENTITY_TPUI_ASSIGNMENT_TYPE_TPUI_WITH_NUMBER_ASSIGNED, "TPUI with number assigned" },
	{ 0, NULL }
};

/* Section 6.2 in ETSI EN 300 175-6 */
static const value_string dect_nwk_ipui_type_val[] = {
	{ DECT_NWK_IPUI_TYPE_N, "N (residential/default)" },
	{ DECT_NWK_IPUI_TYPE_O, "O (private)" },
	{ DECT_NWK_IPUI_TYPE_P, "P (public/public access service)" },
	{ DECT_NWK_IPUI_TYPE_Q, "Q (public/general)" },
	{ DECT_NWK_IPUI_TYPE_R, "R (public/IMSI)" },
	{ DECT_NWK_IPUI_TYPE_S, "S (PSTN/ISDN)" },
	{ DECT_NWK_IPUI_TYPE_T, "T (private extended)" },
	{ DECT_NWK_IPUI_TYPE_U, "U (public/general)" },
	{ 0, NULL }
};

/* Section 7.7.41 */
static const value_string dect_nwk_s_ie_terminal_capability_tone_capabilites_val[] = {
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_TONE_CAPABILITY_NA,                            "Not applicable" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_TONE_CAPABILITY_NO_TONE_CAPABILITY,            "No tone capability" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_TONE_CAPABILITY_DIAL_TONE_ONLY,                "Dial tone only" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_TONE_CAPABILITY_E182_TONES_SUPPORTED,          "Recommendation ITU-T E.182 tones supported" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_TONE_CAPABILITY_COMPLETE_DECT_TONES_SUPPORTED, "Complete DECT tones supported" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_terminal_capability_display_capabilities_val[] = {
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_DISPLAY_CAPABILITY_NA,           "Not applicable" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_DISPLAY_CAPABILITY_NO_DISPLAY,   "No Display" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_DISPLAY_CAPABILITY_NUMERIC,      "Numeric" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_DISPLAY_CAPABILITY_NUMERIC_PLUS, "Numeric-plus" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_DISPLAY_CAPABILITY_ALPHANUMERIC, "Alphanumeric" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_DISPLAY_CAPABILITY_FULL_DISPLAY, "Full display" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_terminal_capability_echo_parameters_val[] = {
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_ECHO_PARAMETER_NA,                   "Not applicable" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_ECHO_PARAMETER_MINIMUM_TCLW,         "Minimum TCLw" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_ECHO_PARAMETER_TCLW_FULL,            "TCLw > 46 dB (Full TCLw)" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_ECHO_PARAMETER_TCLW_VOIP_COMPATIBLE, "TCLw > 55 dB (VoIP compatible TCLw)" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_terminal_capability_n_rej_capabilities_val[] = {
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_N_REJ_NA,       "Not applicable" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_N_REJ_NO,       "No noise rejection" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_N_REJ_PROVIDED, "Noise rejection" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_terminal_capability_a_vol_capabilities_val[] = {
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_A_VOL_NA,            "Not applicable" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_A_VOL_NO_PP_A_VOL,   "No PP adaptive volume control" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_A_VOL_PP_A_VOL_USED, "PP adaptive volume control used" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_terminal_capability_scrolling_behaviour_type_val[] = {
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_SCROLLING_BEHAVIOUR_NOT_SPECIFIED, "Not specified" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_SCROLLING_BEHAVIOUR_TYPE_1,        "Type 1"},
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_SCROLLING_BEHAVIOUR_TYPE_2,        "Type 2"},
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_terminal_capability_profile_indicator_8_packet_data_categories_val[] = {
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_PACKET_DATA_NO,          "No packet data supported or non categorized system" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_PACKET_DATA_CAT_1,       "Cat 1 (low-end data devices)" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_PACKET_DATA_CAT_2,       "Cat 2 (mid-end data devices)" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_PACKET_DATA_CAT_3,       "Cat 3 (high-end data devices)" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_PACKET_DATA_CAT_4_8PSK,  "Cat 4 (high-level modulation up to 8PSK)" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_PACKET_DATA_CAT_4_64QAM, "Cat 4 (high-level modulation up to 64QAM" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_terminal_capability_profile_indicator_9_dect_ule_versions_val[] = {
	{ DECT_NWK_S_IE_TERMINA_CAPABILITY_PROFILE_INDICATOR_9_DECT_ULE_1_V111, "Phase 1 version v1.1.1" },
	{ DECT_NWK_S_IE_TERMINA_CAPABILITY_PROFILE_INDICATOR_9_DECT_ULE_1_V121, "Phase 1 version v1.2.1" },
	{ DECT_NWK_S_IE_TERMINA_CAPABILITY_PROFILE_INDICATOR_9_DECT_ULE_2,      "Phase 2" },
	{ DECT_NWK_S_IE_TERMINA_CAPABILITY_PROFILE_INDICATOR_9_DECT_ULE_3,      "Phase 3" },
	{ 0, NULL }
};

static const value_string  dect_nwk_s_ie_terminal_capability_control_codes_val[] =  {
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_CONTROL_CODES_NOT_SPECIFIED, "Not specified" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_CONTROL_CODES_0CH,           "0CH (clear display)" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_CONTROL_CODES_CODING_001,    "Coding 001 plus 0x08 to 0x0B and 0x0D" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_CONTROL_CODES_CODING_010,    "Coding 010 plus 0x02, 0x03, 0x06, 0x07, 0x19, 0x1A" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_CONTROL_CODES_CODING_011,    "Coding 011 plus 0x0E, 0x0F" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_terminal_capability_blind_slot_indication_val[] = {
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_BLIND_SLOT_INDICATION_NO,                            "No blind slots" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_BLIND_SLOT_INDICATION_NOT_POSSIBLE_ADJACENT,         "Setup is not possible on both slots adjacent to an active slot" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_BLIND_SLOT_INDICATION_NOT_POSSIBLE_EVERY_SECOND,     "Setup is not possible on every second slot" },
	{ DECT_NWK_S_IE_TERMINAL_CAPABILITY_BLIND_SLOT_INDICATION_LIMITATIONS_IN_FOLLOWING_BITS, "Limitations indicated in the following bits" },
	{ 0, NULL }
};

/* Section 7.7.45 */
static const value_string dect_nwk_s_ie_escape_to_proprietary_discriminator_type_val[] = {
	{ DECT_NWK_S_IE_ESCAPE_TO_PROPRIETARY_DISCRIMINATOR_TYPE_UNSPECIFIED, "Unspecified" },
	{ DECT_NWK_S_IE_ESCAPE_TO_PROPRIETARY_DISCRIMINATOR_TYPE_EMC,         "EMC" },
	{ 0, NULL }
};

static const true_false_string tfs_last_more = {
	"Last",
	"More"
};

/* Section 7.7.54 */
static const value_string dect_nwk_s_ie_codec_list_negotiation_indicator_type_val[] = {
	{ DECT_NWK_S_IE_CODEC_LIST_NEGOTIATION_INDICATOR_NOT_POSSIBLE,      "Negotiation not possible" },
	{ DECT_NWK_S_IE_CODEC_LIST_NEGOTIATION_INDICATOR_CODEC_NEGOTIATION, "Codec negotiation" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_codec_list_codec_identifier_type_val[] = {
	{ DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_USER_32,      "user specific, 32 kbit/s" },
	{ DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_G726_32,      "G.726 ADPCM, 32 kbit/s" },
	{ DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_G722_64,      "G.722, 64 kbit/s" },
	{ DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_G711_ALAW_64, "G.711 alaw, 64 kbit/s" },
	{ DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_G711_ULAW_64, "G.711 ulaw, 64 kbit/s" },
	{ DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_G729_1_32,    "G.729.1, 32 kbit/s" },
	{ DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_MPEG4_32,     "MPEG-4 ER AAC-LD, 32 kbit/s" },
	{ DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_MPEG4_64,     "MPEG-4 ER AAC-LD, 64 kbit/s" },
	{ DECT_NWK_S_IE_CODEC_LIST_CODEC_IDENTIFIER_USER_64,      "user specific, 64 kbit/s" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_codec_list_mac_and_dlc_service_type_val[] = {
	{ DECT_NWK_S_IE_CODEC_LIST_MAC_AND_DLC_SERVICE_LU1_INA,  "DLC service LU1, MAC service INA" },
	{ DECT_NWK_S_IE_CODEC_LIST_MAC_AND_DLC_SERVICE_LU1_INB,  "DLC service LU1, MAC service INB" },
	{ DECT_NWK_S_IE_CODEC_LIST_MAC_AND_DLC_SERVICE_LU1_IPM,  "DLC service LU1, MAC service IPM" },
	{ DECT_NWK_S_IE_CODEC_LIST_MAC_AND_DLC_SERVICE_LU1_IPQ,  "DLC service LU1, MAC service IPQ" },
	{ DECT_NWK_S_IE_CODEC_LIST_MAC_AND_DLC_SERVICE_LU7_INB,  "DLC service LU7, MAC service INB" },
	{ DECT_NWK_S_IE_CODEC_LIST_MAC_AND_DLC_SERVICE_LU12_INB, "DLC service LU12, MAC service INB" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_codec_list_c_plane_routing_type_val[] = {
	{ DECT_NWK_S_IE_CODEC_LIST_C_PLANE_ROUTING_CS_ONLY,                  "CS only" },
	{ DECT_NWK_S_IE_CODEC_LIST_C_PLANE_ROUTING_CS_PREFERRED_CF_ACCEPTED, "CS preferred / CF accepted" },
	{ DECT_NWK_S_IE_CODEC_LIST_C_PLANE_ROUTING_CF_PREFERRED_CS_ACCEPTED, "CF preferred / CS accepted" },
	{ DECT_NWK_S_IE_CODEC_LIST_C_PLANE_ROUTING_CF_ONLY,                  "CF only" },
	{ 0, NULL }
};

static const value_string dect_nwk_s_ie_codec_list_slot_size_type_val[] = {
	{ DECT_NWK_S_IE_CODEC_LIST_SLOT_SIZE_HALF,     "Half slot; j = 0" },
	{ DECT_NWK_S_IE_CODEC_LIST_SLOT_SIZE_LONG_640, "Long slot; j = 640" },
	{ DECT_NWK_S_IE_CODEC_LIST_SLOT_SIZE_LONG_672, "Long slot; j = 672" },
	{ DECT_NWK_S_IE_CODEC_LIST_SLOT_SIZE_FULL,     "Full slot" },
	{ DECT_NWK_S_IE_CODEC_LIST_SLOT_SIZE_DOUBLE,   "Double slot" },
	{ 0, NULL }
};

/* Annex D.2.2 */
static const value_string dect_charset_control_codes_val[] = {
	{ DECT_CHARSET_CANCEL_DTMF_TONE,                          "Null/cancel DTMF tone" },
	{ DECT_CHARSET_RETURN_HOME,                               "Return home" },
	{ DECT_CHARSET_RETURN_END,                                "Return end" },
	{ DECT_CHARSET_DIALLING_PAUSE,                            "Dialling pause" },
	{ DECT_CHARSET_MOVE_FORWARD_TO_NEXT_COLUMN_TAB_POSITION,  "Move forward to next column tab position" },
	{ DECT_CHARSET_MOVE_BACKWARD_TO_NEXT_COLUMN_TAB_POSITION, "Move backward to next column tab position" },
	{ DECT_CHARSET_MOVE_BACKWARD_ONE_COLUMN,                  "Move backward one column" },
	{ DECT_CHARSET_MOVE_FORWARD_ONE_COLUMN,                   "Move forward one column" },
	{ DECT_CHARSET_MOVE_DOWN_ONE_ROW,                         "Move down one row" },
	{ DECT_CHARSET_MOVE_UP_ONE_ROW,                           "Move up one row" },
	{ DECT_CHARSET_CLEAR_DISPLAY,                             "Clear display (and return home)" },
	{ DECT_CHARSET_RETURN_TO_START_OF_CURRENT_ROW,            "Return (to start of current row)" },
	{ DECT_CHARSET_FLASH_OFF,                                 "Flash off (see note 2)" },
	{ DECT_CHARSET_FLASH_ON,                                  "Flash on (see note 2)" },
	{ DECT_CHARSET_XON,                                       "XON (resume transmission)" },
	{ DECT_CHARSET_GO_TO_PULSE_DIALLING,                      "Go to pulse dialling" },
	{ DECT_CHARSET_XOFF,                                      "XOFF (stop transmission)" },
	{ DECT_CHARSET_GO_TO_DTMF_DIALLING_DEFINED_TONE_LENGTH,   "Go to DTMF dialling; defined tone length" },
	{ DECT_CHARSET_REGISTER_RECALL,                           "Register recall" },
	{ DECT_CHARSET_GO_TO_DTMF_DIALLING_INFINITE_TONE_LENGTH,  "Go to DTMF dialling; infinite tone length" },
	{ DECT_CHARSET_INTERNAL_CALL,                             "Internal call" },
	{ DECT_CHARSET_SERVICE_CALL,                              "Service call" },
	{ DECT_CHARSET_CLEAR_TO_END_OF_DISPLAY,                   "Clear to end of display" },
	{ DECT_CHARSET_CLEAR_TO_END_OF_LINE,                      "Clear to end of line" },
	{ DECT_CHARSET_ESC,                                       "ESC. ESCape in the IA5 sense" },
	{ DECT_CHARSET_SUPPLEMENTARY_SERVICE,                     "Supplementary service" },
	{ 0, NULL }
};

/* TOOD: value_string for other protocols */

/* Encoding table for BCD string. */
/* TODO: Remove this when tvb_bcd_dig_to_str_be allows removing of last half byte */
static const dgt_set_t Dgt0_9_bcd = {
	{
		/*  0   1   2   3   4   5   6   7   8   9   a   b   c   d   e  f */
		   '0','1','2','3','4','5','6','7','8','9','?','?','?','?','?','?'
	}
};

#define DECT_NWK_S_IE_OCTET_GROUP_EXTENSION_MASK 0x80
#define DECT_NWK_S_IE_OCTET_GROUP_EXTENSION_SHIFT 7

#define DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_MASK 0x7F

#define DECT_NWK_S_IE_FIXED_LENGTH_MASK  0x80
#define DECT_NWK_S_IE_FIXED_LENGTH_SHIFT 7

#define DECT_NWK_S_IE_FL_TYPE_MASK 0x70
#define DECT_NWK_S_IE_FL_TYPE_SHIFT 4
#define DECT_NWK_S_IE_FL_DOUBLE_OCTET_TYPE_MASK 0x0F

#define DECT_NWK_S_IE_AUTH_TYPE_DEF_MASK 0x40
#define DECT_NWK_S_IE_AUTH_TYPE_DEF_SHIFT 6

#define DECT_NWK_S_IE_PORTABLE_IDENTITY_TYPE_MASK 0x7F
#define DECT_NWK_S_IE_PORTABLE_IDENTITY_IPUI_TYPE_MASK 0xF0
#define DECT_NWK_S_IE_PORTABLE_IDENTITY_IPUI_TYPE_SHIFT 4

#define DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_MASK 0x3F
#define DECT_NWK_S_IE_IWU_TO_IWU_DISCRIMINATOR_TYPE_MASK 0x7F

#define DECT_NWK_S_IE_LOCATION_AREA_LI_EXTENDED_INCLUDED_MASK 0x80
#define DECT_NWK_S_IE_LOCATION_AREA_LI_EXTENDED_INCLUDED_SHIFT 7
#define DECT_NWK_S_IE_LOCATION_AREA_ELI_TYPE_MASK 0xF0
#define DECT_NWK_S_IE_LOCATION_AREA_ELI_TYPE_SHIFT 4

#define DECT_NWK_S_IE_TERMINAL_CAPABILITY_STORED_DISPLAY_CHARACTERS_MASK 0x7F

#define DECT_NWK_S_IE_ESCAPE_TO_PROPRIETARY_DISCRIMINATOR_TYPE_MASK 0x7F

#define DECT_NWK_S_IE_CODEC_LIST_LAST_CODEC_MASK 0x80
#define DECT_NWK_S_IE_CODEC_LIST_LAST_CODEC_SHIFT 7

/*********************************************************************************
 * DECT dissector code
 *********************************************************************************/

static proto_item* add_dect_nwk_dect_charset_tree_item(proto_tree *tree, packet_info *pinfo, int hfindex, tvbuff_t *tvb, gint start, gint length)
{
	const gchar *keypad_string, *current_char_ptr;
	guint8 current_char_position;
	gunichar current_char;
	wmem_strbuf_t *keypad_information;

	keypad_string = tvb_get_string_enc(pinfo->pool, tvb, start, length, ENC_DECT_STANDARD_8BITS);
	current_char_ptr = keypad_string;

	keypad_information = wmem_strbuf_new_sized(pinfo->pool, length);
	for ( current_char_position = 0; current_char_position < length; current_char_position++ ) {
		current_char = g_utf8_get_char(current_char_ptr);
		if ( current_char < 0x20 ) {
			wmem_strbuf_append_printf(keypad_information, "<<%s>>", val_to_str(current_char, dect_charset_control_codes_val, "0x%02x"));
		} else {
			wmem_strbuf_append_unichar(keypad_information, current_char);
		}
		current_char_ptr = g_utf8_next_char(current_char_ptr);
	}

	return proto_tree_add_string_format_value(tree, hfindex, tvb, start, length, keypad_string ,"%s", wmem_strbuf_get_str(keypad_information));
}

static int dissect_dect_nwk_s_ie_auth_type(tvbuff_t *tvb, guint offset, proto_tree *tree, void _U_ *data)
{
	guint8 authentication_algorithm;
	gboolean def;

	proto_tree_add_item(tree, hf_dect_nwk_s_ie_auth_type_authentication_algorithm, tvb, offset, 1, ENC_NA);
	authentication_algorithm = tvb_get_guint8(tvb, offset);
	offset++;
	if ( authentication_algorithm == DECT_NWK_S_IE_AUTH_TYPE_AUTHENTICATION_ALGORITHM_PROPRIETARY ) {
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_auth_type_proprietary_algorithm, tvb, offset, 1, ENC_NA);
		offset++;
	}
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_auth_type_ak_type, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_auth_type_ak_number, tvb, offset, 1, ENC_NA);
	offset++;
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_auth_type_inc, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_auth_type_def, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_auth_type_txc, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_auth_type_upc, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_auth_type_cipher_key_number, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_auth_type_cipher_key_number_related, tvb, offset, 1, ENC_NA);
	def = ( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_AUTH_TYPE_DEF_MASK ) >> DECT_NWK_S_IE_AUTH_TYPE_DEF_SHIFT;
	offset++;
	if( def ) {
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_auth_type_default_cipher_key_index, tvb, offset, 2, ENC_NA);
		offset += 2;
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_auth_type_default_cipher_key_algorithm, tvb, offset, 1, ENC_NA);
		offset++;
	}
	return offset;
}

static int dissect_dect_nwk_s_ie_calling_party_number(tvbuff_t *tvb, guint offset, guint8 ie_length, proto_tree *tree, void _U_ *data)
{
	gboolean octet_group_extension;
	guint8 address_length;
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_octet_group_extension, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_calling_party_number_type, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_calling_party_number_numbering_plan, tvb, offset, 1, ENC_NA);
	octet_group_extension = ( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_OCTET_GROUP_EXTENSION_MASK ) >> DECT_NWK_S_IE_OCTET_GROUP_EXTENSION_SHIFT;
	offset++;
	if ( !octet_group_extension ) {
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_octet_group_extension, tvb, offset, 1, ENC_NA);
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_calling_party_number_presentation, tvb, offset, 1, ENC_NA);
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_calling_party_number_screening, tvb, offset, 1, ENC_NA);
		offset++;
		address_length = ie_length - 2;
	} else {
		address_length = ie_length - 1;
	}
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_calling_party_number_address, tvb, offset, address_length, ENC_DECT_STANDARD_8BITS);
	return offset + address_length;
}

static int dissect_dect_nwk_s_ie_cipher_info(tvbuff_t *tvb, guint offset, proto_tree *tree, void _U_ *data)
{
	guint8 algorithm;
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_cipher_info_yn, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_cipher_info_algorithm, tvb, offset, 1, ENC_NA);
	algorithm = tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_MASK;
	offset++;
	if (algorithm == DECT_NWK_S_IE_CIPHER_INFO_ALGORITHM_PROPRIETARY) {
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_cipher_info_proprietary_algorithm, tvb, offset, 1, ENC_NA);
		offset++;
	}
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_cipher_info_key_type, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_cipher_info_key_number, tvb, offset, 1, ENC_NA);
	offset++;
	return offset;
}

static int dissect_dect_nwk_s_ie_duration(tvbuff_t *tvb, guint offset, guint8 _U_ ie_length, packet_info _U_ *pinfo, proto_tree *tree, void _U_ *data) {
	gboolean octet_group_extension;

	proto_tree_add_item(tree, hf_dect_nwk_s_ie_octet_group_extension, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_duration_lock_limits, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_duration_time_limits, tvb, offset, 1, ENC_NA);
	octet_group_extension = ( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_OCTET_GROUP_EXTENSION_MASK ) >> DECT_NWK_S_IE_OCTET_GROUP_EXTENSION_SHIFT;
	offset++;

	if ( !octet_group_extension ) {
		/* Octet 3a does not have an group extension indicator, it is solely defined by the one in octet 3 */
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_duration_time_duration, tvb, offset, 1, ENC_NA);
		offset++;
	}

	return offset;
}

static int dissect_dect_nwk_s_ie_fixed_identity(tvbuff_t *tvb, guint offset, proto_tree *tree, void _U_ *data)
{
	guint8 value_length;
	guint bit_offset, no_of_bits;
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_fixed_identity_type, tvb, offset, 1, ENC_NA);
	offset++;
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_fixed_identity_value_length, tvb, offset, 1, ENC_NA);
	value_length = tvb_get_guint8(tvb, offset) & 0x7F;
	offset++;
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_fixed_identity_arc, tvb, offset, 1, ENC_NA);
	bit_offset = ( offset * 8 ) + 4;
	no_of_bits = value_length - 4;
	proto_tree_add_bits_item(tree, hf_dect_nwk_s_ie_fixed_identity_ard, tvb, bit_offset, no_of_bits, ENC_NA);
	bit_offset += no_of_bits;
	offset += value_length / 8;
	if (value_length % 8) {
		no_of_bits = 8 - (value_length % 8);
		proto_tree_add_bits_item(tree, hf_dect_nwk_s_ie_fixed_identity_padding, tvb, bit_offset, no_of_bits, ENC_NA);
		offset++;
	}
	return offset;
}

static int dissect_dect_nwk_s_ie_iwu_to_iwu(tvbuff_t *tvb, guint offset, guint8 ie_length, packet_info _U_ *pinfo, proto_tree *tree, void _U_ *data) {
	guint8 protocol_discriminator, discriminator_type, remaining_length;

	proto_tree_add_item(tree, hf_dect_nwk_s_ie_iwu_to_iwu_sr, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_iwu_to_iwu_protocol_discriminator, tvb, offset, 1, ENC_NA);
	protocol_discriminator = tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_MASK;
	offset++;
	remaining_length = ie_length -1;

	proto_tree_add_item(tree, hf_dect_nwk_s_ie_iwu_to_iwu_information, tvb, offset, remaining_length, ENC_NA);
	if ( protocol_discriminator == DECT_NWK_S_IE_IWU_TO_IWU_PROTOCOL_DISCRIMINATOR_USER_SPECIFIC ) {
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_iwu_to_iwu_discriminator_type, tvb, offset, 1, ENC_NA);
		discriminator_type = tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_IWU_TO_IWU_DISCRIMINATOR_TYPE_MASK;
		offset++;
		remaining_length--;

		proto_tree_add_item(tree, hf_dect_nwk_s_ie_iwu_to_iwu_user_specific_contents, tvb, offset, remaining_length, ENC_NA);
		if ( discriminator_type == DECT_NWK_S_IE_IWU_TO_IWU_DISCRIMINATOR_TYPE_EMC ) {
			proto_tree_add_item(tree, hf_dect_nwk_s_ie_iwu_to_iwu_emc_discriminator, tvb, offset, 2, ENC_NA);
			offset += 2;
			remaining_length -= 2;
			proto_tree_add_item(tree, hf_dect_nwk_s_ie_iwu_to_iwu_proprietary_contents, tvb, offset, remaining_length, ENC_NA);
		}
	}

	return offset + remaining_length;
}

static int dissect_dect_nwk_s_ie_location_area(tvbuff_t *tvb, guint offset, packet_info *pinfo, proto_tree *tree, void _U_ *data)
{
	guint8 eli_type;
	gboolean li_extended_included;
	proto_tree *li_type_tree;
	proto_item *li_type_item;

	li_type_item = proto_tree_add_item(tree, hf_dect_nwk_s_ie_location_area_li_type, tvb, offset, 1, ENC_NA);
	li_type_tree = proto_item_add_subtree(li_type_item, ett_dect_nwk_s_ie_location_area_li_type);
	proto_tree_add_item(li_type_tree, hf_dect_nwk_s_ie_location_area_li_extended_included, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(li_type_tree, hf_dect_nwk_s_ie_location_area_la_level_included, tvb, offset, 1, ENC_NA);
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_location_area_la_level, tvb, offset, 1, ENC_NA);
	li_extended_included = ( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_LOCATION_AREA_LI_EXTENDED_INCLUDED_MASK ) >> DECT_NWK_S_IE_LOCATION_AREA_LI_EXTENDED_INCLUDED_SHIFT;
	offset++;

	if ( li_extended_included ) {
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_location_area_eli_type, tvb, offset, 1, ENC_NA);
		eli_type = ( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_LOCATION_AREA_ELI_TYPE_MASK ) >> DECT_NWK_S_IE_LOCATION_AREA_ELI_TYPE_SHIFT;
		offset++;
		if ( eli_type == DECT_NWK_S_IE_LOCATION_AREA_ELI_TYPE_LI ) {
			offset = dissect_e212_mcc_mnc(tvb, pinfo, tree, offset, E212_NONE, FALSE);
			proto_tree_add_item(tree, hf_dect_nwk_s_ie_location_area_lac, tvb, offset, 2, ENC_NA);
			offset += 2;
			proto_tree_add_item(tree, hf_dect_nwk_s_ie_location_area_ci, tvb, offset, 2, ENC_NA);
			offset += 2;
		}
	}
	return offset;
}

static int dissect_dect_nwk_s_ie_nwk_assigned_identity(tvbuff_t *tvb, guint offset, proto_tree *tree, void _U_ *data)
{
	guint8 value_length;
	guint bit_offset, no_of_bits;
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_nwk_assigned_identity_type, tvb, offset, 1, ENC_NA);
	offset++;
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_nwk_assigned_identity_value_length, tvb, offset, 1, ENC_NA);
	value_length = tvb_get_guint8(tvb, offset) & 0x7F;
	offset++;
	bit_offset = offset * 8;
	proto_tree_add_bits_item(tree, hf_dect_nwk_s_ie_nwk_assigned_identity_value, tvb, bit_offset, value_length, ENC_NA);
	bit_offset += value_length;
	offset += value_length / 8;
	if (value_length % 8) {
		no_of_bits = 8 - (value_length % 8);
		proto_tree_add_bits_item(tree, hf_dect_nwk_s_ie_nwk_assigned_identity_padding, tvb, bit_offset, no_of_bits, ENC_NA);
		offset++;
	}
	return offset;
}

static int dissect_dect_nwk_s_ie_multi_display(tvbuff_t *tvb, guint offset, guint8 ie_length, packet_info _U_ *pinfo, proto_tree *tree, void _U_ *data)
{
	add_dect_nwk_dect_charset_tree_item(tree, pinfo, hf_dect_nwk_s_ie_multi_display_information, tvb, offset, ie_length);
	offset += ie_length;

	return offset;
}

static int dissect_dect_nwk_s_ie_multi_keypad(tvbuff_t *tvb, guint offset, guint8 ie_length, packet_info _U_ *pinfo, proto_tree *tree, void _U_ *data)
{
	add_dect_nwk_dect_charset_tree_item(tree, pinfo, hf_dect_nwk_s_ie_multi_keypad_information, tvb, offset, ie_length);
	offset += ie_length;

	return offset;
}

static int dissect_dect_nwk_s_ie_portable_identity(tvbuff_t *tvb, guint offset, packet_info *pinfo, proto_tree *tree, void _U_ *data)
{
	guint8 value_length, identity_type, ipui_type;
	guint bit_offset, no_of_bits, overflow_bits_in_last_byte, no_of_bytes;
	gboolean bcd_last_byte_odd;
	char* bcd_string;
	identity_type = tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_PORTABLE_IDENTITY_TYPE_MASK;
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_portable_identity_type, tvb, offset, 1, ENC_NA);
	offset++;
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_portable_identity_value_length, tvb, offset, 1, ENC_NA);
	value_length = tvb_get_guint8(tvb, offset) & 0x7F;
	overflow_bits_in_last_byte = value_length % 8;
	if (overflow_bits_in_last_byte) {
		no_of_bytes = value_length / 8 + 1;
		bcd_last_byte_odd = true;
	} else {
		no_of_bytes = value_length / 8;
		bcd_last_byte_odd = false;
	}
	offset++;
	bit_offset = ( offset * 8 ) + 4;
	switch(identity_type) {
		case DECT_NWK_S_IE_PORTABLE_IDENTITY_IPUI:
			ipui_type = ( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_PORTABLE_IDENTITY_IPUI_TYPE_MASK ) >> DECT_NWK_S_IE_PORTABLE_IDENTITY_IPUI_TYPE_SHIFT;
			proto_tree_add_item(tree, hf_dect_nwk_s_ie_portable_identity_put, tvb, offset, 1, ENC_NA);
			no_of_bits = value_length - 4;
			switch(ipui_type) {
				case DECT_NWK_IPUI_TYPE_N:
					proto_tree_add_bits_item(tree, hf_dect_nwk_s_ie_portable_identity_ipei, tvb, bit_offset, no_of_bits, ENC_NA);
					break;
				case DECT_NWK_IPUI_TYPE_O:
					proto_tree_add_bits_item(tree, hf_dect_nwk_s_ie_portable_identity_ipui_o_number, tvb, bit_offset, no_of_bits, ENC_NA);
					break;
				case DECT_NWK_IPUI_TYPE_P:
					proto_tree_add_bits_item(tree, hf_dect_nwk_s_ie_portable_identity_ipui_p_poc, tvb, bit_offset, 16, ENC_BIG_ENDIAN);
					proto_tree_add_bits_item(tree, hf_dect_nwk_s_ie_portable_identity_ipui_p_acc, tvb, bit_offset + 16, no_of_bits - 16, ENC_BIG_ENDIAN);
					break;
				case DECT_NWK_IPUI_TYPE_Q:
					bcd_string = tvb_get_bcd_string(pinfo->pool, tvb, offset, no_of_bytes, &Dgt0_9_bcd, true, bcd_last_byte_odd, true);
					proto_tree_add_string(tree, hf_dect_nwk_s_ie_portable_identity_ipui_q_bacn, tvb, offset, no_of_bytes, bcd_string);
					break;
				case DECT_NWK_IPUI_TYPE_R:
					bcd_string = tvb_get_bcd_string(pinfo->pool, tvb, offset, no_of_bytes, &Dgt0_9_bcd, true, bcd_last_byte_odd, true);
					proto_tree_add_string(tree, hf_dect_nwk_s_ie_portable_identity_ipui_r_imsi, tvb, offset, no_of_bytes, bcd_string);
					break;
				case DECT_NWK_IPUI_TYPE_S:
					bcd_string = tvb_get_bcd_string(pinfo->pool, tvb, offset, no_of_bytes, &Dgt0_9_bcd, true, bcd_last_byte_odd, true);
					proto_tree_add_string(tree, hf_dect_nwk_s_ie_portable_identity_ipui_s_number, tvb, offset, no_of_bytes, bcd_string);
					break;
				case DECT_NWK_IPUI_TYPE_T:
					proto_tree_add_bits_item(tree, hf_dect_nwk_s_ie_portable_identity_ipui_t_eic, tvb, bit_offset, 16, ENC_BIG_ENDIAN);
					bcd_string = tvb_get_bcd_string(pinfo->pool, tvb, offset + 2, no_of_bytes - 2, &Dgt0_9_bcd, true, bcd_last_byte_odd, true);
					proto_tree_add_string(tree, hf_dect_nwk_s_ie_portable_identity_ipui_t_number, tvb, offset + 2, no_of_bytes - 2, bcd_string);
					break;
				case DECT_NWK_IPUI_TYPE_U:
					bcd_string = tvb_get_bcd_string(pinfo->pool, tvb, offset, no_of_bytes, &Dgt0_9_bcd, true, bcd_last_byte_odd, true);
					proto_tree_add_string(tree, hf_dect_nwk_s_ie_portable_identity_ipui_u_cacn, tvb, offset, no_of_bytes, bcd_string);
					break;
			}

			bit_offset += no_of_bits;
			offset += value_length / 8;
			if (overflow_bits_in_last_byte) {
				no_of_bits = 8 - overflow_bits_in_last_byte;
				proto_tree_add_bits_item(tree, hf_dect_nwk_s_ie_portable_identity_padding, tvb, bit_offset, no_of_bits, ENC_NA);
				offset++;
			}
			break;
		case DECT_NWK_S_IE_PORTABLE_IDENTITY_IPEI:
			no_of_bits = value_length - 4;
			proto_tree_add_bits_item(tree, hf_dect_nwk_s_ie_portable_identity_ipei, tvb, bit_offset, no_of_bits, ENC_NA);
			offset += 5;
			break;
		case DECT_NWK_S_IE_PORTABLE_IDENTITY_TPUI:
			no_of_bits = value_length;
			proto_tree_add_item(tree, hf_dect_nwk_s_ie_portable_identity_tpui_assignment_type, tvb, offset, 1, ENC_NA);
			proto_tree_add_bits_item(tree, hf_dect_nwk_s_ie_portable_identity_tpui_value, tvb, bit_offset, no_of_bits, ENC_NA);
			offset += 3;
			break;
	}
	return offset;
}

static int dissect_dect_nwk_s_ie_terminal_capability(tvbuff_t *tvb, guint offset, guint8 ie_length, packet_info _U_ *pinfo, proto_tree *tree, void _U_ *data)
{
	gboolean octet_group_extension;
	guint octet_identifier, next_element_offset;
	guint16 stored_display_characters = 0;

	static int* const slot_type_flags[] = {
		&hf_dect_nwk_s_ie_terminal_capability_slot_type_double,
		&hf_dect_nwk_s_ie_terminal_capability_slot_type_full,
		&hf_dect_nwk_s_ie_terminal_capability_slot_type_long_672,
		&hf_dect_nwk_s_ie_terminal_capability_slot_type_long_640,
		&hf_dect_nwk_s_ie_terminal_capability_slot_type_half_80,
		NULL
	};

	static int* const profile_indicator_1_flags [] = {
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_cap,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_gap,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_dect_gsm,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_isdn,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_lrms,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_dprs_stream,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_dprs_asymmetric,
		NULL
	};

	static int* const profile_indicator_2_flags [] = {
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_dprs_class_2,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_data_services,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_isdn,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_dect_umts_bearer,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_dect_umts_sms,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_dect_umts_facsimile,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_rap,
		NULL
	};

	static int* const profile_indicator_3_flags[] = {
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_dect_gsm,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_wrs,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_sms,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_dmap,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_cta,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_ethernet,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_token_ring,
		NULL
	};

	static int* const profile_indicator_4_flags[] = {
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_ip,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_ppp,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_v24,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_cf,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_ipq,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_rap_2,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_dprs,
		NULL
	};

	static int* const profile_indicator_5_flags[] = {
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_2bz,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_4bz,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_8bz,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_16bz,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_2a,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_4a,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_8a,
		NULL
	};

	static int* const profile_indicator_6_flags[] = {
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_dect_umts,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_dect_umts_gprs,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_odap,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_f_mms,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_gf,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_fast_hopping,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_no_emission,
		NULL
	};

	static int* const profile_indicator_7_flags[] = {
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_mod64,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_ng_dect_1,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_ng_dect_3,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_headset_management,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_re_keying,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_associated_melody,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_ng_dect_5,
		NULL
	};

	static int* const profile_indicator_8_flags[] = {
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8_mux_e_u,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8_channel_ipf,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8_channel_sipf,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8_packet_data_category,
		NULL
	};

	static int* const profile_indicator_9_flags[] = {
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9_dprs_3,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9_dprs_4,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9_dect_ule,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9_light_data,
		NULL
	};

	static int* const profile_indicator_10_flags[] = {
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_date_time_recovery,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_extended_list_change,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_screening,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_wrs_2,
		&hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_wrs_ule,
		NULL
	};

	static int* const escape_to_char_sets_1_flags[] = {
		&hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1_latin_no1,
		&hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1_latin_no9,
		&hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1_latin_no5,
		&hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1_greek,
		NULL
	};

	static int* const blind_slot_6_flags[] = {
		&hf_dect_nwk_s_ie_terminal_capability_blind_slot_indication,
		&hf_dect_nwk_s_ie_terminal_capability_sp0,
		&hf_dect_nwk_s_ie_terminal_capability_sp1,
		&hf_dect_nwk_s_ie_terminal_capability_sp2,
		&hf_dect_nwk_s_ie_terminal_capability_sp3,
		&hf_dect_nwk_s_ie_terminal_capability_sp4,
		NULL
	};

	static int* const blind_slot_6a_flags[] = {
		&hf_dect_nwk_s_ie_terminal_capability_sp5,
		&hf_dect_nwk_s_ie_terminal_capability_sp6,
		&hf_dect_nwk_s_ie_terminal_capability_sp7,
		&hf_dect_nwk_s_ie_terminal_capability_sp8,
		&hf_dect_nwk_s_ie_terminal_capability_sp9,
		&hf_dect_nwk_s_ie_terminal_capability_sp10,
		&hf_dect_nwk_s_ie_terminal_capability_sp11,
		NULL
	};

	next_element_offset = offset + ie_length;

	octet_identifier = DECT_NWK_S_IE_OCTET_FIRST;
	do {
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_octet_group_extension, tvb, offset, 1, ENC_NA);
		switch(octet_identifier) {
			case DECT_NWK_S_IE_OCTET_FIRST:
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_terminal_capability_tone_capabilities, tvb, offset, 1, ENC_NA);
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_terminal_capability_display_capabilities, tvb, offset, 1, ENC_NA);
				/* Octet 3a is intentionally missing according to the standard */
				octet_identifier++;
				break;
			case DECT_NWK_S_IE_OCTET_B:
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_terminal_capability_echo_parameter, tvb, offset, 1, ENC_NA);
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_terminal_capability_n_rej, tvb, offset, 1, ENC_NA);
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_terminal_capability_a_vol, tvb, offset, 1, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_C:
				proto_tree_add_bitmask(tree, tvb, offset, hf_dect_nwk_s_ie_terminal_capability_slot_type_capability, ett_dect_nwk_s_ie_element, slot_type_flags, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_D:
				stored_display_characters = ( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_TERMINAL_CAPABILITY_STORED_DISPLAY_CHARACTERS_MASK ) << 7;
				break;
			case DECT_NWK_S_IE_OCTET_E:
				stored_display_characters = stored_display_characters |	( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_TERMINAL_CAPABILITY_STORED_DISPLAY_CHARACTERS_MASK );
				proto_tree_add_uint(tree, hf_dect_nwk_s_ie_terminal_capability_stored_display_characters, tvb, offset-1, 2, stored_display_characters);
				break;
			case DECT_NWK_S_IE_OCTET_F:
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_terminal_capability_lines_in_display, tvb, offset, 1, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_G:
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_terminal_capability_chars_per_line, tvb, offset, 1, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_H:
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_terminal_capability_scrolling_behaviour, tvb, offset, 1, ENC_NA);
				break;
		}
		octet_group_extension = ( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_OCTET_GROUP_EXTENSION_MASK ) >> DECT_NWK_S_IE_OCTET_GROUP_EXTENSION_SHIFT;
		octet_identifier++;
		offset++;
	} while ( !octet_group_extension );

	octet_identifier = DECT_NWK_S_IE_OCTET_FIRST;
	do {
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_octet_group_extension, tvb, offset, 1, ENC_NA);
		switch(octet_identifier) {
			case DECT_NWK_S_IE_OCTET_FIRST:
				proto_tree_add_bitmask(tree, tvb, offset, hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1, ett_dect_nwk_s_ie_element,
					profile_indicator_1_flags, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_A:
				proto_tree_add_bitmask(tree, tvb, offset, hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2, ett_dect_nwk_s_ie_element,
					profile_indicator_2_flags, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_B:
				proto_tree_add_bitmask(tree, tvb, offset, hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3, ett_dect_nwk_s_ie_element,
					profile_indicator_3_flags, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_C:
				proto_tree_add_bitmask(tree, tvb, offset, hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4, ett_dect_nwk_s_ie_element,
					profile_indicator_4_flags, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_D:
				proto_tree_add_bitmask(tree, tvb, offset, hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5, ett_dect_nwk_s_ie_element,
					profile_indicator_5_flags, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_E:
				proto_tree_add_bitmask(tree, tvb, offset, hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6, ett_dect_nwk_s_ie_element,
					profile_indicator_6_flags, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_F:
				proto_tree_add_bitmask(tree, tvb, offset, hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7, ett_dect_nwk_s_ie_element,
					profile_indicator_7_flags, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_G:
				proto_tree_add_bitmask(tree, tvb, offset, hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8, ett_dect_nwk_s_ie_element,
					profile_indicator_8_flags, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_H:
				proto_tree_add_bitmask(tree, tvb, offset, hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9, ett_dect_nwk_s_ie_element,
					profile_indicator_9_flags, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_I:
				proto_tree_add_bitmask(tree, tvb, offset, hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10, ett_dect_nwk_s_ie_element,
					profile_indicator_10_flags, ENC_NA);
				break;
		}
		octet_group_extension = ( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_OCTET_GROUP_EXTENSION_MASK ) >> DECT_NWK_S_IE_OCTET_GROUP_EXTENSION_SHIFT;
		octet_identifier++;
		offset++;
	} while ( !octet_group_extension );

	octet_identifier = DECT_NWK_S_IE_OCTET_FIRST;
	do {
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_octet_group_extension, tvb, offset, 1, ENC_NA);
		switch(octet_identifier) {
			case DECT_NWK_S_IE_OCTET_FIRST:
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_terminal_capability_dsaa2, tvb, offset, 1, ENC_NA);
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_terminal_capability_dsc2, tvb, offset, 1, ENC_NA);
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_terminal_capability_control_codes, tvb, offset, 1, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_A:
				proto_tree_add_bitmask(tree, tvb, offset, hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1, ett_dect_nwk_s_ie_element,
					escape_to_char_sets_1_flags, ENC_NA);
				break;
		}
		octet_group_extension = ( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_OCTET_GROUP_EXTENSION_MASK ) >> DECT_NWK_S_IE_OCTET_GROUP_EXTENSION_SHIFT;
		octet_identifier++;
		offset++;
	} while ( !octet_group_extension );

	/* Octet 6 is not always submitted according to standard */
	if (offset != next_element_offset) {
		octet_identifier = DECT_NWK_S_IE_OCTET_FIRST;
		do {
			proto_tree_add_item(tree, hf_dect_nwk_s_ie_octet_group_extension, tvb, offset, 1, ENC_NA);
			switch(octet_identifier) {
				case DECT_NWK_S_IE_OCTET_FIRST:
					proto_tree_add_bitmask(tree, tvb, offset, hf_dect_nwk_s_ie_terminal_capability_blind_slot_6, ett_dect_nwk_s_ie_element,
						blind_slot_6_flags, ENC_NA);
					break;
				case DECT_NWK_S_IE_OCTET_A:
					proto_tree_add_bitmask(tree, tvb, offset, hf_dect_nwk_s_ie_terminal_capability_blind_slot_6a, ett_dect_nwk_s_ie_element,
						blind_slot_6a_flags, ENC_NA);
					break;
			}
			octet_group_extension = ( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_OCTET_GROUP_EXTENSION_MASK ) >> DECT_NWK_S_IE_OCTET_GROUP_EXTENSION_SHIFT;
			octet_identifier++;
			offset++;
		} while ( !octet_group_extension );
	}
	return offset;
}

static int dissect_dect_nwk_s_ie_escape_to_proprietary(tvbuff_t *tvb, guint offset, proto_tree *tree, void _U_ *data)
{
	guint8 discriminator_type;
	proto_tree_add_item(tree, hf_dect_nwk_s_ie_escape_to_proprietary_discriminator_type, tvb, offset, 1, ENC_NA);
	discriminator_type = tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_ESCAPE_TO_PROPRIETARY_DISCRIMINATOR_TYPE_MASK;
	offset++;
	if (discriminator_type == DECT_NWK_S_IE_ESCAPE_TO_PROPRIETARY_DISCRIMINATOR_TYPE_EMC) {
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_escape_to_proprietary_discriminator, tvb, offset, 2, ENC_NA);
		offset+=2;
	}
	/* FIXME: Content Handling */
	return offset;
}

static int dissect_dect_nwk_s_ie_model_identifier(tvbuff_t *tvb, guint offset, guint8 ie_length, packet_info _U_ *pinfo, proto_tree *tree, void _U_ *data) {
	if ( ie_length == 3) {
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_model_identifier_manic, tvb, offset, 2, ENC_NA);
		offset += 2;
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_model_identifier_modic, tvb, offset, 1, ENC_NA);
		offset++;
	} else if ( ie_length == 20) {
		proto_tree_add_item(tree, hf_dect_nwk_s_ie_model_identifier_imeisv, tvb, offset, ie_length, ENC_NA);
		offset += ie_length;
	}

	return offset;
}

static int dissect_dect_nwk_s_ie_codec_list(tvbuff_t *tvb, guint offset, guint8 _U_ ie_length, packet_info _U_ *pinfo, proto_tree *tree, void _U_ *data) {
	gboolean last_codec;
	guint octet_identifier;

	proto_tree_add_item(tree, hf_dect_nwk_s_ie_codec_list_negotiation_indicator, tvb, offset, 1, ENC_NA);
	offset++;

	last_codec = false;
	octet_identifier = DECT_NWK_S_IE_OCTET_FIRST;
	do {
		switch(octet_identifier) {
			case DECT_NWK_S_IE_OCTET_FIRST:
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_codec_list_codec_identifier, tvb, offset, 1, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_A:
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_codec_list_mac_and_dlc_service, tvb, offset, 1, ENC_NA);
				break;
			case DECT_NWK_S_IE_OCTET_B:
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_codec_list_last_codec, tvb, offset, 1, ENC_NA);
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_codec_list_c_plane_routing, tvb, offset, 1, ENC_NA);
				proto_tree_add_item(tree, hf_dect_nwk_s_ie_codec_list_slot_size, tvb, offset, 1, ENC_NA);
				last_codec = ( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_CODEC_LIST_LAST_CODEC_MASK ) >> DECT_NWK_S_IE_CODEC_LIST_LAST_CODEC_SHIFT;
				break;
		}
		octet_identifier = (octet_identifier + 1) % 3;
		offset++;
	} while ( !last_codec );

	return offset;
}

static int dissect_dect_nwk_s_ie(tvbuff_t *tvb, guint offset, packet_info *pinfo, proto_tree *tree, void _U_ *data)
{
	gboolean fixed_length;
	guint8 element_type, element_length, fl_ie_type, fl_ie_double_octet_type;
	proto_tree *field_tree;
	proto_tree *field_tree_item;

	fixed_length = (tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_FIXED_LENGTH_MASK) >> DECT_NWK_S_IE_FIXED_LENGTH_SHIFT;
	if(fixed_length) {
		fl_ie_type = ( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_FL_TYPE_MASK ) >> DECT_NWK_S_IE_FL_TYPE_SHIFT;
		fl_ie_double_octet_type = ( tvb_get_guint8(tvb, offset) & DECT_NWK_S_IE_FL_DOUBLE_OCTET_TYPE_MASK );
		if ( fl_ie_type == DECT_NWK_S_IE_FL_DOUBLE_OCTET_ELEMENT ) {
			element_length = 2;
			field_tree = proto_tree_add_subtree(tree, tvb, offset, element_length, ett_dect_nwk_s_ie_element, &field_tree_item, "Fixed length Element: ");
			proto_item_append_text(field_tree_item, "%s", val_to_str(fl_ie_double_octet_type, dect_nwk_s_ie_fl_double_octet_type_val, "Unknown: 0x%0x"));
			proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl, tvb, offset, 1, ENC_NA);
			proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl_type, tvb, offset, 1, ENC_NA);
			proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl_double_octet_type, tvb, offset, 1, ENC_NA);
			offset++;
			switch (fl_ie_double_octet_type) {
				case DECT_NWK_S_IE_FL_DOUBLE_OCTET_BASIC_SERVICE:
					proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl_basic_service_call_class, tvb, offset, 1, ENC_NA);
					proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl_basic_service_type, tvb, offset, 1, ENC_NA);
					break;
				case DECT_NWK_S_IE_FL_DOUBLE_OCTET_RELEASE_REASON:
					proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl_release_reason_code, tvb, offset, 1, ENC_NA);
					break;
				case DECT_NWK_S_IE_FL_DOUBLE_OCTET_SIGNAL:
					proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl_signal_value, tvb, offset, 1, ENC_NA);
					break;
				case DECT_NWK_S_IE_FL_DOUBLE_OCTET_TIMER_RESTART:
					proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl_timer_restart_value, tvb, offset, 1, ENC_NA);
					break;
				case DECT_NWK_S_IE_FL_DOUBLE_OCTET_TEST_HOOK_CONTROL:
					proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl_test_hook_control_hook_value, tvb, offset, 1, ENC_NA);
					break;
				case DECT_NWK_S_IE_FL_DOUBLE_OCTET_SINGLE_DISPLAY:
					add_dect_nwk_dect_charset_tree_item(field_tree, pinfo, hf_dect_nwk_s_ie_fl_single_display_display_info, tvb, offset, 1);
					break;
				case DECT_NWK_S_IE_FL_DOUBLE_OCTET_SINGLE_KEYPAD:
					add_dect_nwk_dect_charset_tree_item(field_tree, pinfo, hf_dect_nwk_s_ie_fl_single_keypad_keypad_info, tvb, offset, 1);
					break;
			}
		} else {
			element_length = 1;
			field_tree = proto_tree_add_subtree(tree, tvb, offset, element_length, ett_dect_nwk_s_ie_element, &field_tree_item, "Fixed length Element: ");
			proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl, tvb, offset, 1, ENC_NA);
			proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_type, tvb, offset, 1, ENC_NA);
			if ( fl_ie_type == DECT_NWK_S_IE_FL_CONTROL ) {
				proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl_control_type, tvb, offset, 1, ENC_NA);
				proto_item_append_text(field_tree_item, "%s", val_to_str(fl_ie_double_octet_type, dect_nwk_s_ie_fl_control_type_val, "Unknown: 0x%0x"));
			} else {
				proto_item_append_text(field_tree_item, "%s", val_to_str(fl_ie_type, dect_nwk_s_ie_fl_type_val, "Unknown: 0x%0x"));
				switch (fl_ie_type) {
					case DECT_NWK_S_IE_FL_SHIFT:
						proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl_shift_locking, tvb, offset, 1, ENC_NA);
						proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl_shift_new_codeset, tvb, offset, 1, ENC_NA);
						break;
					case DECT_NWK_S_IE_FL_REPEAT_INDICATOR:
						proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl_repeat_indicator_type, tvb, offset, 1, ENC_NA);
						break;
				}
			}
		}
		offset ++;
	} else {
		element_type = ( tvb_get_guint8(tvb, offset) & 0x7F);
		element_length = tvb_get_guint8(tvb, offset + 1);
		field_tree = proto_tree_add_subtree(tree, tvb, offset, element_length + 2, ett_dect_nwk_s_ie_element, &field_tree_item, "Element: ");
		proto_item_append_text(field_tree_item, "%s", val_to_str(element_type, dect_nwk_s_ie_type_val, "Unknown: 0x%0x"));
		proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_fl, tvb, offset, 1, ENC_NA);
		proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_type, tvb, offset, 1, ENC_NA);
		offset++;
		proto_tree_add_item(field_tree, hf_dect_nwk_s_ie_length, tvb, offset, 1, ENC_NA);
		offset++;
		switch (element_type) {
			case DECT_NWK_S_IE_AUTH_TYPE:
				offset = dissect_dect_nwk_s_ie_auth_type(tvb, offset, field_tree, data);
				break;
			case DECT_NWK_S_IE_CALLING_PARTY_NUMBER:
				offset = dissect_dect_nwk_s_ie_calling_party_number(tvb, offset, element_length, field_tree, data);
				break;
			case DECT_NWK_S_IE_CIPHER_INFO:
				offset = dissect_dect_nwk_s_ie_cipher_info(tvb, offset, field_tree, data);
				break;
			case DECT_NWK_S_IE_DURATION:
				offset = dissect_dect_nwk_s_ie_duration(tvb, offset, element_length, pinfo, field_tree, data);
				break;
			case DECT_NWK_S_IE_FIXED_IDENTITY:
				offset = dissect_dect_nwk_s_ie_fixed_identity(tvb, offset, field_tree, data);
				break;
			case DECT_NWK_S_IE_IWU_TO_IWU:
				offset = dissect_dect_nwk_s_ie_iwu_to_iwu(tvb, offset, element_length, pinfo, field_tree, data);
				break;
			case DECT_NWK_S_IE_LOCATION_AREA:
				offset = dissect_dect_nwk_s_ie_location_area(tvb, offset, pinfo, field_tree, data);
				break;
			case DECT_NWK_S_IE_MULTI_DISPLAY:
				offset = dissect_dect_nwk_s_ie_multi_display(tvb, offset, element_length, pinfo, field_tree, data);
				break;
			case DECT_NWK_S_IE_MULTI_KEYPAD:
				offset = dissect_dect_nwk_s_ie_multi_keypad(tvb, offset, element_length, pinfo, field_tree, data);
				break;
			case DECT_NWK_S_IE_NWK_ASSIGNED_IDENTITY:
				offset = dissect_dect_nwk_s_ie_nwk_assigned_identity(tvb, offset, field_tree, data);
				break;
			case DECT_NWK_S_IE_PORTABLE_IDENTITY:
				offset = dissect_dect_nwk_s_ie_portable_identity(tvb, offset, pinfo, field_tree, data);
				break;
			case DECT_NWK_S_IE_RAND:
				proto_tree_add_item(field_tree,hf_dect_nwk_s_ie_rand_rand_field, tvb, offset, element_length, ENC_NA);
				offset += element_length;
				break;
			case DECT_NWK_S_IE_RES:
				proto_tree_add_item(field_tree,hf_dect_nwk_s_ie_res_res_field, tvb, offset, element_length, ENC_NA);
				offset += element_length;
				break;
			case DECT_NWK_S_IE_RS:
				proto_tree_add_item(field_tree,hf_dect_nwk_s_ie_rs_rs_field, tvb, offset, element_length, ENC_NA);
				offset += element_length;
				break;
			case DECT_NWK_S_IE_TERMINAL_CAPABILITY:
				offset = dissect_dect_nwk_s_ie_terminal_capability(tvb, offset, element_length, pinfo, field_tree, data);
				break;
			case DECT_NWK_S_IE_ESCAPE_TO_PROPRIETARY:
				dissect_dect_nwk_s_ie_escape_to_proprietary(tvb, offset, field_tree, data);
				offset += element_length;
				break;
			case DECT_NWK_S_IE_MODEL_IDENTIFIER:
				offset = dissect_dect_nwk_s_ie_model_identifier(tvb, offset, element_length, pinfo, field_tree, data);
				break;
			case DECT_NWK_S_IE_CODEC_LIST:
				offset = dissect_dect_nwk_s_ie_codec_list(tvb, offset, element_length, pinfo, field_tree, data);
				break;
			default:
				offset += element_length;
				break;
		}
	}
	return offset;
}

static int dissect_dect_nwk_lce(tvbuff_t *tvb, guint8 msg_type, guint offset, packet_info *pinfo, proto_tree *tree, void _U_ *data)
{


	proto_tree_add_item(tree, hf_nwk_msg_type_lce, tvb, offset, 1, ENC_NA);
	col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
			val_to_str(msg_type, nwk_lce_msgt_vals, "Unknown 0x%02x"));
	offset++;

	while(tvb_reported_length_remaining(tvb, offset)) {
		offset = dissect_dect_nwk_s_ie(tvb, offset, pinfo, tree, data);
	}

	/* TOOD: dissection of TLVs/IEs */

	return offset;
}

static int dissect_dect_nwk_cc(tvbuff_t *tvb, guint8 msg_type, guint offset, packet_info *pinfo, proto_tree *tree, void _U_ *data)
{
	/* According to Section 7.2 CC also contains CRSS messages */
	if ( msg_type == DECT_NWK_SS_CRSS_HOLD ||
			msg_type == DECT_NWK_SS_CRSS_HOLD_ACK ||
			msg_type == DECT_NWK_SS_CRSS_HOLD_REJ ||
			msg_type == DECT_NWK_SS_CRSS_RETRIEVE ||
			msg_type == DECT_NWK_SS_CRSS_RETRIEVE_ACK ||
			msg_type == DECT_NWK_SS_CRSS_RETRIEVE_REJ ||
			msg_type == DECT_NWK_SS_CISS_FACILITY ) {
		proto_tree_add_item(tree, hf_dect_nwk_message_type_crss, tvb, offset, 1, ENC_NA);
		col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
				val_to_str(msg_type, dect_nwk_crss_message_type_vals, "Unknown 0x%02x"));
	} else {
		proto_tree_add_item(tree, hf_nwk_msg_type_cc, tvb, offset, 1, ENC_NA);
		col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
				val_to_str(msg_type, nwk_cc_msgt_vals, "Unknown 0x%02x"));
	}
	offset++;

	while(tvb_reported_length_remaining(tvb, offset)) {
		offset = dissect_dect_nwk_s_ie(tvb, offset, pinfo, tree, data);
	}

	return offset;
}

static int dissect_dect_nwk_ciss(tvbuff_t *tvb, guint8 msg_type, guint offset, packet_info *pinfo, proto_tree *tree, void _U_ *data)
{
	proto_tree_add_item(tree, hf_dect_nwk_message_type_ciss, tvb, offset, 1, ENC_NA);
	col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
			val_to_str(msg_type, dect_nwk_ciss_message_type_vals, "Unknown 0x%02x"));
	offset++;

	while(tvb_reported_length_remaining(tvb, offset)) {
		offset = dissect_dect_nwk_s_ie(tvb, offset, pinfo, tree, data);
	}

	return offset;
}

static int dissect_dect_nwk_coms(tvbuff_t *tvb, guint8 msg_type, guint offset, packet_info *pinfo, proto_tree *tree, void _U_ *data)
{
	proto_tree_add_item(tree, hf_dect_nwk_message_type_coms, tvb, offset, 1, ENC_NA);
	col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
			val_to_str(msg_type, dect_nwk_coms_message_type_vals, "Unknown 0x%02x"));
	offset++;

	while(tvb_reported_length_remaining(tvb, offset)) {
		offset = dissect_dect_nwk_s_ie(tvb, offset, pinfo, tree, data);
	}

	return offset;
}


static int dissect_dect_nwk_clms(tvbuff_t *tvb, guint8 msg_type, guint offset, packet_info *pinfo, proto_tree *tree, void _U_ *data)
{
	proto_tree_add_item(tree, hf_dect_nwk_message_type_clms, tvb, offset, 1, ENC_NA);
	col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
			val_to_str(msg_type, dect_nwk_clms_message_type_vals, "Unknown 0x%02x"));
	offset++;

	while(tvb_reported_length_remaining(tvb, offset)) {
		offset = dissect_dect_nwk_s_ie(tvb, offset, pinfo, tree, data);
	}

	return offset;
}

static int dissect_dect_nwk_mm(tvbuff_t *tvb, guint8 msg_type, guint offset, packet_info *pinfo, proto_tree *tree, void _U_ *data)
{
	proto_tree_add_item(tree, hf_nwk_msg_type_mm, tvb, offset, 1, ENC_NA);
	col_append_fstr(pinfo->cinfo, COL_INFO, "%s ",
			val_to_str(msg_type, nwk_mm_msgt_vals, "Unknown 0x%02x"));
	offset++;

	while(tvb_reported_length_remaining(tvb, offset)) {
		offset = dissect_dect_nwk_s_ie(tvb, offset, pinfo, tree, data);
	}
	/* TOOD: dissection of TLVs/IEs */

	return offset;
}


static int dissect_dect_nwk(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
{
	proto_tree *nwk_tree;
	proto_item *nwk_ti;
	guint8 pdisc, msg_type;
	guint len;
	guint offset = 0;

	len = tvb_reported_length(tvb);

	col_append_str(pinfo->cinfo, COL_INFO, "(NWK) ");

	nwk_ti = proto_tree_add_item(tree, proto_dect_nwk, tvb, 0, len, ENC_NA);
	nwk_tree = proto_item_add_subtree(nwk_ti, ett_dect_nwk);

	proto_tree_add_item(nwk_tree, hf_nwk_ti, tvb, 0, 1, ENC_NA);
	proto_tree_add_item(nwk_tree, hf_nwk_pdisc, tvb, 0, 1, ENC_NA);
	pdisc = tvb_get_guint8(tvb, 0) & 0x0F;
	msg_type = tvb_get_guint8(tvb, 1);

	switch (pdisc) {
	case DECT_NWK_PDISC_LCE:
		offset = dissect_dect_nwk_lce(tvb, msg_type, 1, pinfo, nwk_tree, data);
		break;
	case DECT_NWK_PDISC_CC:
		offset = dissect_dect_nwk_cc(tvb, msg_type, 1, pinfo, nwk_tree, data);
		break;
	case DECT_NWK_PDISC_MM:
		offset = dissect_dect_nwk_mm(tvb, msg_type, 1, pinfo, nwk_tree, data);
		break;
	case DECT_NWK_PDISC_CISS:
		offset = dissect_dect_nwk_ciss(tvb, msg_type, 1, pinfo, nwk_tree, data);
		break;
	case DECT_NWK_PDISC_CLMS:
		offset = dissect_dect_nwk_clms(tvb, msg_type, 1, pinfo, nwk_tree, data);
		break;
	case DECT_NWK_PDISC_COMS:
		offset = dissect_dect_nwk_coms(tvb, msg_type, 1, pinfo, nwk_tree, data);
		break;
	default:
		break;
	}

	/* whatever was not dissected: Use generic data dissector */
	if ( offset < tvb_captured_length(tvb) ) {
		tvbuff_t *payload = tvb_new_subset_remaining(tvb, offset);
		call_data_dissector(payload, pinfo, tree);
	}
	return tvb_captured_length(tvb);
}

/*
ETSI EN 300 175-6 V2.7.1 Annex C
IPEI will be displayed as EEEEE PPPPPPP C
where:
* EEEEE is the decimal representation of the first 16 bits
* PPPPPPP is the decimal representation of the last 20 bits
* C is calculated based on the digits by multiplying the digit with its position
  (starting with 1 on the leftmost one), and taking the sum of those multiply results
  modulo 11. If the result is 10 a '*' is displayed instead.
*/
static void fmt_dect_nwk_ipei(gchar *ipei_string, guint64 ipei) {
	guint16 emc, check_digit;
	guint32 psn;
	guint64 digit_divisor, ipei_digits;

	emc = ( ( ipei & 0xFFFF00000 ) >> 20 ) & 0xFFFF;
	psn = ipei & 0xFFFFF;

	digit_divisor = 100000000000;
	ipei_digits = emc * (guint64)10000000 + psn;
	check_digit = 0;
	for(guint8 i = 1; i <= 12; i++) {
		check_digit += (guint16)( ( ipei_digits / digit_divisor ) * i );
		ipei_digits = ipei_digits % digit_divisor;
		digit_divisor /= 10;
	}
	check_digit = check_digit % 11;

	if ( check_digit == 10) {
		snprintf(ipei_string, 16, "%05d %07d *", emc, psn);
	} else {
		snprintf(ipei_string, 16, "%05d %07d %d", emc, psn, check_digit);
	}
}

void proto_register_dect_nwk(void)
{
	static hf_register_info hf[] =
	{
		{ &hf_nwk_ti,
			{ "Transaction Identifier", "dect_nwk.ti", FT_UINT8, BASE_HEX,
				 NULL, 0xF0, NULL, HFILL
			}
		},
		{ &hf_nwk_pdisc,
			{ "Protocol Discriminator", "dect_nwk.pdisc", FT_UINT8, BASE_HEX,
				VALS(nwk_pdisc_vals), 0x0F, NULL, HFILL
			}
		},
		{ &hf_nwk_msg_type_cc,
			{ "Message Type", "dect_nwk.msg_type", FT_UINT8, BASE_HEX,
				VALS(nwk_cc_msgt_vals), 0x0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_message_type_ciss,
			{ "Message Type", "dect_nwk.msg_type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_ciss_message_type_vals), 0x0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_message_type_crss,
			{ "Message Type", "dect_nwk.msg_type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_crss_message_type_vals), 0x0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_message_type_coms,
			{ "Message Type", "dect_nwk.msg_type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_coms_message_type_vals), 0x0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_message_type_clms,
			{ "Message Type", "dect_nwk.msg_type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_clms_message_type_vals), 0x0, NULL, HFILL
			}
		},
		{ &hf_nwk_msg_type_mm,
			{ "Message Type", "dect_nwk.msg_type", FT_UINT8, BASE_HEX,
				VALS(nwk_mm_msgt_vals), 0x0, NULL, HFILL
			}
		},
		{ &hf_nwk_msg_type_lce,
			{ "Message Type", "dect_nwk.msg_type", FT_UINT8, BASE_HEX,
				VALS(nwk_lce_msgt_vals), 0x0, NULL, HFILL
			}
		},


		/* S Type common */
		{ &hf_dect_nwk_s_ie_fl,
			{ "Fixed Length", "dect_nwk.s.fixed_length", FT_BOOLEAN, 8,
				NULL, 0x80, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_type,
			{ "Message Type", "dect_nwk.s.ie.type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_type_val), 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_length,
			{ "Content Length", "dect_nwk.s.ie.length", FT_UINT8, BASE_DEC,
				NULL, 0x0, "Length indicator", HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_octet_group_extension,
			{ "Extension", "dect_nwk.s.ie.group_extension", FT_BOOLEAN, 8,
				TFS(&tfs_last_more), 0x80, NULL, HFILL
			}
		},
		/* Fixed length elements */
		{ &hf_dect_nwk_s_ie_fl_type,
			{ "Message Type", "dect_nwk.s.ie.fl.type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_fl_type_val), 0x70, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_fl_control_type,
			{ "CTRL Type", "dect_nwk.s.ie.fl.control_type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_fl_control_type_val), 0x0F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_fl_double_octet_type,
			{ "Double Octet Type", "dect_nwk.s.ie.fl.double_octet_type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_fl_double_octet_type_val), 0x0F, NULL, HFILL
			}
		},
		/* Shift */
		{ &hf_dect_nwk_s_ie_fl_shift_locking,
			{ "Shift Procedure", "dect_nwk.s.ie.fl.shift.locking", FT_BOOLEAN, 8,
				TFS(&dect_nwk_s_ie_fl_shift_locking_tfs), 0x08, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_fl_shift_new_codeset,
			{ "New Codeset", "dect_nwk.s.ie.fl.shift.new_codeset", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_fl_shift_codeset_val), 0x07, NULL, HFILL
			}
		},
		/* Repeat indicator */
		{ &hf_dect_nwk_s_ie_fl_repeat_indicator_type,
			{ "Indicator Type", "dect_nwk.s.ie.fl.repeat_indicator.type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_fl_repeat_indicator_type_val), 0x0F, NULL, HFILL
			}
		},
		/* Basic service */
		{ &hf_dect_nwk_s_ie_fl_basic_service_call_class,
			{ "Call class", "dect_nwk.s.ie.fl.basic_service.call_class", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_fl_basic_service_call_class_val), 0xF0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_fl_basic_service_type,
			{ "Basic Service", "dect_nwk.s.ie.fl.basic_service", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_fl_basic_service_type_val), 0x0F, NULL, HFILL
			}
		},
		/* Single display */
		{ &hf_dect_nwk_s_ie_fl_single_display_display_info,
			{ "Display Info", "dect_nwk.s.ie.fl.single_display.display_info", FT_STRING, BASE_NONE,
				NULL, 0x0, NULL, HFILL
			}
		},
		/* Single keypad */
		{ &hf_dect_nwk_s_ie_fl_single_keypad_keypad_info,
			{ "Keypad Info", "dect_nwk.s.ie.fl.single_keypad.keypad_info", FT_STRING, BASE_NONE,
				NULL, 0x0, NULL, HFILL
			}
		},
		/* Release reason */
		{ &hf_dect_nwk_s_ie_fl_release_reason_code,
			{ "Release Reason Code", "dect_nwk.s.ie.fl.release_reason.code", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_fl_release_reason_val), 0x0, NULL, HFILL
			}
		},
		/* Signal */
		{ &hf_dect_nwk_s_ie_fl_signal_value,
			{ "Signal value", "dect_nwk.s.ie.fl.signal.value", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_fl_signal_value_val), 0x0, NULL, HFILL
			}
		},
		/* Timer restart */
		{ &hf_dect_nwk_s_ie_fl_timer_restart_value,
			{ "Restart value", "dect_nwk.s.ie.fl.timer_restart.restart_value", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_fl_timer_restart_value_val), 0x0, NULL, HFILL
			}
		},
		/* Test hook control */
		{ &hf_dect_nwk_s_ie_fl_test_hook_control_hook_value,
			{ "Hook value", "dect_nwk.s.ie.fl.test_hook_control.hook_value", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_fl_test_hook_control_hook_value_val), 0x0, NULL, HFILL
			}
		},
		/* Auth type*/
		{ &hf_dect_nwk_s_ie_auth_type_authentication_algorithm,
			{ "Authentication algorithm", "dect_nwk.s.ie.auth_type.authentication_algorithm", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_auth_type_authentication_algorithm_val), 0x0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_auth_type_proprietary_algorithm,
			{ "Proprietary algorithm", "dect_nwk.s.ie.auth_type.proprietary_algorithm", FT_UINT8, BASE_HEX,
				NULL, 0x0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_auth_type_ak_type,
			{ "AK Type", "dect_nwk.s.ie.auth_type.ak_type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_auth_type_ak_type_val), 0xF0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_auth_type_ak_number,
			{ "AK Number", "dect_nwk.s.ie.auth_type.ak_number", FT_UINT8, BASE_HEX,
				NULL, 0x0F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_auth_type_inc,
			{ "INC", "dect_nwk.s.ie.auth_type.inc", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), 0x80, "Increment value of the ZAP field", HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_auth_type_def,
			{ "DEF", "dect_nwk.s.ie.auth_type.def", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), 0x40, "Use generated derived cipher key as default cipher key for early encryption", HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_auth_type_txc,
			{ "TXC", "dect_nwk.s.ie.auth_type.tx", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), 0x20, "Include derived cipher key in the AUTHENTICATION-REPLY message", HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_auth_type_upc,
			{ "UPC", "dect_nwk.s.ie.auth_type.upc", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), 0x10, "Store derived cipher key", HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_auth_type_cipher_key_number,
			{ "Cipher key number", "dect_nwk.s.ie.auth_type.cipher_key_number", FT_UINT8, BASE_HEX,
				NULL, 0x0F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_auth_type_cipher_key_number_related,
			{ "Key related to", "dect_nwk.s.ie.auth_type.key_related_to", FT_BOOLEAN, 8,
				TFS(&dect_nwk_s_ie_auth_type_cipher_key_number_related_tfs), 0x08, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_auth_type_default_cipher_key_index,
			{ "Default Cipher Key Index", "dect_nwk.s.ie.auth_type.default_cipher_key_index", FT_UINT16, BASE_HEX,
				NULL, 0x0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_auth_type_default_cipher_key_algorithm,
			{ "Default Cipher Key Algorithm", "dect_nwk.s.ie.auth_type.default_cipher_key_algorithm", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_auth_type_default_cipher_key_algorithm_val), 0x03, NULL, HFILL
			}
		},
		/* Calling party number */
		{ &hf_dect_nwk_s_ie_calling_party_number_type,
			{ "Type", "dect_nwk.s.ie.calling_party_number.type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_calling_party_number_type_val), 0x70, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_calling_party_number_numbering_plan,
			{ "Numbering plan", "dect_nwk.s.ie.calling_party_number.numbering_plan", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_calling_party_number_numbering_plan_val), 0x0F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_calling_party_number_presentation,
			{ "Presentation", "dect_nwk.s.ie.calling_party_number.presentation", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_calling_party_number_presentation_val), 0x60, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_calling_party_number_screening,
			{ "Screening", "dect_nwk.s.ie.calling_party_number.screening", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_calling_party_number_screening_val), 0x03, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_calling_party_number_address,
			{ "Address", "dect_nwk.s.ie.calling_party_number.address", FT_STRING, BASE_NONE,
				NULL, 0x0, NULL, HFILL
			}
		},
		/* Cipher info */
		{ &hf_dect_nwk_s_ie_cipher_info_yn,
			{ "Y/N", "dect_nwk.s.ie.cipher_info.yn", FT_BOOLEAN, 8, NULL, 0x80, NULL, HFILL}
		},
		{ &hf_dect_nwk_s_ie_cipher_info_algorithm,
			{ "Algorithm", "dect_nwk.s.ie.cipher_info.algorithm", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_cipher_info_algorithm_val), 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_cipher_info_proprietary_algorithm,
			{ "Proprietary algorithm", "dect_nwk.s.ie.cipher_info.proprietary_algorithm", FT_UINT8, BASE_HEX,
				NULL, 0x0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_cipher_info_key_type,
			{ "Key Type", "dect_nwk.s.ie.cipher_info.key_type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_cipher_info_key_type_val), 0xF0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_cipher_info_key_number,
			{ "Key Number", "dect_nwk.s.ie.cipher_info.key_number", FT_UINT8, BASE_HEX,
				NULL, 0x0F, NULL, HFILL
			}
		},
		/* Duration */
		{ &hf_dect_nwk_s_ie_duration_lock_limits,
			{ "Lock Limits", "dect_nwk.s.ie.duration.lock_limits", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_duration_lock_limits_type_val), 0x70, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_duration_time_limits,
			{ "Time Limits", "dect_nwk.s.ie.duration.time_limits", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_duration_time_limits_type_val), 0x0F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_duration_time_duration,
			{ "Time duration", "dect_nwk.s.ie.duration.time_duration", FT_UINT8, BASE_DEC,
				NULL, 0x0, NULL, HFILL
			}
		},
		/* Fixed Identity */
		{ &hf_dect_nwk_s_ie_fixed_identity_type,
			{ "Type", "dect_nwk.s.ie.fixed_identity.type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_fixed_identity_type_val), 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_fixed_identity_value_length,
			{ "Value Length", "dect_nwk.s.ie.fixed_identity.value_length", FT_UINT8, BASE_DEC,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_fixed_identity_arc,
			{ "ARC", "dect_nwk.s.ie.fixed_identity.arc", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_arc_type_val), 0x70, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_fixed_identity_ard,
			{ "ARD", "dect_nwk.s.ie.fixed_identity.ard", FT_UINT64, BASE_HEX, NULL, 0x0, NULL, HFILL }
		},
		{ &hf_dect_nwk_s_ie_fixed_identity_padding,
			{ "Padding", "dect_nwk.s.ie.fixed_identity.padding", FT_UINT8, BASE_HEX,
				NULL, 0x0, NULL, HFILL
			}
		},
		/* IWU to IWU */
		{ &hf_dect_nwk_s_ie_iwu_to_iwu_sr,
			{ "S/R", "dect_nwk.s.ie.iwu_to_iwu.sr", FT_BOOLEAN, 8,
				NULL, 0x40, "Send/Reject", HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_iwu_to_iwu_protocol_discriminator,
			{ "Protocol Discriminator", "dect_nwk.s.ie.iwu_to_iwu.protocol_discriminator", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_iwu_to_iwu_protocol_discriminator_type_val), 0x3F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_iwu_to_iwu_information,
			{ "Information", "dect_nwk.s.ie.iwu_to_iwu.information", FT_BYTES, BASE_NONE,
				NULL, 0x0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_iwu_to_iwu_discriminator_type,
			{ "Discriminator Type", "dect_nwk.s.ie.iwu_to_iwu.protocol_discriminator", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_iwu_to_iwu_discriminator_type_val), 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_iwu_to_iwu_user_specific_contents,
			{ "User specific contents", "dect_nwk.s.ie.iwu_to_iwu.user_specific_contents", FT_BYTES, BASE_NONE,
				NULL, 0x0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_iwu_to_iwu_emc_discriminator,
			{ "EMC", "dect_nwk.s.ie.iwu_to_iwu.emc_discriminator", FT_UINT16, BASE_HEX,
				NULL, 0x0, "Discriminator (EMC)", HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_iwu_to_iwu_proprietary_contents,
			{ "Proprietary", "dect_nwk.s.ie.iwu_to_iwu.proprietary_contents", FT_BYTES, BASE_NONE,
				NULL, 0x0, NULL, HFILL
			}
		},
		/* Location area */
		{ &hf_dect_nwk_s_ie_location_area_li_type,
			{ "LI-Type", "dect_nwk.s.ie.location_area.li_type", FT_UINT8, BASE_HEX,
				NULL, 0xC0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_location_area_li_extended_included,
			{ "Ext. LI included", "dect_nwk.s.ie.location_area.li_extended_included", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), 0x80, "Extended location information is included", HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_location_area_la_level_included,
			{ "LA level included", "dect_nwk.s.ie.location_area.la_level_included", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), 0x40, "Location area level is included (LA level field is valid)", HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_location_area_la_level,
			{ "Location area level", "dect_nwk.s.ie.location_area.la_level", FT_UINT8, BASE_DEC,
				NULL, 0x3F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_location_area_eli_type,
			{ "ELI-Type", "dect_nwk.s.ie.location_area.eli_type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_location_area_eli_type_val), DECT_NWK_S_IE_LOCATION_AREA_ELI_TYPE_MASK, "Extended Location Information type", HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_location_area_lac,
			{ "LAC", "dect_nwk.s.ie.location_area.lac", FT_BYTES, BASE_NONE, NULL, 0x0, "Location Area Code", HFILL }
		},
		{ &hf_dect_nwk_s_ie_location_area_ci,
			{ "CI", "dect_nwk.s.ie.location_area.ci", FT_BYTES, BASE_NONE, NULL, 0x0, "Cell Identity", HFILL }
		},
		/* Multi-display */
		{ &hf_dect_nwk_s_ie_multi_display_information,
			{ "Display Information", "dect_nwk.s.ie.multi_display.information", FT_STRING, BASE_NONE,
				NULL, 0x0, NULL, HFILL
			}
		},
		/* Multi-keypad */
		{ &hf_dect_nwk_s_ie_multi_keypad_information,
			{ "Keypad Information", "dect_nwk.s.ie.multi_keypad.information", FT_STRING, BASE_NONE,
				NULL, 0x0, NULL, HFILL
			}
		},
		/* NWK assigend Identity */
		{ &hf_dect_nwk_s_ie_nwk_assigned_identity_type,
			{ "Type", "dect_nwk.s.ie.nwk_assigned_identity.type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_nwk_assigned_identity_type_val), 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_nwk_assigned_identity_value_length,
			{ "Value Length", "dect_nwk.s.ie.nwk_assigned_identity.value_length", FT_UINT8, BASE_DEC,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_nwk_assigned_identity_value,
			{ "Value", "dect_nwk.s.ie.nwk_assigned_identity.value", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }
		},
		{ &hf_dect_nwk_s_ie_nwk_assigned_identity_padding,
			{ "Padding", "dect_nwk.s.ie.nwk_assigned_identity.padding", FT_UINT8, BASE_HEX,
				NULL, 0x0, NULL, HFILL
			}
		},
		/* Portable Identity */
		{ &hf_dect_nwk_s_ie_portable_identity_type,
			{ "Type", "dect_nwk.s.ie.portable_identity.type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_portable_identity_type_val), 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_portable_identity_value_length,
			{ "Value Length", "dect_nwk.s.ie.portable_identity.value_length", FT_UINT8, BASE_DEC,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_portable_identity_put,
			{ "PUT", "dect_nwk.s.ie.portable_identity.ipui.put", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_ipui_type_val), 0xF0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_portable_identity_ipei,
			{ "IPEI", "dect_nwk.s.ie.portable_identity.ipei", FT_UINT64, BASE_CUSTOM,
				CF_FUNC(&fmt_dect_nwk_ipei), 0x0, NULL, HFILL }
		},
		{ &hf_dect_nwk_s_ie_portable_identity_tpui_assignment_type,
			{ "Assignment Type", "dect_nwk.s.ie.portable_identity.tpui_assignment_type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_portable_identity_tpui_assignment_type_val), 0xF0, NULL, HFILL }
		},
		{ &hf_dect_nwk_s_ie_portable_identity_tpui_value,
			{ "TPUI value", "dect_nwk.s.ie.portable_identity.tpui_value", FT_UINT32, BASE_HEX,
				NULL, 0x0, NULL, HFILL }
		},
		{ &hf_dect_nwk_s_ie_portable_identity_ipui_o_number,
			{ "Number", "dect_nwk.s.ie.portable_identity.ipui_o.number", FT_UINT64, BASE_HEX, NULL, 0, NULL, HFILL }
		},
		{ &hf_dect_nwk_s_ie_portable_identity_ipui_p_poc,
			{ "POC", "dect_nwk.s.ie.portable_identity.ipui_p.poc", FT_UINT16, BASE_HEX,
				NULL, 0, "Public Operator Code", HFILL }
		},
		{ &hf_dect_nwk_s_ie_portable_identity_ipui_p_acc,
			{ "ACC", "dect_nwk.s.ie.portable_identity.ipui_p.acc", FT_BYTES, BASE_NONE,
			NULL, 0, "ACCount number", HFILL }
		},
		{ &hf_dect_nwk_s_ie_portable_identity_ipui_q_bacn,
			{ "BACN", "dect_nwk.s.ie.portable_identity.ipui_q.bacn", FT_STRING, BASE_NONE,
			NULL, 0, "Bank ACount Number", HFILL }
		},
		{ &hf_dect_nwk_s_ie_portable_identity_ipui_r_imsi,
			{ "IMSI", "dect_nwk.s.ie.portable_identity.ipui_r.imsi", FT_STRING, BASE_NONE,
			NULL, 0, "International Mobile Subscriber Identity", HFILL }
		},
		{ &hf_dect_nwk_s_ie_portable_identity_ipui_s_number,
			{ "Number", "dect_nwk.s.ie.portable_identity.ipui_s.number", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }
		},
		{ &hf_dect_nwk_s_ie_portable_identity_ipui_t_eic,
			{ "EIC", "dect_nwk.s.ie.portable_identity.ipui_t.eic", FT_UINT16, BASE_HEX, NULL, 0, NULL, HFILL }
		},
		{ &hf_dect_nwk_s_ie_portable_identity_ipui_t_number,
			{ "Number", "dect_nwk.s.ie.portable_identity.ipui_t.number", FT_STRING, BASE_NONE, NULL, 0, NULL, HFILL }
		},
		{ &hf_dect_nwk_s_ie_portable_identity_ipui_u_cacn,
			{ "CACN", "dect_nwk.s.ie.portable_identity.ipui_u.cacn", FT_STRING, BASE_NONE,
			NULL, 0, "Credit Card ACount Number", HFILL }
		},
		{ &hf_dect_nwk_s_ie_portable_identity_padding,
			{ "Padding", "dect_nwk.s.ie.portable_identity.padding", FT_UINT8, BASE_HEX,
				NULL, 0x0, NULL, HFILL
			}
		},
		/* RAND */
		{ &hf_dect_nwk_s_ie_rand_rand_field,
			{ "RAND Field", "dect_nwk.s.ie.rand.rand_field", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }
		},
		/* RES */
		{ &hf_dect_nwk_s_ie_res_res_field,
			{ "RES Field", "dect_nwk.s.ie.res.res_field", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }
		},
		/* RS */
		{ &hf_dect_nwk_s_ie_rs_rs_field,
			{ "RS Field", "dect_nwk.s.ie.rs.rs_field", FT_BYTES, BASE_NONE, NULL, 0x0, NULL, HFILL }
		},
		/* Terminal capability */
		{ &hf_dect_nwk_s_ie_terminal_capability_tone_capabilities,
			{ "tone capabilities", "dect_nwk.s.ie.terminal_capability.tone_capabilities", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_terminal_capability_tone_capabilites_val), 0x70, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_display_capabilities,
			{ "display capabilities", "dect_nwk.s.ie.terminal_capability.display_capabilities", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_terminal_capability_display_capabilities_val), 0x0F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_echo_parameter,
			{ "echo parameter", "dect_nwk.s.ie.terminal_capability.echo_parameter", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_terminal_capability_echo_parameters_val), 0x70, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_n_rej,
			{ "N-REJ", "dect_nwk.s.ie.terminal_capability.n_rej", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_terminal_capability_n_rej_capabilities_val), 0x0C, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_a_vol,
			{ "A-VOL", "dect_nwk.s.ie.terminal_capability.a_vol", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_terminal_capability_a_vol_capabilities_val), 0x03, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_slot_type_capability,
			{ "slot type capability", "dect_nwk.s.ie.terminal_capability.slot_type_capability", FT_UINT8, BASE_HEX,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_slot_type_half_80,
			{ "Half slot; j = 80", "dect_nwk.s.ie.terminal_capability.slot_type.half_80", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SLOT_TYPE_HALF_80, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_slot_type_long_640,
			{ "Long slot; j = 640", "dect_nwk.s.ie.terminal_capability.slot_type.long_640", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SLOT_TYPE_LONG_640, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_slot_type_long_672,
			{ "Long slot; j = 672", "dect_nwk.s.ie.terminal_capability.slot_type.long_672", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SLOT_TYPE_LONG_672, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_slot_type_full,
			{ "Full slot", "dect_nwk.s.ie.terminal_capability.slot_type.full", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SLOT_TYPE_FULL, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_slot_type_double,
			{ "Double slot", "dect_nwk.s.ie.terminal_capability.slot_type.double", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SLOT_TYPE_DOUBLE, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_stored_display_characters,
			{ "Stored display characters", "dect_nwk.s.ie.terminal_capability.stored_display_characters", FT_UINT16, BASE_DEC,
				NULL, 0x3FFF, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_lines_in_display,
			{ "Lines in display", "dect_nwk.s.ie.terminal_capability.lines_in_display", FT_UINT8, BASE_DEC,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_chars_per_line,
			{ "Characters/line", "dect_nwk.s.ie.terminal_capability.chars_per_line", FT_UINT8, BASE_DEC,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_scrolling_behaviour,
			{ "Scrolling behaviour", "dect_nwk.s.ie.terminal_capability.scrolling_behaviour", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_terminal_capability_scrolling_behaviour_type_val), 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1,
			{ "Profile indicator 1", "dect_nwk.s.ie.terminal_capability.profile_indicator_1", FT_UINT8, BASE_HEX,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_cap,
			{ "CAP", "dect_nwk.s.ie.terminal_capability.profile_indicator_1.cap", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_1_CAP, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_gap,
			{ "GAP", "dect_nwk.s.ie.terminal_capability.profile_indicator_1.gap", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_1_GAP, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_dect_gsm,
			{ "DECT/GSM interworking profile", "dect_nwk.s.ie.terminal_capability.profile_indicator_1.dect_gsm", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_1_DECT_GSM, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_isdn,
			{ "ISDN End-system", "dect_nwk.s.ie.terminal_capability.profile_indicator_1.isdn", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_1_ISDN, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_lrms,
			{ "LRMS", "dect_nwk.s.ie.terminal_capability.profile_indicator_1.lrms", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_1_LRMS, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_dprs_stream,
			{ "DPRS Stream", "dect_nwk.s.ie.terminal_capability.profile_indicator_1.dprs_stream", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_1_DPRS_STREAM, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_1_dprs_asymmetric,
			{ "DPRS asymmetric bearers", "dect_nwk.s.ie.terminal_capability.profile_indicator_1.dprs_asymmetric", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_1_DPRS_ASYMMETRIC, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2,
			{ "Profile indicator 2", "dect_nwk.s.ie.terminal_capability.profile_indicator_2", FT_UINT8, BASE_HEX,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_dprs_class_2,
			{ "DPRS Class 2 management and B-Field procedures", "dect_nwk.s.ie.terminal_capability.profile_indicator_2.dprs_class_2", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_2_DPRS_CLASS_2, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_data_services,
			{ "Data Services Profile D, Class 2", "dect_nwk.s.ie.terminal_capability.profile_indicator_2.data_services", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_2_DATA_SERVICES, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_isdn,
			{ "ISDN Intermediate Access Profile", "dect_nwk.s.ie.terminal_capability.profile_indicator_2.isdn", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_2_ISDN, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_dect_umts_bearer,
			{ "DECT/UMTS-GSM interworking - UMTS-GSM Bearer service", "dect_nwk.s.ie.terminal_capability.profile_indicator_2.dect_umts_bearer", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_2_DECT_UMTS_BEARER, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_dect_umts_sms,
			{ "DECT/UMTS-GSM interworking - UMTS-GSM SMS service", "dect_nwk.s.ie.terminal_capability.profile_indicator_2.dect_umts_sms", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_2_DECT_UMTS_SMS, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_dect_umts_facsimile,
			{ "DECT/UMTS-GSM interworking - UMTS-GSM Facsimile", "dect_nwk.s.ie.terminal_capability.profile_indicator_2.dect_umts_facsimile", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_2_DECT_UMTS_FACSIMILE, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_2_rap,
			{ "RAP 1 Profile", "dect_nwk.s.ie.terminal_capability.profile_indicator_2.rap", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_2_RAP, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3,
			{ "Profile indicator 3", "dect_nwk.s.ie.terminal_capability.profile_indicator_3", FT_UINT8, BASE_HEX,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_dect_gsm,
			{ "DECT/GSM dual mode terminal", "dect_nwk.s.ie.terminal_capability.profile_indicator_3.dect_gsm", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_3_DECT_GSM, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_wrs,
			{ "\"V1\" WRS", "dect_nwk.s.ie.terminal_capability.profile_indicator_3.wrs", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_3_WRS, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_sms,
			{ "SMS over LRMS", "dect_nwk.s.ie.terminal_capability.profile_indicator_3.sms", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_3_SMS, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_dmap,
			{ "DMAP", "dect_nwk.s.ie.terminal_capability.profile_indicator_3.dmap", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_3_DMAP, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_cta,
			{ "Multiport CTA", "dect_nwk.s.ie.terminal_capability.profile_indicator_3.cta", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_3_CTA, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_ethernet,
			{ "Ethernet", "dect_nwk.s.ie.terminal_capability.profile_indicator_3.ethernet", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_3_ETHERNET, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_3_token_ring,
			{ "Token Ring", "dect_nwk.s.ie.terminal_capability.profile_indicator_3.token_ring", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_3_TOKEN_RING, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4,
			{ "Profile indicator 4", "dect_nwk.s.ie.terminal_capability.profile_indicator_4", FT_UINT8, BASE_HEX,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_ip,
			{ "IP", "dect_nwk.s.ie.terminal_capability.profile_indicator_4.ip", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_4_IP, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_ppp,
			{ "PPP", "dect_nwk.s.ie.terminal_capability.profile_indicator_4.ppp", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_4_PPP, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_v24,
			{ "V.24", "dect_nwk.s.ie.terminal_capability.profile_indicator_4.v24", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_4_V24, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_cf,
			{ "C F", "dect_nwk.s.ie.terminal_capability.profile_indicator_4.cf", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_4_CF, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_ipq,
			{ "I PQ", "dect_nwk.s.ie.terminal_capability.profile_indicator_4.ipq", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_4_IPQ, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_rap_2,
			{ "RAP 2 Profile", "dect_nwk.s.ie.terminal_capability.profile_indicator_4.rap_2", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_4_RAP_2, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_4_dprs,
			{ "Generic Media Encapsulation transport (DPRS)", "dect_nwk.s.ie.terminal_capability.profile_indicator_4.dprs", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_4_DPRS, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5,
			{ "Profile indicator 5", "dect_nwk.s.ie.terminal_capability.profile_indicator_5", FT_UINT8, BASE_HEX,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_2bz,
			{ "2-level modulation scheme (B+Z field)", "dect_nwk.s.ie.terminal_capability.profile_indicator_5.mod_2bz", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_5_MOD_2BZ, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_4bz,
			{ "4-level modulation scheme (B+Z field)", "dect_nwk.s.ie.terminal_capability.profile_indicator_5.mod_4bz", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_5_MOD_4BZ, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_8bz,
			{ "8-level modulation scheme (B+Z field)", "dect_nwk.s.ie.terminal_capability.profile_indicator_5.mod_8bz", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_5_MOD_8BZ, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_16bz,
			{ "16-level modulation scheme (B+Z field)", "dect_nwk.s.ie.terminal_capability.profile_indicator_5.mod_16bz", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_5_MOD_16BZ, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_2a,
			{ "2-level modulation scheme (A field)", "dect_nwk.s.ie.terminal_capability.profile_indicator_5.mod_2a", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_5_MOD_2A, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_4a,
			{ "4-level modulation scheme (A field)", "dect_nwk.s.ie.terminal_capability.profile_indicator_5.mod_4a", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_5_MOD_4A, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_5_mod_8a,
			{ "8-level modulation scheme (A field)", "dect_nwk.s.ie.terminal_capability.profile_indicator_5.mod_8a", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_5_MOD_8A, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6,
			{ "Profile indicator 6", "dect_nwk.s.ie.terminal_capability.profile_indicator_6", FT_UINT8, BASE_HEX,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_dect_umts,
			{ "DECT/UMTS interworking profile", "dect_nwk.s.ie.terminal_capability.profile_indicator_6.dect_umts", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_6_DECT_UMTS, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_dect_umts_gprs,
			{ "DECT/UMTS interworking - GPRS services", "dect_nwk.s.ie.terminal_capability.profile_indicator_6.dect_umts_gprs", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_6_DECT_UMTS_GPRS, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_odap,
			{ "Basic ODAP", "dect_nwk.s.ie.terminal_capability.profile_indicator_6.odap", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_6_ODAP, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_f_mms,
			{ "F-MMS Interworking profile", "dect_nwk.s.ie.terminal_capability.profile_indicator_6.f_mms", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_6_F_MMS, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_gf,
			{ "Channel GF", "dect_nwk.s.ie.terminal_capability.profile_indicator_6.gf", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_6_GF, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_fast_hopping,
			{ "PT with fast hopping radio", "dect_nwk.s.ie.terminal_capability.profile_indicator_6.fast_hopping", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_6_FAST_HOPPING, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_6_no_emission,
			{ "Capability to support \"no emission\" or U-NEMo mode", "dect_nwk.s.ie.terminal_capability.profile_indicator_6.no_emission", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_6_NO_EMISSION, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7,
			{ "Profile indicator 7", "dect_nwk.s.ie.terminal_capability.profile_indicator_7", FT_UINT8, BASE_HEX,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_mod64,
			{ "64-level modulation scheme (B+Z field)", "dect_nwk.s.ie.terminal_capability.profile_indicator_7.mod64", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_7_MOD64, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_ng_dect_1,
			{ "NG-DECT Part 1: Wideband voice", "dect_nwk.s.ie.terminal_capability.profile_indicator_7.ng_dect_1", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_7_NG_DECT_1, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_ng_dect_3,
			{ "NG-DECT Part 3", "dect_nwk.s.ie.terminal_capability.profile_indicator_7.ng_dect_3", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_7_NG_DECT_3, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_headset_management,
			{ "Headset management", "dect_nwk.s.ie.terminal_capability.profile_indicator_7.headset_management", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_7_HEADSET_MANAGEMENT, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_re_keying,
			{ "Re-keying and default cipher key early encryption mechanism", "dect_nwk.s.ie.terminal_capability.profile_indicator_7.re_keying", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_7_RE_KEYING, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_associated_melody,
			{ "associated melody per contact", "dect_nwk.s.ie.terminal_capability.profile_indicator_7.associated_melody", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_7_ASSOCIATED_MELODY, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_7_ng_dect_5,
			{ "NG-DECT Part 5", "dect_nwk.s.ie.terminal_capability.profile_indicator_7.ng_dect_5", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_7_NG_DECT_5, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8,
			{ "Profile indicator 8", "dect_nwk.s.ie.terminal_capability.profile_indicator_8", FT_UINT8, BASE_HEX,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8_mux_e_u,
			{ "E+U-type mux and channel I PF basic procedures", "dect_nwk.s.ie.terminal_capability.profile_indicator_8.mux_e_u", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_MUX_E_U, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8_channel_ipf,
			{ "Channel I PF advanced procedures", "dect_nwk.s.ie.terminal_capability.profile_indicator_8.channel_ipf", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_CHANNEL_IPF, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8_channel_sipf,
			{ "Channel SI PF", "dect_nwk.s.ie.terminal_capability.profile_indicator_8.channel_sipf", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_CHANNEL_SIPF, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_8_packet_data_category,
			{ "DPRS/NG-DECT Packet Data Category", "dect_nwk.s.ie.terminal_capability.profile_indicator_8.packet_data_category", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_terminal_capability_profile_indicator_8_packet_data_categories_val),
				DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_8_PACKET_DATA_CATEGORY, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9,
			{ "Profile indicator 9", "dect_nwk.s.ie.terminal_capability.profile_indicator_9", FT_UINT8, BASE_HEX,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9_dprs_3,
			{ "DPRS Class 3 management and A-field procedures", "dect_nwk.s.ie.terminal_capability.profile_indicator_9.dprs_3", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_9_DPRS_3, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9_dprs_4,
			{ "DPRS Class 4 management and A-field procedures", "dect_nwk.s.ie.terminal_capability.profile_indicator_9.dprs_4", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_9_DPRS_4, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9_dect_ule,
			{ "DECT ULE", "dect_nwk.s.ie.terminal_capability.profile_indicator_9.dect_ule", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_terminal_capability_profile_indicator_9_dect_ule_versions_val),
				DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_9_DECT_ULE, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_9_light_data,
			{ "Light data services", "dect_nwk.s.ie.terminal_capability.profile_indicator_9.light_data", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_9_LIGHT_DATA, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10,
			{ "Profile indicator 10", "dect_nwk.s.ie.terminal_capability.profile_indicator_10", FT_UINT8, BASE_HEX,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_date_time_recovery,
			{ "Date and Time recovery", "dect_nwk.s.ie.terminal_capability.profile_indicator_10.date_time_recovery", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_10_DATE_TIME_RECOVERY, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_extended_list_change,
			{ "Extended list change notification", "dect_nwk.s.ie.terminal_capability.profile_indicator_10.extended_list_change", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_10_EXTENDED_LIST_CHANGE, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_screening,
			{ "Screening", "dect_nwk.s.ie.terminal_capability.profile_indicator_10.screening", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_10_SCREENING, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_wrs_2,
			{ "\"V2\" WRS", "dect_nwk.s.ie.terminal_capability.profile_indicator_10.wrs_2", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_10_WRS_2, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_profile_indicator_10_wrs_ule,
			{ "WRS for ULE", "dect_nwk.s.ie.terminal_capability.profile_indicator_10.wrs_ule", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_PROFILE_INDICATOR_10_WRS_ULE, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_dsaa2,
			{ "DSAA2 supported", "dect_nwk.s.ie.terminal_capability.dsaa2", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), 0x40, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_dsc2,
			{ "DSC2 supported", "dect_nwk.s.ie.terminal_capability.dsc2", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), 0x20, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_control_codes,
			{ "Control Codes", "dect_nwk.s.ie.terminal_capability.control_codes", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_terminal_capability_control_codes_val), 0x07, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1,
			{ "escape to 8 bit character sets_1", "dect_nwk.s.ie.terminal_capability.escape_to_char_sets_1", FT_UINT8, BASE_HEX,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1_latin_no1,
			{ "ISO-8859-1", "dect_nwk.s.ie.terminal_capability.escape_to_char_sets_1.latin_no1", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_ESCAPE_TO_CHAR_SETS_1_LATIN_NO1, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1_latin_no9,
			{ "ISO-8859-15", "dect_nwk.s.ie.terminal_capability.escape_to_char_sets_1.latin_no9", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_ESCAPE_TO_CHAR_SETS_1_LATIN_NO9, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1_latin_no5,
			{ "ISO-8859-9", "dect_nwk.s.ie.terminal_capability.escape_to_char_sets_1.latin_no5", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_ESCAPE_TO_CHAR_SETS_1_LATIN_NO5, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_escape_to_char_sets_1_greek,
			{ "ISO-8859-7", "dect_nwk.s.ie.terminal_capability.escape_to_char_sets_1.greek", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_ESCAPE_TO_CHAR_SETS_1_GREEK, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_blind_slot_6,
			{ "Blind Slot Octet 6", "dect_nwk.s.ie.terminal_capability.blind_slot_6", FT_UINT8, BASE_HEX,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_blind_slot_indication,
			{ "Blind slot indication", "dect_nwk.s.ie.terminal_capability.blind_slot_indication", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_terminal_capability_blind_slot_indication_val), 0x60, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_sp0,
			{ "SP0", "dect_nwk.s.ie.terminal_capability.sp0", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_sp1,
			{ "SP1", "dect_nwk.s.ie.terminal_capability.sp1", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP1, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_sp2,
			{ "SP2", "dect_nwk.s.ie.terminal_capability.sp2", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP2, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_sp3,
			{ "SP3", "dect_nwk.s.ie.terminal_capability.sp3", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP3, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_sp4,
			{ "SP4", "dect_nwk.s.ie.terminal_capability.sp4", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP4, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_blind_slot_6a,
			{ "Blind Slot Octet 6a", "dect_nwk.s.ie.terminal_capability.blind_slot_6a", FT_UINT8, BASE_HEX,
				NULL, 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_sp5,
			{ "SP5", "dect_nwk.s.ie.terminal_capability.sp5", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP5, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_sp6,
			{ "SP6", "dect_nwk.s.ie.terminal_capability.sp6", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP6, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_sp7,
			{ "SP7", "dect_nwk.s.ie.terminal_capability.sp7", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP7, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_sp8,
			{ "SP8", "dect_nwk.s.ie.terminal_capability.sp8", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP8, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_sp9,
			{ "SP9", "dect_nwk.s.ie.terminal_capability.sp9", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP9, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_sp10,
			{ "SP10", "dect_nwk.s.ie.terminal_capability.sp10", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP10, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_terminal_capability_sp11,
			{ "SP11", "dect_nwk.s.ie.terminal_capability.sp11", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), DECT_NWK_S_IE_TERMINAL_CAPABILITY_SP11, NULL, HFILL
			}
		},
		/* Escape to proprietary */
		{ &hf_dect_nwk_s_ie_escape_to_proprietary_discriminator_type,
			{ "Discriminator type", "dect_nwk.s.ie.escape_to_proprietary.discriminator_type", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_escape_to_proprietary_discriminator_type_val), 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_escape_to_proprietary_discriminator,
			{ "Discriminator", "dect_nwk.s.ie.escape_to_proprietary.discriminator", FT_UINT16, BASE_HEX,
				NULL, 0x0, NULL, HFILL
			}
		},
		/* Model identifier */
		{ &hf_dect_nwk_s_ie_model_identifier_manic,
			{ "MANIC", "dect_nwk.s.ie.model_identifier.manic", FT_BYTES, BASE_NONE,
				NULL, 0x0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_model_identifier_modic,
			{ "MODIC", "dect_nwk.s.ie.model_identifier.modic", FT_UINT8, BASE_DEC,
				NULL, 0x0, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_model_identifier_imeisv,
			{ "EIMEISV", "dect_nwk.s.ie.model_identifier.imeisv", FT_BYTES, BASE_NONE,
				NULL, 0x0, NULL, HFILL
			}
		},
		/* Codec list */
		{ &hf_dect_nwk_s_ie_codec_list_negotiation_indicator,
			{ "Negotiation indicator", "dect_nwk.s.ie.codec_list.negotiation_indicator", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_codec_list_negotiation_indicator_type_val), 0x70, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_codec_list_codec_identifier,
			{ "Codec identifier", "dect_nwk.s.ie.codec_list.codec_identifier", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_codec_list_codec_identifier_type_val), 0x7F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_codec_list_mac_and_dlc_service,
			{ "MAC and DLC service", "dect_nwk.s.ie.codec_list.mac_and_dlc_service", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_codec_list_mac_and_dlc_service_type_val), 0x0F, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_codec_list_last_codec,
			{ "Last codec", "dect_nwk.s.ie.codec_list.last_codec", FT_BOOLEAN, 8,
				TFS(&tfs_yes_no), 0x80, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_codec_list_c_plane_routing,
			{ "C-plane routing", "dect_nwk.s.ie.codec_list.c_plane_routing", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_codec_list_c_plane_routing_type_val), 0x70, NULL, HFILL
			}
		},
		{ &hf_dect_nwk_s_ie_codec_list_slot_size,
			{ "Slot size", "dect_nwk.s.ie.codec_list.slot_size", FT_UINT8, BASE_HEX,
				VALS(dect_nwk_s_ie_codec_list_slot_size_type_val), 0x0F, NULL, HFILL
			}
		},
	};

	static gint *ett[] = {
		&ett_dect_nwk,
		&ett_dect_nwk_s_ie_element,
		&ett_dect_nwk_s_ie_location_area_li_type
	};

	/* Register protocol */
	proto_dect_nwk = proto_register_protocol("DECT NWK", "DECT-NWK", "dect_nwk");

	proto_register_subtree_array(ett, array_length(ett));
	proto_register_field_array(proto_dect_nwk, hf, array_length(hf));

	dect_nwk_handle = register_dissector("dect_nwk", dissect_dect_nwk, proto_dect_nwk);
}

void proto_reg_handoff_dect_nwk(void)
{
	dissector_add_uint("dect_dlc.sapi", 0, dect_nwk_handle);
	dissector_add_uint("dect_dlc.sapi", 3, dect_nwk_handle);
}

/*
 * Editor modelines  -  http://www.wireshark.org/tools/modelines.html
 *
 * Local variables:
 * c-basic-offset: 8
 * tab-width: 8
 * indent-tabs-mode: t
 * End:
 *
 * vi: set shiftwidth=8 tabstop=8 noexpandtab:
 * :indentSize=8:tabSize=8:noTabs=false:
 */
