From 9c6f27b2513ea07fa3aa452db28f5dbb8ae04606 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Thu, 28 Sep 2017 15:34:14 +0200 Subject: receive: do not consider netfilter drop a real drop --- src/receive.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'src/receive.c') diff --git a/src/receive.c b/src/receive.c index ae79354..68683c0 100644 --- a/src/receive.c +++ b/src/receive.c @@ -277,7 +277,6 @@ static void packet_consume_data_done(struct sk_buff *skb, struct wireguard_peer goto dishonest_packet_size; if (INET_ECN_is_ce(PACKET_CB(skb)->ds)) IP_ECN_set_ce(ip_hdr(skb)); - } else if (skb->protocol == htons(ETH_P_IPV6)) { len = ntohs(ipv6_hdr(skb)->payload_len) + sizeof(struct ipv6hdr); if (INET_ECN_is_ce(PACKET_CB(skb)->ds)) @@ -299,12 +298,11 @@ static void packet_consume_data_done(struct sk_buff *skb, struct wireguard_peer goto dishonest_packet_peer; len = skb->len; - if (likely(netif_receive_skb(skb) == NET_RX_SUCCESS)) - rx_stats(peer, len); - else { + if (unlikely(netif_receive_skb(skb) == NET_RX_DROP)) { ++dev->stats.rx_dropped; net_dbg_ratelimited("%s: Failed to give packet to userspace from peer %Lu (%pISpfsc)\n", dev->name, peer->internal_id, &peer->endpoint.addr); - } + } else + rx_stats(peer, len); goto continue_processing; dishonest_packet_peer: -- cgit v1.2.3-59-g8ed1b