2009-06-10 14 views
1

J'ai besoin de voler quelques SKB dans mon hook NetFilter, et de les conserver pendant un certain temps.y a-t-il une limite pour le nombre de sk_buff dans le noyau?

Y a-t-il une limite dans le noyau concernant le nombre de SKB que je peux utiliser à la fois? Quelles sont les conséquences de l'existence de quelque 100 000 SKB ou plus dans mon module noyau? Je pourrais éviter de copier mes paquets deux fois si je peux avoir beaucoup de SKB.

Cordialement, Denes

Répondre

1

Si vous avez la mémoire aucun problème. La limite est l'espace de données du noyau sur les machines x86 32 bits est normalement limitée à 1G (voir http://kerneltrap.org/node/2450). Réalisez que chaque skb consomme la structure de données skb ainsi que la mémoire qu'il référence. Vous pouvez également utiliser ipqueue pour effectuer le traitement dans l'espace utilisateur (avec plus de mémoire disponible).

Au-dessus du lien mort, dernière version connue mise en cache here