Skip to content

RDKC-15902: Add RDKC camera platform support to rfcMgr#192

Open
rdkcteam wants to merge 6 commits into
rdkcentral:developfrom
rdkcteam:feature/RDKC-15902-camera-support
Open

RDKC-15902: Add RDKC camera platform support to rfcMgr#192
rdkcteam wants to merge 6 commits into
rdkcentral:developfrom
rdkcteam:feature/RDKC-15902-camera-support

Conversation

@rdkcteam

@rdkcteam rdkcteam commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Add RDKC (XHC1) camera platform support to the RFC Manager component, enabling RFC
feature-flag synchronization on camera devices via platform-specific Xconf handling.

JIRA Ticket

RDKC-15902

Changes

New files

  • rfcMgr/rdkc_rfc_xconf_handler.hRdkcRuntimeFeatureControlProcessor subclass
    of RuntimeFeatureControlProcessor with RDKC-specific overrides.
  • rfcMgr/rdkc_rfc_xconf_handler.cpp — Implementation of three overridden methods:
    • CreateXconfHTTPUrl() — Adds accountHash query param, omits STB-only fields
      (manufacturer, ecmMacAddress, osClass, controllerId, channelMapId, vodId).
    • RetrieveHashAndTimeFromPreviousDataSet() — Reads configSetHash/configSetTime
      from RAM files (/tmp/RFC/.hashValue, /tmp/RFC/.timeValue) instead of TR181 DB.
    • StoreXconfEndpointMetadata() — No-op; XHC1 must not persist XconfSelector/XconfUrl.
  • docs/ — Architecture, sequence diagram, and data processing flow documentation.

Modified files

  • configure.ac — Added --enable-rdkc and --enable-xcam2 autoconf options with
    corresponding AM_CONDITIONAL guards (ENABLE_RDKC, ENABLE_XCAM2).
  • rfcMgr/Makefile.am — Conditionally compiles rdkc_rfc_xconf_handler.cpp when
    ENABLE_RDKC is set; adds RDKC-specific include paths and linker flags for both
    XCAM2 (RDK_FSROOT_PATH) and Yocto (STAGING_DIR_TARGET) sysroots; links -lrfcapi
    locally from rfcapi/.libs/.
  • rfcMgr/rfc_main.cpp — Creates /tmp/RFC directory at startup when RDKC is defined
    (alongside existing RDKB path).

Design Rationale

Uses inheritance (subclass + #ifdef RDKC guard) rather than inline conditionals to keep
the base RuntimeFeatureControlProcessor unchanged for STB/RDKB platforms. All RDKC logic
is compiled in only when --enable-rdkc is passed to configure.

Testing

  • Compiles with --enable-rdkc --enable-xcam2
  • Compiles without --enable-rdkc (no regressions to STB/RDKB)
  • Unit tests pass (make check)

Checklist

  • Code compiles for all target platforms (STB, RDKB, RDKC)
  • Unit tests pass (make check)
  • No Coverity or static analysis warnings introduced
  • Platform-specific code is properly guarded with #ifdef RDKC
  • Documentation updated (see docs/ folder)

jbasi196 added 5 commits April 12, 2026 18:35
Replace shell-based RFC processing (RFCbase.sh) with the C++ RFC
Manager for RDKC camera devices (XHC1/XHB1).
New files:
- rdkc_rfc_xconf_handler.cpp/.h: Camera-specific subclass overriding
  Xconf URL building, hash/time retrieval, and endpoint metadata storage.
Changes guarded by #ifdef RDKC / --enable-rdkc:
- configure.ac: Add --enable-rdkc and --enable-xcam2 options.
- Makefile.am: Build rfcapi + rfcMgr under ENABLE_RDKC.
- rfc_xconf_handler.h/.cpp: Protected virtual methods, direct
  tr181store.ini writes, effectiveImmediate reboot cron evaluation,
  hash/time RAM files, mTLS download, clearDB/clearDBEnd guards.
- rfc_manager.cpp: IP acquisition via getifaddrs(), 120s startup delay,
  reboot cron scheduling, skip MaintenanceManager events.
- xconf_handler.cpp: MAC via mfrApi_test, partner ID from partnerid.txt.
- rfc_common.cpp: 2-arg getRFCParameter for RDKC.
- mtlsUtils.cpp: Dynamic/static XPKI cert fallback.
- rfcapi/rfcapi.h/.cpp: Unified RDKB/RDKC int-based API path.
@rdkcteam
rdkcteam requested a review from a team as a code owner April 16, 2026 12:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant