Skip to content
uwiger edited this page Aug 13, 2012 · 1 revision

Data Model

Exodm relies heavily on kvdb (http://github.com/Feuerlabs/kvdb), specifically the kvdb_conf API.

Tables:

  • data - the default kvdb_conf table. This is only used for some system data, such as counters.
  • acct - account table
  • user - user identities table
  • shared_yang - YANG specs that can be referenced by all accounts (currently not used)
  • system_yang - system-level (internal) YANG specs, e.g. exodm.yang
  • to_device - RPC queues (per-device) for RPCs coming from Northbound to the device (should probably be account-specific)
  • from_device - RPC queues (per-device) for notifications coming from the device to Northbound (should probably be account-specific)
  • <AcctID>_dev> - account-specific device table
  • <AcctID>_yang>- account-specific YANG spec table
  • <AcctID>_config - account-specific device configuration data set table

For debugging, the command kvdb_conf:all(Table) is useful. Note that it returns all the contents of the table in one go, so make sure the data set is reasonably small.

Use Cases

The following describes the flow for handling an incoming RPC.

Yaws-based RPC handling

The YAWS web server listens to port 8800, with SSL enabled. The callback module is exodm_rpc_yaws_appmod.erl, and the authentication callback is exodm_rpc_yaws_auth.erl

Clone this wiki locally