瀏覽代碼

wil6210: consider SNAP header in MTU calculations

When encapsulating 802.3 frames into the 802.11 ones,
8-byte SNAP header added to save ethtype. SNAP is part of
the frame body, thus should be counted in MSDU. So,
MTU = MSDU - SNAP

Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Vladimir Kondratiev 10 年之前
父節點
當前提交
4590d8125e
共有 2 個文件被更改,包括 5 次插入1 次删除
  1. 1 1
      drivers/net/wireless/ath/wil6210/main.c
  2. 4 0
      drivers/net/wireless/ath/wil6210/wil6210.h

+ 1 - 1
drivers/net/wireless/ath/wil6210/main.c

@@ -53,7 +53,7 @@ static int mtu_max_set(const char *val, const struct kernel_param *kp)
 	if (ret)
 		return ret;
 
-	if (mtu_max < 68 || mtu_max > IEEE80211_MAX_DATA_LEN_DMG)
+	if (mtu_max < 68 || mtu_max > WIL_MAX_ETH_MTU)
 		ret = -EINVAL;
 
 	return ret;

+ 4 - 0
drivers/net/wireless/ath/wil6210/wil6210.h

@@ -77,6 +77,10 @@ static inline u32 wil_mtu2macbuf(u32 mtu)
 	return ALIGN(mtu + WIL_MAX_MPDU_OVERHEAD, 8);
 }
 
+/* MTU for Ethernet need to take into account 8-byte SNAP header
+ * to be added when encapsulating Ethernet frame into 802.11
+ */
+#define WIL_MAX_ETH_MTU		(IEEE80211_MAX_DATA_LEN_DMG - 8)
 /* Max supported by wil6210 value for interrupt threshold is 5sec. */
 #define WIL6210_ITR_TRSH_MAX (5000000)
 #define WIL6210_ITR_TRSH_DEFAULT	(300) /* usec */