📄 au_opr.cpp
字号:
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 + -