Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
0002 /*
0003  * include/linux/if_team.h - Network team device driver header
0004  * Copyright (c) 2011 Jiri Pirko <jpirko@redhat.com>
0005  *
0006  * This program is free software; you can redistribute it and/or modify
0007  * it under the terms of the GNU General Public License as published by
0008  * the Free Software Foundation; either version 2 of the License, or
0009  * (at your option) any later version.
0010  */
0011 
0012 #ifndef _UAPI_LINUX_IF_TEAM_H_
0013 #define _UAPI_LINUX_IF_TEAM_H_
0014 
0015 
0016 #define TEAM_STRING_MAX_LEN 32
0017 
0018 /**********************************
0019  * NETLINK_GENERIC netlink family.
0020  **********************************/
0021 
0022 enum {
0023     TEAM_CMD_NOOP,
0024     TEAM_CMD_OPTIONS_SET,
0025     TEAM_CMD_OPTIONS_GET,
0026     TEAM_CMD_PORT_LIST_GET,
0027 
0028     __TEAM_CMD_MAX,
0029     TEAM_CMD_MAX = (__TEAM_CMD_MAX - 1),
0030 };
0031 
0032 enum {
0033     TEAM_ATTR_UNSPEC,
0034     TEAM_ATTR_TEAM_IFINDEX,     /* u32 */
0035     TEAM_ATTR_LIST_OPTION,      /* nest */
0036     TEAM_ATTR_LIST_PORT,        /* nest */
0037 
0038     __TEAM_ATTR_MAX,
0039     TEAM_ATTR_MAX = __TEAM_ATTR_MAX - 1,
0040 };
0041 
0042 /* Nested layout of get/set msg:
0043  *
0044  *  [TEAM_ATTR_LIST_OPTION]
0045  *      [TEAM_ATTR_ITEM_OPTION]
0046  *          [TEAM_ATTR_OPTION_*], ...
0047  *      [TEAM_ATTR_ITEM_OPTION]
0048  *          [TEAM_ATTR_OPTION_*], ...
0049  *      ...
0050  *  [TEAM_ATTR_LIST_PORT]
0051  *      [TEAM_ATTR_ITEM_PORT]
0052  *          [TEAM_ATTR_PORT_*], ...
0053  *      [TEAM_ATTR_ITEM_PORT]
0054  *          [TEAM_ATTR_PORT_*], ...
0055  *      ...
0056  */
0057 
0058 enum {
0059     TEAM_ATTR_ITEM_OPTION_UNSPEC,
0060     TEAM_ATTR_ITEM_OPTION,      /* nest */
0061 
0062     __TEAM_ATTR_ITEM_OPTION_MAX,
0063     TEAM_ATTR_ITEM_OPTION_MAX = __TEAM_ATTR_ITEM_OPTION_MAX - 1,
0064 };
0065 
0066 enum {
0067     TEAM_ATTR_OPTION_UNSPEC,
0068     TEAM_ATTR_OPTION_NAME,      /* string */
0069     TEAM_ATTR_OPTION_CHANGED,   /* flag */
0070     TEAM_ATTR_OPTION_TYPE,      /* u8 */
0071     TEAM_ATTR_OPTION_DATA,      /* dynamic */
0072     TEAM_ATTR_OPTION_REMOVED,   /* flag */
0073     TEAM_ATTR_OPTION_PORT_IFINDEX,  /* u32 */ /* for per-port options */
0074     TEAM_ATTR_OPTION_ARRAY_INDEX,   /* u32 */ /* for array options */
0075 
0076     __TEAM_ATTR_OPTION_MAX,
0077     TEAM_ATTR_OPTION_MAX = __TEAM_ATTR_OPTION_MAX - 1,
0078 };
0079 
0080 enum {
0081     TEAM_ATTR_ITEM_PORT_UNSPEC,
0082     TEAM_ATTR_ITEM_PORT,        /* nest */
0083 
0084     __TEAM_ATTR_ITEM_PORT_MAX,
0085     TEAM_ATTR_ITEM_PORT_MAX = __TEAM_ATTR_ITEM_PORT_MAX - 1,
0086 };
0087 
0088 enum {
0089     TEAM_ATTR_PORT_UNSPEC,
0090     TEAM_ATTR_PORT_IFINDEX,     /* u32 */
0091     TEAM_ATTR_PORT_CHANGED,     /* flag */
0092     TEAM_ATTR_PORT_LINKUP,      /* flag */
0093     TEAM_ATTR_PORT_SPEED,       /* u32 */
0094     TEAM_ATTR_PORT_DUPLEX,      /* u8 */
0095     TEAM_ATTR_PORT_REMOVED,     /* flag */
0096 
0097     __TEAM_ATTR_PORT_MAX,
0098     TEAM_ATTR_PORT_MAX = __TEAM_ATTR_PORT_MAX - 1,
0099 };
0100 
0101 /*
0102  * NETLINK_GENERIC related info
0103  */
0104 #define TEAM_GENL_NAME "team"
0105 #define TEAM_GENL_VERSION 0x1
0106 #define TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME "change_event"
0107 
0108 #endif /* _UAPI_LINUX_IF_TEAM_H_ */