diff options
author | Marco Platania <platania@research.att.com> | 2017-05-18 15:02:10 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2017-05-18 15:02:10 +0000 |
commit | 0078971a8b764a79ec0a516c022576f7ffe2ed2a (patch) | |
tree | 55a140f432d9e8d8834da24ccd956dd792172c5a /VES5.0/evel/evel-library/code/evel_training/08-raise-mobile-flow | |
parent | 2fa991c3273897940ef0d92e020daa298c68c73b (diff) | |
parent | 6c98a31b980d1d6cbbc9aeb2064d3f1c2252c3da (diff) |
Merge "VES5.0 development changes not for test"
Diffstat (limited to 'VES5.0/evel/evel-library/code/evel_training/08-raise-mobile-flow')
-rw-r--r-- | VES5.0/evel/evel-library/code/evel_training/08-raise-mobile-flow/Makefile | 31 | ||||
-rw-r--r-- | VES5.0/evel/evel-library/code/evel_training/08-raise-mobile-flow/hello_evel_world.c | 201 |
2 files changed, 232 insertions, 0 deletions
diff --git a/VES5.0/evel/evel-library/code/evel_training/08-raise-mobile-flow/Makefile b/VES5.0/evel/evel-library/code/evel_training/08-raise-mobile-flow/Makefile new file mode 100644 index 00000000..6acfdd42 --- /dev/null +++ b/VES5.0/evel/evel-library/code/evel_training/08-raise-mobile-flow/Makefile @@ -0,0 +1,31 @@ +CC=gcc + +ARCH=$(shell getconf LONG_BIT) +CODE_ROOT=$(CURDIR)/../../.. +LIBS_DIR=$(CODE_ROOT)/libs/x86_$(ARCH) +INCLUDE_DIR=$(CODE_ROOT)/code/evel_library + +#****************************************************************************** +# Standard compiler flags. * +#****************************************************************************** +CPPFLAGS= +CFLAGS=-Wall -g -fPIC + +all: hello_evel_world + +hello_evel_world: hello_evel_world.c + $(CC) $(CPPFLAGS) $(CFLAGS) -o hello_evel_world \ + -L $(LIBS_DIR) \ + -I $(INCLUDE_DIR) \ + hello_evel_world.c \ + -lpthread \ + -level \ + -lcurl + +#****************************************************************************** +# Configure the vel_username and vel_password to +# vel_username = username +# vel_password = password +#****************************************************************************** +run: all + ./hello_evel_world localhost 30000 username password diff --git a/VES5.0/evel/evel-library/code/evel_training/08-raise-mobile-flow/hello_evel_world.c b/VES5.0/evel/evel-library/code/evel_training/08-raise-mobile-flow/hello_evel_world.c new file mode 100644 index 00000000..597d5da0 --- /dev/null +++ b/VES5.0/evel/evel-library/code/evel_training/08-raise-mobile-flow/hello_evel_world.c @@ -0,0 +1,201 @@ +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> + +#include "evel.h" + +/*****************************************************************************/ +/* Local prototypes. */ +/*****************************************************************************/ +static void demo_mobile_flow(void); + +int main(int argc, char ** argv) +{ + EVEL_ERR_CODES evel_rc = EVEL_SUCCESS; + EVENT_HEADER * heartbeat = NULL; + + printf("\nHello AT&T Vendor Event world!\n"); + fflush(stdout); + + if (argc != 5) + { + fprintf(stderr, + "Usage: %s <FQDN>|<IP address> <port> " + "<username> <password>\n", argv[0]); + exit(-1); + } + + /***************************************************************************/ + /* Initialize */ + /***************************************************************************/ + if (evel_initialize(argv[1], /* FQDN */ + atoi(argv[2]), /* Port */ + NULL, /* optional path */ + NULL, /* optional topic */ + 0, /* HTTPS? */ + argv[3], /* Username */ + argv[4], /* Password */ + EVEL_SOURCE_VIRTUAL_MACHINE, /* Source type */ + "EVEL training demo", /* Role */ + 0)) /* Verbosity */ + { + fprintf(stderr, "\nFailed to initialize the EVEL library!!!\n"); + exit(-1); + } + else + { + printf("\nInitialization completed\n"); + } + + /***************************************************************************/ + /* Send a heartbeat just to show we're alive! */ + /***************************************************************************/ + heartbeat = evel_new_heartbeat(); + if (heartbeat != NULL) + { + evel_rc = evel_post_event(heartbeat); + if (evel_rc != EVEL_SUCCESS) + { + printf("Post failed %d (%s)", evel_rc, evel_error_string()); + } + } + else + { + printf("New heartbeat failed"); + } + + /***************************************************************************/ + /* Raise a measurement */ + /***************************************************************************/ + demo_mobile_flow(); + + /***************************************************************************/ + /* Terminate */ + /***************************************************************************/ + sleep(1); + evel_terminate(); + printf("Terminated\n"); + + return 0; +} + +/**************************************************************************//** + * Create and send three mobile flow events. + *****************************************************************************/ +void demo_mobile_flow(void) +{ + MOBILE_GTP_PER_FLOW_METRICS * metrics = NULL; + EVENT_MOBILE_FLOW * mobile_flow = NULL; + EVEL_ERR_CODES evel_rc = EVEL_SUCCESS; + + metrics = evel_new_mobile_gtp_flow_metrics(12.32, + 3.122, + 1002, + 21002, + 5002, + 1470409423, + 9872, + 1470409433, + 112, + (time_t)1470409433, + "Failed", + 872, + 32, + 172, + 1236542, + 45612, + 2, + 122, + 102, + 12, + 32, + 72, + 8992, + 9012, + 3022, + 62, + 22, + 2, + 1102, + 2252); + if (metrics != NULL) + { + evel_mobile_gtp_metrics_dur_con_fail_set(metrics, 12); + evel_mobile_gtp_metrics_dur_tun_fail_set(metrics, 13); + evel_mobile_gtp_metrics_act_by_set(metrics, "Remote"); + evel_mobile_gtp_metrics_act_time_set(metrics, (time_t)1470409423); + evel_mobile_gtp_metrics_deact_by_set(metrics, "Remote"); + evel_mobile_gtp_metrics_con_status_set(metrics, "Connected"); + evel_mobile_gtp_metrics_tun_status_set(metrics, "Not tunneling"); + evel_mobile_gtp_metrics_iptos_set(metrics, 1, 13); + evel_mobile_gtp_metrics_iptos_set(metrics, 17, 1); + evel_mobile_gtp_metrics_iptos_set(metrics, 4, 99); + evel_mobile_gtp_metrics_large_pkt_rtt_set(metrics, 80); + evel_mobile_gtp_metrics_large_pkt_thresh_set(metrics, 600.0); + evel_mobile_gtp_metrics_max_rcv_bit_rate_set(metrics, 1357924680); + evel_mobile_gtp_metrics_max_trx_bit_rate_set(metrics, 235711); + evel_mobile_gtp_metrics_num_echo_fail_set(metrics, 1); + evel_mobile_gtp_metrics_num_tun_fail_set(metrics, 4); + evel_mobile_gtp_metrics_num_http_errors_set(metrics, 2); + evel_mobile_gtp_metrics_tcp_flag_count_add(metrics, EVEL_TCP_CWR, 10); + evel_mobile_gtp_metrics_tcp_flag_count_add(metrics, EVEL_TCP_URG, 121); + evel_mobile_gtp_metrics_qci_cos_count_add( + metrics, EVEL_QCI_COS_UMTS_CONVERSATIONAL, 11); + evel_mobile_gtp_metrics_qci_cos_count_add( + metrics, EVEL_QCI_COS_LTE_65, 122); + + mobile_flow = evel_new_mobile_flow("Outbound", + metrics, + "RTP", + "IPv8", + "2.3.4.3", + 2343, + "4.2.3.3", + 4323); + if (mobile_flow != NULL) + { + evel_mobile_flow_app_type_set(mobile_flow, "Demo application 2"); + evel_mobile_flow_app_prot_type_set(mobile_flow, "GSM"); + evel_mobile_flow_app_prot_ver_set(mobile_flow, "2"); + evel_mobile_flow_cid_set(mobile_flow, "1"); + evel_mobile_flow_con_type_set(mobile_flow, "S1-U"); + evel_mobile_flow_ecgi_set(mobile_flow, "e1"); + evel_mobile_flow_gtp_prot_type_set(mobile_flow, "GTP-U"); + evel_mobile_flow_gtp_prot_ver_set(mobile_flow, "1"); + evel_mobile_flow_http_header_set(mobile_flow, "http://www.google.com"); + evel_mobile_flow_imei_set(mobile_flow, "209917614823"); + evel_mobile_flow_imsi_set(mobile_flow, "355251/05/850925/8"); + evel_mobile_flow_lac_set(mobile_flow, "1"); + evel_mobile_flow_mcc_set(mobile_flow, "410"); + evel_mobile_flow_mnc_set(mobile_flow, "04"); + evel_mobile_flow_msisdn_set(mobile_flow, "6017123456789"); + evel_mobile_flow_other_func_role_set(mobile_flow, "MMF"); + evel_mobile_flow_rac_set(mobile_flow, "514"); + evel_mobile_flow_radio_acc_tech_set(mobile_flow, "3G"); + evel_mobile_flow_sac_set(mobile_flow, "1"); + evel_mobile_flow_samp_alg_set(mobile_flow, 2); + evel_mobile_flow_tac_set(mobile_flow, "2099"); + evel_mobile_flow_tunnel_id_set(mobile_flow, "Tunnel 2"); + evel_mobile_flow_vlan_id_set(mobile_flow, "4096"); + + evel_rc = evel_post_event((EVENT_HEADER *)mobile_flow); + if (evel_rc == EVEL_SUCCESS) + { + printf("Post OK!\n"); + } + else + { + printf("Post Failed %d (%s)\n", evel_rc, evel_error_string()); + } + } + else + { + printf("Failed to create event (%s)\n", evel_error_string()); + } + printf(" Processed full Mobile Flow\n"); + } + else + { + printf("New GTP Per Flow Metrics failed\n"); + } +} |