xref: /linux/include/net/netns/vsock.h (revision b9c8fc2caea6ff7e45c6942de8fee53515c66b34)
1eafb64f4SBobby Eshleman /* SPDX-License-Identifier: GPL-2.0 */
2eafb64f4SBobby Eshleman #ifndef __NET_NET_NAMESPACE_VSOCK_H
3eafb64f4SBobby Eshleman #define __NET_NET_NAMESPACE_VSOCK_H
4eafb64f4SBobby Eshleman 
5eafb64f4SBobby Eshleman #include <linux/types.h>
6eafb64f4SBobby Eshleman 
7eafb64f4SBobby Eshleman enum vsock_net_mode {
8eafb64f4SBobby Eshleman 	VSOCK_NET_MODE_GLOBAL,
9eafb64f4SBobby Eshleman 	VSOCK_NET_MODE_LOCAL,
10eafb64f4SBobby Eshleman };
11eafb64f4SBobby Eshleman 
12eafb64f4SBobby Eshleman struct netns_vsock {
13eafb64f4SBobby Eshleman 	struct ctl_table_header *sysctl_hdr;
14eafb64f4SBobby Eshleman 
15eafb64f4SBobby Eshleman 	/* protected by the vsock_table_lock in af_vsock.c */
16eafb64f4SBobby Eshleman 	u32 port;
17eafb64f4SBobby Eshleman 
18eafb64f4SBobby Eshleman 	enum vsock_net_mode mode;
19eafb64f4SBobby Eshleman 	enum vsock_net_mode child_ns_mode;
20*102eab95SBobby Eshleman 
21*102eab95SBobby Eshleman 	/* 0 = unlocked, 1 = locked to global, 2 = locked to local */
22*102eab95SBobby Eshleman 	int child_ns_mode_locked;
23eafb64f4SBobby Eshleman };
24eafb64f4SBobby Eshleman #endif /* __NET_NET_NAMESPACE_VSOCK_H */
25