if_team.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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. #ifndef _UAPI_LINUX_IF_TEAM_H_
  12. #define _UAPI_LINUX_IF_TEAM_H_
  13. #define TEAM_STRING_MAX_LEN 32
  14. /**********************************
  15. * NETLINK_GENERIC netlink family.
  16. **********************************/
  17. enum {
  18. TEAM_CMD_NOOP,
  19. TEAM_CMD_OPTIONS_SET,
  20. TEAM_CMD_OPTIONS_GET,
  21. TEAM_CMD_PORT_LIST_GET,
  22. __TEAM_CMD_MAX,
  23. TEAM_CMD_MAX = (__TEAM_CMD_MAX - 1),
  24. };
  25. enum {
  26. TEAM_ATTR_UNSPEC,
  27. TEAM_ATTR_TEAM_IFINDEX, /* u32 */
  28. TEAM_ATTR_LIST_OPTION, /* nest */
  29. TEAM_ATTR_LIST_PORT, /* nest */
  30. __TEAM_ATTR_MAX,
  31. TEAM_ATTR_MAX = __TEAM_ATTR_MAX - 1,
  32. };
  33. /* Nested layout of get/set msg:
  34. *
  35. * [TEAM_ATTR_LIST_OPTION]
  36. * [TEAM_ATTR_ITEM_OPTION]
  37. * [TEAM_ATTR_OPTION_*], ...
  38. * [TEAM_ATTR_ITEM_OPTION]
  39. * [TEAM_ATTR_OPTION_*], ...
  40. * ...
  41. * [TEAM_ATTR_LIST_PORT]
  42. * [TEAM_ATTR_ITEM_PORT]
  43. * [TEAM_ATTR_PORT_*], ...
  44. * [TEAM_ATTR_ITEM_PORT]
  45. * [TEAM_ATTR_PORT_*], ...
  46. * ...
  47. */
  48. enum {
  49. TEAM_ATTR_ITEM_OPTION_UNSPEC,
  50. TEAM_ATTR_ITEM_OPTION, /* nest */
  51. __TEAM_ATTR_ITEM_OPTION_MAX,
  52. TEAM_ATTR_ITEM_OPTION_MAX = __TEAM_ATTR_ITEM_OPTION_MAX - 1,
  53. };
  54. enum {
  55. TEAM_ATTR_OPTION_UNSPEC,
  56. TEAM_ATTR_OPTION_NAME, /* string */
  57. TEAM_ATTR_OPTION_CHANGED, /* flag */
  58. TEAM_ATTR_OPTION_TYPE, /* u8 */
  59. TEAM_ATTR_OPTION_DATA, /* dynamic */
  60. TEAM_ATTR_OPTION_REMOVED, /* flag */
  61. TEAM_ATTR_OPTION_PORT_IFINDEX, /* u32 */ /* for per-port options */
  62. TEAM_ATTR_OPTION_ARRAY_INDEX, /* u32 */ /* for array options */
  63. __TEAM_ATTR_OPTION_MAX,
  64. TEAM_ATTR_OPTION_MAX = __TEAM_ATTR_OPTION_MAX - 1,
  65. };
  66. enum {
  67. TEAM_ATTR_ITEM_PORT_UNSPEC,
  68. TEAM_ATTR_ITEM_PORT, /* nest */
  69. __TEAM_ATTR_ITEM_PORT_MAX,
  70. TEAM_ATTR_ITEM_PORT_MAX = __TEAM_ATTR_ITEM_PORT_MAX - 1,
  71. };
  72. enum {
  73. TEAM_ATTR_PORT_UNSPEC,
  74. TEAM_ATTR_PORT_IFINDEX, /* u32 */
  75. TEAM_ATTR_PORT_CHANGED, /* flag */
  76. TEAM_ATTR_PORT_LINKUP, /* flag */
  77. TEAM_ATTR_PORT_SPEED, /* u32 */
  78. TEAM_ATTR_PORT_DUPLEX, /* u8 */
  79. TEAM_ATTR_PORT_REMOVED, /* flag */
  80. __TEAM_ATTR_PORT_MAX,
  81. TEAM_ATTR_PORT_MAX = __TEAM_ATTR_PORT_MAX - 1,
  82. };
  83. /*
  84. * NETLINK_GENERIC related info
  85. */
  86. #define TEAM_GENL_NAME "team"
  87. #define TEAM_GENL_VERSION 0x1
  88. #define TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME "change_event"
  89. #endif /* _UAPI_LINUX_IF_TEAM_H_ */