+ } else if (add && (iface->state == IFS_UP || iface->state == IFS_SETUP) &&
+ !system_add_address(l3_downlink, &addr)) {
+ interface_handle_subnet_route(iface, &addr, false);
+
+ if (prefix->iface && !assignment->enabled) {
+ set_ip_source_policy(true, true, IPRULE_PRIORITY_REJECT, &addr.addr,
+ addr.mask, 0, iface, "unreachable");
+
+ if (prefix->iface->ip6table)
+ set_ip_source_policy(true, true, IPRULE_PRIORITY_NW, &addr.addr,
+ addr.mask, prefix->iface->ip6table, iface, NULL);
+ }
+
+ if (addr.mask < 64)
+ addr.mask = 64;
+
+ interface_handle_subnet_route(iface, &addr, true);