Interface to the Routing System: Architecture
An SDN Blog by Russ White
The last post on the topic of interface to the routing system (I2RS) discussed use cases; this one will provide an overview of the I2RS architecture, and then consider some challenges in the neighborhood of I2RS. The architecture of I2RS is considered in the illustration below.
The I2RS architecture is conceptually made up of two components, a controller and an agent. The agent resides on the network device, such as a router; whether or not this piece of software actually exists depends on the implementation. Some devices, for instance, may simply expose some sort of interface that allows devices to directly interact with routing protocols and the RIB, rather than actually installing a separate software package that serves as a agent.
The information stored in the (conceptual) agent is ephemeral, which means that it does not survive a device reboot. The concept of ephemeral data is described in draft-ietf-i2rs-ephemeral-state. The controller is responsible for reinstalling any information required if the packet switching (or processing) device reboots. I2RS relies on YANG models to describe the forwarding information passed to the switching device; these models are described in a series of IETF drafts and RFCS. For instance—
- A YANG data model for the Routing Information Base (RIB), or routing table, is described in draft-ietf-i2rs-rib-data-model
- A YANG model for describing layer 3 network topologies is described in draft-ietf-i2rs-yang-l3-topology
- A YANG model for network topologies is described in draft-ietf-i2rs-yang-network-topo
Why YANG models? Because they are grounded in the same self-describing concepts as the eXtensible Markup Language (XML), and hence are very similar to the more familiar sibling of XML, the HyperText Markup Language (HTML) used for web sites. The YANG modeling language is flexible, allowing the addition of new information through relatively simple backward changes to any particular model; you can think of YANG as “Type Length Vectors (TLVs) for generic information.” A sample YANG model from the RIB model draft might be helpful in understanding the structure.
The first question that might come to mind about such models is—who is going to implement this? The reality is the specific model doesn’t matter as much as everyone using a consistent modeling language that contains fully qualified descriptors (metadata) for the information being carried. There are, in fact, open source versions of most of these models, available on GitHub, as part of the OpenConfig project, that can be used in much the same way. The IETF, as a community, works with the open source community through OpenConfig to harmonize models where possible.
This slice of the model shows the next hop structure from the I2RS RIB YANG model. It not only includes the base information, it also includes the ability to chain a set of next hops, the ability to include a next hop to use in the case of failure (nexthop-protection), and the ability to add a set of next hops for load balancing.
The second question is—how is this information transported? While the I2RS working group in the IETF is assuming RESTCONF will be one available transport mechanism, this is a baseline, rather than restriction. YANG models are easily convertible to JSON format; once in JSON format they can be transported by many different publish/subscribe systems (such as KAFKA), within many different distributed databases (such as ZeroMQ), and even through RPC and gRPC calls. While it is important for at least one transport mechanism to be common among all devices, there is no reason more efficient transport mechanisms should not be adopted in the future.
Finally, what about performance? Performance is always an issue with any type of markup language, TLV, or anything that carries metadata as well as the actual data. Modern processors combined with creative solutions, however, can break this logjam.
In short, I2RS should be seen as a framework, or an extensible architecture, rather than a specific set of models or transport mechanisms.