aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-docsis-macmgmt.c
diff options
context:
space:
mode:
authorAndrii Vladyka <a.vladyka@ukr.net>2018-09-08 00:09:16 -0700
committerAnders Broman <a.broman58@gmail.com>2018-09-09 07:17:20 +0000
commit57c99f2153a8fcc2cd12cca69e34ff15a598554b (patch)
tree50a439444e35ba71634be7b9c1bf4f03dc485256 /epan/dissectors/packet-docsis-macmgmt.c
parent642f0c9f1de680e705bde0e6bb71132b0bc28009 (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.c54
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,