1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2 /* 3 * include/linux/if_team.h - Network team device driver header 4 * Copyright (c) 2011 Jiri Pirko <jpirko@redhat.com> 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or 9 * (at your option) any later version. 10 */ 11 12 #ifndef _UAPI_LINUX_IF_TEAM_H_ 13 #define _UAPI_LINUX_IF_TEAM_H_ 14 15 16 #define TEAM_STRING_MAX_LEN 32 17 18 /********************************** 19 * NETLINK_GENERIC netlink family. 20 **********************************/ 21 22 enum { 23 TEAM_CMD_NOOP, 24 TEAM_CMD_OPTIONS_SET, 25 TEAM_CMD_OPTIONS_GET, 26 TEAM_CMD_PORT_LIST_GET, 27 28 __TEAM_CMD_MAX, 29 TEAM_CMD_MAX = (__TEAM_CMD_MAX - 1), 30 }; 31 32 enum { 33 TEAM_ATTR_UNSPEC, 34 TEAM_ATTR_TEAM_IFINDEX, /* u32 */ 35 TEAM_ATTR_LIST_OPTION, /* nest */ 36 TEAM_ATTR_LIST_PORT, /* nest */ 37 38 __TEAM_ATTR_MAX, 39 TEAM_ATTR_MAX = __TEAM_ATTR_MAX - 1, 40 }; 41 42 /* Nested layout of get/set msg: 43 * 44 * [TEAM_ATTR_LIST_OPTION] 45 * [TEAM_ATTR_ITEM_OPTION] 46 * [TEAM_ATTR_OPTION_*], ... 47 * [TEAM_ATTR_ITEM_OPTION] 48 * [TEAM_ATTR_OPTION_*], ... 49 * ... 50 * [TEAM_ATTR_LIST_PORT] 51 * [TEAM_ATTR_ITEM_PORT] 52 * [TEAM_ATTR_PORT_*], ... 53 * [TEAM_ATTR_ITEM_PORT] 54 * [TEAM_ATTR_PORT_*], ... 55 * ... 56 */ 57 58 enum { 59 TEAM_ATTR_ITEM_OPTION_UNSPEC, 60 TEAM_ATTR_ITEM_OPTION, /* nest */ 61 62 __TEAM_ATTR_ITEM_OPTION_MAX, 63 TEAM_ATTR_ITEM_OPTION_MAX = __TEAM_ATTR_ITEM_OPTION_MAX - 1, 64 }; 65 66 enum { 67 TEAM_ATTR_OPTION_UNSPEC, 68 TEAM_ATTR_OPTION_NAME, /* string */ 69 TEAM_ATTR_OPTION_CHANGED, /* flag */ 70 TEAM_ATTR_OPTION_TYPE, /* u8 */ 71 TEAM_ATTR_OPTION_DATA, /* dynamic */ 72 TEAM_ATTR_OPTION_REMOVED, /* flag */ 73 TEAM_ATTR_OPTION_PORT_IFINDEX, /* u32 */ /* for per-port options */ 74 TEAM_ATTR_OPTION_ARRAY_INDEX, /* u32 */ /* for array options */ 75 76 __TEAM_ATTR_OPTION_MAX, 77 TEAM_ATTR_OPTION_MAX = __TEAM_ATTR_OPTION_MAX - 1, 78 }; 79 80 enum { 81 TEAM_ATTR_ITEM_PORT_UNSPEC, 82 TEAM_ATTR_ITEM_PORT, /* nest */ 83 84 __TEAM_ATTR_ITEM_PORT_MAX, 85 TEAM_ATTR_ITEM_PORT_MAX = __TEAM_ATTR_ITEM_PORT_MAX - 1, 86 }; 87 88 enum { 89 TEAM_ATTR_PORT_UNSPEC, 90 TEAM_ATTR_PORT_IFINDEX, /* u32 */ 91 TEAM_ATTR_PORT_CHANGED, /* flag */ 92 TEAM_ATTR_PORT_LINKUP, /* flag */ 93 TEAM_ATTR_PORT_SPEED, /* u32 */ 94 TEAM_ATTR_PORT_DUPLEX, /* u8 */ 95 TEAM_ATTR_PORT_REMOVED, /* flag */ 96 97 __TEAM_ATTR_PORT_MAX, 98 TEAM_ATTR_PORT_MAX = __TEAM_ATTR_PORT_MAX - 1, 99 }; 100 101 /* 102 * NETLINK_GENERIC related info 103 */ 104 #define TEAM_GENL_NAME "team" 105 #define TEAM_GENL_VERSION 0x1 106 #define TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME "change_event" 107 108 #endif /* _UAPI_LINUX_IF_TEAM_H_ */ 109