Signed-off-by: Anders Selhammer <anders.selham...@est.tech>
---
 port.c | 226 +++++++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 144 insertions(+), 82 deletions(-)

diff --git a/port.c b/port.c
index cee6445..2bde67c 100644
--- a/port.c
+++ b/port.c
@@ -200,8 +200,9 @@ int set_tmo_log(int fd, unsigned int scale, int log_seconds)
                        tmo.it_value.tv_sec++;
                }
 
-       } else
+       } else {
                tmo.it_value.tv_sec = scale * (1 << log_seconds);
+       }
 
        return timerfd_settime(fd, 0, &tmo, NULL);
 }
@@ -278,8 +279,9 @@ static void fc_prune(struct foreign_clock *fc)
 
        while (!TAILQ_EMPTY(&fc->messages)) {
                m = TAILQ_LAST(&fc->messages, messages);
-               if (msg_current(m, now))
+               if (msg_current(m, now)) {
                        break;
+               }
                TAILQ_REMOVE(&fc->messages, m, list);
                fc->n_messages--;
                msg_put(m);
@@ -330,8 +332,9 @@ static int add_foreign_master(struct port *p, struct 
ptp_message *m)
        int broke_threshold = 0, diff = 0;
 
        LIST_FOREACH(fc, &p->foreign_masters, list) {
-               if (msg_source_equal(m, fc))
+               if (msg_source_equal(m, fc)) {
                        break;
+               }
        }
        if (!fc) {
                pr_notice("port %hu: new foreign master %s", portnum(p),
@@ -355,8 +358,9 @@ static int add_foreign_master(struct port *p, struct 
ptp_message *m)
         * If this message breaks the threshold, that is an important change.
         */
        fc_prune(fc);
-       if (FOREIGN_MASTER_THRESHOLD - 1 == fc->n_messages)
+       if (FOREIGN_MASTER_THRESHOLD - 1 == fc->n_messages) {
                broke_threshold = 1;
+       }
 
        /*
         * Okay, go ahead and add this announcement.
@@ -553,8 +557,9 @@ static int path_trace_ignore(struct port *p, struct 
ptp_message *m)
                cnt = path_length(ptt);
                cid = clock_identity(p->clock);
                for (i = 0; i < cnt; i++) {
-                       if (0 == memcmp(&ptt->cid[i], &cid, sizeof(cid)))
+                       if (0 == memcmp(&ptt->cid[i], &cid, sizeof(cid))) {
                                return 1;
+                       }
                }
        }
        return 0;
@@ -585,60 +590,68 @@ static int port_capable(struct port *p)
        }
 
        if (tmv_to_nanoseconds(p->peer_delay) > p->neighborPropDelayThresh) {
-               if (p->asCapable)
+               if (p->asCapable) {
                        pr_debug("port %hu: peer_delay (%" PRId64 ") > 
neighborPropDelayThresh "
                                "(%" PRId32 "), resetting asCapable", 
portnum(p),
                                tmv_to_nanoseconds(p->peer_delay),
                                p->neighborPropDelayThresh);
+               }
                goto not_capable;
        }
 
        if (tmv_to_nanoseconds(p->peer_delay) < p->min_neighbor_prop_delay) {
-               if (p->asCapable)
+               if (p->asCapable) {
                        pr_debug("port %hu: peer_delay (%" PRId64 ") < 
min_neighbor_prop_delay "
                                "(%" PRId32 "), resetting asCapable", 
portnum(p),
                                tmv_to_nanoseconds(p->peer_delay),
                                p->min_neighbor_prop_delay);
+               }
                goto not_capable;
        }
 
        if (p->pdr_missing > ALLOWED_LOST_RESPONSES) {
-               if (p->asCapable)
+               if (p->asCapable) {
                        pr_debug("port %hu: missed %d peer delay resp, "
                                "resetting asCapable", portnum(p), 
p->pdr_missing);
+               }
                goto not_capable;
        }
 
        if (p->multiple_seq_pdr_count) {
-               if (p->asCapable)
+               if (p->asCapable) {
                        pr_debug("port %hu: multiple sequential peer delay 
resp, "
                                "resetting asCapable", portnum(p));
+               }
                goto not_capable;
        }
 
        if (!p->peer_portid_valid) {
-               if (p->asCapable)
+               if (p->asCapable) {
                        pr_debug("port %hu: invalid peer port id, "
                                "resetting asCapable", portnum(p));
+               }
                goto not_capable;
        }
 
        if (!p->nrate.ratio_valid) {
-               if (p->asCapable)
+               if (p->asCapable) {
                        pr_debug("port %hu: invalid nrate, "
                                "resetting asCapable", portnum(p));
+               }
                goto not_capable;
        }
 
 capable:
-       if (!p->asCapable)
+       if (!p->asCapable) {
                pr_debug("port %hu: setting asCapable", portnum(p));
+       }
        p->asCapable = 1;
        return 1;
 
 not_capable:
-       if (p->asCapable)
+       if (p->asCapable) {
                port_nrate_initialize(p);
+       }
        p->asCapable = 0;
        return 0;
 }
@@ -735,8 +748,9 @@ static int port_is_ieee8021as(struct port *p)
 static void port_management_send_error(struct port *p, struct port *ingress,
                                       struct ptp_message *msg, int error_id)
 {
-       if (port_management_error(p->portIdentity, ingress, msg, error_id))
+       if (port_management_error(p->portIdentity, ingress, msg, error_id)) {
                pr_err("port %hu: management error failed", portnum(p));
+       }
 }
 
 static const Octet profile_id_drr[] = {0x00, 0x1B, 0x19, 0x00, 0x01, 0x00};
@@ -934,8 +948,9 @@ static int port_management_get_response(struct port *target,
                return 0;
        }
        respond = port_management_fill_response(target, rsp, id);
-       if (respond)
+       if (respond) {
                port_prepare_and_send(ingress, rsp, 0);
+       }
        msg_put(rsp);
        return respond;
 }
@@ -957,8 +972,9 @@ static int port_management_set(struct port *target,
                respond = 1;
                break;
        }
-       if (respond && !port_management_get_response(target, ingress, id, req))
+       if (respond && !port_management_get_response(target, ingress, id, req)) 
{
                pr_err("port %hu: failed to send management set response", 
portnum(target));
+       }
        return respond ? 1 : 0;
 }
 
@@ -998,9 +1014,9 @@ static void port_nrate_initialize(struct port *p)
 {
        int shift = p->freq_est_interval - p->logMinPdelayReqInterval;
 
-       if (shift < 0)
+       if (shift < 0) {
                shift = 0;
-       else if (shift >= sizeof(int) * 8) {
+       } else if (shift >= sizeof(int) * 8) {
                shift = sizeof(int) * 8 - 1;
                pr_warning("freq_est_interval is too long");
        }
@@ -1205,13 +1221,15 @@ static int port_pdelay_request(struct port *p)
        int err;
 
        /* If multiple pdelay resp were not detected the counter can be reset */
-       if (!p->multiple_pdr_detected)
+       if (!p->multiple_pdr_detected) {
                p->multiple_seq_pdr_count = 0;
+       }
        p->multiple_pdr_detected = 0;
 
        msg = msg_allocate();
-       if (!msg)
+       if (!msg) {
                return -1;
+       }
 
        msg->hwts.type = p->timestamping;
 
@@ -1318,8 +1336,9 @@ static int port_tx_announce(struct port *p)
                return 0;
        }
        msg = msg_allocate();
-       if (!msg)
+       if (!msg) {
                return -1;
+       }
 
        msg->hwts.type = p->timestamping;
 
@@ -1347,8 +1366,9 @@ static int port_tx_announce(struct port *p)
        }
 
        err = port_prepare_and_send(p, msg, 0);
-       if (err)
+       if (err) {
                pr_err("port %hu: send announce failed", portnum(p));
+       }
        msg_put(msg);
        return err;
 }
