Thread (67 messages) 67 messages, 9 authors, 2016-05-25

Re: [RFC PATCH 25/29] net: vrf: Handle VRF any context

flat view

From: Nicolas Dichtel <hidden>
Date: 2015-02-05 13:46:24

Le 05/02/2015 02:34, David Ahern a écrit :
VRF any context applies only to tasks to and sockets. Devices are
associated with a single VRF, and skb's by extension are connected to
a single VRF.

Listen sockets and unconnected sockets can be opened in a "VRF any"
context allowing a single daemon to provide service across all VRFs
in a namespace. Connected sockets must be in a specific vrf context.
Accepted sockets acquire the VRF context from the device the packet
enters (via the skb).

"VRF any" context is also useful for tasks wanting to view L3/L4
data for all VRFs.

Signed-off-by: David Ahern <redacted>
---
[snip]
quoted hunk ↗ jump to hunk
+static inline int neigh_parms_net_ctx_eq_any(const struct neigh_parms *parms,
+					     const struct net_ctx *net_ctx)
+{
+#ifdef CONFIG_NET_NS
+	if (net_eq(neigh_parms_net(parms), net_ctx->net) &&
+	    (vrf_eq(neigh_parms_vrf(parms), net_ctx->vrf) ||
+	     vrf_is_any(net_ctx->vrf))) {
+		return 1;
+	}
+
+	return 0;
+#else
+	return 1;
+#endif
If I understand well, the way the patch is done, VRF can be used only if CONFIG_NET_NS is enabled.
But if I'm not wrong, it could be independent. Am I right?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help