Skip to content

PyPNMApps/PyPNM-PMA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyPNM-PMA Logo

PyPNM-PMA - DOCSIS Profile Management Application Toolkit for PyPNM (Under Development)

PyPNM-PMA is a Python toolkit for building DOCSIS Profile Management Applications (PMAs) that design and evaluate OFDM/OFDMA profiles against simulated and real-world RxMER and network impairment conditions. It is intended to support both offline profile engineering (repeatable what-if analysis) and operational evaluation using measured RxMER inputs.

The OFDM/OFDMA simulation capability is one tool within the PyPNM-PMA toolkit. Its purpose is to quantify profile effectiveness under controlled impairments and to provide a consistent test harness for comparing profile strategies before applying them in production workflows.

Naming

  • PyPI Distribution: pypnm-docsis-pma
  • Python Import Package: pypnm_pma

Features

  • OFDM/OFDMA Profile Designer

    • Provide a standardized profile schema to build an OFDM or OFDMA profile from a template.
    • Support importing a profile read from a CMTS and mapping it into the same schema for editing and validation.
    • Expose a Python class-based API to construct, normalize, validate, and serialize profile definitions.
    • Run the designed/edited profile through the simulator to score:
      • spectral efficiency (bits-per-Hz proxy)
      • robustness vs an RxMER distribution (RxMER profile)
      • performance under selectable impairment models
  • Profile Design: Build candidate OFDM/OFDMA profiles (bit-loading strategies up to 16KQAM) with validation and guardrails.

  • Profile Evaluation: Score and compare profiles against RxMER distributions and impairment models using consistent KPIs (e.g., BER/FER, margin, robustness).

  • RxMER And Impairment Ingestion: Normalize and analyze RxMER and related telemetry from simulated sources and real measurements.

  • Simulation Toolkit (One Component): OFDM/OFDMA PHY simulation modules used for controlled evaluation of profile behavior under noise and impairment scenarios.

  • Extensible Architecture: Designed to accommodate CMTS/vendor integration layers and additional impairment models over time.

How The Designer Fits The Workflow

  1. Create Or Import A Profile (1) Start from a standardized schema template, or
    (2) Read an existing profile from the CMTS and map it into the schema.

  2. Edit And Validate Apply edits to modulation orders, tone masks, and any guardrails, then validate the schema for correctness and completeness.

  3. Simulate And Score Run the profile through the simulation pipeline using:

  • a target RxMER distribution (per-tone or aggregate)
  • selected impairment models
  1. Report Performance Produce decision-ready outputs such as:
  • bits-per-Hz proxy and throughput-relative comparisons
  • FER/BER versus RxMER curves and threshold crossings
  • robustness and margin estimates across modem percentiles (if modeled)

Getting Started

Option A: Install From PyPI

  1. Create And Activate A Virtual Environment:
python -m venv .venv
source .venv/bin/activate
  1. Install:
python -m pip install -U pip
python -m pip install pypnm-docsis-pma
  1. Verify Import:
python -c "import pypnm_pma; print('pypnm_pma import OK')"

Option B: Clone The Repository (Developer Install)

  1. Clone The Repository:
git clone https://github.com/<org-or-username>/PyPNM-PMA.git
cd PyPNM-PMA
  1. Install Dependencies:
./install.sh
  1. Activate The Virtual Environment:
source .env/bin/activate
  1. Editable Install (Recommended For Development):
python -m pip install -e ".[dev]"
  1. Verify Import:
python -c "import pypnm_pma; print('pypnm_pma import OK')"

Notes

  • This project targets Python >=3.11.
  • Early development focuses on repeatable simulation and evaluation workflows. CMTS/vendor integration hooks are expected to evolve as the toolkit matures.