diff options
author | Pascal Quantin <pascal.quantin@gmail.com> | 2014-05-01 19:38:21 +0200 |
---|---|---|
committer | Pascal Quantin <pascal.quantin@gmail.com> | 2014-05-01 19:04:24 +0000 |
commit | 4d55a12c0e30d3e25ae6a8f7764c61b0ebc8a4cc (patch) | |
tree | 5e97fc3149594aea0899130aca852728877dc989 /epan/dissectors/packet-mbim.c | |
parent | a42b04eade88c6b952b4600bd87361601dfd9d49 (diff) |
MBIM: dissect MBIM_SET_STK_PAC and MBIM_STK_PAC_INFO messages
Change-Id: Ib58dece7ce7278e292d88f68368c238695c32394
Reviewed-on: https://code.wireshark.org/review/1463
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-mbim.c')
-rw-r--r-- | epan/dissectors/packet-mbim.c | 672 |
1 files changed, 663 insertions, 9 deletions
diff --git a/epan/dissectors/packet-mbim.c b/epan/dissectors/packet-mbim.c index 8a575667a3..69f4a907a0 100644 --- a/epan/dissectors/packet-mbim.c +++ b/epan/dissectors/packet-mbim.c @@ -425,7 +425,97 @@ static int hf_mbim_set_phonebook_write_name_length = -1; static int hf_mbim_set_phonebook_write_number = -1; static int hf_mbim_set_phonebook_write_name = -1; static int hf_mbim_set_stk_pac_pac_host_control = -1; +static int hf_mbim_set_stk_pac_pac_host_control_refresh = -1; +static int hf_mbim_set_stk_pac_pac_host_control_more_time = -1; +static int hf_mbim_set_stk_pac_pac_host_control_poll_interval = -1; +static int hf_mbim_set_stk_pac_pac_host_control_polling_off = -1; +static int hf_mbim_set_stk_pac_pac_host_control_set_up_evt_list = -1; +static int hf_mbim_set_stk_pac_pac_host_control_set_up_call = -1; +static int hf_mbim_set_stk_pac_pac_host_control_send_ss = -1; +static int hf_mbim_set_stk_pac_pac_host_control_send_ussd = -1; +static int hf_mbim_set_stk_pac_pac_host_control_send_short_msg = -1; +static int hf_mbim_set_stk_pac_pac_host_control_send_dtmf = -1; +static int hf_mbim_set_stk_pac_pac_host_control_launch_browser = -1; +static int hf_mbim_set_stk_pac_pac_host_control_geo_loc_req = -1; +static int hf_mbim_set_stk_pac_pac_host_control_play_tone = -1; +static int hf_mbim_set_stk_pac_pac_host_control_display_text = -1; +static int hf_mbim_set_stk_pac_pac_host_control_get_inkey = -1; +static int hf_mbim_set_stk_pac_pac_host_control_get_input = -1; +static int hf_mbim_set_stk_pac_pac_host_control_select_item = -1; +static int hf_mbim_set_stk_pac_pac_host_control_set_up_menu = -1; +static int hf_mbim_set_stk_pac_pac_host_control_prov_local_info = -1; +static int hf_mbim_set_stk_pac_pac_host_control_timer_management = -1; +static int hf_mbim_set_stk_pac_pac_host_control_set_up_idle_mode_text = -1; +static int hf_mbim_set_stk_pac_pac_host_control_perform_card_apdu = -1; +static int hf_mbim_set_stk_pac_pac_host_control_power_on_card = -1; +static int hf_mbim_set_stk_pac_pac_host_control_power_off_card = -1; +static int hf_mbim_set_stk_pac_pac_host_control_get_reader_status = -1; +static int hf_mbim_set_stk_pac_pac_host_control_run_at_cmd = -1; +static int hf_mbim_set_stk_pac_pac_host_control_lang_notif = -1; +static int hf_mbim_set_stk_pac_pac_host_control_open_channel = -1; +static int hf_mbim_set_stk_pac_pac_host_control_close_channel = -1; +static int hf_mbim_set_stk_pac_pac_host_control_receive_data = -1; +static int hf_mbim_set_stk_pac_pac_host_control_send_data = -1; +static int hf_mbim_set_stk_pac_pac_host_control_get_channel_status = -1; +static int hf_mbim_set_stk_pac_pac_host_control_service_search = -1; +static int hf_mbim_set_stk_pac_pac_host_control_get_service_info = -1; +static int hf_mbim_set_stk_pac_pac_host_control_declare_service = -1; +static int hf_mbim_set_stk_pac_pac_host_control_set_frames = -1; +static int hf_mbim_set_stk_pac_pac_host_control_get_frames_status = -1; +static int hf_mbim_set_stk_pac_pac_host_control_retrieve_multimedia_msg = -1; +static int hf_mbim_set_stk_pac_pac_host_control_submit_multimedia_msg = -1; +static int hf_mbim_set_stk_pac_pac_host_control_display_multimedia_msg = -1; +static int hf_mbim_set_stk_pac_pac_host_control_activate = -1; +static int hf_mbim_set_stk_pac_pac_host_control_contactless_state_changed = -1; +static int hf_mbim_set_stk_pac_pac_host_control_cmd_container = -1; +static int hf_mbim_set_stk_pac_pac_host_control_encapsulated_session_ctrl = -1; +static int hf_mbim_set_stk_pac_pac_host_control_end_proact_session = -1; static int hf_mbim_stk_pac_info_pac_support = -1; +static int hf_mbim_stk_pac_info_pac_support_refresh = -1; +static int hf_mbim_stk_pac_info_pac_support_more_time = -1; +static int hf_mbim_stk_pac_info_pac_support_poll_interval = -1; +static int hf_mbim_stk_pac_info_pac_support_polling_off = -1; +static int hf_mbim_stk_pac_info_pac_support_set_up_evt_list = -1; +static int hf_mbim_stk_pac_info_pac_support_set_up_call = -1; +static int hf_mbim_stk_pac_info_pac_support_send_ss = -1; +static int hf_mbim_stk_pac_info_pac_support_send_ussd = -1; +static int hf_mbim_stk_pac_info_pac_support_send_short_msg = -1; +static int hf_mbim_stk_pac_info_pac_support_send_dtmf = -1; +static int hf_mbim_stk_pac_info_pac_support_launch_browser = -1; +static int hf_mbim_stk_pac_info_pac_support_geo_loc_req = -1; +static int hf_mbim_stk_pac_info_pac_support_play_tone = -1; +static int hf_mbim_stk_pac_info_pac_support_display_text = -1; +static int hf_mbim_stk_pac_info_pac_support_get_inkey = -1; +static int hf_mbim_stk_pac_info_pac_support_get_input = -1; +static int hf_mbim_stk_pac_info_pac_support_select_item = -1; +static int hf_mbim_stk_pac_info_pac_support_set_up_menu = -1; +static int hf_mbim_stk_pac_info_pac_support_prov_local_info = -1; +static int hf_mbim_stk_pac_info_pac_support_timer_management = -1; +static int hf_mbim_stk_pac_info_pac_support_set_up_idle_mode_text = -1; +static int hf_mbim_stk_pac_info_pac_support_perform_card_apdu = -1; +static int hf_mbim_stk_pac_info_pac_support_power_on_card = -1; +static int hf_mbim_stk_pac_info_pac_support_power_off_card = -1; +static int hf_mbim_stk_pac_info_pac_support_get_reader_status = -1; +static int hf_mbim_stk_pac_info_pac_support_run_at_cmd = -1; +static int hf_mbim_stk_pac_info_pac_support_lang_notif = -1; +static int hf_mbim_stk_pac_info_pac_support_open_channel = -1; +static int hf_mbim_stk_pac_info_pac_support_close_channel = -1; +static int hf_mbim_stk_pac_info_pac_support_receive_data = -1; +static int hf_mbim_stk_pac_info_pac_support_send_data = -1; +static int hf_mbim_stk_pac_info_pac_support_get_channel_status = -1; +static int hf_mbim_stk_pac_info_pac_support_service_search = -1; +static int hf_mbim_stk_pac_info_pac_support_get_service_info = -1; +static int hf_mbim_stk_pac_info_pac_support_declare_service = -1; +static int hf_mbim_stk_pac_info_pac_support_set_frames = -1; +static int hf_mbim_stk_pac_info_pac_support_get_frames_status = -1; +static int hf_mbim_stk_pac_info_pac_support_retrieve_multimedia_msg = -1; +static int hf_mbim_stk_pac_info_pac_support_submit_multimedia_msg = -1; +static int hf_mbim_stk_pac_info_pac_support_display_multimedia_msg = -1; +static int hf_mbim_stk_pac_info_pac_support_activate = -1; +static int hf_mbim_stk_pac_info_pac_support_contactless_state_changed = -1; +static int hf_mbim_stk_pac_info_pac_support_cmd_container = -1; +static int hf_mbim_stk_pac_info_pac_support_encapsulated_session_ctrl = -1; +static int hf_mbim_stk_pac_info_pac_support_end_proact_session = -1; static int hf_mbim_stk_pac_pac_type = -1; static int hf_mbim_stk_pac_pac = -1; static int hf_mbim_set_stk_terminal_response_response_length = -1; @@ -546,6 +636,7 @@ static gint ett_mbim_pair_list = -1; static gint ett_mbim_pin = -1; static gint ett_mbim_buffer = -1; static gint ett_mbim_sc_address = -1; +static gint ett_mbim_pac = -1; static gint ett_mbim_fragment = -1; static gint ett_mbim_fragments = -1; @@ -1337,7 +1428,11 @@ static const value_string mbim_phonebook_write_flag_vals[] = { { 0, NULL} }; -#if 0 +static const true_false_string mbim_pac_host_control_val = { + "Host wants to handle command", + "Host does not want to handle command" +}; + static const value_string mbim_stk_pac_profile_vals[] = { { 0, "Not Handled By Function Cannot Be Handled By Host"}, { 1, "Not Handled By Function May Be Handled By Host"}, @@ -1349,7 +1444,6 @@ static const value_string mbim_stk_pac_profile_vals[] = { { 7, "Handled By Host Function Able To Handle"}, { 0, NULL} }; -#endif static const value_string mbim_stk_pac_type_vals[] = { { 0, "Proactive Command"}, @@ -3391,6 +3485,116 @@ mbim_dissect_set_phonebook_write(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tr } static void +mbim_dissect_set_stk_pac(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, gint offset) +{ + proto_item *ti; + proto_tree *subtree; + + ti = proto_tree_add_item(tree, hf_mbim_set_stk_pac_pac_host_control, tvb, offset, 32, ENC_NA); + subtree = proto_item_add_subtree(ti, ett_mbim_pac); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_refresh, tvb, offset, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_more_time, tvb, offset, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_poll_interval, tvb, offset, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_polling_off, tvb, offset, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_set_up_evt_list, tvb, offset, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_set_up_call, tvb, offset+1, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_send_ss, tvb, offset+1, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_send_ussd, tvb, offset+1, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_send_short_msg, tvb, offset+1, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_send_dtmf, tvb, offset+1, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_launch_browser, tvb, offset+1, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_geo_loc_req, tvb, offset+2, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_play_tone, tvb, offset+2, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_display_text, tvb, offset+2, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_get_inkey, tvb, offset+2, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_get_input, tvb, offset+2, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_select_item, tvb, offset+3, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_set_up_menu, tvb, offset+3, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_prov_local_info, tvb, offset+3, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_timer_management, tvb, offset+3, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_set_up_idle_mode_text, tvb, offset+3, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_perform_card_apdu, tvb, offset+3, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_power_on_card, tvb, offset+3, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_power_off_card, tvb, offset+4, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_get_reader_status, tvb, offset+4, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_run_at_cmd, tvb, offset+4, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_lang_notif, tvb, offset+4, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_open_channel, tvb, offset+5, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_close_channel, tvb, offset+5, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_receive_data, tvb, offset+5, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_send_data, tvb, offset+5, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_get_channel_status, tvb, offset+5, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_service_search, tvb, offset+5, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_get_service_info, tvb, offset+5, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_declare_service, tvb, offset+5, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_set_frames, tvb, offset+6, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_get_frames_status, tvb, offset+6, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_retrieve_multimedia_msg, tvb, offset+7, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_submit_multimedia_msg, tvb, offset+7, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_display_multimedia_msg, tvb, offset+7, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_activate, tvb, offset+8, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_contactless_state_changed, tvb, offset+8, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_cmd_container, tvb, offset+9, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_encapsulated_session_ctrl, tvb, offset+9, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control_end_proact_session, tvb, offset+10, 1, ENC_NA); +} + +static void +mbim_dissect_stk_pac_info(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, gint offset) +{ + proto_item *ti; + proto_tree *subtree; + + ti = proto_tree_add_item(tree, hf_mbim_stk_pac_info_pac_support, tvb, offset, 256, ENC_NA); + subtree = proto_item_add_subtree(ti, ett_mbim_pac); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_refresh, tvb, offset+1, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_more_time, tvb, offset+2, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_poll_interval, tvb, offset+3, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_polling_off, tvb, offset+4, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_set_up_evt_list, tvb, offset+5, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_set_up_call, tvb, offset+10, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_send_ss, tvb, offset+11, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_send_ussd, tvb, offset+12, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_send_short_msg, tvb, offset+13, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_send_dtmf, tvb, offset+14, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_launch_browser, tvb, offset+15, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_geo_loc_req, tvb, offset+16, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_play_tone, tvb, offset+20, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_display_text, tvb, offset+21, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_get_inkey, tvb, offset+22, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_get_input, tvb, offset+23, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_select_item, tvb, offset+24, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_set_up_menu, tvb, offset+25, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_prov_local_info, tvb, offset+26, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_timer_management, tvb, offset+27, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_set_up_idle_mode_text, tvb, offset+28, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_perform_card_apdu, tvb, offset+30, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_power_on_card, tvb, offset+31, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_power_off_card, tvb, offset+32, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_get_reader_status, tvb, offset+33, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_run_at_cmd, tvb, offset+34, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_lang_notif, tvb, offset+35, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_open_channel, tvb, offset+40, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_close_channel, tvb, offset+41, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_receive_data, tvb, offset+42, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_send_data, tvb, offset+43, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_get_channel_status, tvb, offset+44, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_service_search, tvb, offset+45, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_get_service_info, tvb, offset+46, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_declare_service, tvb, offset+47, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_set_frames, tvb, offset+50, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_get_frames_status, tvb, offset+51, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_retrieve_multimedia_msg, tvb, offset+60, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_submit_multimedia_msg, tvb, offset+61, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_display_multimedia_msg, tvb, offset+62, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_activate, tvb, offset+70, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_contactless_state_changed, tvb, offset+71, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_cmd_container, tvb, offset+72, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_encapsulated_session_ctrl, tvb, offset+73, 1, ENC_NA); + proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support_end_proact_session, tvb, offset+81, 1, ENC_NA); +} + +static void mbim_dissect_set_stk_terminal_response(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset) { tvbuff_t *pac_tvb; @@ -3572,7 +3776,7 @@ dissect_mbim_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * proto_item *ti; proto_tree *mbim_tree, *header_tree, *subtree; gint offset = 0; - guint32 msg_type, msg_length, trans_id, open_count; + guint32 msg_type, trans_id, open_count; guint64 trans_id_key, *p_trans_id_key; conversation_t *conversation; struct mbim_conv_info *mbim_conv; @@ -3616,8 +3820,7 @@ dissect_mbim_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * col_add_fstr(pinfo->cinfo, COL_INFO, "%-19s", val_to_str_const(msg_type, mbim_msg_type_vals, "Unknown")); proto_tree_add_uint(header_tree, hf_mbim_header_message_type, tvb, offset, 4, msg_type); offset += 4; - msg_length = tvb_get_letohl(tvb, offset); - proto_tree_add_uint(header_tree, hf_mbim_header_message_length, tvb, offset, 4, msg_length); + proto_tree_add_item(header_tree, hf_mbim_header_message_length, tvb, offset, 4, ENC_LITTLE_ENDIAN); offset += 4; trans_id = tvb_get_letohl(tvb, offset); proto_tree_add_uint(header_tree, hf_mbim_header_transaction_id, tvb, offset, 4, trans_id); @@ -3966,7 +4169,7 @@ dissect_mbim_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * break; case MBIM_CID_PHONEBOOK_WRITE: if (cmd_type == MBIM_COMMAND_SET) { - mbim_dissect_set_phonebook_write(frag_tvb, pinfo, tree, offset); + mbim_dissect_set_phonebook_write(frag_tvb, pinfo, subtree, offset); } else { proto_tree_add_expert(subtree, pinfo, &ei_mbim_unexpected_msg, frag_tvb, offset, -1); } @@ -3980,7 +4183,7 @@ dissect_mbim_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * switch (cid) { case MBIM_CID_STK_PAC: if (cmd_type == MBIM_COMMAND_SET) { - proto_tree_add_item(subtree, hf_mbim_set_stk_pac_pac_host_control, frag_tvb, offset, 32, ENC_NA); + mbim_dissect_set_stk_pac(frag_tvb, pinfo, subtree, offset); } else { if (info_buff_len) { proto_tree_add_expert(subtree, pinfo, &ei_mbim_unexpected_info_buffer, frag_tvb, offset, info_buff_len); @@ -3989,7 +4192,7 @@ dissect_mbim_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * break; case MBIM_CID_STK_TERMINAL_RESPONSE: if (cmd_type == MBIM_COMMAND_SET) { - mbim_dissect_set_stk_terminal_response(frag_tvb, pinfo, tree, offset); + mbim_dissect_set_stk_terminal_response(frag_tvb, pinfo, subtree, offset); } else { proto_tree_add_expert(subtree, pinfo, &ei_mbim_unexpected_msg, frag_tvb, offset, -1); } @@ -4451,7 +4654,7 @@ dissect_mbim_control(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void * switch (cid) { case MBIM_CID_STK_PAC: if (msg_type == MBIM_COMMAND_DONE) { - proto_tree_add_item(subtree, hf_mbim_stk_pac_info_pac_support, frag_tvb, offset, 256, ENC_NA); + mbim_dissect_stk_pac_info(frag_tvb, pinfo, subtree, offset); } else { tvbuff_t *pac_tvb; gint pac_length; @@ -6774,11 +6977,461 @@ proto_register_mbim(void) FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL } }, + { &hf_mbim_set_stk_pac_pac_host_control_refresh, + { "Refresh", "mbim.control.set_stk_pac.pac_host_control.refresh", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x02, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_more_time, + { "More Time", "mbim.control.set_stk_pac.pac_host_control.more_time", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x04, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_poll_interval, + { "Poll Interval", "mbim.control.set_stk_pac.pac_host_control.poll_interval", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x08, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_polling_off, + { "Polling Off", "mbim.control.set_stk_pac.pac_host_control.polling_off", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x10, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_set_up_evt_list, + { "Set Up Event List", "mbim.control.set_stk_pac.pac_host_control.set_up_evt_list", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x20, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_set_up_call, + { "Set Up Call", "mbim.control.set_stk_pac.pac_host_control.set_up_call", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x04, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_send_ss, + { "Send SS", "mbim.control.set_stk_pac.pac_host_control.send_ss", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x08, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_send_ussd, + { "Send USSD", "mbim.control.set_stk_pac.pac_host_control.send_ussd", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x10, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_send_short_msg, + { "Send Short Message", "mbim.control.set_stk_pac.pac_host_control.send_short_msg", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x20, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_send_dtmf, + { "Send DTMF", "mbim.control.set_stk_pac.pac_host_control.send_dtmf", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x40, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_launch_browser, + { "Launch Browser", "mbim.control.set_stk_pac.pac_host_control.launch_browser", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x80, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_geo_loc_req, + { "Geographical Location Request", "mbim.control.set_stk_pac.pac_host_control.geo_loc_req", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x01, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_play_tone, + { "Play Tone", "mbim.control.set_stk_pac.pac_host_control.play_tone", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x10, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_display_text, + { "Display Text", "mbim.control.set_stk_pac.pac_host_control.display_text", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x20, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_get_inkey, + { "Get Inkey", "mbim.control.set_stk_pac.pac_host_control.get_inkey", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x40, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_get_input, + { "Get Input", "mbim.control.set_stk_pac.pac_host_control.get_input", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x80, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_select_item, + { "Select Item", "mbim.control.set_stk_pac.pac_host_control.select_item", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x01, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_set_up_menu, + { "Set Up Menu", "mbim.control.set_stk_pac.pac_host_control.set_up_menu", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x02, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_prov_local_info, + { "Provide Local Information", "mbim.control.set_stk_pac.pac_host_control.prov_local_info", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x04, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_timer_management, + { "Timer Management", "mbim.control.set_stk_pac.pac_host_control.timer_management", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x08, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_set_up_idle_mode_text, + { "Set Up Idle Mode Text", "mbim.control.set_stk_pac.pac_host_control.set_up_idle_mode_text", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x10, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_perform_card_apdu, + { "Perform Card APDU", "mbim.control.set_stk_pac.pac_host_control.perform_card_apdu", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x40, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_power_on_card, + { "Power On Card", "mbim.control.set_stk_pac.pac_host_control.power_on_card", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x80, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_power_off_card, + { "Power Off Card", "mbim.control.set_stk_pac.pac_host_control.power_off_card", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x01, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_get_reader_status, + { "Get Reader Status", "mbim.control.set_stk_pac.pac_host_control.get_reader_status", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x02, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_run_at_cmd, + { "Run AT Command", "mbim.control.set_stk_pac.pac_host_control.run_at_cmd", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x04, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_lang_notif, + { "Language Notification", "mbim.control.set_stk_pac.pac_host_control.lang_notif", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x08, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_open_channel, + { "Open Channel", "mbim.control.set_stk_pac.pac_host_control.open_channel", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x01, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_close_channel, + { "Close Channel", "mbim.control.set_stk_pac.pac_host_control.close_channel", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x02, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_receive_data, + { "Receive Data", "mbim.control.set_stk_pac.pac_host_control.receive_data", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x04, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_send_data, + { "Send Data", "mbim.control.set_stk_pac.pac_host_control.send_data", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x08, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_get_channel_status, + { "Get Channel Status", "mbim.control.set_stk_pac.pac_host_control.get_channel_status", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x10, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_service_search, + { "Service Search", "mbim.control.set_stk_pac.pac_host_control.service_search", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x20, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_get_service_info, + { "Get Service Information", "mbim.control.set_stk_pac.pac_host_control.get_service_info", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x40, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_declare_service, + { "Declare Service", "mbim.control.set_stk_pac.pac_host_control.declare_service", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x80, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_set_frames, + { "Set Frames", "mbim.control.set_stk_pac.pac_host_control.set_frames", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x04, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_get_frames_status, + { "Get Frames Status", "mbim.control.set_stk_pac.pac_host_control.get_frames_status", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x08, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_retrieve_multimedia_msg, + { "Retrieve Multimedia Message", "mbim.control.set_stk_pac.pac_host_control.retrieve_multimedia_msg", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x10, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_submit_multimedia_msg, + { "Submit Multimedia Message", "mbim.control.set_stk_pac.pac_host_control.submit_multimedia_msg", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x20, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_display_multimedia_msg, + { "Display Multimedia Message", "mbim.control.set_stk_pac.pac_host_control.display_multimedia_msg", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x40, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_activate, + { "Activate", "mbim.control.set_stk_pac.pac_host_control.activate", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x40, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_contactless_state_changed, + { "Contactless State Changed", "mbim.control.set_stk_pac.pac_host_control.contactless_state_changed", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x80, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_cmd_container, + { "Command Container", "mbim.control.set_stk_pac.pac_host_control.cmd_container", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x01, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_encapsulated_session_ctrl, + { "Encapsulated Session Control", "mbim.control.set_stk_pac.pac_host_control.encapsulated_session_ctrl", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x02, + NULL, HFILL } + }, + { &hf_mbim_set_stk_pac_pac_host_control_end_proact_session, + { "End Proactive Session", "mbim.control.set_stk_pac.pac_host_control.end_proact_session", + FT_BOOLEAN, 8, TFS(&mbim_pac_host_control_val), 0x02, + NULL, HFILL } + }, { &hf_mbim_stk_pac_info_pac_support, { "PAC Host Control", "mbim.control.stk_pac_info.pac_support", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL } }, + { &hf_mbim_stk_pac_info_pac_support_refresh, + { "Refresh", "mbim.control.stk_pac_info.pac_support.refresh", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_more_time, + { "More Time", "mbim.control.stk_pac_info.pac_support.more_time", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_poll_interval, + { "Poll Interval", "mbim.control.stk_pac_info.pac_support.poll_interval", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_polling_off, + { "Polling Off", "mbim.control.stk_pac_info.pac_support.polling_off", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_set_up_evt_list, + { "Set Up Event List", "mbim.control.stk_pac_info.pac_support.set_up_evt_list", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_set_up_call, + { "Set Up Call", "mbim.control.stk_pac_info.pac_support.set_up_call", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_send_ss, + { "Send SS", "mbim.control.stk_pac_info.pac_support.send_ss", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_send_ussd, + { "Send USSD", "mbim.control.stk_pac_info.pac_support.send_ussd", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_send_short_msg, + { "Send Short Message", "mbim.control.stk_pac_info.pac_support.send_short_msg", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_send_dtmf, + { "Send DTMF", "mbim.control.stk_pac_info.pac_support.send_dtmf", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_launch_browser, + { "Launch Browser", "mbim.control.stk_pac_info.pac_support.launch_browser", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_geo_loc_req, + { "Geographical Location Request", "mbim.control.stk_pac_info.pac_support.geo_loc_req", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_play_tone, + { "Play Tone", "mbim.control.stk_pac_info.pac_support.play_tone", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_display_text, + { "Display Text", "mbim.control.stk_pac_info.pac_support.display_text", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_get_inkey, + { "Get Inkey", "mbim.control.stk_pac_info.pac_support.get_inkey", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_get_input, + { "Get Input", "mbim.control.stk_pac_info.pac_support.get_input", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_select_item, + { "Select Item", "mbim.control.stk_pac_info.pac_support.select_item", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_set_up_menu, + { "Set Up Menu", "mbim.control.stk_pac_info.pac_support.set_up_menu", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_prov_local_info, + { "Provide Local Information", "mbim.control.stk_pac_info.pac_support.prov_local_info", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_timer_management, + { "Timer Management", "mbim.control.stk_pac_info.pac_support.timer_management", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_set_up_idle_mode_text, + { "Set Up Idle Mode Text", "mbim.control.stk_pac_info.pac_support.set_up_idle_mode_text", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_perform_card_apdu, + { "Perform Card APDU", "mbim.control.stk_pac_info.pac_support.perform_card_apdu", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_power_on_card, + { "Power On Card", "mbim.control.stk_pac_info.pac_support.power_on_card", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_power_off_card, + { "Power Off Card", "mbim.control.stk_pac_info.pac_support.power_off_card", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_get_reader_status, + { "Get Reader Status", "mbim.control.stk_pac_info.pac_support.get_reader_status", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_run_at_cmd, + { "Run AT Command", "mbim.control.stk_pac_info.pac_support.run_at_cmd", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_lang_notif, + { "Language Notification", "mbim.control.stk_pac_info.pac_support.lang_notif", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_open_channel, + { "Open Channel", "mbim.control.stk_pac_info.pac_support.open_channel", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_close_channel, + { "Close Channel", "mbim.control.stk_pac_info.pac_support.close_channel", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_receive_data, + { "Receive Data", "mbim.control.stk_pac_info.pac_support.receive_data", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_send_data, + { "Send Data", "mbim.control.stk_pac_info.pac_support.send_data", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_get_channel_status, + { "Get Channel Status", "mbim.control.stk_pac_info.pac_support.get_channel_status", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_service_search, + { "Service Search", "mbim.control.stk_pac_info.pac_support.service_search", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_get_service_info, + { "Get Service Information", "mbim.control.stk_pac_info.pac_support.get_service_info", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_declare_service, + { "Declare Service", "mbim.control.stk_pac_info.pac_support.declare_service", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_set_frames, + { "Set Frames", "mbim.control.stk_pac_info.pac_support.set_frames", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_get_frames_status, + { "Get Frames Status", "mbim.control.stk_pac_info.pac_support.get_frames_status", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_retrieve_multimedia_msg, + { "Retrieve Multimedia Message", "mbim.control.stk_pac_info.pac_support.retrieve_multimedia_msg", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_submit_multimedia_msg, + { "Submit Multimedia Message", "mbim.control.stk_pac_info.pac_support.submit_multimedia_msg", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_display_multimedia_msg, + { "Display Multimedia Message", "mbim.control.stk_pac_info.pac_support.display_multimedia_msg", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_activate, + { "Activate", "mbim.control.stk_pac_info.pac_support.activate", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_contactless_state_changed, + { "Contactless State Changed", "mbim.control.stk_pac_info.pac_support.contactless_state_changed", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_cmd_container, + { "Command Container", "mbim.control.stk_pac_info.pac_support.cmd_container", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_encapsulated_session_ctrl, + { "Encapsulated Session Control", "mbim.control.stk_pac_info.pac_support.encapsulated_session_ctrl", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, + { &hf_mbim_stk_pac_info_pac_support_end_proact_session, + { "End Proactive Session", "mbim.control.stk_pac_info.pac_support.end_proact_session", + FT_UINT8, BASE_DEC, VALS(mbim_stk_pac_profile_vals), 0, + NULL, HFILL } + }, { &hf_mbim_stk_pac_pac_type, { "PAC Type", "mbim.control.stk_pac.pac_type", FT_UINT32, BASE_DEC, VALS(mbim_stk_pac_type_vals), 0, @@ -7281,6 +7934,7 @@ proto_register_mbim(void) &ett_mbim_pin, &ett_mbim_buffer, &ett_mbim_sc_address, + &ett_mbim_pac, &ett_mbim_fragment, &ett_mbim_fragments }; |