Skip to content

GTP packet aggregation support implemented#11

Open
Arsalan-Zanganeh wants to merge 63 commits intodeep-observability-lab:mainfrom
Arsalan-Zanganeh:main
Open

GTP packet aggregation support implemented#11
Arsalan-Zanganeh wants to merge 63 commits intodeep-observability-lab:mainfrom
Arsalan-Zanganeh:main

Conversation

@Arsalan-Zanganeh
Copy link
Copy Markdown

No description provided.

azharivs and others added 30 commits August 4, 2025 11:53
Analysis of Filtering Rule Added
comprehensive exploration and explanation of DPDK GRO library
Added instructions for plain build and modified dpdk-testpmd command.
Added instructions for plain build and modified dpdk-testpmd command.
Added instructions for setting up an LTTng trace session in the README.
Added instructions for setting up an LTTng trace session in the README.
Arsalan-Zanganeh and others added 28 commits October 29, 2025 19:20
gro tracepoints added and ptype assigned
Updated tcpreplay command to use topspeed and increased loop count.
Copilot AI review requested due to automatic review settings February 17, 2026 23:40
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request implements GTP (GPRS Tunneling Protocol) packet aggregation support for DPDK's Generic Receive Offload (GRO) library. The implementation adds new GRO types for handling GTP-encapsulated TCP and UDP over IPv4 packets, along with comprehensive tracing support for monitoring packet reassembly operations.

Changes:

  • Added GTP TCP/IPv4 and GTP UDP/IPv4 GRO support with new reassembly tables and flow processing logic
  • Implemented tracing infrastructure for GRO operations including new trace points for header extraction and packet processing
  • Updated build configuration and documentation to support trace functionality and provide GTP replay testing instructions

Reviewed changes

Copilot reviewed 80 out of 6792 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
gro/Trace Files/GTP Trace Files/gro_gtp_tcp4.c Implements GTP TCP/IPv4 packet reassembly logic with flow management and merging operations
gro/Trace Files/GTP Trace Files/gro_gtp_udp4.c Implements GTP UDP/IPv4 fragment reassembly with flow tracking and packet merging
gro/Trace Files/GTP Trace Files/gro_trace.h Defines trace points for monitoring GRO operations and header extraction
gro/Trace Files/GTP Trace Files/gro_trace_points.c Registers trace points for GRO library events
gro/Trace Files/GTP Trace Files/gro_tcp4.c Updates TCP/IPv4 reassembly with trace point integration for header monitoring
gro/Trace Files/GTP Trace Files/rte_gro.h Adds new GRO type flags for GTP TCP/UDP IPv4 support
gro/Trace Files/GTP Trace Files/meson.build Updates build configuration to include new GTP GRO source files
gro/README.md Adds documentation for trace setup, GTP replay testing, and dpdk-testpmd configuration
gro/dpdk-25.03/* Adds complete DPDK 25.03 application infrastructure including test utilities, graph processing, and build system

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.


#ifndef _GRO_GTP_UDP4_H_
#define _GRO_GTP_UDP4_H_

Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is trailing whitespace at the end of line 7. Remove the trailing whitespace to maintain consistent code formatting.

Suggested change

Copilot uses AI. Check for mistakes.

#ifndef _GRO_GTP_TCP4_H_
#define _GRO_GTP_TCP4_H_

Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is trailing whitespace at the end of line 7. Remove the trailing whitespace to maintain consistent code formatting.

Suggested change

Copilot uses AI. Check for mistakes.

// dst->vxlan_hdr.vx_flags = src->vxlan_hdr.vx_flags;
// dst->vxlan_hdr.vx_vni = src->vxlan_hdr.vx_vni;
dst->gtp_hdr.teid = src->gtp_hdr.teid;
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is trailing whitespace at the end of line 173. Remove the trailing whitespace to maintain consistent code formatting.

Suggested change
dst->gtp_hdr.teid = src->gtp_hdr.teid;
dst->gtp_hdr.teid = src->gtp_hdr.teid;

Copilot uses AI. Check for mistakes.

portid = ethdev_portid_by_ip4(v4_config->ip, 0);
if (portid < 0) {
printf("Invalid portid found to add neigh\n");
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected spacing in error message from 'add neigh' to 'add neigh'.

Suggested change
printf("Invalid portid found to add neigh\n");
printf("Invalid portid found to add neigh\n");

Copilot uses AI. Check for mistakes.
}

static int
route6_rewirte_table_update(struct route_ipv6_config *ipv6route)
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected spelling of function name from 'route6_rewirte_table_update' to 'route6_rewrite_table_update'.

Copilot uses AI. Check for mistakes.
}

static int
route4_rewirte_table_update(struct route_ipv4_config *ipv4route)
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected spelling of function name from 'route4_rewirte_table_update' to 'route4_rewrite_table_update'.

Copilot uses AI. Check for mistakes.
# Copyright(c) 2023 Marvell.
#
graph <STRING>usecase coremask <UINT64>mask bsz <UINT16>size tmo <UINT64>ns model <(rtc,mcd,default)>model_name <(pcap_enable)>capt_ena <UINT8>pcap_ena <(num_pcap_pkts)>capt_pkts_count <UINT64>num_pcap_pkts <(pcap_file)>capt_file <STRING>pcap_file # Command to create graph for given usecase
graph start # Comanmd to start a graph
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected spelling of 'Comanmd' to 'Command'.

Copilot uses AI. Check for mistakes.
{ "test-vector", 1, 0, 'v' },
{ "lcores", 1, 0, 'l' },
{ "snr", 1, 0, 's' },
{ "iter_max", 6, 0, 't' },
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The second argument to the long option structure should be 0 (no argument), 1 (required argument), or 2 (optional argument). The value 6 is invalid and will cause unexpected behavior. Based on line 267 which uses optarg, this should be 1 (required_argument).

Suggested change
{ "iter_max", 6, 0, 't' },
{ "iter_max", 1, 0, 't' },

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants