mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Enable hostinet for netdevice tests.
This was just a matter of passing a few more IOCTL commands to the host. PiperOrigin-RevId: 523540572
This commit is contained in:
committed by
gVisor bot
parent
5c792e384d
commit
e64fa26613
@@ -68,7 +68,13 @@ func ioctl(ctx context.Context, fd int, io usermem.IO, sysno uintptr, args arch.
|
||||
AddressSpaceActive: true,
|
||||
})
|
||||
return 0, err
|
||||
case unix.SIOCGIFFLAGS:
|
||||
case linux.SIOCGIFFLAGS,
|
||||
linux.SIOCGIFHWADDR,
|
||||
linux.SIOCGIFINDEX,
|
||||
linux.SIOCGIFMTU,
|
||||
linux.SIOCGIFNAME,
|
||||
linux.SIOCGIFNETMASK,
|
||||
linux.SIOCGIFTXQLEN:
|
||||
cc := &usermem.IOCopyContext{
|
||||
Ctx: ctx,
|
||||
IO: io,
|
||||
@@ -85,7 +91,7 @@ func ioctl(ctx context.Context, fd int, io usermem.IO, sysno uintptr, args arch.
|
||||
}
|
||||
_, err := ifr.CopyOut(cc, args[2].Pointer())
|
||||
return 0, err
|
||||
case unix.SIOCGIFCONF:
|
||||
case linux.SIOCGIFCONF:
|
||||
cc := &usermem.IOCopyContext{
|
||||
Ctx: ctx,
|
||||
IO: io,
|
||||
@@ -187,26 +193,6 @@ func ioctl(ctx context.Context, fd int, io usermem.IO, sysno uintptr, args arch.
|
||||
}
|
||||
|
||||
return 0, nil
|
||||
case linux.SIOCGIFTXQLEN:
|
||||
cc := &usermem.IOCopyContext{
|
||||
Ctx: ctx,
|
||||
IO: io,
|
||||
Opts: usermem.IOOpts{
|
||||
AddressSpaceActive: true,
|
||||
},
|
||||
}
|
||||
|
||||
var ifr linux.IFReq
|
||||
if _, err := ifr.CopyIn(cc, args[2].Pointer()); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if _, _, errno := unix.Syscall(unix.SYS_IOCTL, uintptr(fd), cmd, uintptr(unsafe.Pointer(&ifr))); errno != 0 {
|
||||
return 0, translateIOSyscallError(errno)
|
||||
}
|
||||
|
||||
_, err := ifr.CopyOut(cc, args[2].Pointer())
|
||||
return 0, err
|
||||
default:
|
||||
return 0, linuxerr.ENOTTY
|
||||
}
|
||||
|
||||
@@ -39,11 +39,11 @@ func hostInetFilters(allowRawSockets bool) seccomp.SyscallRules {
|
||||
unix.SYS_IOCTL: []seccomp.Rule{
|
||||
{
|
||||
seccomp.MatchAny{},
|
||||
seccomp.EqualTo(unix.TIOCOUTQ),
|
||||
seccomp.EqualTo(unix.SIOCGIFCONF),
|
||||
},
|
||||
{
|
||||
seccomp.MatchAny{},
|
||||
seccomp.EqualTo(unix.TIOCINQ),
|
||||
seccomp.EqualTo(unix.SIOCETHTOOL),
|
||||
},
|
||||
{
|
||||
seccomp.MatchAny{},
|
||||
@@ -51,12 +51,31 @@ func hostInetFilters(allowRawSockets bool) seccomp.SyscallRules {
|
||||
},
|
||||
{
|
||||
seccomp.MatchAny{},
|
||||
seccomp.EqualTo(unix.SIOCGIFCONF),
|
||||
seccomp.EqualTo(unix.SIOCGIFHWADDR),
|
||||
},
|
||||
// Needed to query netlink sockets.
|
||||
{
|
||||
seccomp.MatchAny{},
|
||||
seccomp.EqualTo(unix.SIOCETHTOOL),
|
||||
seccomp.EqualTo(unix.SIOCGIFINDEX),
|
||||
},
|
||||
{
|
||||
seccomp.MatchAny{},
|
||||
seccomp.EqualTo(unix.SIOCGIFMTU),
|
||||
},
|
||||
{
|
||||
seccomp.MatchAny{},
|
||||
seccomp.EqualTo(unix.SIOCGIFNAME),
|
||||
},
|
||||
{
|
||||
seccomp.MatchAny{},
|
||||
seccomp.EqualTo(unix.SIOCGIFNETMASK),
|
||||
},
|
||||
{
|
||||
seccomp.MatchAny{},
|
||||
seccomp.EqualTo(unix.TIOCOUTQ),
|
||||
},
|
||||
{
|
||||
seccomp.MatchAny{},
|
||||
seccomp.EqualTo(unix.TIOCINQ),
|
||||
},
|
||||
},
|
||||
unix.SYS_LISTEN: {},
|
||||
|
||||
@@ -37,7 +37,6 @@ using ::testing::AnyOf;
|
||||
using ::testing::Eq;
|
||||
|
||||
TEST(NetdeviceTest, Loopback) {
|
||||
SKIP_IF(IsRunningWithHostinet());
|
||||
FileDescriptor sock =
|
||||
ASSERT_NO_ERRNO_AND_VALUE(Socket(AF_INET, SOCK_DGRAM, 0));
|
||||
|
||||
@@ -61,7 +60,6 @@ TEST(NetdeviceTest, Loopback) {
|
||||
}
|
||||
|
||||
TEST(NetdeviceTest, Netmask) {
|
||||
SKIP_IF(IsRunningWithHostinet());
|
||||
// We need an interface index to identify the loopback device.
|
||||
FileDescriptor sock =
|
||||
ASSERT_NO_ERRNO_AND_VALUE(Socket(AF_INET, SOCK_DGRAM, 0));
|
||||
@@ -137,7 +135,6 @@ TEST(NetdeviceTest, Netmask) {
|
||||
}
|
||||
|
||||
TEST(NetdeviceTest, InterfaceName) {
|
||||
SKIP_IF(IsRunningWithHostinet());
|
||||
FileDescriptor sock =
|
||||
ASSERT_NO_ERRNO_AND_VALUE(Socket(AF_INET, SOCK_DGRAM, 0));
|
||||
|
||||
@@ -171,7 +168,6 @@ TEST(NetdeviceTest, InterfaceFlags) {
|
||||
}
|
||||
|
||||
TEST(NetdeviceTest, InterfaceMTU) {
|
||||
SKIP_IF(IsRunningWithHostinet());
|
||||
FileDescriptor sock =
|
||||
ASSERT_NO_ERRNO_AND_VALUE(Socket(AF_INET, SOCK_DGRAM, 0));
|
||||
|
||||
@@ -203,7 +199,6 @@ TEST(NetdeviceTest, InterfaceQLEN) {
|
||||
}
|
||||
|
||||
TEST(NetdeviceTest, EthtoolGetTSInfo) {
|
||||
SKIP_IF(IsRunningWithHostinet());
|
||||
FileDescriptor sock =
|
||||
ASSERT_NO_ERRNO_AND_VALUE(Socket(AF_INET, SOCK_DGRAM, 0));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user