1*e2be04c7SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 2607ca46eSDavid Howells /* 3607ca46eSDavid Howells * include/linux/if_team.h - Network team device driver header 4607ca46eSDavid Howells * Copyright (c) 2011 Jiri Pirko <jpirko@redhat.com> 5607ca46eSDavid Howells * 6607ca46eSDavid Howells * This program is free software; you can redistribute it and/or modify 7607ca46eSDavid Howells * it under the terms of the GNU General Public License as published by 8607ca46eSDavid Howells * the Free Software Foundation; either version 2 of the License, or 9607ca46eSDavid Howells * (at your option) any later version. 10607ca46eSDavid Howells */ 11607ca46eSDavid Howells 12607ca46eSDavid Howells #ifndef _UAPI_LINUX_IF_TEAM_H_ 13607ca46eSDavid Howells #define _UAPI_LINUX_IF_TEAM_H_ 14607ca46eSDavid Howells 15607ca46eSDavid Howells 16607ca46eSDavid Howells #define TEAM_STRING_MAX_LEN 32 17607ca46eSDavid Howells 18607ca46eSDavid Howells /********************************** 19607ca46eSDavid Howells * NETLINK_GENERIC netlink family. 20607ca46eSDavid Howells **********************************/ 21607ca46eSDavid Howells 22607ca46eSDavid Howells enum { 23607ca46eSDavid Howells TEAM_CMD_NOOP, 24607ca46eSDavid Howells TEAM_CMD_OPTIONS_SET, 25607ca46eSDavid Howells TEAM_CMD_OPTIONS_GET, 26607ca46eSDavid Howells TEAM_CMD_PORT_LIST_GET, 27607ca46eSDavid Howells 28607ca46eSDavid Howells __TEAM_CMD_MAX, 29607ca46eSDavid Howells TEAM_CMD_MAX = (__TEAM_CMD_MAX - 1), 30607ca46eSDavid Howells }; 31607ca46eSDavid Howells 32607ca46eSDavid Howells enum { 33607ca46eSDavid Howells TEAM_ATTR_UNSPEC, 34607ca46eSDavid Howells TEAM_ATTR_TEAM_IFINDEX, /* u32 */ 35607ca46eSDavid Howells TEAM_ATTR_LIST_OPTION, /* nest */ 36607ca46eSDavid Howells TEAM_ATTR_LIST_PORT, /* nest */ 37607ca46eSDavid Howells 38607ca46eSDavid Howells __TEAM_ATTR_MAX, 39607ca46eSDavid Howells TEAM_ATTR_MAX = __TEAM_ATTR_MAX - 1, 40607ca46eSDavid Howells }; 41607ca46eSDavid Howells 42607ca46eSDavid Howells /* Nested layout of get/set msg: 43607ca46eSDavid Howells * 44607ca46eSDavid Howells * [TEAM_ATTR_LIST_OPTION] 45607ca46eSDavid Howells * [TEAM_ATTR_ITEM_OPTION] 46607ca46eSDavid Howells * [TEAM_ATTR_OPTION_*], ... 47607ca46eSDavid Howells * [TEAM_ATTR_ITEM_OPTION] 48607ca46eSDavid Howells * [TEAM_ATTR_OPTION_*], ... 49607ca46eSDavid Howells * ... 50607ca46eSDavid Howells * [TEAM_ATTR_LIST_PORT] 51607ca46eSDavid Howells * [TEAM_ATTR_ITEM_PORT] 52607ca46eSDavid Howells * [TEAM_ATTR_PORT_*], ... 53607ca46eSDavid Howells * [TEAM_ATTR_ITEM_PORT] 54607ca46eSDavid Howells * [TEAM_ATTR_PORT_*], ... 55607ca46eSDavid Howells * ... 56607ca46eSDavid Howells */ 57607ca46eSDavid Howells 58607ca46eSDavid Howells enum { 59607ca46eSDavid Howells TEAM_ATTR_ITEM_OPTION_UNSPEC, 60607ca46eSDavid Howells TEAM_ATTR_ITEM_OPTION, /* nest */ 61607ca46eSDavid Howells 62607ca46eSDavid Howells __TEAM_ATTR_ITEM_OPTION_MAX, 63607ca46eSDavid Howells TEAM_ATTR_ITEM_OPTION_MAX = __TEAM_ATTR_ITEM_OPTION_MAX - 1, 64607ca46eSDavid Howells }; 65607ca46eSDavid Howells 66607ca46eSDavid Howells enum { 67607ca46eSDavid Howells TEAM_ATTR_OPTION_UNSPEC, 68607ca46eSDavid Howells TEAM_ATTR_OPTION_NAME, /* string */ 69607ca46eSDavid Howells TEAM_ATTR_OPTION_CHANGED, /* flag */ 70607ca46eSDavid Howells TEAM_ATTR_OPTION_TYPE, /* u8 */ 71607ca46eSDavid Howells TEAM_ATTR_OPTION_DATA, /* dynamic */ 72607ca46eSDavid Howells TEAM_ATTR_OPTION_REMOVED, /* flag */ 73607ca46eSDavid Howells TEAM_ATTR_OPTION_PORT_IFINDEX, /* u32 */ /* for per-port options */ 74607ca46eSDavid Howells TEAM_ATTR_OPTION_ARRAY_INDEX, /* u32 */ /* for array options */ 75607ca46eSDavid Howells 76607ca46eSDavid Howells __TEAM_ATTR_OPTION_MAX, 77607ca46eSDavid Howells TEAM_ATTR_OPTION_MAX = __TEAM_ATTR_OPTION_MAX - 1, 78607ca46eSDavid Howells }; 79607ca46eSDavid Howells 80607ca46eSDavid Howells enum { 81607ca46eSDavid Howells TEAM_ATTR_ITEM_PORT_UNSPEC, 82607ca46eSDavid Howells TEAM_ATTR_ITEM_PORT, /* nest */ 83607ca46eSDavid Howells 84607ca46eSDavid Howells __TEAM_ATTR_ITEM_PORT_MAX, 85607ca46eSDavid Howells TEAM_ATTR_ITEM_PORT_MAX = __TEAM_ATTR_ITEM_PORT_MAX - 1, 86607ca46eSDavid Howells }; 87607ca46eSDavid Howells 88607ca46eSDavid Howells enum { 89607ca46eSDavid Howells TEAM_ATTR_PORT_UNSPEC, 90607ca46eSDavid Howells TEAM_ATTR_PORT_IFINDEX, /* u32 */ 91607ca46eSDavid Howells TEAM_ATTR_PORT_CHANGED, /* flag */ 92607ca46eSDavid Howells TEAM_ATTR_PORT_LINKUP, /* flag */ 93607ca46eSDavid Howells TEAM_ATTR_PORT_SPEED, /* u32 */ 94607ca46eSDavid Howells TEAM_ATTR_PORT_DUPLEX, /* u8 */ 95607ca46eSDavid Howells TEAM_ATTR_PORT_REMOVED, /* flag */ 96607ca46eSDavid Howells 97607ca46eSDavid Howells __TEAM_ATTR_PORT_MAX, 98607ca46eSDavid Howells TEAM_ATTR_PORT_MAX = __TEAM_ATTR_PORT_MAX - 1, 99607ca46eSDavid Howells }; 100607ca46eSDavid Howells 101607ca46eSDavid Howells /* 102607ca46eSDavid Howells * NETLINK_GENERIC related info 103607ca46eSDavid Howells */ 104607ca46eSDavid Howells #define TEAM_GENL_NAME "team" 105607ca46eSDavid Howells #define TEAM_GENL_VERSION 0x1 106607ca46eSDavid Howells #define TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME "change_event" 107607ca46eSDavid Howells 108607ca46eSDavid Howells #endif /* _UAPI_LINUX_IF_TEAM_H_ */ 109