Commit 11ee8a2d authored by Aurelio Colosimo's avatar Aurelio Colosimo

improved readability and minor fix

state-listening: go to FAULTY if received an announce of uncorrect
length
all states: use switch/case to analyse the incoming msg type
parent 4bf77d71
......@@ -147,8 +147,8 @@ struct pp_instance {
*/
MsgHeader msg_tmp_header;
MsgHeader pdelay_req_hdr;
int is_from_self;
Boolean is_from_self;
Boolean is_from_cur_par;
};
#define DSDEF(x) x->defaultDS
......
......@@ -42,6 +42,14 @@ void msg_unpack_header(void *buf, struct pp_instance *ppi)
else
ppi->is_from_self = 0;
if (!pp_memcmp(DSPAR(ppi)->parentPortIdentity.clockIdentity,
hdr->sourcePortIdentity.clockIdentity,
PP_CLOCK_IDENTITY_LENGTH) &&
(DSPAR(ppi)->parentPortIdentity.portNumber ==
hdr->sourcePortIdentity.portNumber))
ppi->is_from_cur_par = 1;
else
ppi->is_from_cur_par = 0;
/* FIXME: diag
#ifdef PTPD_DBG
......
......@@ -7,7 +7,6 @@
int pp_listening(struct pp_instance *ppi, unsigned char *pkt, int plen)
{
if (ppi->is_new_state) {
st_com_restart_annrec_timer(ppi);
}
......@@ -15,13 +14,20 @@ int pp_listening(struct pp_instance *ppi, unsigned char *pkt, int plen)
if (st_com_check_record_update(ppi))
goto state_updated;
if (ppi->msg_tmp_header.messageType == PPM_ANNOUNCE) {
switch (ppi->msg_tmp_header.messageType) {
case PPM_ANNOUNCE:
if (plen < PP_ANNOUNCE_LENGTH) {
ppi->next_state = PPS_FAULTY;
goto state_updated;
}
if (ppi->is_from_self) {
/* FIXME diag
DBGV("HandleAnnounce : Ignore message from self \n");
*/
return;
goto state_done;
}
/* FIXME diag
......@@ -31,6 +37,11 @@ int pp_listening(struct pp_instance *ppi, unsigned char *pkt, int plen)
st_com_add_foreign(pkt, &ppi->msg_tmp_header, ppi);
ppi->record_update = TRUE;
break;
default:
/* disreguard, nothing to do */
break;
}
st_com_execute_slave(ppi);
......@@ -41,6 +52,7 @@ state_updated:
pp_timer_stop(ppi->timers[PP_TIMER_ANNOUNCE_RECEIPT]);
}
state_done:
ppi->next_delay = PP_DEFAULT_NEXT_DELAY_MS;
return 0;
......
......@@ -16,7 +16,8 @@ int pp_passive(struct pp_instance *ppi, unsigned char *pkt, int plen)
if (st_com_check_record_update(ppi))
goto state_updated;
if (ppi->msg_tmp_header.messageType == PPM_PDELAY_REQ) {
switch (ppi->msg_tmp_header.messageType) {
case PPM_PDELAY_REQ:
#ifdef _FROM_PTPD_2_1_0_
/* TODO "translate" it into ptp-wr structs*/
if (ppi->is_from_self) {
......@@ -42,6 +43,12 @@ int pp_passive(struct pp_instance *ppi, unsigned char *pkt, int plen)
break;
}
#endif /* _FROM_PTPD_2_1_0_ */
break;
default:
/* disreguard, nothing to do */
break;
}
st_com_execute_slave(ppi);
......
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