[net80211] don't bother doing fragmentation if the driver supports fragmentation offload.

Tested:

* ath10k, which does its own fragmentation in firmware.
This commit is contained in:
Adrian Chadd 2017-02-09 23:29:57 +00:00
parent aa36f34d52
commit 43eafd0d1e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=313492

View File

@ -1631,12 +1631,20 @@ ieee80211_encap(struct ieee80211vap *vap, struct ieee80211_node *ni,
__func__);
}
/*
* Check if xmit fragmentation is required.
*
* If the hardware does fragmentation offload, then don't bother
* doing it here.
*/
if (IEEE80211_CONF_FRAG_OFFLOAD(ic))
txfrag = 0;
else
txfrag = (m->m_pkthdr.len > vap->iv_fragthreshold &&
!IEEE80211_IS_MULTICAST(wh->i_addr1) &&
(vap->iv_caps & IEEE80211_C_TXFRAG) &&
(m->m_flags & (M_FF | M_AMPDU_MPDU)) == 0);
/* check if xmit fragmentation is required */
txfrag = (m->m_pkthdr.len > vap->iv_fragthreshold &&
!IEEE80211_IS_MULTICAST(wh->i_addr1) &&
(vap->iv_caps & IEEE80211_C_TXFRAG) &&
(m->m_flags & (M_FF | M_AMPDU_MPDU)) == 0);
if (key != NULL) {
/*
* IEEE 802.1X: send EAPOL frames always in the clear.