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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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);





[Index of Archives]     [Linux Driver Development]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux