Lines Matching refs:ifa
551 static void fib_magic(int cmd, int type, __le16 dst, int dst_len, struct dn_ifaddr *ifa) in fib_magic() argument
568 .prefsrc = ifa->ifa_local, in fib_magic()
574 .oif = ifa->ifa_dev->dev->ifindex, in fib_magic()
610 static void dn_fib_add_ifaddr(struct dn_ifaddr *ifa) in dn_fib_add_ifaddr() argument
613 fib_magic(RTM_NEWROUTE, RTN_LOCAL, ifa->ifa_local, 16, ifa); in dn_fib_add_ifaddr()
623 static void dn_fib_del_ifaddr(struct dn_ifaddr *ifa) in dn_fib_del_ifaddr() argument
641 if (ifa2->ifa_local == ifa->ifa_local) { in dn_fib_del_ifaddr()
650 fib_magic(RTM_DELROUTE, RTN_LOCAL, ifa->ifa_local, 16, ifa); in dn_fib_del_ifaddr()
652 if (dnet_addr_type(ifa->ifa_local) != RTN_LOCAL) { in dn_fib_del_ifaddr()
653 if (dn_fib_sync_down(ifa->ifa_local, NULL, 0)) in dn_fib_del_ifaddr()
669 struct dn_ifaddr *ifa = (struct dn_ifaddr *)ptr; in dn_fib_dnaddr_event() local
673 dn_fib_add_ifaddr(ifa); in dn_fib_dnaddr_event()
674 dn_fib_sync_up(ifa->ifa_dev->dev); in dn_fib_dnaddr_event()
678 dn_fib_del_ifaddr(ifa); in dn_fib_dnaddr_event()
679 if (ifa->ifa_dev && ifa->ifa_dev->ifa_list == NULL) { in dn_fib_dnaddr_event()
680 dn_fib_disable_addr(ifa->ifa_dev->dev, 1); in dn_fib_dnaddr_event()