Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * WFA P2P definitions
4 *
5 * Copyright (c) 2001-2002, SSH Communications Security Corp and Jouni Malinen
6 * <jkmaline@cc.hut.fi>
7 * Copyright (c) 2002-2003, Jouni Malinen <jkmaline@cc.hut.fi>
8 * Copyright (c) 2005, Devicescape Software, Inc.
9 * Copyright (c) 2006, Michael Wu <flamingice@sourmilk.net>
10 * Copyright (c) 2013 - 2014 Intel Mobile Communications GmbH
11 * Copyright (c) 2016 - 2017 Intel Deutschland GmbH
12 * Copyright (c) 2018 - 2025 Intel Corporation
13 */
14
15#ifndef LINUX_IEEE80211_P2P_H
16#define LINUX_IEEE80211_P2P_H
17
18#include <linux/types.h>
19/*
20 * Peer-to-Peer IE attribute related definitions.
21 */
22/*
23 * enum ieee80211_p2p_attr_id - identifies type of peer-to-peer attribute.
24 */
25enum ieee80211_p2p_attr_id {
26 IEEE80211_P2P_ATTR_STATUS = 0,
27 IEEE80211_P2P_ATTR_MINOR_REASON,
28 IEEE80211_P2P_ATTR_CAPABILITY,
29 IEEE80211_P2P_ATTR_DEVICE_ID,
30 IEEE80211_P2P_ATTR_GO_INTENT,
31 IEEE80211_P2P_ATTR_GO_CONFIG_TIMEOUT,
32 IEEE80211_P2P_ATTR_LISTEN_CHANNEL,
33 IEEE80211_P2P_ATTR_GROUP_BSSID,
34 IEEE80211_P2P_ATTR_EXT_LISTEN_TIMING,
35 IEEE80211_P2P_ATTR_INTENDED_IFACE_ADDR,
36 IEEE80211_P2P_ATTR_MANAGABILITY,
37 IEEE80211_P2P_ATTR_CHANNEL_LIST,
38 IEEE80211_P2P_ATTR_ABSENCE_NOTICE,
39 IEEE80211_P2P_ATTR_DEVICE_INFO,
40 IEEE80211_P2P_ATTR_GROUP_INFO,
41 IEEE80211_P2P_ATTR_GROUP_ID,
42 IEEE80211_P2P_ATTR_INTERFACE,
43 IEEE80211_P2P_ATTR_OPER_CHANNEL,
44 IEEE80211_P2P_ATTR_INVITE_FLAGS,
45 /* 19 - 220: Reserved */
46 IEEE80211_P2P_ATTR_VENDOR_SPECIFIC = 221,
47
48 IEEE80211_P2P_ATTR_MAX
49};
50
51/* Notice of Absence attribute - described in P2P spec 4.1.14 */
52/* Typical max value used here */
53#define IEEE80211_P2P_NOA_DESC_MAX 4
54
55struct ieee80211_p2p_noa_desc {
56 u8 count;
57 __le32 duration;
58 __le32 interval;
59 __le32 start_time;
60} __packed;
61
62struct ieee80211_p2p_noa_attr {
63 u8 index;
64 u8 oppps_ctwindow;
65 struct ieee80211_p2p_noa_desc desc[IEEE80211_P2P_NOA_DESC_MAX];
66} __packed;
67
68#define IEEE80211_P2P_OPPPS_ENABLE_BIT BIT(7)
69#define IEEE80211_P2P_OPPPS_CTWINDOW_MASK 0x7F
70
71#endif /* LINUX_IEEE80211_P2P_H */