For the cursed, and the fallen. We are forced to live with YANG, so let's make it tolerable.
A comprehensive collection of YANG models and validation tools for network automation and modeling.
## 🚀 Quick Start
**⚡ Fast automated setup (recommended):**
```bash
git clone https://github.com/friedsilicon/poma.git
cd poma
make setup # Complete setup in ~30 seconds
make validate # Test everything🛠️ Manual setup:
# Clone with submodules
git clone --recursive https://github.com/friedsilicon/poma.git
cd poma
# Setup environment
./scripts/setup-dev-env.sh
# Test BGP models
source venv/bin/activate
./validate-bgp.sh -t🏗️ CI/Build optimized:
git clone https://github.com/friedsilicon/poma.git
cd poma
./scripts/setup-submodules-fast.sh ci # Ultra-fast ~10 secondsFull documentation is available here
- BGP State Model Comparison - Nokia vs OpenConfig for monitoring
- BGP Config Model Comparison - Nokia vs OpenConfig for configuration
- Getting Started - Setup and first steps
- Validation Guide - BGP model validation workflows
- Models Overview - Available YANG models and status
- Tools Reference - YANG tools and installation
- Nokia BGP Models: Latest SROS 25.7 models (state & configuration) with comprehensive BGP support
- 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
- Performance Optimizations: Fast submodule setup (30s vs 5+ min traditional)
- ✅ Upgraded to Nokia SROS 25.7 - Latest version with newest BGP features
- ✅ Added Configuration Models - Both state and config models now available
- ✅ Enhanced Documentation - Comprehensive Nokia vs OpenConfig comparisons
- ✅ Performance Improvements - 90% faster setup with optimized submodule handling
├── models/ # Organized YANG models (symlinks)
│ ├── nokia/ # Nokia SROS models
│ ├── openconfig/ # OpenConfig models
│ └── ietf/ # IETF standard types
├── scripts/ # Setup and utility scripts
├── docs/ # Documentation (MkDocs)
├── requirements.txt # All dependencies (YANG tools + docs)
├── open-config/ # OpenConfig submodule
└── nokia/ # Nokia submodule
# Validate all BGP models (from models/ directory)
cd models && ./validate-bgp.sh
# Nokia BGP with tree output
cd models && ./validate-nokia-bgp.sh -t
# Quiet mode for CI
./validate-bgp.sh -q
# Help for any script
cd models && ./validate-bgp.sh -h# Install all dependencies (includes docs tools)
pip install -r requirements.txt
# Serve docs locally
mkdocs serve
# Visit: http://localhost:8000Ready-to-use NETCONF configuration samples:
- OpenConfig BGP - Standards-based BGP configuration
- Nokia SROS BGP - Nokia-specific BGP setup
- Usage Guide - How to customize and deploy
Features demonstrated:
- Global BGP configuration and neighbor setup
- Peer groups and route reflection
- Address family configuration (IPv4/IPv6)
- Policy integration (Nokia) and AFI-SAFI management (OpenConfig)
- Add new YANG sources as git submodules
- Update documentation in
docs/ - Add validation scripts as needed
- Test with existing validation workflows
"In the grim darkness of network management, there is only YANG."