быстрый скремблер для 1Gbit Ethernet - PullRequest
0 голосов
/ 27 декабря 2018

Я должен добавить скремблер для skb-> data (буфер буфера).Когда я пытаюсь закодировать каждый байт в skb-> data, скорость уменьшается в 10 раз.

for (i = 0; i < skb->len; i++){
    skb->data[i] = skb->data[i]^lfsr[i];                   
}

Как быстрее зашифровать skb-> данные?Обновление: Как я могу зашифровать более одного байта за одну итерацию?

1 Ответ

0 голосов
/ 27 декабря 2018

Вы можете удалить разыменование указателя, использовать манипуляцию с памятью на месте и использовать OpenMP для распараллеливания цикла, например:

//Compile with -fopenmp flag
const int len  = skb->len;
auto &data = skb->data;
#pragma omp parallel for simd
for(int i=0;i<len;i++)
    data[i] ^= lfsr[i];                   
...