44 #include <sys/signal.h> 58 static const struct option long_options[] = {
59 {
"help", no_argument, 0,
'h'},
60 {
"fqdn", required_argument, 0,
'f'},
61 {
"port", required_argument, 0,
'n'},
62 {
"path", required_argument, 0,
'p'},
63 {
"topic", required_argument, 0,
't'},
64 {
"https", no_argument, 0,
's'},
65 {
"verbose", no_argument, 0,
'v'},
66 {
"cycles", required_argument, 0,
'c'},
67 {
"username", required_argument, 0,
'u'},
68 {
"password", required_argument, 0,
'w'},
69 {
"nothrott", no_argument, 0,
'x'},
76 static const char* short_options =
"hf:n:p:t:sc:u:w:vx";
81 static const char* usage_text =
82 "evel_demo [--help]\n" 84 " --port <port_number>\n" 86 " [--topic <topic>]\n" 87 " [--username <username>]\n" 88 " [--password <password>]\n" 90 " [--cycles <cycles>]\n" 93 "Demonstrate use of the ECOMP Vendor Event Listener API.\n" 95 " -h Display this usage message.\n" 98 " -f The FQDN or IP address to the RESTful API.\n" 101 " -n The port number the RESTful API.\n" 104 " -p The optional path prefix to the RESTful API.\n" 107 " -t The optional topic part of the RESTful API.\n" 110 " -u The optional username for basic authentication of requests.\n" 113 " -w The optional password for basic authentication of requests.\n" 116 " -s Use HTTPS rather than HTTP for the transport.\n" 119 " -c Loop <cycles> times round the main loop. Default = 1.\n" 122 " -v Generate much chattier logs.\n" 125 " -x Exclude throttling commands from demonstration.\n" 128 #define DEFAULT_SLEEP_SECONDS 3 129 #define MINIMUM_SLEEP_SECONDS 1 144 static void demo_heartbeat(
void);
145 static void demo_fault(
void);
146 static void demo_measurement(
const int interval);
147 static void demo_mobile_flow(
void);
148 static void demo_service(
void);
149 static void demo_service_event(
const SERVICE_EVENT service_event);
150 static void demo_signaling(
void);
151 static void demo_state_change(
void);
152 static void demo_syslog(
void);
153 static void demo_other(
void);
158 static int glob_exit_now = 0;
160 static char * api_fqdn = NULL;
161 static int api_port = 0;
162 static int api_secure = 0;
164 static void show_usage(FILE* fp)
166 fputs(usage_text, fp);
177 int main(
int argc,
char ** argv)
181 int option_index = 0;
183 char * api_path = NULL;
184 char * api_topic = NULL;
185 char * api_username =
"";
186 char * api_password =
"";
187 int verbose_mode = 0;
188 int exclude_throttling = 0;
191 int measurement_interval = EVEL_MEASUREMENT_INTERVAL_UKNOWN;
203 param = getopt_long(argc, argv,
221 api_port = atoi(optarg);
233 api_username = optarg;
237 api_password = optarg;
245 cycles = atoi(optarg);
253 exclude_throttling = 1;
264 fprintf(stderr,
"Code error: recognized but missing option (%d)!\n",
272 param = getopt_long(argc, argv,
282 if (api_fqdn == NULL)
284 fprintf(stderr,
"FQDN of the Vendor Event Listener API server must be " 288 if (api_port <= 0 || api_port > 65535)
290 fprintf(stderr,
"Port for the Vendor Event Listener API server must be " 291 "specified between 1 and 65535.\n");
296 fprintf(stderr,
"Number of cycles around the main loop must be an" 297 "integer greater than zero.\n");
305 sigemptyset(&sig_set);
306 sigaddset(&sig_set, SIGALRM);
307 sigaddset(&sig_set, SIGINT);
308 pthread_sigmask(SIG_BLOCK, &sig_set, NULL);
313 if (pthread_create(&thread_id, NULL,
signal_watcher, &sig_set) != 0)
315 fprintf(stderr,
"Failed to start signal watcher thread.");
318 pthread_detach(thread_id);
323 printf(
"%s built %s %s\n", argv[0], __DATE__, __TIME__);
339 fprintf(stderr,
"Failed to initialize the EVEL library!!!");
350 struct timeval tv_start;
351 gettimeofday(&tv_start, NULL);
352 epoch_start = tv_start.tv_usec + 1000000 * tv_start.tv_sec;
358 printf(
"Starting %d loops...\n", cycles);
360 while (cycle++ < cycles)
363 printf(
"\nStarting main loop %d\n", cycle);
368 if (exclude_throttling == 0)
373 printf(
" 1 - Resetting throttle specification for all domains\n");
381 printf(
" 2 - Switching measurement interval to 2s\n");
389 printf(
" 3 - Suppressing fault domain\n");
397 printf(
" 4 - Suppressing measurement domain\n");
405 printf(
" 5 - Switching measurement interval to 5s\n");
413 printf(
" 6 - Suppressing mobile flow domain\n");
421 printf(
" 7 - Suppressing state change domain\n");
429 printf(
" 8 - Suppressing signaling domain\n");
437 printf(
" 9 - Suppressing service event domain\n");
445 printf(
" 10 - Switching measurement interval to 20s\n");
453 printf(
" 11 - Suppressing syslog domain\n");
461 printf(
" 12 - Switching measurement interval to 10s\n");
469 printf(
" Requesting provide throttling spec\n");
484 demo_measurement((measurement_interval ==
485 EVEL_MEASUREMENT_INTERVAL_UKNOWN) ?
510 printf(
"Measurement Interval = %d\n", measurement_interval);
512 if (measurement_interval == EVEL_MEASUREMENT_INTERVAL_UKNOWN)
529 printf(
"All done - exiting!\n");
543 sigset_t *sig_set = (sigset_t *)void_sig_set;
551 pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &old_type);
553 while (!glob_exit_now)
558 sig = sigwaitinfo(sig_set, &sig_info);
566 fprintf(stderr,
"Timeout alarm - quitting!\n");
572 printf(
"\n\nInterrupted - quitting!\n");
586 void demo_heartbeat(
void)
595 if (heartbeat != NULL)
607 printf(
" Processed Heartbeat\n");
613 void demo_fault(
void)
637 printf(
" Processed empty Fault\n");
657 printf(
" Processed partial Fault\n");
660 "It broke very badly",
679 printf(
" Processed full Fault\n");
685 void demo_measurement(
const int interval)
696 if (measurement != NULL)
754 "Group1",
"Name1",
"Value1");
756 "Group2",
"Name1",
"Value1");
758 "Group2",
"Name2",
"Value2");
763 struct timeval tv_now;
764 gettimeofday(&tv_now, NULL);
765 unsigned long long epoch_now = tv_now.tv_usec + 1000000 * tv_now.tv_sec;
784 printf(
" Processed Measurement\n");
790 void demo_mobile_flow(
void)
839 if (mobile_flow != NULL)
853 printf(
" Processed empty Mobile Flow\n");
857 EVEL_ERROR(
"New GTP Per Flow Metrics failed - skipping Mobile Flow");
858 printf(
" Skipped empty Mobile Flow\n");
901 if (mobile_flow != NULL)
912 "http://www.something.com");
940 printf(
" Processed partial Mobile Flow\n");
944 EVEL_ERROR(
"New GTP Per Flow Metrics failed - skipping Mobile Flow");
945 printf(
" Skipped partial Mobile Flow\n");
1012 if (mobile_flow != NULL)
1041 EVEL_ERROR(
"Post Mobile Flow failed %d (%s)",
1050 printf(
" Processed full Mobile Flow\n");
1054 EVEL_ERROR(
"New GTP Per Flow Metrics failed - skipping Mobile Flow");
1055 printf(
" Skipped full Mobile Flow\n");
1087 switch (service_event)
1137 printf(
" Processed Service Events\n");
1143 void demo_signaling(
void)
1172 printf(
" Processed Signaling\n");
1178 void demo_state_change(
void)
1189 if (state_change != NULL)
1204 printf(
" Processed State Change\n");
1210 void demo_syslog(
void)
1219 "EVEL library message",
1233 printf(
" Processed empty Syslog\n");
1236 "EVEL library message",
1259 printf(
" Processed full Syslog\n");
1265 void demo_other(
void)
1286 printf(
" Processed empty Other\n");
1304 printf(
" Processed small Other\n");
1328 printf(
" Processed large Other\n");
void evel_vnic_use_mcast_pkt_in_set(MEASUREMENT_VNIC_USE *const vnic_use, const int multicast_packets_in)
Set the Multicast Packets Received property of the vNIC Use.
void evel_mobile_flow_gtp_prot_ver_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const version)
Set the GTP Protocol Version property of the Mobile Flow.
void evel_mobile_flow_sac_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const sac)
Set the SAC property of the Mobile Flow.
void evel_syslog_proc_id_set(EVENT_SYSLOG *syslog, int proc_id)
Set the Process ID property of the Syslog.
void evel_mobile_gtp_metrics_iptos_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, int index, int count)
Set an IP Type-of-Service count property of the Mobile GTP Per Flow metrics.
void evel_mobile_flow_mnc_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const mnc)
Set the MNC property of the Mobile Flow.
void evel_mobile_flow_cid_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const cid)
Set the CID property of the Mobile Flow.
void evel_mobile_gtp_metrics_tun_status_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, const char *const status)
Set the GTP Tunnel Status property of the Mobile GTP Per Flow metrics.
void evel_service_product_id_set(EVENT_SERVICE *const event, const char *const product_id)
Set the Product Id property of the Service event.
EVEL_ERR_CODES evel_terminate(void)
Clean up the EVEL library.
void evel_service_packet_loss_percent_set(EVENT_SERVICE *const event, const double packet_loss_percent)
Set the packet Loss Percent property of the Service event.
#define EVEL_INFO(FMT,...)
void evel_measurement_request_rate_set(EVENT_MEASUREMENT *measurement, int request_rate)
Set the Request Rate property of the Measurement.
void evel_syslog_version_set(EVENT_SYSLOG *syslog, int version)
Set the Version property of the Syslog.
void evel_signaling_summary_sip_set(EVENT_SIGNALING *const event, const char *const summary_sip)
Set the Summary SIP property of the Signaling event.
const char * evel_error_string(void)
Descriptive text for library errors.
void evel_reporting_entity_name_set(EVENT_HEADER *const header, const char *const entity_name)
Set the Reporting Entity Name property of the event header.
void evel_mobile_gtp_metrics_dur_con_fail_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, int duration)
Set the Duration of Connection Failed Status property of the Mobile GTP Per Flow Metrics.
void evel_service_codec_set(EVENT_SERVICE *const event, const char *const codec)
Set the Codec property of the Service event.
#define MINIMUM_SLEEP_SECONDS
void evel_fault_addl_info_add(EVENT_FAULT *fault, char *name, char *value)
Add an additional value name/value pair to the Fault.
EVENT_FAULT * evel_new_fault(const char *const condition, const char *const specific_problem, EVEL_EVENT_PRIORITIES priority, EVEL_SEVERITIES severity)
Create a new fault event.
Utility to post test control commands to the test_collector testControl API.
void evel_mobile_gtp_metrics_con_status_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, const char *const status)
Set the GTP Connection Status property of the Mobile GTP Per Flow metrics.
void evel_test_control_scenario(const EVEL_TEST_CONTROL_SCENARIO scenario, const int secure, const char *fqdn, const int port)
POST a pre-set test scenario to the test_collector testControl API.
EVENT_OTHER * evel_new_other(void)
Create a new other event.
void evel_mobile_flow_samp_alg_set(EVENT_MOBILE_FLOW *mobile_flow, int algorithm)
Set the Sampling Algorithm property of the Mobile Flow.
void evel_signaling_friendly_name_set(EVENT_SIGNALING *const event, const char *const friendly_name)
Set the Friendly Name property of the Signaling event.
void evel_mobile_flow_radio_acc_tech_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const tech)
Set the Radio Access Technology property of the Mobile Flow.
EVENT_SIGNALING * evel_new_signaling(const char *const vendor_id, const char *const event_id)
Create a new Signaling event.
void evel_vnic_use_bcast_pkt_out_set(MEASUREMENT_VNIC_USE *const vnic_use, const int broadcast_packets_out)
Set the Broadcast Packets Transmitted property of the vNIC Use.
void evel_measurement_conc_sess_set(EVENT_MEASUREMENT *measurement, int concurrent_sessions)
Set the Concurrent Sessions property of the Measurement.
void evel_service_callee_codec_set(EVENT_SERVICE *const event, const char *const codec)
Set the Callee Side Codec property of the Service event.
void evel_vnic_use_mcast_pkt_out_set(MEASUREMENT_VNIC_USE *const vnic_use, const int multicast_packets_out)
Set the Multicast Packets Transmitted property of the vNIC Use.
void evel_other_field_add(EVENT_OTHER *other, char *name, char *value)
Add a value name/value pair to the Other.
void evel_measurement_feature_use_add(EVENT_MEASUREMENT *measurement, char *feature, int utilization)
Add a Feature usage value name/value pair to the Measurement.
void evel_mobile_flow_msisdn_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const msisdn)
Set the MSISDN property of the Mobile Flow.
void evel_service_local_rtp_oct_sent_set(EVENT_SERVICE *const event, const int rtp_oct_sent)
Set the Local Rtp Octets Sent property of the Service event.
EVENT_HEADER * evel_new_heartbeat(void)
Create a new heartbeat event.
void evel_meas_latency_bucket_add(EVENT_MEASUREMENT *const measurement, MEASUREMENT_LATENCY_BUCKET *const bucket)
Add an additional Measurement Latency Bucket to the specified event.
void evel_signaling_local_port_set(EVENT_SIGNALING *const event, const char *const local_port)
Set the Local Port property of the Signaling event.
void evel_meas_vnic_use_add(EVENT_MEASUREMENT *const measurement, MEASUREMENT_VNIC_USE *const vnic_use)
Add an additional vNIC Use to the specified Measurement event.
#define DEFAULT_SLEEP_SECONDS
void evel_measurement_cfg_ents_set(EVENT_MEASUREMENT *measurement, int configured_entities)
Set the Configured Entities property of the Measurement.
void evel_signaling_type_set(EVENT_SIGNALING *const event, const char *const type)
Set the Event Type property of the Signaling event.
void evel_measurement_cpu_use_add(EVENT_MEASUREMENT *measurement, char *id, double usage)
Add an additional CPU usage value name/value pair to the Measurement.
EVENT_SERVICE * evel_new_service(const char *const vendor_id, const char *const event_id)
Create a new Service event.
void evel_measurement_codec_use_add(EVENT_MEASUREMENT *measurement, char *codec, int utilization)
Add a Codec usage value name/value pair to the Measurement.
void evel_measurement_type_set(EVENT_MEASUREMENT *measurement, const char *const type)
Set the Event Type property of the Measurement.
void evel_measurement_mean_req_lat_set(EVENT_MEASUREMENT *measurement, double mean_request_latency)
Set the Mean Request Latency property of the Measurement.
void evel_service_local_rtp_oct_recv_set(EVENT_SERVICE *const event, const int rtp_oct_recv)
Set the Local Rtp Octets Received property of the Service event.
void evel_fault_type_set(EVENT_FAULT *fault, const char *const type)
Set the Event Type property of the Fault.
EVEL_ERR_CODES evel_post_event(EVENT_HEADER *event)
Post an event.
void evel_mobile_flow_tac_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const tac)
Set the TAC property of the Mobile Flow.
void evel_service_local_rtp_oct_disc_set(EVENT_SERVICE *const event, const int rtp_oct_disc)
Set the Local Rtp Octets Discarded property of the Service event.
void evel_mobile_flow_rac_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const rac)
Set the RAC property of the Mobile Flow.
void evel_service_endpoint_rtp_oct_sent_set(EVENT_SERVICE *const event, const int rtp_oct_sent)
Set the Endpoint Rtp Octets Sent property of the Service event.
void evel_service_endpoint_rtp_pkt_sent_set(EVENT_SERVICE *const event, const int rtp_pkt_sent)
Set the Endpoint Rtp Packets Sent property of the Service event.
void evel_signaling_remote_port_set(EVENT_SIGNALING *const event, const char *const remote_port)
Set the Remote Port property of the Signaling event.
void evel_service_subsystem_id_set(EVENT_SERVICE *const event, const char *const subsystem_id)
Set the Subsystem Id property of the Service event.
void evel_syslog_proc_set(EVENT_SYSLOG *syslog, const char *const proc)
Set the Process property of the Syslog.
int main(int argc, char **argv)
Main function.
void evel_service_addl_field_add(EVENT_SERVICE *const event, const char *const name, const char *const value)
Add a name/value pair to the Service, under the additionalFields array.
void evel_vnic_use_bcast_pkt_in_set(MEASUREMENT_VNIC_USE *const vnic_use, const int broadcast_packets_in)
Set the Broadcast Packets Received property of the vNIC Use.
void evel_signaling_correlator_set(EVENT_SIGNALING *const event, const char *const correlator)
Set the Correlator property of the Signaling event.
EVENT_SYSLOG * evel_new_syslog(EVEL_SOURCE_TYPES event_source_type, const char *const syslog_msg, const char *const syslog_tag)
Create a new syslog event.
void evel_state_change_addl_field_add(EVENT_STATE_CHANGE *const state_change, const char *const name, const char *const value)
Add an additional field name/value pair to the State Change.
void evel_mobile_flow_app_type_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const type)
Set the Application Type property of the Mobile Flow.
EVENT_MOBILE_FLOW * evel_new_mobile_flow(const char *const flow_direction, MOBILE_GTP_PER_FLOW_METRICS *gtp_per_flow_metrics, const char *const ip_protocol_type, const char *const ip_version, const char *const other_endpoint_ip_address, int other_endpoint_port, const char *const reporting_endpoint_ip_addr, int reporting_endpoint_port)
Create a new Mobile Flow event.
void evel_meas_latency_bucket_low_end_set(MEASUREMENT_LATENCY_BUCKET *const bucket, const double low_end)
Set the Low End property of the Measurement Latency Bucket.
void evel_reporting_entity_id_set(EVENT_HEADER *const header, const char *const entity_id)
Set the Reporting Entity Id property of the event header.
void evel_syslog_facility_set(EVENT_SYSLOG *syslog, EVEL_SYSLOG_FACILITIES facility)
Set the Syslog Facility property of the Syslog.
EVEL_ERR_CODES evel_initialize(const char *const fqdn, int port, const char *const path, const char *const topic, int secure, const char *const username, const char *const password, EVEL_SOURCE_TYPES source_type, const char *const role, int verbosity)
Library initialization.
void evel_measurement_media_port_use_set(EVENT_MEASUREMENT *measurement, int media_ports_in_use)
Set the Media Ports in Use property of the Measurement.
void evel_service_r_factor_set(EVENT_SERVICE *const event, const int r_factor)
Set the R Factor property of the Service event.
void evel_measurement_fsys_use_add(EVENT_MEASUREMENT *measurement, char *filesystem_name, double block_configured, double block_used, int block_iops, double ephemeral_configured, double ephemeral_used, int ephemeral_iops)
Add an additional File System usage value name/value pair to the Measurement.
void evel_mobile_flow_con_type_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const type)
Set the Connection Type property of the Mobile Flow.
unsigned long long epoch_start
void evel_mobile_flow_vlan_id_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const vlan_id)
Set the VLAN ID property of the Mobile Flow.
void evel_signaling_local_ip_address_set(EVENT_SIGNALING *const event, const char *const local_ip_address)
Set the Local Ip Address property of the Signaling event.
#define EVEL_ERROR(FMT,...)
void evel_service_packets_lost_set(EVENT_SERVICE *const event, const int packets_lost)
Set the Packets Lost property of the Service event.
void evel_measurement_errors_set(EVENT_MEASUREMENT *measurement, int receive_discards, int receive_errors, int transmit_discards, int transmit_errors)
Add an additional set of Errors to the Measurement.
void evel_signaling_subsystem_id_set(EVENT_SIGNALING *const event, const char *const subsystem_id)
Set the Subsystem Id property of the Signaling event.
void * signal_watcher(void *void_sig_set)
Signal watcher.
void evel_vnic_use_ucast_pkt_out_set(MEASUREMENT_VNIC_USE *const vnic_use, const int unicast_packets_out)
Set the Unicast Packets Transmitted property of the vNIC Use.
EVEL_ERR_CODES
Error codes.
void evel_vnic_use_ucast_pkt_in_set(MEASUREMENT_VNIC_USE *const vnic_use, const int unicast_packets_in)
Set the Unicast Packets Received property of the vNIC Use.
void evel_service_local_rtp_pkt_recv_set(EVENT_SERVICE *const event, const int rtp_pkt_recv)
Set the Local Rtp Packets Received property of the Service event.
void evel_service_adjacency_name_set(EVENT_SERVICE *const event, const char *const adjacency_name)
Set the Adjacency Name property of the Service event.
Includes for the ECOMP Vendor Event Listener library demo.
void evel_mobile_gtp_metrics_large_pkt_thresh_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, double threshold)
Set the Large Packet Threshold property of the Mobile GTP Per Flow Metrics.
void evel_measurement_custom_measurement_add(EVENT_MEASUREMENT *measurement, const char *const group, const char *const name, const char *const value)
Add a Additional Measurement value name/value pair to the Measurement.
void evel_mobile_flow_imsi_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const imsi)
Set the IMSI property of the Mobile Flow.
void evel_start_epoch_set(EVENT_HEADER *const header, const unsigned long long start_epoch_microsec)
Set the Start Epoch property of the event header.
void evel_mobile_flow_http_header_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const header)
Set the HTTP Header property of the Mobile Flow.
EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval)
Create a new Measurement event.
void evel_mobile_gtp_metrics_num_http_errors_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, int num)
Set the Number of HTTP Errors property of the Mobile GTP Per Flow Metrics.
void evel_mobile_gtp_metrics_deact_by_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, const char *const deact_by)
Set the Deactivated By property of the Mobile GTP Per Flow metrics.
int evel_get_measurement_interval()
Return the current measurement interval provided by the Event Listener.
void evel_meas_latency_bucket_high_end_set(MEASUREMENT_LATENCY_BUCKET *const bucket, const double high_end)
Set the High End property of the Measurement Latency Bucket.
void evel_service_endpoint_rtp_pkt_recv_set(EVENT_SERVICE *const event, const int rtp_pkt_recv)
Set the Endpoint Rtp Packets Received property of the Service event.
void evel_mobile_gtp_metrics_num_tun_fail_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, int num)
Set the Number of GTP Tunnel Errors property of the Mobile GTP Per Flow Metrics.
void evel_mobile_flow_tunnel_id_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const tunnel_id)
Set the Tunnel ID property of the Mobile Flow.
MOBILE_GTP_PER_FLOW_METRICS * evel_new_mobile_gtp_flow_metrics(double avg_bit_error_rate, double avg_packet_delay_variation, int avg_packet_latency, int avg_receive_throughput, int avg_transmit_throughput, int flow_activation_epoch, int flow_activation_microsec, int flow_deactivation_epoch, int flow_deactivation_microsec, time_t flow_deactivation_time, const char *const flow_status, int max_packet_delay_variation, int num_activation_failures, int num_bit_errors, int num_bytes_received, int num_bytes_transmitted, int num_dropped_packets, int num_l7_bytes_received, int num_l7_bytes_transmitted, int num_lost_packets, int num_out_of_order_packets, int num_packet_errors, int num_packets_received_excl_retrans, int num_packets_received_incl_retrans, int num_packets_transmitted_incl_retrans, int num_retries, int num_timeouts, int num_tunneled_l7_bytes_received, int round_trip_time, int time_to_first_byte)
Create a new Mobile GTP Per Flow Metrics.
void evel_test_control_meas_interval(const int interval, const int secure, const char *fqdn, const int port)
POST a measurement interval change to the test_collector testControl API.
void evel_state_change_type_set(EVENT_STATE_CHANGE *const state_change, const char *const type)
Set the Event Type property of the State Change.
void evel_mobile_gtp_metrics_tcp_flag_count_add(MOBILE_GTP_PER_FLOW_METRICS *metrics, const EVEL_TCP_FLAGS tcp_flag, const int count)
Add a TCP flag count to the metrics.
void evel_service_correlator_set(EVENT_SERVICE *const event, const char *const correlator)
Set the correlator property of the Service event.
void evel_service_mos_cqe_set(EVENT_SERVICE *const event, const double mos_cqe)
Set the Mos Cqe property of the Service event.
void evel_service_endpoint_rtp_oct_recv_set(EVENT_SERVICE *const event, const int rtp_oct_recv)
Set the Endpoint Rtp Octets Received property of the Service event.
void evel_service_round_trip_delay_set(EVENT_SERVICE *const event, const int round_trip_delay)
Set the Round Trip Delay property of the Service event.
void evel_mobile_flow_lac_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const lac)
Set the LAC property of the Mobile Flow.
void evel_service_endpoint_desc_set(EVENT_SERVICE *const event, const EVEL_SERVICE_ENDPOINT_DESC endpoint_desc)
Set the Endpoint Descriptor property of the Service event.
MEASUREMENT_LATENCY_BUCKET * evel_new_meas_latency_bucket(const int count)
Create a new Latency Bucket to be added to a Measurement event.
void evel_syslog_addl_field_add(EVENT_SYSLOG *syslog, char *name, char *value)
Add an additional field name/value pair to the Syslog.
EVENT_STATE_CHANGE * evel_new_state_change(const EVEL_ENTITY_STATE new_state, const EVEL_ENTITY_STATE old_state, const char *const interface)
Create a new State Change event.
Mobile GTP Per Flow Metrics.
MEASUREMENT_VNIC_USE * evel_new_measurement_vnic_use(char *const vnic_id, const int packets_in, const int packets_out, const int bytes_in, const int bytes_out)
Create a new vNIC Use to be added to a Measurement event.
void evel_mobile_gtp_metrics_max_trx_bit_rate_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, int rate)
Set the Max Transmit Bit Rate property of the Mobile GTP Per Flow Metrics.
void evel_measurement_mem_cfg_set(EVENT_MEASUREMENT *measurement, double memory_configured)
Set the Memory Configured property of the Measurement.
void evel_syslog_event_source_host_set(EVENT_SYSLOG *syslog, const char *const host)
Set the Event Source Host property of the Syslog.
void evel_mobile_gtp_metrics_max_rcv_bit_rate_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, int rate)
Set the Max Receive Bit Rate property of the Mobile GTP Per Flow Metrics.
void evel_mobile_flow_gtp_prot_type_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const type)
Set the GTP Protocol Type property of the Mobile Flow.
void evel_mobile_gtp_metrics_large_pkt_rtt_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, int rtt)
Set the Large Packet Round-Trip Time property of the Mobile GTP Per Flow Metrics. ...
void evel_last_epoch_set(EVENT_HEADER *const header, const unsigned long long last_epoch_microsec)
Set the Last Epoch property of the event header.
void evel_service_phone_number_set(EVENT_SERVICE *const event, const char *const phone_number)
Set the Phone Number property of the Service event.
void evel_mobile_gtp_metrics_qci_cos_count_add(MOBILE_GTP_PER_FLOW_METRICS *metrics, const EVEL_QCI_COS_TYPES qci_cos, const int count)
Add a QCI COS count to the metrics.
void evel_measurement_mem_used_set(EVENT_MEASUREMENT *measurement, double memory_used)
Set the Memory Used property of the Measurement.
void evel_mobile_flow_imei_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const imei)
Set the IMEI property of the Mobile Flow.
void evel_signaling_compressed_sip_set(EVENT_SIGNALING *const event, const char *const compressed_sip)
Set the Compressed SIP property of the Signaling event.
void evel_signaling_product_id_set(EVENT_SIGNALING *const event, const char *const product_id)
Set the Product Id property of the Signaling event.
void evel_service_endpoint_rtp_pkt_disc_set(EVENT_SERVICE *const event, const int rtp_pkt_disc)
Set the Endpoint Rtp Packets Discarded property of the Service event.
void evel_service_endpoint_rtp_oct_disc_set(EVENT_SERVICE *const event, const int rtp_oct_disc)
Set the Endpoint Rtp Octets Discarded property of the Service event.
void evel_service_rtcp_data_set(EVENT_SERVICE *const event, const char *const rtcp_data)
Set the RTCP Data property of the Service event.
void evel_mobile_flow_mcc_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const mcc)
Set the MCC property of the Mobile Flow.
void evel_mobile_flow_app_prot_type_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const type)
Set the Application Protocol Type property of the Mobile Flow.
void evel_service_friendly_name_set(EVENT_SERVICE *const event, const char *const friendly_name)
Set the Friendly Name property of the Service event.
void evel_mobile_flow_ecgi_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const ecgi)
Set the ECGI property of the Mobile Flow.
void evel_measurement_agg_cpu_use_set(EVENT_MEASUREMENT *measurement, double cpu_use)
} Set the Aggregate CPU Use property of the Measurement.
void evel_measurement_vnfc_scaling_metric_set(EVENT_MEASUREMENT *measurement, double scaling_metric)
Set the VNFC Scaling Metric property of the Measurement.
void evel_service_local_rtp_pkt_sent_set(EVENT_SERVICE *const event, const int rtp_pkt_sent)
Set the Local Rtp Packets Sent property of the Service event.
void evel_service_type_set(EVENT_SERVICE *const event, const char *const type)
Set the Event Type property of the Service event.
void evel_service_caller_codec_set(EVENT_SERVICE *const event, const char *const codec)
Set the Caller Side Codec property of the Service event.
void evel_service_local_jitter_set(EVENT_SERVICE *const event, const int jitter)
Set the Local Jitter property of the Service event.
void evel_mobile_gtp_metrics_dur_tun_fail_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, int duration)
Set the Duration of Tunnel Failed Status property of the Mobile GTP Per Flow Metrics.
void evel_service_local_rtp_pkt_disc_set(EVENT_SERVICE *const event, const int rtp_pkt_disc)
Set the Local Rtp Packets Discarded property of the Service event.
void evel_mobile_gtp_metrics_num_echo_fail_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, int num)
Set the Number of GTP Echo Failures property of the Mobile GTP Per Flow Metrics.
void evel_fault_interface_set(EVENT_FAULT *fault, const char *const interface)
Set the Alarm Interface A property of the Fault.
void evel_signaling_remote_ip_address_set(EVENT_SIGNALING *const event, const char *const remote_ip_address)
Set the Remote Ip Address property of the Signaling event.
void evel_service_endpoint_jitter_set(EVENT_SERVICE *const event, const int jitter)
Set the Endpoint Jitter property of the Service event.
void evel_mobile_flow_app_prot_ver_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const version)
Set the Application Protocol Version property of the Mobile Flow.
void evel_mobile_gtp_metrics_act_time_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, time_t act_time)
Set the Activation Time property of the Mobile GTP Per Flow metrics.
void evel_mobile_gtp_metrics_act_by_set(MOBILE_GTP_PER_FLOW_METRICS *metrics, const char *const act_by)
Set the Activated By property of the Mobile GTP Per Flow metrics.
void evel_mobile_flow_other_func_role_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const role)
Set the Other Functional Role property of the Mobile Flow.