diff --git a/docs/guide/proposal_transient_obj_gpn_gpv.md b/docs/guide/proposal_transient_obj_gpn_gpv.md new file mode 100644 index 0000000..9224b10 --- /dev/null +++ b/docs/guide/proposal_transient_obj_gpn_gpv.md @@ -0,0 +1,70 @@ +# Proposal for GPN and GPV of transient object + +## Proposal 1 + +Expose the transient nature data elements on USP only, thus it will restrict +these DM object's visibility on ACS. + +### Cons + +Customer need to switch to USP to access these DM parameters. + +### Effort + +Low + + +## Proposal 2 + +Maintain a cache of whole DM (Device.) each time a session is started and for +GPV and GPN create the response based on the data available in the cache. +For SPV and Add/Delete object request perform the operation at lower layer first +and on success from lower layer update the cache for the effected elements. +Delete the cache to session end. + +### Cons + +1. Lot of string processing required and hence the solution will be time taking. +2. Due to the cache mechanism it will increase memory utilization. + +### Effort + +High + + +## Proposal 3 + +A json file will be introduced which will contain the DM path of all transient +natured objects. +At the time of session start icwmp will perform GPN for all DM objects declared +in the json file and store the results in cache. + +When GPN request will come from ACS, icwmp will first perform the operation at +lower layer. Upon receiving the response from lower layer if there exist any +transient DM parameter then it will validate that path against the cache. If +that instance is not present in the cache then drop that parameter from final +result. +If GPN of any sub object of a transient DM object fails at lower layer but the +path exist in the cache then instead of error icwmp will return an empty GPN +response to the ACS but if not exist in cache then will return error. + +When GPV request will come from ACS, icwmp will first perform the operation at +lower layer. Upon failure from lower layer icwmp will validate the path in the +cache. If the parameter exist in the cache it will return GPV response with +empty value otherwise will return error. + +Delete the cache at session end. + +### Cons + +1. String processing is required here too but will be optimized by caching only +the transient natured DM parameters. Still it will increase the operation time +to some extend. +2. Memory utilization will also increase to some extend. +3. In some cases it may return empty value for some parameter's GPV request and +which may not be a correct value for e.g such parameters which can have value in + specific range or specific enum types. + +### Effort + +Medium