mac80211: move frame TX function
The ieee80211_sta_tx function isn't MLME code any more, it's getting used by a lot of code. Move it to utils and rename it to ieee80211_tx_skb. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
759ef3eb1e
commit
e50db65c0d
|
@ -113,7 +113,7 @@ static void ieee80211_send_addba_request(struct ieee80211_sub_if_data *sdata,
|
|||
mgmt->u.action.u.addba_req.start_seq_num =
|
||||
cpu_to_le16(start_seq_num << 4);
|
||||
|
||||
ieee80211_sta_tx(sdata, skb, 0);
|
||||
ieee80211_tx_skb(sdata, skb, 0);
|
||||
}
|
||||
|
||||
static void ieee80211_send_addba_resp(struct ieee80211_sub_if_data *sdata, u8 *da, u16 tid,
|
||||
|
@ -159,7 +159,7 @@ static void ieee80211_send_addba_resp(struct ieee80211_sub_if_data *sdata, u8 *d
|
|||
mgmt->u.action.u.addba_resp.timeout = cpu_to_le16(timeout);
|
||||
mgmt->u.action.u.addba_resp.status = cpu_to_le16(status);
|
||||
|
||||
ieee80211_sta_tx(sdata, skb, 0);
|
||||
ieee80211_tx_skb(sdata, skb, 0);
|
||||
}
|
||||
|
||||
static void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata,
|
||||
|
@ -202,7 +202,7 @@ static void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata,
|
|||
mgmt->u.action.u.delba.params = cpu_to_le16(params);
|
||||
mgmt->u.action.u.delba.reason_code = cpu_to_le16(reason_code);
|
||||
|
||||
ieee80211_sta_tx(sdata, skb, 0);
|
||||
ieee80211_tx_skb(sdata, skb, 0);
|
||||
}
|
||||
|
||||
void ieee80211_send_bar(struct ieee80211_sub_if_data *sdata, u8 *ra, u16 tid, u16 ssn)
|
||||
|
@ -231,7 +231,7 @@ void ieee80211_send_bar(struct ieee80211_sub_if_data *sdata, u8 *ra, u16 tid, u1
|
|||
bar->control = cpu_to_le16(bar_control);
|
||||
bar->start_seq_num = cpu_to_le16(ssn);
|
||||
|
||||
ieee80211_sta_tx(sdata, skb, 0);
|
||||
ieee80211_tx_skb(sdata, skb, 0);
|
||||
}
|
||||
|
||||
void ieee80211_sta_stop_rx_ba_session(struct ieee80211_sub_if_data *sdata, u8 *ra, u16 tid,
|
||||
|
|
|
@ -912,8 +912,6 @@ u32 ieee80211_reset_erp_info(struct ieee80211_sub_if_data *sdata);
|
|||
u64 ieee80211_sta_get_rates(struct ieee80211_local *local,
|
||||
struct ieee802_11_elems *elems,
|
||||
enum ieee80211_band band);
|
||||
void ieee80211_sta_tx(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb,
|
||||
int encrypt);
|
||||
void ieee80211_send_probe_req(struct ieee80211_sub_if_data *sdata, u8 *dst,
|
||||
u8 *ssid, size_t ssid_len);
|
||||
void ieee802_11_parse_elems(u8 *start, size_t len,
|
||||
|
@ -1000,6 +998,8 @@ int ieee80211_frame_duration(struct ieee80211_local *local, size_t len,
|
|||
void mac80211_ev_michael_mic_failure(struct ieee80211_sub_if_data *sdata, int keyidx,
|
||||
struct ieee80211_hdr *hdr);
|
||||
void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata);
|
||||
void ieee80211_tx_skb(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb,
|
||||
int encrypt);
|
||||
|
||||
#ifdef CONFIG_MAC80211_NOINLINE
|
||||
#define debug_noinline noinline
|
||||
|
|
|
@ -149,7 +149,7 @@ static int mesh_path_sel_frame_tx(enum mpath_frame_type action, u8 flags,
|
|||
pos += ETH_ALEN;
|
||||
memcpy(pos, &dst_dsn, 4);
|
||||
|
||||
ieee80211_sta_tx(sdata, skb, 0);
|
||||
ieee80211_tx_skb(sdata, skb, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -198,7 +198,7 @@ int mesh_path_error_tx(u8 *dst, __le32 dst_dsn, u8 *ra,
|
|||
pos += ETH_ALEN;
|
||||
memcpy(pos, &dst_dsn, 4);
|
||||
|
||||
ieee80211_sta_tx(sdata, skb, 0);
|
||||
ieee80211_tx_skb(sdata, skb, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -217,7 +217,7 @@ static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata,
|
|||
memcpy(pos, &reason, 2);
|
||||
}
|
||||
|
||||
ieee80211_sta_tx(sdata, skb, 0);
|
||||
ieee80211_tx_skb(sdata, skb, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -96,20 +96,6 @@ static int ieee80211_compatible_rates(struct ieee80211_sta_bss *bss,
|
|||
}
|
||||
|
||||
/* frame sending functions */
|
||||
void ieee80211_sta_tx(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb,
|
||||
int encrypt)
|
||||
{
|
||||
skb->dev = sdata->local->mdev;
|
||||
skb_set_mac_header(skb, 0);
|
||||
skb_set_network_header(skb, 0);
|
||||
skb_set_transport_header(skb, 0);
|
||||
|
||||
skb->iif = sdata->dev->ifindex;
|
||||
skb->do_not_encrypt = !encrypt;
|
||||
|
||||
dev_queue_xmit(skb);
|
||||
}
|
||||
|
||||
static void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata,
|
||||
struct ieee80211_if_sta *ifsta,
|
||||
int transaction, u8 *extra, size_t extra_len,
|
||||
|
@ -144,7 +130,7 @@ static void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata,
|
|||
if (extra)
|
||||
memcpy(skb_put(skb, extra_len), extra, extra_len);
|
||||
|
||||
ieee80211_sta_tx(sdata, skb, encrypt);
|
||||
ieee80211_tx_skb(sdata, skb, encrypt);
|
||||
}
|
||||
|
||||
void ieee80211_send_probe_req(struct ieee80211_sub_if_data *sdata, u8 *dst,
|
||||
|
@ -204,7 +190,7 @@ void ieee80211_send_probe_req(struct ieee80211_sub_if_data *sdata, u8 *dst,
|
|||
*pos = rate->bitrate / 5;
|
||||
}
|
||||
|
||||
ieee80211_sta_tx(sdata, skb, 0);
|
||||
ieee80211_tx_skb(sdata, skb, 0);
|
||||
}
|
||||
|
||||
static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata,
|
||||
|
@ -412,7 +398,7 @@ static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata,
|
|||
if (ifsta->assocreq_ies)
|
||||
memcpy(ifsta->assocreq_ies, ies, ifsta->assocreq_ies_len);
|
||||
|
||||
ieee80211_sta_tx(sdata, skb, 0);
|
||||
ieee80211_tx_skb(sdata, skb, 0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -442,7 +428,7 @@ static void ieee80211_send_deauth_disassoc(struct ieee80211_sub_if_data *sdata,
|
|||
/* u.deauth.reason_code == u.disassoc.reason_code */
|
||||
mgmt->u.deauth.reason_code = cpu_to_le16(reason);
|
||||
|
||||
ieee80211_sta_tx(sdata, skb, 0);
|
||||
ieee80211_tx_skb(sdata, skb, 0);
|
||||
}
|
||||
|
||||
/* MLME */
|
||||
|
@ -1796,7 +1782,7 @@ static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata,
|
|||
printk(KERN_DEBUG "%s: Sending ProbeResp to %s\n",
|
||||
sdata->dev->name, print_mac(mac, resp->da));
|
||||
#endif /* CONFIG_MAC80211_IBSS_DEBUG */
|
||||
ieee80211_sta_tx(sdata, skb, 0);
|
||||
ieee80211_tx_skb(sdata, skb, 0);
|
||||
}
|
||||
|
||||
static void ieee80211_rx_mgmt_action(struct ieee80211_sub_if_data *sdata,
|
||||
|
|
|
@ -421,7 +421,7 @@ static void ieee80211_send_nullfunc(struct ieee80211_local *local,
|
|||
memcpy(nullfunc->addr2, sdata->dev->dev_addr, ETH_ALEN);
|
||||
memcpy(nullfunc->addr3, sdata->u.sta.bssid, ETH_ALEN);
|
||||
|
||||
ieee80211_sta_tx(sdata, skb, 0);
|
||||
ieee80211_tx_skb(sdata, skb, 0);
|
||||
}
|
||||
|
||||
static void ieee80211_restart_sta_timer(struct ieee80211_sub_if_data *sdata)
|
||||
|
|
|
@ -65,7 +65,7 @@ static void ieee80211_send_refuse_measurement_request(struct ieee80211_sub_if_da
|
|||
IEEE80211_SPCT_MSR_RPRT_MODE_REFUSED;
|
||||
msr_report->u.action.u.measurement.msr_elem.type = request_ie->type;
|
||||
|
||||
ieee80211_sta_tx(sdata, skb, 0);
|
||||
ieee80211_tx_skb(sdata, skb, 0);
|
||||
}
|
||||
|
||||
void ieee80211_process_measurement_req(struct ieee80211_sub_if_data *sdata,
|
||||
|
|
|
@ -598,3 +598,17 @@ void ieee80211_set_wmm_default(struct ieee80211_sub_if_data *sdata)
|
|||
for (i = 0; i < local_to_hw(local)->queues; i++)
|
||||
local->ops->conf_tx(local_to_hw(local), i, &qparam);
|
||||
}
|
||||
|
||||
void ieee80211_tx_skb(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb,
|
||||
int encrypt)
|
||||
{
|
||||
skb->dev = sdata->local->mdev;
|
||||
skb_set_mac_header(skb, 0);
|
||||
skb_set_network_header(skb, 0);
|
||||
skb_set_transport_header(skb, 0);
|
||||
|
||||
skb->iif = sdata->dev->ifindex;
|
||||
skb->do_not_encrypt = !encrypt;
|
||||
|
||||
dev_queue_xmit(skb);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue