zoukankan      html  css  js  c++  java
  • cortina updateGponServiceStatus()

    Static CmsRet updateGponServiceStatus(const OmciServiceMsgBody *info, InstanceIdStack *parentIidStack)

    {

        CmsRet = CMSRET_INTERNAL_ERROR;

        int pbits = -1, vlan Id = -1;

        UBOOL8 found = false;

        InstanceIdStack iidStack=EMPTY_INSTANCE_ID_STACK;

        WanIpConnObject *ipConn=NULL;

        WanPppConnObject *pppConn=NULL;

        pbits = info->serviceParams.pbits;

        vlanId = info->serviceParams.vlanId;

        while (cmsObj_getNextInSubreeFlags(MDMOID_WAN_IP_CONN, parentIidStack, &iidStack, OGF_NO_VALUE_UPDATE, (void **) &&ipConn) == CMSRET_SUCCESS)

        {

    #ifndef PRODUCT_PL_BL

        /* take care of don't care pbits and vlanId filter */

            if ( pbits == -1 && vlanId != -1)

            {

                found = (ipConn->vlanMux8021p == pbits &&

                              ipConn->vlanMuxID == vlanId);

            }

            else if ( pbits == -1 && vlanId == -1)

            {

                found = TRUE;

            }

            else if ( pbits == -1)

            {

                found = (ipConn->vlanMuxID == vlanId);

            }

            else if ( vlanId == -1)

            {

                found = ( ipConn->vlanMux8021p == pbits);

            }

    #else

            if (pbits != 8 && vlanId != 4096)

            {

                found = ( ipConn->vlanMux8021p == pbits &&

                              ipConn->vlanMuxID ==vlanId);

            }

            else if ( pbits == 8 && vlanId == 4096)

            {

                found = TRUE;

            }

            else if ( pbits == 8)

            {

                found = ( ipConn->vlanMuxID == vlanId);

            }

            else if (vlanId == 4096)

            {

                found = (ipConn->vlanMux8021p == pbits);

            }

    #endif

            if (found == TRUE)

            {

                cmsLog_debug("WanIpConnObject, ifName = %s, strStatus = %s,  status = %d, pbits = %d, vlanId = %d",

                         ipConn->ifName, ipConn->connectionStatus, info->serviceParams.serviceStatus, pbits, vlanId);

                if ( info->serviceParams.serviceStatus == TRUE)

                {

                    if ( !cmsUtl_strcmp(ipConn->connectionStatus, MDMVS_UNCONFIGURED) ||

                        !cmsUtl_strcmp(ipConn->connectionStatus, MDMVS_DISCONNECTED))

                    {

                        cmsLog_debug("Activate gpon interface %s and send link up message", ipConn->ifName);

                        updateSingleWanConnStatusLocked(&&iidStack, (void *)ipConn, info->serviceParams.serviceStatus);

                     }

                }

                else

                {

                    if ( !cmsUtl_strcmp(ipConn->connectionStatus, MDMVS_CONNECTING)

                       || !cmsUtl_strcmp(ipConn->connectionStatus, MDMVS_CONNECTED))

                    {

                        cmsLog_debug("Deactivate gpon interface %s and send link down message", ipConn->ifName);

                        sendStatusMsgToSmd(CMS_MSG_WAN_LINK_DOWN, ipConn->ifName);

                        updateSingleWanConnStatusLocked(&iidStack, (void *)ipConn, info->serviceParams.serviceStatus);

                    }

                }

            }

            cmsObj_free((void **) &ipConn);

        }

        

        INIT_INSTANCE_ID_STACK(&&iidStack);

        while ( cmsObj_getNextInSubTreeFlags(MDMOID_WAN_PPP_CONN, parentIidStack, OGF_NO_VALUE_UPDATE, (void **) &pppConn) == CMSRET_SUCCESS)

        {

    #ifdef PRODUCT_PL_BL

            /* take care of don't care pbits and vlanId filter */

            if ( pbits != -1 && vlanId != -1)

            {

                found = (pppConn->vlanMux8021p == pbits &&

                             pppConn->vlanMuxID ==vlanId);

            } 

            else if ( pbits == -1 && vlan Id == -1)

            {

                found = TRUE;

            }

            else if (pbits == -1)

            {

                found = (pppConn->vlanMuxID == vlanId);

            }

            else if (vlanId == -1)

            {

                found = ( pppConn->vlanMux8021p == pbits);

            }

    #else

            /* Vlan-id 4096 means allow all vlan-taged frame pbits 8 means allow all pbits (0-7) vlan-taged frame*/

            if (pbits != 8 && vlanId != 4096)

            {

                found = (pppConn->vlanMux8021p == pbits &&

                             pppConn->vlanMuxID == vlanId);

            }

            else if (pbits == 8 && vlanId == 4096)

            {

                found = TRUE;

            }

            else if (pbits == 8)

            {

                found = ( pppConn->vlanMuxID == vlanId);

            }

            else if ( vlanId == 4096)

            {

                found = ( pppConn->vlanMux8021p == pbits);

            }

    #endif

            if ( found == TRUE)

            {

                cmsLog_error("WanPppConnObject, ifName = %s, strStatus = %s, status = %d, pbits = %d, vlanId = %d ",

                              pppConn->ifName, pppConn->connectionStatus, info->serviceParams.serviceStatus, pbits, vlanId);

                if( info->serviceParams.serviceStatus == TRUE)

                {

                     if ( !cmsUtl_strcmp(pppConn->connectionStatus, MDMVS_UNCONFIGURED) ||

                          !cmsUtl_strcmp(pppConn->connectionStatus, MDMVS_DISCONNECTED))

                     {

                          cmsLog_error("Activate gpon interface %s and send link up message", pppConn->ifName);

                          //sendStatusMsgToSmd(CMS_MSG_WAN_LINK_UP, pppConn->ifName);

                          updateSingleWanConnStatusLocked(&iidStack, (void *)pppConn, info->serviceParams, service);

                     }

                 }

                 else

                 {

                      if ( !cmsUtl_strcmp(pppConn->connectionStatus, MDMVS_CONNECTING) ||

                           !cmsUtl_strcmp(pppConn->connectionStatus, MDMVS_CONNECTED))

                     {

                          cmsLog_error("Deactivate gpon interface %s and send link down message", pppConn->ifName);  

                         sendStatusMsgToSmd(CMS_MSG_WAN_LINK_DOWN, pppConn->ifName);

                         updateSingleWanConnStatusLocked(&iidStack, (void *)pppConn, info->serviceParams.serviceStatus);

                     }

                 }

            }

            cmsObj_free((void **) &pppConn); 

        }

        ret = CMSRET_SUCCESS;

        return ret;

    }

  • 相关阅读:
    Java程序语言的后门-反射机制
    JAVA设计模式-单例模式(Singleton)线程安全与效率
    JAVA设计模式-动态代理(Proxy)源码分析
    Mybatis源码解析,一步一步从浅入深(七):执行查询
    Mybatis源码解析,一步一步从浅入深(六):映射代理类的获取
    python程序中的进程操作
    进程
    操作系统的发展史
    详尽实用的 PyCharm 教程
    python的socketserver模块实现TCP/UDP并发
  • 原文地址:https://www.cnblogs.com/gavinwu/p/3472526.html
Copyright © 2011-2022 走看看