summaryrefslogtreecommitdiffstats
path: root/include/net/netns
diff options
context:
space:
mode:
authorDavid Ahern <dsahern@gmail.com>2019-05-24 14:43:04 -0700
committerDavid S. Miller <davem@davemloft.net>2019-05-28 21:37:30 -0700
commitab84be7e54fc3d9b248285f1a14067558d858819 (patch)
tree4b8c97ce0f45d4f0a0a85b8c27dee1e363b7f4c9 /include/net/netns
parent65ee00a9409f751188a8cdc0988167858eb4a536 (diff)
downloadlinux-ab84be7e54fc3d9b248285f1a14067558d858819.tar.gz
linux-ab84be7e54fc3d9b248285f1a14067558d858819.tar.bz2
linux-ab84be7e54fc3d9b248285f1a14067558d858819.zip
net: Initial nexthop code
Barebones start point for nexthops. Implementation for RTM commands, notifications, management of rbtree for holding nexthops by id, and kernel side data structures for nexthops and nexthop config. Nexthops are maintained in an rbtree sorted by id. Similar to routes, nexthops are configured per namespace using netns_nexthop struct added to struct net. Nexthop notifications are sent when a nexthop is added or deleted, but NOT if the delete is due to a device event or network namespace teardown (which also involves device events). Applications are expected to use the device down event to flush nexthops and any routes used by the nexthops. Signed-off-by: David Ahern <dsahern@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/netns')
-rw-r--r--include/net/netns/nexthop.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/net/netns/nexthop.h b/include/net/netns/nexthop.h
new file mode 100644
index 000000000000..c712ee5eebd9
--- /dev/null
+++ b/include/net/netns/nexthop.h
@@ -0,0 +1,18 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * nexthops in net namespaces
+ */
+
+#ifndef __NETNS_NEXTHOP_H__
+#define __NETNS_NEXTHOP_H__
+
+#include <linux/rbtree.h>
+
+struct netns_nexthop {
+ struct rb_root rb_root; /* tree of nexthops by id */
+ struct hlist_head *devhash; /* nexthops by device */
+
+ unsigned int seq; /* protected by rtnl_mutex */
+ u32 last_id_allocated;
+};
+#endif