FRINX UniConfig: Worldwide leading OSS Network Device Library for Structured Data

We just realized that we have built the worldwide largest open source network device library for structured data. Napalm is not even close and Ansible deals with unstructured data. Also, Ansible requires users to implement their own data store, device version control, parser or mapping between models and transaction logic. All of that and more is part of FRINX UniConfig.

Our customers want us to control a wide range of network devices from many different vendors. Together with our technology partners and customers we have built an open source device library that we are proud of. FRINX’s UniConfig device library contains JunOS, IOS classic (back to 12.0, including the latest versions), IOS XR (4,5,6,7), IOS XE, Nexus OS, Huawei VRP, Brocade, Dasan and many more to come. Our library supports access to devices via CLI, NETCONF and provides translation capabilities from vendor specific CLI and YANG models to standard based OpenConfig models. Our upcoming release (FRINX ODL 4.2.x) also supports native YANG models with our new “UniConfig native” feature.

Choosing the right way

We made some deliberate choices early on when we decided how to build our library. We had to make a decision if we would use templating tools or code to implement our library. In the end we decided to use code to implement the readers and writers in our library. We have built a framework that reduces the amount of code that has to be written to a minimum and allows contributors to focus on the parsing, transforming and writing of commands.

Since we have made that decision, we encountered many situations that required complex mappings and required us to accommodate platform specific dynamic behavior. Those experiences confirmed our decision to implement our device library in code. But all of that is only useful if users can easily find what is supported in which release. Hence, we have built an automated documentation that allows customers to search for features and platforms that are supported in our library. The documentation is part of our build process and always up to date with our latest developments and additions.

Same tools for different devices

FRINX set out to build a network control product that our users love. Our goal is to give them the same tools that they use for software development like diff, snapshots, sync, and commits and make those available to interact with their networks. We read and write network configurations and our built-in datastore allows us to support stateful applications.

We compare intent with actual device configuration and can perform atomic transactions on one device. Or even across multiple network devices. We execute disjunct sets of transaction in parallel and scale up to thousands of connections. FRINX UniConfig enables transactions and rollback across devices that do not have native support for rollback or transactions.

We appreciate your feedback about which devices and features you want us to add next or which ones you would be interested to contribute to our library (no worries, we are happy to help). We look forward to seeing many new use cases of FRINX UniConfig and hearing back from you.

LEARN MORE:

FRINX UniConfig Device Library on GitHub

https://github.com/FRINXio/cli-units
https://github.com/FRINXio/unitopo-units

Device Library Documentation (auto-generated)

https://frinxio.github.io/translation-units-docs/

Device Library Use Case Configuration (manually maintained)

https://github.com/FRINXio/translation-units-docs

Download FRINX Machine and start using our library

https://github.com/FRINXio/FRINX-machine

About FRINX

FRINX was founded in 2016 in Bratislava and consists of a team of passionate developers and industry professionals who want to change the way networking software is developed, deployed and used. FRINX offers distributions of OpenDaylight and FD.io in conjunction with support services and is proud to have service provider and enterprise customers from the Fortune Global 500 list.