コード例 #1
0
ANSC_STATUS
CosaDml_GreIfSetDSCPMarkPolicy(ULONG ins, INT dscp)
{
    char psmRec[MAX_GRE_PSM_REC + 1];
    char psmVal[16];
    char greNetworkInterface[256];
    char tmpPath[256];
    char tmp2Path[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), "%sTOSMode", greNetworkInterface);
    snprintf(tmp2Path, sizeof(tmp2Path), "%sTOS", greNetworkInterface);

    if (dscp >= 0) {
        if (g_SetParamValueString(tmpPath, "Static") != ANSC_STATUS_SUCCESS
                || g_SetParamValueUlong(tmp2Path, dscp << 2) != ANSC_STATUS_SUCCESS) {
            AnscTraceError(("Fail to set Cisco GRE DM\n"));
            return ANSC_STATUS_FAILURE;
        }
    } else if (dscp == -1) {
        if (g_SetParamValueString(tmpPath, "Inherited") != ANSC_STATUS_SUCCESS) {
            AnscTraceError(("Fail to set Cisco GRE DM\n"));
            return ANSC_STATUS_FAILURE;
        }
    } else if (dscp == -2) {
        if (g_SetParamValueString(tmpPath, "AutoMapped") != ANSC_STATUS_SUCCESS) {
            AnscTraceError(("Fail to set Cisco GRE DM\n"));
            return ANSC_STATUS_FAILURE;
        }
    } else {
        AnscTraceError(("Bad DSCP value\n"));
        return ANSC_STATUS_FAILURE;
    }

    /* save to PSM */
    snprintf(psmRec, sizeof(psmRec), GRE_PARAM_DSCPPOL, ins);
    snprintf(psmVal, sizeof(psmVal), "%d", dscp);
    if (GrePsmSet(psmRec, psmVal) != 0)
        return ANSC_STATUS_FAILURE;

    return ANSC_STATUS_SUCCESS;
}
コード例 #2
0
ANSC_STATUS
CosaDml_GreIfSetKeyGenPolicy(ULONG ins, COSA_DML_KEY_ID_GEN_POLICY policy)
{
    char psmRec[MAX_GRE_PSM_REC + 1], psmVal[64];
    char *mode;
    char greNetworkInterface[256];
    char tmpPath[256];

    if (ins != 1)
        return ANSC_STATUS_FAILURE;

    switch (policy) {
    case COSA_DML_KEY_ID_GEN_POLICY_DISABLED:
        mode = "Disabled";
        break;
    case COSA_DML_KEY_ID_GEN_POLICY_PROVISIONED:
        mode = "Manual";
        break;
    case COSA_DML_KEY_ID_GEN_POLICY_AUTO:
        mode = "Auto";
        break;
    default:
        return ANSC_STATUS_FAILURE;
    }

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

    if (g_SetParamValueString(tmpPath, mode) != ANSC_STATUS_SUCCESS)
        return ANSC_STATUS_FAILURE;

    /* save to PSM */
    snprintf(psmRec, sizeof(psmRec), GRE_PARAM_KEYGENPOL, ins);
    snprintf(psmVal, sizeof(psmVal), "%d", policy);

    if (GrePsmSet(psmRec, psmVal) != 0)
        return ANSC_STATUS_FAILURE;

    return ANSC_STATUS_SUCCESS;
}
コード例 #3
0
ANSC_STATUS
CosaDml_GreIfSetKeyId(ULONG ins, const char *keyId)
{
    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), "%sKey", greNetworkInterface);

    if (g_SetParamValueString(tmpPath, (char *)keyId) != 0)
        return ANSC_STATUS_FAILURE;

    /* save to PSM */
    snprintf(psmRec, sizeof(psmRec), GRE_PARAM_KEYID, ins);
    if (GrePsmSet(psmRec, keyId) != 0)
        return ANSC_STATUS_FAILURE;

    return ANSC_STATUS_SUCCESS;
}
コード例 #4
0
ANSC_STATUS
CosaDml_GreIfSetLocalInterfaces(ULONG ins, const char *ifs)
{
    char psmRec[MAX_GRE_PSM_REC + 1], dm[1024];
    char *cp, *if1, *if2, *br1, *br2, *brwfp1, *brwfp2;
    char *ifsBuf, *brsBuf, *brswfpBuf;
    int brIns, brInsStr[3];

    if (ins != 1 || !ifs)
        return ANSC_STATUS_FAILURE;

    if1 = if2 = br1 = br2 = brwfp1 = brwfp2 = NULL;
    ifsBuf = brsBuf = brswfpBuf = NULL;

    /*
     * when we got more then one local interfaces, we have to "models":
     * 1. each VLAN(Bridge) per SSID, 
     *    how can we determine which VLAN the IF belongs to ?
     *    a) let's use 1:1 mapping for IF and VLAN.
     *       first IF for first VLAN (Bridge)
     *    b) assume that port1 is for management port, port2 for upstream, port3 for local IF.
     *       that' ok since in this mode, each bridge has only one local IF.
     * 2. single VLAN for all SSIDs
     *    XXX: we do not support this model now
     *         to support this mode , we have to add/del port.
     */
    if ((ifsBuf = strdup(ifs)) == NULL)
        return ANSC_STATUS_FAILURE;
    if ((brsBuf = GetAssoBridge(ins)) == NULL) {
        free(ifsBuf);
        return ANSC_STATUS_FAILURE;
    }
    if ((brswfpBuf = GetAssoBridgeWiFiPort(ins)) == NULL) {
        free(ifsBuf);
        free(brsBuf);
        return ANSC_STATUS_FAILURE;
    }

    if1 = ifsBuf;
    if ((cp = strchr(ifsBuf, ',')) != NULL) {
        *cp++ = '\0';
        if2 = cp;
        if ((cp = strchr(cp, ',')) != NULL)
            *cp++ = '\0';
    }

    br1 = brsBuf;
    if ((cp = strchr(brsBuf, ',')) != NULL) {
        *cp++ = '\0';
        br2 = cp;
        if ((cp = strchr(cp, ',')) != NULL)
            *cp++ = '\0';
    }

    brwfp1 = brswfpBuf;
    if ((cp = strchr(brswfpBuf, ',')) != NULL) {
        *cp++ = '\0';
        brwfp2 = cp;
        if ((cp = strchr(cp, ',')) != NULL)
            *cp++ = '\0';
    }

    AnscTraceDebug(("if1 %s, br1 %s brwfp1 %s\n", if1 ? if1 : "n/a", br1 ? br1 : "n/a", brwfp1 ? brwfp1 : "n/a"));
    AnscTraceDebug(("if2 %s, br2 %s brwfp2 %s\n", if2 ? if2 : "n/a", br2 ? br2 : "n/a", brwfp2 ? brwfp2 : "n/a"));

    /* XXX: MultiLAN DM do not use "." for object path */
    if (if1 && strlen(if1) && if1[strlen(if1) - 1] == '.')
        if1[strlen(if1) - 1] = '\0';
    if (if2 && strlen(if2) && if2[strlen(if2) - 1] == '.')
        if2[strlen(if2) - 1] = '\0';

    if (br1 && strlen(br1)) {
        if (!if1 || !strlen(if1))
            if1 = "";
        snprintf(dm, sizeof(dm), "%sLowerLayers", brwfp1);
        AnscTraceDebug(("set %s to %s\n", dm, if1));
        if (g_SetParamValueString(dm, if1) != ANSC_STATUS_SUCCESS)
            AnscTraceError(("Fail to set %s to %s\n", dm, if1));

        /* inform the scripts about the changing */
        sscanf(br1, GRE_DM_BR_TEMP, &brIns);
        snprintf(brInsStr, sizeof(brInsStr), "%d", brIns);
        if (sysevent_set(sysevent_fd, sysevent_token, "hotspot-update_bridges", brInsStr, 0) != 0)
            AnscTraceError(("Fail to set sysevent: %s to %s\n", "hotspot_bridge-update", brInsStr));
    }

    if (br2 && strlen(br2)) {
        if (!if2 || !strlen(if2))
            if2 = "";
        snprintf(dm, sizeof(dm), "%sLowerLayers", brwfp2);
        AnscTraceDebug(("set %s to %s\n", dm, if2));
        if (g_SetParamValueString(dm, if2) != ANSC_STATUS_SUCCESS)
            AnscTraceError(("Fail to set %s to %s\n", dm, if2));

        /* inform the scripts about the changing */
        sscanf(br2, GRE_DM_BR_TEMP, &brIns);
        snprintf(brInsStr, sizeof(brInsStr), "%d", brIns);
        if (sysevent_set(sysevent_fd, sysevent_token, "hotspot-update_bridges", brInsStr, 0) != 0)
            AnscTraceError(("Fail to set sysevent: %s to %s\n", "hotspot_bridge-update", brInsStr));
    }

    /* save to PSM */
    snprintf(psmRec, sizeof(psmRec), GRE_PARAM_LOCALIFS, ins);
    if (GrePsmSet(psmRec, ifs) != 0) {
        free(ifsBuf);
        free(brsBuf);
        free(brswfpBuf);
        return ANSC_STATUS_FAILURE;
    }

    free(ifsBuf);
    free(brsBuf);
    free(brswfpBuf);
    return ANSC_STATUS_SUCCESS;
}
コード例 #5
0
void SetVideoServiceConfig()
{
    int ret = ANSC_STATUS_SUCCESS;
    BOOL isBridgeMode = FALSE;
    char bval[2] = {0};
    char pMoCAComponentName[64]="eRT.com.cisco.spvtg.ccsp.moca";
    char pComponentPath[64]="/com/cisco/spvtg/ccsp/moca";
    char *paramNames[]={"Device.MoCA.Interface.1.Enable"};
    char buf[5] = {0};
    char FirewallLevel[32] = {0};
    ULONG len = 0;

    len = sizeof(FirewallLevel);
    ret = g_GetParamValueString(g_pDslhDmlAgent, "Device.X_CISCO_COM_Security.Firewall.FirewallLevel", FirewallLevel, &len );
    if(ret != ANSC_STATUS_SUCCESS)
    {
        pthread_mutex_lock(&g_videoservice_mutex);
        videoServiceEnableInProgress = FALSE;   
        pthread_mutex_unlock(&g_videoservice_mutex);
        AnscTraceError(("[%s] VideoService : Fail to get Firewall Level \n", __FUNCTION__));
        return;
    } 

    if(!strcmp(FirewallLevel, "High"))
    {
        ret = g_SetParamValueString("Device.X_CISCO_COM_Security.Firewall.FirewallLevel", "Medium");
        if(ret != ANSC_STATUS_SUCCESS)
        {
            pthread_mutex_lock(&g_videoservice_mutex);
            videoServiceEnableInProgress = FALSE;   
            pthread_mutex_unlock(&g_videoservice_mutex);
            AnscTraceError(("[%s] VideoService : Fail to set Firewall Level to Medium\n", __FUNCTION__));
            return;
        }
        else
        {
            CcspTraceWarning(("Firewall Level being set to MEDIUM when VIDEOSERVICE is ENABLED\n"));
        }     
    }

    ret = is_usg_in_bridge_mode(&isBridgeMode);
    if ( ret == ANSC_STATUS_SUCCESS )
    {
        if(isBridgeMode)
        {
            ret = g_SetParamValueString("Device.X_CISCO_COM_DeviceControl.LanManagementEntry.1.LanMode","router");
            if(ret != ANSC_STATUS_SUCCESS)
            {
                pthread_mutex_lock(&g_videoservice_mutex);
                videoServiceEnableInProgress = FALSE;   
                pthread_mutex_unlock(&g_videoservice_mutex);
                AnscTraceError(("[%s] VideoService : Fail to set Disable Bridge Mode \n", __FUNCTION__));
                return;
            }
            else
            {
                CcspTraceWarning(("Bridge Mode being DISABLED when VIDEOSERVICE is ENABLED\n"));
            }            
        }
    }
    else
    {
        pthread_mutex_lock(&g_videoservice_mutex);
        videoServiceEnableInProgress = FALSE;   
        pthread_mutex_unlock(&g_videoservice_mutex);
        AnscTraceError(("[%s] VideoService : Fail to query bridge mode \n", __FUNCTION__));
        return;
    }


    syscfg_get( NULL, "moca_enabled", buf, sizeof(buf));
    if( buf != NULL )
    {
        if (strcmp(buf,"0") == 0)
        {
            parameterValStruct_t  value = {"Device.MoCA.Interface.1.Enable", "true", ccsp_boolean};
            char compo[256] = "eRT.com.cisco.spvtg.ccsp.moca";
            char bus[256] = "/com/cisco/spvtg/ccsp/moca";
            char* faultParam = NULL;
            int ret1 = CCSP_FAILURE;

            CCSP_MESSAGE_BUS_INFO *bus_info = (CCSP_MESSAGE_BUS_INFO *)bus_handle;

            ret1 = CcspBaseIf_setParameterValues(
                      bus_handle,
                      compo,
                      bus,
                      0,
                      0,
                      &value,
                      1,
                      TRUE,
                      &faultParam
                      );

            if(ret1 != CCSP_SUCCESS)
            {
                if(faultParam)
                {
                    bus_info->freefunc(faultParam);
                }

                pthread_mutex_lock(&g_videoservice_mutex);
                videoServiceEnableInProgress = FALSE;   
                pthread_mutex_unlock(&g_videoservice_mutex);
                CcspTraceError(("RDK_LOG_ERROR,  [%s] VideoService MoCA Enable FAILED: Failed ret %d\n",__FUNCTION__,ret1));
                return;
            }
            else
            {
                CcspTraceWarning(("MoCA is being ENABLED when VIDEOSERVICE is ENABLED\n"));
            }
        }
    }

    pthread_mutex_lock(&g_videoservice_mutex);
    videoServiceEnableInProgress = FALSE;                          
    pthread_mutex_unlock(&g_videoservice_mutex);
}