Lines Matching refs:ieee

20 static void deactivate_ba_entry(struct rtllib_device *ieee, struct ba_record *ba)
26 static u8 tx_ts_delete_ba(struct rtllib_device *ieee, struct tx_ts_record *ts)
33 deactivate_ba_entry(ieee, pending_ba);
38 deactivate_ba_entry(ieee, admitted_ba);
44 static u8 rx_ts_delete_ba(struct rtllib_device *ieee, struct rx_ts_record *ts)
50 deactivate_ba_entry(ieee, ba);
66 static struct sk_buff *rtllib_ADDBA(struct rtllib_device *ieee, u8 *dst,
73 u16 len = ieee->tx_headroom + 9;
75 netdev_dbg(ieee->dev, "%s(): frame(%d) sentd to: %pM, ieee->dev:%p\n",
76 __func__, type, dst, ieee->dev);
79 netdev_warn(ieee->dev, "ba is NULL\n");
88 skb_reserve(skb, ieee->tx_headroom);
93 ether_addr_copy(ba_req->addr2, ieee->dev->dev_addr);
95 ether_addr_copy(ba_req->addr3, ieee->current_network.bssid);
126 static struct sk_buff *rtllib_DELBA(struct rtllib_device *ieee, u8 *dst,
134 u16 len = 6 + ieee->tx_headroom;
137 netdev_dbg(ieee->dev, "%s(): reason_code(%d) sentd to: %pM\n",
149 skb_reserve(skb, ieee->tx_headroom);
154 ether_addr_copy(del_ba->addr2, ieee->dev->dev_addr);
155 ether_addr_copy(del_ba->addr3, ieee->current_network.bssid);
176 static void rtllib_send_add_ba_req(struct rtllib_device *ieee, u8 *dst,
181 skb = rtllib_ADDBA(ieee, dst, ba, 0, ACT_ADDBAREQ);
184 softmac_mgmt_xmit(skb, ieee);
186 netdev_dbg(ieee->dev, "Failed to generate ADDBAReq packet.\n");
189 static void rtllib_send_add_ba_rsp(struct rtllib_device *ieee, u8 *dst,
194 skb = rtllib_ADDBA(ieee, dst, ba, status_code, ACT_ADDBARSP);
196 softmac_mgmt_xmit(skb, ieee);
198 netdev_dbg(ieee->dev, "Failed to generate ADDBARsp packet.\n");
201 static void rtllib_send_DELBA(struct rtllib_device *ieee, u8 *dst,
207 skb = rtllib_DELBA(ieee, dst, ba, tx_rx_select, reason_code);
209 softmac_mgmt_xmit(skb, ieee);
211 netdev_dbg(ieee->dev, "Failed to generate DELBA packet.\n");
214 int rtllib_rx_add_ba_req(struct rtllib_device *ieee, struct sk_buff *skb)
226 netdev_warn(ieee->dev, "Invalid skb len in BAREQ(%d / %d)\n",
246 if (!ieee->current_network.qos_data.active ||
247 !ieee->ht_info->current_ht_support ||
248 (ieee->ht_info->iot_action & HT_IOT_ACT_REJECT_ADDBA_REQ)) {
250 netdev_warn(ieee->dev,
252 ieee->current_network.qos_data.active,
253 ieee->ht_info->current_ht_support);
256 if (!rtllib_get_ts(ieee, (struct ts_common_info **)&ts, dst,
259 netdev_warn(ieee->dev, "%s(): can't get TS\n", __func__);
266 netdev_warn(ieee->dev, "%s(): BA Policy is not correct\n",
271 rtllib_flush_rx_ts_pending_pkts(ieee, ts);
273 deactivate_ba_entry(ieee, ba);
279 if (ieee->get_half_nmode_support_by_aps_handler(ieee->dev) ||
280 (ieee->ht_info->iot_action & HT_IOT_ACT_ALLOW_PEER_AGG_ONE_PKT))
286 rtllib_send_add_ba_rsp(ieee, dst, ba, ADDBA_STATUS_SUCCESS);
298 rtllib_send_add_ba_rsp(ieee, dst, &BA, rc);
303 int rtllib_rx_add_ba_rsp(struct rtllib_device *ieee, struct sk_buff *skb)
314 netdev_warn(ieee->dev, "Invalid skb len in BARSP(%d / %d)\n",
328 if (!ieee->current_network.qos_data.active ||
329 !ieee->ht_info->current_ht_support ||
330 !ieee->ht_info->current_ampdu_enable) {
331 netdev_warn(ieee->dev,
333 ieee->current_network.qos_data.active,
334 ieee->ht_info->current_ht_support,
335 ieee->ht_info->current_ampdu_enable);
340 if (!rtllib_get_ts(ieee, (struct ts_common_info **)&ts, dst,
342 netdev_warn(ieee->dev, "%s(): can't get TS\n", __func__);
352 netdev_dbg(ieee->dev, "%s(): ADDBA response already admitted\n",
357 netdev_warn(ieee->dev,
363 netdev_dbg(ieee->dev,
366 deactivate_ba_entry(ieee, pending_ba);
372 deactivate_ba_entry(ieee, admitted_ba);
381 deactivate_ba_entry(ieee, admitted_ba);
397 rtllib_send_DELBA(ieee, dst, &BA, TX_DIR, reason_code);
402 int rtllib_rx_DELBA(struct rtllib_device *ieee, struct sk_buff *skb)
409 netdev_warn(ieee->dev, "Invalid skb len in DELBA(%d / %d)\n",
415 if (!ieee->current_network.qos_data.active ||
416 !ieee->ht_info->current_ht_support) {
417 netdev_warn(ieee->dev,
419 ieee->current_network. qos_data.active,
420 ieee->ht_info->current_ht_support);
435 if (!rtllib_get_ts(ieee, (struct ts_common_info **)&ts, dst,
437 netdev_warn(ieee->dev,
444 rx_ts_delete_ba(ieee, ts);
448 if (!rtllib_get_ts(ieee, (struct ts_common_info **)&ts, dst,
450 netdev_warn(ieee->dev, "%s(): can't get TS for TXTS\n",
459 tx_ts_delete_ba(ieee, ts);
464 void rtllib_ts_init_add_ba(struct rtllib_device *ieee, struct tx_ts_record *ts,
472 deactivate_ba_entry(ieee, ba);
484 rtllib_send_add_ba_req(ieee, ts->ts_common_info.addr, ba);
487 void rtllib_ts_init_del_ba(struct rtllib_device *ieee,
495 if (tx_ts_delete_ba(ieee, ts))
496 rtllib_send_DELBA(ieee, ts_common_info->addr,
504 if (rx_ts_delete_ba(ieee, ts))
505 rtllib_send_DELBA(ieee, ts_common_info->addr,
525 struct rtllib_device *ieee = container_of(ts, struct rtllib_device,
527 tx_ts_delete_ba(ieee, ts);
528 rtllib_send_DELBA(ieee, ts->ts_common_info.addr,
537 struct rtllib_device *ieee = container_of(ts, struct rtllib_device,
540 rx_ts_delete_ba(ieee, ts);
541 rtllib_send_DELBA(ieee, ts->ts_common_info.addr,