Releases: cem8kaya/pfcp_packet_generator
Added QoS Handling v.0.2
Full feature list with last enhancements :
PFCP Packet Generator Enhancements with 3GPP Notations
1. Robust PFCP Message Generation
The generator now creates a variety of PFCP messages as defined in 3GPP TS 29.244:
- Association Setup Request/Response (Section 7.4.4)
- Session Establishment Request/Response (Section 7.5.3)
- Session Modification Request/Response (Section 7.5.4)
- Session Deletion Request/Response (Section 7.5.5)
- Heartbeat Request/Response (Section 7.4.1)
2. Enhanced Information Elements (IEs)
2.1 Node ID (Section 8.2.38)
- Implemented as
IE_NodeId
- Supports IPv4 addressing
2.2 F-SEID (CP/UP F-SEID, Section 8.2.39)
- Implemented as
IE_FSEID
- Supports both CP and UP SEID generation
2.3 PDR (Packet Detection Rule, Section 8.2.41)
- Implemented as
IE_CreatePDR
andIE_UpdatePDR
- Includes PDR ID and Precedence
2.4 FAR (Forwarding Action Rule, Section 8.2.42)
- Implemented as
IE_CreateFAR
andIE_UpdateFAR
- Includes FAR ID and Apply Action
2.5 QER (QoS Enforcement Rule, Section 8.2.68)
- Implemented as
IE_CreateQER
andIE_UpdateQER
- Enhanced with:
- QER ID
- Gate Status (Section 8.2.69)
- MBR (Maximum Bitrate, Section 8.2.70)
- GBR (Guaranteed Bitrate, Section 8.2.71)
- QFI (QoS Flow Identifier, Section 8.2.89)
2.6 URR (Usage Reporting Rule, Section 8.2.44)
- Implemented as
IE_CreateURR
andIE_UpdateURR
- Includes URR ID and Measurement Method
2.7 Cause (Section 8.2.1)
- Implemented as
IE_Cause
- Used in response messages to indicate request status
2.8 Recovery Time Stamp (Section 8.2.3)
- Implemented as
IE_RecoveryTimeStamp
- Used in Association Setup and Heartbeat messages
3. Improved QoS Handling
- Enhanced QER creation with detailed QoS parameters:
- Gate Status: Controls gating for uplink and downlink (Section 8.2.69)
- MBR: Sets maximum bitrate for uplink and downlink (Section 8.2.70)
- GBR: Sets guaranteed bitrate for uplink and downlink (Section 8.2.71)
- QFI: Assigns QoS Flow Identifier (Section 8.2.89)
4. Flexible Packet Generation
- Random generation of SEID, PDR ID, FAR ID, QER ID, and URR ID
- Customizable source and destination IP addresses for PFCP packets
5. PCAP File Generation
- Ability to generate multiple PFCP packet pairs and save them to a PCAP file
- Useful for testing and simulation of PFCP traffic
6. Error Handling and Logging
- Improved error handling in IE creation and packet generation
- Detailed logging of packet generation process and any encountered errors
7. 3GPP Compliance
- Adheres to PFCP message formats and IE structures as defined in 3GPP TS 29.244
- Supports PFCP protocol version 1 (Section 7.2.1)
8. Extensibility
- Modular design allows for easy addition of new PFCP message types and IEs
- Can be extended to support future 3GPP PFCP enhancements
This enhanced PFCP packet generator provides a comprehensive tool for simulating PFCP traffic in accordance with 3GPP specifications, particularly useful for testing and development of 5G core network components.
What's Changed
- Existing features and capabilities of the Initial PFCP Packet Generator v.0.1 by @cem8kaya in #1
- Enhance Information Elements by @cem8kaya in #22
- Improved QoS Handling by @cem8kaya in #23
New Contributors
Full Changelog: v.0.1...v.0.2
Initial Relase v.0.1
PFCP Packet Generator: Existing Features and 3GPP Notations
Supported PFCP Message Types (TS 29.244 Section 7.2)
- PFCP Association Setup Request/Response (7.4.3 / 7.4.4)
- PFCP Session Establishment Request/Response (7.2.2 / 7.2.3)
- PFCP Session Modification Request/Response (7.2.4 / 7.2.5)
- PFCP Session Deletion Request/Response (7.2.6 / 7.2.7)
- PFCP Heartbeat Request/Response (7.4.1 / 7.4.2)
Implemented Information Elements (IEs) (TS 29.244 Section 8)
- Node ID (8.2.38)
- F-SEID (8.2.39)
- Recovery Time Stamp (8.2.41)
- Cause (8.2.1)
Simulated Procedures
-
PFCP Association Setup (TS 29.244 Section 6.2.1)
- Establishment of PFCP Association between CP and UP functions
-
PFCP Session Establishment (TS 29.244 Section 6.3.1)
- Creation of an PFCP session
-
PFCP Session Modification (TS 29.244 Section 6.3.2)
- Modification of an existing PFCP session
-
PFCP Session Deletion (TS 29.244 Section 6.3.3)
- Removal of an existing PFCP session
-
PFCP Heartbeat Procedure (TS 29.244 Section 6.5.1)
- Keep-alive mechanism between CP and UP functions
Supported Features
-
Basic N4 Interface Simulation
- Communication between SMF (CP function) and UPF (UP function)
-
Session Context Handling
- Generation of CP F-SEID and UP F-SEID for session management
-
Cause Handling
- Inclusion of Cause IE in response messages (e.g., Request accepted)
-
Sequence Number Management
- Proper sequence number handling in request-response pairs
-
PFCP Header Formatting (TS 29.244 Section 6.1)
- Correct formatting of PFCP message headers
-
PFCP Node ID Handling
- Support for Node ID IE using FQDN format
Limitations and Simplifications
-
Limited IE Set
- Only basic IEs are implemented; complex IEs (e.g., PDR, FAR, QER, URR) are not yet supported
-
Simplified Session Management
- Basic session lifecycle without detailed state management
-
No QoS Handling
- QoS-related IEs and procedures are not implemented
-
Limited 5G Support
- 5G-specific elements (e.g., QFI) are not yet implemented
-
No Error Handling
- All requests are assumed to be successful; no error scenarios are simulated
-
No Usage Reporting
- Usage reporting mechanisms are not implemented
-
Simplified Packet Forwarding
- Complex forwarding scenarios are not simulated
-
No Network Slicing Support
- NSSAI and network slicing features are not implemented
This implementation provides a basic framework for PFCP message exchange simulation, focusing on the fundamental message types and procedures. It serves as a starting point for more complex PFCP traffic generation, with room for expansion to include more detailed IE structures, 5G-specific features, and advanced PFCP procedures as defined in 3GPP TS 29.244.