summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry/socket/netlink
diff options
context:
space:
mode:
authorZach Koopmans <zkoopmans@google.com>2021-11-04 12:08:45 -0700
committergVisor bot <gvisor-bot@google.com>2021-11-04 12:11:41 -0700
commit23a115dae84e7e63c8785c49dfff3e551a0bf97e (patch)
tree3c39ad2b1ab9f90971cdce9664ab58a35c0696ab /pkg/sentry/socket/netlink
parent80cba65bd84d6415719b07daeca7188871000242 (diff)
[syserr] Reverse dependency for tcpip.Error
PiperOrigin-RevId: 407638912
Diffstat (limited to 'pkg/sentry/socket/netlink')
-rw-r--r--pkg/sentry/socket/netlink/provider.go3
-rw-r--r--pkg/sentry/socket/netlink/provider_vfs2.go3
-rw-r--r--pkg/sentry/socket/netlink/route/BUILD1
-rw-r--r--pkg/sentry/socket/netlink/route/protocol.go19
-rw-r--r--pkg/sentry/socket/netlink/socket.go6
5 files changed, 18 insertions, 14 deletions
diff --git a/pkg/sentry/socket/netlink/provider.go b/pkg/sentry/socket/netlink/provider.go
index 31e374833..936e741f8 100644
--- a/pkg/sentry/socket/netlink/provider.go
+++ b/pkg/sentry/socket/netlink/provider.go
@@ -23,6 +23,7 @@ import (
"gvisor.dev/gvisor/pkg/sentry/kernel"
"gvisor.dev/gvisor/pkg/sentry/socket"
"gvisor.dev/gvisor/pkg/syserr"
+ "gvisor.dev/gvisor/pkg/tcpip"
)
// Protocol is the implementation of a netlink socket protocol.
@@ -104,7 +105,7 @@ func (*socketProvider) Socket(t *kernel.Task, stype linux.SockType, protocol int
// Pair implements socket.Provider.Pair by returning an error.
func (*socketProvider) Pair(*kernel.Task, linux.SockType, int) (*fs.File, *fs.File, *syserr.Error) {
// Netlink sockets never supports creating socket pairs.
- return nil, nil, syserr.ErrNotSupported
+ return nil, nil, tcpip.SyserrNotSupported
}
// LINT.ThenChange(./provider_vfs2.go)
diff --git a/pkg/sentry/socket/netlink/provider_vfs2.go b/pkg/sentry/socket/netlink/provider_vfs2.go
index f061c5d62..1cbeb60b5 100644
--- a/pkg/sentry/socket/netlink/provider_vfs2.go
+++ b/pkg/sentry/socket/netlink/provider_vfs2.go
@@ -20,6 +20,7 @@ import (
"gvisor.dev/gvisor/pkg/sentry/kernel"
"gvisor.dev/gvisor/pkg/sentry/vfs"
"gvisor.dev/gvisor/pkg/syserr"
+ "gvisor.dev/gvisor/pkg/tcpip"
)
// socketProviderVFS2 implements socket.Provider.
@@ -66,5 +67,5 @@ func (*socketProviderVFS2) Socket(t *kernel.Task, stype linux.SockType, protocol
// Pair implements socket.Provider.Pair by returning an error.
func (*socketProviderVFS2) Pair(*kernel.Task, linux.SockType, int) (*vfs.FileDescription, *vfs.FileDescription, *syserr.Error) {
// Netlink sockets never supports creating socket pairs.
- return nil, nil, syserr.ErrNotSupported
+ return nil, nil, tcpip.SyserrNotSupported
}
diff --git a/pkg/sentry/socket/netlink/route/BUILD b/pkg/sentry/socket/netlink/route/BUILD
index c6c04b4e3..2cc80b40e 100644
--- a/pkg/sentry/socket/netlink/route/BUILD
+++ b/pkg/sentry/socket/netlink/route/BUILD
@@ -17,6 +17,7 @@ go_library(
"//pkg/sentry/kernel/auth",
"//pkg/sentry/socket/netlink",
"//pkg/syserr",
+ "//pkg/tcpip",
"@org_golang_x_sys//unix:go_default_library",
],
)
diff --git a/pkg/sentry/socket/netlink/route/protocol.go b/pkg/sentry/socket/netlink/route/protocol.go
index d526acb73..6f5cbfef9 100644
--- a/pkg/sentry/socket/netlink/route/protocol.go
+++ b/pkg/sentry/socket/netlink/route/protocol.go
@@ -27,6 +27,7 @@ import (
"gvisor.dev/gvisor/pkg/sentry/kernel/auth"
"gvisor.dev/gvisor/pkg/sentry/socket/netlink"
"gvisor.dev/gvisor/pkg/syserr"
+ "gvisor.dev/gvisor/pkg/tcpip"
)
// commandKind describes the operational class of a message type.
@@ -360,7 +361,7 @@ func parseForDestination(msg *netlink.Message) ([]byte, *syserr.Error) {
// commit bc234301af12. Note we don't check this flag for backward
// compatibility.
if rtMsg.Flags != 0 && rtMsg.Flags != linux.RTM_F_LOOKUP_TABLE {
- return nil, syserr.ErrNotSupported
+ return nil, tcpip.SyserrNotSupported
}
// Expect first attribute is RTA_DST.
@@ -393,7 +394,7 @@ func (p *Protocol) dumpRoutes(ctx context.Context, msg *netlink.Message, ms *net
route, err := fillRoute(routeTables, dst)
if err != nil {
// TODO(gvisor.dev/issue/1237): return NLMSG_ERROR with ENETUNREACH.
- return syserr.ErrNotSupported
+ return tcpip.SyserrNotSupported
}
routeTables = append([]inet.Route{}, route)
} else if hdr.Flags&linux.NLM_F_DUMP == linux.NLM_F_DUMP {
@@ -401,7 +402,7 @@ func (p *Protocol) dumpRoutes(ctx context.Context, msg *netlink.Message, ms *net
ms.Multi = true
} else {
// TODO(b/68878065): Only above cases are supported.
- return syserr.ErrNotSupported
+ return tcpip.SyserrNotSupported
}
for _, rt := range routeTables {
@@ -489,7 +490,7 @@ func (p *Protocol) newAddr(ctx context.Context, msg *netlink.Message, ms *netlin
}
case linux.IFA_ADDRESS:
default:
- return syserr.ErrNotSupported
+ return tcpip.SyserrNotSupported
}
}
return nil
@@ -530,11 +531,11 @@ func (p *Protocol) delAddr(ctx context.Context, msg *netlink.Message, ms *netlin
Addr: value,
})
if err != nil {
- return syserr.ErrBadLocalAddress
+ return tcpip.SyserrBadLocalAddress
}
case linux.IFA_ADDRESS:
default:
- return syserr.ErrNotSupported
+ return tcpip.SyserrNotSupported
}
}
@@ -572,7 +573,7 @@ func (p *Protocol) ProcessMessage(ctx context.Context, msg *netlink.Message, ms
case linux.RTM_GETROUTE:
return p.dumpRoutes(ctx, msg, ms)
default:
- return syserr.ErrNotSupported
+ return tcpip.SyserrNotSupported
}
} else if hdr.Flags&linux.NLM_F_REQUEST == linux.NLM_F_REQUEST {
switch hdr.Type {
@@ -587,10 +588,10 @@ func (p *Protocol) ProcessMessage(ctx context.Context, msg *netlink.Message, ms
case linux.RTM_DELADDR:
return p.delAddr(ctx, msg, ms)
default:
- return syserr.ErrNotSupported
+ return tcpip.SyserrNotSupported
}
}
- return syserr.ErrNotSupported
+ return tcpip.SyserrNotSupported
}
// init registers the NETLINK_ROUTE provider.
diff --git a/pkg/sentry/socket/netlink/socket.go b/pkg/sentry/socket/netlink/socket.go
index ed5fa9c38..267155807 100644
--- a/pkg/sentry/socket/netlink/socket.go
+++ b/pkg/sentry/socket/netlink/socket.go
@@ -312,19 +312,19 @@ func (s *socketOpsCommon) Connect(t *kernel.Task, sockaddr []byte, blocking bool
// Accept implements socket.Socket.Accept.
func (s *socketOpsCommon) Accept(t *kernel.Task, peerRequested bool, flags int, blocking bool) (int32, linux.SockAddr, uint32, *syserr.Error) {
// Netlink sockets never support accept.
- return 0, nil, 0, syserr.ErrNotSupported
+ return 0, nil, 0, tcpip.SyserrNotSupported
}
// Listen implements socket.Socket.Listen.
func (s *socketOpsCommon) Listen(t *kernel.Task, backlog int) *syserr.Error {
// Netlink sockets never support listen.
- return syserr.ErrNotSupported
+ return tcpip.SyserrNotSupported
}
// Shutdown implements socket.Socket.Shutdown.
func (s *socketOpsCommon) Shutdown(t *kernel.Task, how int) *syserr.Error {
// Netlink sockets never support shutdown.
- return syserr.ErrNotSupported
+ return tcpip.SyserrNotSupported
}
// GetSockOpt implements socket.Socket.GetSockOpt.