RTRlib
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
RTRlib

This is the API documentation of the RTRlib, a C implementation of the RPKI/Router Protocol client.

Overview

The RTRlib follows a flexible design. The software architecture includes different layers to simplify the extension or exchange of individual parts.

components.png

The lowest layer of the architecture is built by the Transport sockets. It allows for the implementation of different transport channels that provide a common interface to exchange PDUs with the cache (i.e., the RPKI-RTR server). The current version of the library supports unprotected TCP and SSH.
On the top of the transport layer the RTR socket uses a transport socket for RTR-specific data exchange with the RTR server. The RTR socket implements the RPKI-RTR protocol, i.e., fetches validation records and stores them in a prefix table data structure.
The Prefix validation table stores validated prefix origin data. The abstract data structure provides a common interface to add and delete entries as well as to verify a specific prefix. The library implements a Trie, but can be extended to other data structures.
On the top of the modular architecture the RTR connection manager maintains the connection to multiple RTR servers. This includes failover mechanisms. It represents the main interface for users of the library.

RFCs and Drafts

The functionality of this library is described by the following IETF RFCs and drafts:

For a general overview of the topic have look at the homepage of the IETF SIDR working group.