From e929e2c20d7ff4401e12b1640baba63ded784d07 Mon Sep 17 00:00:00 2001 From: fang Date: Fri, 13 Dec 2024 17:06:58 +0800 Subject: [PATCH] ipf: Cancel fragment pkt copy. Canceling packet copying can better improve the performance of handling fragmented packets. In 640d4db, pkt copying was added to fix the crash, but the crash has been fixed in 7e6b41a, so there is no need to copy the pkt any longer. Acked-by: Mike Pattrick Acked-by: Aaron Conole Signed-off-by: fang Signed-off-by: Aaron Conole --- AUTHORS.rst | 1 + lib/ipf.c | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/AUTHORS.rst b/AUTHORS.rst index bb79f5da9d5..05c2fb70469 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -171,6 +171,7 @@ Ethan Rahn erahn@arista.com Eziz Durdyyev ezizdurdy@gmail.com Fabrizio D'Angelo fdangelo@redhat.com Faicker Mo faicker.mo@ucloud.cn +fang fangjiannan@cmss.chinamobile.com Fangrui Song maskray@google.com Felix Huettner felix.huettner@mail.schwarz Fengqi Li lifengqi@inspur.com diff --git a/lib/ipf.c b/lib/ipf.c index 2d715f5e9d3..59e23235570 100644 --- a/lib/ipf.c +++ b/lib/ipf.c @@ -820,7 +820,7 @@ ipf_process_frag(struct ipf *ipf, struct ipf_list *ipf_list, * recommend not setting the mempool number of buffers too low * and also clamp the number of fragments. */ struct ipf_frag *frag = &ipf_list->frag_list[last_inuse_idx + 1]; - frag->pkt = dp_packet_clone(pkt); + frag->pkt = pkt; frag->start_data_byte = start_data_byte; frag->end_data_byte = end_data_byte; ipf_list->last_inuse_idx++; @@ -959,7 +959,6 @@ ipf_extract_frags_from_batch(struct ipf *ipf, struct dp_packet_batch *pb, dp_packet_batch_refill(pb, rp->pkt, pb_idx); rp->list->reass_execute_ctx = rp->pkt; } - dp_packet_delete(pkt); } ovs_mutex_unlock(&ipf->ipf_lock); } else {