diff options
| author | Jiri Pirko <jiri@mellanox.com> | 2019-05-17 18:04:26 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2019-10-25 13:15:56 +0200 |
| commit | 04ca72cd45348daab9d896bbec8ea4c2d13455ac (patch) | |
| tree | 3075020ca8a78c10d96944355f6bde9385602de7 /sys/linux/socket_netlink_generic_devlink.txt | |
| parent | 5b49e1f605a770e8f8fcdcbd1a8ff85591fc0c8e (diff) | |
sys/linux: add support for basic devlink syscalls
Add support for basic set of devlink interface syscalls
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Diffstat (limited to 'sys/linux/socket_netlink_generic_devlink.txt')
| -rw-r--r-- | sys/linux/socket_netlink_generic_devlink.txt | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/sys/linux/socket_netlink_generic_devlink.txt b/sys/linux/socket_netlink_generic_devlink.txt new file mode 100644 index 000000000..50312f5bb --- /dev/null +++ b/sys/linux/socket_netlink_generic_devlink.txt @@ -0,0 +1,62 @@ +# Copyright 2019 syzkaller project authors. All rights reserved. +# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +# AF_NETLINK/NETLINK_GENERIC/devlink support. + +include <linux/net.h> +include <net/netlink.h> +include <uapi/linux/netlink.h> +include <uapi/linux/genetlink.h> +include <uapi/linux/devlink.h> + +resource genl_devlink_family_id[int16] +syz_genetlink_get_family_id$devlink(name ptr[in, string["devlink"]]) genl_devlink_family_id + +devlink_devname { + prefix stringnoz["netdevsim"] + id proc['0', 1, int8] + z const[0, int8] +} [packed] + +devlink_handle { + DEVLINK_ATTR_BUS_NAME nlattr[DEVLINK_ATTR_BUS_NAME, string["netdevsim"]] + DEVLINK_ATTR_DEV_NAME nlattr[DEVLINK_ATTR_DEV_NAME, devlink_devname] +} [packed, align_4] + +devlink_port_handle { + port_handle devlink_handle +# 0:3 is in sync with number of ports created by netdevsim_add() + DEVLINK_ATTR_PORT_INDEX nlattr[DEVLINK_ATTR_PORT_INDEX, int32[0:3]] +} [packed, align_4] + +type msghdr_nl_devlink[CMD] msghdr_netlink[netlink_msg_t[genl_devlink_family_id, genlmsghdr_t[CMD], devlink_handle]] +sendmsg$DEVLINK_CMD_GET(fd sock_nl_generic, msg ptr[in, msghdr_nl_devlink[DEVLINK_CMD_GET]], f flags[send_flags]) + +type msghdr_nl_devlink_reload msghdr_netlink[netlink_msg_t[genl_devlink_family_id, genlmsghdr_t[DEVLINK_CMD_RELOAD], devlink_reload]] +sendmsg$DEVLINK_CMD_RELOAD(fd sock_nl_generic, msg ptr[in, msghdr_nl_devlink_reload], f flags[send_flags]) + +devlink_reload_arg [ + DEVLINK_ATTR_NETNS_PID nlattr[DEVLINK_ATTR_NETNS_PID, pid] + DEVLINK_ATTR_NETNS_FD nlattr[DEVLINK_ATTR_NETNS_FD, fd_namespace] + DEVLINK_ATTR_NETNS_ID nlattr[DEVLINK_ATTR_NETNS_ID, netns_id] +] [varlen] + +devlink_reload { + handle devlink_handle + arg devlink_reload_arg +} [packed, align_4] + +type msghdr_nl_devlink_port_get msghdr_netlink[netlink_msg_t[genl_devlink_family_id, genlmsghdr_t[DEVLINK_CMD_PORT_GET], devlink_port_get]] +sendmsg$DEVLINK_CMD_PORT_GET(fd sock_nl_generic, msg ptr[in, msghdr_nl_devlink_port_get], f flags[send_flags]) + +devlink_port_get { + port_handle devlink_port_handle +} [packed, align_4] + +type msghdr_nl_devlink_port_set msghdr_netlink[netlink_msg_t[genl_devlink_family_id, genlmsghdr_t[DEVLINK_CMD_PORT_SET], devlink_port_set]] +sendmsg$DEVLINK_CMD_PORT_SET(fd sock_nl_generic, msg ptr[in, msghdr_nl_devlink_port_set], f flags[send_flags]) + +devlink_port_set { + port_handle devlink_port_handle + DEVLINK_ATTR_PORT_TYPE nlattr[DEVLINK_ATTR_PORT_TYPE, int16[DEVLINK_PORT_TYPE_NOTSET:DEVLINK_PORT_TYPE_IB]] +} [packed, align_4] |
