|
@@ -439,48 +439,3 @@ ieee80211softmac_send_mgt_frame(struct ieee80211softmac_device *mac,
|
|
|
kfree(pkt);
|
|
|
return 0;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-/* Create an rts/cts frame */
|
|
|
-static u32
|
|
|
-ieee80211softmac_rts_cts(struct ieee80211_hdr_2addr **pkt,
|
|
|
- struct ieee80211softmac_device *mac, struct ieee80211softmac_network *net,
|
|
|
- u32 type)
|
|
|
-{
|
|
|
- /* Allocate Packet */
|
|
|
- (*pkt) = kmalloc(IEEE80211_2ADDR_LEN, GFP_ATOMIC);
|
|
|
- memset(*pkt, 0, IEEE80211_2ADDR_LEN);
|
|
|
- if((*pkt) == NULL)
|
|
|
- return 0;
|
|
|
- ieee80211softmac_hdr_2addr(mac, (*pkt), type, net->bssid);
|
|
|
- return IEEE80211_2ADDR_LEN;
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-/* Sends a control packet */
|
|
|
-static int
|
|
|
-ieee80211softmac_send_ctl_frame(struct ieee80211softmac_device *mac,
|
|
|
- struct ieee80211softmac_network *net, u32 type, u32 arg)
|
|
|
-{
|
|
|
- void *pkt = NULL;
|
|
|
- u32 pkt_size = 0;
|
|
|
-
|
|
|
- switch(type) {
|
|
|
- case IEEE80211_STYPE_RTS:
|
|
|
- case IEEE80211_STYPE_CTS:
|
|
|
- pkt_size = ieee80211softmac_rts_cts((struct ieee80211_hdr_2addr **)(&pkt), mac, net, type);
|
|
|
- break;
|
|
|
- default:
|
|
|
- printkl(KERN_DEBUG PFX "Unsupported Control Frame type: %i\n", type);
|
|
|
- return -EINVAL;
|
|
|
- }
|
|
|
-
|
|
|
- if(pkt_size == 0)
|
|
|
- return -ENOMEM;
|
|
|
-
|
|
|
- /* Send the packet to the ieee80211 layer for tx */
|
|
|
- ieee80211_tx_frame(mac->ieee, (struct ieee80211_hdr *) pkt, pkt_size);
|
|
|
-
|
|
|
- kfree(pkt);
|
|
|
- return 0;
|
|
|
-}
|