Commit 1a38a436 authored by cucengineer's avatar cucengineer

NAS ok except identity

parent aaf4bb81
......@@ -597,7 +597,7 @@ void *rrc_enb_process_msg(void *notUsed) {
}
extern void tesths(void);
// extern void tesths(void);//CUC:test
int main( int argc, char **argv ) {
......@@ -662,9 +662,9 @@ int main( int argc, char **argv ) {
#endif
#endif
*/
printf("1111111");
tesths ();
printf("1111111");
// printf("witcomm111witcomm: \n");//CUC:test
// tesths ();
// printf("witcomm111witcomm \n");
NB_UE_INST=1;
NB_INST=1;
......
......@@ -2445,7 +2445,7 @@ void *rrc_nrue_task( void *args_p ) {
uint8_t *buffer;
LOG_D(RRC, "[UE %d] Received %s: UEid %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), NAS_UPLINK_DATA_REQ (msg_p).UEid);
/* Create message for PDCP (ULInformationTransfer_t) */
length = do_ULInformationTransfer(&buffer, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.length, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.data);
length = do_ULInformationTransfer(&buffer, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.length, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.data);//QUES:
break;
}
......
......@@ -154,9 +154,8 @@ void *nas_ue_task(void *args_p)
void nr_nas_proc_dl_transfer_ind (UENAS_msg *msg, Byte_t *data, uint32_t len) { //QUES: 解出的msg干什么
uint8_t buffer[100];
UENAS_msg *msg1;
UENAS_msg msg1;
uint32_t len1=0;
nr_user_nas_t UErrc= {0};//QUES:user
int size;
decodeNasMsg(msg,data,len);
switch (msg->header.message_type) {
......@@ -172,36 +171,45 @@ void nr_nas_proc_dl_transfer_ind (UENAS_msg *msg, Byte_t *data, uint32_t len) {
// break;
// }
case AUTHENTICATION_REQUEST: { //send authenticationResponse
len1 += authenticationResponse((void **)&msg1->identity_response, &UErrc);
size = encodeNasMsg(msg1, buffer, len1);
case Authenticationrequest: { //send authenticationResponse
len1 += authenticationResponse5g(&msg1.authentication_response);
size = encodeNasMsg(&msg1, buffer, len1);
nas_itti_ul_data_req(0,buffer,size,0);
break;
}
case SECURITY_MODE_COMMAND: {
len1 += securityModeComplete5g((void **)&msg1->securitymode_complete);
size = encodeNasMsg(msg1, buffer, len1);
case Securitymodecommand: {
len1 += securityModeComplete5g(&msg1.securitymode_complete);
size = encodeNasMsg(&msg1, buffer, len1);
nas_itti_ul_data_req(0,buffer,size,0);
break;
}
case REGISTRATION_ACCEPT: {
len1 += registrationComplete5g((void **)&msg1->registration_complete);
size = encodeNasMsg(msg1, buffer, len1);
case Registrationaccept: {
len1 += registrationComplete5g(&msg1.registration_complete);
size = encodeNasMsg(&msg1, buffer, len1);
nas_itti_ul_data_req(0,buffer,size,0);
break;
}
}
printf("aaaaaaaaaaaaa: ");
printf("%d\n",size);
//****************************** //CUC:test
printf("decodeaaadecode:");
for (int i = 0; i < len; i++)
{
printf("%02x ",*(data+i));
}
printf("decodeaaadecode \n ");
printf("encodeaaaencode:");
for (int i = 0; i < size; i++)
{
printf("%02x ",*(buffer+i));
}
printf("aaaaaaaaaaaaa \n ");
printf("encodeaaaencode \n ");
//******************************
}
......@@ -223,15 +231,29 @@ int string2ByteArray(char* input,uint8_t* output)
return i;
}
void tesths(void)
void tesths(void) //CUC:test
{
UENAS_msg msg;
char name[] = "7e005601020000217d003b4a2e3bb80403de19020f57b16a2010583f0d352eb89001539b2cb2cbf1da5c";
uint32_t len=42;
Byte_t *data= (uint8_t *)malloc(sizeof(uint8_t)*len);
string2ByteArray(name, data);
nr_nas_proc_dl_transfer_ind(&msg,data,len);
printf("Authentication: \n ");
UENAS_msg msg1;
char Authenticationrequest[] = "7e005601020000217d003b4a2e3bb80403de19020f57b16a2010583f0d352eb89001539b2cb2cbf1da5c";
uint32_t len1=84;
Byte_t *data1= (uint8_t *)malloc(sizeof(uint8_t)*len1);
string2ByteArray(Authenticationrequest, data1);
nr_nas_proc_dl_transfer_ind(&msg1,data1,len1);
printf("Security mode: \n ");
UENAS_msg msg2;
char Securitymodecommand[] = "7e005d0201028020e1360102";
uint32_t len2=24;
Byte_t *data2= (uint8_t *)malloc(sizeof(uint8_t)*len2);
string2ByteArray(Securitymodecommand, data2);
nr_nas_proc_dl_transfer_ind(&msg2,data2,len2);
printf("Registration: \n ");
UENAS_msg msg3;
char Registrationrequest[] = "7e0042010177000bf202f8398000410000000154070002f83900000115020101210200005e01be";
uint32_t len3=94;
Byte_t *data3= (uint8_t *)malloc(sizeof(uint8_t)*len3);
string2ByteArray(Registrationrequest, data3);
nr_nas_proc_dl_transfer_ind(&msg3,data3,len3);
}
......@@ -254,6 +276,21 @@ int decodeNasMsg(UENAS_msg *msg, uint8_t *buffer, uint32_t len) {
switch(msg->header.message_type) {
case Authenticationrequest:
break;
case Securitymodecommand:
break;
case Registrationaccept:
break;
default:
LOG_TRACE(ERROR, "NR_UE - Unexpected message type: 0x%x",
msg->header.message_type);
decode_result = TLV_ENCODE_WRONG_MESSAGE_TYPE;
break;
}
LOG_FUNC_RETURN (header_result + decode_result);
......@@ -280,17 +317,17 @@ int encodeNasMsg(UENAS_msg *msg, uint8_t *buffer, uint32_t len) { //QUES:UENAS_m
// encode_result = encode_identity_response(&msg->identity_response, buffer, len);
// break;
// }
case AUTHENTICATION_RESPONSE: {
case Authenticationresponse: {
encode_result = encode_authentication_response5g(&msg->authentication_response, buffer, len);
break;
}
case SECURITY_MODE_COMPLETE: {
case Securitymodecomplete: {
encode_result = encode_security_mode_complete5g(&msg->securitymode_complete, buffer, len);//TODO:encode_security_mode_complete5g
break;
}
case REGISTRATION_COMPLETE: {
case Registrationcomplete: {
encode_result = encode_registration_complete5g(&msg->registration_complete, buffer, len);//TODO:encode_security_mode_complete5g
break;
}
......@@ -302,7 +339,9 @@ static int _nas_mm_msg_decode_header(mm_msg_header_t *header, const uint8_t *buf
int size = 0;
/* Check the buffer length */
if (len < sizeof(mm_msg_header_t)) {
return (TLV_ENCODE_BUFFER_TOO_SHORT);
}
/* Encode the extendedprotocol discriminator */
DECODE_U8(buffer + size, header->ex_protocol_discriminator, size);
......@@ -312,7 +351,11 @@ static int _nas_mm_msg_decode_header(mm_msg_header_t *header, const uint8_t *buf
DECODE_U8(buffer + size, header->message_type, size);
/* Check the protocol discriminator */
if (header->ex_protocol_discriminator != FGS_MOBILITY_MANAGEMENT_MESSAGE) {
LOG_TRACE(ERROR, "ESM-MSG - Unexpected extened protocol discriminator: 0x%x",
header->ex_protocol_discriminator);
return (TLV_ENCODE_PROTOCOL_NOT_SUPPORTED);
}
return (size);
}
......@@ -376,20 +419,28 @@ int encode_registration_complete5g(registrationcomplete_t *registrationcomplete,
return encoded;
}
int securityModeComplete5g(void **msg) {
myCalloc(resp, securityModeComplete_t);
resp->epd=SGSmobilitymanagementmessages;
resp->sh=0;
resp->mt=Registrationcomplete;
*msg=resp;
int authenticationResponse5g(authenticationresponse_t *msg) {
msg->epd=SGSmobilitymanagementmessages;
msg->sh=0;
msg->mt=Authenticationresponse;
msg->iei=IEI_AuthenticationResponse;
msg->RESlen=sizeof(msg->RES);
uint8_t AUTN[16]={0};
memcpy(&msg->RES,AUTN,msg->RESlen);
return sizeof(authenticationresponse_t);
}
int securityModeComplete5g(securityModeComplete_t *msg) {
msg->epd=SGSmobilitymanagementmessages;
msg->sh=0;
msg->mt=Securitymodecomplete;
return sizeof(securityModeComplete_t);
}
int registrationComplete5g(void **msg) {
myCalloc(resp, registrationcomplete_t);
resp->epd=SGSmobilitymanagementmessages;
resp->sh=0;
resp->mt=Securitymodecomplete;
*msg=resp;
int registrationComplete5g(registrationcomplete_t *msg) {
msg->epd=SGSmobilitymanagementmessages;
msg->sh=0;
msg->mt=Registrationcomplete;
return sizeof(registrationcomplete_t);
}
......@@ -80,10 +80,11 @@ int encodeNasMsg(UENAS_msg *msg, uint8_t *buffer, uint32_t len);
int encode_authentication_response5g(authenticationresponse_t *authentication_response, uint8_t *buffer, uint32_t len);
int encode_security_mode_complete5g(securityModeComplete_t *securitymodecomplete, uint8_t *buffer, uint32_t len);
int encode_registration_complete5g(registrationcomplete_t *registrationcomplete, uint8_t *buffer, uint32_t len);
int securityModeComplete5g(void **msg);
int registrationComplete5g(void **msg);
int authenticationResponse5g(authenticationresponse_t *msg);
int securityModeComplete5g(securityModeComplete_t *msg);
int registrationComplete5g(registrationcomplete_t *msg);
int string2ByteArray(char* input,uint8_t* output);
int string2ByteArray(char* input,uint8_t* output); //CUC:test
void tesths(void);
#endif /* NAS_TASK_H_ */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment