Skip to content

Releases: cem8kaya/pfcp_packet_generator

Added QoS Handling v.0.2

01 Sep 17:51
1fa21b6
Compare
Choose a tag to compare

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 and IE_UpdatePDR
  • Includes PDR ID and Precedence

2.4 FAR (Forwarding Action Rule, Section 8.2.42)

  • Implemented as IE_CreateFAR and IE_UpdateFAR
  • Includes FAR ID and Apply Action

2.5 QER (QoS Enforcement Rule, Section 8.2.68)

  • Implemented as IE_CreateQER and IE_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 and IE_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

01 Sep 12:07
b004d9f
Compare
Choose a tag to compare

PFCP Packet Generator: Existing Features and 3GPP Notations

Supported PFCP Message Types (TS 29.244 Section 7.2)

  1. PFCP Association Setup Request/Response (7.4.3 / 7.4.4)
  2. PFCP Session Establishment Request/Response (7.2.2 / 7.2.3)
  3. PFCP Session Modification Request/Response (7.2.4 / 7.2.5)
  4. PFCP Session Deletion Request/Response (7.2.6 / 7.2.7)
  5. PFCP Heartbeat Request/Response (7.4.1 / 7.4.2)

Implemented Information Elements (IEs) (TS 29.244 Section 8)

  1. Node ID (8.2.38)
  2. F-SEID (8.2.39)
  3. Recovery Time Stamp (8.2.41)
  4. Cause (8.2.1)

Simulated Procedures

  1. PFCP Association Setup (TS 29.244 Section 6.2.1)

    • Establishment of PFCP Association between CP and UP functions
  2. PFCP Session Establishment (TS 29.244 Section 6.3.1)

    • Creation of an PFCP session
  3. PFCP Session Modification (TS 29.244 Section 6.3.2)

    • Modification of an existing PFCP session
  4. PFCP Session Deletion (TS 29.244 Section 6.3.3)

    • Removal of an existing PFCP session
  5. PFCP Heartbeat Procedure (TS 29.244 Section 6.5.1)

    • Keep-alive mechanism between CP and UP functions

Supported Features

  1. Basic N4 Interface Simulation

    • Communication between SMF (CP function) and UPF (UP function)
  2. Session Context Handling

    • Generation of CP F-SEID and UP F-SEID for session management
  3. Cause Handling

    • Inclusion of Cause IE in response messages (e.g., Request accepted)
  4. Sequence Number Management

    • Proper sequence number handling in request-response pairs
  5. PFCP Header Formatting (TS 29.244 Section 6.1)

    • Correct formatting of PFCP message headers
  6. PFCP Node ID Handling

    • Support for Node ID IE using FQDN format

Limitations and Simplifications

  1. Limited IE Set

    • Only basic IEs are implemented; complex IEs (e.g., PDR, FAR, QER, URR) are not yet supported
  2. Simplified Session Management

    • Basic session lifecycle without detailed state management
  3. No QoS Handling

    • QoS-related IEs and procedures are not implemented
  4. Limited 5G Support

    • 5G-specific elements (e.g., QFI) are not yet implemented
  5. No Error Handling

    • All requests are assumed to be successful; no error scenarios are simulated
  6. No Usage Reporting

    • Usage reporting mechanisms are not implemented
  7. Simplified Packet Forwarding

    • Complex forwarding scenarios are not simulated
  8. 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.