Skip to content
Snippets Groups Projects
Commit ffa9c891 authored by Adam Wujek's avatar Adam Wujek
Browse files

userspace/snmpd: fixes related to l1sync


Signed-off-by: default avatarAdam Wujek <dev_public@wujek.eu>
parent 2828ddcb
Branches
Tags
No related merge requests found
......@@ -31,6 +31,8 @@ wrSwitchMIB MODULE-IDENTITY
"Updates for v7.0 WRS firmware release
Added objects:
- wrsPtpInstanceExtensionCfg
Improved description of:
- wrsPtpRTT
"
REVISION "202303260000Z"
......@@ -2105,7 +2107,8 @@ wrsPtpRTT OBJECT-TYPE
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The round-trip-time, from master, in picoseconds"
"For WR extension the round-trip-time, from master, in picoseconds
For l1Sync extension 0."
::= { wrsPtpDataEntry 13 }
wrsPtpLinkLength OBJECT-TYPE
......
......@@ -282,7 +282,7 @@ time_t wrsPortStatusTable_data_fill(unsigned int *n_rows)
ppi->ptp_rx_count;
/* Update wrsPortStatusConfiguredMode */
if ( ppi->protocol_extension==PPSI_EXT_WR ) {
if (ppi->protocol_extension == PPSI_EXT_WR || ppi->protocol_extension == PPSI_EXT_L1S) {
if ( wrsPortStatusTable->wrsPortStatusMonitor == WRS_PORT_STATUS_MONITOR_DISABLE) {
configuredMode=WRS_PORT_STATUS_CONFIGURED_MODE_NON_WR;
} else {
......
......@@ -47,6 +47,7 @@ time_t wrsPtpDataTable_data_fill(unsigned int *n_rows)
struct pp_instance *ppsi_i;
struct pp_servo *ppsi_servo;
struct wr_data *wr_d;
struct l1e_data *l1e_d;
struct wr_servo_ext *wr_servo;
struct wrh_servo_t *wrh_servo;
char *tmp_name;
......@@ -176,12 +177,22 @@ time_t wrsPtpDataTable_data_fill(unsigned int *n_rows)
ppsi_i->protocol_extension;
/******** from extensions-specific ************/
if (ppsi_i->protocol_extension == PPSI_EXT_WR) {
wr_d = (struct wr_data *)
wrs_shm_follow(ppsi_head,
ppsi_i->ext_data);
wr_servo = &wr_d->servo_ext;
wrh_servo = &wr_d->servo;
if (ppsi_i->protocol_extension == PPSI_EXT_WR
|| ppsi_i->protocol_extension == PPSI_EXT_L1S) {
if (ppsi_i->protocol_extension == PPSI_EXT_WR) {
wr_d = (struct wr_data *)
wrs_shm_follow(ppsi_head,
ppsi_i->ext_data);
wr_servo = &wr_d->servo_ext;
wrh_servo = &wr_d->servo;
}
if (ppsi_i->protocol_extension == PPSI_EXT_L1S) {
l1e_d = (struct l1e_data *)
wrs_shm_follow(ppsi_head,
ppsi_i->ext_data);
wr_servo = NULL;
wrh_servo = &l1e_d->servo;
}
/* wrsPtpPhaseTracking */
ptp_a[si].wrsPtpPhaseTracking =
......@@ -196,21 +207,23 @@ time_t wrsPtpDataTable_data_fill(unsigned int *n_rows)
ptp_a[si].wrsPtpSkew =
int_saturate(wrh_servo->skew_ps);
/* wrsPtpDeltaTxM */
ptp_a[si].wrsPtpDeltaTxM =
pp_time_to_picos(&wr_servo->delta_txm);
if (wr_servo) {
/* wrsPtpDeltaTxM */
ptp_a[si].wrsPtpDeltaTxM =
pp_time_to_picos(&wr_servo->delta_txm);
/* wrsPtpDeltaRxM */
ptp_a[si].wrsPtpDeltaRxM =
pp_time_to_picos(&wr_servo->delta_rxm);
/* wrsPtpDeltaRxM */
ptp_a[si].wrsPtpDeltaRxM =
pp_time_to_picos(&wr_servo->delta_rxm);
/* wrsPtpDeltaTxS */
ptp_a[si].wrsPtpDeltaTxS =
pp_time_to_picos(&wr_servo->delta_txs);
/* wrsPtpDeltaTxS */
ptp_a[si].wrsPtpDeltaTxS =
pp_time_to_picos(&wr_servo->delta_txs);
/* wrsPtpDeltaRxS */
ptp_a[si].wrsPtpDeltaRxS =
pp_time_to_picos(&wr_servo->delta_rxs);
/* wrsPtpDeltaRxS */
ptp_a[si].wrsPtpDeltaRxS =
pp_time_to_picos(&wr_servo->delta_rxs);
}
/* wrsPtpServoStateErrCnt */
ptp_a[si].wrsPtpServoStateErrCnt =
......@@ -225,7 +238,8 @@ time_t wrsPtpDataTable_data_fill(unsigned int *n_rows)
wrh_servo->n_err_delta_rtt;
/* wrsPtpRTT */
ptp_a[si].wrsPtpRTT = pp_time_to_picos(&wr_servo->rawDelayMM);
if (wr_servo)
ptp_a[si].wrsPtpRTT = pp_time_to_picos(&wr_servo->rawDelayMM);
} else {
memset(ptp_a[si].wrsPtpSyncSource,
......
......@@ -185,29 +185,33 @@ static void get_wrsPTPStatus(unsigned int ptp_data_nrows, unsigned int port_stat
pd_a[i].wrsPtpRTTErrCnt - wrsPtpRTTErrCnt_prev[i],
t_delta);
}
if (pd_a[i].wrsPtpDeltaTxM == 0) {
t->wrsPTPStatus = WRS_PTP_STATUS_ERROR;
snmp_log(LOG_ERR, "SNMP: " SL_ER " %s: "
"DeltaTx for Master set to 0\n",
slog_obj_name);
}
if (pd_a[i].wrsPtpDeltaRxM == 0) {
t->wrsPTPStatus = WRS_PTP_STATUS_ERROR;
snmp_log(LOG_ERR, "SNMP: " SL_ER " %s: "
"DeltaRx for Master set to 0\n",
slog_obj_name);
}
if (pd_a[i].wrsPtpDeltaTxS == 0) {
/* Check deltas only for WR extension */
if (pd_a[i].wrsPtpServoExt == (1 + PPSI_EXT_WR)) {
if (pd_a[i].wrsPtpDeltaTxM == 0) {
t->wrsPTPStatus = WRS_PTP_STATUS_ERROR;
snmp_log(LOG_ERR, "SNMP: " SL_ER " %s: "
"DeltaTx for Master set to 0\n",
slog_obj_name);
}
if (pd_a[i].wrsPtpDeltaRxM == 0) {
t->wrsPTPStatus = WRS_PTP_STATUS_ERROR;
snmp_log(LOG_ERR, "SNMP: " SL_ER " %s: "
"DeltaRx for Master set to 0\n",
slog_obj_name);
}
if (pd_a[i].wrsPtpDeltaTxS == 0) {
t->wrsPTPStatus = WRS_PTP_STATUS_ERROR;
snmp_log(LOG_ERR, "SNMP: " SL_ER " %s: "
"DeltaTx for Slave set to 0\n",
slog_obj_name);
}
if (pd_a[i].wrsPtpDeltaRxS == 0) {
t->wrsPTPStatus = WRS_PTP_STATUS_ERROR;
snmp_log(LOG_ERR, "SNMP: " SL_ER " %s: "
"DeltaTx for Slave set to 0\n",
slog_obj_name);
}
if (pd_a[i].wrsPtpDeltaRxS == 0) {
t->wrsPTPStatus = WRS_PTP_STATUS_ERROR;
snmp_log(LOG_ERR, "SNMP: " SL_ER " %s: "
"DeltaRx for Slave set to 0\n",
slog_obj_name);
snmp_log(LOG_ERR, "SNMP: " SL_ER " %s: "
"DeltaRx for Slave set to 0\n",
slog_obj_name);
}
}
}
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment