⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 au_opr.cpp

📁 map协议源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
     tknStr->len = 0;
     RETVALUE(ROK);;
  }
  for(count=0;*string && count < (U8)(MF_SIZE_TKNSTRS +3);string++)
      tknStr->val[count++] = (U8)(*string);
  tknStr->len = (U8)(count);
  RETVALUE(ROK);
} /* maBldStr  */


Bool maAccSameAcn(TknStrS *acn1, MaApConName *acn2)
{
   U16 i;

   TRC2(maAccSameAcn)


   for (i=0; i< acn2->len;i++)
   {
      if(acn1->val[i] != acn2->val[i])
      {
         RETVALUE(FALSE);
      }
   }

   RETVALUE(TRUE);
} /* end of maAccSameAcn */

S16 maFill_StringS(TknStrS *evt, U32 len)
{
    U8   i;
    evt->pres = 1;
    evt->len = len;
    for(i=0;i<len;i++)
        evt->val[i] = i;
    RETVALUE(ROK);
}

S16 maFill_StringM(TknStrM *evt, U32 len)
{
    U8   i;
    evt->pres = 1;
    evt->len = len;
    for(i=0;i<len;i++)
        evt->val[i] = i;
       RETVALUE(ROK);
}

S16 maFill_StringE(TknStrE *evt, U32 len)
{
    U8   i;
    evt->pres = 1;
    evt->len = len;
    for(i=0;i<len;i++)
        evt->val[i] = i;
       RETVALUE(ROK);
}

S16 maFill_StringXL(TknStrXL *evt, U32 len)
{
    U8   i;
    evt->pres = 1;
    evt->len = len;
    for(i=0;i<len;i++)
        evt->val[i] = i;
      RETVALUE(ROK);
}


S16 maFill_TknU8(TknU8 *evt, U8 val)
{
    evt->pres = 1;
    evt->val =val ;
       RETVALUE(ROK);
}

S16 maFill_Integer(TknStrS *evt, U8 val)
{
    evt->pres = 1;
    evt->len = 1;
    evt->val[0] =val ;

       RETVALUE(ROK);
}

S16 maFill_NumString(TknStrS *evt, U8 len)
{
    U8   i;
    evt->pres = 1;
    evt->len = len;
    for(i=0;i<len;i++)
        evt->val[i]= i+48;
       RETVALUE(ROK);

}

S16 maFill_BitString(TknStrS *evt, U8 len)
{
    U8   i;
    evt->pres = 1;
    evt->len = len;
    for(i=0;i<len;i++)
        evt->val[i]= 1;
       RETVALUE(ROK);

}

S16 print_TknU8(char *s,TknU8 *evt)
{
    AUACC_PRINT("%s.pres = %d \r\n", s,evt->pres);
    AUACC_PRINT("%s.val = %d \r\n", s,evt->val);

    RETVALUE(ROK);

}

S16 print_StringS(char *s,TknStrS *evt)
{
    U8 i;

    AUACC_PRINT("%s.pres = %d \r\n", s,evt->pres);
    AUACC_PRINT("%s.len = %d \r\n", s,evt->len);
    for(i=0;i<evt->len;i++)
    {
        AUACC_PRINT("%s.val[%d] =%d \r\n",s,i,evt->val[i]);
    }

      RETVALUE(ROK);

}

S16 print_StringE(char *s,TknStrE *evt)
{
    U8 i;

    AUACC_PRINT("%s.pres = %d \r\n", s,evt->pres);
    AUACC_PRINT("%s.len = %d \r\n", s,evt->len);
    for(i=0;i<evt->len;i++)
    {
        AUACC_PRINT("%s.val[%d] =%d \r\n",s,i,evt->val[i]);
    }

      RETVALUE(ROK);

}


