Commit 2487728b authored by Adam Wujek's avatar Adam Wujek 💬

wr-servo: clear servo_state at link lost

Clear servo_state structure (with the exception of n_err_* used by SNMP) at
link down. This avoid reporting last values before link down by wr_mon and
SNMP. Otherwise check of servo state is needed.
Signed-off-by: Adam Wujek's avatarAdam Wujek <adam.wujek@cern.ch>
parent a53f3545
......@@ -143,9 +143,33 @@ static int got_sync = 0;
void wr_servo_reset(struct pp_instance *ppi)
{
/* values from servo_state to be preserved */
uint32_t n_err_state;
uint32_t n_err_offset;
uint32_t n_err_delta_rtt;
struct wr_servo_state *s;
s = &((struct wr_data *)ppi->ext_data)->servo_state;
if (!s) {
/* Don't clean servo state when is not available */
return;
}
/* shmem lock */
wrs_shm_write(ppsi_head, WRS_SHM_WRITE_BEGIN);
ppi->flags = 0;
/* preserve some values from servo_state */
n_err_state = s->n_err_state;
n_err_offset = s->n_err_offset;
n_err_delta_rtt = s->n_err_delta_rtt;
/* clear servo_state to display empty fields in wr_mon and SNMP */
memset(s, 0, sizeof(struct wr_servo_state));
/* restore values from servo_state */
s->n_err_state = n_err_state;
s->n_err_offset = n_err_offset;
s->n_err_delta_rtt = n_err_delta_rtt;
/* shmem unlock */
wrs_shm_write(ppsi_head, WRS_SHM_WRITE_END);
}
......
Markdown is supported
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