af_packet: allow packets defragmentation not only for hash fanout type
Packets defragmentation was introduced for PACKET_FANOUT_HASH only,
see 7736d33f42
("packet: Add pre-defragmentation support for ipv4
fanouts")
It may be useful to have defragmentation enabled regardless of
fanout type. Without that, the AF_PACKET user may have to:
1. Collect fragments from different rings
2. Defragment by itself
Signed-off-by: Alexander Drozdov <al.drozdov@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b9ebafbe8c
commit
3f34b24a73
|
@ -1349,14 +1349,14 @@ static int packet_rcv_fanout(struct sk_buff *skb, struct net_device *dev,
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (fanout_has_flag(f, PACKET_FANOUT_FLAG_DEFRAG)) {
|
||||
skb = ip_check_defrag(skb, IP_DEFRAG_AF_PACKET);
|
||||
if (!skb)
|
||||
return 0;
|
||||
}
|
||||
switch (f->type) {
|
||||
case PACKET_FANOUT_HASH:
|
||||
default:
|
||||
if (fanout_has_flag(f, PACKET_FANOUT_FLAG_DEFRAG)) {
|
||||
skb = ip_check_defrag(skb, IP_DEFRAG_AF_PACKET);
|
||||
if (!skb)
|
||||
return 0;
|
||||
}
|
||||
idx = fanout_demux_hash(f, skb, num);
|
||||
break;
|
||||
case PACKET_FANOUT_LB:
|
||||
|
|
Loading…
Reference in New Issue