@@ -1381,8 +1401,9 @@ static int port_tx_sync(struct port *p, struct address 
*dst)
                return 0;
        }
        msg = msg_allocate();
-       if (!msg)
+       if (!msg) {
                return -1;
+       }
        fup = msg_allocate();
        if (!fup) {
                msg_put(msg);
@@ -1400,8 +1421,9 @@ static int port_tx_sync(struct port *p, struct address 
*dst)
        msg->header.control            = CTL_SYNC;
        msg->header.logMessageInterval = p->logSyncInterval;
 
-       if (p->timestamping != TS_ONESTEP && p->timestamping != TS_P2P1STEP)
+       if (p->timestamping != TS_ONESTEP && p->timestamping != TS_P2P1STEP) {
                msg->header.flagField[0] |= TWO_STEP;
+       }
 
        if (dst) {
                msg->address = *dst;
@@ -1447,8 +1469,9 @@ static int port_tx_sync(struct port *p, struct address 
*dst)
        }
 
        err = port_prepare_and_send(p, fup, 0);
-       if (err)
+       if (err) {
                pr_err("port %hu: send follow up failed", portnum(p));
+       }
 out:
        msg_put(msg);
        msg_put(fup);
@@ -1514,8 +1537,9 @@ static void port_clear_fda(struct port *p, int count)
 {
        int i;
 
-       for (i = 0; i < count; i++)
+       for (i = 0; i < count; i++) {
                p->fda.fd[i] = -1;
+       }
 }
 
 void port_disable(struct port *p)
@@ -1570,22 +1594,26 @@ int port_initialize(struct port *p)
                        goto no_timers;
                }
        }
