diff options
author | Adrian Simionov <daniel.simionov@gmail.com> | 2017-05-09 23:16:16 +1000 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2017-05-09 16:36:21 +0000 |
commit | 0972db2f9d5a82d0545f3b22f03d4c8388fda354 (patch) | |
tree | 73175d8103f3b195407a295f94697260f7574925 | |
parent | 5cd7ea6af225e8ed968c7db8cebad0fc8c0293af (diff) |
docsis: DCC-REQ TLV 2.7 support
Change-Id: I40724306d5facd0f4a5a9ca2354330577857d27f
Reviewed-on: https://code.wireshark.org/review/21563
Petri-Dish: Michael Mann <mmann78@netscape.net>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Michael Mann <mmann78@netscape.net>
-rw-r--r-- | plugins/docsis/packet-dccreq.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/plugins/docsis/packet-dccreq.c b/plugins/docsis/packet-dccreq.c index 0c7e306cf6..6ace50030f 100644 --- a/plugins/docsis/packet-dccreq.c +++ b/plugins/docsis/packet-dccreq.c @@ -49,6 +49,7 @@ void proto_reg_handoff_docsis_dccreq(void); #define DCCREQ_DS_INTLV_DEPTH 4 #define DCCREQ_DS_CHAN_ID 5 #define DCCREQ_DS_SYNC_SUB 6 +#define DCCREQ_DS_OFDM_BLOCK_FREQ 7 /* Define Service Flow Substitution subtypes * These are subtypes of DCCREQ_SF_SUB (7) @@ -73,6 +74,7 @@ static int hf_docsis_dccreq_ds_intlv_depth_i = -1; static int hf_docsis_dccreq_ds_intlv_depth_j = -1; static int hf_docsis_dccreq_ds_chan_id = -1; static int hf_docsis_dccreq_ds_sync_sub = -1; +static int hf_docsis_dccreq_ds_ofdm_block_freq = -1; static int hf_docsis_dccreq_init_tech = -1; static int hf_docsis_dccreq_ucd_sub = -1; static int hf_docsis_dccreq_said_sub_cur = -1; @@ -139,6 +141,7 @@ static const value_string ds_param_subtlv_vals[] = { {DCCREQ_DS_INTLV_DEPTH, "Interleaver Depth"}, {DCCREQ_DS_CHAN_ID, "Downstream Channel ID"}, {DCCREQ_DS_SYNC_SUB, "SYNC Substitution"}, + {DCCREQ_DS_OFDM_BLOCK_FREQ, "OFDM Block Frequency"}, {0, NULL} }; @@ -149,6 +152,7 @@ static const value_string sf_sub_subtlv_vals[] = { {0, NULL} }; +static const unit_name_string local_units_hz = { "Hz", NULL }; /* Dissection */ static void @@ -237,6 +241,16 @@ dissect_dccreq_ds_params (tvbuff_t * tvb, packet_info* pinfo, proto_tree * tree, expert_add_info_format(pinfo, tlv_len_item, &ei_docsis_dccreq_tlvlen_bad, "Wrong TLV length: %u", length); } break; + case DCCREQ_DS_OFDM_BLOCK_FREQ: + if (length == 4) + { + proto_tree_add_item (dcc_tree, hf_docsis_dccreq_ds_ofdm_block_freq, tvb, pos, length, ENC_BIG_ENDIAN); + } + else + { + expert_add_info_format(pinfo, tlv_len_item, &ei_docsis_dccreq_tlvlen_bad, "Wrong TLV length: %u", length); + } + break; } pos += length; @@ -536,6 +550,15 @@ proto_register_docsis_dccreq (void) HFILL } }, + {&hf_docsis_dccreq_ds_ofdm_block_freq , + { + "OFDM Block Frequency", + "docsis_dccreq.ds_ofdm_block_freq", + FT_UINT32, BASE_DEC|BASE_UNIT_STRING, &local_units_hz, 0x0, + NULL, + HFILL + } + }, {&hf_docsis_dccreq_init_tech , { "Initialization Technique", |