Une bibliothèque, appelée `libipq', est fournie pour gérer les paquets en userspace. Il n'y a pas de documentation pour celle-ci sous forme de pages man. Vous devez compiler et installer les composant de développement de iptables :
make install-devel
ensuite, aller voir libipq(3).
Vous pouvez être intéressé par les bindings Perl pour libipq, `Perlipq', qui sont disponibles sur le site http://www.intercode.com.au/jmorris/perlipq/. Les bindings eux-même sont un exemple d'utilisation de cette bibliothèque.
D'autre exemples d'utilisation sont :
Ça veut dire que la socket Netlink coté noyau n'a plus d'espace mémoire; le programme en userspace n'est pas capable de gérer la quantité de données délivrées par le noyau.
Est-il possible d'agrandir ces tampons de mémoire noyau pour ne plus avoir ce problème ?
Oui, ce sont des sockets Netlink standards, et vous pouvez régler la taille de leur tampon de réception via /proc/sys/net/core, sysctl ou en utilisant l'option de socket SO_RCVBUF sur le descripteur de fichier.
Vous pouvez aussi faire en sorte que votre application lise les données reçues aussi vite que possible. Si vous n'avez pas besoin du paquet complet, essayez de moins copier vers le userspace (voir ipq_set_mode(3)).
L'équipe centrale de Netfilter conserve un fichier `TODO' (`à-faire') où elle liste tout ce qu'il reste à faire/changer. Vous pouvez retrouver cette liste par anonymous CVS, et les instructions sont sur le site de netfilter.
Si vous voulez le publier, envoyez le à la liste de diffusion netfilter-devel. Les instructions pour s'abonner se trouvent à cette adresse: http://lists.netfilter.org/mailman/listinfo/netfilter-devel.
Le meilleur moyen d'envoyer un patch est de suivre les consignes suivantes :
Si vous avez écrit une nouvelle extension, ou ajouté des nouvelles options à une vieille extension, une bonne habitude à prendre est de mettre à jour le netfilter-extension-HOWTO pour inclure ces changements, ou pour inclure une description des nouvelles fonctionnalités offertes. De plus, cela attirera plus d'utilisateurs vers votre extension, et vous aurez plus de commentaires en retour en général.