linux/include/uapi/linux/if_team.h
<<
>>
Prefs
   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
  22enum {
  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
  32enum {
  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
  58enum {
  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
  66enum {
  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
  80enum {
  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
  88enum {
  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