cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

nl80211-vnd-intel.h (4602B)


      1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2/*
      3 * Copyright (C) 2012-2014, 2018-2021 Intel Corporation
      4 * Copyright (C) 2013-2015 Intel Mobile Communications GmbH
      5 * Copyright (C) 2016-2017 Intel Deutschland GmbH
      6 */
      7#ifndef __VENDOR_CMD_INTEL_H__
      8#define __VENDOR_CMD_INTEL_H__
      9
     10#define INTEL_OUI	0x001735
     11
     12/**
     13 * enum iwl_mvm_vendor_cmd - supported vendor commands
     14 * @IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO: reports CSME connection info.
     15 * @IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP: asks for ownership on the device.
     16 *	This is useful when the CSME firmware owns the device and the kernel
     17 *	wants to use it. In case the CSME firmware has no connection active the
     18 *	kernel will manage on its own to get ownership of the device.
     19 *	When the CSME firmware has an active connection, the user space
     20 *	involvement is required. The kernel will assert the RFKILL signal with
     21 *	the "device not owned" reason so that nobody can touch the device. Then
     22 *	the user space can run the following flow to be able to get connected
     23 *	to the very same AP the CSME firmware is currently connected to:
     24 *
     25 *	1) The user space (NetworkManager) boots and sees that the device is
     26 *	    in RFKILL because the host doesn't own the device
     27 *	2) The user space asks the kernel what AP the CSME firmware is
     28 *	   connected to (with %IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO)
     29 *	3) The user space checks if it has a profile that matches the reply
     30 *	   from the CSME firmware
     31 *	4) The user space installs a network to the wpa_supplicant with a
     32 *	   specific BSSID and a specific frequency
     33 *	5) The user space prevents any type of full scan
     34 *	6) The user space asks iwlmei to request ownership on the device (with
     35 *	   this command)
     36 *	7) iwlmei requests ownership from the CSME firmware
     37 *	8) The CSME firmware grants ownership
     38 *	9) iwlmei tells iwlwifi to lift the RFKILL
     39 *	10) RFKILL OFF is reported to user space
     40 *	11) The host boots the device, loads the firwmare, and connects to a
     41 *	    specific BSSID without scanning including IP as fast as it can
     42 *	12) The host reports to the CSME firmware that there is a connection
     43 *	13) The TCP connection is preserved and the host has connectivity
     44 *
     45 * @IWL_MVM_VENDOR_CMD_ROAMING_FORBIDDEN_EVENT: notifies if roaming is allowed.
     46 *	It contains a &IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN and a
     47 *	&IWL_MVM_VENDOR_ATTR_VIF_ADDR attributes.
     48 */
     49
     50enum iwl_mvm_vendor_cmd {
     51	IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO			= 0x2d,
     52	IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP			= 0x30,
     53	IWL_MVM_VENDOR_CMD_ROAMING_FORBIDDEN_EVENT		= 0x32,
     54};
     55
     56enum iwl_vendor_auth_akm_mode {
     57	IWL_VENDOR_AUTH_OPEN,
     58	IWL_VENDOR_AUTH_RSNA = 0x6,
     59	IWL_VENDOR_AUTH_RSNA_PSK,
     60	IWL_VENDOR_AUTH_SAE = 0x9,
     61	IWL_VENDOR_AUTH_MAX,
     62};
     63
     64/**
     65 * enum iwl_mvm_vendor_attr - attributes used in vendor commands
     66 * @__IWL_MVM_VENDOR_ATTR_INVALID: attribute 0 is invalid
     67 * @IWL_MVM_VENDOR_ATTR_VIF_ADDR: interface MAC address
     68 * @IWL_MVM_VENDOR_ATTR_ADDR: MAC address
     69 * @IWL_MVM_VENDOR_ATTR_SSID: SSID (binary attribute, 0..32 octets)
     70 * @IWL_MVM_VENDOR_ATTR_STA_CIPHER: the cipher to use for the station with the
     71 *	mac address specified in &IWL_MVM_VENDOR_ATTR_ADDR.
     72 * @IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN: u8 attribute. Indicates whether
     73 *	roaming is forbidden or not. Value 1 means roaming is forbidden,
     74 *	0 mean roaming is allowed.
     75 * @IWL_MVM_VENDOR_ATTR_AUTH_MODE: u32 attribute. Authentication mode type
     76 *	as specified in &enum iwl_vendor_auth_akm_mode.
     77 * @IWL_MVM_VENDOR_ATTR_CHANNEL_NUM: u8 attribute. Contains channel number.
     78 * @IWL_MVM_VENDOR_ATTR_BAND: u8 attribute.
     79 *	0 for 2.4 GHz band, 1 for 5.2GHz band and 2 for 6GHz band.
     80 * @IWL_MVM_VENDOR_ATTR_COLLOC_CHANNEL: u32 attribute. Channel number of
     81 *	collocated AP. Relevant for 6GHz AP info.
     82 * @IWL_MVM_VENDOR_ATTR_COLLOC_ADDR: MAC address of a collocated AP.
     83 *	Relevant for 6GHz AP info.
     84 *
     85 * @NUM_IWL_MVM_VENDOR_ATTR: number of vendor attributes
     86 * @MAX_IWL_MVM_VENDOR_ATTR: highest vendor attribute number
     87
     88 */
     89enum iwl_mvm_vendor_attr {
     90	__IWL_MVM_VENDOR_ATTR_INVALID				= 0x00,
     91	IWL_MVM_VENDOR_ATTR_VIF_ADDR				= 0x02,
     92	IWL_MVM_VENDOR_ATTR_ADDR				= 0x0a,
     93	IWL_MVM_VENDOR_ATTR_SSID				= 0x3d,
     94	IWL_MVM_VENDOR_ATTR_STA_CIPHER				= 0x51,
     95	IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN			= 0x64,
     96	IWL_MVM_VENDOR_ATTR_AUTH_MODE				= 0x65,
     97	IWL_MVM_VENDOR_ATTR_CHANNEL_NUM				= 0x66,
     98	IWL_MVM_VENDOR_ATTR_BAND				= 0x69,
     99	IWL_MVM_VENDOR_ATTR_COLLOC_CHANNEL			= 0x70,
    100	IWL_MVM_VENDOR_ATTR_COLLOC_ADDR				= 0x71,
    101
    102	NUM_IWL_MVM_VENDOR_ATTR,
    103	MAX_IWL_MVM_VENDOR_ATTR = NUM_IWL_MVM_VENDOR_ATTR - 1,
    104};
    105
    106#endif /* __VENDOR_CMD_INTEL_H__ */