DOCSIS: Added Partial Service Downstream Channels TLV 49.6

Change-Id: Iac09d71a56024440a826ff9ca870c05eeee3a77b
Reviewed-on: https://code.wireshark.org/review/30942
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl>
This commit is contained in:
Bruno Verstuyft 2018-12-06 17:05:25 +01:00 committed by Jaap Keuter
parent 0946518780
commit 247e729d9e
2 changed files with 31 additions and 0 deletions

View File

@ -420,6 +420,7 @@ static int hf_docsis_rcc_rcv_ch_ctr_freq_asgn = -1;
static int hf_docsis_rcc_rcv_ch_prim_ds_ch_ind = -1;
static int hf_docsis_tlv_rcc_id = -1;
static int hf_docsis_tlv_rcc_partial_serv_down_chan_id = -1;
static int hf_docsis_tlv_rcc_srcc_prim_ds_chan_assign_ds_ch_id = -1;
static int hf_docsis_tlv_rcc_srcc_ds_chan_assign_ds_ch_id = -1;
static int hf_docsis_tlv_rcc_srcc_ds_prof_assign_dcid = -1;
@ -535,6 +536,7 @@ static gint ett_docsis_tlv_rcp_rcv_ch = -1;
static gint ett_docsis_tlv_rcc = -1;
static gint ett_docsis_tlv_rcc_rcv_mod_enc = -1;
static gint ett_docsis_tlv_rcc_rcv_ch = -1;
static gint ett_docsis_tlv_rcc_partial_serv_down_chan = -1;
static gint ett_docsis_tlv_rcc_srcc = -1;
static gint ett_docsis_tlv_rcc_srcc_prim_ds_assign = -1;
static gint ett_docsis_tlv_rcc_srcc_ds_assign = -1;
@ -4307,6 +4309,25 @@ dissect_rcc_rcv_ch(tvbuff_t * tvb, packet_info* pinfo, proto_tree *tree, int sta
} /* while */
}
static void
dissect_rcc_partial_serv_down_chan(tvbuff_t * tvb, proto_tree *tree, int start, guint16 len)
{
proto_tree *rcc_partial_serv_down_chan_tree;
proto_item *rcc_partial_serv_down_chan_item;
int pos = start;
int i = 0;
rcc_partial_serv_down_chan_tree =
proto_tree_add_subtree_format(tree, tvb, start, len, ett_docsis_tlv_rcc_partial_serv_down_chan, &rcc_partial_serv_down_chan_item,
".6 Partial Service Downstream Channels (Length = %u)", len);
for (i=0; i< len; ++i)
{
proto_tree_add_item (rcc_partial_serv_down_chan_tree,
hf_docsis_tlv_rcc_partial_serv_down_chan_id, tvb, pos+i,
1, ENC_BIG_ENDIAN);
}
}
static void
dissect_rcc_srcc_prim_ds_ch_assign(tvbuff_t * tvb, proto_tree *tree, int start, guint16 len)
{
@ -4559,6 +4580,9 @@ dissect_rcc(tvbuff_t * tvb, packet_info * pinfo,
vsif_tvb = tvb_new_subset_length (tvb, pos, length);
call_dissector (docsis_vsif_handle, vsif_tvb, pinfo, rcc_tree);
break;
case TLV_RCC_PARTIAL_SERV_DOWN_CHAN:
dissect_rcc_partial_serv_down_chan(tvb, rcc_tree, pos, length);
break;
case TLV_RCC_SRCC:
dissect_rcc_srcc(tvb, pinfo, rcc_tree, pos, length);
break;
@ -7322,6 +7346,11 @@ proto_register_docsis_tlv (void)
"RCC Error Encodings", HFILL}
},
#endif
{&hf_docsis_tlv_rcc_partial_serv_down_chan_id,
{"Downstream Channel ID", "docsis_tlv.rcc.partial_serv_down_chan.ds_ch_id",
FT_UINT8, BASE_DEC, NULL, 0x0,
NULL, HFILL}
},
{&hf_docsis_tlv_rcc_srcc_prim_ds_chan_assign_ds_ch_id,
{"Downstream Channel ID", "docsis_tlv.rcc.srcc.prim_ds_chann_assign.ds_ch_id",
FT_UINT8, BASE_DEC, NULL, 0x0,
@ -7675,6 +7704,7 @@ proto_register_docsis_tlv (void)
&ett_docsis_tlv_rcc,
&ett_docsis_tlv_rcc_rcv_mod_enc,
&ett_docsis_tlv_rcc_rcv_ch,
&ett_docsis_tlv_rcc_partial_serv_down_chan,
&ett_docsis_tlv_rcc_srcc,
&ett_docsis_tlv_rcc_srcc_prim_ds_assign,
&ett_docsis_tlv_rcc_srcc_ds_assign,

View File

@ -407,6 +407,7 @@
/* Define TLV_RCC sub-types
* These are subtypes of TLV_RCP (49), and not common with TLV_RCP (48)
*/
#define TLV_RCC_PARTIAL_SERV_DOWN_CHAN 6
#define TLV_RCC_SRCC 7
#define TLV_RCC_PRIM_DOWN_CHAN 8