On Tue, Aug 08, 2017 at 06:16:37PM +0800, Hangbin Liu wrote:
> The goal of this call path is to call port_link_status() whenever link status
> changed. And the call path should like
> 1. port_event() -> rtnl_link_status() -> port_link_status()
> > 2. clock_create() -> rtnl_link_info() -> rtnl_link_status()
> This one only want to get the bond slave info when add iface at the begining.


> What do you think? any other good ideas?

Yes, I have an idea.  Pass an interface index (instead of a string) to
port_link_status(), and then you can remove the ugly code.

        if (cb)
                device = calloc(1, sizeof(MAX_IFNAME_SIZE + 1));
                device = (char *)ctx;

Then you can also simplify this block

                        if (bond[IFLA_BOND_ACTIVE_SLAVE]) {
                                index = 

                                if (!if_indextoname(index, device)) {
                                        pr_err("failed to get device name: %m");
                                        return -1;

by removing the if_indextoname() call.


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

Reply via email to