-       if (transport_open(p->trp, p->iface, &p->fda, p->timestamping))
+       if (transport_open(p->trp, p->iface, &p->fda, p->timestamping)) {
                goto no_tropen;
+       }
 
        for (i = 0; i < N_TIMER_FDS; i++) {
                p->fda.fd[FD_ANNOUNCE_TIMER + i] = fd[i];
        }
 
-       if (port_set_announce_tmo(p))
+       if (port_set_announce_tmo(p)) {
                goto no_tmo;
+       }
 
        /* No need to open rtnl socket on UDS port. */
        if (transport_type(p->trp) != TRANS_UDS) {
-               if (p->fda.fd[FD_RTNL] == -1)
+               if (p->fda.fd[FD_RTNL] == -1) {
                        p->fda.fd[FD_RTNL] = rtnl_open();
-               if (p->fda.fd[FD_RTNL] >= 0)
+               }
+               if (p->fda.fd[FD_RTNL] >= 0) {
                        rtnl_link_query(p->fda.fd[FD_RTNL], p->iface->name);
+               }
        }
 
        port_nrate_initialize(p);
@@ -1598,8 +1626,9 @@ no_tmo:
 no_tropen:
 no_timers:
        for (i = 0; i < N_TIMER_FDS; i++) {
-               if (fd[i] >= 0)
+               if (fd[i] >= 0) {
                        close(fd[i]);
+               }
        }
        return -1;
 }
@@ -1631,8 +1660,9 @@ static int update_current_master(struct port *p, struct 
ptp_message *m)
        struct path_trace_tlv *ptt;
        struct timePropertiesDS tds;
 
