Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,22 @@ AC_ARG_ENABLE([rdkb],
AM_CONDITIONAL([ENABLE_RDKB], [test x$ENABLE_RDKB = xtrue])
AC_SUBST(RDKB_FLAG)

AC_ARG_ENABLE([rdkbextender],
AS_HELP_STRING([--enable-rdkbextender],[enable rdkbextender (default is no)]),
[
case "${enableval}" in
yes) ENABLE_RDKBEXTENDER=true
RDKBEXTENDER_FLAG=" -DRDKB_EXTENDER_SUPPORT ";;
no) ENABLE_RDKBEXTENDER=false
AC_MSG_ERROR([RDKBEXTENDER is disabled]) ;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-rdkbextender]) ;;
esac
],
[echo "rdkbextender is disabled"])

AM_CONDITIONAL([ENABLE_RDKBEXTENDER], [test x$ENABLE_RDKBEXTENDER = xtrue])
AC_SUBST(RDKBEXTENDER_FLAG)

# Check for breakpad
BREAKPAD_CFLAGS=" "
BREAKPAD_LFLAGS=" "
Expand Down
6 changes: 5 additions & 1 deletion rfcMgr/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,16 @@ AM_LDFLAGS += -lIARMBus
endif

if ENABLE_RDKB
rfcMgr_CPPFLAGS += $(RDKB_FLAG) $(rbus_CFLAGS)
rfcMgr_CPPFLAGS += $(RDKB_FLAG) $(rbus_CFLAGS) $(RDKBEXTENDER_FLAG)
AM_LDFLAGS += -lrbus
else
AM_LDFLAGS += ../rfcapi/.libs/librfcapi.la
endif

if ENABLE_RDKBEXTENDER
rfcMgr_CPPFLAGS += $(RDKBEXTENDER_FLAG)
endif

if IS_LIBRDKCERTSEL_ENABLED
rfcMgr_CPPFLAGS += $(LIBRDKCERTSEL_FLAG)
rfcMgr_CFLAGS = $(LIBRDKCERTSEL_FLAG)
Expand Down
69 changes: 67 additions & 2 deletions rfcMgr/rfc_xconf_handler.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -87,15 +87,19 @@ int RuntimeFeatureControlProcessor:: InitializeRuntimeFeatureControlProcessor(vo
RDK_LOG(RDK_LOG_ERROR, LOG_RFCMGR, "[%s][%d] Xconf Initialization Failed for Experience\n", __FUNCTION__, __LINE__);
return FAILURE;
}
/* last Firmware Version */

/* last Firmware Version */
if(SUCCESS != GetLastProcessedFirmware(RFC_LAST_VERSION))
{
RDK_LOG(RDK_LOG_ERROR, LOG_RFCMGR, "[%s][%d] Xconf Initialization Failed for Last firmware\n", __FUNCTION__, __LINE__);
}

GetAccountID();
GetOsClass();
#if defined(RDKB_EXTENDER_SUPPORT)
GetExtenderMacAddress();
GetSerialNumber();
#endif

#if !defined(RDKB_SUPPORT)
_is_first_request = IsNewFirmwareFirstRequest();
Expand Down Expand Up @@ -925,6 +929,49 @@ void RuntimeFeatureControlProcessor::GetOsClass( void )
RDK_LOG(RDK_LOG_DEBUG, LOG_RFCMGR, "GetOsClass: Exit\n");
}


void RuntimeFeatureControlProcessor::GetSerialNumber(void)
{
char serialBuf[256] = {0};
FILE *fp = v_secure_popen("r", "/usr/sbin/deviceinfo.sh -sn");
if (!fp) {
RDK_LOG(RDK_LOG_ERROR, LOG_RFCMGR, "GetSerialNumber: Failed to run deviceinfo.sh\n");
return;
}

if (fgets(serialBuf, sizeof(serialBuf), fp) != NULL) {
// Remove carriage return and newline characters
serialBuf[strcspn(serialBuf, "\r\n")] = 0;
_serialNumber = serialBuf;
RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "GetSerialNumber: Serial Number = %s\n", _serialNumber.c_str());
} else {
RDK_LOG(RDK_LOG_ERROR, LOG_RFCMGR, "GetSerialNumber: Failed to read serial number\n");
}

v_secure_pclose(fp);
}

