netfilter: nfnetlink_queue: fix missing HW protocol
Subsystems (2)
Pablo Neira Ayuso
maintainerPATCH 1/1 netfilter: nfnetlink_queue: fix missing HW protocol
Locally generated IPv4 and IPv6 traffic gets skb->protocol unset, thus passing zero.
ip6tables -I OUTPUT -j NFQUEUE
libmnl/examples/netfilter# ./nf-queue 0 &
ping6 ::1
packet received (id=1 hw=0x0000 hook=3)
^^^^^^
Signed-off-by Pablo Neira Ayuso <[email protected]>
--- net/netfilter/nfnetlink_queue_core.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
net/netfilter/nfnetlink_queue_core.c +3 -3
@@ -637,9 +637,6 @@ nfqnl_enqueue_packet(struct nf_queue_entry *entry, unsigned int queuenum)if (queue->copy_mode ==NFQNL_COPY_NONE )return -EINVAL ; -if ((queue->flags &NFQA_CFG_F_GSO ) || !skb_is_gso (entry->skb)) -return __nfqnl_enqueue_packet (net, queue, entry); - skb = entry->skb;switch (entry->pf) {
@@ -651,6 +648,9 @@ nfqnl_enqueue_packet(struct nf_queue_entry *entry, unsigned int queuenum)break ; } +if ((queue->flags &NFQA_CFG_F_GSO ) || !skb_is_gso (skb)) +return __nfqnl_enqueue_packet (net, queue, entry); +nf_bridge_adjust_skb_data (skb); segs =skb_gso_segment (skb,0 );/* Does not use PTR_ERR to limit the number of error codes that can be
Signature · 1 line
1.7.10.4