Skip to content

Latest commit

 

History

666 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

mibs

The MIB distribution for pysnmp: the MIB modules published over HTTPS, as release archives and as OCI images, so an SNMP engine can name a managed object instead of counting OID arcs.

Browse the MIBs https://mibsdepot.com/browse/
Documentation https://pysnmp.github.io/mibs/

pysnmp applications resolve modules from the distribution site:

https://pysnmp.github.io/mibs/asn1/@mib@

@mib@ is pysmi's placeholder for the module name. This URL does not change.

MIBs Depot publishes the same corpus as pages to read: one per module, one per OID arc, one per registrant, carrying the DESCRIPTION text that the files hold and no browser renders. Both sites are produced by one build. The other channels, and what each carries, are in Channels.

What is here

MIB content, and the configuration that describes how to build it. The build itself is pysmi's mibcorpus. This repository holds no compiler, no dependency resolver and no OID indexer. It held versions of all three until #365; each was a second implementation of pysmi's and each had drifted from it.

path contents
src/vendor/* the MIB sources, one directory per vendor
corpus.json the source set the published corpus is built from, and what it emits
corpus-compact.json the same source set, without the standard modules
corpus-db.json the same source set again, emitting only core.db
index-frozen.csv the OID index snapshot index.csv replays
charts/mibserver the Helm chart
docker/ the images: the corpus, and pysmi for the chart's init container
docs/ this project's documentation, and the Sphinx project that builds it

To add a MIB, drop the file under src/vendor/<vendor>/ and open a pull request. See Contributing a module.

Building

make corpus           # the published corpus, into output/
make corpus-compact   # the same corpus without the standard modules
make corpus-db        # the corpus database, into output-db/

Each target is one mibcorpus invocation over a manifest. Two runs over the same sources produce the same bytes and neither needs network access. output/github-pages/report.json records what was built, what failed to compile, and how long it took. The manifest format is documented in Build manifests.

The documentation is a separate uv project under docs/. It needs a newer interpreter than the corpus build, which is pinned to the one its output is fingerprinted on:

uv run --directory docs --locked --group dev sphinx-build -n -W --keep-going -b html . _build

CI builds the documentation on every ref and deploys it to the root of both sites, beside the corpus it describes.

Related projects

Four repositories make up the stack.

project role
pysnmp the engine: SNMP v1, v2c and v3 as manager, agent or proxy
mibs this distribution: the modules that let the engine say ifOperStatus rather than .1.8.1
pysmi the MIB compiler, and the mibcorpus driver that builds this distribution
pyasn1 the ASN.1 codec underneath both

These are maintained forks of Ilya Etingof's original work. Ilya passed away on 10 August 2022; his work remains of great use to the Python community.

BSD-2-Clause. See LICENSE.

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

8 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages