diff --git a/configure.ac b/configure.ac index 5f37333..66b8d54 100644 --- a/configure.ac +++ b/configure.ac @@ -143,5 +143,6 @@ AC_CONFIG_FILES( AM_CONDITIONAL([PLATFORM_PUMA7_ENABLED], [test $PLATFORM_PUMA7_ENABLED = yes]) AM_CONDITIONAL([FEATURE_RDKB_WAN_MANAGER], [test $FEATURE_RDKB_WAN_MANAGER = yes]) +AM_CONDITIONAL([ONESTACK_PRODUCT_REQ], [test "x$ONESTACK_PRODUCT_REQ" = "xtrue"]) AC_OUTPUT diff --git a/source/CMAgentSsp/Makefile.am b/source/CMAgentSsp/Makefile.am index 69517d9..8f90a76 100644 --- a/source/CMAgentSsp/Makefile.am +++ b/source/CMAgentSsp/Makefile.am @@ -51,3 +51,6 @@ endif if CORE_NET_LIB_FEATURE_SUPPORT CcspCMAgentSsp_LDFLAGS += -lnet endif +if ONESTACK_PRODUCT_REQ +CcspCMAgentSsp_LDFLAGS += -ldevicemode -lonestack_syscfg -lonestack_log -lrdkb_feature_mode_gate +endif diff --git a/source/CMAgentSsp/gw_prov_abstraction.h b/source/CMAgentSsp/gw_prov_abstraction.h index 5a6f51b..8e4a01f 100644 --- a/source/CMAgentSsp/gw_prov_abstraction.h +++ b/source/CMAgentSsp/gw_prov_abstraction.h @@ -205,7 +205,7 @@ typedef void (*fpDocsisEnabled)(unsigned char); typedef void (*fpDocsisRATransInterval)(unsigned short); #endif typedef void (*fpGW_Tr069PaSubTLVParse)(unsigned char type, unsigned short length, const unsigned char *value); -#ifdef CISCO_CONFIG_DHCPV6_PREFIX_DELEGATION +#if defined(CISCO_CONFIG_DHCPV6_PREFIX_DELEGATION) || defined(_ONESTACK_PRODUCT_REQ_) typedef void (*fpGW_SetTopologyMode)(unsigned char type, unsigned short length, const unsigned char *value); #endif @@ -227,7 +227,7 @@ typedef struct __appCallBack fpDocsisRATransInterval pDocsis_GetRATransInterval; #endif fpGW_Tr069PaSubTLVParse pGW_Tr069PaSubTLVParse; -#if defined (CISCO_CONFIG_DHCPV6_PREFIX_DELEGATION) +#if defined(CISCO_CONFIG_DHCPV6_PREFIX_DELEGATION) || defined(_ONESTACK_PRODUCT_REQ_) fpGW_SetTopologyMode pGW_SetTopologyMode; #endif }appCallBack; diff --git a/source/CMAgentSsp/gw_prov_sm.c b/source/CMAgentSsp/gw_prov_sm.c index 88411ec..6912741 100644 --- a/source/CMAgentSsp/gw_prov_sm.c +++ b/source/CMAgentSsp/gw_prov_sm.c @@ -85,6 +85,9 @@ #include "rdk_debug.h" #endif +#ifdef _ONESTACK_PRODUCT_REQ_ +#include +#endif #include //core net lib #include @@ -329,7 +332,7 @@ static bool GW_SetTr069PaMibString(unsigned char **cur, unsigned char sub_oid, u static void check_lan_wan_ready(); //static TlvParseCallbackStatus_e gotEnableType(unsigned char type, unsigned short length, const unsigned char *value); -#ifdef CISCO_CONFIG_DHCPV6_PREFIX_DELEGATION +#if defined(CISCO_CONFIG_DHCPV6_PREFIX_DELEGATION) || defined(_ONESTACK_PRODUCT_REQ_) static TlvParseCallbackStatusExtIf_e GW_setTopologyMode(unsigned char type, unsigned short length, const unsigned char *value); #endif @@ -1016,9 +1019,16 @@ static STATUS GW_UpdateTr069Cfg(void) #endif #endif -#ifdef CISCO_CONFIG_DHCPV6_PREFIX_DELEGATION +#if defined(CISCO_CONFIG_DHCPV6_PREFIX_DELEGATION) || defined(_ONESTACK_PRODUCT_REQ_) static TlvParseCallbackStatusExtIf_e GW_setTopologyMode(unsigned char type, unsigned short length, const unsigned char *value) { +#ifdef _ONESTACK_PRODUCT_REQ_ + if (!isFeatureSupportedInCurrentMode(FEATURE_IPV6_DELEGATION)) + { + /* PD feature disabled — ignore TLV */ + return TLV_PARSE_CALLBACK_OK_EXTIF; + } +#endif unsigned char tpMode = *value; TlvParseCallbackStatusExtIf_e st = TLV_PARSE_CALLBACK_OK_EXTIF; @@ -2162,8 +2172,13 @@ static void setWanStatusDown(void) { CcspTraceError(("Removed file")); } - #ifdef CISCO_CONFIG_DHCPV6_PREFIX_DELEGATION + #if defined(CISCO_CONFIG_DHCPV6_PREFIX_DELEGATION) || defined(_ONESTACK_PRODUCT_REQ_) + #if defined(_ONESTACK_PRODUCT_REQ_) + if (isFeatureSupportedInCurrentMode(FEATURE_IPV6_DELEGATION)) + #endif + { v_secure_system("sysevent set dhcpv6_client-stop"); + } #endif } @@ -2545,8 +2560,13 @@ static int GWP_act_DocsisLinkUp_callback() #else if (eRouterMode != DOCESAFE_ENABLE_DISABLE_extIf /*&& bridge_mode == 0*/) // mipieper - pseduo bridge support { - #ifdef CISCO_CONFIG_DHCPV6_PREFIX_DELEGATION + #if defined(CISCO_CONFIG_DHCPV6_PREFIX_DELEGATION) || defined(_ONESTACK_PRODUCT_REQ_) + #if defined(_ONESTACK_PRODUCT_REQ_) + if (isFeatureSupportedInCurrentMode(FEATURE_IPV6_DELEGATION)) + #endif + { sysevent_set(sysevent_fd_gs, sysevent_token_gs, "dhcpv6_client-start", "", 0); + } #endif } if (!logged_docsis_reg_complete_uptime) @@ -3898,9 +3918,14 @@ void RegisterDocsisCallback() obj->pDocsis_GetRATransInterval = (fpDocsisRATransInterval)docsis_GetRATransInterval_callback; #endif obj->pGW_Tr069PaSubTLVParse = GW_Tr069PaSubTLVParse; -#ifdef CISCO_CONFIG_DHCPV6_PREFIX_DELEGATION +#if defined(CISCO_CONFIG_DHCPV6_PREFIX_DELEGATION) || defined(_ONESTACK_PRODUCT_REQ_) + #if defined(_ONESTACK_PRODUCT_REQ_) + if (isFeatureSupportedInCurrentMode(FEATURE_IPV6_DELEGATION)) + #endif + { void* pGW_setTopologyMode = GW_setTopologyMode; obj->pGW_SetTopologyMode = (fpGW_SetTopologyMode)pGW_setTopologyMode; + } #endif #if defined (WAN_FAILOVER_SUPPORTED) if(RemoveIfFileExists(DOCSISLINKDOWN_TESTFILE)==0)// file is removed then link up during crash