Commit aa2e7616 authored by liuyu's avatar liuyu

one ue one amf_ue_ngap_id and random amf_ue_ngap_id,one ue statelessok,but tu...

one ue one amf_ue_ngap_id and random amf_ue_ngap_id,one ue statelessok,but tu use(one cpe,one ueransim) is fault,because udsf is down
parent b7ad7e84
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
#include "amf_n2.hpp" #include "amf_n2.hpp"
#include "amf_statistics.hpp" #include "amf_statistics.hpp"
#include "ngap_app.hpp" #include "ngap_app.hpp"
#include <time.h>
using namespace ngap; using namespace ngap;
using namespace nas; using namespace nas;
//using namespace amf ; //using namespace amf ;
...@@ -154,7 +154,9 @@ void amf_app_task(void*) { ...@@ -154,7 +154,9 @@ void amf_app_task(void*) {
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
long amf_app::generate_amf_ue_ngap_id() { long amf_app::generate_amf_ue_ngap_id() {
long tmp = 0; long tmp = 0;
tmp = __sync_fetch_and_add(&amf_app_ue_ngap_id_generator, 1); // tmp = __sync_fetch_and_add(&amf_app_ue_ngap_id_generator, 1);
srand(time(NULL));
tmp = rand()%10000 + 1;
return tmp & 0xffffffffff; return tmp & 0xffffffffff;
} }
...@@ -332,7 +334,7 @@ void amf_app::handle_itti_message( ...@@ -332,7 +334,7 @@ void amf_app::handle_itti_message(
/********************** hxs add *******************************/ /********************** hxs add *******************************/
std::string record_id = "RECORD_ID=\'" + ue_context_key + "\'"; std::string record_id = "amf_ue_ngap_id=\'" + to_string(amf_ue_ngap_id) + "\'";
std::string udsf_url = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/" + std::string("ue_context/records/") + record_id ; std::string udsf_url = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/" + std::string("ue_context/records/") + record_id ;
nlohmann::json udsf_ue_context; nlohmann::json udsf_ue_context;
nlohmann::json cgi; nlohmann::json cgi;
......
...@@ -239,10 +239,6 @@ void amf_n1::handle_itti_message(itti_uplink_nas_data_ind &nas_data_ind) { ...@@ -239,10 +239,6 @@ void amf_n1::handle_itti_message(itti_uplink_nas_data_ind &nas_data_ind) {
if (is_guti_2_nas_context(guti)) if (is_guti_2_nas_context(guti))
{ {
is_guti_2_nas_context_in_udsf(guti);
printf("--------service -8---\n");
nc = guti_2_nas_context_in_udsf(guti);
nc = guti_2_nas_context(guti); nc = guti_2_nas_context(guti);
} }
else if(is_guti_2_nas_context_in_udsf(guti)) else if(is_guti_2_nas_context_in_udsf(guti))
......
...@@ -167,8 +167,25 @@ void amf_n11::handle_itti_message( ...@@ -167,8 +167,25 @@ void amf_n11::handle_itti_message(
std::shared_ptr<pdu_session_context> psc = std::shared_ptr<pdu_session_context>(new pdu_session_context()); std::shared_ptr<pdu_session_context> psc = std::shared_ptr<pdu_session_context>(new pdu_session_context());
//***************************stateless //***************************stateless
nlohmann::json udsf_response; nlohmann::json udsf_response;
std::string record_id = "pdu_session_id=\'" + to_string(itti_msg.pdu_session_id) + "\'"; std::shared_ptr<nas_context> nc = std::shared_ptr<nas_context>(new nas_context());
std::string udsf_url = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/" + std::string("pdu_session_context/records/") + record_id ; std::string record_id_nas = "amf_ue_ngap_id=\'" + to_string(itti_msg.amf_ue_ngap_id) + "\'";
std::string udsf_url_nas = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/" + std::string("nas_context/records/") +record_id_nas ;
if(!amf_n2_inst->curl_http_client_udsf(udsf_url_nas,"","GET",udsf_response)){
Logger::amf_n2().error("No existing pdu_session_context with assoc_id ");
return ;
}
else{
Logger::amf_n2().debug("udsf_response: %s", udsf_response.dump().c_str());
nc.get()->nas_context_from_json(udsf_response);
}
std::string supi ="imsi-" + nc.get()->imsi ;
Logger::amf_n11().debug(
"Send PDU Session Update SM Context Request to SMF (SUPI %s, PDU Session "
"ID %d)",
supi.c_str(), itti_msg.pdu_session_id);
std::string record_id = "RECORD_ID=\'" +supi + "\'";
std::string udsf_url = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/" + std::string("pdu_session_context/records/") + record_id;
if(!amf_n2_inst->curl_http_client_udsf(udsf_url,"","GET",udsf_response)){ if(!amf_n2_inst->curl_http_client_udsf(udsf_url,"","GET",udsf_response)){
Logger::amf_n2().error("No existing pdu_session_context with assoc_id "); Logger::amf_n2().error("No existing pdu_session_context with assoc_id ");
return ; return ;
...@@ -182,12 +199,8 @@ void amf_n11::handle_itti_message( ...@@ -182,12 +199,8 @@ void amf_n11::handle_itti_message(
// if (amf_n1_inst->is_amf_ue_id_2_nas_context_in_udsf(psc.get()->amf_ue_ngap_id)) // if (amf_n1_inst->is_amf_ue_id_2_nas_context_in_udsf(psc.get()->amf_ue_ngap_id))
// nc = amf_n1_inst->amf_ue_id_2_nas_context_in_udsf(psc.get()->amf_ue_ngap_id); // nc = amf_n1_inst->amf_ue_id_2_nas_context_in_udsf(psc.get()->amf_ue_ngap_id);
std::string supi =psc.get()->supi;
Logger::amf_n11().debug(
"Send PDU Session Update SM Context Request to SMF (SUPI %s, PDU Session "
"ID %d)",
supi.c_str(), itti_msg.pdu_session_id);
//***************************stateless //***************************stateless
// if (is_supi_to_pdu_ctx(supi)) { // if (is_supi_to_pdu_ctx(supi)) {
...@@ -256,7 +269,7 @@ void amf_n11::handle_itti_message(itti_smf_services_consumer& smf) { ...@@ -256,7 +269,7 @@ void amf_n11::handle_itti_message(itti_smf_services_consumer& smf) {
std::string record_id = "RECORD_ID=\'" +supi + "\'"; std::string record_id = "RECORD_ID=\'" +supi + "\'";
std::string udsf_url = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/" + std::string("pdu_session_context/records/") + record_id; std::string udsf_url = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/" + std::string("pdu_session_context/records/") + record_id;
if(!amf_n2_inst->curl_http_client_udsf(udsf_url,"","GET",udsf_response)){ if(!amf_n2_inst->curl_http_client_udsf(udsf_url,"","GET",udsf_response) || udsf_response == nullptr){
Logger::amf_n2().error("No existing pdu_session_context with assoc_id "); Logger::amf_n2().error("No existing pdu_session_context with assoc_id ");
psc = std::shared_ptr<pdu_session_context>(new pdu_session_context()); psc = std::shared_ptr<pdu_session_context>(new pdu_session_context());
} }
......
...@@ -576,7 +576,8 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) { ...@@ -576,7 +576,8 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) {
//get gnb_context from udsf.200 ok gnb_context is exist //get gnb_context from udsf.200 ok gnb_context is exist
gnb_context *gc1 = new gnb_context(); gnb_context *gc1 = new gnb_context();
nlohmann::json udsf_response; nlohmann::json udsf_response;
std::string record_id_ue_ngap;
nlohmann::json udsf_ue_ngap_context;
std::string record_id = "RECORD_ID=\'" + std::to_string(init_ue_msg.assoc_id) + "\'"; std::string record_id = "RECORD_ID=\'" + std::to_string(init_ue_msg.assoc_id) + "\'";
std::string udsf_url = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/" + std::string("gnb_context/records/") + record_id ; std::string udsf_url = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/" + std::string("gnb_context/records/") + record_id ;
...@@ -616,16 +617,62 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) { ...@@ -616,16 +617,62 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) {
Logger::amf_n2().error("Missing Mandatory IE (RanUeNgapId)"); Logger::amf_n2().error("Missing Mandatory IE (RanUeNgapId)");
return; return;
} }
std::shared_ptr<nas_context> nc = std::shared_ptr<nas_context>(new nas_context());
std::string _5g_s_tmsi;
Tai_t tai;
NrCgi_t cgi;
if (!init_ue_msg.initUeMsg->get5GS_TMSI(_5g_s_tmsi)) {
itti_msg->is_5g_s_tmsi_present = false;
Logger::amf_n2().debug("5g_s_tmsi not present");
itti_msg->amf_ue_ngap_id = -1;
record_id_ue_ngap = "RECORD_ID=\'" +std::to_string(ran_ue_ngap_id) + "\'";
} else {
itti_msg->is_5g_s_tmsi_present = true;
itti_msg->_5g_s_tmsi = _5g_s_tmsi;
Logger::amf_n2().debug("5g_s_tmsi present");
std::string guti;
init_ue_msg.initUeMsg->getUserLocationInfoNR(cgi, tai);
guti = tai.mcc + tai.mnc + amf_cfg.guami.regionID + itti_msg->_5g_s_tmsi ;
Logger::amf_app().debug("Receiving GUTI %s", guti.c_str());
if(amf_n1_inst->is_guti_2_nas_context_in_udsf(guti))
{
nlohmann::json udsf_response;
std::string record_id_nas = "guti=\'" + guti + "\'";
std::string udsf_url = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/"+ std::string("nas_context/records/") + record_id_nas;
if(!amf_n2_inst->curl_http_client_udsf(udsf_url,"","GET",udsf_response))
{
Logger::amf_n1().error("No existing nas_context with GUTI %s",guti.c_str());
return ;
}
nc.get()->nas_context_from_json(udsf_response);
ran_ue_ngap_id = nc.get()->ran_ue_ngap_id;
itti_msg->amf_ue_ngap_id = nc.get()->amf_ue_ngap_id;
if(nc == nullptr)
{
printf("-----nc context ----amf n2--!!!!!!!!!!!! ");
}
}
}
std::shared_ptr<ue_ngap_context> unc; std::shared_ptr<ue_ngap_context> unc;
if (!is_ran_ue_id_2_ue_ngap_context(ran_ue_ngap_id)) { if (!is_ran_ue_id_2_ue_ngap_context(ran_ue_ngap_id)) {
Logger::amf_n2().debug( Logger::amf_n2().debug(
"Create a new UE NGAP context with ran_ue_ngap_id 0x%x", "Create a new UE NGAP context with ran_ue_ngap_id 0x%x",
ran_ue_ngap_id); ran_ue_ngap_id);
unc = std::shared_ptr<ue_ngap_context>(new ue_ngap_context()); unc = std::shared_ptr<ue_ngap_context>(new ue_ngap_context());
set_ran_ue_ngap_id_2_ue_ngap_context(ran_ue_ngap_id, unc); set_ran_ue_ngap_id_2_ue_ngap_context(ran_ue_ngap_id, unc);
} else { } else {
unc = ran_ue_id_2_ue_ngap_context(ran_ue_ngap_id); unc = ran_ue_id_2_ue_ngap_context(ran_ue_ngap_id);
} }
ran_ue_ngap_id = init_ue_msg.initUeMsg->getRanUENgapID();
if (unc.get() == nullptr) { if (unc.get() == nullptr) {
Logger::amf_n2().error( Logger::amf_n2().error(
"Failed to get UE NGAP context for ran_ue_ngap_id 0x%x", 21); "Failed to get UE NGAP context for ran_ue_ngap_id 0x%x", 21);
...@@ -638,8 +685,8 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) { ...@@ -638,8 +685,8 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) {
if (gc.get()->next_sctp_stream >= gc.get()->instreams) if (gc.get()->next_sctp_stream >= gc.get()->instreams)
gc.get()->next_sctp_stream = 1; gc.get()->next_sctp_stream = 1;
unc.get()->gnb_assoc_id = init_ue_msg.assoc_id; unc.get()->gnb_assoc_id = init_ue_msg.assoc_id;
NrCgi_t cgi;
Tai_t tai;
if (init_ue_msg.initUeMsg->getUserLocationInfoNR(cgi, tai)) { if (init_ue_msg.initUeMsg->getUserLocationInfoNR(cgi, tai)) {
itti_msg->cgi = cgi; itti_msg->cgi = cgi;
itti_msg->tai = tai; itti_msg->tai = tai;
...@@ -662,7 +709,7 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) { ...@@ -662,7 +709,7 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) {
itti_msg->ueCtxReq = init_ue_msg.initUeMsg->getUeContextRequest(); itti_msg->ueCtxReq = init_ue_msg.initUeMsg->getUeContextRequest();
} }
#endif #endif
std::string _5g_s_tmsi;
if (!init_ue_msg.initUeMsg->get5GS_TMSI(_5g_s_tmsi)) { if (!init_ue_msg.initUeMsg->get5GS_TMSI(_5g_s_tmsi)) {
itti_msg->is_5g_s_tmsi_present = false; itti_msg->is_5g_s_tmsi_present = false;
Logger::amf_n2().debug("5g_s_tmsi not present"); Logger::amf_n2().debug("5g_s_tmsi not present");
...@@ -672,6 +719,26 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) { ...@@ -672,6 +719,26 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) {
Logger::amf_n2().debug("5g_s_tmsi present"); Logger::amf_n2().debug("5g_s_tmsi present");
init_ue_msg.initUeMsg->get5GS_TMSI(unc.get()->s_setid, unc.get()->s_pointer, unc.get()->s_tmsi); init_ue_msg.initUeMsg->get5GS_TMSI(unc.get()->s_setid, unc.get()->s_pointer, unc.get()->s_tmsi);
record_id_ue_ngap = "RECORD_ID=\'" +std::to_string(nc.get()->ran_ue_ngap_id) + "\'";
nlohmann::json udsf_nas_context;
std::string record_id_nas = "RECORD_ID=\'" + to_string(nc.get()->amf_ue_ngap_id) + "\'";
std::string udsf_url_nas = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/" + std::string("nas_context/records/") +record_id_nas ;
udsf_response;
udsf_nas_context["meta"] ["tags"] = {
{"RECORD_ID",nlohmann::json::array({to_string(nc.get()->amf_ue_ngap_id)})},
{"from_nf_ID",nlohmann::json::array({"AMF_1234"})}
} ;
udsf_nas_context["blocks"] = nlohmann::json::array({
{{"Content-ID", "ran_ue_ngap_id"},{"Content-Type", "varchar(32)"},{"content", to_string(ran_ue_ngap_id)}}
});
amf_n2_inst->curl_http_client_udsf(udsf_url_nas,udsf_nas_context.dump(),"PUT",udsf_response);
nlohmann::json amf_ue_ngip_id_in_udsf = {};
amf_ue_ngip_id_in_udsf["Content-ID"]="amf_ue_ngip_id";
amf_ue_ngip_id_in_udsf["Content-Type"]="varchar(32)";
amf_ue_ngip_id_in_udsf["content"] = to_string(nc.get()->amf_ue_ngap_id);
udsf_ue_ngap_context["blocks"].push_back(amf_ue_ngip_id_in_udsf);
} }
uint8_t* nas_buf; uint8_t* nas_buf;
...@@ -685,17 +752,19 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) { ...@@ -685,17 +752,19 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) {
} }
} }
itti_msg->ran_ue_ngap_id = ran_ue_ngap_id; itti_msg->ran_ue_ngap_id = ran_ue_ngap_id;
itti_msg->amf_ue_ngap_id = -1; //
/***************************hxs add**************/ /***************************hxs add**************/
//send udsf to storage us_ngap_context recordid=ran+ue_ngap_id //send udsf to storage us_ngap_context recordid=ran+ue_ngap_id
record_id = "RECORD_ID=\'" +std::to_string(unc.get()->ran_ue_ngap_id) + "\'";
std::string udsf_put_url = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/" + std::string("ue_ngap_context/records/") + record_id ; std::string udsf_put_url = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/" + std::string("ue_ngap_context/records/") + record_id_ue_ngap ;
nlohmann::json udsf_ue_ngap_context;
// nlohmann::json udsf_response; // nlohmann::json udsf_response;
udsf_ue_ngap_context["meta"] ["tags"] = { udsf_ue_ngap_context["meta"] ["tags"] = {
{"RECORD_ID",nlohmann::json::array({to_string(unc.get()->ran_ue_ngap_id)})}, {"RECORD_ID",nlohmann::json::array({to_string(ran_ue_ngap_id)})},
{"from_nf_ID",nlohmann::json::array({"AMF_1234"})} {"from_nf_ID",nlohmann::json::array({"AMF_1234"})}
} ; } ;
udsf_ue_ngap_context["blocks"] = nlohmann::json::array({ udsf_ue_ngap_context["blocks"] = nlohmann::json::array({
...@@ -711,6 +780,8 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) { ...@@ -711,6 +780,8 @@ void amf_n2::handle_itti_message(itti_initial_ue_message& init_ue_msg) {
std::string json_part = udsf_ue_ngap_context.dump(); std::string json_part = udsf_ue_ngap_context.dump();
amf_n2_inst->curl_http_client_udsf(udsf_put_url,json_part,"PUT",udsf_response); amf_n2_inst->curl_http_client_udsf(udsf_put_url,json_part,"PUT",udsf_response);
// udsf_put_url = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/" + std::string("ue_ngap_context/records/") + std::to_string(unc.get()->ran_ue_ngap_id) ; // udsf_put_url = "http://10.112.202.24:7123/nudsf-dr/v1/amfdata/" + std::string("ue_ngap_context/records/") + std::to_string(unc.get()->ran_ue_ngap_id) ;
// if(!amf_n2_inst->curl_http_client_udsf(udsf_put_url,"","GET",udsf_response)){ // if(!amf_n2_inst->curl_http_client_udsf(udsf_put_url,"","GET",udsf_response)){
// Logger::amf_n2().error("No existing gNG context with assoc_id (%d)", unc.get()->ran_ue_ngap_id); // Logger::amf_n2().error("No existing gNG context with assoc_id (%d)", unc.get()->ran_ue_ngap_id);
......
...@@ -582,8 +582,8 @@ bool nas_context::nas_context_from_json(nlohmann::json j) ...@@ -582,8 +582,8 @@ bool nas_context::nas_context_from_json(nlohmann::json j)
{ {
// ctx_avaliability_ind = nas_context_ctx_avaliability_ind_from_json(j); // ctx_avaliability_ind = nas_context_ctx_avaliability_ind_from_json(j);
// is_stacs_available = nas_context_is_stacs_available_from_json(j); // is_stacs_available = nas_context_is_stacs_available_from_json(j);
// amf_ue_ngap_id = nas_context_amf_ue_ngap_id_from_json(j); amf_ue_ngap_id = nas_context_amf_ue_ngap_id_from_json(j);
// ran_ue_ngap_id = nas_context_ran_ue_ngap_id_from_json(j); ran_ue_ngap_id = nas_context_ran_ue_ngap_id_from_json(j);
// nas_status = nas_context_nas_status_from_json(j); // nas_status = nas_context_nas_status_from_json(j);
// _5gmm_state = nas_context__5gmm_state_from_json( j); // _5gmm_state = nas_context__5gmm_state_from_json( j);
// registration_type = nas_context_registration_type_from_json(j); // registration_type = nas_context_registration_type_from_json(j);
......
...@@ -360,6 +360,7 @@ void pdu_session_context::pdu_session_context_n1sm_from_json(nlohmann::json j) ...@@ -360,6 +360,7 @@ void pdu_session_context::pdu_session_context_n1sm_from_json(nlohmann::json j)
if(it_block->at("Content-ID") == "n1sm") if(it_block->at("Content-ID") == "n1sm")
{ {
string s = it_block->at("content"); string s = it_block->at("content");
s= s.substr(0, s.length() - 2);
// msg_str_2_msg_hex(s.substr(0, s.length()),n1sm); // msg_str_2_msg_hex(s.substr(0, s.length()),n1sm);
unsigned int msg_len = s.length(); unsigned int msg_len = s.length();
char* data = (char*) malloc(msg_len + 1); char* data = (char*) malloc(msg_len + 1);
......
...@@ -75,6 +75,7 @@ class itti_nsmf_pdusession_update_sm_context : public itti_msg_n11 { ...@@ -75,6 +75,7 @@ class itti_nsmf_pdusession_update_sm_context : public itti_msg_n11 {
bstring n2sm; bstring n2sm;
bool is_n2sm_set; bool is_n2sm_set;
std::string n2sm_info_type; std::string n2sm_info_type;
long amf_ue_ngap_id : 40;
}; };
class itti_nsmf_pdusession_release_sm_context : public itti_msg_n11 { class itti_nsmf_pdusession_release_sm_context : public itti_msg_n11 {
......
...@@ -172,6 +172,7 @@ int ngap_amf_handle_initial_context_setup_response( ...@@ -172,6 +172,7 @@ int ngap_amf_handle_initial_context_setup_response(
itti_msg->n2sm = n2sm; itti_msg->n2sm = n2sm;
itti_msg->is_n2sm_set = true; itti_msg->is_n2sm_set = true;
itti_msg->n2sm_info_type = "PDU_RES_SETUP_RSP"; itti_msg->n2sm_info_type = "PDU_RES_SETUP_RSP";
itti_msg->amf_ue_ngap_id = initCtxResp->getAmfUeNgapId();
std::shared_ptr<itti_nsmf_pdusession_update_sm_context> i = std::shared_ptr<itti_nsmf_pdusession_update_sm_context> i =
std::shared_ptr<itti_nsmf_pdusession_update_sm_context>(itti_msg); std::shared_ptr<itti_nsmf_pdusession_update_sm_context>(itti_msg);
int ret = itti_inst->send_msg(i); int ret = itti_inst->send_msg(i);
...@@ -339,6 +340,7 @@ int ngap_amf_handle_pdu_session_resource_setup_response( ...@@ -339,6 +340,7 @@ int ngap_amf_handle_pdu_session_resource_setup_response(
itti_msg->n2sm = n2sm; itti_msg->n2sm = n2sm;
itti_msg->is_n2sm_set = true; itti_msg->is_n2sm_set = true;
itti_msg->n2sm_info_type = "PDU_RES_SETUP_RSP"; itti_msg->n2sm_info_type = "PDU_RES_SETUP_RSP";
itti_msg->amf_ue_ngap_id = pduresp->getAmfUeNgapId();
std::shared_ptr<itti_nsmf_pdusession_update_sm_context> i = std::shared_ptr<itti_nsmf_pdusession_update_sm_context> i =
std::shared_ptr<itti_nsmf_pdusession_update_sm_context>(itti_msg); std::shared_ptr<itti_nsmf_pdusession_update_sm_context>(itti_msg);
int ret = itti_inst->send_msg(i); int ret = itti_inst->send_msg(i);
......
#!/bin/sh
proc_name="/opt/OpenXG/amf/build/amf/build/amf" # 进程名
file_name="/opt/OpenXG/amf/stateless/stateless_amf.log" # 日志文件
date >> /opt/OpenXG/amf/stateless/run_status.log
echo "the shell is running" >> /opt/OpenXG/amf/stateless/run_status.log
while :
do
stillRunning=$(ps -ef |grep $proc_name |grep -v "grep")
if [ -z "$stillRunning" ]
then
date >> /opt/OpenXG/amf/stateless/run_status.log
echo "the amf was closed!!!!!!!!!!!!!!!!!" >> /opt/OpenXG/amf/stateless/run_status.log
/opt/OpenXG/amf/build/amf/build/amf -c /opt/OpenXG/amf/etc/stateless.conf -o | tee /opt/OpenXG/amf/stateless/stateless_amf.log
date >> /opt/OpenXG/amf/stateless/run_status.log
echo "the amf was started!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" >> /opt/OpenXG/amf/stateless/run_status.log
fi
done
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