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;
|
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) {
|
switch (f->type) {
|
||||||
case PACKET_FANOUT_HASH:
|
case PACKET_FANOUT_HASH:
|
||||||
default:
|
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);
|
idx = fanout_demux_hash(f, skb, num);
|
||||||
break;
|
break;
|
||||||
case PACKET_FANOUT_LB:
|
case PACKET_FANOUT_LB:
|
||||||
|
Loading…
Reference in New Issue
Block a user