Skip to content

PoMa

For the cursed, and the fallen. We are forced to live with YANG, so let's make it tolerable.

This repository contains a comprehensive collection of YANG models from various sources, along with tools and scripts to work with them. Use at your own peril, but hopefully with less suffering.

About the Name

PoMa is derived from "Porul Matraam" (பொருள் மாற்றம்), which means "Semantic Transformation" in Tamil. The name reflects the project's goal of transforming complex YANG models into more manageable and understandable formats.

Features

Vendor-Organized Models: Nokia and OpenConfig BGP models with proper dependencies
Automated Validation: Parameterized scripts for flexible validation workflows
Tree Generation: YANG tree visualization for model understanding
Development Environment: Automated setup with Python tooling
BGP Focus: Specialized support for BGP model validation and testing

Quick Start

# Clone with submodules
git clone --recursive <your-repo-url>
cd poma

# Setup environment
./scripts/setup-dev-env.sh

# Test BGP models
source venv/bin/activate
cd models && ./validate-bgp.sh

What's Inside

  • Nokia BGP Models: Fully functional SROS BGP models with tree generation
  • OpenConfig BGP Models: Industry-standard BGP configuration models
  • Validation Scripts: Automated testing with multiple output formats
  • Development Tools: Pre-configured Python environment with YANG tooling

Documentation Sections

New to YANG?

Start with the Quick Start Guide for a guided walkthrough of setting up your environment and running your first validation.

Repository Structure

This repository uses git submodules for vendor model sources. Always clone with --recursive flag or run git submodule update --init --recursive after cloning.