summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/socket
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/sentry/socket')
-rw-r--r--pkg/sentry/socket/BUILD17
-rw-r--r--pkg/sentry/socket/control/BUILD23
-rw-r--r--pkg/sentry/socket/control/control.go4
-rw-r--r--pkg/sentry/socket/epsocket/BUILD16
-rw-r--r--pkg/sentry/socket/epsocket/epsocket.go2
-rw-r--r--pkg/sentry/socket/epsocket/stack.go2
-rw-r--r--pkg/sentry/socket/hostinet/BUILD15
-rw-r--r--pkg/sentry/socket/netlink/BUILD13
-rw-r--r--pkg/sentry/socket/netlink/port/BUILD15
-rw-r--r--pkg/sentry/socket/netlink/port/port.go2
-rw-r--r--pkg/sentry/socket/netlink/route/BUILD17
-rw-r--r--pkg/sentry/socket/netlink/route/protocol.go2
-rw-r--r--pkg/sentry/socket/netlink/socket.go2
-rw-r--r--pkg/sentry/socket/socket.go2
-rw-r--r--pkg/sentry/socket/unix/BUILD13
-rw-r--r--pkg/sentry/socket/unix/unix.go2
16 files changed, 33 insertions, 114 deletions
diff --git a/pkg/sentry/socket/BUILD b/pkg/sentry/socket/BUILD
index 929787aa0..a320fca0b 100644
--- a/pkg/sentry/socket/BUILD
+++ b/pkg/sentry/socket/BUILD
@@ -1,22 +1,10 @@
package(licenses = ["notice"]) # Apache 2.0
-load("//tools/go_stateify:defs.bzl", "go_library", "go_stateify")
-
-go_stateify(
- name = "socket_state",
- srcs = [
- "socket.go",
- ],
- out = "socket_state_autogen.go",
- package = "socket",
-)
+load("//tools/go_stateify:defs.bzl", "go_library")
go_library(
name = "socket",
- srcs = [
- "socket.go",
- "socket_state_autogen.go",
- ],
+ srcs = ["socket.go"],
importpath = "gvisor.googlesource.com/gvisor/pkg/sentry/socket",
visibility = ["//pkg/sentry:internal"],
deps = [
@@ -29,7 +17,6 @@ go_library(
"//pkg/sentry/kernel/kdefs",
"//pkg/sentry/kernel/time",
"//pkg/sentry/usermem",
- "//pkg/state",
"//pkg/syserr",
"//pkg/tcpip",
"//pkg/tcpip/transport/unix",
diff --git a/pkg/sentry/socket/control/BUILD b/pkg/sentry/socket/control/BUILD
index faf2b4c27..c4874fdfb 100644
--- a/pkg/sentry/socket/control/BUILD
+++ b/pkg/sentry/socket/control/BUILD
@@ -1,26 +1,14 @@
package(licenses = ["notice"]) # Apache 2.0
-load("//tools/go_stateify:defs.bzl", "go_library", "go_stateify")
-
-go_stateify(
- name = "control_state",
- srcs = [
- "control.go",
- ],
- out = "control_state.go",
- imports = [
- "gvisor.googlesource.com/gvisor/pkg/sentry/fs",
- ],
- package = "control",
-)
+load("//tools/go_stateify:defs.bzl", "go_library")
go_library(
name = "control",
- srcs = [
- "control.go",
- "control_state.go",
- ],
+ srcs = ["control.go"],
importpath = "gvisor.googlesource.com/gvisor/pkg/sentry/socket/control",
+ imports = [
+ "gvisor.googlesource.com/gvisor/pkg/sentry/fs",
+ ],
visibility = ["//pkg/sentry:internal"],
deps = [
"//pkg/abi/linux",
@@ -31,7 +19,6 @@ go_library(
"//pkg/sentry/kernel/auth",
"//pkg/sentry/kernel/kdefs",
"//pkg/sentry/usermem",
- "//pkg/state",
"//pkg/syserror",
"//pkg/tcpip/transport/unix",
],
diff --git a/pkg/sentry/socket/control/control.go b/pkg/sentry/socket/control/control.go
index 17ecdd11c..c31182e69 100644
--- a/pkg/sentry/socket/control/control.go
+++ b/pkg/sentry/socket/control/control.go
@@ -51,6 +51,8 @@ type SCMRights interface {
// RightsFiles represents a SCM_RIGHTS socket control message. A reference is
// maintained for each fs.File and is release either when an FD is created or
// when the Release method is called.
+//
+// +stateify savable
type RightsFiles []*fs.File
// NewSCMRights creates a new SCM_RIGHTS socket control message representation
@@ -128,6 +130,8 @@ func PackRights(t *kernel.Task, rights SCMRights, cloexec bool, buf []byte) []by
}
// scmCredentials represents an SCM_CREDENTIALS socket control message.
+//
+// +stateify savable
type scmCredentials struct {
t *kernel.Task
kuid auth.KUID
diff --git a/pkg/sentry/socket/epsocket/BUILD b/pkg/sentry/socket/epsocket/BUILD
index 7ad5e88c5..49af8db85 100644
--- a/pkg/sentry/socket/epsocket/BUILD
+++ b/pkg/sentry/socket/epsocket/BUILD
@@ -1,24 +1,12 @@
package(licenses = ["notice"]) # Apache 2.0
-load("//tools/go_stateify:defs.bzl", "go_library", "go_stateify")
-
-go_stateify(
- name = "epsocket_state",
- srcs = [
- "epsocket.go",
- "save_restore.go",
- "stack.go",
- ],
- out = "epsocket_state.go",
- package = "epsocket",
-)
+load("//tools/go_stateify:defs.bzl", "go_library")
go_library(
name = "epsocket",
srcs = [
"device.go",
"epsocket.go",
- "epsocket_state.go",
"provider.go",
"save_restore.go",
"stack.go",
@@ -31,7 +19,6 @@ go_library(
"//pkg/abi/linux",
"//pkg/binary",
"//pkg/log",
- "//pkg/refs",
"//pkg/sentry/arch",
"//pkg/sentry/context",
"//pkg/sentry/device",
@@ -44,7 +31,6 @@ go_library(
"//pkg/sentry/safemem",
"//pkg/sentry/socket",
"//pkg/sentry/usermem",
- "//pkg/state",
"//pkg/syserr",
"//pkg/syserror",
"//pkg/tcpip",
diff --git a/pkg/sentry/socket/epsocket/epsocket.go b/pkg/sentry/socket/epsocket/epsocket.go
index a2927e1b9..f969a1d7c 100644
--- a/pkg/sentry/socket/epsocket/epsocket.go
+++ b/pkg/sentry/socket/epsocket/epsocket.go
@@ -95,6 +95,8 @@ type commonEndpoint interface {
// SocketOperations encapsulates all the state needed to represent a network stack
// endpoint in the kernel context.
+//
+// +stateify savable
type SocketOperations struct {
socket.ReceiveTimeout
fsutil.PipeSeek `state:"nosave"`
diff --git a/pkg/sentry/socket/epsocket/stack.go b/pkg/sentry/socket/epsocket/stack.go
index ec1d96ccb..12b4b4767 100644
--- a/pkg/sentry/socket/epsocket/stack.go
+++ b/pkg/sentry/socket/epsocket/stack.go
@@ -26,6 +26,8 @@ import (
)
// Stack implements inet.Stack for netstack/tcpip/stack.Stack.
+//
+// +stateify savable
type Stack struct {
Stack *stack.Stack `state:"manual"`
}
diff --git a/pkg/sentry/socket/hostinet/BUILD b/pkg/sentry/socket/hostinet/BUILD
index 227ca3926..d623718b3 100644
--- a/pkg/sentry/socket/hostinet/BUILD
+++ b/pkg/sentry/socket/hostinet/BUILD
@@ -1,24 +1,12 @@
package(licenses = ["notice"]) # Apache 2.0
-load("//tools/go_stateify:defs.bzl", "go_library", "go_stateify")
-
-go_stateify(
- name = "hostinet_state",
- srcs = [
- "save_restore.go",
- "socket.go",
- "stack.go",
- ],
- out = "hostinet_autogen_state.go",
- package = "hostinet",
-)
+load("//tools/go_stateify:defs.bzl", "go_library")
go_library(
name = "hostinet",
srcs = [
"device.go",
"hostinet.go",
- "hostinet_autogen_state.go",
"save_restore.go",
"socket.go",
"socket_unsafe.go",
@@ -42,7 +30,6 @@ go_library(
"//pkg/sentry/safemem",
"//pkg/sentry/socket",
"//pkg/sentry/usermem",
- "//pkg/state",
"//pkg/syserr",
"//pkg/syserror",
"//pkg/tcpip/transport/unix",
diff --git a/pkg/sentry/socket/netlink/BUILD b/pkg/sentry/socket/netlink/BUILD
index b23a243f7..b852165f7 100644
--- a/pkg/sentry/socket/netlink/BUILD
+++ b/pkg/sentry/socket/netlink/BUILD
@@ -1,21 +1,11 @@
package(licenses = ["notice"]) # Apache 2.0
-load("//tools/go_stateify:defs.bzl", "go_library", "go_stateify")
-
-go_stateify(
- name = "netlink_state",
- srcs = [
- "socket.go",
- ],
- out = "netlink_state.go",
- package = "netlink",
-)
+load("//tools/go_stateify:defs.bzl", "go_library")
go_library(
name = "netlink",
srcs = [
"message.go",
- "netlink_state.go",
"provider.go",
"socket.go",
],
@@ -36,7 +26,6 @@ go_library(
"//pkg/sentry/socket/netlink/port",
"//pkg/sentry/socket/unix",
"//pkg/sentry/usermem",
- "//pkg/state",
"//pkg/syserr",
"//pkg/syserror",
"//pkg/tcpip",
diff --git a/pkg/sentry/socket/netlink/port/BUILD b/pkg/sentry/socket/netlink/port/BUILD
index ba6f686e4..3a7dbc5ed 100644
--- a/pkg/sentry/socket/netlink/port/BUILD
+++ b/pkg/sentry/socket/netlink/port/BUILD
@@ -1,23 +1,12 @@
package(licenses = ["notice"]) # Apache 2.0
-load("//tools/go_stateify:defs.bzl", "go_library", "go_stateify", "go_test")
-
-go_stateify(
- name = "port_state",
- srcs = ["port.go"],
- out = "port_state.go",
- package = "port",
-)
+load("//tools/go_stateify:defs.bzl", "go_library", "go_test")
go_library(
name = "port",
- srcs = [
- "port.go",
- "port_state.go",
- ],
+ srcs = ["port.go"],
importpath = "gvisor.googlesource.com/gvisor/pkg/sentry/socket/netlink/port",
visibility = ["//pkg/sentry:internal"],
- deps = ["//pkg/state"],
)
go_test(
diff --git a/pkg/sentry/socket/netlink/port/port.go b/pkg/sentry/socket/netlink/port/port.go
index 4ccf0b84c..1c5d4c3a5 100644
--- a/pkg/sentry/socket/netlink/port/port.go
+++ b/pkg/sentry/socket/netlink/port/port.go
@@ -32,6 +32,8 @@ import (
const maxPorts = 10000
// Manager allocates netlink port IDs.
+//
+// +stateify savable
type Manager struct {
// mu protects the fields below.
mu sync.Mutex `state:"nosave"`
diff --git a/pkg/sentry/socket/netlink/route/BUILD b/pkg/sentry/socket/netlink/route/BUILD
index 726469fc9..e1bcfe252 100644
--- a/pkg/sentry/socket/netlink/route/BUILD
+++ b/pkg/sentry/socket/netlink/route/BUILD
@@ -1,32 +1,19 @@
package(licenses = ["notice"]) # Apache 2.0
-load("//tools/go_stateify:defs.bzl", "go_library", "go_stateify")
-
-go_stateify(
- name = "route_state",
- srcs = ["protocol.go"],
- out = "route_state.go",
- package = "route",
-)
+load("//tools/go_stateify:defs.bzl", "go_library")
go_library(
name = "route",
- srcs = [
- "protocol.go",
- "route_state.go",
- ],
+ srcs = ["protocol.go"],
importpath = "gvisor.googlesource.com/gvisor/pkg/sentry/socket/netlink/route",
visibility = ["//pkg/sentry:internal"],
deps = [
"//pkg/abi/linux",
"//pkg/sentry/context",
- "//pkg/sentry/fs",
"//pkg/sentry/inet",
"//pkg/sentry/kernel",
"//pkg/sentry/kernel/auth",
"//pkg/sentry/socket/netlink",
- "//pkg/sentry/usermem",
- "//pkg/state",
"//pkg/syserr",
],
)
diff --git a/pkg/sentry/socket/netlink/route/protocol.go b/pkg/sentry/socket/netlink/route/protocol.go
index e8030c518..55a76e916 100644
--- a/pkg/sentry/socket/netlink/route/protocol.go
+++ b/pkg/sentry/socket/netlink/route/protocol.go
@@ -43,6 +43,8 @@ func typeKind(typ uint16) commandKind {
}
// Protocol implements netlink.Protocol.
+//
+// +stateify savable
type Protocol struct{}
var _ netlink.Protocol = (*Protocol)(nil)
diff --git a/pkg/sentry/socket/netlink/socket.go b/pkg/sentry/socket/netlink/socket.go
index 0b8f528d0..e15d1546c 100644
--- a/pkg/sentry/socket/netlink/socket.go
+++ b/pkg/sentry/socket/netlink/socket.go
@@ -51,6 +51,8 @@ var netlinkSocketDevice = device.NewAnonDevice()
// to/from the kernel.
//
// Socket implements socket.Socket.
+//
+// +stateify savable
type Socket struct {
socket.ReceiveTimeout
fsutil.PipeSeek `state:"nosave"`
diff --git a/pkg/sentry/socket/socket.go b/pkg/sentry/socket/socket.go
index bd4858a34..54fe64595 100644
--- a/pkg/sentry/socket/socket.go
+++ b/pkg/sentry/socket/socket.go
@@ -195,6 +195,8 @@ func NewDirent(ctx context.Context, d *device.Device) *fs.Dirent {
//
// Care must be taken when copying ReceiveTimeout as it contains atomic
// variables.
+//
+// +stateify savable
type ReceiveTimeout struct {
// ns is length of the timeout in nanoseconds.
//
diff --git a/pkg/sentry/socket/unix/BUILD b/pkg/sentry/socket/unix/BUILD
index 7d04d6b6b..9fe681e9a 100644
--- a/pkg/sentry/socket/unix/BUILD
+++ b/pkg/sentry/socket/unix/BUILD
@@ -1,15 +1,6 @@
package(licenses = ["notice"]) # Apache 2.0
-load("//tools/go_stateify:defs.bzl", "go_library", "go_stateify")
-
-go_stateify(
- name = "unix_state",
- srcs = [
- "unix.go",
- ],
- out = "unix_state.go",
- package = "unix",
-)
+load("//tools/go_stateify:defs.bzl", "go_library")
go_library(
name = "unix",
@@ -17,7 +8,6 @@ go_library(
"device.go",
"io.go",
"unix.go",
- "unix_state.go",
],
importpath = "gvisor.googlesource.com/gvisor/pkg/sentry/socket/unix",
visibility = ["//pkg/sentry:internal"],
@@ -37,7 +27,6 @@ go_library(
"//pkg/sentry/socket/control",
"//pkg/sentry/socket/epsocket",
"//pkg/sentry/usermem",
- "//pkg/state",
"//pkg/syserr",
"//pkg/syserror",
"//pkg/tcpip",
diff --git a/pkg/sentry/socket/unix/unix.go b/pkg/sentry/socket/unix/unix.go
index 27bacbbc3..5b6411f97 100644
--- a/pkg/sentry/socket/unix/unix.go
+++ b/pkg/sentry/socket/unix/unix.go
@@ -42,6 +42,8 @@ import (
// SocketOperations is a Unix socket. It is similar to an epsocket, except it is backed
// by a unix.Endpoint instead of a tcpip.Endpoint.
+//
+// +stateify savable
type SocketOperations struct {
refs.AtomicRefCount
socket.ReceiveTimeout