return r;
}
-int link_drop_managed_addresses(Link *link) {
+int link_drop_static_addresses(Link *link) {
Address *address;
int r = 0;
assert(link);
SET_FOREACH(address, link->addresses) {
- /* Do not touch addresses managed by kernel or other tools. */
- if (address->source == NETWORK_CONFIG_SOURCE_FOREIGN)
+ /* Remove only static addresses here. Dynamic addresses will be removed e.g. on lease
+ * expiration or stopping the DHCP client. */
+ if (address->source != NETWORK_CONFIG_SOURCE_STATIC)
continue;
/* Ignore addresses not assigned yet or already removing. */
DEFINE_SECTION_CLEANUP_FUNCTIONS(Address, address_unref);
-int link_drop_managed_addresses(Link *link);
+int link_drop_static_addresses(Link *link);
int link_drop_foreign_addresses(Link *link);
int link_drop_ipv6ll_addresses(Link *link);
void link_foreignize_addresses(Link *link);
assert(link);
assert(link->manager);
- r = link_drop_managed_routes(link);
-
- RET_GATHER(r, link_drop_managed_nexthops(link));
- RET_GATHER(r, link_drop_managed_addresses(link));
- RET_GATHER(r, link_drop_managed_neighbors(link));
- RET_GATHER(r, link_drop_managed_routing_policy_rules(link));
+ r = link_drop_static_routes(link);
+ RET_GATHER(r, link_drop_static_nexthops(link));
+ RET_GATHER(r, link_drop_static_addresses(link));
+ RET_GATHER(r, link_drop_static_neighbors(link));
+ RET_GATHER(r, link_drop_static_routing_policy_rules(link));
return r;
}
return r;
}
-int link_drop_managed_neighbors(Link *link) {
+int link_drop_static_neighbors(Link *link) {
Neighbor *neighbor;
int r = 0;
SET_FOREACH(neighbor, link->neighbors) {
/* Do not touch nexthops managed by kernel or other tools. */
- if (neighbor->source == NETWORK_CONFIG_SOURCE_FOREIGN)
+ if (neighbor->source != NETWORK_CONFIG_SOURCE_STATIC)
continue;
/* Ignore neighbors not assigned yet or already removing. */
int network_drop_invalid_neighbors(Network *network);
-int link_drop_managed_neighbors(Link *link);
+int link_drop_static_neighbors(Link *link);
int link_drop_foreign_neighbors(Link *link);
void link_foreignize_neighbors(Link *link);
continue;
/* When 'foreign' is true, mark only foreign nexthops, and vice versa. */
- if (foreign != (nexthop->source == NETWORK_CONFIG_SOURCE_FOREIGN))
+ if (nexthop->source != (foreign ? NETWORK_CONFIG_SOURCE_FOREIGN : NETWORK_CONFIG_SOURCE_STATIC))
continue;
/* Ignore nexthops not assigned yet or already removed. */
static inline int link_drop_foreign_nexthops(Link *link) {
return link_drop_nexthops(link, /* foreign = */ true);
}
-static inline int link_drop_managed_nexthops(Link *link) {
+static inline int link_drop_static_nexthops(Link *link) {
return link_drop_nexthops(link, /* foreign = */ false);
}
void link_foreignize_nexthops(Link *link);
int route_get(Manager *manager, const Route *route, Route **ret);
int link_drop_routes(Link *link, bool foreign);
-static inline int link_drop_managed_routes(Link *link) {
+static inline int link_drop_static_routes(Link *link) {
return link_drop_routes(link, false);
}
static inline int link_drop_foreign_routes(Link *link) {
continue;
/* When 'foreign' is true, mark only foreign rules, and vice versa. */
- if (foreign != (rule->source == NETWORK_CONFIG_SOURCE_FOREIGN))
+ if (rule->source != (foreign ? NETWORK_CONFIG_SOURCE_FOREIGN : NETWORK_CONFIG_SOURCE_STATIC))
continue;
/* Ignore rules not assigned yet or already removing. */
static inline int manager_drop_foreign_routing_policy_rules(Manager *m) {
return manager_drop_routing_policy_rules_internal(m, true, NULL);
}
-static inline int link_drop_managed_routing_policy_rules(Link *link) {
+static inline int link_drop_static_routing_policy_rules(Link *link) {
assert(link);
return manager_drop_routing_policy_rules_internal(link->manager, false, link);
}