+ //check standalone mode
+ if(strlen(framework_environment.nts.nf_standalone_start_features)) {
+ char *start_features = 0;
+
+ asprintf(&start_features, "1 %s", framework_environment.nts.nf_standalone_start_features);
+ nf_function_control_buffer[nf_function_control_buffer_in] = start_features;
+ nf_function_control_buffer_in++;
+ if(nf_function_control_buffer_in >= NF_FUNCTION_CONTROL_BUFFER_LENGTH) {
+ nf_function_control_buffer_in = 0;
+ }
+
+ log_add_verbose(1, LOG_COLOR_BOLD_YELLOW"running in NETWORK FUNCTION STANDALONE mode!\n"LOG_COLOR_RESET);
+ log_add_verbose(1, "Currently enabled features are: %s\n", framework_environment.nts.nf_standalone_start_features);
+ log_add_verbose(1, LOG_COLOR_BOLD_YELLOW"Docker IP:"LOG_COLOR_RESET" %s\n", framework_environment.settings.ip_v6_enabled ? framework_environment.settings.ip_v6 : framework_environment.settings.ip_v4);
+ log_add_verbose(1, LOG_COLOR_BOLD_YELLOW"Docker ports"LOG_COLOR_RESET": ");
+ if(framework_environment.settings.ssh_connections) {
+ log_add(1, "NETCONF SSH: %d (%d)", STANDARD_NETCONF_PORT, framework_environment.settings.ssh_connections);
+ }
+ else {
+ log_add(1, "NETCONF SSH: disabled");
+ }
+ if(framework_environment.settings.tls_connections) {
+ log_add(1, " | NETCONF TLS: %d (%d)", STANDARD_NETCONF_PORT + framework_environment.settings.ssh_connections, framework_environment.settings.tls_connections);
+ }
+ else {
+ log_add(1, " | NETCONF TLS: disabled");
+ }
+ if(framework_environment.settings.ftp_connections) {
+ log_add(1, " | FTP: %d (%d)", STANDARD_FTP_PORT, framework_environment.settings.ftp_connections);
+ }
+ else {
+ log_add(1, " | FTP: disabled");
+ }
+ if(framework_environment.settings.sftp_connections) {
+ log_add(1, " | SFTP: %d (%d)", STANDARD_SFTP_PORT, framework_environment.settings.sftp_connections);
+ }
+ else {
+ log_add(1, " | SFTP: disabled");
+ }
+ log_add(1,"\n");
+ }
+
+ if(strcmp(framework_environment.nts.function_type, "NTS_FUNCTION_TYPE_O_RAN_O_DU") == 0) {
+ rc = nf_oran_du_init();
+ if(rc != NTS_ERR_OK) {
+ log_error("nf_oran_du_init failed\n");
+ return NTS_ERR_FAILED;
+ }