Lines Matching refs:ifa
559 static void fib_magic(int cmd, int type, __le16 dst, int dst_len, struct dn_ifaddr *ifa) in fib_magic() argument
576 .prefsrc = ifa->ifa_local, in fib_magic()
582 .oif = ifa->ifa_dev->dev->ifindex, in fib_magic()
618 static void dn_fib_add_ifaddr(struct dn_ifaddr *ifa) in dn_fib_add_ifaddr() argument
621 fib_magic(RTM_NEWROUTE, RTN_LOCAL, ifa->ifa_local, 16, ifa); in dn_fib_add_ifaddr()
631 static void dn_fib_del_ifaddr(struct dn_ifaddr *ifa) in dn_fib_del_ifaddr() argument
649 if (ifa2->ifa_local == ifa->ifa_local) { in dn_fib_del_ifaddr()
658 fib_magic(RTM_DELROUTE, RTN_LOCAL, ifa->ifa_local, 16, ifa); in dn_fib_del_ifaddr()
660 if (dnet_addr_type(ifa->ifa_local) != RTN_LOCAL) { in dn_fib_del_ifaddr()
661 if (dn_fib_sync_down(ifa->ifa_local, NULL, 0)) in dn_fib_del_ifaddr()
677 struct dn_ifaddr *ifa = (struct dn_ifaddr *)ptr; in dn_fib_dnaddr_event() local
681 dn_fib_add_ifaddr(ifa); in dn_fib_dnaddr_event()
682 dn_fib_sync_up(ifa->ifa_dev->dev); in dn_fib_dnaddr_event()
686 dn_fib_del_ifaddr(ifa); in dn_fib_dnaddr_event()
687 if (ifa->ifa_dev && ifa->ifa_dev->ifa_list == NULL) { in dn_fib_dnaddr_event()
688 dn_fib_disable_addr(ifa->ifa_dev->dev, 1); in dn_fib_dnaddr_event()