Bool maAccSameAddr(SpAddr *addr1, SpAddr *addr2)
{
   TRC2(maAccSameAddr)

   if ((addr1->pres == NOTPRSNT) ||
       (addr2->pres == NOTPRSNT) ||
       (addr1->sw != addr2->sw))
   {
      RETVALUE(FALSE);
   }

   if ((addr1->ssfPres != addr2->ssfPres) ||
       (addr1->ssf != addr2->ssf) ||
       (addr1->niInd != addr2->niInd) ||
       (addr1->rtgInd != addr2->rtgInd))
   {
      RETVALUE(FALSE);
   }

   if ((addr1->ssnInd != addr2->ssnInd) ||
       (addr1->pcInd != addr2->pcInd) ||
       (addr1->ssn != addr2->ssn)  ||
       (addr1->pc != addr2->pc))
   {
      RETVALUE(FALSE);
   }

   RETVALUE(TRUE);
} /* maAccSameAddr */

S16 maAccUpdTknStrS(U8 verFlg, TknStrS *ptr, U8 len, Data val)
{
   U8      i;     /* counter */

   TRC2(maAccUpdTknStrS)

#if 0  /* ma014.14: change - old code */
   if ( (pSwtch == LMA_VER1  && !(verFlg &  LMA_VER1)) ||
        (pSwtch == LMA_VER2  && !(verFlg &  LMA_VER2)) ||
        (pSwtch == LMA_VER2P && !(verFlg &  LMA_VER2P))
      )
#else  /* ma014.14: change - new code */
#ifndef LMA_VER_CHANGE
   if ( (pSwtch == LMA_VER1  && !(verFlg &  LMA_VER1)) ||
        (pSwtch == LMA_VER2  && !(verFlg &  LMA_VER2)) ||
        (pSwtch == LMA_VER2P && !(verFlg &  LMA_VER2P))
      )
#else /* LMA_VER_CHANGE */
   if ( (pSwtch == LMA_VER1  && !IS_EQUAL_VER1(verFlg)) ||
        (pSwtch == LMA_VER2  && !IS_EQUAL_VER2(verFlg)) ||
        (pSwtch == LMA_VER2P && !IS_EQUAL_VER2P(verFlg))
      )
#endif /* LMA_VER_CHANGE */
#endif /* ma014.14: change */
   {
      /* This field is not applicable to the protocol swtch */
      ptr->pres = FALSE;
      RETVALUE(RFAILED);
   }


   /* make the element as present */
   ptr->pres = TRUE;

   if (len > 22)
   {
      RETVALUE(RFAILED);
   }
   else
   {
      ptr->len = (U8) len;
   }

   for(i=0; i < len; i++)
   {
      ptr->val[i] = val;
   }

   RETVALUE(ROK);

} /* end of maAccUpdTknStrS */


S16 maAccUpdTknU8(U8 verFlg, TknU8 *ptr, U8 val)
{
   TRC2(maAccUpdTknU8)

#if 0  /* ma014.14: change - old code */
   if ( (pSwtch == LMA_VER1  && !(verFlg &  LMA_VER1)) ||
        (pSwtch == LMA_VER2  && !(verFlg &  LMA_VER2)) ||
        (pSwtch == LMA_VER2P && !(verFlg &  LMA_VER2P))
      )
#else  /* ma014.14: change - new code */
#ifndef LMA_VER_CHANGE
   if ( (pSwtch == LMA_VER1  && !(verFlg &  LMA_VER1)) ||
        (pSwtch == LMA_VER2  && !(verFlg &  LMA_VER2)) ||
        (pSwtch == LMA_VER2P && !(verFlg &  LMA_VER2P))
      )
#else /* LMA_VER_CHANGE */
   if ( (pSwtch == LMA_VER1  && !IS_EQUAL_VER1(verFlg)) ||
        (pSwtch == LMA_VER2  && !IS_EQUAL_VER2(verFlg)) ||
        (pSwtch == LMA_VER2P && !IS_EQUAL_VER2P(verFlg))
      )
#endif /* LMA_VER_CHANGE */
#endif /* ma014.14: change */
   {
      /* This field is not applicable to the protocol swtch */
      /* ptr->pres = FALSE; */
      RETVALUE(RFAILED);
   }
   /* make the element as present & update the value */
   ptr->pres = TRUE;
   ptr->val = val;

   RETVALUE(ROK);

} /* end of maAccUpdTknU8 */


