aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-tetra.c
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2014-10-06 15:31:47 +0200
committerStig Bjørlykke <stig@bjorlykke.org>2014-10-13 11:24:07 +0000
commit4e1b5ea866dd332294246c4800efe77431010ad8 (patch)
tree8cda568a450b29fd7bbfcbbf03d840ab9f123190 /epan/dissectors/packet-tetra.c
parent94d35481b773e785c3aec31f81dea4300fdb5669 (diff)
ASN1: Register PDU-dissectors as NEW
Change-Id: I1a317b19d8076588c9305dae6287bb80cc14da64 Reviewed-on: https://code.wireshark.org/review/4494 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net> Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Stig Bjørlykke <stig@bjorlykke.org>
Diffstat (limited to 'epan/dissectors/packet-tetra.c')
-rw-r--r--epan/dissectors/packet-tetra.c138
1 files changed, 90 insertions, 48 deletions
diff --git a/epan/dissectors/packet-tetra.c b/epan/dissectors/packet-tetra.c
index 3b740d7107..88f983321a 100644
--- a/epan/dissectors/packet-tetra.c
+++ b/epan/dissectors/packet-tetra.c
@@ -8704,75 +8704,117 @@ dissect_tetra_MAC_ACCESS_DEFINE(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a
/*--- PDUs ---*/
-static void dissect_AACH_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_AACH_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_tetra_AACH(tvb, 0, &asn1_ctx, tree, hf_tetra_AACH_PDU);
+ offset = dissect_tetra_AACH(tvb, offset, &asn1_ctx, tree, hf_tetra_AACH_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
}
-static void dissect_BSCH_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_BSCH_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_tetra_BSCH(tvb, 0, &asn1_ctx, tree, hf_tetra_BSCH_PDU);
+ offset = dissect_tetra_BSCH(tvb, offset, &asn1_ctx, tree, hf_tetra_BSCH_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
}
-static void dissect_BNCH_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_BNCH_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_tetra_BNCH(tvb, 0, &asn1_ctx, tree, hf_tetra_BNCH_PDU);
+ offset = dissect_tetra_BNCH(tvb, offset, &asn1_ctx, tree, hf_tetra_BNCH_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
}
-static void dissect_MAC_ACCESS_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_MAC_ACCESS_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_tetra_MAC_ACCESS(tvb, 0, &asn1_ctx, tree, hf_tetra_MAC_ACCESS_PDU);
+ offset = dissect_tetra_MAC_ACCESS(tvb, offset, &asn1_ctx, tree, hf_tetra_MAC_ACCESS_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
}
-static void dissect_MAC_DATA_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_MAC_DATA_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_tetra_MAC_DATA(tvb, 0, &asn1_ctx, tree, hf_tetra_MAC_DATA_PDU);
+ offset = dissect_tetra_MAC_DATA(tvb, offset, &asn1_ctx, tree, hf_tetra_MAC_DATA_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
}
-static void dissect_MAC_FRAG_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_MAC_FRAG_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_tetra_MAC_FRAG(tvb, 0, &asn1_ctx, tree, hf_tetra_MAC_FRAG_PDU);
+ offset = dissect_tetra_MAC_FRAG(tvb, offset, &asn1_ctx, tree, hf_tetra_MAC_FRAG_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
}
-static void dissect_MAC_FRAG120_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_MAC_FRAG120_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_tetra_MAC_FRAG120(tvb, 0, &asn1_ctx, tree, hf_tetra_MAC_FRAG120_PDU);
+ offset = dissect_tetra_MAC_FRAG120(tvb, offset, &asn1_ctx, tree, hf_tetra_MAC_FRAG120_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
}
-static void dissect_MAC_END_UPLINK_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_MAC_END_UPLINK_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_tetra_MAC_END_UPLINK(tvb, 0, &asn1_ctx, tree, hf_tetra_MAC_END_UPLINK_PDU);
+ offset = dissect_tetra_MAC_END_UPLINK(tvb, offset, &asn1_ctx, tree, hf_tetra_MAC_END_UPLINK_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
}
-static void dissect_MAC_END_UP114_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_MAC_END_UP114_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_tetra_MAC_END_UP114(tvb, 0, &asn1_ctx, tree, hf_tetra_MAC_END_UP114_PDU);
+ offset = dissect_tetra_MAC_END_UP114(tvb, offset, &asn1_ctx, tree, hf_tetra_MAC_END_UP114_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
}
-static void dissect_MAC_END_HU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_MAC_END_HU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_tetra_MAC_END_HU(tvb, 0, &asn1_ctx, tree, hf_tetra_MAC_END_HU_PDU);
+ offset = dissect_tetra_MAC_END_HU(tvb, offset, &asn1_ctx, tree, hf_tetra_MAC_END_HU_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
}
-static void dissect_MAC_END_DOWNLINK_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_MAC_END_DOWNLINK_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_tetra_MAC_END_DOWNLINK(tvb, 0, &asn1_ctx, tree, hf_tetra_MAC_END_DOWNLINK_PDU);
+ offset = dissect_tetra_MAC_END_DOWNLINK(tvb, offset, &asn1_ctx, tree, hf_tetra_MAC_END_DOWNLINK_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
}
-static void dissect_MAC_END_DOWN111_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_MAC_END_DOWN111_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_tetra_MAC_END_DOWN111(tvb, 0, &asn1_ctx, tree, hf_tetra_MAC_END_DOWN111_PDU);
+ offset = dissect_tetra_MAC_END_DOWN111(tvb, offset, &asn1_ctx, tree, hf_tetra_MAC_END_DOWN111_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
}
-static void dissect_MAC_RESOURCE_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_MAC_RESOURCE_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_tetra_MAC_RESOURCE(tvb, 0, &asn1_ctx, tree, hf_tetra_MAC_RESOURCE_PDU);
+ offset = dissect_tetra_MAC_RESOURCE(tvb, offset, &asn1_ctx, tree, hf_tetra_MAC_RESOURCE_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
}
-static void dissect_MAC_ACCESS_DEFINE_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) {
+static int dissect_MAC_ACCESS_DEFINE_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_) {
+ int offset = 0;
asn1_ctx_t asn1_ctx;
asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, FALSE, pinfo);
- dissect_tetra_MAC_ACCESS_DEFINE(tvb, 0, &asn1_ctx, tree, hf_tetra_MAC_ACCESS_DEFINE_PDU);
+ offset = dissect_tetra_MAC_ACCESS_DEFINE(tvb, offset, &asn1_ctx, tree, hf_tetra_MAC_ACCESS_DEFINE_PDU);
+ offset += 7; offset >>= 3;
+ return offset;
}
@@ -8913,29 +8955,29 @@ void tetra_dissect_pdu(int channel_type, int dir, tvbuff_t *pdu, proto_tree *tre
switch(channel_type) {
case TETRA_CHAN_AACH:
- dissect_AACH_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_AACH_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
case TETRA_CHAN_SCH_F:
p = tvb_get_guint8(pdu, 0);
switch(p >> 6) {
case 0:
if (dir == TETRA_DOWNLINK)
- dissect_MAC_RESOURCE_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_MAC_RESOURCE_PDU(pdu, pinfo, tetra_sub_tree, NULL);
else
- dissect_MAC_DATA_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_MAC_DATA_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
case 1: /* MAC-FRAG or MAC-END */
if((p >> 5) == 3) {
if (dir == TETRA_DOWNLINK)
- dissect_MAC_END_DOWNLINK_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_MAC_END_DOWNLINK_PDU(pdu, pinfo, tetra_sub_tree, NULL);
else
- dissect_MAC_END_UPLINK_PDU(pdu, pinfo, tetra_sub_tree);
+ dissect_MAC_END_UPLINK_PDU(pdu, pinfo, tetra_sub_tree, NULL);
} else
- dissect_MAC_FRAG_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_MAC_FRAG_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
case 2:
- dissect_MAC_ACCESS_DEFINE_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_MAC_ACCESS_DEFINE_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
}
break;
@@ -8943,16 +8985,16 @@ void tetra_dissect_pdu(int channel_type, int dir, tvbuff_t *pdu, proto_tree *tre
p = tvb_get_guint8(pdu, 0);
switch(p >> 6) {
case 0:
- dissect_MAC_RESOURCE_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_MAC_RESOURCE_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
case 1: /* MAC-FRAG or MAC-END */
if((p >> 5) == 3)
- dissect_MAC_END_DOWN111_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_MAC_END_DOWN111_PDU(pdu, pinfo, tetra_sub_tree, NULL);
else
- dissect_MAC_FRAG120_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_MAC_FRAG120_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
case 2:
- dissect_MAC_ACCESS_DEFINE_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_MAC_ACCESS_DEFINE_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
}
break;
@@ -8960,38 +9002,38 @@ void tetra_dissect_pdu(int channel_type, int dir, tvbuff_t *pdu, proto_tree *tre
p = tvb_get_guint8(pdu, 0);
switch(p >> 7) {
case 0: /* MAC-ACCESS */
- dissect_MAC_ACCESS_PDU(pdu, pinfo, tetra_sub_tree);
+ dissect_MAC_ACCESS_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
case 1: /* MAC-END-HU */
- dissect_MAC_END_HU_PDU(pdu, pinfo, tetra_sub_tree);
+ dissect_MAC_END_HU_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
}
break;
case TETRA_CHAN_BSCH:
col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "BSCH");
- dissect_BSCH_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_BSCH_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
case TETRA_CHAN_BNCH:
col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "BNCH");
- dissect_BNCH_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_BNCH_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
case TETRA_CHAN_STCH:
p = tvb_get_guint8(pdu, 0);
switch(p >> 6) {
case 0:
- dissect_MAC_RESOURCE_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_MAC_RESOURCE_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
case 1: /* MAC-FRAG or MAC-END */
if((p >> 5) == 3) {
if (dir == TETRA_DOWNLINK)
- dissect_MAC_END_DOWN111_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_MAC_END_DOWN111_PDU(pdu, pinfo, tetra_sub_tree, NULL);
else
- dissect_MAC_END_UP114_PDU(pdu, pinfo, tetra_sub_tree);
+ dissect_MAC_END_UP114_PDU(pdu, pinfo, tetra_sub_tree, NULL);
} else
- dissect_MAC_FRAG120_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_MAC_FRAG120_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
case 2:
- dissect_MAC_ACCESS_DEFINE_PDU(pdu, pinfo, tetra_sub_tree );
+ dissect_MAC_ACCESS_DEFINE_PDU(pdu, pinfo, tetra_sub_tree, NULL);
break;
}
break;