The cache used for the remote mode is considered a pull through cache in which all queries are answered from the cache and if there is a cache miss the remote API is used and the cache is populated.
To prevent the cache from growing indefinitely a policy, initially time/use based, will be leveraged to kick / purge items from the cache. Additionally, the cache can be influenced via manually operations of the the CLI/API exposed as part of ONOS. The time limits for cache entry purging should be configurable.
The service is configurable via both the the network configuration as well as via ONOS configuration. This configuration consists of service-wide properties such as operation mode, remote URL, cache purge options, etc.
The in memory cache is not a clustered, distributed data structure, such that each instance of ONOS in a cluster might have a different set of objects in its cache. The thought behind this is that each instance in a cluster will be a master for a different set of devices and thus needs different information.
"org.opencord.sadis" : { "sadis" : { "integration" : { "url": "http://localhost/src/test/resources/%s", "cache" : { "maxsize" : 50, "ttl" : "PT1m" } }, "entries" : [ { "id" : "uni-1", "cTag" : 2, "sTag" : 2, "nasPortId" : "PON 1", "circuitId" : "VOLT-1", }, { "id" : "211702604597", "hardwareIdentifier" : "00:1e:67:d2:ef:66", "ipAddress" : "144.60.34.89", "nasId" : "66" }] } }
%s
in the url which will be substituted with the id for that subscriber/device to retrieve the data.Entries can be for Subscribers and OLT Devices; they are differentiated by the id. If the url is specified the data for the subscribers/devices are picked from there else the local data is used.
ports
commanddevices
command