aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-dect-aastra.c
diff options
context:
space:
mode:
Diffstat (limited to 'epan/dissectors/packet-dect-aastra.c')
-rw-r--r--epan/dissectors/packet-dect-aastra.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/epan/dissectors/packet-dect-aastra.c b/epan/dissectors/packet-dect-aastra.c
index 974848f4e6..b126a92446 100644
--- a/epan/dissectors/packet-dect-aastra.c
+++ b/epan/dissectors/packet-dect-aastra.c
@@ -28,6 +28,7 @@ static gint hf_xdlc_subfield = -1;
static gint ett_aamide = -1;
static dissector_handle_t data_handle;
+static dissector_handle_t dlc_handle;
#define AAMIDE_ETH_T_XDLC 0xA000
#define AAMIDE_ETH_T_DOWNLOAD 0xA002
@@ -150,10 +151,14 @@ static int dissect_aamide_xdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
col_append_fstr(pinfo->cinfo, COL_INFO, "MCEI=%02x ", mcei);
proto_tree_add_item(tree, hf_xdlc_mcei, tvb, offset+4, 1, ENC_NA);
break;
+ case AAMIDE_P_LC_DTR_IND:
+ mcei = tvb_get_guint8(tvb, offset+4);
+ col_append_fstr(pinfo->cinfo, COL_INFO, "MCEI=%02x ", mcei);
+ proto_tree_add_item(tree, hf_xdlc_mcei, tvb, offset+4, 1, ENC_NA);
+ proto_tree_add_item(tree, hf_xdlc_subfield, tvb, offset+5, 1, ENC_NA);
+ break;
case AAMIDE_P_LC_DATA_REQ:
case AAMIDE_P_LC_DATA_IND:
- case AAMIDE_P_LC_DTR_IND:
- default:
mcei = tvb_get_guint8(tvb, offset+4);
col_append_fstr(pinfo->cinfo, COL_INFO, "MCEI=%02x ", mcei);
proto_tree_add_item(tree, hf_xdlc_mcei, tvb, offset+4, 1, ENC_NA);
@@ -161,6 +166,11 @@ static int dissect_aamide_xdlc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
payload_len = tvb_get_guint8(tvb, offset+6);
payload_len = tvb_get_guint8(tvb, offset+6);
payload_tvb = tvb_new_subset_length(tvb, offset+7, payload_len);
+ if (payload_tvb)
+ call_dissector(dlc_handle, payload_tvb, pinfo, tree);
+ payload_tvb = NULL;
+ break;
+ default:
break;
}
@@ -225,6 +235,7 @@ void proto_reg_handoff_dect_aastra(void)
dissector_add_uint("ethertype", AAMIDE_ETH_T_XDLC, xdlc_handle);
data_handle = find_dissector("data");
+ dlc_handle = find_dissector("dect_dlc");
}
/*