S16 maAccUpdAuthInfoReq(MaAuthInfoReq *evt)
{
   maAccUpdTknStrS(LMA_VER_ALL,&evt->imsi,4,'D');        /* IMSI */
   RETVALUE(ROK);
} /* end of maAccUpdAuthInfoReq*/


S16 maAccUpdVlrCap(MaVlrCap *evt)
{
#if 0  /* ma002.14: change - old code */
 maAccUpdTknStrS(LMA_VER2P,&evt->supCamPhase,2,'D');
#else  /* ma002.14: change - new code */
 maAccUpdTknStrS(LMA_VER2P,&evt->supCamPhase,12,'\x01');
#endif /* ma002.14: change */
 maAccUpdTknU8(LMA_VER2P,(TknU8*)&evt->extCont,0);

 maAccUpdTknStrS(LMA_VER2P,&evt->suppLcsCapSets,12,'\x01');


 RETVALUE(ROK);
}/*maAccUpdVlrCap*/


S16 maAccUpdUpLocReq(MaUpLocReq *evt)
{
 maAccUpdTknStrS(LMA_VER_ALL,&evt->imsi,4,'D');
 maAccUpdTknStrS(LMA_VER_ALL,&evt->vlrNmb,4,'D');
 maAccUpdTknStrS(LMA_VER_ALL,&evt->lmsi,4,'D');
 maAccUpdTknU8(LMA_VER2P,(TknU8*)&evt->extCont,0);/* Extension Container */
 maAccUpdVlrCap(&evt->vlrCap);/* VLR - Capability */
 RETVALUE(ROK);
}/*maAccUpdUpLocReq*/


S16 maAccUpdUpLocRsp(MaUpLocRsp *evt)
{
 maAccUpdTknU8 (LMA_VER1,&evt->elmntPres,1);
 maAccUpdTknU8 (LMA_VER2AND2P,&evt->elmntPres,2);
 switch(evt->elmntPres.val)
 {
  default :
     RETVALUE(RFAILED);
  case 1:
   /* hlrNmb is for version  1&2 */
   maAccUpdTknStrS(LMA_VER1AND2,&evt->u.hlrNmb,4,'D');
  break;
  case 2:

   /* Structure "s" is for version 2 & 2+ */
     maAccUpdTknStrS(LMA_VER2AND2P,&evt->u.s.hlrNmbExt,4,'D');
     maAccUpdTknU8(LMA_VER2P,(TknU8*)&evt->u.s.extCont,0);
  break;
 }
 RETVALUE(ROK);
}/*maAccUpdUpLocRsp*/


#ifdef MAP_29_002
    S16 maAccUpdAuthSet(MaAuthSet *evt)
    {
#if 0
       maAccUpdTknStrS(LMA_VER_ALL,&evt->u.quintuplet[0].rand,16,'D'); /* Rand nmb  */
       maAccUpdTknStrS(LMA_VER_ALL,&evt->u.quintuplet[0].xres,4,'D'); /* SRes */
       maAccUpdTknStrS(LMA_VER_ALL,&evt->u.quintuplet[0].ck,8,'D');
       maAccUpdTknStrS(LMA_VER_ALL,&evt->u.quintuplet[0].ik,8,'D');
       maAccUpdTknStrS(LMA_VER_ALL,&evt->u.quintuplet[0].autn,8,'D');
#endif

       RETVALUE(ROK);
    } /* end of maAccUpdAuthSet*/
#else
    S16 maAccUpdAuthSet(MaAuthSet *evt)
    {
       maAccUpdTknStrS(LMA_VER_ALL,&evt->rand,16,'D'); /* Rand nmb  */
       maAccUpdTknStrS(LMA_VER_ALL,&evt->sres,4,'D'); /* SRes */
       maAccUpdTknStrS(LMA_VER_ALL,&evt->kc,8,'D');

       RETVALUE(ROK);
    } /* end of maAccUpdAuthSet*/
#endif


S16 maAccUpdAuthInfoRsp(MaAuthInfoRsp *evt)
{
   U16 i;
   for (i=0; i< MA_MAX_AUTHSET; i++)
   {
#ifdef MAP_29_002
      maAccUpdAuthSet(&evt->authSetLst[i]);
#else
      maAccUpdAuthSet(&evt->authSetLst[i]);
#endif
   }
   RETVALUE(ROK);
} /* end of maAccUpdAuthInfoRsp*/

/* --------- MAP Test Cases for 3G/GSM-MAP-------------  */
#define Offff(type, mem) ((unsigned int)&(((type *)0)->mem))
S16 maAccAuthInfoReq(MaAuthInfoReq *evt)
{
#if 0 /* Added by felix for AuthInfo v2 */
 evt->imsi.pres = 1;
 evt->imsi.len = 6;
 evt->imsi.val[0] = 0x31;
 evt->imsi.val[1] = 0x59;
 evt->imsi.val[2] = 0x17;
 evt->imsi.val[3] = 0x71;
 evt->imsi.val[4] = 0x55;
 evt->imsi.val[5] = 0xf6;

 evt->aiReq2P.imsi.pres = 0;
 evt->aiReq2P.nmbReqVec.pres = 0;
 evt->aiReq2P.immResPreferred.pres = 0;
 evt->aiReq2P.resyncInfo.rand.pres = 0;
 evt->aiReq2P.resyncInfo.auts.pres = 0;
 evt->aiReq2P.extCont.pres = 0;
#else /* This is for AuthInfo v3 */
 int i;


 evt->imsi.pres = 1;
 evt->imsi.len = 8;
 for (i = 0; i < 8; i++)
    evt->imsi.val[i] = i;

 evt->nmbReqVec.pres = 1;
 evt->nmbReqVec.len = 1;
 evt->nmbReqVec.val[0] = 5;

 evt->segProhibited.pres = 1;
 evt->segProhibited.val = 0;

 evt->immResPreferred.pres = 1;
 evt->immResPreferred.val = 0;

 evt->resyncInfo.rand.pres = 1;
 evt->resyncInfo.rand.len = 16;
 for (i = 0; i < 16; i++)
    evt->resyncInfo.rand.val[i] = i;

 evt->resyncInfo.auts.pres = 1;
 evt->resyncInfo.auts.len = 14;
 for (i = 0; i < 14; i++)
    evt->resyncInfo.auts.val[i] = i;

#endif

 RETVALUE(ROK);
}/*maAccUpdUpLocReq*/

S16 maAccAuthInfoRsp(MaAuthInfoRsp *evt)
{


 int i,j;

 memset(evt, 0, sizeof(evt));

#if 0
 for(i=0; i<5; i++)
 {
     evt->authSetLst[i].rand.pres = 1;
     evt->authSetLst[i].rand.len  = 16;
     for (j = 0; j < 16; j++)
     {
         evt->authSetLst[i].rand.val[j] = j;
     }

     evt->authSetLst[i].sres.pres = 1;
     evt->authSetLst[i].sres.len  = 4;
     for (j = 0; j < 4; j++)
     {
         evt->authSetLst[i].sres.val[j] = j;
     }

     evt->authSetLst[i].kc.pres = 1;
     evt->authSetLst[i].kc.len  = 8;
     for (j = 0; j < 8; j++)
     {
         evt->authSetLst[i].kc.val[j] = j;
     }

 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -