-#define ENV_VAR_HOSTNAME "HOSTNAME"
-#define ENV_VAR_DOCKER_ENGINE_VERSION "DOCKER_ENGINE_VERSION"
-#define ENV_VAR_IPV6ENABLED "IPv6_ENABLED"
-#define ENV_VAR_HOST_IP "NETCONF_NTS_HOST_IP"
-#define ENV_VAR_HOST_BASE_PORT "NETCONF_NTS_HOST_BASE_PORT"
-#define ENV_VAR_SSH_CONNECTIONS "SSH_CONNECTIONS"
-#define ENV_VAR_TLS_CONNECTIONS "TLS_CONNECTIONS"
-
-#define ENV_VAR_SDN_CONTROLLER_IP "SDN_CONTROLLER_IP"
-#define ENV_VAR_SDN_CONTROLLER_PORT "SDN_CONTROLLER_PORT"
-#define ENV_VAR_SDN_CONTROLLER_CALLHOME_PORT "SDN_CONTROLLER_CALLHOME_PORT"
-#define ENV_VAR_SDN_CONTROLLER_USERNAME "SDN_CONTROLLER_USERNAME"
-#define ENV_VAR_SDN_CONTROLLER_PASSWORD "SDN_CONTROLLER_PASSWORD"
-
-#define ENV_VAR_VES_ENDPOINT_PROTOCOL "VES_ENDPOINT_PROTOCOL"
-#define ENV_VAR_VES_ENDPOINT_IP "VES_ENDPOINT_IP"
-#define ENV_VAR_VES_ENDPOINT_PORT "VES_ENDPOINT_PORT"
-#define ENV_VAR_VES_ENDPOINT_AUTH_METHOD "VES_ENDPOINT_AUTH_METHOD"
-#define ENV_VAR_VES_ENDPOINT_USERNAME "VES_ENDPOINT_USERNAME"
-#define ENV_VAR_VES_ENDPOINT_PASSWORD "VES_ENDPOINT_PASSWORD"
-#define ENV_VAR_VES_ENDPOINT_CERTIFICATE "VES_ENDPOINT_CERTIFICATE"
+#define ENV_VAR_NTS_MANUAL "NTS_MANUAL"
+#define ENV_VAR_NTS_BUILD_VERSION "NTS_BUILD_VERSION"
+#define ENV_VAR_NTS_BUILD_TIME "NTS_BUILD_DATE"
+#define ENV_VAR_NTS_FUNCTION_TYPE "NTS_FUNCTION_TYPE"
+#define ENV_VAR_NTS_NF_STANDALONE_START_FEATURES "NTS_NF_STANDALONE_START_FEATURES"
+
+#define ENV_VAR_DOCKER_ENGINE_VERSION "DOCKER_ENGINE_VERSION"
+#define ENV_VAR_HOSTNAME "HOSTNAME"
+#define ENV_VAR_IPV6ENABLED "IPv6_ENABLED"
+#define ENV_VAR_SSH_CONNECTIONS "SSH_CONNECTIONS"
+#define ENV_VAR_TLS_CONNECTIONS "TLS_CONNECTIONS"
+
+#define ENV_VAR_HOST_IP "NTS_HOST_IP"
+#define ENV_VAR_HOST_BASE_PORT "NTS_HOST_BASE_PORT"
+#define ENV_VAR_HOST_NETCONF_SSH_BASE_PORT "NTS_HOST_NETCONF_SSH_BASE_PORT"
+#define ENV_VAR_HOST_NETCONF_TLS_BASE_PORT "NTS_HOST_NETCONF_TLS_BASE_PORT"
+#define ENV_VAR_HOST_TRANSFER_FTP_BASE_PORT "NTS_HOST_TRANSFER_FTP_BASE_PORT"
+#define ENV_VAR_HOST_TRANSFER_SFTP_BASE_PORT "NTS_HOST_TRANSFER_SFTP_BASE_PORT"
+
+#define ENV_VAR_SDN_CONTROLLER_PROTOCOL "SDN_CONTROLLER_PROTOCOL"
+#define ENV_VAR_SDN_CONTROLLER_IP "SDN_CONTROLLER_IP"
+#define ENV_VAR_SDN_CONTROLLER_PORT "SDN_CONTROLLER_PORT"
+#define ENV_VAR_SDN_CONTROLLER_CALLHOME_PORT "SDN_CONTROLLER_CALLHOME_PORT"
+#define ENV_VAR_SDN_CONTROLLER_USERNAME "SDN_CONTROLLER_USERNAME"
+#define ENV_VAR_SDN_CONTROLLER_PASSWORD "SDN_CONTROLLER_PASSWORD"
+
+#define ENV_VAR_VES_COMMON_HEADER_VERSION "VES_COMMON_HEADER_VERSION"
+#define ENV_VAR_VES_ENDPOINT_PROTOCOL "VES_ENDPOINT_PROTOCOL"
+#define ENV_VAR_VES_ENDPOINT_IP "VES_ENDPOINT_IP"
+#define ENV_VAR_VES_ENDPOINT_PORT "VES_ENDPOINT_PORT"
+#define ENV_VAR_VES_ENDPOINT_AUTH_METHOD "VES_ENDPOINT_AUTH_METHOD"
+#define ENV_VAR_VES_ENDPOINT_USERNAME "VES_ENDPOINT_USERNAME"
+#define ENV_VAR_VES_ENDPOINT_PASSWORD "VES_ENDPOINT_PASSWORD"
+#define ENV_VAR_VES_ENDPOINT_CERTIFICATE "VES_ENDPOINT_CERTIFICATE"
+
+typedef enum {
+ NTS_MODE_DEFAULT = 0,
+ NTS_MODE_CONTAINER_INIT,
+ NTS_MODE_SUPERVISOR,
+ NTS_MODE_MANAGER,
+ NTS_MODE_NETWORK_FUNCTION,
+ NTS_MODE_GENERATE_DATA,
+ NTS_MODE_TEST,
+} nts_mode_t;
+
+typedef struct {
+ nts_mode_t nts_mode;
+
+ int argc;
+ char **argv; //no-copy
+
+ bool no_rand;
+ unsigned int fixed_seed;
+ int verbosity_level;
+
+ bool print_root_paths;
+ char *print_structure_xpath;
+} framework_arguments_t;
+
+typedef struct {
+ struct {
+ bool manual;
+ char *version;
+ char *build_time;
+ char *function_type;
+ char *nf_standalone_start_features;
+ } nts;
+
+ struct {
+ char *docker_engine_version;
+
+ char *hostname;
+ char *ip_v4;
+ char *ip_v6;
+ bool ip_v6_enabled;
+ uint16_t ssh_connections;
+ uint16_t tls_connections;
+ uint16_t ftp_connections;
+ uint16_t sftp_connections;
+ } settings;
+
+ struct {
+ char *ip;
+ uint16_t base_port;
+ uint16_t ssh_base_port;
+ uint16_t tls_base_port;
+ uint16_t ftp_base_port;
+ uint16_t sftp_base_port;
+ } host;
+
+ struct {
+ char *protocol;
+ char *ip;
+ uint16_t port;
+ uint16_t callhome_port;
+ char *username;
+ char *password;
+ } sdn_controller;
+
+ struct {
+ char *common_header_version;
+
+ char *protocol;
+ char *ip;
+ uint16_t port;
+ char *auth_method;
+ char *username;
+ char *password;
+ char *certificate;
+ } ves_endpoint;
+} framework_environment_t;
+
+typedef struct {
+ char *name;
+ char *path;
+ char **args;
+ int args_count;
+ bool nomanual;
+ bool autorestart;
+ char *stdout_path;
+ char *stderr_path;
+} supervisor_rules_t;