-       if (!msg_source_equal(m, fc))
+       if (!msg_source_equal(m, fc)) {
                return add_foreign_master(p, m);
+       }
 
        if (p->state != PS_PASSIVE) {
                tds.currentUtcOffset = m->announce.currentUtcOffset;
@@ -1675,8 +1705,9 @@ int process_announce(struct port *p, struct ptp_message 
*m)
        /* Do not qualify announce messages with stepsRemoved >= 255, see
         * IEEE1588-2008 section 9.3.2.5 (d)
         */
-       if (m->announce.stepsRemoved >= 255)
+       if (m->announce.stepsRemoved >= 255) {
                return result;
+       }
 
        switch (p->state) {
        case PS_INITIALIZING:
@@ -1705,8 +1736,9 @@ static int process_delay_req(struct port *p, struct 
ptp_message *m)
 
        nsm = port_nsm_reply(p, m);
 
-       if (!nsm && p->state != PS_MASTER && p->state != PS_GRAND_MASTER)
+       if (!nsm && p->state != PS_MASTER && p->state != PS_GRAND_MASTER) {
                return 0;
+       }
 
        if (p->delayMechanism == DM_P2P) {
                pr_warning("port %hu: delay request on P2P port", portnum(p));
@@ -1714,8 +1746,9 @@ static int process_delay_req(struct port *p, struct 
ptp_message *m)
        }
 
        msg = msg_allocate();
-       if (!msg)
+       if (!msg) {
                return -1;
+       }
 
        msg->hwts.type = p->timestamping;
 
@@ -1834,8 +1867,9 @@ void process_follow_up(struct port *p, struct ptp_message 
*m)
                break;
        }
        master = clock_parent_identity(p->clock);
-       if (memcmp(&master, &m->header.sourcePortIdentity, sizeof(master)))
+       if (memcmp(&master, &m->header.sourcePortIdentity, sizeof(master))) {
                return;
+       }
 
        if (p->follow_up_info) {
                struct follow_up_info_tlv *fui = follow_up_info_extract(m);
@@ -1898,8 +1932,9 @@ int process_pdelay_req(struct port *p, struct ptp_message 
*m)
        }
 
        rsp = msg_allocate();
-       if (!rsp)
+       if (!rsp) {
                return -1;
+       }
        fup = msg_allocate();
        if (!fup) {
                msg_put(rsp);
@@ -1964,8 +1999,9 @@ int process_pdelay_req(struct port *p, struct ptp_message 
*m)
                tmv_to_Timestamp(rsp->hwts.ts);
 
        err = peer_prepare_and_send(p, fup, 0);
-       if (err)
+       if (err) {
                pr_err("port %hu: send pdelay_resp_fup failed", portnum(p));
+       }
 out:
        msg_put(rsp);
        msg_put(fup);
@@ -1981,14 +2017,15 @@ static void port_peer_delay(struct port *p)
 
        /* Check for response, validate port and sequence number. */
 
-       if (!rsp)
+       if (!rsp) {
                return;
-
-       if (!pid_eq(&rsp->pdelay_resp.requestingPortIdentity, &p->portIdentity))
+       }
+       if (!pid_eq(&rsp->pdelay_resp.requestingPortIdentity, 
&p->portIdentity)) {
                return;
-
-       if (rsp->header.sequenceId != ntohs(req->header.sequenceId))
+       }
+       if (rsp->header.sequenceId != ntohs(req->header.sequenceId)) {
                return;
+       }
 
        t1 = req->hwts.ts;
        t4 = rsp->hwts.ts;
@@ -2004,17 +2041,18 @@ static void port_peer_delay(struct port *p)
 
        /* Check for follow up, validate port and sequence number. */
 
-       if (!fup)
+       if (!fup) {
                return;
-
-       if (!pid_eq(&fup->pdelay_resp_fup.requestingPortIdentity, 
&p->portIdentity))
+       }
+       if (!pid_eq(&fup->pdelay_resp_fup.requestingPortIdentity, 
&p->portIdentity)) {
                return;
-
-       if (fup->header.sequenceId != rsp->header.sequenceId)
+       }
+       if (fup->header.sequenceId != rsp->header.sequenceId) {
                return;
-
-       if (!source_pid_eq(fup, rsp))
+       }
+       if (!source_pid_eq(fup, rsp)) {
                return;
+       }
 
        /* Process follow up response. */
        t2 = timestamp_to_tmv(rsp->ts.pdu);
@@ -2023,15 +2061,17 @@ static void port_peer_delay(struct port *p)
 calc:
        t3c = tmv_add(t3, tmv_add(c1, c2));
 
-       if (p->follow_up_info)
+       if (p->follow_up_info) {
                port_nrate_calculate(p, t3c, t4);
+       }
 
        tsproc_set_clock_rate_ratio(p->tsproc, p->nrate.ratio *
                                    clock_rate_ratio(p->clock));
        tsproc_up_ts(p->tsproc, t1, t2);
        tsproc_down_ts(p->tsproc, t3c, t4);
-       if (tsproc_update_delay(p->tsproc, &p->peer_delay))
+       if (tsproc_update_delay(p->tsproc, &p->peer_delay)) {
                return;
+       }
 
        p->peerMeanPathDelay = tmv_to_TimeInterval(p->peer_delay);
 
@@ -2090,11 +2130,13 @@ int process_pdelay_resp(struct port *p, struct 
ptp_message *m)
 
 void process_pdelay_resp_fup(struct port *p, struct ptp_message *m)
 {
-       if (!p->peer_delay_req)
+       if (!p->peer_delay_req) {
                return;
+       }
 
-       if (p->peer_delay_fup)
+       if (p->peer_delay_fup) {
                msg_put(p->peer_delay_fup);
+       }
 
        msg_get(m);
        p->peer_delay_fup = m;
@@ -2156,13 +2198,15 @@ void port_close(struct port *p)
                port_disable(p);
        }
 
-       if (p->fda.fd[FD_RTNL] >= 0)
+       if (p->fda.fd[FD_RTNL] >= 0) {
                rtnl_close(p->fda.fd[FD_RTNL]);
+       }
 
        transport_destroy(p->trp);
        tsproc_destroy(p->tsproc);
-       if (p->fault_fd >= 0)
+       if (p->fault_fd >= 0) {
                close(p->fault_fd);
+       }
        free(p);
 }
 
@@ -2175,22 +2219,25 @@ struct foreign_clock *port_compute_best(struct port *p)
 
        LIST_FOREACH(fc, &p->foreign_masters, list) {
                tmp = TAILQ_FIRST(&fc->messages);
-               if (!tmp)
+               if (!tmp) {
                        continue;
+               }
 
                announce_to_dataset(tmp, p, &fc->dataset);
 
                fc_prune(fc);
 
-               if (fc->n_messages < FOREIGN_MASTER_THRESHOLD)
+               if (fc->n_messages < FOREIGN_MASTER_THRESHOLD) {
                        continue;
+               }
 
-               if (!p->best)
+               if (!p->best) {
                        p->best = fc;
-               else if (p->dscmp(&fc->dataset, &p->best->dataset) > 0)
+               } else if (p->dscmp(&fc->dataset, &p->best->dataset) > 0) {
                        p->best = fc;
-               else
+               } else {
                        fc_clear(fc);
+               }
        }
 
        return p->best;
@@ -2363,8 +2410,9 @@ void port_link_status(void *ctx, int linkup, int ts_index)
         * A port going down can affect the BMCA result.
         * Force a state decision event.
         */
-       if (p->link_status & LINK_DOWN)
+       if (p->link_status & LINK_DOWN) {
                clock_set_sde(p->clock, 1);
+       }
 }
 
 enum fsm_event port_event(struct port *p, int fd_index)
