/* SPDX-License-Identifier: (BSD-2-Clause OR GPL-2.0-or-later)
 *
 * vim:set noexpandtab shiftwidth=8 softtabstop=8 fileencoding=utf-8:
 *
 * Layer 2 network upstream driver
 */

#ifndef NET_UPSTREAM_IOCTL_H
#define NET_UPSTREAM_IOCTL_H

struct net_us_vlan_prio_map {
	uint16_t vlan_start, vlan_end;
	uint8_t priomap[8];
};

struct net_us_mac_passthru {
	uint8_t mac[ETH_ALEN];
	uint8_t check_dest;
	uint8_t reserved;
};

#define NET_US_IOC_GET_IFINDEX            _IOR('L', 0x01, int32_t)
#define NET_US_IOC_CLR_MASTER             _IO('L', 0x02)
#define NET_US_IOC_SET_MASTER             _IOW('L', 0x03, int32_t)
#define NET_US_IOC_TXACT_CLEAR_ALL        _IO('L', 0x04)
#define NET_US_IOC_TXACT_ADD_VLANPRIO_MAP _IOW('L', 0x05, struct net_us_vlan_prio_map)
#define NET_US_IOC_RXACT_CLEAR_ALL        _IO('L', 0x44)
#define NET_US_IOC_RXACT_ADD_MAC_PASSTHRU _IOW('L', 0x45, struct net_us_mac_passthru)

#endif /* NET_UPSTREAM_IOCTL_H */