Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F160079006
D29116.id85301.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D29116.id85301.diff
View Options
Index: sys/net/route.c
===================================================================
--- sys/net/route.c
+++ sys/net/route.c
@@ -161,6 +161,7 @@
tmproutes_destroy(rh);
+ rib_flush_routes(rh);
rn_walktree(&rh->rmhead.head, rt_freeentry, &rh->rmhead.head);
nhops_destroy_rib(rh);
Index: sys/net/route/route_ctl.c
===================================================================
--- sys/net/route/route_ctl.c
+++ sys/net/route/route_ctl.c
@@ -1328,6 +1328,31 @@
NET_EPOCH_EXIT(et);
}
+static int
+rt_delete_unconditional(struct radix_node *rn, void *arg)
+{
+ struct rtentry *rt = RNTORT(rn);
+ struct rib_head *rnh = (struct rib_head *)arg;
+
+ rn = rnh->rnh_deladdr(rt_key(rt), rt_mask(rt), &rnh->head);
+ if (RNTORT(rn) == rt)
+ rtfree(rt);
+
+ return (0);
+}
+
+/*
+ * Removes all routes from the routing table without executing notifications.
+ * rtentres will be removed after the end of a current epoch.
+ */
+void
+rib_flush_routes(struct rib_head *rnh)
+{
+ RIB_WLOCK(rnh);
+ rnh->rnh_walktree(&rnh->head, rt_delete_unconditional, rnh);
+ RIB_WUNLOCK(rnh);
+}
+
static void
rib_notify(struct rib_head *rnh, enum rib_subscription_type type,
struct rib_cmd_info *rc)
Index: sys/net/route/route_var.h
===================================================================
--- sys/net/route/route_var.h
+++ sys/net/route/route_var.h
@@ -224,6 +224,8 @@
int can_override_nhop(const struct rt_addrinfo *info,
const struct nhop_object *nh);
+void rib_flush_routes(struct rib_head *rnh);
+
void vnet_rtzone_init(void);
void vnet_rtzone_destroy(void);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Jun 22, 5:09 AM (3 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34174932
Default Alt Text
D29116.id85301.diff (1 KB)
Attached To
Mode
D29116: Flush remaining routes from the routing table during VNET shutdown.
Attached
Detach File
Event Timeline
Log In to Comment