mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			101 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/include/linux/switch.h
 | |
| +++ b/include/linux/switch.h
 | |
| @@ -13,11 +13,86 @@
 | |
|   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|   * GNU General Public License for more details.
 | |
|   */
 | |
| -#ifndef _LINUX_SWITCH_H
 | |
| -#define _LINUX_SWITCH_H
 | |
|  
 | |
| +#ifndef __LINUX_SWITCH_H
 | |
| +#define __LINUX_SWITCH_H
 | |
| +
 | |
| +#include <linux/types.h>
 | |
| +#include <linux/netdevice.h>
 | |
| +#include <linux/netlink.h>
 | |
| +#include <linux/genetlink.h>
 | |
| +#ifndef __KERNEL__
 | |
| +#include <netlink/netlink.h>
 | |
| +#include <netlink/genl/genl.h>
 | |
| +#include <netlink/genl/ctrl.h>
 | |
| +#else
 | |
|  #include <net/genetlink.h>
 | |
| -#include <uapi/linux/switch.h>
 | |
| +#endif
 | |
| +
 | |
| +/* main attributes */
 | |
| +enum {
 | |
| +	SWITCH_ATTR_UNSPEC,
 | |
| +	/* global */
 | |
| +	SWITCH_ATTR_TYPE,
 | |
| +	/* device */
 | |
| +	SWITCH_ATTR_ID,
 | |
| +	SWITCH_ATTR_DEV_NAME,
 | |
| +	SWITCH_ATTR_ALIAS,
 | |
| +	SWITCH_ATTR_NAME,
 | |
| +	SWITCH_ATTR_VLANS,
 | |
| +	SWITCH_ATTR_PORTS,
 | |
| +	SWITCH_ATTR_CPU_PORT,
 | |
| +	/* attributes */
 | |
| +	SWITCH_ATTR_OP_ID,
 | |
| +	SWITCH_ATTR_OP_TYPE,
 | |
| +	SWITCH_ATTR_OP_NAME,
 | |
| +	SWITCH_ATTR_OP_PORT,
 | |
| +	SWITCH_ATTR_OP_VLAN,
 | |
| +	SWITCH_ATTR_OP_VALUE_INT,
 | |
| +	SWITCH_ATTR_OP_VALUE_STR,
 | |
| +	SWITCH_ATTR_OP_VALUE_PORTS,
 | |
| +	SWITCH_ATTR_OP_DESCRIPTION,
 | |
| +	/* port lists */
 | |
| +	SWITCH_ATTR_PORT,
 | |
| +	SWITCH_ATTR_MAX
 | |
| +};
 | |
| +
 | |
| +/* commands */
 | |
| +enum {
 | |
| +	SWITCH_CMD_UNSPEC,
 | |
| +	SWITCH_CMD_GET_SWITCH,
 | |
| +	SWITCH_CMD_NEW_ATTR,
 | |
| +	SWITCH_CMD_LIST_GLOBAL,
 | |
| +	SWITCH_CMD_GET_GLOBAL,
 | |
| +	SWITCH_CMD_SET_GLOBAL,
 | |
| +	SWITCH_CMD_LIST_PORT,
 | |
| +	SWITCH_CMD_GET_PORT,
 | |
| +	SWITCH_CMD_SET_PORT,
 | |
| +	SWITCH_CMD_LIST_VLAN,
 | |
| +	SWITCH_CMD_GET_VLAN,
 | |
| +	SWITCH_CMD_SET_VLAN
 | |
| +};
 | |
| +
 | |
| +/* data types */
 | |
| +enum switch_val_type {
 | |
| +	SWITCH_TYPE_UNSPEC,
 | |
| +	SWITCH_TYPE_INT,
 | |
| +	SWITCH_TYPE_STRING,
 | |
| +	SWITCH_TYPE_PORTS,
 | |
| +	SWITCH_TYPE_NOVAL,
 | |
| +};
 | |
| +
 | |
| +/* port nested attributes */
 | |
| +enum {
 | |
| +	SWITCH_PORT_UNSPEC,
 | |
| +	SWITCH_PORT_ID,
 | |
| +	SWITCH_PORT_FLAG_TAGGED,
 | |
| +	SWITCH_PORT_ATTR_MAX
 | |
| +};
 | |
| +
 | |
| +#define SWITCH_ATTR_DEFAULTS_OFFSET	0x1000
 | |
| +
 | |
| +#ifdef __KERNEL__
 | |
|  
 | |
|  struct switch_dev;
 | |
|  struct switch_op;
 | |
| @@ -157,4 +232,6 @@ struct switch_attr {
 | |
|  	int max;
 | |
|  };
 | |
|  
 | |
| -#endif /* _LINUX_SWITCH_H */
 | |
| +#endif
 | |
| +
 | |
| +#endif
 |