Qt там беспомощен. Вам нужно написать обработчик NFQueue для netlink. Когда ваши пакеты соответствуют правилу, которое говорит -j NFQUEUE, ваша пользовательская программа получит эти пакеты, что позволит вам принимать, отбрасывать или манипулировать (изменять) пакет (только в таблице mangle). Если вы можете использовать библиотеки GPLv2, вы должны использовать libnetfilter_queue , чтобы помочь вам.
Обратите внимание, что слой Mac не завершен. Это связано с тем, что сетевой код должен поддерживать различные типы устройств, а некоторые устройства, не относящиеся к Ethernet, не имеют адресов MAc. На устройстве Ethernet вы обычно получаете только MAC-адрес отправителя.