Messages in this thread Patch in this message | | | Date | Wed, 23 Mar 2022 21:04:57 +0800 | From | Jianguo Wu <> | Subject | [PATCH net-next] tcp: make tcp_rcv_state_process() drop monitor friendly |
| |
From: Jianguo Wu <wujianguo@chinatelecom.cn>
In tcp_rcv_state_process(), should not call tcp_drop() for same case, like after process ACK packet in TCP_LAST_ACK state, it should call consume_skb() instead of tcp_drop() to be drop monitor friendly, otherwise every last ack will be report as dropped packet by drop monitor.
Signed-off-by: Jianguo Wu <wujianguo@chinatelecom.cn> --- net/ipv4/tcp_input.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 2088f93..feb6f83 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -6574,7 +6574,8 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb) inet_csk_reset_keepalive_timer(sk, tmo); } else { tcp_time_wait(sk, TCP_FIN_WAIT2, tmo); - goto discard; + consume_skb(skb); + return 0; } break; } @@ -6582,7 +6583,8 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb) case TCP_CLOSING: if (tp->snd_una == tp->write_seq) { tcp_time_wait(sk, TCP_TIME_WAIT, 0); - goto discard; + consume_skb(skb); + return 0; } break;
@@ -6590,7 +6592,8 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb) if (tp->snd_una == tp->write_seq) { tcp_update_metrics(sk); tcp_done(sk); - goto discard; + consume_skb(skb); + return 0; } break; } -- 1.8.3.1
| |