Lines Matching defs:beacon

86 		 * is an AP, and the beacon interval of the AP is a multiple or
87 * divisor of the beacon interval of the client, the same TSF
112 * The new interface is AP/GO, so if its beacon interval is a
113 * multiple or a divisor of the beacon interval of an existing
603 * more beacon intervals happen until the DTIM TBTT. Therefore
788 /* TODO: Assumes that the beacon id == mac context id */
849 u8 *beacon, u32 frame_size)
852 struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)beacon;
855 * variable-length part of the beacon. */
856 tim_idx = mgmt->u.beacon.variable - beacon;
858 /* Parse variable-length elements of beacon to find WLAN_EID_TIM */
860 (beacon[tim_idx] != WLAN_EID_TIM))
861 tim_idx += beacon[tim_idx+1] + 2;
864 if ((tim_idx < (frame_size - 1)) && (beacon[tim_idx] == WLAN_EID_TIM)) {
866 *tim_size = cpu_to_le32((u32)beacon[tim_idx + 1]);
868 IWL_WARN(mvm, "Unable to find TIM Element in beacon\n");
966 /* if beacon rate was configured try using it */
978 struct sk_buff *beacon,
986 info = IEEE80211_SKB_CB(beacon);
989 tx_params->len = cpu_to_le16((u16)beacon->len);
994 iwl_mvm_bt_coex_tx_prio(mvm, (void *)beacon->data, info, 0) <<
1017 struct sk_buff *beacon,
1028 cmd.len[1] = beacon->len;
1029 cmd.data[1] = beacon->data;
1037 struct sk_buff *beacon)
1042 iwl_mvm_mac_ctxt_set_tx(mvm, vif, beacon, &beacon_cmd.tx);
1049 beacon->data, beacon->len);
1051 return iwl_mvm_mac_ctxt_send_beacon_cmd(mvm, beacon, &beacon_cmd,
1057 struct sk_buff *beacon)
1062 iwl_mvm_mac_ctxt_set_tx(mvm, vif, beacon, &beacon_cmd.tx);
1069 beacon->data, beacon->len);
1072 cpu_to_le32(iwl_find_ie_offset(beacon->data,
1074 beacon->len));
1076 cpu_to_le32(iwl_find_ie_offset(beacon->data,
1078 beacon->len));
1080 return iwl_mvm_mac_ctxt_send_beacon_cmd(mvm, beacon, &beacon_cmd,
1100 struct sk_buff *beacon,
1104 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(beacon);
1129 beacon_cmd.byte_cnt = cpu_to_le16((u16)beacon->len);
1143 beacon->data, beacon->len);
1146 cpu_to_le32(iwl_find_ie_offset(beacon->data,
1148 beacon->len));
1150 cpu_to_le32(iwl_find_ie_offset(beacon->data,
1152 beacon->len));
1157 cpu_to_le32(iwl_find_ie_offset(beacon->data,
1159 beacon->len));
1161 return iwl_mvm_mac_ctxt_send_beacon_cmd(mvm, beacon, &beacon_cmd,
1167 struct sk_buff *beacon,
1170 if (WARN_ON(!beacon))
1178 return iwl_mvm_mac_ctxt_send_beacon_v6(mvm, vif, beacon);
1182 return iwl_mvm_mac_ctxt_send_beacon_v9(mvm, vif, beacon,
1185 return iwl_mvm_mac_ctxt_send_beacon_v7(mvm, vif, beacon);
1188 /* The beacon template for the AP/GO/IBSS has changed and needs update */
1193 struct sk_buff *beacon;
1199 beacon = ieee80211_beacon_get_template(mvm->hw, vif, NULL,
1201 if (!beacon)
1206 dev_kfree_skb(beacon);
1211 ret = iwl_mvm_mac_ctxt_send_beacon(mvm, vif, beacon, link_conf);
1212 dev_kfree_skb(beacon);
1297 * Only set the beacon time when the MAC is being added, when we
1324 /* TODO: Assume that the beacon id == mac context id */
1469 /* Don't start to countdown from a failed beacon */
1505 struct iwl_extended_beacon_notif *beacon = (void *)pkt->data;
1514 mvm->ap_last_beacon_gp2 = le32_to_cpu(beacon->gp2);
1527 "beacon status %#x retries:%d tsf:0x%016llX gp2:0x%X rate:%d\n",
1529 le64_to_cpu(beacon->tsf),
1533 if (unlikely(pkt_len < sizeof(*beacon)))
1536 mvm->ibss_manager = beacon->ibss_mgr_status != 0;
1537 status = le32_to_cpu(beacon->status) & TX_STATUS_MSK;
1539 "beacon status %#x tsf:0x%016llX gp2:0x%X\n",
1540 status, le64_to_cpu(beacon->tsf),
1558 * stations. If this is the first beacon (the timeout wasn't
1624 IWL_DEBUG_INFO(mvm, "missed beacon mac_type=%u,\n", mac_type);