On Sat, Aug 12, 2017 at 04:41:23PM +0200, Richard Cochran wrote:
> > Then after rtnl_link_status(fd, p->name, port_link_status, p);
> >
> > 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))
> > return EV_FAULT_DETECTED;
> > else
> > return EV_NONE;
> >
> >
> > What do you think?
>
> Looks better to me, but why not place this code at the end of the
> port_link_status() function?
Hmm... I saw your comments about let rtnl_link_status() return the EV_ value
from port_link_status().
This seems no easy to handle.
1. We need to return both error code and enum fsm_event in rtnl_link_status().
2. If We receive one rtnl message with multi RTM_NEWLINK info, the cb will be
called more than once, then the return value will be replaced by new ones.
for ( ; NLMSG_OK(nh, len); nh = NLMSG_NEXT(nh, len)) {
if (cb)
err = cb(ctx, link_up, slave_index);
}
return err;
Thanks
Hangbin
------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel