Commit 94643d49 authored by liuyu's avatar liuyu

support change amfip

parent 663ad4ca
......@@ -41,7 +41,7 @@ void PluginApi::init() {
void PluginApi::setupRoutes() {
using namespace Pistache::Rest;
// Routes::Put(*router, base + "/:realmId/:storageId/records/:recordId", Routes::bind(&PluginApi::create_or_modify_record_handler, this));
Routes::Get(*router, base + "/modify/AMFIP/:AmfIp/:AmfPort", Routes::bind(&PluginApi::modify_AmfIP_handler, this));
// Routes::Delete(*router, base + "/:realmId/:storageId/records/:recordId", Routes::bind(&PluginApi::delete_record_handler, this));
// Routes::Get(*router, base + "/:realmId/:storageId/records/:recordId/meta", Routes::bind(&PluginApi::get_meta_handler, this));
// Routes::Get(*router, base + "/:realmId/:storageId/records/:recordId", Routes::bind(&PluginApi::get_record_handler, this));
......@@ -80,6 +80,25 @@ void PluginApi::N2_trans_handler(const Pistache::Rest::Request &request, Pistach
}
void PluginApi::modify_AmfIP_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response) {
auto AmfIp = request.param(":AmfIp").as<std::string>();
auto AmfPort = request.param(":AmfPort").as<unsigned int>();
Logger::plugin_server().info("--modify amf ip--AmfIp = (%s), AmfPort = (%d)",AmfIp.c_str(),AmfPort);
try {
this->modify_AmfIP(AmfIp,AmfPort,response);
} catch (nlohmann::detail::exception &e) {
//send a 400 error
response.send(Pistache::Http::Code::Bad_Request, e.what());
return;
} catch (Pistache::Http::HttpError &e) {
response.send(static_cast<Pistache::Http::Code>(e.code()), e.what());
return;
} catch (std::exception &e) {
//send a 500 error
response.send(Pistache::Http::Code::Internal_Server_Error, e.what());
return;
}
}
}
}
}
......
......@@ -55,10 +55,11 @@ private:
void N2_trans_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
// void update_meta_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
// void record_crud_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
void modify_AmfIP_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router;
virtual void n2_trans_to_gnb(const std::uint32_t &assoc_id, const uint16_t &stream, TransData &transdata, Pistache::Http::ResponseWriter &response) = 0;
virtual void modify_AmfIP(const std::string &amfip, const unsigned int &amfport, Pistache::Http::ResponseWriter &response) = 0;
};
......
......@@ -14,6 +14,8 @@
#include "logger.hpp"
#include <list>
#include "sctp_server.hpp"
extern std::string amf_ip;
extern unsigned int amf_port;
using namespace sctp;
extern sctp_server* sctp_s_38412;
......@@ -46,7 +48,14 @@ void PluginApiImpl::n2_trans_to_gnb(const std::uint32_t &assoc_id, const uint16_
response.send(Pistache::Http::Code::Ok, "n2 receive \n");
}
void PluginApiImpl::modify_AmfIP(const std::string &amfip, const unsigned int &amfport, Pistache::Http::ResponseWriter &response)
{
Logger::plugin_server().info("old amf_ip = (%s), amf_port = (%d)",amf_ip.c_str(),amf_port);
amf_ip = amfip;
amf_port = amfport;
Logger::plugin_server().info("new amf_ip = (%s), amf_port = (%d)",amf_ip.c_str(),amf_port);
response.send(Pistache::Http::Code::Ok);
}
}
}
}
......
......@@ -56,6 +56,8 @@ public:
// const Pistache::Optional<std::string> &supportedFeatures,
// Pistache::Http::ResponseWriter &response);
void n2_trans_to_gnb(const std::uint32_t &assoc_id, const uint16_t &stream, TransData &transdata,Pistache::Http::ResponseWriter &response);
void modify_AmfIP(const std::string &amfip, const unsigned int &amfport, Pistache::Http::ResponseWriter &response);
// void get_meta(const std::string &realmId, const std::string &storageId, const std::string &recordId, const Pistache::Optional<Pistache::Http::Header::Raw> &ifNoneMatch, const Pistache::Optional<Pistache::Http::Header::Raw> &ifModifiedSince, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response);
// void get_record(const std::string &realmId, const std::string &storageId, const std::string &recordId, const Pistache::Optional<Pistache::Http::Header::Raw> &ifNoneMatch, const Pistache::Optional<Pistache::Http::Header::Raw> &ifModifiedSince, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response);
// void search_record(const std::string &realmId, const std::string &storageId, const Pistache::Optional<int32_t> &limitRange, const Pistache::Optional<SearchExpression> &filter, const Pistache::Optional<bool> &countIndicator, const Pistache::Optional<std::string> &supportedFeatures, Pistache::Http::ResponseWriter &response);
......
......@@ -6,12 +6,6 @@
#IncludeRegexTransform:
..//plugin_app.hpp
sctp_server.hpp
../sctp_server.hpp
bstrlib.h
../bstrlib.h
/home/ue/gnb-sbi-plugin/build/ext/include/nlohmann/json.hpp
algorithm
-
......@@ -1372,112 +1366,6 @@ nlohmann/json.hpp
iostream
-
/home/ue/gnb-sbi-plugin/src/plugin_app/main.cpp
iostream
-
stdio.h
-
logger.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/logger.hpp
plugin_config.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/plugin_config.hpp
options.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/options.hpp
sctp_server.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/sctp_server.hpp
plugin_app.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/plugin_app.hpp
plugin_server.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/plugin_server.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/options.hpp
stdint.h
-
string
-
/home/ue/gnb-sbi-plugin/src/plugin_app/plugin_app.cpp
plugin_app.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/plugin_app.hpp
sctp_server.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/sctp_server.hpp
plugin_config.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/plugin_config.hpp
curl/curl.h
-
nlohmann/json.hpp
-
logger.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/logger.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/plugin_app.hpp
sctp_server.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/sctp_server.hpp
bstrlib.h
/home/ue/gnb-sbi-plugin/src/plugin_app/bstrlib.h
/home/ue/gnb-sbi-plugin/src/plugin_app/plugin_config.hpp
libconfig.h++
-
string
-
/home/ue/gnb-sbi-plugin/src/plugin_app/plugin_server.hpp
pistache/endpoint.h
/home/ue/gnb-sbi-plugin/src/plugin_app/pistache/endpoint.h
pistache/http.h
/home/ue/gnb-sbi-plugin/src/plugin_app/pistache/http.h
pistache/router.h
/home/ue/gnb-sbi-plugin/src/plugin_app/pistache/router.h
vector
-
signal.h
-
unistd.h
-
PluginApiImpl.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/PluginApiImpl.hpp
logger.hpp
/home/ue/gnb-sbi-plugin/src/plugin_app/logger.hpp
/home/ue/gnb-sbi-plugin/src/sctp/sctp_server.cpp
sctp_server.hpp
/home/ue/gnb-sbi-plugin/src/sctp/sctp_server.hpp
logger.hpp
/home/ue/gnb-sbi-plugin/src/sctp/logger.hpp
netinet/in.h
-
netinet/sctp.h
-
pthread.h
-
stdio.h
-
stdlib.h
-
stdbool.h
-
unistd.h
-
string.h
-
errno.h
-
sys/socket.h
-
netinet/in.h
-
netinet/sctp.h
-
arpa/inet.h
-
bstrlib.h
/home/ue/gnb-sbi-plugin/src/sctp/bstrlib.h
iostream
-
plugin_app.hpp
/home/ue/gnb-sbi-plugin/src/sctp/plugin_app.hpp
/home/ue/gnb-sbi-plugin/src/sctp/sctp_server.hpp
endpoint.hpp
/home/ue/gnb-sbi-plugin/src/sctp/endpoint.hpp
......
......@@ -17,6 +17,11 @@ plugin_config plugin_cfg;
plugin_app plugin_app_inst;
sctp_server * sctp_s_38412 = nullptr;
std::string amf_ip;
unsigned int amf_port;
int main(int argc, char **argv)
{
if (!Options::parse(argc, argv)) {
......
......@@ -11,6 +11,8 @@ extern sctp_server* sctp_s_38412;
extern plugin_config plugin_cfg;
extern std::string amf_ip;
extern unsigned int amf_port;
namespace amf_application{
......@@ -49,8 +51,8 @@ void plugin_app::handle_receive(
std::string url =
"http://" + std::string(plugin_cfg.nrf.addr4.c_str()) +
":" + std::to_string(plugin_cfg.nrf.port) + "/namf-comm/v1/plugin_n2/" +
"http://" + std::string(amf_ip.c_str()) +
":" + std::to_string(amf_port) + "/namf-comm/v1/plugin_n2/" +
to_string (assoc_id ) + "/" + to_string (stream) ;
Logger::plugin_sbi().debug(
......
......@@ -37,7 +37,7 @@ enum class http_response_codes_e {
HTTP_RESPONSE_CODE_SERVICE_UNAVAILABLE = 503,
HTTP_RESPONSE_CODE_GATEWAY_TIMEOUT = 504
};
#define AMF_CURL_TIMEOUT_MS 100L
#define AMF_CURL_TIMEOUT_MS 1000L
class plugin_app {
public:
plugin_app();
......
......@@ -15,7 +15,8 @@
#include "logger.hpp"
using namespace libconfig;
extern std::string amf_ip;
extern unsigned int amf_port;
namespace config {
plugin_config::plugin_config() {}
plugin_config::~plugin_config() {}
......@@ -66,6 +67,9 @@ int plugin_config::load(const std ::string &config_file) {
load_interface(sbi_cfg, sbi);
const Setting &nrf_cfg = new_if_cfg[PLUGIN_CONFIG_STRING_INTERFACE_NRF];
load_interface(nrf_cfg, nrf);
amf_ip = nrf.addr4;
amf_port = nrf.port;
} catch (const SettingNotFoundException &nfex) {
Logger::plugin_app().error("%s : %s", nfex.what(),
nfex.getPath());
......
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