1e2be04c7SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2e46c7287SJosef Bacik /* 3e46c7287SJosef Bacik * Copyright (C) 2017 Facebook. All rights reserved. 4e46c7287SJosef Bacik * 5e46c7287SJosef Bacik * This program is free software; you can redistribute it and/or 6e46c7287SJosef Bacik * modify it under the terms of the GNU General Public 7e46c7287SJosef Bacik * License v2 as published by the Free Software Foundation. 8e46c7287SJosef Bacik * 9e46c7287SJosef Bacik * This program is distributed in the hope that it will be useful, 10e46c7287SJosef Bacik * but WITHOUT ANY WARRANTY; without even the implied warranty of 11e46c7287SJosef Bacik * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12e46c7287SJosef Bacik * General Public License for more details. 13e46c7287SJosef Bacik * 14e46c7287SJosef Bacik * You should have received a copy of the GNU General Public 15e46c7287SJosef Bacik * License along with this program; if not, write to the 16e46c7287SJosef Bacik * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17e46c7287SJosef Bacik * Boston, MA 021110-1307, USA. 18e46c7287SJosef Bacik */ 19e46c7287SJosef Bacik #ifndef _UAPILINUX_NBD_NETLINK_H 20e46c7287SJosef Bacik #define _UAPILINUX_NBD_NETLINK_H 21e46c7287SJosef Bacik 22e46c7287SJosef Bacik #define NBD_GENL_FAMILY_NAME "nbd" 23e46c7287SJosef Bacik #define NBD_GENL_VERSION 0x1 24799f9a38SJosef Bacik #define NBD_GENL_MCAST_GROUP_NAME "nbd_mc_group" 25e46c7287SJosef Bacik 26e46c7287SJosef Bacik /* Configuration policy attributes, used for CONNECT */ 27e46c7287SJosef Bacik enum { 28e46c7287SJosef Bacik NBD_ATTR_UNSPEC, 29e46c7287SJosef Bacik NBD_ATTR_INDEX, 30e46c7287SJosef Bacik NBD_ATTR_SIZE_BYTES, 31e46c7287SJosef Bacik NBD_ATTR_BLOCK_SIZE_BYTES, 32e46c7287SJosef Bacik NBD_ATTR_TIMEOUT, 33e46c7287SJosef Bacik NBD_ATTR_SERVER_FLAGS, 34e46c7287SJosef Bacik NBD_ATTR_CLIENT_FLAGS, 35e46c7287SJosef Bacik NBD_ATTR_SOCKETS, 36560bc4b3SJosef Bacik NBD_ATTR_DEAD_CONN_TIMEOUT, 3747d902b9SJosef Bacik NBD_ATTR_DEVICE_LIST, 38*6497ef8dSPrasanna Kumar Kalever NBD_ATTR_BACKEND_IDENTIFIER, 39e46c7287SJosef Bacik __NBD_ATTR_MAX, 40e46c7287SJosef Bacik }; 41e46c7287SJosef Bacik #define NBD_ATTR_MAX (__NBD_ATTR_MAX - 1) 42e46c7287SJosef Bacik 43e46c7287SJosef Bacik /* 4447d902b9SJosef Bacik * This is the format for multiple devices with NBD_ATTR_DEVICE_LIST 4547d902b9SJosef Bacik * 4647d902b9SJosef Bacik * [NBD_ATTR_DEVICE_LIST] 4747d902b9SJosef Bacik * [NBD_DEVICE_ITEM] 4847d902b9SJosef Bacik * [NBD_DEVICE_INDEX] 4947d902b9SJosef Bacik * [NBD_DEVICE_CONNECTED] 5047d902b9SJosef Bacik */ 5147d902b9SJosef Bacik enum { 5247d902b9SJosef Bacik NBD_DEVICE_ITEM_UNSPEC, 5347d902b9SJosef Bacik NBD_DEVICE_ITEM, 5447d902b9SJosef Bacik __NBD_DEVICE_ITEM_MAX, 5547d902b9SJosef Bacik }; 5647d902b9SJosef Bacik #define NBD_DEVICE_ITEM_MAX (__NBD_DEVICE_ITEM_MAX - 1) 5747d902b9SJosef Bacik 5847d902b9SJosef Bacik enum { 5947d902b9SJosef Bacik NBD_DEVICE_UNSPEC, 6047d902b9SJosef Bacik NBD_DEVICE_INDEX, 6147d902b9SJosef Bacik NBD_DEVICE_CONNECTED, 6247d902b9SJosef Bacik __NBD_DEVICE_MAX, 6347d902b9SJosef Bacik }; 6447d902b9SJosef Bacik #define NBD_DEVICE_ATTR_MAX (__NBD_DEVICE_MAX - 1) 6547d902b9SJosef Bacik 6647d902b9SJosef Bacik /* 67e46c7287SJosef Bacik * This is the format for multiple sockets with NBD_ATTR_SOCKETS 68e46c7287SJosef Bacik * 69e46c7287SJosef Bacik * [NBD_ATTR_SOCKETS] 70e46c7287SJosef Bacik * [NBD_SOCK_ITEM] 71e46c7287SJosef Bacik * [NBD_SOCK_FD] 72e46c7287SJosef Bacik * [NBD_SOCK_ITEM] 73e46c7287SJosef Bacik * [NBD_SOCK_FD] 74e46c7287SJosef Bacik */ 75e46c7287SJosef Bacik enum { 76e46c7287SJosef Bacik NBD_SOCK_ITEM_UNSPEC, 77e46c7287SJosef Bacik NBD_SOCK_ITEM, 78e46c7287SJosef Bacik __NBD_SOCK_ITEM_MAX, 79e46c7287SJosef Bacik }; 80e46c7287SJosef Bacik #define NBD_SOCK_ITEM_MAX (__NBD_SOCK_ITEM_MAX - 1) 81e46c7287SJosef Bacik 82e46c7287SJosef Bacik enum { 83e46c7287SJosef Bacik NBD_SOCK_UNSPEC, 84e46c7287SJosef Bacik NBD_SOCK_FD, 85e46c7287SJosef Bacik __NBD_SOCK_MAX, 86e46c7287SJosef Bacik }; 87e46c7287SJosef Bacik #define NBD_SOCK_MAX (__NBD_SOCK_MAX - 1) 88e46c7287SJosef Bacik 89e46c7287SJosef Bacik enum { 90e46c7287SJosef Bacik NBD_CMD_UNSPEC, 91e46c7287SJosef Bacik NBD_CMD_CONNECT, 92e46c7287SJosef Bacik NBD_CMD_DISCONNECT, 93b7aa3d39SJosef Bacik NBD_CMD_RECONFIGURE, 94799f9a38SJosef Bacik NBD_CMD_LINK_DEAD, 9547d902b9SJosef Bacik NBD_CMD_STATUS, 96e46c7287SJosef Bacik __NBD_CMD_MAX, 97e46c7287SJosef Bacik }; 98e46c7287SJosef Bacik #define NBD_CMD_MAX (__NBD_CMD_MAX - 1) 99e46c7287SJosef Bacik 100e46c7287SJosef Bacik #endif /* _UAPILINUX_NBD_NETLINK_H */ 101