diff options
author | Chirantan Ekbote <chirantan@chromium.org> | 2017-08-28 09:51:18 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-09-18 16:48:43 -0700 |
commit | 88f9cba448ff7f1cd61c8bf66e34772132a8663f (patch) | |
tree | be3a916b0991914a841ef51cbc487e07dacacf89 /seccomp | |
parent | 270f7b6a16a1c0475da061d5ecb344db10306a64 (diff) | |
download | crosvm-88f9cba448ff7f1cd61c8bf66e34772132a8663f.tar crosvm-88f9cba448ff7f1cd61c8bf66e34772132a8663f.tar.gz crosvm-88f9cba448ff7f1cd61c8bf66e34772132a8663f.tar.bz2 crosvm-88f9cba448ff7f1cd61c8bf66e34772132a8663f.tar.lz crosvm-88f9cba448ff7f1cd61c8bf66e34772132a8663f.tar.xz crosvm-88f9cba448ff7f1cd61c8bf66e34772132a8663f.tar.zst crosvm-88f9cba448ff7f1cd61c8bf66e34772132a8663f.zip |
Implement virtio-vsock
Implement the virtual sockets device using vhost subsystem of the host kernel to handle data transfer. BUG=chromium:708267 TEST=build and run maitred in guest VM without issue Change-Id: I35b542c0fc7e0fd9296f7ba3e1dfce60bf524d15 Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/638838 Reviewed-by: Stephen Barber <smbarber@chromium.org>
Diffstat (limited to 'seccomp')
-rw-r--r-- | seccomp/x86_64/vhost_vsock_device.policy | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/seccomp/x86_64/vhost_vsock_device.policy b/seccomp/x86_64/vhost_vsock_device.policy new file mode 100644 index 0000000..0310470 --- /dev/null +++ b/seccomp/x86_64/vhost_vsock_device.policy @@ -0,0 +1,43 @@ +# Copyright 2017 The Chromium OS Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +close: 1 +exit_group: 1 +futex: 1 +# Whitelist vhost_vsock ioctls only. +# arg1 == VHOST_GET_FEATURES || +# arg1 == VHOST_SET_FEATURES || +# arg1 == VHOST_SET_OWNER || +# arg1 == VHOST_RESET_OWNER || +# arg1 == VHOST_SET_MEM_TABLE || +# arg1 == VHOST_SET_LOG_BASE || +# arg1 == VHOST_SET_LOG_FD || +# arg1 == VHOST_SET_VRING_NUM || +# arg1 == VHOST_SET_VRING_ADDR || +# arg1 == VHOST_SET_VRING_BASE || +# arg1 == VHOST_GET_VRING_BASE || +# arg1 == VHOST_SET_VRING_KICK || +# arg1 == VHOST_SET_VRING_CALL || +# arg1 == VHOST_SET_VRING_ERR || +# arg1 == VHOST_VSOCK_SET_GUEST_CID || +# arg1 == VHOST_VSOCK_SET_RUNNING +ioctl: arg1 == 0x8008af00 || arg1 == 0x4008af00 || arg1 == 0x0000af01 || arg1 == 0x0000af02 || arg1 == 0x4008af03 || arg1 == 0x4008af04 || arg1 == 0x4004af07 || arg1 == 0x4008af10 || arg1 == 0x4028af11 || arg1 == 0x4008af12 || arg1 == 0xc008af12 || arg1 == 0x4008af20 || arg1 == 0x4008af21 || arg1 == 0x4008af22 || arg1 == 0x4008af60 || arg1 == 0x4004af61 +# Disallow mmap with PROT_EXEC set. The syntax here doesn't allow bit +# negation, thus the manually negated mask constant. +mmap: arg2 in 0xfffffffb +mprotect: arg2 in 0xfffffffb +munmap: 1 +poll: 1 +read: 1 +connect: 1 +sendto: 1 +recvfrom: 1 +sched_getaffinity: 1 +set_robust_list: 1 +sigaltstack: 1 +# Disallow clone's other than new threads. +# arg0 is flags. Because kernel. +clone: arg0 & 0x00010000 +write: 1 +getpid: 1 |