Kafka Telemetry
|
Feature Name |
Release Information |
Feature Description |
|---|---|---|
|
Kafka support for multiple brokers |
Cisco IOS XE Dublin 17.12.1z |
Starting from this release, Kafka broker cluster now provides support for monitoring the connection status of up to a maximum of two brokers. Each broker connection can be maintained independently. |
|
Kafka support for OFDMA channel information |
Cisco IOS XE Dublin 17.12.1z |
The cBR-8 routers now include a new telemetry event, OFDMA-Status, which serves to identify channel configurations and monitor the upstream status of channels. |
Starting with Cisco IOS XE Dublin 17.12.1x release, a new Binos process was introduced to support Kafka. This process also services the SNMP PNM TFTP requests replacing the legacy Guestshell PNM TFTP application.
Kafka Broker Connection
The Kafka broker must be specified by IPv4 address using the bootstrap-servers command:
cable telemetry broker kafka-broker
bootstrap-servers 1.2.0.150:9092
The following Kafka Broker configuration is required in server.properties when starting the server.
[root@kafka-server config]#bin/kafka-server-start.sh config/server.properties
# Listener name, hostname and port the broker will advertise to clients.
# If not set, it uses the value for "listeners". advertised.listeners=PLAINTEXT://1.2.0.150:9092
Kafka US-RxMER Telemetry Event
cBR-8 Telemetry events are published on Kakfa using Google Protocol Buffer (GPB) message format. GPB is a language-neutral, platform-neutral, extensible mechanism for serializing structured data.
Here are the details of the Cisco Telemetry GPB file:
-
Package: cisco_cable_telemetry
-
Message: PmaUsRxMer
Sub-messages
-
OssiPnmUsRxMer
-
PmaUsRxMerHdr
-
Here is a sample GBP .proto file for the US-RxMER event:
/*
*
* file: cisco_cable_telemetry.proto
*
* Upstream MER Telemetry and channel stats, Google Proto Buff format
*
* Copyright (c) 2022-2024 by Cisco Systems, Inc.
* All rights reserved.
*/
syntax = "proto3";
package cisco_cable_telemetry;
message OssiPnmUsRxMer {
uint32 file_type = 1;
uint32 major_ver = 2;
uint32 minor_ver = 3;
uint32 capture_time = 4;
uint32 if_index = 5;
string ccap_id = 6;
bytes rpd_id = 7;
uint32 rpd_port_num = 8;
bytes cm_mac_addr = 9;
uint32 number_of_averages = 10;
uint32 preeq_on_off = 11;
uint32 subcarrier_zero_center_freq = 12;
uint32 first_active_subcarrier_index = 13;
uint32 subcarrier_spacing_in_khz = 14;
uint32 rx_mer_byte_len = 15;
bytes rx_mer_data = 16;
}
message PmaUsRxMerHdr {
uint32 version = 1;
uint32 slot = 2;
uint32 ctrlr = 3;
uint32 us_channel = 4;
uint32 mac_domain = 5;
uint32 ucid = 6;
uint32 ucd_cc = 7;
uint64 total_cws = 8;
uint64 good_cws = 9;
uint64 corr_cws = 10;
uint64 uncorr_cws = 11;
}
message PmaUsRxMer {
PmaUsRxMerHdr header = 1;
OssiPnmUsRxMer ossi = 2;
}
Here is a sample GBP .proto file for the OFDMA-Status event:
/*
*
* file: cisco_docsis_ofdma_status.proto
*
* DOCSIS 3.1 OFDMA channel config and status, Google Proto Buff format
*
* Copyright (c) 2023 by Cisco Systems, Inc.
* All rights reserved.
*/
syntax = "proto3";
package cisco_docsis_ofdma_channel;
/* OFDMA channel state. */
enum OfdmaState {
OFDMA_STATE_UNSPECIFIED = 0; // reject stage and commit
OFDMA_STATE_ADMIN_DOWN = 1; // accept stage , reject commit
OFDMA_STATE_ADMIN_UP_OPER_DOWN = 2; // accept stage and commit
OFDMA_STATE_OPER_UP = 3;
}
/* LCHA status */
enum LchaStatus {
LCHA_STATUS_UNSPECIFIED = 0;
LCHA_STATUS_PRIMARY_ACTIVE = 1;
LCHA_STATUS_SECONDARY_ACTIVE = 2;
}
/* See MULPI Spec table "Channel TLV Parameters" TLV 28 */
enum SubcarrierSpacing {
SC_SPACING_UNSPECIFIED = 0;
SC_SPACING_25KHZ = 1;
SC_SPACING_50KHZ = 2;
}
message SubcarrierBand {
uint32 sc_start = 1;
uint32 sc_end = 2;
}
message MinislotGroup {
uint32 sc_start = 1;
uint32 minislot_start = 2;
// Modulation bitload range: {0-12}
// Ref: Cablelabs MULPI spec UCD TLV 21 Table:
uint32 modulation_bitload = 3;
// Pilot Pattern Range: {1-14}
// Ref: Cablelabs MULPI spec table
uint32 pilot_pattern = 4;
uint32 consecutive_minislots = 5;
}
message IucBurstProfile {
uint32 iuc = 1;
repeated MinislotGroup minislot_groups = 2;
}
message PmaOfdmaStatus {
uint32 major_ver = 1;
uint32 minor_ver = 2;
uint32 reporting_time = 3;
uint32 if_index = 4;
string ccap_id = 5;
uint32 slot = 6; // primary slot
uint32 ctrlr = 7;
uint32 us_channel = 8;
uint32 mac_domain = 9;
uint32 ucid = 10; // 1-based ucid
OfdmaState ofdma_state = 11;
LchaStatus lcha_status = 12;
SubcarrierSpacing sc_spacing = 13;
uint32 sc_0_center_freq_hz = 14;
repeated SubcarrierBand sc_exclusion_bands = 15;
repeated SubcarrierBand sc_unused_bands = 16;
repeated IucBurstProfile base_iuc_burst_profiles = 17;
repeated IucBurstProfile current_iuc_burst_profiles = 18;
}
Test
|
Feature Name |
Release Information |
Feature Description |
|---|---|---|
|
cBR8 SNMP MIBs to convert to gRPC for Kafka Bus |
Cisco IOS XE Dublin 17.15.1z |
To lower cBR8 SUP IOSd CPU and offload some SNMP polling to a streaming telemetry method, this feature converts the first phase of frequently polled MIB OIDs to put on the cBR8 Kafka bus. |
|
Feature Name |
Release Information |
Feature Description |
|---|---|---|
|
Kafka support for channel set of a modem to be continually reassessed over time |
Cisco IOS XE Dublin 17.15.1z |
System level notifications for power monitoring downgrade and upgrade have been added for Kafka telemetry using “cm.event.us.dynpwr”. |
|
Feature Name |
Release Information |
Feature Description |
|---|---|---|
|
Channel set of a modem to be continually reassessed over time based on the power capability of the modem and current plant attenuation |
Cisco IOS XE Dublin 17.15.1z |
Modems with limited transmit power ceiling are assigned a single upstream OFDMA channel as their upstream bounding group. These modems continue to be close to their maximum transmit power with a single OFDMA and experience upstream data error issues. The preference is for these modems to drop its bonding group to a group of ATDMA channels instead of a single OFDMA channel. After a modem comes online, the CMTS software will continue monitoring the modem transmit power and perform upstream bonding group (UBG) adjustment if the modem transmit power moves higher. If the modem’s transmit power moves lower, the CMTS will move the modem to use higher frequency width UBG. |
Feedback