From b87e7aea496319ad4b1215797ff52730f94c9c0f Mon Sep 17 00:00:00 2001 From: Hadar Shoham Date: Fri, 5 Aug 2022 12:56:57 +0000 Subject: [PATCH] Add support for DOCSIS TLV 5.76 'Low Latency Support' --- epan/dissectors/packet-docsis-tlv.c | 20 +++++++++++++++++++- epan/dissectors/packet-docsis-tlv.h | 1 + 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/epan/dissectors/packet-docsis-tlv.c b/epan/dissectors/packet-docsis-tlv.c index d39b57d8ec..9d82eae3a8 100644 --- a/epan/dissectors/packet-docsis-tlv.c +++ b/epan/dissectors/packet-docsis-tlv.c @@ -223,6 +223,7 @@ static int hf_docsis_tlv_mcap_dipl_up_upper_band_edge_65 = -1; static int hf_docsis_tlv_mcap_dipl_up_upper_band_edge_85 = -1; static int hf_docsis_tlv_mcap_dipl_up_upper_band_edge_117 = -1; static int hf_docsis_tlv_mcap_dipl_up_upper_band_edge_204 = -1; +static int hf_docsis_tlv_mcap_low_latency_sup = -1; static int hf_docsis_tlv_clsfr_ref = -1; static int hf_docsis_tlv_clsfr_id = -1; @@ -3019,7 +3020,7 @@ dissect_modemcap (tvbuff_t * tvb, packet_info* pinfo, proto_tree * tree, int sta expert_add_info_format(pinfo, mcap_item, &ei_docsis_tlv_tlvlen_bad, "Wrong TLV length: %u", length); } break; - case CAP_DIPL_DOWN_UPPER_BAND_EDGE: + case CAP_DIPL_DOWN_UPPER_BAND_EDGE: if (length == 1) { static int * const dipl_down_upper_band_edge[] = { @@ -3057,6 +3058,17 @@ dissect_modemcap (tvbuff_t * tvb, packet_info* pinfo, proto_tree * tree, int sta expert_add_info_format(pinfo, mcap_item, &ei_docsis_tlv_tlvlen_bad, "Wrong TLV length: %u", length); } break; + case CAP_LOW_LATENCY_SUP: + if (length == 1) + { + proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_low_latency_sup, tvb, + pos, length, ENC_BIG_ENDIAN); + } + else + { + expert_add_info_format(pinfo, mcap_item, &ei_docsis_tlv_tlvlen_bad, "Wrong TLV length: %u", length); + } + break; default: dissect_unknown_tlv (tvb, pinfo, mcap_tree, pos - 2, length + 2); break; @@ -6280,6 +6292,12 @@ proto_register_docsis_tlv (void) FT_BOOLEAN, 8, NULL, 0x10, NULL, HFILL} }, + {&hf_docsis_tlv_mcap_low_latency_sup, + {".62 Low Latency Support", + "docsis_tlv.mcap.low_latancy_sup", + FT_UINT8, BASE_HEX, NULL, 0x0, + "Low Latency Support", HFILL} + }, {&hf_docsis_tlv_cm_mic, {"6 CM MIC", "docsis_tlv.cmmic", FT_BYTES, BASE_NONE, NULL, 0x0, diff --git a/epan/dissectors/packet-docsis-tlv.h b/epan/dissectors/packet-docsis-tlv.h index 7a0ab089e6..01aea8ab5b 100644 --- a/epan/dissectors/packet-docsis-tlv.h +++ b/epan/dissectors/packet-docsis-tlv.h @@ -163,6 +163,7 @@ #define CAP_DIPL_DOWN_LOWER_BAND_EDGE 60 #define CAP_DIPL_DOWN_UPPER_BAND_EDGE 61 #define CAP_DIPL_UP_UPPER_BAND_EDGE 62 +#define CAP_LOW_LATENCY_SUP 76 /* Define Classifier subtypes * These are subtypes of either: