The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/dev/iwlwifi/fw/api/tdls.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
    2 /*
    3  * Copyright (C) 2012-2014, 2018 Intel Corporation
    4  * Copyright (C) 2013-2015 Intel Mobile Communications GmbH
    5  * Copyright (C) 2016-2017 Intel Deutschland GmbH
    6  */
    7 #ifndef __iwl_fw_api_tdls_h__
    8 #define __iwl_fw_api_tdls_h__
    9 
   10 #include "fw/api/tx.h"
   11 #include "fw/api/phy-ctxt.h"
   12 
   13 #define IWL_MVM_TDLS_STA_COUNT  4
   14 
   15 /* Type of TDLS request */
   16 enum iwl_tdls_channel_switch_type {
   17         TDLS_SEND_CHAN_SW_REQ = 0,
   18         TDLS_SEND_CHAN_SW_RESP_AND_MOVE_CH,
   19         TDLS_MOVE_CH,
   20 }; /* TDLS_STA_CHANNEL_SWITCH_CMD_TYPE_API_E_VER_1 */
   21 
   22 /**
   23  * struct iwl_tdls_channel_switch_timing - Switch timing in TDLS channel-switch
   24  * @frame_timestamp: GP2 timestamp of channel-switch request/response packet
   25  *      received from peer
   26  * @max_offchan_duration: What amount of microseconds out of a DTIM is given
   27  *      to the TDLS off-channel communication. For instance if the DTIM is
   28  *      200TU and the TDLS peer is to be given 25% of the time, the value
   29  *      given will be 50TU, or 50 * 1024 if translated into microseconds.
   30  * @switch_time: switch time the peer sent in its channel switch timing IE
   31  * @switch_timeout: switch timeout the peer sent in its channel switch timing IE
   32  */
   33 struct iwl_tdls_channel_switch_timing {
   34         __le32 frame_timestamp; /* GP2 time of peer packet Rx */
   35         __le32 max_offchan_duration; /* given in micro-seconds */
   36         __le32 switch_time; /* given in micro-seconds */
   37         __le32 switch_timeout; /* given in micro-seconds */
   38 } __packed; /* TDLS_STA_CHANNEL_SWITCH_TIMING_DATA_API_S_VER_1 */
   39 
   40 #define IWL_TDLS_CH_SW_FRAME_MAX_SIZE 200
   41 
   42 /**
   43  * struct iwl_tdls_channel_switch_frame - TDLS channel switch frame template
   44  *
   45  * A template representing a TDLS channel-switch request or response frame
   46  *
   47  * @switch_time_offset: offset to the channel switch timing IE in the template
   48  * @tx_cmd: Tx parameters for the frame
   49  * @data: frame data
   50  */
   51 struct iwl_tdls_channel_switch_frame {
   52         __le32 switch_time_offset;
   53         struct iwl_tx_cmd tx_cmd;
   54         u8 data[IWL_TDLS_CH_SW_FRAME_MAX_SIZE];
   55 } __packed; /* TDLS_STA_CHANNEL_SWITCH_FRAME_API_S_VER_1 */
   56 
   57 /**
   58  * struct iwl_tdls_channel_switch_cmd_tail - tail of iwl_tdls_channel_switch_cmd
   59  *
   60  * @timing: timing related data for command
   61  * @frame: channel-switch request/response template, depending to switch_type
   62  */
   63 struct iwl_tdls_channel_switch_cmd_tail {
   64         struct iwl_tdls_channel_switch_timing timing;
   65         struct iwl_tdls_channel_switch_frame frame;
   66 } __packed;
   67 
   68 /**
   69  * struct iwl_tdls_channel_switch_cmd - TDLS channel switch command
   70  *
   71  * The command is sent to initiate a channel switch and also in response to
   72  * incoming TDLS channel-switch request/response packets from remote peers.
   73  *
   74  * @switch_type: see &enum iwl_tdls_channel_switch_type
   75  * @peer_sta_id: station id of TDLS peer
   76  * @ci: channel we switch to
   77  * @tail: command tail
   78  */
   79 struct iwl_tdls_channel_switch_cmd {
   80         u8 switch_type;
   81         __le32 peer_sta_id;
   82         struct iwl_fw_channel_info ci;
   83         struct iwl_tdls_channel_switch_cmd_tail tail;
   84 } __packed; /* TDLS_STA_CHANNEL_SWITCH_CMD_API_S_VER_1 */
   85 
   86 /**
   87  * struct iwl_tdls_channel_switch_notif - TDLS channel switch start notification
   88  *
   89  * @status: non-zero on success
   90  * @offchannel_duration: duration given in microseconds
   91  * @sta_id: peer currently performing the channel-switch with
   92  */
   93 struct iwl_tdls_channel_switch_notif {
   94         __le32 status;
   95         __le32 offchannel_duration;
   96         __le32 sta_id;
   97 } __packed; /* TDLS_STA_CHANNEL_SWITCH_NTFY_API_S_VER_1 */
   98 
   99 /**
  100  * struct iwl_tdls_sta_info - TDLS station info
  101  *
  102  * @sta_id: station id of the TDLS peer
  103  * @tx_to_peer_tid: TID reserved vs. the peer for FW based Tx
  104  * @tx_to_peer_ssn: initial SSN the FW should use for Tx on its TID vs the peer
  105  * @is_initiator: 1 if the peer is the TDLS link initiator, 0 otherwise
  106  */
  107 struct iwl_tdls_sta_info {
  108         u8 sta_id;
  109         u8 tx_to_peer_tid;
  110         __le16 tx_to_peer_ssn;
  111         __le32 is_initiator;
  112 } __packed; /* TDLS_STA_INFO_VER_1 */
  113 
  114 /**
  115  * struct iwl_tdls_config_cmd - TDLS basic config command
  116  *
  117  * @id_and_color: MAC id and color being configured
  118  * @tdls_peer_count: amount of currently connected TDLS peers
  119  * @tx_to_ap_tid: TID reverved vs. the AP for FW based Tx
  120  * @tx_to_ap_ssn: initial SSN the FW should use for Tx on its TID vs. the AP
  121  * @sta_info: per-station info. Only the first tdls_peer_count entries are set
  122  * @pti_req_data_offset: offset of network-level data for the PTI template
  123  * @pti_req_tx_cmd: Tx parameters for PTI request template
  124  * @pti_req_template: PTI request template data
  125  */
  126 struct iwl_tdls_config_cmd {
  127         __le32 id_and_color; /* mac id and color */
  128         u8 tdls_peer_count;
  129         u8 tx_to_ap_tid;
  130         __le16 tx_to_ap_ssn;
  131         struct iwl_tdls_sta_info sta_info[IWL_MVM_TDLS_STA_COUNT];
  132 
  133         __le32 pti_req_data_offset;
  134         struct iwl_tx_cmd pti_req_tx_cmd;
  135         u8 pti_req_template[0];
  136 } __packed; /* TDLS_CONFIG_CMD_API_S_VER_1 */
  137 
  138 /**
  139  * struct iwl_tdls_config_sta_info_res - TDLS per-station config information
  140  *
  141  * @sta_id: station id of the TDLS peer
  142  * @tx_to_peer_last_seq: last sequence number used by FW during FW-based Tx to
  143  *      the peer
  144  */
  145 struct iwl_tdls_config_sta_info_res {
  146         __le16 sta_id;
  147         __le16 tx_to_peer_last_seq;
  148 } __packed; /* TDLS_STA_INFO_RSP_VER_1 */
  149 
  150 /**
  151  * struct iwl_tdls_config_res - TDLS config information from FW
  152  *
  153  * @tx_to_ap_last_seq: last sequence number used by FW during FW-based Tx to AP
  154  * @sta_info: per-station TDLS config information
  155  */
  156 struct iwl_tdls_config_res {
  157         __le32 tx_to_ap_last_seq;
  158         struct iwl_tdls_config_sta_info_res sta_info[IWL_MVM_TDLS_STA_COUNT];
  159 } __packed; /* TDLS_CONFIG_RSP_API_S_VER_1 */
  160 
  161 #endif /* __iwl_fw_api_tdls_h__ */

Cache object: c789ddeb09cdef68b121fd6292c2c39e


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.