staging: rtl8192e: Replace drivers rtllib_crypt_ccmp_... with lib80211_crypt_...

Philipp Hortmann posted 1 patch 2 years, 8 months ago
staging: rtl8192e: Replace drivers rtllib_crypt_ccmp_... with lib80211_crypt_...
Posted by Philipp Hortmann 2 years, 8 months ago
Hi,

it is possible to remove three modules from the staging area by replacing:
rtllib_crypt_ccmp with lib80211_crypt_ccmp
rtllib_crypt_tkip with lib80211_crypt_tkip
rtllib_crypt_wep with lib80211_crypt_wep

The following issues arise:
- rtl8192e needs to be switched to software encryption or
   lib80211_crypt_... needs to be extended with hardware encryption.
- Performance is dropping on my computer from 12,5MB/s to 1,5MB/s when
   switching to software encryption.(it does not really change if I use
   rtllib_crypt_ccmp or lib80211_crypt_ccmp)
- Fix: rtllib_rx_decrypt: decrypt frame error that occure sometimes on
   lib80211_crypt_ccmp

Below the changes on the driver that made use of lib80211_crypt_... 
possible.

So the questions are:
Is it worth the effort or is this going in the wrong direction?
Does it help the kernel community or is it just creating more effort?
Why does LIB80211 not support hardware encryption? Or does it?

Thanks for your support.

Bye Philipp

diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c 
b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c
index 17b70dde7eeb..ef0fa05ff510 100644
--- a/drivers/staging/rtl8192e/rtl8192e/rtl_core.c
+++ b/drivers/staging/rtl8192e/rtl8192e/rtl_core.c
@@ -22,7 +22,7 @@

  #include "rtl_pm.h"

-int hwwep = 1;
+int hwwep = 0;
  static char *ifname = "wlan%d";

  static struct pci_device_id rtl8192_pci_id_tbl[] = {
diff --git a/drivers/staging/rtl8192e/rtllib_wx.c 
b/drivers/staging/rtl8192e/rtllib_wx.c
index 82b537da8b21..0db6e32b5494 100644
--- a/drivers/staging/rtl8192e/rtllib_wx.c
+++ b/drivers/staging/rtl8192e/rtllib_wx.c
@@ -522,16 +522,16 @@ int rtllib_wx_set_encode_ext(struct rtllib_device 
*ieee,
         sec.enabled = 1;
         switch (ext->alg) {
         case IW_ENCODE_ALG_WEP:
-               alg = "R-WEP";
-               module = "rtllib_crypt_wep";
+               alg = "WEP";
+               module = "lib80211_crypt_wep";
                 break;
         case IW_ENCODE_ALG_TKIP:
-               alg = "R-TKIP";
-               module = "rtllib_crypt_tkip";
+               alg = "TKIP";
+               module = "lib80211_crypt_tkip";
                 break;
         case IW_ENCODE_ALG_CCMP:
-               alg = "R-CCMP";
-               module = "rtllib_crypt_ccmp";
+               alg = "CCMP";
+               module = "lib80211_crypt_ccmp";
                 break;
         default:
                 netdev_dbg(ieee->dev, "Unknown crypto alg %d\n", ext->alg);
Re: staging: rtl8192e: Replace drivers rtllib_crypt_ccmp_... with lib80211_crypt_...
Posted by Larry Finger 2 years, 8 months ago
On 5/28/23 01:38, Philipp Hortmann wrote:
> Hi,
> 
> it is possible to remove three modules from the staging area by replacing:
> rtllib_crypt_ccmp with lib80211_crypt_ccmp
> rtllib_crypt_tkip with lib80211_crypt_tkip
> rtllib_crypt_wep with lib80211_crypt_wep
> 
> The following issues arise:
> - rtl8192e needs to be switched to software encryption or
>    lib80211_crypt_... needs to be extended with hardware encryption.
> - Performance is dropping on my computer from 12,5MB/s to 1,5MB/s when
>    switching to software encryption.(it does not really change if I use
>    rtllib_crypt_ccmp or lib80211_crypt_ccmp)
> - Fix: rtllib_rx_decrypt: decrypt frame error that occure sometimes on
>    lib80211_crypt_ccmp
> 
> Below the changes on the driver that made use of lib80211_crypt_... possible.
> 
> So the questions are:
> Is it worth the effort or is this going in the wrong direction?
> Does it help the kernel community or is it just creating more effort?
> Why does LIB80211 not support hardware encryption? Or does it?

I do not know why LIB80211 does not support hardware encryption, but the 
performance hit you report is not acceptable!

Larry