1<!DOCTYPE html> 2<html lang="en"><head> 3 <meta charset="utf-8"> 4 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 5 6 7 <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous"> 8 9 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" integrity="sha512-SnH5WK+bZxgPHs44uWIX+LLJAJ9/2PkPKZ5QiAj6Ta86w+fsb2TkcmfRyVX3pBnMFcV7oQPJkl9QevSCWr3W6A==" crossorigin="anonymous" referrerpolicy="no-referrer" /> 10 11 12 13 <link class="markdown-style" rel="stylesheet" href="/third_party/ghm/github-markdown.css" type="text/css"> 14 15 16 17 18 19 <link rel="stylesheet" href="/css/oc-std.css" type="text/css"> 20 21 22 23 24 <title>OpenConfig - OpenConfig Projects</title> 25</head> 26<body class="d-flex flex-column min-vh-100"><nav class="navbar navbar-expand-lg navbar-light sticky-top py-3" id="oc-main-nav"> 27 <div class="container"> 28 <a class="navbar-brand d-flex align-items-center" href="/"> 29 <img class="oc-logo me-2" src="/img/oc-logo-accent.svg" alt="OpenConfig" style="height: 32px;" /> 30 <span class="font-weight-bold text-dark h5 mb-0" style="font-weight: 700!important;">OpenConfig</span> 31 </a> 32 <button class="navbar-toggler border-0" type="button" data-bs-toggle="collapse" data-bs-target="#oc-navbar-main-collapse" aria-controls="oc-navbar-main-collapse" aria-expanded="false" aria-label="Toggle nav"> 33 <span class="navbar-toggler-icon"></span> 34 </button> 35 36 <div class="collapse navbar-collapse justify-content-end" id="oc-navbar-main-collapse"> 37 <ul class="navbar-nav align-items-center"> 38 39 40 <li class="nav-item dropdown px-2"> 41 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown-projects" role="button" data-bs-toggle="dropdown" aria-expanded="false"> 42 Projects 43 </a> 44 <ul class="dropdown-menu dropdown-menu-end shadow border-0" aria-labelledby="navbarDropdown-projects"> 45 46 <li><a class="dropdown-item py-2" href="/projects/">Overview</a></li> 47 48 <li><a class="dropdown-item py-2" href="/projects/models/">Data models</a></li> 49 50 <li><a class="dropdown-item py-2" href="/rpc/">RPCs</a></li> 51 52 </ul> 53 </li> 54 55 56 57 <li class="nav-item px-2"> 58 <a class="nav-link" href="/docs/"> Documentation</a> 59 </li> 60 61 62 63 <li class="nav-item px-2"> 64 <a class="nav-link" href="https://github.com/openconfig"><span class="fa-brands fa-github"></span> Code</a> 65 </li> 66 67 68 69 <li class="nav-item dropdown px-2"> 70 <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown-about" role="button" data-bs-toggle="dropdown" aria-expanded="false"> 71 About 72 </a> 73 <ul class="dropdown-menu dropdown-menu-end shadow border-0" aria-labelledby="navbarDropdown-about"> 74 75 <li><a class="dropdown-item py-2" href="/about/participants/">Participants</a></li> 76 77 <li><a class="dropdown-item py-2" href="/about/contribute/">Contribute</a></li> 78 79 </ul> 80 </li> 81 82 83 </ul> 84 </div> 85 </div> 86</nav> 87<div id="content" class="content-spacer flex-grow-1"> 88<div class="container py-5"> 89 <div class="row"> 90 <div class="col-lg-8 mx-auto" id="oc-content-main"> 91 <div class="markdown-body"> 92 <h1 id="openconfig-projects--standardisation">OpenConfig Projects & Standardisation</h1> 93<p>OpenConfig is an informal working group of network operators sharing the goal of moving towards a more dynamic, programmable network infrastructure. We do this by defining vendor-neutral data models, and designing modern, RPC-based management protocols.</p> 94<p>This page provides an overview of the key projects driven by the OpenConfig community.</p> 95<div class="row mt-4 mb-5"> 96 <div class="col-md-6 col-lg-3 mb-4"> 97 <div class="card h-100 shadow-sm"> 98 <div class="card-body d-flex flex-column"> 99 <h3 class="card-title h5 font-weight-bold"><span class="fa-solid fa-sitemap me-2 text-primary"></span>Data Models</h3> 100 <p class="card-text small text-muted flex-grow-1">Explore OpenConfig YANG models, schema paths, and interactive documentation.</p> 101 <a href="#yang-data-models" class="btn btn-outline-secondary btn-sm mt-3">View Models</a> 102 </div> 103 </div> 104 </div> 105 <div class="col-md-6 col-lg-3 mb-4"> 106 <div class="card h-100 shadow-sm"> 107 <div class="card-body d-flex flex-column"> 108 <h3 class="card-title h5 font-weight-bold"><span class="fa-solid fa-network-wired me-2 text-primary"></span>gRPC APIs</h3> 109 <p class="card-text small text-muted flex-grow-1">Learn about gNMI, gNOI, gRIBI, and gNSI protocols for management and operations.</p> 110 <a href="#grpc-apis" class="btn btn-outline-secondary btn-sm mt-3">View RPCs</a> 111 </div> 112 </div> 113 </div> 114 <div class="col-md-6 col-lg-3 mb-4"> 115 <div class="card h-100 shadow-sm"> 116 <div class="card-body d-flex flex-column"> 117 <h3 class="card-title h5 font-weight-bold"><span class="fa-solid fa-flask me-2 text-primary"></span>Testing</h3> 118 <p class="card-text small text-muted flex-grow-1">Discover Ondatra and KNE frameworks for validation and network emulation.</p> 119 <a href="#testing-emulation" class="btn btn-outline-secondary btn-sm mt-3">View Testing</a> 120 </div> 121 </div> 122 </div> 123 <div class="col-md-6 col-lg-3 mb-4"> 124 <div class="card h-100 shadow-sm"> 125 <div class="card-body d-flex flex-column"> 126 <h3 class="card-title h5 font-weight-bold"><span class="fa-solid fa-toolbox me-2 text-primary"></span>Tooling</h3> 127 <p class="card-text small text-muted flex-grow-1">Access libraries like ygot, ygnmi, and gnmic for working with OpenConfig data.</p> 128 <a href="#tooling-libraries" class="btn btn-outline-secondary btn-sm mt-3">View Tooling</a> 129 </div> 130 </div> 131 </div> 132</div> 133<hr> 134<h2 id="yang-data-models">YANG Data Models</h2> 135<p>The core of OpenConfig is the development of consistent, vendor-neutral data models for network configuration and state. These models are designed from an operator’s perspective and cover a wide variety of networking use cases.</p> 136<ul> 137<li><strong>Repository</strong>: <a href="https://github.com/openconfig/public">github.com/openconfig/public</a></li> 138<li><strong>Key Features</strong>: 139<ul> 140<li>Covers both configuration and operational state.</li> 141<li>Vendor-independent design.</li> 142<li>Focuses on operationally relevant features.</li> 143</ul> 144</li> 145</ul> 146<h3 id="explore-the-models">Explore the Models</h3> 147<p>We provide tools to explore the published YANG models directly on this site:</p> 148<ul> 149<li><strong><a href="/projects/models/paths/">Schema Paths</a></strong>: Search and browse the unified schema paths.</li> 150<li><strong><a href="/projects/models/schemadocs/">Schema Documentation</a></strong>: View detailed, interactive documentation for the models.</li> 151</ul> 152<hr> 153<h2 id="grpc-apis">gRPC-Based Interfaces (RPCs)</h2> 154<p>To manage devices using OpenConfig models, we define modern APIs based on gRPC. These protocols replace traditional management protocols like SNMP and NETCONF.</p> 155<h3 id="gnmi-grpc-network-management-interface">gNMI (gRPC Network Management Interface)</h3> 156<p>gNMI provides a single gRPC service for state retrieval, configuration manipulation, and telemetry streaming.</p> 157<ul> 158<li><strong>Repository</strong>: <a href="https://github.com/openconfig/gnmi">github.com/openconfig/gnmi</a></li> 159<li><strong>Specification</strong>: <a href="https://github.com/openconfig/reference/blob/master/rpc/gnmi/gnmi-specification.md">Read the gNMI Specification</a></li> 160<li><strong>Key Features</strong>: Supports declarative configuration (Set), state retrieval (Get), and high-frequency streaming telemetry (Subscribe).</li> 161</ul> 162<h3 id="gnoi-grpc-network-operations-interface">gNOI (gRPC Network Operations Interface)</h3> 163<p>gNOI defines a set of microservices for operational commands that are not model-based (e.g., rebooting a device, upgrading OS, pinging, managing certificates).</p> 164<ul> 165<li><strong>Repository</strong>: <a href="https://github.com/openconfig/gnoi">github.com/openconfig/gnoi</a></li> 166<li><strong>Key Services</strong>: System, OS, File, Certificate, Healthz.</li> 167</ul> 168<h3 id="gribi-grpc-routing-information-base-interface">gRIBI (gRPC Routing Information Base Interface)</h3> 169<p>
169gRIBI allows external controllers to programmatically inject routing entries (routes) directly into the RIB of a network device.</p> 170<ul> 171<li><strong>Repository</strong>: <a href="https://github.com/openconfig/gribi">github.com/openconfig/gribi</a></li> 172</ul> 173<h3 id="gnsi-grpc-network-security-interface">gNSI (gRPC Network Security Interface)</h3> 174<p>gNSI defines services for managing security-related configurations on the device, such as SSH keys, console access, and security policies.</p> 175<ul> 176<li><strong>Repository</strong>: <a href="https://github.com/openconfig/gnsi">github.com/openconfig/gnsi</a></li> 177</ul> 178<hr> 179<h2 id="testing-emulation">Testing & Emulation</h2> 180<p>To ensure compliance and simplify vendor validation, OpenConfig develops open-source testing frameworks and tools.</p> 181<ul> 182<li><strong>Ondatra</strong>: A Go-based testing framework for writing and running functional network tests against physical or emulated devices. 183<ul> 184<li><strong>Repository</strong>: <a href="https://github.com/openconfig/ondatra">github.com/openconfig/ondatra</a></li> 185</ul> 186</li> 187<li><strong>KNE (Kubernetes Network Emulation)</strong>: A tool to set up topology of containerized network devices inside Kubernetes for testing. 188<ul> 189<li><strong>Repository</strong>: <a href="https://github.com/openconfig/kne">github.com/openconfig/kne</a></li> 190</ul> 191</li> 192</ul> 193<hr> 194<h2 id="tooling-libraries">Tooling & Libraries</h2> 195<p>We maintain several tools and libraries to assist with adopting OpenConfig.</p> 196<ul> 197<li><strong>ygot (YANG Go Tools)</strong>: Go libraries for generating Go code from YANG models, validating data against models, and serializing to/from JSON/XML. 198<ul> 199<li><strong>Repository</strong>: <a href="https://github.com/openconfig/ygot">github.com/openconfig/ygot</a></li> 200</ul> 201</li> 202<li><strong>ygnmi</strong>: A Go client library built on top of <code>ygot</code> for interacting with gNMI targets. 203<ul> 204<li><strong>Repository</strong>: <a href="https://github.com/openconfig/ygnmi">github.com/openconfig/ygnmi</a></li> 205</ul> 206</li> 207<li><strong>gnmic</strong>: A powerful CLI client and collector for gNMI, supporting data locking, forwarding, and multiple output formats. 208<ul> 209<li><strong>Repository</strong>: <a href="https://github.com/openconfig/gnmic">github.com/openconfig/gnmic</a></li> 210</ul> 211</li> 212</ul> 213 214 </div> 215 </div> 216 </div> 217</div> 218 219 </div><footer class="oc-footer py-5 mt-auto bg-dark text-light"> 220 <div class="container"> 221 <div class="row align-items-center"> 222 <div class="col-md-6 text-center text-md-start mb-3 mb-md-0"> 223 <p class="mb-0 text-muted">© 2016-2026 OpenConfig Project. All rights reserved.</p> 224 </div> 225 <div class="col-md-6 text-center text-md-end"> 226 <a href="https://github.com/openconfig" class="text-muted h4" target="_blank" rel="noopener noreferrer"> 227 <span class="fa-brands fa-github"></span> 228 </a> 229 </div> 230 </div> 231 </div> 232</footer> 233 234
235<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
vendor: 1 bytes, line 235
235
236<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
236 237 238 239 240 241</body> 242</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.