diff options
author | Andrii Vladyka <a.vladyka@ukr.net> | 2018-09-08 00:09:16 -0700 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-09-09 07:17:20 +0000 |
commit | 57c99f2153a8fcc2cd12cca69e34ff15a598554b (patch) | |
tree | 50a439444e35ba71634be7b9c1bf4f03dc485256 /epan/dissectors/packet-docsis-macmgmt.c | |
parent | 642f0c9f1de680e705bde0e6bb71132b0bc28009 (diff) |
docsis: add RNG-RSP TLV 13 (T4 Timeout Multiplier)
Change-Id: I555e996849a7517328b0eec964c844a41b72e62a
Reviewed-on: https://code.wireshark.org/review/29486
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/dissectors/packet-docsis-macmgmt.c')
-rw-r--r-- | epan/dissectors/packet-docsis-macmgmt.c | 54 |
1 files changed, 35 insertions, 19 deletions
diff --git a/epan/dissectors/packet-docsis-macmgmt.c b/epan/dissectors/packet-docsis-macmgmt.c index 0b8b8fad0f..9cb2344822 100644 --- a/epan/dissectors/packet-docsis-macmgmt.c +++ b/epan/dissectors/packet-docsis-macmgmt.c @@ -213,6 +213,7 @@ void proto_reg_handoff_docsis_mgmt(void); #define RNGRSP_RANGING_STATUS 5 #define RNGRSP_DOWN_FREQ_OVER 6 #define RNGRSP_UP_CHID_OVER 7 +#define RNGRSP_T4_TIMEOUT_MULTIPLIER 13 #define RNGRSP_DYNAMIC_RANGE_WINDOW_UPPER_EDGE 14 #define RNGRSP_TRANSMIT_EQ_ADJUST_OFDMA_CHANNELS 15 #define RNGRSP_TRANSMIT_EQ_SET_OFDMA_CHANNELS 16 @@ -718,6 +719,7 @@ static int hf_docsis_rngrsp_xmit_eq_adj = -1; static int hf_docsis_rngrsp_ranging_status = -1; static int hf_docsis_rngrsp_down_freq_over = -1; static int hf_docsis_rngrsp_upstream_ch_over = -1; +static int hf_docsis_rngrsp_rngrsp_t4_timeout_multiplier = -1; static int hf_docsis_rngrsp_dynamic_range_window_upper_edge = -1; static int hf_docsis_rngrsp_tlv_unknown = -1; static int hf_docsis_rngrsp_trans_eq_data = -1; @@ -1479,6 +1481,7 @@ static const value_string rngrsp_tlv_vals[] = { {RNGRSP_RANGING_STATUS, "Ranging Status"}, {RNGRSP_DOWN_FREQ_OVER, "Downstream Frequency Override (Hz)"}, {RNGRSP_UP_CHID_OVER, "Upstream Channel ID Override"}, + {RNGRSP_T4_TIMEOUT_MULTIPLIER, "T4 Timeout Multiplier"}, {RNGRSP_DYNAMIC_RANGE_WINDOW_UPPER_EDGE, "Dynamic Range Window Upper Edge"}, {RNGRSP_TRANSMIT_EQ_ADJUST_OFDMA_CHANNELS, "Transmit Equalization Adjust for OFDMA Channels"}, {RNGRSP_TRANSMIT_EQ_SET_OFDMA_CHANNELS, "Transmit Equalization Set for OFDMA Channels"}, @@ -3218,25 +3221,33 @@ dissect_rngrsp (tvbuff_t * tvb, packet_info * pinfo, proto_tree * tree, void* da proto_tree_add_item (rngrsptlv_tree, hf_docsis_rngrsp_upstream_ch_over, tvb, pos, tlvlen, ENC_BIG_ENDIAN); } break; - case RNGRSP_DYNAMIC_RANGE_WINDOW_UPPER_EDGE: - if (tlvlen == 1) - proto_tree_add_item (rngrsptlv_tree, hf_docsis_rngrsp_dynamic_range_window_upper_edge, tvb, pos, tlvlen, ENC_BIG_ENDIAN); - else - { - expert_add_info_format(pinfo, rngrsptlv_item, &ei_docsis_mgmt_tlvlen_bad, "Wrong TLV length: %u", tlvlen); - } - break; - case RNGRSP_TRANSMIT_EQ_ADJUST_OFDMA_CHANNELS: - dissect_rngrsp_transmit_equalization_encodings(tvb, rngrsptlv_tree, pos, tlvlen); - break; - case RNGRSP_TRANSMIT_EQ_SET_OFDMA_CHANNELS: - dissect_rngrsp_transmit_equalization_encodings(tvb, rngrsptlv_tree, pos, tlvlen); - break; - case RNGRSP_COMMANDED_POWER: - dissect_rngrsp_commanded_power(tvb, rngrsptlv_tree, pos, tlvlen); - break; - - default: + case RNGRSP_T4_TIMEOUT_MULTIPLIER: + if (tlvlen == 1) + proto_tree_add_item (rngrsptlv_tree, hf_docsis_rngrsp_rngrsp_t4_timeout_multiplier, tvb, pos, tlvlen, ENC_BIG_ENDIAN); + else + { + expert_add_info_format(pinfo, rngrsptlv_item, &ei_docsis_mgmt_tlvlen_bad, "Wrong TLV length: %u", tlvlen); + } + break; + case RNGRSP_DYNAMIC_RANGE_WINDOW_UPPER_EDGE: + if (tlvlen == 1) + proto_tree_add_item (rngrsptlv_tree, hf_docsis_rngrsp_dynamic_range_window_upper_edge, tvb, pos, tlvlen, ENC_BIG_ENDIAN); + else + { + expert_add_info_format(pinfo, rngrsptlv_item, &ei_docsis_mgmt_tlvlen_bad, "Wrong TLV length: %u", tlvlen); + } + break; + case RNGRSP_TRANSMIT_EQ_ADJUST_OFDMA_CHANNELS: + dissect_rngrsp_transmit_equalization_encodings(tvb, rngrsptlv_tree, pos, tlvlen); + break; + case RNGRSP_TRANSMIT_EQ_SET_OFDMA_CHANNELS: + dissect_rngrsp_transmit_equalization_encodings(tvb, rngrsptlv_tree, pos, tlvlen); + break; + case RNGRSP_COMMANDED_POWER: + dissect_rngrsp_commanded_power(tvb, rngrsptlv_tree, pos, tlvlen); + break; + + default: proto_tree_add_item (rngrsp_tree, hf_docsis_rngrsp_tlv_unknown, tvb, pos, tlvlen, ENC_NA); } /* switch(tlvtype) */ pos += tlvlen; @@ -7155,6 +7166,11 @@ proto_register_docsis_mgmt (void) FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL} }, + {&hf_docsis_rngrsp_rngrsp_t4_timeout_multiplier, + {"Multiplier of the default T4 Timeout (the valid range is 1-10)", "docsis_rngrsp.t4_timeout_multiplier", + FT_UINT8, BASE_DEC, NULL, 0x0, + "T4 Timeout Multiplier", HFILL} + }, {&hf_docsis_rngrsp_dynamic_range_window_upper_edge, {"Dynamic Range Window Upper Edge (in units of 0.25 db below the max allowable setting)", "docsis_rngrsp.dynamic_range_window_upper_edge", FT_UINT8, BASE_DEC, NULL, 0x0, |