aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-dvb-s2-bb.c
diff options
context:
space:
mode:
authorJohn Thacker <johnthacker@gmail.com>2021-05-26 01:17:04 -0400
committerWireshark GitLab Utility <gerald+gitlab-utility@wireshark.org>2021-05-26 20:31:28 +0000
commit99618b5b9306383c0b093f7854990d56c747211c (patch)
treeecd209506d129dd292b1844d41d56cb579c89aa2 /epan/dissectors/packet-dvb-s2-bb.c
parent33c414a2c8a47fd8349d3536531670849379717e (diff)
DVB-S2-BB: Verify EIP CRC
Verify the optional DVB-RCS2 Explicit Integrity Protection CRC32.
Diffstat (limited to 'epan/dissectors/packet-dvb-s2-bb.c')
-rw-r--r--epan/dissectors/packet-dvb-s2-bb.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/epan/dissectors/packet-dvb-s2-bb.c b/epan/dissectors/packet-dvb-s2-bb.c
index e67b451d4f..dafb2d68d7 100644
--- a/epan/dissectors/packet-dvb-s2-bb.c
+++ b/epan/dissectors/packet-dvb-s2-bb.c
@@ -130,6 +130,7 @@ static int hf_dvb_s2_bb_crc = -1;
static int hf_dvb_s2_bb_crc_status = -1;
static int hf_dvb_s2_bb_df = -1;
static int hf_dvb_s2_bb_eip_crc32 = -1;
+static int hf_dvb_s2_bb_eip_crc32_status = -1;
static int hf_dvb_s2_bb_packetized = -1;
static int hf_dvb_s2_bb_transport = -1;
@@ -1452,7 +1453,7 @@ static int dissect_dvb_s2_bb(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree
if (dvb_s2_df_dissection) {
while (bb_data_len) {
if (sync_flag == DVB_S2_BB_SYNC_EIP_CRC32 && bb_data_len == DVB_S2_BB_EIP_CRC32_LEN) {
- proto_tree_add_item(dvb_s2_bb_tree, hf_dvb_s2_bb_eip_crc32, tvb, new_off, bb_data_len, ENC_NA);
+ proto_tree_add_checksum(dvb_s2_bb_tree, tvb, new_off, hf_dvb_s2_bb_eip_crc32, hf_dvb_s2_bb_eip_crc32_status, &ei_dvb_s2_bb_crc, pinfo, crc32_mpeg2_tvb_offset(tvb, DVB_S2_BB_HEADER_LEN, new_off - DVB_S2_BB_HEADER_LEN), ENC_BIG_ENDIAN, PROTO_CHECKSUM_VERIFY);
bb_data_len = 0;
new_off += DVB_S2_BB_EIP_CRC32_LEN;
} else {
@@ -1779,7 +1780,12 @@ void proto_register_dvb_s2_modeadapt(void)
"EIP CRC32", "dvb-s2_bb.eip_crc32",
FT_UINT32, BASE_HEX, NULL, 0x0,
"Explicit Integrity Protection CRC32", HFILL}
- }
+ },
+ {&hf_dvb_s2_bb_eip_crc32_status, {
+ "EIP CRC32 Status", "dvb-s2_bb.eip_crc32.status",
+ FT_UINT8, BASE_NONE, VALS(proto_checksum_vals), 0x0,
+ NULL, HFILL}
+ },
};
static gint *ett_bb[] = {