aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-mtp3mg.c
diff options
context:
space:
mode:
authorBill Meier <wmeier@newsguy.com>2014-09-30 16:59:17 -0400
committerBill Meier <wmeier@newsguy.com>2014-09-30 21:06:37 +0000
commit9b181b97c62542625a5ea6573e68c85202dd1f38 (patch)
treec210a0e51e6165a98bbe3eee64cf2e9a566cde49 /epan/dissectors/packet-mtp3mg.c
parent6896c2648cbdd13a1a00d429ee43be6a2680f094 (diff)
Add editor modelines; Adjust whitespace; Remove boilerplate comments
Change-Id: I1f5f83ed441f6009125cf2cbe5023af04986898a Reviewed-on: https://code.wireshark.org/review/4392 Reviewed-by: Bill Meier <wmeier@newsguy.com>
Diffstat (limited to 'epan/dissectors/packet-mtp3mg.c')
-rw-r--r--epan/dissectors/packet-mtp3mg.c1504
1 files changed, 758 insertions, 746 deletions
diff --git a/epan/dissectors/packet-mtp3mg.c b/epan/dissectors/packet-mtp3mg.c
index 6e160e33d5..3ab68c5838 100644
--- a/epan/dissectors/packet-mtp3mg.c
+++ b/epan/dissectors/packet-mtp3mg.c
@@ -57,10 +57,10 @@ void proto_reg_handoff_mtp3mg(void);
#define H0_FCM 0x03
#define H0_TFM 0x04
#define H0_RSM 0x05
-#define H0_MIM 0x06 /* not used in Japan */
-#define H0_TRM 0x07 /* not used in Japan */
-#define H0_DLM 0x08 /* not used in Japan */
-#define H0_UFC 0x0a /* not used in Japan */
+#define H0_MIM 0x06 /* not used in Japan */
+#define H0_TRM 0x07 /* not used in Japan */
+#define H0_DLM 0x08 /* not used in Japan */
+#define H0_UFC 0x0a /* not used in Japan */
static const value_string h0_message_type_values[] = {
{ H0_CHM, "Changeover and changeback messages" },
{ H0_ECM, "Emergency changeover messages" },
@@ -345,23 +345,23 @@ static const value_string japan_test_message_type_acro_values[] = {
/* This list is slightly different from that in packet-mtp3.c */
static const value_string service_indicator_code_vals[] = {
- { 0x0, "Spare" },
- { 0x1, "Spare"},
- { 0x2, "Spare" },
- { 0x3, "SCCP" },
- { 0x4, "TUP" },
- { 0x5, "ISUP" },
- { 0x6, "DUP (call and circuit related messages)" },
- { 0x7, "DUP (facility registration and cancellation message)" },
- { 0x8, "MTP testing user part" },
- { 0x9, "ISUP-b" },
- { 0xa, "ISUP-s" },
- { 0xb, "Spare" },
- { 0xc, "Spare" },
- { 0xd, "Spare" },
- { 0xe, "Spare" },
- { 0xf, "Spare" },
- { 0, NULL }
+ { 0x0, "Spare" },
+ { 0x1, "Spare"},
+ { 0x2, "Spare" },
+ { 0x3, "SCCP" },
+ { 0x4, "TUP" },
+ { 0x5, "ISUP" },
+ { 0x6, "DUP (call and circuit related messages)" },
+ { 0x7, "DUP (facility registration and cancellation message)" },
+ { 0x8, "MTP testing user part" },
+ { 0x9, "ISUP-b" },
+ { 0xa, "ISUP-s" },
+ { 0xb, "Spare" },
+ { 0xc, "Spare" },
+ { 0xd, "Spare" },
+ { 0xe, "Spare" },
+ { 0xf, "Spare" },
+ { 0, NULL }
};
/* Initialize the protocol and registered fields */
@@ -435,190 +435,190 @@ dissect_mtp3mg_unknown_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tr
message_length = tvb_length(tvb);
proto_tree_add_expert_format(tree, pinfo, &ei_mtp3mg_unknown_message, tvb, 0, message_length,
- "Unknown message (%u byte%s)", message_length,
- plurality(message_length, "", "s"));
+ "Unknown message (%u byte%s)", message_length,
+ plurality(message_length, "", "s"));
}
static void
dissect_mtp3mg_chm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- guint8 h1)
+ guint8 h1)
{
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str_const(h1, chm_h1_message_type_acro_values, "Unknown"));
+ val_to_str_const(h1, chm_h1_message_type_acro_values, "Unknown"));
switch (h1)
{
case CHM_H1_COO:
case CHM_H1_COA:
- if (mtp3_standard == ANSI_STANDARD)
- {
- proto_tree_add_item(tree, hf_mtp3mg_coo_ansi_slc, tvb, 0,
- ANSI_COO_LENGTH, ENC_NA);
- proto_tree_add_item(tree, hf_mtp3mg_coo_ansi_fsn, tvb, 0,
- ANSI_COO_LENGTH, ENC_NA);
- } else /* ITU_STANDARD, CHINESE_ITU_STANDARD, and JAPAN_STANDARD */ {
- proto_tree_add_item(tree, hf_mtp3mg_coo_itu_fsn, tvb, 0,
- ITU_COO_LENGTH, ENC_NA);
- }
- break;
+ if (mtp3_standard == ANSI_STANDARD)
+ {
+ proto_tree_add_item(tree, hf_mtp3mg_coo_ansi_slc, tvb, 0,
+ ANSI_COO_LENGTH, ENC_NA);
+ proto_tree_add_item(tree, hf_mtp3mg_coo_ansi_fsn, tvb, 0,
+ ANSI_COO_LENGTH, ENC_NA);
+ } else /* ITU_STANDARD, CHINESE_ITU_STANDARD, and JAPAN_STANDARD */ {
+ proto_tree_add_item(tree, hf_mtp3mg_coo_itu_fsn, tvb, 0,
+ ITU_COO_LENGTH, ENC_NA);
+ }
+ break;
case CHM_H1_XCO:
case CHM_H1_XCA:
- if (mtp3_standard == ANSI_STANDARD)
- {
- proto_tree_add_item(tree, hf_mtp3mg_xco_ansi_slc, tvb, 0,
- ANSI_XCO_LENGTH, ENC_LITTLE_ENDIAN);
- proto_tree_add_item(tree, hf_mtp3mg_xco_ansi_fsn, tvb, 0,
- ANSI_XCO_LENGTH, ENC_LITTLE_ENDIAN);
- } else /* ITU_STANDARD, CHINESE_ITU_STANDARD, and JAPAN_STANDARD */ {
- proto_tree_add_item(tree, hf_mtp3mg_xco_itu_fsn, tvb, 0,
- ITU_XCO_LENGTH, ENC_LITTLE_ENDIAN);
- }
- break;
+ if (mtp3_standard == ANSI_STANDARD)
+ {
+ proto_tree_add_item(tree, hf_mtp3mg_xco_ansi_slc, tvb, 0,
+ ANSI_XCO_LENGTH, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_mtp3mg_xco_ansi_fsn, tvb, 0,
+ ANSI_XCO_LENGTH, ENC_LITTLE_ENDIAN);
+ } else /* ITU_STANDARD, CHINESE_ITU_STANDARD, and JAPAN_STANDARD */ {
+ proto_tree_add_item(tree, hf_mtp3mg_xco_itu_fsn, tvb, 0,
+ ITU_XCO_LENGTH, ENC_LITTLE_ENDIAN);
+ }
+ break;
case CHM_H1_CBD:
case CHM_H1_CBA:
- if (mtp3_standard == ANSI_STANDARD)
- {
- proto_tree_add_item(tree, hf_mtp3mg_cbd_ansi_slc, tvb, 0,
- ANSI_CBD_LENGTH, ENC_LITTLE_ENDIAN);
- proto_tree_add_item(tree, hf_mtp3mg_cbd_ansi_cbc, tvb, 0,
- ANSI_CBD_LENGTH, ENC_LITTLE_ENDIAN);
- } else if (mtp3_standard == JAPAN_STANDARD) {
- proto_tree_add_item(tree, hf_mtp3mg_cbd_japan_cbc, tvb, 0,
- ITU_CBD_LENGTH, ENC_NA);
- } else /* ITU_STANDARD and CHINESE_ITU_STANDARD */ {
- proto_tree_add_item(tree, hf_mtp3mg_cbd_itu_cbc, tvb, 0,
- ITU_CBD_LENGTH, ENC_NA);
- }
- break;
+ if (mtp3_standard == ANSI_STANDARD)
+ {
+ proto_tree_add_item(tree, hf_mtp3mg_cbd_ansi_slc, tvb, 0,
+ ANSI_CBD_LENGTH, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_mtp3mg_cbd_ansi_cbc, tvb, 0,
+ ANSI_CBD_LENGTH, ENC_LITTLE_ENDIAN);
+ } else if (mtp3_standard == JAPAN_STANDARD) {
+ proto_tree_add_item(tree, hf_mtp3mg_cbd_japan_cbc, tvb, 0,
+ ITU_CBD_LENGTH, ENC_NA);
+ } else /* ITU_STANDARD and CHINESE_ITU_STANDARD */ {
+ proto_tree_add_item(tree, hf_mtp3mg_cbd_itu_cbc, tvb, 0,
+ ITU_CBD_LENGTH, ENC_NA);
+ }
+ break;
default:
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
}
}
static void
dissect_mtp3mg_ecm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- guint8 h1)
+ guint8 h1)
{
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str_const(h1, ecm_h1_message_type_acro_values, "Unknown"));
+ val_to_str_const(h1, ecm_h1_message_type_acro_values, "Unknown"));
switch (h1)
{
case ECM_H1_ECO:
case ECM_H1_ECA:
- if (mtp3_standard == ANSI_STANDARD)
- {
- proto_tree_add_item(tree, hf_mtp3mg_eco_ansi_slc, tvb, 0,
- ANSI_ECO_LENGTH, ENC_NA);
- }
- /* else: nothing to dissect */
- break;
+ if (mtp3_standard == ANSI_STANDARD)
+ {
+ proto_tree_add_item(tree, hf_mtp3mg_eco_ansi_slc, tvb, 0,
+ ANSI_ECO_LENGTH, ENC_NA);
+ }
+ /* else: nothing to dissect */
+ break;
default:
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
}
}
static void
dissect_mtp3mg_fcm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- guint8 h1)
+ guint8 h1)
{
proto_item *apc_item;
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str_const(h1, fcm_h1_message_type_acro_values, "Unknown"));
+ val_to_str_const(h1, fcm_h1_message_type_acro_values, "Unknown"));
switch (h1)
{
case FCM_H1_RCT:
- /* nothing to dissect */
- break;
+ /* nothing to dissect */
+ break;
case FCM_H1_TFC:
- if (mtp3_standard == ITU_STANDARD)
- {
+ if (mtp3_standard == ITU_STANDARD)
+ {
- apc_item = proto_tree_add_item(tree, hf_mtp3mg_itu_apc, tvb, 0,
- ITU_PC_LENGTH, ENC_LITTLE_ENDIAN);
+ apc_item = proto_tree_add_item(tree, hf_mtp3mg_itu_apc, tvb, 0,
+ ITU_PC_LENGTH, ENC_LITTLE_ENDIAN);
- if (mtp3_pc_structured()) {
- guint32 apc;
+ if (mtp3_pc_structured()) {
+ guint32 apc;
- apc = tvb_get_letohs(tvb, 0) & ITU_PC_MASK;
- proto_item_append_text(apc_item, " (%s)", mtp3_pc_to_str(apc));
- }
+ apc = tvb_get_letohs(tvb, 0) & ITU_PC_MASK;
+ proto_item_append_text(apc_item, " (%s)", mtp3_pc_to_str(apc));
+ }
- /* Congestion level is a national option */
- proto_tree_add_item(tree, hf_mtp3mg_tfc_itu_status, tvb, 0,
- ITU_TFC_STATUS_LENGTH, ENC_NA);
+ /* Congestion level is a national option */
+ proto_tree_add_item(tree, hf_mtp3mg_tfc_itu_status, tvb, 0,
+ ITU_TFC_STATUS_LENGTH, ENC_NA);
- } else if (mtp3_standard == JAPAN_STANDARD) {
+ } else if (mtp3_standard == JAPAN_STANDARD) {
- proto_tree_add_item(tree, hf_mtp3mg_tfc_japan_spare, tvb,
- JAPAN_TFC_SPARE_OFFSET,
- JAPAN_TFC_SPARE_LENGTH, ENC_NA);
+ proto_tree_add_item(tree, hf_mtp3mg_tfc_japan_spare, tvb,
+ JAPAN_TFC_SPARE_OFFSET,
+ JAPAN_TFC_SPARE_LENGTH, ENC_NA);
- apc_item = proto_tree_add_item(tree, hf_mtp3mg_japan_apc, tvb,
- JAPAN_TFC_APC_OFFSET,
- JAPAN_PC_LENGTH, ENC_LITTLE_ENDIAN);
- if (mtp3_pc_structured()) {
- guint32 apc;
+ apc_item = proto_tree_add_item(tree, hf_mtp3mg_japan_apc, tvb,
+ JAPAN_TFC_APC_OFFSET,
+ JAPAN_PC_LENGTH, ENC_LITTLE_ENDIAN);
+ if (mtp3_pc_structured()) {
+ guint32 apc;
- apc = tvb_get_letohs(tvb, JAPAN_TFC_APC_OFFSET);
- proto_item_append_text(apc_item, " (%s)", mtp3_pc_to_str(apc));
- }
+ apc = tvb_get_letohs(tvb, JAPAN_TFC_APC_OFFSET);
+ proto_item_append_text(apc_item, " (%s)", mtp3_pc_to_str(apc));
+ }
- proto_tree_add_item(tree, hf_mtp3mg_tfc_japan_status, tvb,
- JAPAN_TFC_STATUS_OFFSET,
- JAPAN_TFC_STATUS_LENGTH, ENC_NA);
- proto_tree_add_item(tree, hf_mtp3mg_tfc_japan_status_spare, tvb,
- JAPAN_TFC_STATUS_OFFSET,
- JAPAN_TFC_STATUS_LENGTH, ENC_NA);
+ proto_tree_add_item(tree, hf_mtp3mg_tfc_japan_status, tvb,
+ JAPAN_TFC_STATUS_OFFSET,
+ JAPAN_TFC_STATUS_LENGTH, ENC_NA);
+ proto_tree_add_item(tree, hf_mtp3mg_tfc_japan_status_spare, tvb,
+ JAPAN_TFC_STATUS_OFFSET,
+ JAPAN_TFC_STATUS_LENGTH, ENC_NA);
- } else /* ANSI_STANDARD and CHINESE_ITU_STANDARD */ {
+ } else /* ANSI_STANDARD and CHINESE_ITU_STANDARD */ {
- int hf_apc_string;
+ int hf_apc_string;
- if (mtp3_standard == ANSI_STANDARD) {
+ if (mtp3_standard == ANSI_STANDARD) {
- hf_apc_string = hf_mtp3mg_ansi_apc;
+ hf_apc_string = hf_mtp3mg_ansi_apc;
- } else /* CHINESE_ITU_STANDARD */ {
+ } else /* CHINESE_ITU_STANDARD */ {
- hf_apc_string = hf_mtp3mg_chinese_apc;
- }
+ hf_apc_string = hf_mtp3mg_chinese_apc;
+ }
- dissect_mtp3_3byte_pc(tvb, 0, tree, ett_mtp3mg_fcm_apc,
- hf_apc_string, hf_mtp3mg_apc_network,
- hf_mtp3mg_apc_cluster,
- hf_mtp3mg_apc_member, 0, 0);
+ dissect_mtp3_3byte_pc(tvb, 0, tree, ett_mtp3mg_fcm_apc,
+ hf_apc_string, hf_mtp3mg_apc_network,
+ hf_mtp3mg_apc_cluster,
+ hf_mtp3mg_apc_member, 0, 0);
- proto_tree_add_item(tree, hf_mtp3mg_tfc_ansi_status, tvb,
- ANSI_TFC_STATUS_OFFSET, ANSI_TFC_STATUS_LENGTH,
- ENC_NA);
+ proto_tree_add_item(tree, hf_mtp3mg_tfc_ansi_status, tvb,
+ ANSI_TFC_STATUS_OFFSET, ANSI_TFC_STATUS_LENGTH,
+ ENC_NA);
- }
- break;
+ }
+ break;
default:
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
}
}
static void
dissect_mtp3mg_tfm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- guint8 h1)
+ guint8 h1)
{
proto_item *apc_item;
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str_const(h1, tfm_h1_message_type_acro_values, "Unknown"));
+ val_to_str_const(h1, tfm_h1_message_type_acro_values, "Unknown"));
switch (h1)
{
@@ -628,82 +628,82 @@ dissect_mtp3mg_tfm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
case TFM_H1_TCR:
case TFM_H1_TFA:
case TFM_H1_TCA:
- if (mtp3_standard == ANSI_STANDARD) {
- dissect_mtp3_3byte_pc(tvb, 0, tree, ett_mtp3mg_tfm_apc,
- hf_mtp3mg_ansi_apc,
- hf_mtp3mg_apc_network,
- hf_mtp3mg_apc_cluster,
- hf_mtp3mg_apc_member, 0, 0);
-
- } else if (mtp3_standard == JAPAN_STANDARD) {
- guint8 count, i;
- guint32 offset;
-
- if (h1 == TFM_H1_TCP || h1 == TFM_H1_TCR || h1 == TFM_H1_TCA
- || h1 == TFM_H1_TFR)
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
-
- proto_tree_add_item(tree, hf_mtp3mg_tfm_japan_count, tvb,
- JAPAN_TFM_COUNT_OFFSET,
- JAPAN_TFM_COUNT_LENGTH, ENC_NA);
-
- count = tvb_get_guint8(tvb, JAPAN_TFM_COUNT_OFFSET);
- offset = JAPAN_TFM_COUNT_LENGTH;
- for (i = 0; i < count; i++)
- {
- apc_item = proto_tree_add_item(tree, hf_mtp3mg_japan_apc, tvb,
- offset, JAPAN_PC_LENGTH, ENC_LITTLE_ENDIAN);
-
- if (mtp3_pc_structured()) {
- guint32 apc;
-
- apc = tvb_get_letohs(tvb, offset);
- proto_item_append_text(apc_item, " (%s)", mtp3_pc_to_str(apc));
- }
-
- offset += JAPAN_PC_LENGTH;
- proto_tree_add_item(tree, hf_mtp3mg_tfm_japan_spare, tvb,
- offset, JAPAN_PC_LENGTH, ENC_LITTLE_ENDIAN);
- offset += JAPAN_PC_LENGTH;
- }
- } else /* ITU_STANDARD and CHINESE_ITU_STANDARD */ {
-
- if (h1 == TFM_H1_TCP || h1 == TFM_H1_TCR || h1 == TFM_H1_TCA)
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
- else if (mtp3_standard == ITU_STANDARD)
- {
- apc_item = proto_tree_add_item(tree, hf_mtp3mg_itu_apc,
- tvb, 0, ITU_PC_LENGTH, ENC_LITTLE_ENDIAN);
-
- if (mtp3_pc_structured()) {
- guint32 apc;
-
- apc = tvb_get_letohs(tvb, 0) & ITU_PC_MASK;
- proto_item_append_text(apc_item, " (%s)", mtp3_pc_to_str(apc));
- }
- }
- else if (mtp3_standard == CHINESE_ITU_STANDARD)
- dissect_mtp3_3byte_pc(tvb, 0, tree, ett_mtp3mg_tfm_apc,
- hf_mtp3mg_chinese_apc,
- hf_mtp3mg_apc_network,
- hf_mtp3mg_apc_cluster,
- hf_mtp3mg_apc_member, 0, 0);
- }
- break;
+ if (mtp3_standard == ANSI_STANDARD) {
+ dissect_mtp3_3byte_pc(tvb, 0, tree, ett_mtp3mg_tfm_apc,
+ hf_mtp3mg_ansi_apc,
+ hf_mtp3mg_apc_network,
+ hf_mtp3mg_apc_cluster,
+ hf_mtp3mg_apc_member, 0, 0);
+
+ } else if (mtp3_standard == JAPAN_STANDARD) {
+ guint8 count, i;
+ guint32 offset;
+
+ if (h1 == TFM_H1_TCP || h1 == TFM_H1_TCR || h1 == TFM_H1_TCA
+ || h1 == TFM_H1_TFR)
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+
+ proto_tree_add_item(tree, hf_mtp3mg_tfm_japan_count, tvb,
+ JAPAN_TFM_COUNT_OFFSET,
+ JAPAN_TFM_COUNT_LENGTH, ENC_NA);
+
+ count = tvb_get_guint8(tvb, JAPAN_TFM_COUNT_OFFSET);
+ offset = JAPAN_TFM_COUNT_LENGTH;
+ for (i = 0; i < count; i++)
+ {
+ apc_item = proto_tree_add_item(tree, hf_mtp3mg_japan_apc, tvb,
+ offset, JAPAN_PC_LENGTH, ENC_LITTLE_ENDIAN);
+
+ if (mtp3_pc_structured()) {
+ guint32 apc;
+
+ apc = tvb_get_letohs(tvb, offset);
+ proto_item_append_text(apc_item, " (%s)", mtp3_pc_to_str(apc));
+ }
+
+ offset += JAPAN_PC_LENGTH;
+ proto_tree_add_item(tree, hf_mtp3mg_tfm_japan_spare, tvb,
+ offset, JAPAN_PC_LENGTH, ENC_LITTLE_ENDIAN);
+ offset += JAPAN_PC_LENGTH;
+ }
+ } else /* ITU_STANDARD and CHINESE_ITU_STANDARD */ {
+
+ if (h1 == TFM_H1_TCP || h1 == TFM_H1_TCR || h1 == TFM_H1_TCA)
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+ else if (mtp3_standard == ITU_STANDARD)
+ {
+ apc_item = proto_tree_add_item(tree, hf_mtp3mg_itu_apc,
+ tvb, 0, ITU_PC_LENGTH, ENC_LITTLE_ENDIAN);
+
+ if (mtp3_pc_structured()) {
+ guint32 apc;
+
+ apc = tvb_get_letohs(tvb, 0) & ITU_PC_MASK;
+ proto_item_append_text(apc_item, " (%s)", mtp3_pc_to_str(apc));
+ }
+ }
+ else if (mtp3_standard == CHINESE_ITU_STANDARD)
+ dissect_mtp3_3byte_pc(tvb, 0, tree, ett_mtp3mg_tfm_apc,
+ hf_mtp3mg_chinese_apc,
+ hf_mtp3mg_apc_network,
+ hf_mtp3mg_apc_cluster,
+ hf_mtp3mg_apc_member, 0, 0);
+ }
+ break;
default:
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
}
}
static void
dissect_mtp3mg_rsm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- guint8 h1)
+ guint8 h1)
{
proto_item *apc_item;
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str_const(h1, rsm_h1_message_type_acro_values, "Unknown"));
+ val_to_str_const(h1, rsm_h1_message_type_acro_values, "Unknown"));
switch (h1)
{
@@ -711,82 +711,82 @@ dissect_mtp3mg_rsm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
case RSM_H1_RSR:
case RSM_H1_RCP:
case RSM_H1_RCR:
- if (mtp3_standard == ANSI_STANDARD) {
- dissect_mtp3_3byte_pc(tvb, 0, tree, ett_mtp3mg_rsm_apc,
- hf_mtp3mg_ansi_apc,
- hf_mtp3mg_apc_network,
- hf_mtp3mg_apc_cluster,
- hf_mtp3mg_apc_member, 0, 0);
-
- } else if (mtp3_standard == JAPAN_STANDARD) {
- if (h1 == RSM_H1_RST) {
- guint32 offset;
- guint8 count, i;
-
- proto_tree_add_item(tree, hf_mtp3mg_rsm_japan_count, tvb,
- JAPAN_TFM_COUNT_OFFSET,
- JAPAN_TFM_COUNT_LENGTH, ENC_NA);
-
- count = tvb_get_guint8(tvb, JAPAN_TFM_COUNT_OFFSET);
- offset = JAPAN_TFM_COUNT_LENGTH;
- for (i = 0; i < count; i++) {
- apc_item = proto_tree_add_item(tree,
- hf_mtp3mg_japan_apc,
- tvb, offset,
- JAPAN_PC_LENGTH,
- ENC_LITTLE_ENDIAN);
- if (mtp3_pc_structured()) {
- guint32 apc;
-
- apc = tvb_get_letohs(tvb, 0);
- proto_item_append_text(apc_item, " (%s)",
- mtp3_pc_to_str(apc));
- }
- offset += JAPAN_PC_LENGTH;
- proto_tree_add_item(tree, hf_mtp3mg_rsm_japan_spare, tvb,
- offset, JAPAN_PC_LENGTH,
- ENC_LITTLE_ENDIAN);
- offset += JAPAN_PC_LENGTH;
- }
- } else
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
-
- } else /* ITU_STANDARD and CHINESE_ITU_STANDARD */ {
-
- if (h1 == RSM_H1_RST || h1 == RSM_H1_RSR) {
- if (mtp3_standard == ITU_STANDARD) {
- apc_item = proto_tree_add_item(tree, hf_mtp3mg_itu_apc,
- tvb, 0, ITU_PC_LENGTH,
- ENC_LITTLE_ENDIAN);
- if (mtp3_pc_structured()) {
- guint32 apc;
-
- apc = tvb_get_letohs(tvb, 0) & ITU_PC_MASK;
- proto_item_append_text(apc_item, " (%s)", mtp3_pc_to_str(apc));
- }
- }
- else /* CHINESE_ITU_STANDARD */
- dissect_mtp3_3byte_pc(tvb, 0, tree, ett_mtp3mg_rsm_apc,
- hf_mtp3mg_chinese_apc,
- hf_mtp3mg_apc_network,
- hf_mtp3mg_apc_cluster,
- hf_mtp3mg_apc_member, 0, 0);
- } else
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
- }
- break;
+ if (mtp3_standard == ANSI_STANDARD) {
+ dissect_mtp3_3byte_pc(tvb, 0, tree, ett_mtp3mg_rsm_apc,
+ hf_mtp3mg_ansi_apc,
+ hf_mtp3mg_apc_network,
+ hf_mtp3mg_apc_cluster,
+ hf_mtp3mg_apc_member, 0, 0);
+
+ } else if (mtp3_standard == JAPAN_STANDARD) {
+ if (h1 == RSM_H1_RST) {
+ guint32 offset;
+ guint8 count, i;
+
+ proto_tree_add_item(tree, hf_mtp3mg_rsm_japan_count, tvb,
+ JAPAN_TFM_COUNT_OFFSET,
+ JAPAN_TFM_COUNT_LENGTH, ENC_NA);
+
+ count = tvb_get_guint8(tvb, JAPAN_TFM_COUNT_OFFSET);
+ offset = JAPAN_TFM_COUNT_LENGTH;
+ for (i = 0; i < count; i++) {
+ apc_item = proto_tree_add_item(tree,
+ hf_mtp3mg_japan_apc,
+ tvb, offset,
+ JAPAN_PC_LENGTH,
+ ENC_LITTLE_ENDIAN);
+ if (mtp3_pc_structured()) {
+ guint32 apc;
+
+ apc = tvb_get_letohs(tvb, 0);
+ proto_item_append_text(apc_item, " (%s)",
+ mtp3_pc_to_str(apc));
+ }
+ offset += JAPAN_PC_LENGTH;
+ proto_tree_add_item(tree, hf_mtp3mg_rsm_japan_spare, tvb,
+ offset, JAPAN_PC_LENGTH,
+ ENC_LITTLE_ENDIAN);
+ offset += JAPAN_PC_LENGTH;
+ }
+ } else
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+
+ } else /* ITU_STANDARD and CHINESE_ITU_STANDARD */ {
+
+ if (h1 == RSM_H1_RST || h1 == RSM_H1_RSR) {
+ if (mtp3_standard == ITU_STANDARD) {
+ apc_item = proto_tree_add_item(tree, hf_mtp3mg_itu_apc,
+ tvb, 0, ITU_PC_LENGTH,
+ ENC_LITTLE_ENDIAN);
+ if (mtp3_pc_structured()) {
+ guint32 apc;
+
+ apc = tvb_get_letohs(tvb, 0) & ITU_PC_MASK;
+ proto_item_append_text(apc_item, " (%s)", mtp3_pc_to_str(apc));
+ }
+ }
+ else /* CHINESE_ITU_STANDARD */
+ dissect_mtp3_3byte_pc(tvb, 0, tree, ett_mtp3mg_rsm_apc,
+ hf_mtp3mg_chinese_apc,
+ hf_mtp3mg_apc_network,
+ hf_mtp3mg_apc_cluster,
+ hf_mtp3mg_apc_member, 0, 0);
+ } else
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+ }
+ break;
default:
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
}
}
static void
dissect_mtp3mg_mim(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- guint8 h1)
+ guint8 h1)
{
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str_const(h1, mim_h1_message_type_acro_values, "Unknown"));
+ val_to_str_const(h1, mim_h1_message_type_acro_values, "Unknown"));
switch (h1)
{
@@ -798,171 +798,171 @@ dissect_mtp3mg_mim(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
case MIM_H1_LFU:
case MIM_H1_LLT:
case MIM_H1_LRT:
- if (mtp3_standard == ANSI_STANDARD)
- {
- proto_tree_add_item(tree, hf_mtp3mg_mim_ansi_slc, tvb, 0,
- ANSI_MIM_LENGTH, ENC_NA);
- }
- /* else: nothing to dissect */
- break;
+ if (mtp3_standard == ANSI_STANDARD)
+ {
+ proto_tree_add_item(tree, hf_mtp3mg_mim_ansi_slc, tvb, 0,
+ ANSI_MIM_LENGTH, ENC_NA);
+ }
+ /* else: nothing to dissect */
+ break;
default:
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
}
}
static void
dissect_mtp3mg_trm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- guint8 h1)
+ guint8 h1)
{
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str_const(h1, trm_h1_message_type_acro_values, "Unknown"));
+ val_to_str_const(h1, trm_h1_message_type_acro_values, "Unknown"));
switch (h1)
{
case TRM_H1_TRA:
- /* nothing to dissect */
- break;
+ /* nothing to dissect */
+ break;
case TRM_H1_TRW:
- if (mtp3_standard != ANSI_STANDARD)
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
- /* else: nothing to dissect */
- break;
+ if (mtp3_standard != ANSI_STANDARD)
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+ /* else: nothing to dissect */
+ break;
default:
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
}
}
static void
dissect_mtp3mg_dlm(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- guint8 h1)
+ guint8 h1)
{
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str_const(h1, dlm_h1_message_type_acro_values, "Unknown"));
+ val_to_str_const(h1, dlm_h1_message_type_acro_values, "Unknown"));
switch (h1)
{
case DLM_H1_DLC:
- if (mtp3_standard == ANSI_STANDARD)
- {
- proto_tree_add_item(tree, hf_mtp3mg_dlc_ansi_slc, tvb, 0,
- ANSI_DLC_LENGTH, ENC_LITTLE_ENDIAN);
- proto_tree_add_item(tree, hf_mtp3mg_dlc_ansi_link, tvb, 0,
- ANSI_DLC_LENGTH, ENC_LITTLE_ENDIAN);
- } else /* ITU_STANDARD and CHINESE_ITU_STANDARD */ {
- proto_tree_add_item(tree, hf_mtp3mg_dlc_itu_link, tvb, 0,
- ITU_DLC_LENGTH, ENC_LITTLE_ENDIAN);
- }
- break;
+ if (mtp3_standard == ANSI_STANDARD)
+ {
+ proto_tree_add_item(tree, hf_mtp3mg_dlc_ansi_slc, tvb, 0,
+ ANSI_DLC_LENGTH, ENC_LITTLE_ENDIAN);
+ proto_tree_add_item(tree, hf_mtp3mg_dlc_ansi_link, tvb, 0,
+ ANSI_DLC_LENGTH, ENC_LITTLE_ENDIAN);
+ } else /* ITU_STANDARD and CHINESE_ITU_STANDARD */ {
+ proto_tree_add_item(tree, hf_mtp3mg_dlc_itu_link, tvb, 0,
+ ITU_DLC_LENGTH, ENC_LITTLE_ENDIAN);
+ }
+ break;
case DLM_H1_CSS:
case DLM_H1_CNS:
case DLM_H1_CNP:
- /* nothing to dissect */
- break;
+ /* nothing to dissect */
+ break;
default:
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
}
}
static void
dissect_mtp3mg_ufc(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- guint8 h1)
+ guint8 h1)
{
proto_item *apc_item;
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str_const(h1, ufc_h1_message_type_acro_values, "Unknown"));
+ val_to_str_const(h1, ufc_h1_message_type_acro_values, "Unknown"));
switch (h1)
{
case UFC_H1_UPU:
- if (mtp3_standard == ANSI_STANDARD
- || mtp3_standard == CHINESE_ITU_STANDARD) {
- int hf_apc;
-
- if (mtp3_standard == ANSI_STANDARD)
- hf_apc = hf_mtp3mg_ansi_apc;
- else /* CHINESE_ITU_STANDARD */
- hf_apc = hf_mtp3mg_chinese_apc;
-
- dissect_mtp3_3byte_pc(tvb, 0, tree, ett_mtp3mg_upu_apc, hf_apc,
- hf_mtp3mg_apc_network,
- hf_mtp3mg_apc_cluster,
- hf_mtp3mg_apc_member, 0, 0);
-
- proto_tree_add_item(tree, hf_mtp3mg_upu_user, tvb,
- ANSI_UPU_USER_OFFSET, UPU_USER_LENGTH, ENC_NA);
- proto_tree_add_item(tree, hf_mtp3mg_upu_cause, tvb,
- ANSI_UPU_USER_OFFSET, UPU_USER_LENGTH, ENC_NA);
- } else if (mtp3_standard == ITU_STANDARD) {
-
- apc_item = proto_tree_add_item(tree, hf_mtp3mg_itu_apc, tvb, 0,
- ITU_PC_LENGTH, ENC_LITTLE_ENDIAN);
- if (mtp3_pc_structured()) {
- guint32 apc;
-
- apc = tvb_get_letohs(tvb, 0) & ITU_PC_MASK;
- proto_item_append_text(apc_item, " (%s)", mtp3_pc_to_str(apc));
- }
-
- proto_tree_add_item(tree, hf_mtp3mg_upu_user, tvb,
- ITU_UPU_USER_OFFSET, UPU_USER_LENGTH, ENC_NA);
- proto_tree_add_item(tree, hf_mtp3mg_upu_cause, tvb,
- ITU_UPU_USER_OFFSET, UPU_USER_LENGTH, ENC_NA);
- } else { /* JAPAN_STANDARD */
-
- apc_item = proto_tree_add_item(tree, hf_mtp3mg_japan_apc, tvb,
- 0, JAPAN_PC_LENGTH,
- ENC_LITTLE_ENDIAN);
- if (mtp3_pc_structured()) {
- guint32 apc;
-
- apc = tvb_get_letohs(tvb, 0);
- proto_item_append_text(apc_item, " (%s)", mtp3_pc_to_str(apc));
- }
-
- proto_tree_add_item(tree, hf_mtp3mg_upu_user, tvb,
- ITU_UPU_USER_OFFSET, UPU_USER_LENGTH, ENC_NA);
- proto_tree_add_item(tree, hf_mtp3mg_upu_cause, tvb,
- ITU_UPU_USER_OFFSET, UPU_USER_LENGTH, ENC_NA);
- }
- break;
+ if (mtp3_standard == ANSI_STANDARD
+ || mtp3_standard == CHINESE_ITU_STANDARD) {
+ int hf_apc;
+
+ if (mtp3_standard == ANSI_STANDARD)
+ hf_apc = hf_mtp3mg_ansi_apc;
+ else /* CHINESE_ITU_STANDARD */
+ hf_apc = hf_mtp3mg_chinese_apc;
+
+ dissect_mtp3_3byte_pc(tvb, 0, tree, ett_mtp3mg_upu_apc, hf_apc,
+ hf_mtp3mg_apc_network,
+ hf_mtp3mg_apc_cluster,
+ hf_mtp3mg_apc_member, 0, 0);
+
+ proto_tree_add_item(tree, hf_mtp3mg_upu_user, tvb,
+ ANSI_UPU_USER_OFFSET, UPU_USER_LENGTH, ENC_NA);
+ proto_tree_add_item(tree, hf_mtp3mg_upu_cause, tvb,
+ ANSI_UPU_USER_OFFSET, UPU_USER_LENGTH, ENC_NA);
+ } else if (mtp3_standard == ITU_STANDARD) {
+
+ apc_item = proto_tree_add_item(tree, hf_mtp3mg_itu_apc, tvb, 0,
+ ITU_PC_LENGTH, ENC_LITTLE_ENDIAN);
+ if (mtp3_pc_structured()) {
+ guint32 apc;
+
+ apc = tvb_get_letohs(tvb, 0) & ITU_PC_MASK;
+ proto_item_append_text(apc_item, " (%s)", mtp3_pc_to_str(apc));
+ }
+
+ proto_tree_add_item(tree, hf_mtp3mg_upu_user, tvb,
+ ITU_UPU_USER_OFFSET, UPU_USER_LENGTH, ENC_NA);
+ proto_tree_add_item(tree, hf_mtp3mg_upu_cause, tvb,
+ ITU_UPU_USER_OFFSET, UPU_USER_LENGTH, ENC_NA);
+ } else { /* JAPAN_STANDARD */
+
+ apc_item = proto_tree_add_item(tree, hf_mtp3mg_japan_apc, tvb,
+ 0, JAPAN_PC_LENGTH,
+ ENC_LITTLE_ENDIAN);
+ if (mtp3_pc_structured()) {
+ guint32 apc;
+
+ apc = tvb_get_letohs(tvb, 0);
+ proto_item_append_text(apc_item, " (%s)", mtp3_pc_to_str(apc));
+ }
+
+ proto_tree_add_item(tree, hf_mtp3mg_upu_user, tvb,
+ ITU_UPU_USER_OFFSET, UPU_USER_LENGTH, ENC_NA);
+ proto_tree_add_item(tree, hf_mtp3mg_upu_cause, tvb,
+ ITU_UPU_USER_OFFSET, UPU_USER_LENGTH, ENC_NA);
+ }
+ break;
default:
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
}
}
static void
dissect_mtp3mg_test(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
- guint8 h1)
+ guint8 h1)
{
guint8 length;
col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str_const(h1, test_h1_message_type_acro_values, "Unknown"));
+ val_to_str_const(h1, test_h1_message_type_acro_values, "Unknown"));
switch (h1)
{
case TEST_H1_SLTM:
case TEST_H1_SLTA:
- if (mtp3_standard == ANSI_STANDARD)
- {
- proto_tree_add_item(tree, hf_mtp3mg_test_ansi_slc, tvb, 0,
- TEST_LENGTH, ENC_NA);
- }
+ if (mtp3_standard == ANSI_STANDARD)
+ {
+ proto_tree_add_item(tree, hf_mtp3mg_test_ansi_slc, tvb, 0,
+ TEST_LENGTH, ENC_NA);
+ }
- proto_tree_add_item(tree, hf_mtp3mg_test_length, tvb, 0, TEST_LENGTH,
- ENC_NA);
+ proto_tree_add_item(tree, hf_mtp3mg_test_length, tvb, 0, TEST_LENGTH,
+ ENC_NA);
- length = tvb_get_guint8(tvb, 0) >> TEST_LENGTH_SHIFT;
- proto_tree_add_item(tree, hf_mtp3mg_test_pattern, tvb, TEST_PATTERN_OFFSET, length, ENC_NA);
- break;
+ length = tvb_get_guint8(tvb, 0) >> TEST_LENGTH_SHIFT;
+ proto_tree_add_item(tree, hf_mtp3mg_test_pattern, tvb, TEST_PATTERN_OFFSET, length, ENC_NA);
+ break;
default:
- dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
+ dissect_mtp3mg_unknown_message(tvb, pinfo, tree);
}
}
@@ -979,187 +979,187 @@ dissect_mtp3mg(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
/* Make entries in Protocol column on summary display */
switch(mtp3_standard) {
- case ITU_STANDARD:
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "MTP3MG (Int. ITU)");
- break;
- case ANSI_STANDARD:
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "MTP3MG (ANSI)");
- break;
- case CHINESE_ITU_STANDARD:
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "MTP3MG (Chin. ITU)");
- break;
- case JAPAN_STANDARD:
- col_set_str(pinfo->cinfo, COL_PROTOCOL, "MTP3MG (Japan)");
- break;
- };
-
- /* create display subtree for the protocol */
- mtp3mg_item = proto_tree_add_item(tree, proto_mtp3mg, tvb, 0, -1, ENC_NA);
- mtp3mg_tree = proto_item_add_subtree(mtp3mg_item, ett_mtp3mg);
+ case ITU_STANDARD:
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "MTP3MG (Int. ITU)");
+ break;
+ case ANSI_STANDARD:
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "MTP3MG (ANSI)");
+ break;
+ case CHINESE_ITU_STANDARD:
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "MTP3MG (Chin. ITU)");
+ break;
+ case JAPAN_STANDARD:
+ col_set_str(pinfo->cinfo, COL_PROTOCOL, "MTP3MG (Japan)");
+ break;
+ };
+
+ /* create display subtree for the protocol */
+ mtp3mg_item = proto_tree_add_item(tree, proto_mtp3mg, tvb, 0, -1, ENC_NA);
+ mtp3mg_tree = proto_item_add_subtree(mtp3mg_item, ett_mtp3mg);
/*
* Dissect the message
*/
if(pinfo->match_uint == MTP_SI_MTN || /* ITU */
pinfo->match_uint == MTP_SI_MTNS) /* ANSI */
- { /* Test messages */
-
- if (mtp3_standard == JAPAN_STANDARD)
- {
- guint8 h0h1;
- guint16 test_pattern;
- proto_item *pattern_item;
-
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_japan_spare, tvb, 0,
- JAPAN_SPARE_LENGTH, ENC_NA);
-
- h0h1 = tvb_get_guint8(tvb, JAPAN_H0H1_OFFSET);
-
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_japan_test, tvb,
- JAPAN_SPARE_LENGTH, H0H1_LENGTH, ENC_NA);
-
- col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
- val_to_str_const(h0h1, japan_test_message_type_acro_values, "Unknown"));
-
- switch (h0h1)
- {
- case JAPAN_TEST_SRT:
- case JAPAN_TEST_SRA:
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_japan_test_spare,
- tvb, JAPAN_TEST_SPARE_OFFSET,
- JAPAN_TEST_SPARE_LENGTH, ENC_NA);
-
- test_pattern = tvb_get_letohs(tvb, JAPAN_TEST_PATTERN_OFFSET);
- pattern_item = proto_tree_add_item(mtp3mg_tree,
- hf_mtp3mg_japan_test_pattern,
- tvb,
- JAPAN_TEST_PATTERN_OFFSET,
- JAPAN_TEST_PATTERN_LENGTH,
- ENC_LITTLE_ENDIAN);
- proto_item_append_text(pattern_item, " (%s)",
- test_pattern == JAPAN_TEST_PATTERN
- ? "correct" : "incorrect");
- break;
-
- default:
- dissect_mtp3mg_unknown_message(tvb, pinfo, mtp3mg_tree);
- }
-
- } else { /* not JAPAN */
- proto_tree_add_item(mtp3mg_tree, hf_mtp3test_h0, tvb, 0, H0H1_LENGTH, ENC_NA);
- /* H1 is added below */
-
- h0 = tvb_get_guint8(tvb, 0) & H0_MASK;
- h1 = (tvb_get_guint8(tvb, 0) & H1_MASK) >> H1_SHIFT;
-
- payload_tvb = tvb_new_subset_remaining(tvb, H0H1_LENGTH);
-
- switch (h0)
- {
- case TEST_H0_SLT:
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_test_h1, tvb, 0,
- H0H1_LENGTH, ENC_NA);
- dissect_mtp3mg_test(payload_tvb, pinfo, mtp3mg_tree, h1);
- break;
-
- default:
- col_set_str(pinfo->cinfo, COL_INFO, "Unknown ");
-
- dissect_mtp3mg_unknown_message(tvb, pinfo, mtp3mg_tree);
- } /* switch */
-
- }
-
- } else { /* Real management messages */
-
-
- if (mtp3_standard == JAPAN_STANDARD)
- {
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_japan_spare, tvb, 0,
- JAPAN_SPARE_LENGTH, ENC_NA);
-
- /* Get a tvb w/o the spare byte--it makes for less code below */
- tvb = tvb_new_subset_remaining(tvb, JAPAN_SPARE_LENGTH);
- }
-
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_h0, tvb, 0, H0H1_LENGTH,
- ENC_NA);
- /* H1 is added below */
-
- h0 = tvb_get_guint8(tvb, 0) & H0_MASK;
- h1 = (tvb_get_guint8(tvb, 0) & H1_MASK) >> H1_SHIFT;
-
- payload_tvb = tvb_new_subset_remaining(tvb, H0H1_LENGTH);
-
- switch (h0)
- {
- case H0_CHM:
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_chm_h1, tvb, 0,
- H0H1_LENGTH, ENC_NA);
- dissect_mtp3mg_chm(payload_tvb, pinfo, mtp3mg_tree, h1);
- break;
- case H0_ECM:
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_ecm_h1, tvb, 0,
- H0H1_LENGTH, ENC_NA);
- dissect_mtp3mg_ecm(payload_tvb, pinfo, mtp3mg_tree, h1);
- break;
- case H0_FCM:
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_fcm_h1, tvb, 0,
- H0H1_LENGTH, ENC_NA);
- dissect_mtp3mg_fcm(payload_tvb, pinfo, mtp3mg_tree, h1);
- break;
- case H0_TFM:
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_tfm_h1, tvb, 0,
- H0H1_LENGTH, ENC_NA);
- dissect_mtp3mg_tfm(payload_tvb, pinfo, mtp3mg_tree, h1);
- break;
- case H0_RSM:
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_rsm_h1, tvb, 0,
- H0H1_LENGTH, ENC_NA);
- dissect_mtp3mg_rsm(payload_tvb, pinfo, mtp3mg_tree, h1);
- break;
- case H0_MIM:
- if (mtp3_standard != JAPAN_STANDARD)
- {
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_mim_h1, tvb, 0,
- H0H1_LENGTH, ENC_NA);
- dissect_mtp3mg_mim(payload_tvb, pinfo, mtp3mg_tree, h1);
- } else
- dissect_mtp3mg_unknown_message(tvb, pinfo, mtp3mg_tree);
- break;
- case H0_TRM:
- if (mtp3_standard != JAPAN_STANDARD)
- {
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_trm_h1, tvb, 0,
- H0H1_LENGTH, ENC_NA);
- dissect_mtp3mg_trm(payload_tvb, pinfo, mtp3mg_tree, h1);
- } else
- dissect_mtp3mg_unknown_message(tvb, pinfo, mtp3mg_tree);
- break;
- case H0_DLM:
- if (mtp3_standard != JAPAN_STANDARD)
- {
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_dlm_h1, tvb, 0,
- H0H1_LENGTH, ENC_NA);
- dissect_mtp3mg_dlm(payload_tvb, pinfo, mtp3mg_tree, h1);
- } else
- dissect_mtp3mg_unknown_message(tvb, pinfo, mtp3mg_tree);
- break;
- case H0_UFC:
- if (mtp3_standard != JAPAN_STANDARD)
- {
- proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_ufc_h1, tvb, 0,
- H0H1_LENGTH, ENC_NA);
- dissect_mtp3mg_ufc(payload_tvb, pinfo, mtp3mg_tree, h1);
- } else
- dissect_mtp3mg_unknown_message(tvb, pinfo, mtp3mg_tree);
- break;
-
- default:
- col_set_str(pinfo->cinfo, COL_INFO, "Unknown ");
-
- dissect_mtp3mg_unknown_message(tvb, pinfo, mtp3mg_tree);
- } /* switch */
+ { /* Test messages */
+
+ if (mtp3_standard == JAPAN_STANDARD)
+ {
+ guint8 h0h1;
+ guint16 test_pattern;
+ proto_item *pattern_item;
+
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_japan_spare, tvb, 0,
+ JAPAN_SPARE_LENGTH, ENC_NA);
+
+ h0h1 = tvb_get_guint8(tvb, JAPAN_H0H1_OFFSET);
+
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_japan_test, tvb,
+ JAPAN_SPARE_LENGTH, H0H1_LENGTH, ENC_NA);
+
+ col_add_fstr(pinfo->cinfo, COL_INFO, "%s ",
+ val_to_str_const(h0h1, japan_test_message_type_acro_values, "Unknown"));
+
+ switch (h0h1)
+ {
+ case JAPAN_TEST_SRT:
+ case JAPAN_TEST_SRA:
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_japan_test_spare,
+ tvb, JAPAN_TEST_SPARE_OFFSET,
+ JAPAN_TEST_SPARE_LENGTH, ENC_NA);
+
+ test_pattern = tvb_get_letohs(tvb, JAPAN_TEST_PATTERN_OFFSET);
+ pattern_item = proto_tree_add_item(mtp3mg_tree,
+ hf_mtp3mg_japan_test_pattern,
+ tvb,
+ JAPAN_TEST_PATTERN_OFFSET,
+ JAPAN_TEST_PATTERN_LENGTH,
+ ENC_LITTLE_ENDIAN);
+ proto_item_append_text(pattern_item, " (%s)",
+ test_pattern == JAPAN_TEST_PATTERN
+ ? "correct" : "incorrect");
+ break;
+
+ default:
+ dissect_mtp3mg_unknown_message(tvb, pinfo, mtp3mg_tree);
+ }
+
+ } else { /* not JAPAN */
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3test_h0, tvb, 0, H0H1_LENGTH, ENC_NA);
+ /* H1 is added below */
+
+ h0 = tvb_get_guint8(tvb, 0) & H0_MASK;
+ h1 = (tvb_get_guint8(tvb, 0) & H1_MASK) >> H1_SHIFT;
+
+ payload_tvb = tvb_new_subset_remaining(tvb, H0H1_LENGTH);
+
+ switch (h0)
+ {
+ case TEST_H0_SLT:
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_test_h1, tvb, 0,
+ H0H1_LENGTH, ENC_NA);
+ dissect_mtp3mg_test(payload_tvb, pinfo, mtp3mg_tree, h1);
+ break;
+
+ default:
+ col_set_str(pinfo->cinfo, COL_INFO, "Unknown ");
+
+ dissect_mtp3mg_unknown_message(tvb, pinfo, mtp3mg_tree);
+ } /* switch */
+
+ }
+
+ } else { /* Real management messages */
+
+
+ if (mtp3_standard == JAPAN_STANDARD)
+ {
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_japan_spare, tvb, 0,
+ JAPAN_SPARE_LENGTH, ENC_NA);
+
+ /* Get a tvb w/o the spare byte--it makes for less code below */
+ tvb = tvb_new_subset_remaining(tvb, JAPAN_SPARE_LENGTH);
+ }
+
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_h0, tvb, 0, H0H1_LENGTH,
+ ENC_NA);
+ /* H1 is added below */
+
+ h0 = tvb_get_guint8(tvb, 0) & H0_MASK;
+ h1 = (tvb_get_guint8(tvb, 0) & H1_MASK) >> H1_SHIFT;
+
+ payload_tvb = tvb_new_subset_remaining(tvb, H0H1_LENGTH);
+
+ switch (h0)
+ {
+ case H0_CHM:
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_chm_h1, tvb, 0,
+ H0H1_LENGTH, ENC_NA);
+ dissect_mtp3mg_chm(payload_tvb, pinfo, mtp3mg_tree, h1);
+ break;
+ case H0_ECM:
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_ecm_h1, tvb, 0,
+ H0H1_LENGTH, ENC_NA);
+ dissect_mtp3mg_ecm(payload_tvb, pinfo, mtp3mg_tree, h1);
+ break;
+ case H0_FCM:
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_fcm_h1, tvb, 0,
+ H0H1_LENGTH, ENC_NA);
+ dissect_mtp3mg_fcm(payload_tvb, pinfo, mtp3mg_tree, h1);
+ break;
+ case H0_TFM:
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_tfm_h1, tvb, 0,
+ H0H1_LENGTH, ENC_NA);
+ dissect_mtp3mg_tfm(payload_tvb, pinfo, mtp3mg_tree, h1);
+ break;
+ case H0_RSM:
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_rsm_h1, tvb, 0,
+ H0H1_LENGTH, ENC_NA);
+ dissect_mtp3mg_rsm(payload_tvb, pinfo, mtp3mg_tree, h1);
+ break;
+ case H0_MIM:
+ if (mtp3_standard != JAPAN_STANDARD)
+ {
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_mim_h1, tvb, 0,
+ H0H1_LENGTH, ENC_NA);
+ dissect_mtp3mg_mim(payload_tvb, pinfo, mtp3mg_tree, h1);
+ } else
+ dissect_mtp3mg_unknown_message(tvb, pinfo, mtp3mg_tree);
+ break;
+ case H0_TRM:
+ if (mtp3_standard != JAPAN_STANDARD)
+ {
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_trm_h1, tvb, 0,
+ H0H1_LENGTH, ENC_NA);
+ dissect_mtp3mg_trm(payload_tvb, pinfo, mtp3mg_tree, h1);
+ } else
+ dissect_mtp3mg_unknown_message(tvb, pinfo, mtp3mg_tree);
+ break;
+ case H0_DLM:
+ if (mtp3_standard != JAPAN_STANDARD)
+ {
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_dlm_h1, tvb, 0,
+ H0H1_LENGTH, ENC_NA);
+ dissect_mtp3mg_dlm(payload_tvb, pinfo, mtp3mg_tree, h1);
+ } else
+ dissect_mtp3mg_unknown_message(tvb, pinfo, mtp3mg_tree);
+ break;
+ case H0_UFC:
+ if (mtp3_standard != JAPAN_STANDARD)
+ {
+ proto_tree_add_item(mtp3mg_tree, hf_mtp3mg_ufc_h1, tvb, 0,
+ H0H1_LENGTH, ENC_NA);
+ dissect_mtp3mg_ufc(payload_tvb, pinfo, mtp3mg_tree, h1);
+ } else
+ dissect_mtp3mg_unknown_message(tvb, pinfo, mtp3mg_tree);
+ break;
+
+ default:
+ col_set_str(pinfo->cinfo, COL_INFO, "Unknown ");
+
+ dissect_mtp3mg_unknown_message(tvb, pinfo, mtp3mg_tree);
+ } /* switch */
} /* else */
}
@@ -1170,223 +1170,223 @@ proto_register_mtp3mg(void)
/* Setup list of header fields See Section 1.6.1 for details*/
static hf_register_info hf[] = {
- { &hf_mtp3mg_h0,
- { "H0 (Message Group)", "mtp3mg.h0",
- FT_UINT8, BASE_HEX, VALS(h0_message_type_values), H0_MASK,
- "Message group identifier", HFILL }},
- { &hf_mtp3mg_chm_h1,
- { "H1 (Message)", "mtp3mg.h1",
- FT_UINT8, BASE_HEX, VALS(chm_h1_message_type_values), H1_MASK,
- "Message type", HFILL }},
- { &hf_mtp3mg_ecm_h1,
- { "H1 (Message)", "mtp3mg.h1",
- FT_UINT8, BASE_HEX, VALS(ecm_h1_message_type_values), H1_MASK,
- "Message type", HFILL }},
- { &hf_mtp3mg_fcm_h1,
- { "H1 (Message)", "mtp3mg.h1",
- FT_UINT8, BASE_HEX, VALS(fcm_h1_message_type_values), H1_MASK,
- "Message type", HFILL }},
- { &hf_mtp3mg_tfm_h1,
- { "H1 (Message)", "mtp3mg.h1",
- FT_UINT8, BASE_HEX, VALS(tfm_h1_message_type_values), H1_MASK,
- "Message type", HFILL }},
- { &hf_mtp3mg_rsm_h1,
- { "H1 (Message)", "mtp3mg.h1",
- FT_UINT8, BASE_HEX, VALS(rsm_h1_message_type_values), H1_MASK,
- "Message type", HFILL }},
- { &hf_mtp3mg_mim_h1,
- { "H1 (Message)", "mtp3mg.h1",
- FT_UINT8, BASE_HEX, VALS(mim_h1_message_type_values), H1_MASK,
- "Message type", HFILL }},
- { &hf_mtp3mg_trm_h1,
- { "H1 (Message)", "mtp3mg.h1",
- FT_UINT8, BASE_HEX, VALS(trm_h1_message_type_values), H1_MASK,
- "Message type", HFILL }},
- { &hf_mtp3mg_dlm_h1,
- { "H1 (Message)", "mtp3mg.h1",
- FT_UINT8, BASE_HEX, VALS(dlm_h1_message_type_values), H1_MASK,
- "Message type", HFILL }},
- { &hf_mtp3mg_ufc_h1,
- { "H1 (Message)", "mtp3mg.h1",
- FT_UINT8, BASE_HEX, VALS(ufc_h1_message_type_values), H1_MASK,
- "Message type", HFILL }},
- { &hf_mtp3mg_coo_ansi_slc,
- { "Signalling Link Code", "mtp3mg.slc",
- FT_UINT8, BASE_DEC, NULL, ANSI_COO_SLC_MASK,
- "SLC of affected link", HFILL }},
- { &hf_mtp3mg_coo_ansi_fsn,
- { "Forward Sequence Number", "mtp3mg.fsn",
- FT_UINT8, BASE_DEC, NULL, ANSI_COO_FSN_MASK,
- "Forward Sequence Number of last accepted message", HFILL }},
- { &hf_mtp3mg_coo_itu_fsn,
- { "Forward Sequence Number", "mtp3mg.fsn",
- FT_UINT8, BASE_DEC, NULL, ITU_COO_FSN_MASK,
- "Forward Sequence Number of last accepted message", HFILL }},
- { &hf_mtp3mg_xco_ansi_slc,
- { "Signalling Link Code", "mtp3mg.slc",
- FT_UINT32, BASE_DEC, NULL, ANSI_XCO_SLC_MASK,
- "SLC of affected link", HFILL }},
- { &hf_mtp3mg_xco_ansi_fsn,
- { "Forward Sequence Number", "mtp3mg.fsn",
- FT_UINT32, BASE_DEC, NULL, ANSI_XCO_FSN_MASK,
- "Forward Sequence Number of last accepted message", HFILL }},
- { &hf_mtp3mg_xco_itu_fsn,
- { "Forward Sequence Number", "mtp3mg.fsn",
- FT_UINT24, BASE_DEC, NULL, 0x0,
- "Forward Sequence Number of last accepted message", HFILL }},
- { &hf_mtp3mg_cbd_ansi_slc,
- { "Signalling Link Code", "mtp3mg.slc",
- FT_UINT16, BASE_DEC, NULL, ANSI_CBD_SLC_MASK,
- "SLC of affected link", HFILL }},
- { &hf_mtp3mg_cbd_ansi_cbc,
- { "Change Back Code", "mtp3mg.cbc",
- FT_UINT16, BASE_DEC, NULL, ANSI_CBD_CBC_MASK,
- NULL, HFILL }},
- { &hf_mtp3mg_cbd_itu_cbc,
- { "Change Back Code", "mtp3mg.cbc",
- FT_UINT8, BASE_DEC, NULL, 0x0,
- NULL, HFILL }},
- { &hf_mtp3mg_cbd_japan_cbc,
- { "Change Back Code", "mtp3mg.cbc",
- FT_UINT8, BASE_DEC, NULL, JAPAN_CBD_CBC_MASK,
- NULL, HFILL }},
- { &hf_mtp3mg_eco_ansi_slc,
- { "Signalling Link Code", "mtp3mg.slc",
- FT_UINT8, BASE_DEC, NULL, ANSI_ECO_SLC_MASK,
- "SLC of affected link", HFILL }},
- { &hf_mtp3mg_ansi_apc,
- { "Affected Point Code", "mtp3mg.ansi_apc",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL }},
- { &hf_mtp3mg_apc_member,
- { "Affected Point Code member", "mtp3mg.apc.member",
- FT_UINT24, BASE_DEC, NULL, ANSI_MEMBER_MASK,
- NULL, HFILL }},
- { &hf_mtp3mg_apc_cluster,
- { "Affected Point Code cluster", "mtp3mg.apc.cluster",
- FT_UINT24, BASE_DEC, NULL, ANSI_CLUSTER_MASK,
- NULL, HFILL }},
- { &hf_mtp3mg_apc_network,
- { "Affected Point Code network", "mtp3mg.apc.network",
- FT_UINT24, BASE_DEC, NULL, ANSI_NETWORK_MASK,
- NULL, HFILL }},
- { &hf_mtp3mg_tfc_ansi_status,
- { "Status", "mtp3mg.status",
- FT_UINT8, BASE_DEC, NULL, ANSI_TFC_STATUS_MASK,
- "Congestion status", HFILL }},
- { &hf_mtp3mg_itu_apc,
- { "Affected Point Code (ITU)", "mtp3mg.apc",
- FT_UINT16, BASE_DEC, NULL, ITU_PC_MASK,
- NULL, HFILL }},
- { &hf_mtp3mg_tfc_itu_status,
- { "Status", "mtp3mg.status",
- FT_UINT8, BASE_DEC, NULL, ITU_TFC_STATUS_MASK,
- "Congestion status", HFILL }},
- { &hf_mtp3mg_chinese_apc,
- { "Affected Point Code", "mtp3mg.chinese_apc",
- FT_STRING, BASE_NONE, NULL, 0x0,
- NULL, HFILL }},
- { &hf_mtp3mg_tfc_japan_spare,
- { "TFC spare (Japan)", "mtp3mg.japan_spare",
- FT_UINT8, BASE_HEX, NULL, 0x0,
- NULL, HFILL }},
- { &hf_mtp3mg_japan_apc,
- { "Affected Point Code", "mtp3mg.japan_apc",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- NULL, HFILL }},
- { &hf_mtp3mg_tfc_japan_status,
- { "Status", "mtp3mg.japan_status",
- FT_UINT8, BASE_DEC, NULL, JAPAN_TFC_STATUS_MASK,
- NULL, HFILL }},
- { &hf_mtp3mg_tfc_japan_status_spare,
- { "Spare (Japan)", "mtp3mg.japan_spare",
- FT_UINT8, BASE_HEX, NULL, JAPAN_TFC_STATUS_SPARE_MASK,
- NULL, HFILL }},
- { &hf_mtp3mg_tfm_japan_count,
- { "Count of Affected Point Codes (Japan)", "mtp3mg.japan_count",
- FT_UINT8, BASE_DEC, NULL, 0x0,
- NULL, HFILL }},
- { &hf_mtp3mg_tfm_japan_spare,
- { "Spare (Japan)", "mtp3mg.japan_spare",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- NULL, HFILL }},
- { &hf_mtp3mg_rsm_japan_count,
- { "Count of Affected Point Codes (Japan)", "mtp3mg.japan_count",
- FT_UINT8, BASE_DEC, NULL, 0x0,
- NULL, HFILL }},
- { &hf_mtp3mg_rsm_japan_spare,
- { "Spare (Japan)", "mtp3mg.japan_spare",
- FT_UINT16, BASE_DEC, NULL, 0x0,
- NULL, HFILL }},
- { &hf_mtp3mg_mim_ansi_slc,
- { "Signalling Link Code", "mtp3mg.slc",
- FT_UINT8, BASE_DEC, NULL, ANSI_MIM_SLC_MASK,
- "SLC of affected link", HFILL }},
- { &hf_mtp3mg_dlc_ansi_slc,
- { "Signalling Link Code", "mtp3mg.slc",
- FT_UINT8, BASE_DEC, NULL, ANSI_DLC_SLC_MASK,
- "SLC of affected link", HFILL }},
- { &hf_mtp3mg_dlc_ansi_link,
- { "Link", "mtp3mg.link",
- FT_UINT8, BASE_DEC, NULL, ANSI_DLC_LINK_MASK,
- "CIC of BIC used to carry data", HFILL }},
- { &hf_mtp3mg_dlc_itu_link,
- { "Link", "mtp3mg.link",
- FT_UINT8, BASE_DEC, NULL, ITU_DLC_LINK_MASK,
- "CIC of BIC used to carry data", HFILL }},
- { &hf_mtp3mg_upu_user,
- { "User", "mtp3mg.user",
- FT_UINT8, BASE_HEX, VALS(service_indicator_code_vals), UPU_USER_MASK,
- "Unavailable user part", HFILL }},
- { &hf_mtp3mg_upu_cause,
- { "Cause", "mtp3mg.cause",
- FT_UINT8, BASE_HEX, VALS(upu_cause_values), UPU_CAUSE_MASK,
- "Cause of user unavailability", HFILL }},
- { &hf_mtp3test_h0,
- { "H0 (Message Group)", "mtp3mg.test.h0",
- FT_UINT8, BASE_HEX, VALS(test_h0_message_type_values), H0_MASK,
- "Message group identifier", HFILL }},
- { &hf_mtp3mg_test_h1,
- { "H1 (Message)", "mtp3mg.test.h1",
- FT_UINT8, BASE_HEX, VALS(test_h1_message_type_values), H1_MASK,
- "SLT message type", HFILL }},
- { &hf_mtp3mg_test_length,
- { "Test length", "mtp3mg.test.length",
- FT_UINT8, BASE_DEC, NULL, H1_MASK,
- "Signalling link test pattern length", HFILL }},
- { &hf_mtp3mg_japan_test,
- { "Japan test message", "mtp3mg.test",
- FT_UINT8, BASE_HEX, VALS(japan_test_message_type_values), 0x0,
- "Japan test message type", HFILL }},
- { &hf_mtp3mg_japan_test_spare,
- { "Japan test message spare", "mtp3mg.test.spare",
- FT_UINT8, BASE_HEX, NULL, 0x0,
- NULL, HFILL }},
- { &hf_mtp3mg_japan_test_pattern,
- { "Japan test message pattern", "mtp3mg.test.pattern",
- FT_UINT16, BASE_HEX, NULL, 0x0,
- NULL, HFILL }},
- { &hf_mtp3mg_japan_spare,
- { "Japan management spare", "mtp3mg.spare",
- FT_UINT8, BASE_HEX, NULL, 0x0,
- NULL, HFILL }},
- { &hf_mtp3mg_test_ansi_slc,
- { "Signalling Link Code", "mtp3mg.slc",
- FT_UINT8, BASE_DEC, NULL, ANSI_TEST_SLC_MASK,
- "SLC of affected link", HFILL }},
- { &hf_mtp3mg_test_pattern,
- { "Test pattern", "mtp3mg.test_pattern",
- FT_BYTES, BASE_NONE, NULL, 0x0,
- NULL, HFILL }},
+ { &hf_mtp3mg_h0,
+ { "H0 (Message Group)", "mtp3mg.h0",
+ FT_UINT8, BASE_HEX, VALS(h0_message_type_values), H0_MASK,
+ "Message group identifier", HFILL }},
+ { &hf_mtp3mg_chm_h1,
+ { "H1 (Message)", "mtp3mg.h1",
+ FT_UINT8, BASE_HEX, VALS(chm_h1_message_type_values), H1_MASK,
+ "Message type", HFILL }},
+ { &hf_mtp3mg_ecm_h1,
+ { "H1 (Message)", "mtp3mg.h1",
+ FT_UINT8, BASE_HEX, VALS(ecm_h1_message_type_values), H1_MASK,
+ "Message type", HFILL }},
+ { &hf_mtp3mg_fcm_h1,
+ { "H1 (Message)", "mtp3mg.h1",
+ FT_UINT8, BASE_HEX, VALS(fcm_h1_message_type_values), H1_MASK,
+ "Message type", HFILL }},
+ { &hf_mtp3mg_tfm_h1,
+ { "H1 (Message)", "mtp3mg.h1",
+ FT_UINT8, BASE_HEX, VALS(tfm_h1_message_type_values), H1_MASK,
+ "Message type", HFILL }},
+ { &hf_mtp3mg_rsm_h1,
+ { "H1 (Message)", "mtp3mg.h1",
+ FT_UINT8, BASE_HEX, VALS(rsm_h1_message_type_values), H1_MASK,
+ "Message type", HFILL }},
+ { &hf_mtp3mg_mim_h1,
+ { "H1 (Message)", "mtp3mg.h1",
+ FT_UINT8, BASE_HEX, VALS(mim_h1_message_type_values), H1_MASK,
+ "Message type", HFILL }},
+ { &hf_mtp3mg_trm_h1,
+ { "H1 (Message)", "mtp3mg.h1",
+ FT_UINT8, BASE_HEX, VALS(trm_h1_message_type_values), H1_MASK,
+ "Message type", HFILL }},
+ { &hf_mtp3mg_dlm_h1,
+ { "H1 (Message)", "mtp3mg.h1",
+ FT_UINT8, BASE_HEX, VALS(dlm_h1_message_type_values), H1_MASK,
+ "Message type", HFILL }},
+ { &hf_mtp3mg_ufc_h1,
+ { "H1 (Message)", "mtp3mg.h1",
+ FT_UINT8, BASE_HEX, VALS(ufc_h1_message_type_values), H1_MASK,
+ "Message type", HFILL }},
+ { &hf_mtp3mg_coo_ansi_slc,
+ { "Signalling Link Code", "mtp3mg.slc",
+ FT_UINT8, BASE_DEC, NULL, ANSI_COO_SLC_MASK,
+ "SLC of affected link", HFILL }},
+ { &hf_mtp3mg_coo_ansi_fsn,
+ { "Forward Sequence Number", "mtp3mg.fsn",
+ FT_UINT8, BASE_DEC, NULL, ANSI_COO_FSN_MASK,
+ "Forward Sequence Number of last accepted message", HFILL }},
+ { &hf_mtp3mg_coo_itu_fsn,
+ { "Forward Sequence Number", "mtp3mg.fsn",
+ FT_UINT8, BASE_DEC, NULL, ITU_COO_FSN_MASK,
+ "Forward Sequence Number of last accepted message", HFILL }},
+ { &hf_mtp3mg_xco_ansi_slc,
+ { "Signalling Link Code", "mtp3mg.slc",
+ FT_UINT32, BASE_DEC, NULL, ANSI_XCO_SLC_MASK,
+ "SLC of affected link", HFILL }},
+ { &hf_mtp3mg_xco_ansi_fsn,
+ { "Forward Sequence Number", "mtp3mg.fsn",
+ FT_UINT32, BASE_DEC, NULL, ANSI_XCO_FSN_MASK,
+ "Forward Sequence Number of last accepted message", HFILL }},
+ { &hf_mtp3mg_xco_itu_fsn,
+ { "Forward Sequence Number", "mtp3mg.fsn",
+ FT_UINT24, BASE_DEC, NULL, 0x0,
+ "Forward Sequence Number of last accepted message", HFILL }},
+ { &hf_mtp3mg_cbd_ansi_slc,
+ { "Signalling Link Code", "mtp3mg.slc",
+ FT_UINT16, BASE_DEC, NULL, ANSI_CBD_SLC_MASK,
+ "SLC of affected link", HFILL }},
+ { &hf_mtp3mg_cbd_ansi_cbc,
+ { "Change Back Code", "mtp3mg.cbc",
+ FT_UINT16, BASE_DEC, NULL, ANSI_CBD_CBC_MASK,
+ NULL, HFILL }},
+ { &hf_mtp3mg_cbd_itu_cbc,
+ { "Change Back Code", "mtp3mg.cbc",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_mtp3mg_cbd_japan_cbc,
+ { "Change Back Code", "mtp3mg.cbc",
+ FT_UINT8, BASE_DEC, NULL, JAPAN_CBD_CBC_MASK,
+ NULL, HFILL }},
+ { &hf_mtp3mg_eco_ansi_slc,
+ { "Signalling Link Code", "mtp3mg.slc",
+ FT_UINT8, BASE_DEC, NULL, ANSI_ECO_SLC_MASK,
+ "SLC of affected link", HFILL }},
+ { &hf_mtp3mg_ansi_apc,
+ { "Affected Point Code", "mtp3mg.ansi_apc",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_mtp3mg_apc_member,
+ { "Affected Point Code member", "mtp3mg.apc.member",
+ FT_UINT24, BASE_DEC, NULL, ANSI_MEMBER_MASK,
+ NULL, HFILL }},
+ { &hf_mtp3mg_apc_cluster,
+ { "Affected Point Code cluster", "mtp3mg.apc.cluster",
+ FT_UINT24, BASE_DEC, NULL, ANSI_CLUSTER_MASK,
+ NULL, HFILL }},
+ { &hf_mtp3mg_apc_network,
+ { "Affected Point Code network", "mtp3mg.apc.network",
+ FT_UINT24, BASE_DEC, NULL, ANSI_NETWORK_MASK,
+ NULL, HFILL }},
+ { &hf_mtp3mg_tfc_ansi_status,
+ { "Status", "mtp3mg.status",
+ FT_UINT8, BASE_DEC, NULL, ANSI_TFC_STATUS_MASK,
+ "Congestion status", HFILL }},
+ { &hf_mtp3mg_itu_apc,
+ { "Affected Point Code (ITU)", "mtp3mg.apc",
+ FT_UINT16, BASE_DEC, NULL, ITU_PC_MASK,
+ NULL, HFILL }},
+ { &hf_mtp3mg_tfc_itu_status,
+ { "Status", "mtp3mg.status",
+ FT_UINT8, BASE_DEC, NULL, ITU_TFC_STATUS_MASK,
+ "Congestion status", HFILL }},
+ { &hf_mtp3mg_chinese_apc,
+ { "Affected Point Code", "mtp3mg.chinese_apc",
+ FT_STRING, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_mtp3mg_tfc_japan_spare,
+ { "TFC spare (Japan)", "mtp3mg.japan_spare",
+ FT_UINT8, BASE_HEX, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_mtp3mg_japan_apc,
+ { "Affected Point Code", "mtp3mg.japan_apc",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_mtp3mg_tfc_japan_status,
+ { "Status", "mtp3mg.japan_status",
+ FT_UINT8, BASE_DEC, NULL, JAPAN_TFC_STATUS_MASK,
+ NULL, HFILL }},
+ { &hf_mtp3mg_tfc_japan_status_spare,
+ { "Spare (Japan)", "mtp3mg.japan_spare",
+ FT_UINT8, BASE_HEX, NULL, JAPAN_TFC_STATUS_SPARE_MASK,
+ NULL, HFILL }},
+ { &hf_mtp3mg_tfm_japan_count,
+ { "Count of Affected Point Codes (Japan)", "mtp3mg.japan_count",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_mtp3mg_tfm_japan_spare,
+ { "Spare (Japan)", "mtp3mg.japan_spare",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_mtp3mg_rsm_japan_count,
+ { "Count of Affected Point Codes (Japan)", "mtp3mg.japan_count",
+ FT_UINT8, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_mtp3mg_rsm_japan_spare,
+ { "Spare (Japan)", "mtp3mg.japan_spare",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_mtp3mg_mim_ansi_slc,
+ { "Signalling Link Code", "mtp3mg.slc",
+ FT_UINT8, BASE_DEC, NULL, ANSI_MIM_SLC_MASK,
+ "SLC of affected link", HFILL }},
+ { &hf_mtp3mg_dlc_ansi_slc,
+ { "Signalling Link Code", "mtp3mg.slc",
+ FT_UINT8, BASE_DEC, NULL, ANSI_DLC_SLC_MASK,
+ "SLC of affected link", HFILL }},
+ { &hf_mtp3mg_dlc_ansi_link,
+ { "Link", "mtp3mg.link",
+ FT_UINT8, BASE_DEC, NULL, ANSI_DLC_LINK_MASK,
+ "CIC of BIC used to carry data", HFILL }},
+ { &hf_mtp3mg_dlc_itu_link,
+ { "Link", "mtp3mg.link",
+ FT_UINT8, BASE_DEC, NULL, ITU_DLC_LINK_MASK,
+ "CIC of BIC used to carry data", HFILL }},
+ { &hf_mtp3mg_upu_user,
+ { "User", "mtp3mg.user",
+ FT_UINT8, BASE_HEX, VALS(service_indicator_code_vals), UPU_USER_MASK,
+ "Unavailable user part", HFILL }},
+ { &hf_mtp3mg_upu_cause,
+ { "Cause", "mtp3mg.cause",
+ FT_UINT8, BASE_HEX, VALS(upu_cause_values), UPU_CAUSE_MASK,
+ "Cause of user unavailability", HFILL }},
+ { &hf_mtp3test_h0,
+ { "H0 (Message Group)", "mtp3mg.test.h0",
+ FT_UINT8, BASE_HEX, VALS(test_h0_message_type_values), H0_MASK,
+ "Message group identifier", HFILL }},
+ { &hf_mtp3mg_test_h1,
+ { "H1 (Message)", "mtp3mg.test.h1",
+ FT_UINT8, BASE_HEX, VALS(test_h1_message_type_values), H1_MASK,
+ "SLT message type", HFILL }},
+ { &hf_mtp3mg_test_length,
+ { "Test length", "mtp3mg.test.length",
+ FT_UINT8, BASE_DEC, NULL, H1_MASK,
+ "Signalling link test pattern length", HFILL }},
+ { &hf_mtp3mg_japan_test,
+ { "Japan test message", "mtp3mg.test",
+ FT_UINT8, BASE_HEX, VALS(japan_test_message_type_values), 0x0,
+ "Japan test message type", HFILL }},
+ { &hf_mtp3mg_japan_test_spare,
+ { "Japan test message spare", "mtp3mg.test.spare",
+ FT_UINT8, BASE_HEX, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_mtp3mg_japan_test_pattern,
+ { "Japan test message pattern", "mtp3mg.test.pattern",
+ FT_UINT16, BASE_HEX, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_mtp3mg_japan_spare,
+ { "Japan management spare", "mtp3mg.spare",
+ FT_UINT8, BASE_HEX, NULL, 0x0,
+ NULL, HFILL }},
+ { &hf_mtp3mg_test_ansi_slc,
+ { "Signalling Link Code", "mtp3mg.slc",
+ FT_UINT8, BASE_DEC, NULL, ANSI_TEST_SLC_MASK,
+ "SLC of affected link", HFILL }},
+ { &hf_mtp3mg_test_pattern,
+ { "Test pattern", "mtp3mg.test_pattern",
+ FT_BYTES, BASE_NONE, NULL, 0x0,
+ NULL, HFILL }},
};
/* Setup protocol subtree array */
static gint *ett[] = {
- &ett_mtp3mg,
- &ett_mtp3mg_fcm_apc,
- &ett_mtp3mg_tfm_apc,
- &ett_mtp3mg_rsm_apc,
- &ett_mtp3mg_upu_apc
+ &ett_mtp3mg,
+ &ett_mtp3mg_fcm_apc,
+ &ett_mtp3mg_tfm_apc,
+ &ett_mtp3mg_rsm_apc,
+ &ett_mtp3mg_upu_apc
};
static ei_register_info ei[] = {
@@ -1397,7 +1397,7 @@ proto_register_mtp3mg(void)
/* Register the protocol name and description */
proto_mtp3mg = proto_register_protocol("Message Transfer Part Level 3 Management",
- "MTP3MG", "mtp3mg");
+ "MTP3MG", "mtp3mg");
register_dissector("mtp3mg", dissect_mtp3mg, proto_mtp3mg);
/* Required calls to register the header fields and subtrees used */
@@ -1424,3 +1424,15 @@ proto_reg_handoff_mtp3mg(void)
dissector_add_uint("mtp3.service_indicator", MTP_SI_MTNS, mtp3mg_handle);
}
+/*
+ * Editor modelines - http://www.wireshark.org/tools/modelines.html
+ *
+ * Local variables:
+ * c-basic-offset: 4
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * vi: set shiftwidth=4 tabstop=8 expandtab:
+ * :indentSize=4:tabSize=8:noTabs=true:
+ */