Skip to content

HolyShitMan/sonic-object-library

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#SONiC-Object-Library

##Description The SONiC Object Library (formerly Control Plane Services API or CPS) provides a data-centric API allowing applications to communicate with each other between threads, processes or diverse locations.

The data model of the Object Library is described through Yang or other constructs.

Applications can use Object Library objects using Python, C, C++ and REST services in the sonic-object-library-REST service.

Applications/threads will register for ownership of CPS objects while other applications/threads will operate and receive events of the registered CPS objects. Applications can also publish objects through the event service.

A high level list of CPS features are:

  • Distributed framework for application interaction
  • DB-like API (Get, Commit[add,delete,create,modify])
  • Publish/subscribe semantics supported

Lookup and binary to text translation and object introspection available

Applications define objects through (optionally yang based) object models. These object models are converted into binary (C accessible) object keys and object attributes that can be used in conjunction with the C-based CPS APIs. There are adaptions on top of CPS that allows these objects and APIs to be converted to different languages like Python.

With the object keys and attributes applications can:

  • Get a single or get a multiple objects Perform transactions consisting of:
  • Create
  • Delete
  • Set
  • Action
  • Register and publish object messages

For more information see the Object Library developers guide.

Build Instructions

Please see the instructions in the sonic-nas-manifest repo for more details on the common build tools. Sonic-nas-manifest

Development Dependencies

  • sonic-logging
  • sonic-common-utils
  • libhiredis >= 0.10

Dependent packages: libsonic-logging1 libsonic-logging-dev libsonic-common1 libsonic-common-dev

BUILD CMD: sonic_build libsonic-logging1 libsonic-logging-dev libsonic-common1 libsonic-common-dev -- clean binary

(c) Dell 2016

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 67.5%
  • Python 21.2%
  • C 9.7%
  • Other 1.6%