Commit 94643d49 authored by liuyu's avatar liuyu

support change amfip

parent 663ad4ca
...@@ -41,7 +41,7 @@ void PluginApi::init() { ...@@ -41,7 +41,7 @@ void PluginApi::init() {
void PluginApi::setupRoutes() { void PluginApi::setupRoutes() {
using namespace Pistache::Rest; 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::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/meta", Routes::bind(&PluginApi::get_meta_handler, this));
// Routes::Get(*router, base + "/:realmId/:storageId/records/:recordId", Routes::bind(&PluginApi::get_record_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 ...@@ -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: ...@@ -55,10 +55,11 @@ private:
void N2_trans_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response); 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 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); // void record_crud_api_default_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
void modify_AmfIP_handler(const Pistache::Rest::Request &request, Pistache::Http::ResponseWriter response);
std::shared_ptr<Pistache::Rest::Router> router; 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 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 @@ ...@@ -14,6 +14,8 @@
#include "logger.hpp" #include "logger.hpp"
#include <list> #include <list>
#include "sctp_server.hpp" #include "sctp_server.hpp"
extern std::string amf_ip;
extern unsigned int amf_port;
using namespace sctp; using namespace sctp;
extern sctp_server* sctp_s_38412; extern sctp_server* sctp_s_38412;
...@@ -46,7 +48,14 @@ void PluginApiImpl::n2_trans_to_gnb(const std::uint32_t &assoc_id, const uint16_ ...@@ -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"); 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: ...@@ -56,6 +56,8 @@ public:
// const Pistache::Optional<std::string> &supportedFeatures, // const Pistache::Optional<std::string> &supportedFeatures,
// Pistache::Http::ResponseWriter &response); // 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 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_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 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); // 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 @@ ...@@ -6,12 +6,6 @@
#IncludeRegexTransform: #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 /home/ue/gnb-sbi-plugin/build/ext/include/nlohmann/json.hpp
algorithm algorithm
- -
...@@ -1372,112 +1366,6 @@ nlohmann/json.hpp ...@@ -1372,112 +1366,6 @@ nlohmann/json.hpp
iostream 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 /home/ue/gnb-sbi-plugin/src/sctp/sctp_server.hpp
endpoint.hpp endpoint.hpp
/home/ue/gnb-sbi-plugin/src/sctp/endpoint.hpp /home/ue/gnb-sbi-plugin/src/sctp/endpoint.hpp
......
...@@ -17,6 +17,11 @@ plugin_config plugin_cfg; ...@@ -17,6 +17,11 @@ plugin_config plugin_cfg;
plugin_app plugin_app_inst; plugin_app plugin_app_inst;
sctp_server * sctp_s_38412 = nullptr; sctp_server * sctp_s_38412 = nullptr;
std::string amf_ip;
unsigned int amf_port;
int main(int argc, char **argv) int main(int argc, char **argv)
{ {
if (!Options::parse(argc, argv)) { if (!Options::parse(argc, argv)) {
......
...@@ -11,6 +11,8 @@ extern sctp_server* sctp_s_38412; ...@@ -11,6 +11,8 @@ extern sctp_server* sctp_s_38412;
extern plugin_config plugin_cfg; extern plugin_config plugin_cfg;
extern std::string amf_ip;
extern unsigned int amf_port;
namespace amf_application{ namespace amf_application{
...@@ -49,8 +51,8 @@ void plugin_app::handle_receive( ...@@ -49,8 +51,8 @@ void plugin_app::handle_receive(
std::string url = std::string url =
"http://" + std::string(plugin_cfg.nrf.addr4.c_str()) + "http://" + std::string(amf_ip.c_str()) +
":" + std::to_string(plugin_cfg.nrf.port) + "/namf-comm/v1/plugin_n2/" + ":" + std::to_string(amf_port) + "/namf-comm/v1/plugin_n2/" +
to_string (assoc_id ) + "/" + to_string (stream) ; to_string (assoc_id ) + "/" + to_string (stream) ;
Logger::plugin_sbi().debug( Logger::plugin_sbi().debug(
......
...@@ -37,7 +37,7 @@ enum class http_response_codes_e { ...@@ -37,7 +37,7 @@ enum class http_response_codes_e {
HTTP_RESPONSE_CODE_SERVICE_UNAVAILABLE = 503, HTTP_RESPONSE_CODE_SERVICE_UNAVAILABLE = 503,
HTTP_RESPONSE_CODE_GATEWAY_TIMEOUT = 504 HTTP_RESPONSE_CODE_GATEWAY_TIMEOUT = 504
}; };
#define AMF_CURL_TIMEOUT_MS 100L #define AMF_CURL_TIMEOUT_MS 1000L
class plugin_app { class plugin_app {
public: public:
plugin_app(); plugin_app();
......
...@@ -15,7 +15,8 @@ ...@@ -15,7 +15,8 @@
#include "logger.hpp" #include "logger.hpp"
using namespace libconfig; using namespace libconfig;
extern std::string amf_ip;
extern unsigned int amf_port;
namespace config { namespace config {
plugin_config::plugin_config() {} plugin_config::plugin_config() {}
plugin_config::~plugin_config() {} plugin_config::~plugin_config() {}
...@@ -66,6 +67,9 @@ int plugin_config::load(const std ::string &config_file) { ...@@ -66,6 +67,9 @@ int plugin_config::load(const std ::string &config_file) {
load_interface(sbi_cfg, sbi); load_interface(sbi_cfg, sbi);
const Setting &nrf_cfg = new_if_cfg[PLUGIN_CONFIG_STRING_INTERFACE_NRF]; const Setting &nrf_cfg = new_if_cfg[PLUGIN_CONFIG_STRING_INTERFACE_NRF];
load_interface(nrf_cfg, nrf); load_interface(nrf_cfg, nrf);
amf_ip = nrf.addr4;
amf_port = nrf.port;
} catch (const SettingNotFoundException &nfex) { } catch (const SettingNotFoundException &nfex) {
Logger::plugin_app().error("%s : %s", nfex.what(), Logger::plugin_app().error("%s : %s", nfex.what(),
nfex.getPath()); 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