Lines Matching refs:ifa
558 static void fib_magic(int cmd, int type, __le16 dst, int dst_len, struct dn_ifaddr *ifa) in fib_magic() argument
575 .prefsrc = ifa->ifa_local, in fib_magic()
581 .oif = ifa->ifa_dev->dev->ifindex, in fib_magic()
617 static void dn_fib_add_ifaddr(struct dn_ifaddr *ifa) in dn_fib_add_ifaddr() argument
620 fib_magic(RTM_NEWROUTE, RTN_LOCAL, ifa->ifa_local, 16, ifa); in dn_fib_add_ifaddr()
630 static void dn_fib_del_ifaddr(struct dn_ifaddr *ifa) in dn_fib_del_ifaddr() argument
648 if (ifa2->ifa_local == ifa->ifa_local) { in dn_fib_del_ifaddr()
657 fib_magic(RTM_DELROUTE, RTN_LOCAL, ifa->ifa_local, 16, ifa); in dn_fib_del_ifaddr()
659 if (dnet_addr_type(ifa->ifa_local) != RTN_LOCAL) { in dn_fib_del_ifaddr()
660 if (dn_fib_sync_down(ifa->ifa_local, NULL, 0)) in dn_fib_del_ifaddr()
676 struct dn_ifaddr *ifa = (struct dn_ifaddr *)ptr; in dn_fib_dnaddr_event() local
680 dn_fib_add_ifaddr(ifa); in dn_fib_dnaddr_event()
681 dn_fib_sync_up(ifa->ifa_dev->dev); in dn_fib_dnaddr_event()
685 dn_fib_del_ifaddr(ifa); in dn_fib_dnaddr_event()
686 if (ifa->ifa_dev && ifa->ifa_dev->ifa_list == NULL) { in dn_fib_dnaddr_event()
687 dn_fib_disable_addr(ifa->ifa_dev->dev, 1); in dn_fib_dnaddr_event()