forked from osmocom/wireshark
From Guido Reismueller:
This patch includes alle modem capabilities from DOCSIS 3.0 Until now only modem capabilities 1-12 where implemented. Now all capabilities 1-40 are included. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6070 svn path=/trunk/; revision=37892
This commit is contained in:
parent
cdfadace98
commit
42dcd2af62
|
@ -131,6 +131,44 @@ static int hf_docsis_tlv_mcap_8021Q_filter = -1;
|
|||
static int hf_docsis_tlv_mcap_xmit_eq_taps_per_sym = -1;
|
||||
static int hf_docsis_tlv_mcap_xmit_eq_taps = -1;
|
||||
static int hf_docsis_tlv_mcap_dcc = -1;
|
||||
static int hf_docsis_tlv_mcap_ip_filters = -1;
|
||||
static int hf_docsis_tlv_mcap_llc_filters = -1;
|
||||
static int hf_docsis_tlv_mcap_exp_unicast_sid = -1;
|
||||
static int hf_docsis_tlv_mcap_rnghoff_cm = -1;
|
||||
static int hf_docsis_tlv_mcap_rnghoff_erouter = -1;
|
||||
static int hf_docsis_tlv_mcap_rnghoff_emta = -1;
|
||||
static int hf_docsis_tlv_mcap_rnghoff_estb = -1;
|
||||
static int hf_docsis_tlv_mcap_l2vpn = -1;
|
||||
static int hf_docsis_tlv_mcap_l2vpn_esafe = -1;
|
||||
static int hf_docsis_tlv_mcap_dut_filtering = -1;
|
||||
static int hf_docsis_tlv_mcap_us_freq_range = -1;
|
||||
static int hf_docsis_tlv_mcap_us_srate_160 = -1;
|
||||
static int hf_docsis_tlv_mcap_us_srate_320 = -1;
|
||||
static int hf_docsis_tlv_mcap_us_srate_640 = -1;
|
||||
static int hf_docsis_tlv_mcap_us_srate_1280 = -1;
|
||||
static int hf_docsis_tlv_mcap_us_srate_2560 = -1;
|
||||
static int hf_docsis_tlv_mcap_us_srate_5120 = -1;
|
||||
static int hf_docsis_tlv_mcap_sac = -1;
|
||||
static int hf_docsis_tlv_mcap_code_hop_mode2 = -1;
|
||||
static int hf_docsis_tlv_mcap_mtc = -1;
|
||||
static int hf_docsis_tlv_mcap_512_msps_utc = -1;
|
||||
static int hf_docsis_tlv_mcap_256_msps_utc = -1;
|
||||
static int hf_docsis_tlv_mcap_total_sid_cluster = -1;
|
||||
static int hf_docsis_tlv_mcap_sid_per_sf = -1;
|
||||
static int hf_docsis_tlv_mcap_mrc = -1;
|
||||
static int hf_docsis_tlv_mcap_total_dsid = -1;
|
||||
static int hf_docsis_tlv_mcap_reseq_dsid = -1;
|
||||
static int hf_docsis_tlv_mcap_mc_dsid = -1;
|
||||
static int hf_docsis_tlv_mcap_mc_dsid_fwd = -1;
|
||||
static int hf_docsis_tlv_mcap_fctype_fwd = -1;
|
||||
static int hf_docsis_tlv_mcap_dpv_path = -1;
|
||||
static int hf_docsis_tlv_mcap_dpv_packet = -1;
|
||||
static int hf_docsis_tlv_mcap_ugs = -1;
|
||||
static int hf_docsis_tlv_mcap_map_ucd = -1;
|
||||
static int hf_docsis_tlv_mcap_udc = -1;
|
||||
static int hf_docsis_tlv_mcap_ipv6 = -1;
|
||||
static int hf_docsis_tlv_mcap_ext_us_trans_power = -1;
|
||||
|
||||
|
||||
static int hf_docsis_tlv_clsfr_ref = -1;
|
||||
static int hf_docsis_tlv_clsfr_id = -1;
|
||||
|
@ -580,6 +618,24 @@ static const value_string init_reason_vals[] = {
|
|||
{0, NULL},
|
||||
};
|
||||
|
||||
static const value_string docsis_freq_rng_vals[] = {
|
||||
{0, "Standard Upstream Frequency Range"},
|
||||
{1, "Standard and Extended Upstream Frequency Range"},
|
||||
{0, NULL},
|
||||
};
|
||||
|
||||
static const value_string mc_dsid_fwd_vals[] = {
|
||||
{0, "Support for GMAC explicit multicast DCID Forwarding"},
|
||||
{1, "Support for GMAC promiscuous multicast DCID Forwarding"},
|
||||
{0, NULL},
|
||||
};
|
||||
|
||||
static const value_string fctype_fwd_vals[] = {
|
||||
{0, "Isolation Packet PDU Header (FC_Type of 10) is not forwarded"},
|
||||
{1, "Isolation Packet PDU Header (FC_Type of 10) is forwarded"},
|
||||
{0, NULL},
|
||||
};
|
||||
|
||||
/* Code to actually dissect the packets */
|
||||
static void
|
||||
dissect_phs_err (tvbuff_t * tvb, proto_tree * tree, int start,
|
||||
|
@ -1848,6 +1904,311 @@ dissect_modemcap (tvbuff_t * tvb, proto_tree * tree, int start,
|
|||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_IP_FILTERS:
|
||||
if (length == 2)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_ip_filters, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_LLC_FILTERS:
|
||||
if (length == 2)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_llc_filters, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_EXP_UNICAST_SID:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_exp_unicast_sid, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_RNG_HOFF:
|
||||
if (length == 4)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_rnghoff_cm, tvb,
|
||||
pos, length, FALSE);
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_rnghoff_erouter, tvb,
|
||||
pos, length, FALSE);
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_rnghoff_emta, tvb,
|
||||
pos, length, FALSE);
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_rnghoff_estb, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_L2VPN:
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_l2vpn, tvb,
|
||||
pos, length, FALSE);
|
||||
break;
|
||||
case CAP_L2VPN_ESAFE:
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_l2vpn_esafe, tvb,
|
||||
pos, length, FALSE);
|
||||
break;
|
||||
case CAP_DUT_FILTERING:
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_dut_filtering, tvb,
|
||||
pos, length, FALSE);
|
||||
break;
|
||||
case CAP_US_FREQ_RNG:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_us_freq_range, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_US_SRATE:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_us_srate_160, tvb,
|
||||
pos, length, FALSE);
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_us_srate_320, tvb,
|
||||
pos, length, FALSE);
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_us_srate_640, tvb,
|
||||
pos, length, FALSE);
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_us_srate_1280, tvb,
|
||||
pos, length, FALSE);
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_us_srate_2560, tvb,
|
||||
pos, length, FALSE);
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_us_srate_5120, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_SAC:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_sac, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_CODE_HOP_M2:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_code_hop_mode2, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_MTC:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_mtc, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_512_MSPS_UTC:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_512_msps_utc, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_256_MSPS_UTC:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_256_msps_utc, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_TOTAL_SID_CLUST:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_total_sid_cluster, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_SID_PER_SF:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_sid_per_sf, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_MRC:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_mrc, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_TOTAL_DSID:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_total_dsid, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_RESEQ_DSID:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_reseq_dsid, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_MC_DSID:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_mc_dsid, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_MC_DSID_FWD:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_mc_dsid_fwd, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_FCTYPE_FWD:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_fctype_fwd, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_DPV:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_dpv_path, tvb,
|
||||
pos, length, FALSE);
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_dpv_packet, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_UGS:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_ugs, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_MAP_UCD:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_map_ucd, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_UDC:
|
||||
if (length == 2)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_udc, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_IPV6:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_ipv6, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
case CAP_EXT_US_TRNS_PWR:
|
||||
if (length == 1)
|
||||
{
|
||||
proto_tree_add_item (mcap_tree, hf_docsis_tlv_mcap_ext_us_trans_power, tvb,
|
||||
pos, length, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
THROW (ReportedBoundsError);
|
||||
}
|
||||
break;
|
||||
} /* switch (type) */
|
||||
pos = pos + length;
|
||||
} /* while (pos < pos+len) */
|
||||
|
@ -4102,6 +4463,210 @@ proto_register_docsis_tlv (void)
|
|||
FT_BOOLEAN, BASE_NONE, TFS (&on_off_tfs), 0x0,
|
||||
"DCC Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_ip_filters,
|
||||
{".13 IP Filters Support","docsis_tlv.mcap.ipfilters",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||
"IP Filters Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_llc_filters,
|
||||
{".14 LLC Filters Support","docsis_tlv.mcap.llcfilters",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||
"LLC Filters Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_exp_unicast_sid,
|
||||
{".15 Expanded Unicast SID Space","docsis_tlv.mcap.exucsid",
|
||||
FT_BOOLEAN, BASE_NONE, TFS (&on_off_tfs), 0x0,
|
||||
"Expanded Unicast SID Space", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_rnghoff_cm,
|
||||
{".16 Ranging Hold-Off (CM)","docsis_tlv.mcap.rnghoffcm",
|
||||
FT_UINT32, BASE_DEC, VALS (on_off_vals), 0x1,
|
||||
"Ranging Hold-Off (CM)", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_rnghoff_erouter,
|
||||
{".16 Ranging Hold-Off (ePS or eRouter)",
|
||||
"docsis_tlv.mcap.rnghofferouter",
|
||||
FT_UINT32, BASE_DEC, VALS (on_off_vals), 0x2,
|
||||
"Ranging Hold-Off (ePS or eRouter)", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_rnghoff_emta,
|
||||
{".16 Ranging Hold-Off (eMTA or EDVA)",
|
||||
"docsis_tlv.mcap.rnghoffemta",
|
||||
FT_UINT32, BASE_DEC, VALS (on_off_vals), 0x4,
|
||||
"Ranging Hold-Off (eMTA or EDVA)", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_rnghoff_estb,
|
||||
{".16 Ranging Hold-Off (DSG/eSTB)",
|
||||
"docsis_tlv.mcap.rnghoffestb",
|
||||
FT_UINT32, BASE_DEC, VALS (on_off_vals), 0x8,
|
||||
"Ranging Hold-Off (DSG/eSTB)", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_l2vpn,
|
||||
{".17 L2VPN Capability","docsis_tlv.mcap.l2vpn",
|
||||
FT_BYTES, BASE_NONE, NULL, 0x0,
|
||||
"L2VPN Capability", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_l2vpn_esafe,
|
||||
{".18 L2VPN eSAFE Host Capability","docsis_tlv.mcap.l2vpnesafe",
|
||||
FT_BYTES, BASE_NONE, NULL, 0x0,
|
||||
"L2VPN eSAFE Host Capability", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_dut_filtering,
|
||||
{".19 Downstream Unencrypted Traffic (DUT) Filtering",
|
||||
"docsis_tlv.mcap.dut",
|
||||
FT_BYTES, BASE_NONE, NULL, 0x0,
|
||||
"Downstream Unencrypted Traffic (DUT) Filtering", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_us_freq_range,
|
||||
{".20 Upstream Frequency Range Support",
|
||||
"docsis_tlv.mcap.usfreqrng",
|
||||
FT_UINT8, BASE_DEC, VALS (docsis_freq_rng_vals), 0x0,
|
||||
"Upstream Frequency Range Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_us_srate_160,
|
||||
{".21 Upstream Symbol Rate 160ksps supported",
|
||||
"docsis_tlv.mcap.srate160",
|
||||
FT_UINT8, BASE_DEC, VALS (on_off_vals), 0x1,
|
||||
"Upstream Symbol Rate 160ksps supported", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_us_srate_320,
|
||||
{".21 Upstream Symbol Rate 320ksps supported",
|
||||
"docsis_tlv.mcap.srate320",
|
||||
FT_UINT8, BASE_DEC, VALS (on_off_vals), 0x2,
|
||||
"Upstream Symbol Rate 320ksps supported", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_us_srate_640,
|
||||
{".21 Upstream Symbol Rate 640ksps supported",
|
||||
"docsis_tlv.mcap.srate640",
|
||||
FT_UINT8, BASE_DEC, VALS (on_off_vals), 0x4,
|
||||
"Upstream Symbol Rate 640ksps supported", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_us_srate_1280,
|
||||
{".21 Upstream Symbol Rate 1280ksps supported",
|
||||
"docsis_tlv.mcap.srate1280",
|
||||
FT_UINT8, BASE_DEC, VALS (on_off_vals), 0x8,
|
||||
"Upstream Symbol Rate 1280ksps supported", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_us_srate_2560,
|
||||
{".21 Upstream Symbol Rate 2560ksps supported",
|
||||
"docsis_tlv.mcap.srate2560",
|
||||
FT_UINT8, BASE_DEC, VALS (on_off_vals), 0x10,
|
||||
"Upstream Symbol Rate 2560ksps supported", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_us_srate_5120,
|
||||
{".21 Upstream Symbol Rate 5120ksps supported",
|
||||
"docsis_tlv.mcap.srate5120",
|
||||
FT_UINT8, BASE_DEC, VALS (on_off_vals), 0x20,
|
||||
"Upstream Symbol Rate 5120ksps supported", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_sac,
|
||||
{".22 Selectable Active Code Mode 2 Support","docsis_tlv.mcap.sac",
|
||||
FT_BOOLEAN, BASE_NONE, TFS (&on_off_tfs), 0x0,
|
||||
"Selectable Active Code Mode 2 Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_code_hop_mode2,
|
||||
{".23 Code Hopping Mode 2 Support","docsis_tlv.mcap.codehopm2",
|
||||
FT_BOOLEAN, BASE_NONE, TFS (&on_off_tfs), 0x0,
|
||||
"Code Hopping Mode 2 Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_mtc,
|
||||
{".24 Multiple Transmit Channel Support","docsis_tlv.mcap.mtc",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
"Multiple Transmit Channel Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_512_msps_utc,
|
||||
{".25 5.12 Msps Upstream Transmit Channel Support",
|
||||
"docsis_tlv.mcap.512mspsutc",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
"5.12 Msps Upstream Transmit Channel Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_256_msps_utc,
|
||||
{".26 2.56 Msps Upstream Transmit Channel Support",
|
||||
"docsis_tlv.mcap.256mspsutc",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
"2.56 Msps Upstream Transmit Channel Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_total_sid_cluster,
|
||||
{".27 Total SID Cluster Support","docsis_tlv.mcap.totalsidcl",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
"Total SID Cluster Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_sid_per_sf,
|
||||
{".28 SID Clusters per Service Flow Support",
|
||||
"docsis_tlv.mcap.sidpersf",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
"SID Clusters per Service Flow Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_mrc,
|
||||
{".29 Multiple Receive Channel Support","docsis_tlv.mcap.mrc",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
"Multiple Receive Channel Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_total_dsid,
|
||||
{".30 Total Downstream Service ID (DSID) Support",
|
||||
"docsis_tlv.mcap.totaldsid",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
"Total Downstream Service ID (DSID) Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_reseq_dsid,
|
||||
{".31 Resequencing Downstream Service ID (DSID) Support",
|
||||
"docsis_tlv.mcap.reseqdsid",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
"Resequencing Downstream Service ID (DSID) Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_mc_dsid,
|
||||
{".32 Multicast Downstream Service ID (DSID) Support",
|
||||
"docsis_tlv.mcap.mcdsid",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
"Multicast Downstream Service ID (DSID) Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_mc_dsid_fwd,
|
||||
{".33 Mulitcast DSID Forwarding","docsis_tlv.mcap.mcdsidfwd",
|
||||
FT_UINT8, BASE_DEC, VALS (mc_dsid_fwd_vals), 0x0,
|
||||
"Mulitcast DSID Forwarding", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_fctype_fwd,
|
||||
{".34 Frame Control Type Forwarding Capability",
|
||||
"docsis_tlv.mcap.fctypefwd",
|
||||
FT_UINT8, BASE_DEC, VALS (fctype_fwd_vals), 0x0,
|
||||
"Frame Control Type Forwarding Capability", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_dpv_path,
|
||||
{".35 DPV Capability (per Path)","docsis_tlv.mcap.dpvpath",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x1,
|
||||
"DPV Capability (per Path)", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_dpv_packet,
|
||||
{".35 DPV Capability (per Packet)","docsis_tlv.mcap.dpvpacket",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x2,
|
||||
"DPV Capability (per Packet)", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_ugs,
|
||||
{".36 Unsolicited Grant Service Support","docsis_tlv.mcap.ugs",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
"Unsolicited Grant Service Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_map_ucd,
|
||||
{".37 MAP and UCD Receipt Support","docsis_tlv.mcap.mapucd",
|
||||
FT_BOOLEAN, BASE_NONE, TFS (&on_off_tfs), 0x0,
|
||||
"MAP and UCD Receipt Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_udc,
|
||||
{".38 Upstream Drop Classifier Support","docsis_tlv.mcap.udc",
|
||||
FT_UINT16, BASE_DEC, NULL, 0x0,
|
||||
"Upstream Drop Classifier Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_ipv6,
|
||||
{".39 IPv6 Support","docsis_tlv.mcap.ipv6",
|
||||
FT_BOOLEAN, BASE_NONE, TFS (&on_off_tfs), 0x0,
|
||||
"IPv6 Support", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_mcap_ext_us_trans_power,
|
||||
{".40 Extended Upstream Transmit Power Capability",
|
||||
"docsis_tlv.mcap.extustrpwr",
|
||||
FT_UINT8, BASE_DEC, NULL, 0x0,
|
||||
"Extended Upstream Transmit Power Capability", HFILL}
|
||||
},
|
||||
{&hf_docsis_tlv_cm_mic,
|
||||
{"6 CM MIC", "docsis_tlv.cmmic",
|
||||
FT_BYTES, BASE_NONE, NULL, 0x0,
|
||||
|
|
|
@ -128,6 +128,34 @@
|
|||
#define CAP_XMIT_EQPERSYM 10
|
||||
#define CAP_NUM_XMIT_EQ_TAPS 11
|
||||
#define CAP_DCC 12
|
||||
#define CAP_IP_FILTERS 13
|
||||
#define CAP_LLC_FILTERS 14
|
||||
#define CAP_EXP_UNICAST_SID 15
|
||||
#define CAP_RNG_HOFF 16
|
||||
#define CAP_L2VPN 17
|
||||
#define CAP_L2VPN_ESAFE 18
|
||||
#define CAP_DUT_FILTERING 19
|
||||
#define CAP_US_FREQ_RNG 20
|
||||
#define CAP_US_SRATE 21
|
||||
#define CAP_SAC 22
|
||||
#define CAP_CODE_HOP_M2 23
|
||||
#define CAP_MTC 24
|
||||
#define CAP_512_MSPS_UTC 25
|
||||
#define CAP_256_MSPS_UTC 26
|
||||
#define CAP_TOTAL_SID_CLUST 27
|
||||
#define CAP_SID_PER_SF 28
|
||||
#define CAP_MRC 29
|
||||
#define CAP_TOTAL_DSID 30
|
||||
#define CAP_RESEQ_DSID 31
|
||||
#define CAP_MC_DSID 32
|
||||
#define CAP_MC_DSID_FWD 33
|
||||
#define CAP_FCTYPE_FWD 34
|
||||
#define CAP_DPV 35
|
||||
#define CAP_UGS 36
|
||||
#define CAP_MAP_UCD 37
|
||||
#define CAP_UDC 38
|
||||
#define CAP_IPV6 39
|
||||
#define CAP_EXT_US_TRNS_PWR 40
|
||||
|
||||
/* Define Classifier subtypes
|
||||
* These are subtypes of either:
|
||||
|
|
Loading…
Reference in New Issue