void RuntimeFeatureControlProcessor::GetExtenderMacAddress(void)
{
char macBuf[32] = {0};
FILE *fp = v_secure_popen("r", "cat /sys/class/net/eth0/address | tr '[a-f]' '[A-F]'");
if (!fp) {
RDK_LOG(RDK_LOG_ERROR, LOG_RFCMGR, "GetExtenderMacAddress: Failed to read MAC address\n");
return;
}

if (fgets(macBuf, sizeof(macBuf), fp) != NULL) {
// Remove carriage return and newline characters
macBuf[strcspn(macBuf, "\r\n")] = 0;
_extendermacAddress = macBuf;
RDK_LOG(RDK_LOG_INFO, LOG_RFCMGR, "GetExtenderMacAddress: MAC Address = %s\n", _extendermacAddress.c_str());
} else {
RDK_LOG(RDK_LOG_ERROR, LOG_RFCMGR, "GetExtenderMacAddress: Failed to read MAC address\n");
}

v_secure_pclose(fp);
}

int RuntimeFeatureControlProcessor::GetExperience( void )
{
char tempbuf[1024] = {0};
Expand Down Expand Up @@ -1631,11 +1678,16 @@ std::stringstream RuntimeFeatureControlProcessor::CreateXconfHTTPUrl()
std::stringstream url;
url << _xconf_server_url << "?";
url << "estbMacAddress=" << _estb_mac_address << "&";
#if defined(RDKB_EXTENDER_SUPPORT)
url << "estbMacAddress=" << _extendermacAddress << "&";
#endif
url << "firmwareVersion=" << _firmware_version << "&";
url << "env=" << _build_type_str << "&";
url << "model=" << _model_number << "&";
#if defined(RDKB_SUPPORT)
url << "ecmMacAddress=" << _ecm_mac_address << "&";
#elif defined(RDKB_EXTENDER_SUPPORT)
url << "ecmMacAddress=" << _extendermacAddress << "&";
#else
url << "manufacturer=" << _manufacturer << "&";
#endif
Expand All @@ -1647,6 +1699,10 @@ std::stringstream RuntimeFeatureControlProcessor::CreateXconfHTTPUrl()
url << "osClass=" << _osclass << "&";
#endif
url << "accountId=" << _accountId << "&";
#if defined(RDKB_EXTENDER_SUPPORT)
url << "accountMgmt=" << "xpc" << "&";
url << "serialNum=" << _serialNumber << "&";
#endif
#if defined(RDKB_SUPPORT)
url << "experience=" << _experience << "&";
#else
Expand All @@ -1659,11 +1715,16 @@ std::stringstream RuntimeFeatureControlProcessor::CreateXconfHTTPUrl()
encodedUrl << _xconf_server_url << "?";

EncodeString("estbMacAddress=", _estb_mac_address, encodedUrl, "&");
#if defined(RDKB_EXTENDER_SUPPORT)
EncodeString("estbMacAddress=", _extendermacAddress, encodedUrl, "&");
#endif
EncodeString("firmwareVersion=", _firmware_version, encodedUrl, "&");
EncodeString("env=", _build_type_str, encodedUrl, "&");
EncodeString("model=", _model_number, encodedUrl, "&");
#if defined(RDKB_SUPPORT)
EncodeString("ecmMacAddress=", _ecm_mac_address, encodedUrl, "&");
#elif defined(RDKB_EXTENDER_SUPPORT)
EncodeString("ecmMacAddress=", _extendermacAddress, encodedUrl, "&");
#else
EncodeString("manufacturer=", _manufacturer, encodedUrl, "&");
#endif
Expand All @@ -1677,6 +1738,10 @@ std::stringstream RuntimeFeatureControlProcessor::CreateXconfHTTPUrl()
EncodeString("osClass=", _osclass, encodedUrl, "&");
#endif
EncodeString("accountId=", _accountId, encodedUrl, "&");
#if defined(RDKB_EXTENDER_SUPPORT)
EncodeString("accountMgmt=", "xpc", encodedUrl, "&");
EncodeString("serialNum=", _serialNumber, encodedUrl, "&");
#endif
#if !defined(RDKB_SUPPORT)
EncodeString("Experience=", _experience, encodedUrl, "&");
#else
Expand Down
5 changes: 5 additions & 0 deletions rfcMgr/rfc_xconf_handler.h
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,9 @@ class RuntimeFeatureControlProcessor : public xconf::XconfHandler
std::string stashAccountId;
std::string _partnerId; /* Device Partner ID */
std::string _bkPartnerId; /* Device Partner ID */
std::string _accountMgmt;
std::string _serialNumber;
std::string _extendermacAddress;
std::string _experience;
std::string _osclass;
bool isRebootRequired;
Expand All @@ -145,6 +148,8 @@ class RuntimeFeatureControlProcessor : public xconf::XconfHandler
void GetRFCPartnerID();
bool isMaintenanceEnabled();
void GetOsClass( void );
void GetSerialNumber( void );
void GetExtenderMacAddress( void );
int GetExperience( void );
int GetServURL(const char *rfcPropertiesFile);
int GetBootstrapXconfUrl(std ::string &XconfUrl);
Expand Down