mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
net: dropreason: add SKB_DROP_REASON_FRAG_TOO_FAR
IPv4 reassembly unit can decide to drop frags based on /proc/sys/net/ipv4/ipfrag_max_dist sysctl. Add a specific drop reason to track this specific and weird case. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
77adfd3a1d
commit
3bdfb04f13
@@ -70,6 +70,7 @@
|
|||||||
FN(PKT_TOO_BIG) \
|
FN(PKT_TOO_BIG) \
|
||||||
FN(DUP_FRAG) \
|
FN(DUP_FRAG) \
|
||||||
FN(FRAG_REASM_TIMEOUT) \
|
FN(FRAG_REASM_TIMEOUT) \
|
||||||
|
FN(FRAG_TOO_FAR) \
|
||||||
FNe(MAX)
|
FNe(MAX)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -306,6 +307,11 @@ enum skb_drop_reason {
|
|||||||
SKB_DROP_REASON_DUP_FRAG,
|
SKB_DROP_REASON_DUP_FRAG,
|
||||||
/** @SKB_DROP_REASON_FRAG_REASM_TIMEOUT: fragment reassembly timeout */
|
/** @SKB_DROP_REASON_FRAG_REASM_TIMEOUT: fragment reassembly timeout */
|
||||||
SKB_DROP_REASON_FRAG_REASM_TIMEOUT,
|
SKB_DROP_REASON_FRAG_REASM_TIMEOUT,
|
||||||
|
/**
|
||||||
|
* @SKB_DROP_REASON_FRAG_TOO_FAR: ipv4 fragment too far.
|
||||||
|
* (/proc/sys/net/ipv4/ipfrag_max_dist)
|
||||||
|
*/
|
||||||
|
SKB_DROP_REASON_FRAG_TOO_FAR,
|
||||||
/**
|
/**
|
||||||
* @SKB_DROP_REASON_MAX: the maximum of drop reason, which shouldn't be
|
* @SKB_DROP_REASON_MAX: the maximum of drop reason, which shouldn't be
|
||||||
* used as a real 'reason'
|
* used as a real 'reason'
|
||||||
|
@@ -256,7 +256,7 @@ static int ip_frag_reinit(struct ipq *qp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
sum_truesize = inet_frag_rbtree_purge(&qp->q.rb_fragments,
|
sum_truesize = inet_frag_rbtree_purge(&qp->q.rb_fragments,
|
||||||
SKB_DROP_REASON_NOT_SPECIFIED);
|
SKB_DROP_REASON_FRAG_TOO_FAR);
|
||||||
sub_frag_mem_limit(qp->q.fqdir, sum_truesize);
|
sub_frag_mem_limit(qp->q.fqdir, sum_truesize);
|
||||||
|
|
||||||
qp->q.flags = 0;
|
qp->q.flags = 0;
|
||||||
|
Reference in New Issue
Block a user