//verify PLMN Identity and TAC with configuration and store supportedTAList in gNB context, if verified; else response NG SETUP FAILURE with cause "Unknown PLMN"(9.3.1.2, ts38413)
//create ngap-ue context and store in gNB context to store UE information in gNB, for example, here RAN UE NGAP ID and location information and RRC Establishment Cause
//send NAS-PDU to NAS layer
/*get INITIAL_UE_MESSAGE IEs*/
//check the gNB context on which this UE is attached with assoc_id
Logger::amf_n2().error("No UE NGAP context with ran_ue_ngap_id(%d)",ran_ue_ngap_id);
return;
}
unc=ran_ue_id_2_ue_ngap_context(ran_ue_ngap_id);
if(unc.get()->amf_ue_ngap_id!=amf_ue_ngap_id){
if(unc.get()->amf_ue_ngap_id!=amf_ue_ngap_id){
Logger::amf_n2().error("The requested UE(amf_ue_ngap_id:0x%x) is not valid, existed UE which's amf_ue_ngap_id(0x%x)",amf_ue_ngap_id,unc.get()->amf_ue_ngap_id);
}
if(unc.get()->ng_ue_state!=NGAP_UE_CONNECTED){
if(unc.get()->ng_ue_state!=NGAP_UE_CONNECTED){
Logger::amf_n2().error("Received NGAP UPLINK_NAS_TRANSPORT while UE in state != NGAP_UE_CONNECTED");
Logger::itti().warn("Unicast message number %lu can not be sent from %d to %d, ended destination task!",message->msg_num,message->origin,message->destination);
returnRETURNerror;
}
}else{
Logger::itti().warn("Unicast message number %lu can not be sent from %d to %d, not started destination task!",
Logger::itti().warn("Unicast message number %lu can not be sent from %d to %d, not started destination task!",message->msg_num,message->origin,message->destination);
Logger::itti().warn("Broadcast message number %lu can not be sent from %d to %d, unknown state %d !",message->msg_num,message->origin,t,itti_task_ctxts[t]->task_state);
std::cout<<std::endl<<"Usage: smf [OPTIONS]..."<<std::endl<<" -h, --help Print help and exit"<<std::endl<<" -c, --libconfigcfg filename Read the application configuration from this file."<<std::endl
<<" -o, --stdoutlog Send the application logs to STDOUT fd."<<std::endl<<" -r, --rotatelog Send the application logs to local file (in current working directory)."<<std::endl;
Logger::sctp().error("Received data from peer with unsollicited PPID(%d), expecting(%d)",ntohl(sinfo.sinfo_ppid),association->ppid);
if(ntohl(sinfo.sinfo_ppid)!=association->ppid){
Logger::sctp().error("Received data from peer with unsollicited PPID(%d), expecting(%d)",ntohl(sinfo.sinfo_ppid),association->ppid);
returnSCTP_RC_ERROR;
}
Logger::sctp().info("[assoc_id(%d)][socket(%d)] Msg of length(%d) received from port(%d), on stream(%d), PPID(%d)",sinfo.sinfo_assoc_id,sd,n,ntohs(addr.sin6_port),sinfo.sinfo_stream,ntohl(sinfo.sinfo_ppid));
Logger::sctp().info("[assoc_id(%d)][socket(%d)] Msg of length(%d) received from port(%d), on stream(%d), PPID(%d)",sinfo.sinfo_assoc_id,sd,n,ntohs(addr.sin6_port),sinfo.sinfo_stream,ntohl(sinfo.sinfo_ppid));
Logger::sctp().error("This assoc id(%d) has not been fount in list",sctp_assoc_id);
return-1;
}
...
...
@@ -350,8 +382,8 @@ namespace sctp{
return-1;
}
Logger::sctp().debug("[%d][%d] Sending buffer %p of %d bytes on stream %d with ppid %d",assoc_desc->sd,sctp_assoc_id,bdata(*payload),blength(*payload),stream,assoc_desc->ppid);