You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Introduction

While considering a use case where cloud may have added support to groups/blobs which CPE doesn’t support, approach that was decided is to have a metadata header with a bitmask indicating supported features in CPE.  

When CPE contacts cloud server to get the latest version of documents due a forced sync/bootup sync, then CPE may add a header X-System-Supported-Docs: to the request. This header will contain a bitmask string which indicates what feature is supported in CPE FW. 

Within RDK, each feature will be supported by different components. Hence the subdocs may be arranged into groups to form a series of bit masked values separated by commas. Placeholder of each group in the header could be predefined and can be identified by the two MS nibbles. So, cloud may parse the bitstreams as per the group ID shared by RDK. Within each group’s bitmapcloud can check the bits turned ON to identify supported feature.  

Here RDK reserves two MS nibbles for identifying the group, hence it won’t change. Rest of the bits will be used to indicate a subdoc is supported or not.  

To identify schema version supported by each group, a new metadata header will be added as X-System-Schema-Version with comma separated version numbers along with a bit mask subdoc id. That will ensure cloud knows the schema version of subdoc supported by CPE in each FW release. Versions in the header may not follow the same ordinal status of bitstream in the supported docs metadata. As all subdoc versions start from 1.0, RDK need not have to add this header or version of a subdoc in header until there is a change in version of a subdoc. 

Both version and supported docs information is populated during build time. So, it won’t change during runtime in CPE. 


Placeholders for each RDK subdoc group in the meta header 

Metadata for supported features in CPE:

Points for future: 

  • New supported groups WILL NOT be added in between the existing list.  
  • If a group/component uses all 24 bits available, then we will have to use a new bitstream at the end of existing ones with a different Group Id(MS nibble).
  • For simplicity, during initial rollouts, groups are segregated based on RDKB components but there is no hard rule to tie a subdoc to a group as subdocs are identified based on the group Id. 

Version metadata:

Bitstream patterns:


Fig 1: Bits arrangement in bitstream. 

 

In supported subdoc metadata, bitmask will be a value considering all bits corresponding to supported subdocs turned ON in LS 6 nibbles 

In version metadata, bitmask value generated for identifying subdoc will be having only one bit turned ON in 6 LS nibbles.  

As mentioned in figure above, MS two nibbles will be group identifier field. 

Sample Header with metadata




  • No labels