ANSC_STATUS
CosaDml_GreIfSetUseChecksum(ULONG ins, BOOL enable)
{
    char psmRec[MAX_GRE_PSM_REC + 1];
    char greNetworkInterface[256];
    char tmpPath[256];

    if (ins != 1)
        return ANSC_STATUS_FAILURE;

    if (GrePsmGetStr(GRE_PARAM_GREIF, ins, greNetworkInterface, sizeof(greNetworkInterface)) != 0)
        return ANSC_STATUS_FAILURE;
    snprintf(tmpPath, sizeof(tmpPath), "%sChecksumEnabled", greNetworkInterface);

    if (g_SetParamValueBool(tmpPath, enable) != ANSC_STATUS_SUCCESS)
        return ANSC_STATUS_FAILURE;

    /* save to PSM */
    snprintf(psmRec, sizeof(psmRec), GRE_PARAM_USECSUM, ins);
    if (GrePsmSet(psmRec, enable ? "1" : "0") != 0)
        return ANSC_STATUS_FAILURE;

    return ANSC_STATUS_SUCCESS;
}
ANSC_STATUS
CosaDmlDiSetXfinityWiFiEnable
    (
        BOOL value
    )
{
#if 0
    if (DmSetBool("Device.WiFi.SSID.5.Enable", value) != ANSC_STATUS_SUCCESS) {
        AnscTraceError(("%s: set WiFi SSID Enable error\n", __FUNCTION__));
    } else {
        AnscTraceWarning(("%s: set WiFi SSID Enable OK\n", __FUNCTION__));
    }

    if (DmSetBool("Device.WiFi.Radio.1.X_CISCO_COM_ApplySetting", value) != ANSC_STATUS_SUCCESS) {
        AnscTraceError(("%s: set WiFi ApplySetting error\n", __FUNCTION__));
    } else {
        AnscTraceWarning(("%s: set WiFi ApplySetting OK\n", __FUNCTION__));
    }
#endif
	//zqiu>>
    //if (g_SetParamValueBool("Device.X_COMCAST_COM_GRE.Interface.1.Enable", value) != ANSC_STATUS_SUCCESS) {
    //    AnscTraceError(("%s: set WiFi ApplySetting error\n", __FUNCTION__));
    //} else {
    //    AnscTraceWarning(("%s: set WiFi ApplySetting OK\n", __FUNCTION__));
    //}


    //Only in Xfinitywifi Disable case SSIDs 5,6,9,10 should be disabled so that 
    //Xfinitywifi SSIDs broadcast will be stopped.
    //In enable case it is not required because user has to explicitly set SSIDs 5 and 6 or
    //SSIDs 9 and 10 that will be used for broadcast.
    if (FALSE == value)
    {
	 killXfinityWiFi();//LNT_EMU
        //SSIDs 5 and 6 case
        if (DmSetBool("Device.WiFi.SSID.5.Enable", value) != ANSC_STATUS_SUCCESS) {
            fprintf(stderr, "%s: set WiFi.SSID.5 Disable error\n", __FUNCTION__);
        } else {
            fprintf(stderr, "%s: set WiFi.SSID.5 Disable OK\n", __FUNCTION__);
        }

        if (DmSetBool("Device.WiFi.SSID.6.Enable", value) != ANSC_STATUS_SUCCESS) {
            fprintf(stderr, "%s: set WiFi.SSID.6 Disable error\n", __FUNCTION__);
        } else {
            fprintf(stderr, "%s: set WiFi.SSID.6 Disable OK\n", __FUNCTION__);
        }
    	
        //SSIDs 9 and 10 case
        if (DmSetBool("Device.WiFi.SSID.9.Enable", value) != ANSC_STATUS_SUCCESS) {
            fprintf(stderr, "%s: set WiFi.SSID.9 Disable error\n", __FUNCTION__);
        } else {
            fprintf(stderr, "%s: set WiFi.SSID.9 Disable OK\n", __FUNCTION__);
        }
	
        if (DmSetBool("Device.WiFi.SSID.10.Enable", value) != ANSC_STATUS_SUCCESS) {
            fprintf(stderr, "%s: set WiFi.SSID.10 Disable error\n", __FUNCTION__);
        } else {
            fprintf(stderr, "%s: set WiFi.SSID.10 Diable OK\n", __FUNCTION__);
        }
    }
    if (TRUE == value)//LNT_EMU
    {
	if (DmSetBool("Device.WiFi.SSID.5.Enable", value) != ANSC_STATUS_SUCCESS) {
            fprintf(stderr, "%s: set WiFi.SSID.5 Enable error\n", __FUNCTION__);
        } else {
            fprintf(stderr, "%s: set WiFi.SSID.5 Enable OK\n", __FUNCTION__);
        }
	if (DmSetBool("Device.WiFi.SSID.6.Enable", value) != ANSC_STATUS_SUCCESS) {
            fprintf(stderr, "%s: set WiFi.SSID.6 Enable error\n", __FUNCTION__);
        } else {
            fprintf(stderr, "%s: set WiFi.SSID.6 Enable OK\n", __FUNCTION__); //keerthu
        }
        system("/lib/rdk/handle_emu_gre.sh create");
    }
	
	if (g_SetParamValueBool("Device.X_COMCAST-COM_GRE.Tunnel.1.Enable", value) != ANSC_STATUS_SUCCESS) {
		fprintf(stderr, "%s: set X_COMCAST-COM_GRE.Tunnel.1.Enable error\n", __FUNCTION__);
        AnscTraceError(("%s: set X_COMCAST-COM_GRE.Tunnel.1.Enable error\n", __FUNCTION__));
		return ANSC_STATUS_FAILURE;
    } else {
        AnscTraceWarning(("%s: set X_COMCAST-COM_GRE.Tunnel.1.Enable OK\n", __FUNCTION__));
    }
	if (g_SetParamValueBool("Device.X_COMCAST-COM_GRE.Tunnel.1.Interface.1.Enable", value) != ANSC_STATUS_SUCCESS) {
        AnscTraceError(("%s: set X_COMCAST-COM_GRE.Tunnel.1.Interface.1.Enable error\n", __FUNCTION__));
    } else {
        AnscTraceWarning(("%s: set X_COMCAST-COM_GRE.Tunnel.1.Interface.1.Enable OK\n", __FUNCTION__));
    }
	if (g_SetParamValueBool("Device.X_COMCAST-COM_GRE.Tunnel.1.Interface.2.Enable", value) != ANSC_STATUS_SUCCESS) {
        AnscTraceError(("%s: set X_COMCAST-COM_GRE.Tunnel.1.Interface.2.Enable error\n", __FUNCTION__));
    } else {
        AnscTraceWarning(("%s: set X_COMCAST-COM_GRE.Tunnel.1.Interface.2.Enable OK\n", __FUNCTION__));
    }
	//zqiu<<
    if (value)
        PsmSet(HOTSPOT_PSM_EANBLE, "1");
    else
        PsmSet(HOTSPOT_PSM_EANBLE, "0");

    return ANSC_STATUS_SUCCESS;
}