@@ -2383,8 +2431,9 @@ static enum fsm_event bc_event(struct port *p, int 
fd_index)
        case FD_SYNC_RX_TIMER:
                pr_debug("port %hu: %s timeout", portnum(p),
                         fd_index == FD_SYNC_RX_TIMER ? "rx sync" : "announce");
-               if (p->best)
+               if (p->best) {
                        fc_clear(p->best);
+               }
                port_set_announce_tmo(p);
                delay_req_prune(p);
                if (clock_slave_only(p->clock) && p->delayMechanism != DM_P2P &&
@@ -2416,18 +2465,20 @@ static enum fsm_event bc_event(struct port *p, int 
fd_index)
        case FD_RTNL:
                pr_debug("port %hu: received link status notification", 
portnum(p));
                rtnl_link_status(fd, p->name, port_link_status, p);
-               if (p->link_status == (LINK_UP | LINK_STATE_CHANGED))
+               if (p->link_status == (LINK_UP | LINK_STATE_CHANGED)) {
                        return EV_FAULT_CLEARED;
-               else if ((p->link_status == (LINK_DOWN | LINK_STATE_CHANGED)) ||
-                        (p->link_status & TS_LABEL_CHANGED))
+               } else if ((p->link_status == (LINK_DOWN | LINK_STATE_CHANGED)) 
||
+                        (p->link_status & TS_LABEL_CHANGED)) {
                        return EV_FAULT_DETECTED;
-               else
+               } else {
                        return EV_NONE;
+               }
        }
 
        msg = msg_allocate();
-       if (!msg)
+       if (!msg) {
                return EV_FAULT_DETECTED;
+       }
 
        msg->hwts.type = p->timestamping;
 
@@ -2492,14 +2543,16 @@ static enum fsm_event bc_event(struct port *p, int 
fd_index)
                process_pdelay_resp_fup(p, msg);
                break;
        case ANNOUNCE:
