
Я захватываю TCP-пакет в функции netif_receive_skb
, я хочу сохранить плейлоад TCP-пакета. мы не можем читать/писать файл в модуле ядра, поэтому сохранение на диске напрямую, может быть, способ?
Это хороший способ или есть другие предложения?
решение1
Вы можете обнаружить, что подход к вашим требованиям с другой стороны удовлетворит ваши потребности.
iptables
имеет -j NFQUEUE
опцию (см. man iptables
), которая позволяет вам ставить в очередь выбранные пакеты для пользовательского пространства. В вашей пользовательской программе было бы тривиально записывать пакеты на диск.
Видетьhttps://home.regit.org/netfilter-en/using-nfqueue-and-libnetfilter_queue/для некоторых действительно интересных деталей, которые, должен отметить, я просмотрел лишь бегло.