-               if (process_announce(p, msg))
+               if (process_announce(p, msg)) {
                        event = EV_STATE_DECISION_EVENT;
+               }
                break;
        case SIGNALING:
                break;
        case MANAGEMENT:
-               if (clock_manage(p->clock, p, msg))
+               if (clock_manage(p->clock, p, msg)) {
                        event = EV_STATE_DECISION_EVENT;
+               }
                break;
        }
 
@@ -2569,12 +2622,14 @@ int port_manage(struct port *p, struct port *ingress, 
struct ptp_message *msg)
 
        switch (management_action(msg)) {
        case GET:
-               if (port_management_get_response(p, ingress, mgt->id, msg))
+               if (port_management_get_response(p, ingress, mgt->id, msg)) {
                        return 1;
+               }
                break;
        case SET:
-               if (port_management_set(p, ingress, mgt->id, msg))
+               if (port_management_set(p, ingress, mgt->id, msg)) {
                        return 1;
+               }
                break;
        case COMMAND:
                break;
@@ -2649,8 +2704,9 @@ port_management_construct(struct PortIdentity pid, struct 
port *ingress,
        struct ptp_message *msg;
 
        msg = msg_allocate();
-       if (!msg)
+       if (!msg) {
                return NULL;
+       }
 
        msg->hwts.type = ingress->timestamping;
 
@@ -2663,8 +2719,9 @@ port_management_construct(struct PortIdentity pid, struct 
port *ingress,
        msg->header.control            = CTL_MANAGEMENT;
        msg->header.logMessageInterval = 0x7f;
 
-       if (targetPortIdentity)
+       if (targetPortIdentity) {
                msg->management.targetPortIdentity = *targetPortIdentity;
+       }
        msg->management.startingBoundaryHops = boundaryHops;
        msg->management.boundaryHops = boundaryHops;
 
@@ -2717,13 +2774,16 @@ void port_notify_event(struct port *p, enum 
notification event)
        /* targetPortIdentity and sequenceId will be filled by
         * clock_send_notification */
        msg = port_management_notify(pid, p);
-       if (!msg)
+       if (!msg) {
                return;
-       if (!port_management_fill_response(p, msg, id))
+       }
+       if (!port_management_fill_response(p, msg, id)) {
                goto err;
+       }
        msg_len = msg->header.messageLength;
-       if (msg_pre_send(msg))
+       if (msg_pre_send(msg)) {
                goto err;
+       }
        clock_send_notification(p->clock, msg, msg_len, event);
 err:
        msg_put(msg);
@@ -2741,8 +2801,9 @@ struct port *port_open(int phc_index,
        enum transport_type transport;
        int i;
 
-       if (!p)
+       if (!p) {
                return NULL;
+       }
 
        memset(p, 0, sizeof(*p));
 
@@ -2764,11 +2825,11 @@ struct port *port_open(int phc_index,
        p->jbod = config_get_int(cfg, interface->name, "boundary_clock_jbod");
        transport = config_get_int(cfg, interface->name, "network_transport");
 
-       if (transport == TRANS_UDS)
+       if (transport == TRANS_UDS) {
                ; /* UDS cannot have a PHC. */
-       else if (!interface->ts_info.valid)
+       } else if (!interface->ts_info.valid) {
                pr_warning("port %d: get_ts_info not supported", number);
-       else if (phc_index >= 0 && phc_index != interface->ts_info.phc_index) {
+       } else if (phc_index >= 0 && phc_index != interface->ts_info.phc_index) 
{
                if (p->jbod) {
                        pr_warning("port %d: just a bunch of devices", number);
                        p->phc_index = interface->ts_info.phc_index;
@@ -2797,8 +2858,9 @@ struct port *port_open(int phc_index,
        p->link_status = LINK_UP;
        p->clock = clock;
        p->trp = transport_create(cfg, transport);
-       if (!p->trp)
+       if (!p->trp) {
                goto err_port;
+       }
        p->timestamping = timestamping;
        p->portIdentity.clockIdentity = clock_identity(clock);
        p->portIdentity.portNumber = number;
-- 
1.8.3.1


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to