AT&T ECOMP Vendor Event Listener library  0.1
evel.h
Go to the documentation of this file.
1 #ifndef EVEL_INCLUDED
2 #define EVEL_INCLUDED
3 /**************************************************************************/
46 #ifdef __cplusplus
47 extern "C" {
48 #endif
49 
50 #include <stdbool.h>
51 #include <stdio.h>
52 #include <stdarg.h>
53 #include <time.h>
54 
55 #include "double_list.h"
56 
57 /*****************************************************************************/
58 /* Supported API version. */
59 /*****************************************************************************/
60 #define EVEL_API_MAJOR_VERSION 3
61 #define EVEL_API_MINOR_VERSION 0
62 
63 /**************************************************************************/
68 typedef enum {
82 
83 /**************************************************************************/
88 typedef enum {
96 
97 /*****************************************************************************/
98 /* Maximum string lengths. */
99 /*****************************************************************************/
100 #define EVEL_MAX_STRING_LEN 4096
101 #define EVEL_MAX_JSON_BODY 16000
102 #define EVEL_MAX_ERROR_STRING_LEN 255
103 #define EVEL_MAX_URL_LEN 511
104 
105 /**************************************************************************/
108 static const int EVEL_MEASUREMENT_INTERVAL_UKNOWN = 0;
109 
110 /**************************************************************************/
119 static const int EVEL_EVENT_BUFFER_DEPTH = 100;
120 
121 /*****************************************************************************/
122 /* How many different IP Types-of-Service are supported. */
123 /*****************************************************************************/
124 #define EVEL_TOS_SUPPORTED 256
125 
126 /**************************************************************************/
130 typedef enum {
144 
145 /**************************************************************************/
149 typedef enum {
156 
157 /**************************************************************************/
161 typedef enum {
169 
170 /**************************************************************************/
174 typedef enum {
185  /***************************************************************************/
186  /* START OF VENDOR-SPECIFIC VALUES */
187  /* */
188  /* Vendor-specific values should be added here, and handled appropriately */
189  /* in evel_event.c. */
190  /***************************************************************************/
191 
192  /***************************************************************************/
193  /* END OF VENDOR-SPECIFIC VALUES */
194  /***************************************************************************/
197 
198 /**************************************************************************/
202 typedef enum {
210 
211 /**************************************************************************/
215 typedef enum {
220 
221 /**************************************************************************/
225 typedef enum {
231 
232 /**************************************************************************/
236 typedef enum {
243 
244 /**************************************************************************/
248 typedef enum {
254 
255 /**************************************************************************/
259 typedef enum {
286 
287 /**************************************************************************/
291 typedef enum {
303 
304 /**************************************************************************/
308 typedef enum {
309 
310  /***************************************************************************/
311  /* UMTS Classes of Service. */
312  /***************************************************************************/
317 
318  /***************************************************************************/
319  /* LTE Classes of Service. */
320  /***************************************************************************/
336 
337 /**************************************************************************/
341 typedef enum {
346 
347 /**************************************************************************/
350 typedef enum {
353 } EVEL_BOOLEAN;
354 
355 /**************************************************************************/
358 typedef struct evel_option_double
359 {
360  double value;
361  EVEL_BOOLEAN is_set;
363 
364 /**************************************************************************/
367 typedef struct evel_option_string
368 {
369  char * value;
370  EVEL_BOOLEAN is_set;
372 
373 /**************************************************************************/
376 typedef struct evel_option_int
377 {
378  int value;
379  EVEL_BOOLEAN is_set;
381 
382 /**************************************************************************/
385 typedef struct evel_option_ull
386 {
387  unsigned long long value;
388  EVEL_BOOLEAN is_set;
390 
391 /**************************************************************************/
394 typedef struct evel_option_time
395 {
396  time_t value;
397  EVEL_BOOLEAN is_set;
399 
400 /*****************************************************************************/
401 /* Supported Common Event Header version. */
402 /*****************************************************************************/
403 #define EVEL_HEADER_MAJOR_VERSION 1
404 #define EVEL_HEADER_MINOR_VERSION 2
405 
406 /**************************************************************************/
410 typedef struct event_header {
411  /***************************************************************************/
412  /* Version */
413  /***************************************************************************/
416 
417  /***************************************************************************/
418  /* Mandatory fields */
419  /***************************************************************************/
420  EVEL_EVENT_DOMAINS event_domain;
421  char * event_id;
422  char * source_name;
425  EVEL_EVENT_PRIORITIES priority;
426  unsigned long long start_epoch_microsec;
427  unsigned long long last_epoch_microsec;
428  int sequence;
429 
430  /***************************************************************************/
431  /* Optional fields */
432  /***************************************************************************/
436 
437 } EVENT_HEADER;
438 
439 /*****************************************************************************/
440 /* Supported Fault version. */
441 /*****************************************************************************/
442 #define EVEL_FAULT_MAJOR_VERSION 1
443 #define EVEL_FAULT_MINOR_VERSION 1
444 
445 /**************************************************************************/
449 typedef struct event_fault {
450  /***************************************************************************/
451  /* Header and version */
452  /***************************************************************************/
456 
457  /***************************************************************************/
458  /* Mandatory fields */
459  /***************************************************************************/
460  EVEL_SEVERITIES event_severity;
461  EVEL_SOURCE_TYPES event_source_type;
464  EVEL_VF_STATUSES vf_status;
465 
466  /***************************************************************************/
467  /* Optional fields */
468  /***************************************************************************/
471 
472 } EVENT_FAULT;
473 
474 /**************************************************************************/
478 typedef struct fault_additional_info {
479  char * name;
480  char * value;
482 
483 /*****************************************************************************/
484 /* Supported Measurement version. */
485 /*****************************************************************************/
486 #define EVEL_MEASUREMENT_MAJOR_VERSION 1
487 #define EVEL_MEASUREMENT_MINOR_VERSION 1
488 
489 /**************************************************************************/
493 typedef struct measurement_errors {
499 
500 /**************************************************************************/
504 typedef struct event_measurement {
505  /***************************************************************************/
506  /* Header and version */
507  /***************************************************************************/
511 
512  /***************************************************************************/
513  /* Mandatory fields */
514  /***************************************************************************/
516 
517  /***************************************************************************/
518  /* Optional fields */
519  /***************************************************************************/
537 
539 
540 /**************************************************************************/
544 typedef struct measurement_cpu_use {
545  char * id;
546  double usage;
548 
549 /**************************************************************************/
553 typedef struct measurement_fsys_use {
557  double block_used;
562 
563 /**************************************************************************/
568  int count;
569 
570  /***************************************************************************/
571  /* Optional fields */
572  /***************************************************************************/
575 
577 
578 /**************************************************************************/
582 typedef struct measurement_vnic_use {
583  int bytes_in;
587  char * vnic_id;
588 
589  /***************************************************************************/
590  /* Optional fields */
591  /***************************************************************************/
598 
600 
601 /**************************************************************************/
605 typedef struct measurement_codec_use {
606  char * codec_id;
609 
610 /**************************************************************************/
614 typedef struct measurement_feature_use {
615  char * feature_id;
618 
619 /**************************************************************************/
623 typedef struct measurement_group {
624  char * name;
627 
628 /**************************************************************************/
632 typedef struct custom_measurement {
633  char * name;
634  char * value;
636 
637 /*****************************************************************************/
638 /* Supported Report version. */
639 /*****************************************************************************/
640 #define EVEL_REPORT_MAJOR_VERSION 1
641 #define EVEL_REPORT_MINOR_VERSION 1
642 
643 /**************************************************************************/
650 typedef struct event_report {
651  /***************************************************************************/
652  /* Header and version */
653  /***************************************************************************/
657 
658  /***************************************************************************/
659  /* Mandatory fields */
660  /***************************************************************************/
662 
663  /***************************************************************************/
664  /* Optional fields */
665  /***************************************************************************/
668 
669 } EVENT_REPORT;
670 
671 /**************************************************************************/
686  char * flow_status;
706 
707  /***************************************************************************/
708  /* Optional fields */
709  /***************************************************************************/
727 
729 
730 /*****************************************************************************/
731 /* Supported Mobile Flow version. */
732 /*****************************************************************************/
733 #define EVEL_MOBILE_FLOW_MAJOR_VERSION 1
734 #define EVEL_MOBILE_FLOW_MINOR_VERSION 1
735 
736 /**************************************************************************/
740 typedef struct event_mobile_flow {
741  /***************************************************************************/
742  /* Header and version */
743  /***************************************************************************/
747 
748  /***************************************************************************/
749  /* Mandatory fields */
750  /***************************************************************************/
754  char * ip_version;
759 
760  /***************************************************************************/
761  /* Optional fields */
762  /***************************************************************************/
786 
788 
789 /**************************************************************************/
793 typedef struct event_other {
796 
797 } EVENT_OTHER;
798 
799 /**************************************************************************/
803 typedef struct other_field {
804  char * name;
805  char * value;
806 } OTHER_FIELD;
807 
808 /**************************************************************************/
812 typedef struct evel_event_instance_id {
813 
814  /***************************************************************************/
815  /* Mandatory fields */
816  /***************************************************************************/
817  char * vendor_id; /* JSON: vendorId */
818  char * event_id; /* JSON: eventId */
819 
820  /***************************************************************************/
821  /* Optional fields */
822  /***************************************************************************/
823  EVEL_OPTION_STRING product_id; /* JSON: productId */
824  EVEL_OPTION_STRING subsystem_id; /* JSON: subsystemId */
825  EVEL_OPTION_STRING event_friendly_name; /* JSON: eventFriendlyName */
826 
828 
829 /*****************************************************************************/
830 /* Supported Service Events version. */
831 /*****************************************************************************/
832 #define EVEL_SERVICE_MAJOR_VERSION 1
833 #define EVEL_SERVICE_MINOR_VERSION 1
834 
835 /**************************************************************************/
839 typedef struct event_service {
840  /***************************************************************************/
841  /* Header and version */
842  /***************************************************************************/
846 
847  /***************************************************************************/
848  /* Mandatory fields */
849  /***************************************************************************/
850  EVEL_EVENT_INSTANCE_ID instance_id; /* JSON: eventInstanceIdentifier */
851 
852  /***************************************************************************/
853  /* Optional fields. */
854  /***************************************************************************/
855  EVEL_OPTION_STRING correlator; /* JSON: correlator */
856  DLIST additional_fields; /* JSON: additionalFields */
857 
858  /***************************************************************************/
859  /* Optional fields within JSON equivalent object: codecSelected */
860  /***************************************************************************/
861  EVEL_OPTION_STRING codec; /* JSON: codec */
862 
863  /***************************************************************************/
864  /* Optional fields within JSON equivalent object: codecSelectedTranscoding */
865  /***************************************************************************/
866  EVEL_OPTION_STRING callee_side_codec; /* JSON: calleeSideCodec */
867  EVEL_OPTION_STRING caller_side_codec; /* JSON: callerSideCodec */
868 
869  /***************************************************************************/
870  /* Optional fields within JSON equivalent object: midCallRtcp */
871  /***************************************************************************/
872  EVEL_OPTION_STRING rtcp_data; /* JSON: rtcpData */
873 
874  /***************************************************************************/
875  /* Optional fields within JSON equivalent object: endOfCallVqmSummaries */
876  /***************************************************************************/
877  EVEL_OPTION_STRING adjacency_name; /* JSON: adjacencyName */
878  EVEL_OPTION_STRING endpoint_description; /* JSON: endpointDescription */
879  EVEL_OPTION_INT endpoint_jitter; /* JSON: endpointJitter */
880  EVEL_OPTION_INT endpoint_rtp_oct_disc; /* JSON: endpointRtpOctetsDiscarded */
881  EVEL_OPTION_INT endpoint_rtp_oct_recv; /* JSON: endpointRtpOctetsReceived */
882  EVEL_OPTION_INT endpoint_rtp_oct_sent; /* JSON: endpointRtpOctetsSent */
883  EVEL_OPTION_INT endpoint_rtp_pkt_disc;/* JSON: endpointRtpPacketsDiscarded */
884  EVEL_OPTION_INT endpoint_rtp_pkt_recv; /* JSON: endpointRtpPacketsReceived */
885  EVEL_OPTION_INT endpoint_rtp_pkt_sent; /* JSON: endpointRtpPacketsSent */
886  EVEL_OPTION_INT local_jitter; /* JSON: localJitter */
887  EVEL_OPTION_INT local_rtp_oct_disc; /* JSON: localRtpOctetsDiscarded */
888  EVEL_OPTION_INT local_rtp_oct_recv; /* JSON: localRtpOctetsReceived */
889  EVEL_OPTION_INT local_rtp_oct_sent; /* JSON: localRtpOctetsSent */
890  EVEL_OPTION_INT local_rtp_pkt_disc; /* JSON: localRtpPacketsDiscarded */
891  EVEL_OPTION_INT local_rtp_pkt_recv; /* JSON: localRtpPacketsReceived */
892  EVEL_OPTION_INT local_rtp_pkt_sent; /* JSON: localRtpPacketsSent */
893  EVEL_OPTION_DOUBLE mos_cqe; /* JSON: mosCqe */
894  EVEL_OPTION_INT packets_lost; /* JSON: packetsLost */
895  EVEL_OPTION_DOUBLE packet_loss_percent; /* JSON: packetLossPercent */
896  EVEL_OPTION_INT r_factor; /* JSON: rFactor */
897  EVEL_OPTION_INT round_trip_delay; /* JSON: roundTripDelay */
898 
899  /***************************************************************************/
900  /* Optional fields within JSON equivalent object: marker */
901  /***************************************************************************/
902  EVEL_OPTION_STRING phone_number; /* JSON: phoneNumber */
903 
904 } EVENT_SERVICE;
905 
906 /*****************************************************************************/
907 /* Supported Signaling version. */
908 /*****************************************************************************/
909 #define EVEL_SIGNALING_MAJOR_VERSION 1
910 #define EVEL_SIGNALING_MINOR_VERSION 1
911 
912 /**************************************************************************/
916 typedef struct event_signaling {
917  /***************************************************************************/
918  /* Header and version */
919  /***************************************************************************/
923 
924  /***************************************************************************/
925  /* Mandatory fields */
926  /***************************************************************************/
927  EVEL_EVENT_INSTANCE_ID instance_id; /* JSON: eventInstanceIdentifier */
928 
929  /***************************************************************************/
930  /* Optional fields */
931  /***************************************************************************/
932  EVEL_OPTION_STRING correlator; /* JSON: correlator */
933  EVEL_OPTION_STRING local_ip_address; /* JSON: localIpAddress */
934  EVEL_OPTION_STRING local_port; /* JSON: localPort */
935  EVEL_OPTION_STRING remote_ip_address; /* JSON: remoteIpAddress */
936  EVEL_OPTION_STRING remote_port; /* JSON: remotePort */
937  EVEL_OPTION_STRING compressed_sip; /* JSON: compressedSip */
938  EVEL_OPTION_STRING summary_sip; /* JSON: summarySip */
939 
941 
942 /*****************************************************************************/
943 /* Supported State Change version. */
944 /*****************************************************************************/
945 #define EVEL_STATE_CHANGE_MAJOR_VERSION 1
946 #define EVEL_STATE_CHANGE_MINOR_VERSION 1
947 
948 /**************************************************************************/
952 typedef struct event_state_change {
953  /***************************************************************************/
954  /* Header and version */
955  /***************************************************************************/
959 
960  /***************************************************************************/
961  /* Mandatory fields */
962  /***************************************************************************/
963  EVEL_ENTITY_STATE new_state;
964  EVEL_ENTITY_STATE old_state;
966 
967  /***************************************************************************/
968  /* Optional fields */
969  /***************************************************************************/
971 
973 
974 /**************************************************************************/
979  char * name;
980  char * value;
982 
983 /*****************************************************************************/
984 /* Supported Syslog version. */
985 /*****************************************************************************/
986 #define EVEL_SYSLOG_MAJOR_VERSION 1
987 #define EVEL_SYSLOG_MINOR_VERSION 1
988 
989 /**************************************************************************/
993 typedef struct event_syslog {
994  /***************************************************************************/
995  /* Header and version */
996  /***************************************************************************/
1000 
1001  /***************************************************************************/
1002  /* Mandatory fields */
1003  /***************************************************************************/
1004  EVEL_SOURCE_TYPES event_source_type;
1005  char * syslog_msg;
1006  char * syslog_tag;
1007 
1008  /***************************************************************************/
1009  /* Optional fields */
1010  /***************************************************************************/
1018 
1019 } EVENT_SYSLOG;
1020 
1021 /**************************************************************************/
1025 typedef struct syslog_additional_field {
1026  char * name;
1027  char * value;
1029 
1030 /**************************************************************************/
1034 typedef struct copyright {
1036  char * condition1;
1037  char * condition2;
1038  char * condition3;
1039  char * condition4;
1044 } COPYRIGHT;
1045 
1046 /**************************************************************************/
1074 EVEL_ERR_CODES evel_initialize(const char * const fqdn,
1075  int port,
1076  const char * const path,
1077  const char * const topic,
1078  int secure,
1079  const char * const username,
1080  const char * const password,
1081  EVEL_SOURCE_TYPES source_type,
1082  const char * const role,
1083  int verbosity
1084  );
1085 
1086 /**************************************************************************/
1095 EVEL_ERR_CODES evel_terminate(void);
1096 
1097 EVEL_ERR_CODES evel_post_event(EVENT_HEADER * event);
1098 const char * evel_error_string(void);
1099 
1100 
1101 /**************************************************************************/
1108 void evel_free_event(void * event);
1109 
1110 /**************************************************************************/
1118 int evel_json_encode_event(char * json,
1119  int max_size,
1120  EVENT_HEADER * event);
1121 
1122 /**************************************************************************/
1130 size_t evel_write_callback(void *contents,
1131  size_t size,
1132  size_t nmemb,
1133  void *userp);
1134 
1135 /*****************************************************************************/
1136 /*****************************************************************************/
1137 /* */
1138 /* HEARTBEAT - (includes common header, too) */
1139 /* */
1140 /*****************************************************************************/
1141 /*****************************************************************************/
1142 
1143 /**************************************************************************/
1153 
1154 /**************************************************************************/
1163 void evel_free_header(EVENT_HEADER * const event);
1164 
1165 /**************************************************************************/
1170 void evel_init_header(EVENT_HEADER * const header);
1171 
1172 /**************************************************************************/
1180 void evel_header_type_set(EVENT_HEADER * const header,
1181  const char * const type);
1182 
1183 /**************************************************************************/
1192 void evel_start_epoch_set(EVENT_HEADER * const header,
1193  const unsigned long long start_epoch_microsec);
1194 
1195 /**************************************************************************/
1204 void evel_last_epoch_set(EVENT_HEADER * const header,
1205  const unsigned long long last_epoch_microsec);
1206 
1207 /**************************************************************************/
1215 void evel_reporting_entity_name_set(EVENT_HEADER * const header,
1216  const char * const entity_name);
1217 
1218 /**************************************************************************/
1226 void evel_reporting_entity_id_set(EVENT_HEADER * const header,
1227  const char * const entity_id);
1228 
1229 /*****************************************************************************/
1230 /*****************************************************************************/
1231 /* */
1232 /* FAULT */
1233 /* */
1234 /*****************************************************************************/
1235 /*****************************************************************************/
1236 
1237 /**************************************************************************/
1245 EVENT_FAULT * evel_new_fault(const char * const condition,
1246  const char * const specific_problem,
1247  EVEL_EVENT_PRIORITIES priority,
1248  EVEL_SEVERITIES severity);
1249 
1250 /**************************************************************************/
1258 void evel_free_fault(EVENT_FAULT * event);
1259 
1260 
1261 /**************************************************************************/
1274  const char * const interface);
1275 
1276 /**************************************************************************/
1287 void evel_fault_addl_info_add(EVENT_FAULT * fault, char * name, char * value);
1288 
1289 /**************************************************************************/
1301 void evel_fault_type_set(EVENT_FAULT * fault, const char * const type);
1302 
1303 /*****************************************************************************/
1304 /*****************************************************************************/
1305 /* */
1306 /* MEASUREMENT */
1307 /* */
1308 /*****************************************************************************/
1309 /*****************************************************************************/
1310 
1311 /**************************************************************************/
1326 EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval);
1327 
1328 /**************************************************************************/
1338 
1339 /**************************************************************************/
1351 void evel_measurement_type_set(EVENT_MEASUREMENT * measurement,
1352  const char * const type);
1353 
1354 /**************************************************************************/
1365  int concurrent_sessions);
1366 
1367 /**************************************************************************/
1378  int configured_entities);
1379 
1380 /**************************************************************************/
1394  int receive_discards,
1395  int receive_errors,
1396  int transmit_discards,
1397  int transmit_errors);
1398 
1399 /**************************************************************************/
1410  double mean_request_latency);
1411 
1412 /**************************************************************************/
1423  double memory_configured);
1424 
1425 /**************************************************************************/
1436  double memory_used);
1437 
1438 /**************************************************************************/
1449  int request_rate);
1450 
1451 /**************************************************************************/
1463  char * id, double usage);
1464 
1465 /**************************************************************************/
1483  char * filesystem_name,
1484  double block_configured,
1485  double block_used,
1486  int block_iops,
1487  double ephemeral_configured,
1488  double ephemeral_used,
1489  int ephemeral_iops);
1490 
1491 /**************************************************************************/
1503  char * feature,
1504  int utilization);
1505 
1506 /**************************************************************************/
1519  const char * const group,
1520  const char * const name,
1521  const char * const value);
1522 
1523 /**************************************************************************/
1535  char * codec,
1536  int utilization);
1537 
1538 /**************************************************************************/
1550  double cpu_use);
1551 
1552 /**************************************************************************/
1563  int media_ports_in_use);
1564 
1565 /**************************************************************************/
1576  double scaling_metric);
1577 
1578 /**************************************************************************/
1593 
1594 /**************************************************************************/
1605  MEASUREMENT_LATENCY_BUCKET * const bucket,
1606  const double high_end);
1607 
1608 /**************************************************************************/
1619  MEASUREMENT_LATENCY_BUCKET * const bucket,
1620  const double low_end);
1621 
1622 /**************************************************************************/
1628 void evel_meas_latency_bucket_add(EVENT_MEASUREMENT * const measurement,
1629  MEASUREMENT_LATENCY_BUCKET * const bucket);
1630 
1631 /**************************************************************************/
1641 void evel_measurement_latency_add(EVENT_MEASUREMENT * const measurement,
1642  const double low_end,
1643  const double high_end,
1644  const int count);
1645 
1646 /**************************************************************************/
1667  const int packets_in,
1668  const int packets_out,
1669  const int bytes_in,
1670  const int bytes_out);
1671 
1672 /**************************************************************************/
1682 
1683 /**************************************************************************/
1695  const int broadcast_packets_in);
1696 
1697 /**************************************************************************/
1709  const int broadcast_packets_out);
1710 
1711 /**************************************************************************/
1723  const int multicast_packets_in);
1724 
1725 /**************************************************************************/
1737  const int multicast_packets_out);
1738 
1739 /**************************************************************************/
1751  const int unicast_packets_in);
1752 
1753 /**************************************************************************/
1765  const int unicast_packets_out);
1766 
1767 /**************************************************************************/
1773 void evel_meas_vnic_use_add(EVENT_MEASUREMENT * const measurement,
1774  MEASUREMENT_VNIC_USE * const vnic_use);
1775 
1776 /**************************************************************************/
1797 void evel_measurement_vnic_use_add(EVENT_MEASUREMENT * const measurement,
1798  char * const vnic_id,
1799  const int packets_in,
1800  const int packets_out,
1801  const int broadcast_packets_in,
1802  const int broadcast_packets_out,
1803  const int bytes_in,
1804  const int bytes_out,
1805  const int multicast_packets_in,
1806  const int multicast_packets_out,
1807  const int unicast_packets_in,
1808  const int unicast_packets_out);
1809 
1810 /*****************************************************************************/
1811 /*****************************************************************************/
1812 /* */
1813 /* REPORT */
1814 /* */
1815 /*****************************************************************************/
1816 /*****************************************************************************/
1817 
1818 /**************************************************************************/
1833 EVENT_REPORT * evel_new_report(double measurement_interval);
1834 
1835 /**************************************************************************/
1843 void evel_free_report(EVENT_REPORT * event);
1844 
1845 /**************************************************************************/
1857 void evel_report_type_set(EVENT_REPORT * report, const char * const type);
1858 
1859 /**************************************************************************/
1871  char * feature,
1872  int utilization);
1873 
1874 /**************************************************************************/
1887  const char * const group,
1888  const char * const name,
1889  const char * const value);
1890 
1891 /*****************************************************************************/
1892 /*****************************************************************************/
1893 /* */
1894 /* MOBILE_FLOW */
1895 /* */
1896 /*****************************************************************************/
1897 /*****************************************************************************/
1898 
1899 /**************************************************************************/
1922  const char * const flow_direction,
1923  MOBILE_GTP_PER_FLOW_METRICS * gtp_per_flow_metrics,
1924  const char * const ip_protocol_type,
1925  const char * const ip_version,
1926  const char * const other_endpoint_ip_address,
1927  int other_endpoint_port,
1928  const char * const reporting_endpoint_ip_addr,
1929  int reporting_endpoint_port);
1930 
1931 /**************************************************************************/
1941 
1942 /**************************************************************************/
1954 void evel_mobile_flow_type_set(EVENT_MOBILE_FLOW * mobile_flow,
1955  const char * const type);
1956 
1957 /**************************************************************************/
1970  const char * const type);
1971 
1972 /**************************************************************************/
1985  const char * const type);
1986 
1987 /**************************************************************************/
2000  const char * const version);
2001 
2002 /**************************************************************************/
2013 void evel_mobile_flow_cid_set(EVENT_MOBILE_FLOW * mobile_flow,
2014  const char * const cid);
2015 
2016 /**************************************************************************/
2029  const char * const type);
2030 
2031 /**************************************************************************/
2042 void evel_mobile_flow_ecgi_set(EVENT_MOBILE_FLOW * mobile_flow,
2043  const char * const ecgi);
2044 
2045 /**************************************************************************/
2058  const char * const type);
2059 
2060 /**************************************************************************/
2073  const char * const version);
2074 
2075 /**************************************************************************/
2087  const char * const header);
2088 
2089 /**************************************************************************/
2100 void evel_mobile_flow_imei_set(EVENT_MOBILE_FLOW * mobile_flow,
2101  const char * const imei);
2102 
2103 /**************************************************************************/
2114 void evel_mobile_flow_imsi_set(EVENT_MOBILE_FLOW * mobile_flow,
2115  const char * const imsi);
2116 
2117 /**************************************************************************/
2128 void evel_mobile_flow_lac_set(EVENT_MOBILE_FLOW * mobile_flow,
2129  const char * const lac);
2130 
2131 /**************************************************************************/
2142 void evel_mobile_flow_mcc_set(EVENT_MOBILE_FLOW * mobile_flow,
2143  const char * const mcc);
2144 
2145 /**************************************************************************/
2156 void evel_mobile_flow_mnc_set(EVENT_MOBILE_FLOW * mobile_flow,
2157  const char * const mnc);
2158 
2159 /**************************************************************************/
2171  const char * const msisdn);
2172 
2173 /**************************************************************************/
2186  const char * const role);
2187 
2188 /**************************************************************************/
2199 void evel_mobile_flow_rac_set(EVENT_MOBILE_FLOW * mobile_flow,
2200  const char * const rac);
2201 
2202 /**************************************************************************/
2215  const char * const tech);
2216 
2217 /**************************************************************************/
2228 void evel_mobile_flow_sac_set(EVENT_MOBILE_FLOW * mobile_flow,
2229  const char * const sac);
2230 
2231 /**************************************************************************/
2242  int algorithm);
2243 
2244 /**************************************************************************/
2255 void evel_mobile_flow_tac_set(EVENT_MOBILE_FLOW * mobile_flow,
2256  const char * const tac);
2257 
2258 /**************************************************************************/
2270  const char * const tunnel_id);
2271 
2272 /**************************************************************************/
2284  const char * const vlan_id);
2285 
2286 /**************************************************************************/
2332  double avg_bit_error_rate,
2333  double avg_packet_delay_variation,
2334  int avg_packet_latency,
2335  int avg_receive_throughput,
2336  int avg_transmit_throughput,
2337  int flow_activation_epoch,
2338  int flow_activation_microsec,
2339  int flow_deactivation_epoch,
2340  int flow_deactivation_microsec,
2341  time_t flow_deactivation_time,
2342  const char * const flow_status,
2343  int max_packet_delay_variation,
2344  int num_activation_failures,
2345  int num_bit_errors,
2346  int num_bytes_received,
2347  int num_bytes_transmitted,
2348  int num_dropped_packets,
2349  int num_l7_bytes_received,
2350  int num_l7_bytes_transmitted,
2351  int num_lost_packets,
2352  int num_out_of_order_packets,
2353  int num_packet_errors,
2354  int num_packets_received_excl_retrans,
2355  int num_packets_received_incl_retrans,
2356  int num_packets_transmitted_incl_retrans,
2357  int num_retries,
2358  int num_timeouts,
2359  int num_tunneled_l7_bytes_received,
2360  int round_trip_time,
2361  int time_to_first_byte);
2362 
2363 /**************************************************************************/
2373 
2374 /**************************************************************************/
2386  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2387  int duration);
2388 
2389 /**************************************************************************/
2401  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2402  int duration);
2403 
2404 /**************************************************************************/
2417  const char * const act_by);
2418 
2419 /**************************************************************************/
2432  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2433  time_t act_time);
2434 
2435 /**************************************************************************/
2448  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2449  const char * const deact_by);
2450 
2451 /**************************************************************************/
2464  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2465  const char * const status);
2466 
2467 /**************************************************************************/
2480  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2481  const char * const status);
2482 
2483 /**************************************************************************/
2491  int index,
2492  int count);
2493 
2494 /**************************************************************************/
2506  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2507  int rtt);
2508 
2509 /**************************************************************************/
2520  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2521  double threshold);
2522 
2523 /**************************************************************************/
2534  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2535  int rate);
2536 
2537 /**************************************************************************/
2548  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2549  int rate);
2550 
2551 /**************************************************************************/
2563  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2564  int num);
2565 
2566 /**************************************************************************/
2578  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2579  int num);
2580 
2581 /**************************************************************************/
2592  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2593  int num);
2594 
2595 /**************************************************************************/
2607  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2608  const EVEL_TCP_FLAGS tcp_flag,
2609  const int count);
2610 
2611 /**************************************************************************/
2623  MOBILE_GTP_PER_FLOW_METRICS * metrics,
2624  const EVEL_QCI_COS_TYPES qci_cos,
2625  const int count);
2626 
2627 /*****************************************************************************/
2628 /*****************************************************************************/
2629 /* */
2630 /* SERVICE EVENTS */
2631 /* */
2632 /*****************************************************************************/
2633 /*****************************************************************************/
2634 
2635 /**************************************************************************/
2649 EVENT_SERVICE * evel_new_service(const char * const vendor_id,
2650  const char * const event_id);
2651 
2652 /**************************************************************************/
2660 void evel_free_service(EVENT_SERVICE * const event);
2661 
2662 /**************************************************************************/
2674 void evel_service_type_set(EVENT_SERVICE * const event,
2675  const char * const type);
2676 
2677 /**************************************************************************/
2689 void evel_service_product_id_set(EVENT_SERVICE * const event,
2690  const char * const product_id);
2691 
2692 /**************************************************************************/
2704 void evel_service_subsystem_id_set(EVENT_SERVICE * const event,
2705  const char * const subsystem_id);
2706 
2707 /**************************************************************************/
2720  const char * const friendly_name);
2721 
2722 /**************************************************************************/
2734 void evel_service_correlator_set(EVENT_SERVICE * const event,
2735  const char * const correlator);
2736 
2737 /**************************************************************************/
2748 void evel_service_codec_set(EVENT_SERVICE * const event,
2749  const char * const codec);
2750 
2751 /**************************************************************************/
2762 void evel_service_callee_codec_set(EVENT_SERVICE * const event,
2763  const char * const codec);
2764 
2765 /**************************************************************************/
2776 void evel_service_caller_codec_set(EVENT_SERVICE * const event,
2777  const char * const codec);
2778 
2779 /**************************************************************************/
2791 void evel_service_rtcp_data_set(EVENT_SERVICE * const event,
2792  const char * const rtcp_data);
2793 
2794 /**************************************************************************/
2808  const char * const adjacency_name);
2809 
2810 /**************************************************************************/
2821  EVENT_SERVICE * const event,
2822  const EVEL_SERVICE_ENDPOINT_DESC endpoint_desc);
2823 
2824 /**************************************************************************/
2835  const int jitter);
2836 
2837 /**************************************************************************/
2848  const int rtp_oct_disc);
2849 
2850 /**************************************************************************/
2861  const int rtp_oct_recv);
2862 
2863 /**************************************************************************/
2874  const int rtp_oct_sent);
2875 
2876 /**************************************************************************/
2887  const int rtp_pkt_disc);
2888 
2889 /**************************************************************************/
2900  const int rtp_pkt_recv);
2901 
2902 /**************************************************************************/
2913  const int rtp_pkt_sent);
2914 
2915 /**************************************************************************/
2925 void evel_service_local_jitter_set(EVENT_SERVICE * const event,
2926  const int jitter);
2927 
2928 /**************************************************************************/
2939  const int rtp_oct_disc);
2940 
2941 /**************************************************************************/
2952  const int rtp_oct_recv);
2953 
2954 /**************************************************************************/
2965  const int rtp_oct_sent);
2966 
2967 /**************************************************************************/
2978  const int rtp_pkt_disc);
2979 
2980 /**************************************************************************/
2991  const int rtp_pkt_recv);
2992 
2993 /**************************************************************************/
3004  const int rtp_pkt_sent);
3005 
3006 /**************************************************************************/
3016 void evel_service_mos_cqe_set(EVENT_SERVICE * const event,
3017  const double mos_cqe);
3018 
3019 /**************************************************************************/
3029 void evel_service_packets_lost_set(EVENT_SERVICE * const event,
3030  const int packets_lost);
3031 
3032 /**************************************************************************/
3044  const double packet_loss_percent);
3045 
3046 /**************************************************************************/
3056 void evel_service_r_factor_set(EVENT_SERVICE * const event,
3057  const int r_factor);
3058 
3059 /**************************************************************************/
3071  const int round_trip_delay);
3072 
3073 /**************************************************************************/
3085 void evel_service_phone_number_set(EVENT_SERVICE * const event,
3086  const char * const phone_number);
3087 
3088 /**************************************************************************/
3101 void evel_service_addl_field_add(EVENT_SERVICE * const event,
3102  const char * const name,
3103  const char * const value);
3104 
3105 /*****************************************************************************/
3106 /*****************************************************************************/
3107 /* */
3108 /* SIGNALING */
3109 /* */
3110 /*****************************************************************************/
3111 /*****************************************************************************/
3112 
3113 /**************************************************************************/
3127 EVENT_SIGNALING * evel_new_signaling(const char * const vendor_id,
3128  const char * const event_id);
3129 
3130 /**************************************************************************/
3138 void evel_free_signaling(EVENT_SIGNALING * const event);
3139 
3140 /**************************************************************************/
3152 void evel_signaling_type_set(EVENT_SIGNALING * const event,
3153  const char * const type);
3154 
3155 /**************************************************************************/
3168  const char * const product_id);
3169 
3170 /**************************************************************************/
3183  const char * const subsystem_id);
3184 
3185 /**************************************************************************/
3198  const char * const friendly_name);
3199 
3200 /**************************************************************************/
3213  const char * const correlator);
3214 
3215 /**************************************************************************/
3229  const char * const local_ip_address);
3230 
3231 /**************************************************************************/
3244  const char * const local_port);
3245 
3246 /**************************************************************************/
3260  const char * const remote_ip_address);
3261 
3262 /**************************************************************************/
3275  const char * const remote_port);
3276 
3277 /**************************************************************************/
3291  const char * const compressed_sip);
3292 
3293 /**************************************************************************/
3306  const char * const summary_sip);
3307 
3308 /*****************************************************************************/
3309 /*****************************************************************************/
3310 /* */
3311 /* STATE CHANGE */
3312 /* */
3313 /*****************************************************************************/
3314 /*****************************************************************************/
3315 
3316 /**************************************************************************/
3333 EVENT_STATE_CHANGE * evel_new_state_change(const EVEL_ENTITY_STATE new_state,
3334  const EVEL_ENTITY_STATE old_state,
3335  const char * const interface);
3336 
3337 /**************************************************************************/
3346 void evel_free_state_change(EVENT_STATE_CHANGE * const state_change);
3347 
3348 /**************************************************************************/
3360 void evel_state_change_type_set(EVENT_STATE_CHANGE * const state_change,
3361  const char * const type);
3362 
3363 /**************************************************************************/
3378 void evel_state_change_addl_field_add(EVENT_STATE_CHANGE * const state_change,
3379  const char * const name,
3380  const char * const value);
3381 
3382 /*****************************************************************************/
3383 /*****************************************************************************/
3384 /* */
3385 /* SYSLOG */
3386 /* */
3387 /*****************************************************************************/
3388 /*****************************************************************************/
3389 
3390 /**************************************************************************/
3406 EVENT_SYSLOG * evel_new_syslog(EVEL_SOURCE_TYPES event_source_type,
3407  const char * const syslog_msg,
3408  const char * const syslog_tag);
3409 
3410 /**************************************************************************/
3422 void evel_syslog_type_set(EVENT_SYSLOG * syslog,
3423  const char * const type);
3424 
3425 /**************************************************************************/
3433 void evel_free_syslog(EVENT_SYSLOG * event);
3434 
3435 /**************************************************************************/
3451  char * name,
3452  char * value);
3453 
3454 /**************************************************************************/
3467  const char * const host);
3468 
3469 /**************************************************************************/
3482  EVEL_SYSLOG_FACILITIES facility);
3483 
3484 /**************************************************************************/
3495 void evel_syslog_proc_set(EVENT_SYSLOG * syslog, const char * const proc);
3496 
3497 /**************************************************************************/
3507 void evel_syslog_proc_id_set(EVENT_SYSLOG * syslog, int proc_id);
3508 
3509 /**************************************************************************/
3519 void evel_syslog_version_set(EVENT_SYSLOG * syslog, int version);
3520 
3521 /**************************************************************************/
3533 void evel_syslog_s_data_set(EVENT_SYSLOG * syslog, const char * const s_data);
3534 
3535 /*****************************************************************************/
3536 /*****************************************************************************/
3537 /* */
3538 /* OTHER */
3539 /* */
3540 /*****************************************************************************/
3541 /*****************************************************************************/
3542 
3543 /**************************************************************************/
3551 EVENT_OTHER * evel_new_other(void);
3552 
3553 /**************************************************************************/
3561 void evel_free_other(EVENT_OTHER * event);
3562 
3563 /**************************************************************************/
3575 void evel_other_type_set(EVENT_OTHER * other,
3576  const char * const type);
3577 
3578 /**************************************************************************/
3589 void evel_other_field_add(EVENT_OTHER * other,
3590  char * name,
3591  char * value);
3592 
3593 /*****************************************************************************/
3594 /*****************************************************************************/
3595 /* */
3596 /* THROTTLING */
3597 /* */
3598 /*****************************************************************************/
3599 /*****************************************************************************/
3600 
3601 /**************************************************************************/
3609 
3610 /*****************************************************************************/
3611 /*****************************************************************************/
3612 /* */
3613 /* LOGGING */
3614 /* */
3615 /*****************************************************************************/
3616 /*****************************************************************************/
3617 
3618 /*****************************************************************************/
3619 /* Debug macros. */
3620 /*****************************************************************************/
3621 #define EVEL_DEBUG(FMT, ...) log_debug(EVEL_LOG_DEBUG, (FMT), ##__VA_ARGS__)
3622 #define EVEL_INFO(FMT, ...) log_debug(EVEL_LOG_INFO, (FMT), ##__VA_ARGS__)
3623 #define EVEL_SPAMMY(FMT, ...) log_debug(EVEL_LOG_SPAMMY, (FMT), ##__VA_ARGS__)
3624 #define EVEL_ERROR(FMT, ...) log_debug(EVEL_LOG_ERROR, "ERROR: " FMT, \
3625  ##__VA_ARGS__)
3626 #define EVEL_ENTER() \
3627  { \
3628  log_debug(EVEL_LOG_DEBUG, "Enter %s {", __FUNCTION__); \
3629  debug_indent += 2; \
3630  }
3631 #define EVEL_EXIT() \
3632  { \
3633  debug_indent -= 2; \
3634  log_debug(EVEL_LOG_DEBUG, "Exit %s }", __FUNCTION__); \
3635  }
3636 
3637 #define INDENT_SEPARATORS \
3638  "| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "
3639 
3641 extern int debug_indent;
3642 extern FILE * fout;
3643 
3644 #define EVEL_DEBUG_ON() ((debug_level) >= EVEL_LOG_DEBUG)
3645 
3646 /**************************************************************************/
3652 void log_initialize(EVEL_LOG_LEVELS level, const char * ident);
3653 
3654 /**************************************************************************/
3663 void log_debug(EVEL_LOG_LEVELS level, char * format, ...);
3664 
3665 /***************************************************************************//*
3666  * Store the formatted string into the static error string and log the error.
3667  *
3668  * @param format Error string in standard printf format.
3669  * @param ... Variable parameters to be substituted into the format string.
3670  *****************************************************************************/
3671 void log_error_state(char * format, ...);
3672 
3673 #ifdef __cplusplus
3674 }
3675 #endif
3676 
3677 #endif
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.
struct fault_additional_info FAULT_ADDL_INFO
Fault Additional Info.
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.
EVEL_EVENT_DOMAINS
Event domains for the various events we support.
Definition: evel.h:130
EVEL_OPTION_INT large_packet_rtt
Definition: evel.h:720
#define EVEL_TOS_SUPPORTED
Definition: evel.h:124
EVEL_SOURCE_TYPES event_source_type
Definition: evel.h:461
void evel_mobile_flow_sac_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const sac)
Set the SAC property of the Mobile Flow.
Feature Usage.
Definition: evel.h:614
char * flow_direction
Definition: evel.h:751
time_t flow_deactivation_time
Definition: evel.h:685
int major_version
Definition: evel.h:921
EVEL_OPTION_STRING adjacency_name
Definition: evel.h:877
DLIST measurement_groups
Definition: evel.h:667
struct evel_option_string EVEL_OPTION_STRING
Optional parameter holder for string.
int minor_version
Definition: evel.h:845
void evel_syslog_proc_id_set(EVENT_SYSLOG *syslog, int proc_id)
Set the Process ID property of the Syslog.
Definition: evel_syslog.c:274
EVEL_OPTION_STRING reporting_entity_id
Definition: evel.h:435
void evel_free_state_change(EVENT_STATE_CHANGE *const state_change)
Free a State Change.
struct state_change_additional_field STATE_CHANGE_ADDL_FIELD
State Change Additional Field.
Another event.
Definition: evel.h:142
void log_initialize(EVEL_LOG_LEVELS level, const char *ident)
Initialize logging.
Definition: evel_logging.c:68
char * alarm_condition
Definition: evel.h:462
double block_used
Definition: evel.h:557
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.
int minor_version
Definition: evel.h:415
EVENT_HEADER header
Definition: evel.h:956
void evel_free_signaling(EVENT_SIGNALING *const event)
Free a Signaling event.
EVEL_OPTION_STRING tunnel_id
Definition: evel.h:784
void evel_mobile_flow_mnc_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const mnc)
Set the MNC property of the Mobile Flow.
char * functional_role
Definition: evel.h:423
Failed to find the specified JSON key.
Definition: evel.h:80
The operation was successful.
Definition: evel.h:70
char * disclaimerLine4
Definition: evel.h:1043
EVEL_BOOLEAN
Boolean type for EVEL library.
Definition: evel.h:350
EVENT_HEADER header
Definition: evel.h:508
EVEL_OPTION_INT request_rate
Definition: evel.h:534
void evel_mobile_flow_cid_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const cid)
Set the CID property of the Mobile Flow.
EVEL_LOG_LEVELS
Logging levels.
Definition: evel.h:88
int receive_errors
Definition: evel.h:495
unsigned long long start_epoch_microsec
Definition: evel.h:426
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.
EVEL_OPTION_STRING source_id
Definition: evel.h:434
Report.
Definition: evel.h:650
void evel_service_product_id_set(EVENT_SERVICE *const event, const char *const product_id)
Set the Product Id property of the Service event.
Definition: evel_service.c:204
void evel_mobile_flow_type_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const type)
Set the Event Type property of the Mobile Flow.
Event Instance Identifier JSON equivalent field: eventInstanceIdentifier.
Definition: evel.h:812
EVEL_OPTION_INT multicast_packets_in
Definition: evel.h:594
EVEL_OPTION_STRING syslog_s_data
Definition: evel.h:1016
OpenStack metadata invalid format.
Definition: evel.h:78
int transmit_discards
Definition: evel.h:496
double value
Definition: evel.h:360
struct event_signaling EVENT_SIGNALING
Signaling.
EVEL_SOURCE_TYPES event_source_type
The type of equipment represented by this VNF.
Definition: evel.c:58
EVEL_OPTION_INT configured_entities
Definition: evel.h:524
char * name
Definition: evel.h:633
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.
Definition: evel_service.c:922
EVEL_OPTION_DOUBLE mean_request_latency
Definition: evel.h:530
void evel_measurement_request_rate_set(EVENT_MEASUREMENT *measurement, int request_rate)
Set the Request Rate property of the Measurement.
DLIST additional_fields
Definition: evel.h:856
void evel_syslog_version_set(EVENT_SYSLOG *syslog, int version)
Set the Version property of the Syslog.
Definition: evel_syslog.c:302
Optional parameter holder for unsigned long long.
Definition: evel.h:385
int minor_version
Definition: evel.h:656
EVEL_OPTION_INT local_rtp_oct_recv
Definition: evel.h:888
EVEL_OPTION_INT syslog_ver
Definition: evel.h:1017
char * reporting_entity_name
Definition: evel.h:424
EVENT_HEADER header
Definition: evel.h:920
void evel_signaling_summary_sip_set(EVENT_SIGNALING *const event, const char *const summary_sip)
Set the Summary SIP property of the Signaling event.
Optional parameter holder for double.
Definition: evel.h:358
int receive_discards
Definition: evel.h:494
int num_packets_transmitted_incl_retrans
Definition: evel.h:700
char * specific_problem
Definition: evel.h:463
Optional parameter holder for string.
Definition: evel.h:367
const char * evel_error_string(void)
Descriptive text for library errors.
Definition: evel_logging.c:87
EVEL_OPTION_TIME flow_activation_time
Definition: evel.h:716
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.
Definition: evel_event.c:234
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_free_syslog(EVENT_SYSLOG *event)
Free a Syslog.
Definition: evel_syslog.c:464
void evel_service_codec_set(EVENT_SERVICE *const event, const char *const codec)
Set the Codec property of the Service event.
Definition: evel_service.c:319
DLIST additional_fields
Definition: evel.h:1011
EVEL_OPTION_STRING callee_side_codec
Definition: evel.h:866
void evel_fault_addl_info_add(EVENT_FAULT *fault, char *name, char *value)
Add an additional value name/value pair to the Fault.
Definition: evel_fault.c:125
int major_version
Definition: evel.h:957
void evel_free_measurement(EVENT_MEASUREMENT *event)
Free a Measurement.
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.
Definition: evel_fault.c:60
EVEL_OPTION_STRING event_type
Definition: evel.h:433
int num_packets_received_excl_retrans
Definition: evel.h:698
Measurement.
Definition: evel.h:504
EVEL_OPTION_INT endpoint_rtp_oct_sent
Definition: evel.h:882
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.
char * filesystem_name
Definition: evel.h:554
struct measurement_vnic_use MEASUREMENT_VNIC_USE
Virtual NIC usage.
EVENT_OTHER * evel_new_other(void)
Create a new other event.
Definition: evel_other.c:53
Errors.
Definition: evel.h:493
void evel_other_type_set(EVENT_OTHER *other, const char *const type)
Set the Event Type property of the Other.
Definition: evel_other.c:99
void evel_free_report(EVENT_REPORT *event)
Free a Report.
void evel_mobile_flow_samp_alg_set(EVENT_MOBILE_FLOW *mobile_flow, int algorithm)
Set the Sampling Algorithm property of the Mobile Flow.
EVEL_OPTION_INT concurrent_sessions
Definition: evel.h:523
EVEL_OPTION_DOUBLE high_end
Definition: evel.h:573
struct evel_option_int EVEL_OPTION_INT
Optional parameter holder for int.
EVEL_OPTION_STRING summary_sip
Definition: evel.h:938
EVEL_OPTION_STRING rac
Definition: evel.h:779
Non-specific failure.
Definition: evel.h:71
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.
size_t evel_write_callback(void *contents, size_t size, size_t nmemb, void *userp)
Callback function to provide returned data.
EVENT_SIGNALING * evel_new_signaling(const char *const vendor_id, const char *const event_id)
Create a new Signaling event.
double measurement_interval
Definition: evel.h:661
EVENT_HEADER header
Definition: evel.h:654
EVEL_OPTION_STRING correlator
Definition: evel.h:932
double avg_packet_delay_variation
Definition: evel.h:677
EVEL_OPTION_INT endpoint_rtp_oct_disc
Definition: evel.h:880
int debug_indent
Definition: evel_logging.c:54
char * condition4
Definition: evel.h:1039
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.
char * vnic_id
Definition: evel.h:587
void evel_measurement_conc_sess_set(EVENT_MEASUREMENT *measurement, int concurrent_sessions)
Set the Concurrent Sessions property of the Measurement.
EVEL_ERR_CODES evel_terminate(void)
Clean up the EVEL library.
Definition: evel.c:260
FILE * fout
void evel_service_callee_codec_set(EVENT_SERVICE *const event, const char *const codec)
Set the Callee Side Codec property of the Service event.
Definition: evel_service.c:347
EVEL_TCP_FLAGS
TCP flags.
Definition: evel.h:291
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.
struct event_state_change EVENT_STATE_CHANGE
State Change.
void evel_other_field_add(EVENT_OTHER *other, char *name, char *value)
Add a value name/value pair to the Other.
Definition: evel_other.c:127
void evel_measurement_feature_use_add(EVENT_MEASUREMENT *measurement, char *feature, int utilization)
Add a Feature usage value name/value pair to the Measurement.
EVEL_OPTION_STRING imei
Definition: evel.h:772
EVEL_OPTION_STRING connection_type
Definition: evel.h:767
void evel_free_measurement_vnic_use(MEASUREMENT_VNIC_USE *const vnic_use)
Free a vNIC Use.
void evel_mobile_flow_msisdn_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const msisdn)
Set the MSISDN property of the Mobile Flow.
EVEL_OPTION_INT unicast_packets_in
Definition: evel.h:596
char * condition2
Definition: evel.h:1037
void evel_free_mobile_flow(EVENT_MOBILE_FLOW *event)
Free a Mobile Flow.
double ephemeral_used
Definition: evel.h:560
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.
Definition: evel_service.c:759
A Fault event.
Definition: evel.h:134
EVEL_OPTION_STRING app_protocol_type
Definition: evel.h:764
EVEL_OPTION_STRING radio_access_technology
Definition: evel.h:780
EVENT_HEADER * evel_new_heartbeat(void)
Create a new heartbeat event.
Definition: evel_event.c:78
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.
EVEL_OPTION_STRING endpoint_description
Definition: evel.h:878
A memory allocation failure occurred.
Definition: evel.h:74
A simple double-linked list.
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.
void evel_free_fault(EVENT_FAULT *event)
Free a Fault.
Definition: evel_fault.c:304
EVEL_OPTION_DOUBLE aggregate_cpu_usage
Definition: evel.h:521
int reporting_endpoint_port
Definition: evel.h:758
EVEL_EVENT_INSTANCE_ID instance_id
Definition: evel.h:850
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.
EVEL_OPTION_STRING rtcp_data
Definition: evel.h:872
EVEL_OPTION_STRING codec
Definition: evel.h:861
EVEL_OPTION_INT syslog_facility
Definition: evel.h:1013
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.
Definition: evel_service.c:55
Filesystem Usage.
Definition: evel.h:553
int major_version
Definition: evel.h:844
struct event_fault EVENT_FAULT
Fault.
void evel_measurement_codec_use_add(EVENT_MEASUREMENT *measurement, char *codec, int utilization)
Add a Codec usage value name/value pair to the Measurement.
struct measurement_latency_bucket MEASUREMENT_LATENCY_BUCKET
Latency Bucket.
DLIST other_fields
Definition: evel.h:795
char * ip_version
Definition: evel.h:754
EVEL_OPTION_DOUBLE large_packet_threshold
Definition: evel.h:721
EVEL_OPTION_INT endpoint_rtp_pkt_disc
Definition: evel.h:883
void evel_measurement_type_set(EVENT_MEASUREMENT *measurement, const char *const type)
Set the Event Type property of the Measurement.
EVEL_OPTION_STRING http_header
Definition: evel.h:771
A Measurement for VF Reporting event.
Definition: evel.h:137
char * disclaimerLine3
Definition: evel.h:1042
EVEL_OPTION_INT max_receive_bit_rate
Definition: evel.h:722
EVEL_OPTION_INT local_jitter
Definition: evel.h:886
double block_configured
Definition: evel.h:555
int num_tunneled_l7_bytes_received
Definition: evel.h:703
int other_endpoint_port
Definition: evel.h:756
EVEL_OPTION_STRING imsi
Definition: evel.h:773
void evel_measurement_mean_req_lat_set(EVENT_MEASUREMENT *measurement, double mean_request_latency)
Set the Mean Request Latency property of the Measurement.
A Posix threads operation failed.
Definition: evel.h:73
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.
Definition: evel_service.c:732
EVEL_BOOLEAN is_set
Definition: evel.h:379
void evel_fault_type_set(EVENT_FAULT *fault, const char *const type)
Set the Event Type property of the Fault.
Definition: evel_fault.c:194
EVEL_OPTION_STRING syslog_proc
Definition: evel.h:1014
int minor_version
Definition: evel.h:922
EVEL_OPTION_STRING caller_side_codec
Definition: evel.h:867
DLIST measurements
Definition: evel.h:625
MOBILE_GTP_PER_FLOW_METRICS * gtp_per_flow_metrics
Definition: evel.h:752
DLIST feature_usage
Definition: evel.h:666
struct measurement_fsys_use MEASUREMENT_FSYS_USE
Filesystem Usage.
void evel_measurement_vnic_use_add(EVENT_MEASUREMENT *const measurement, char *const vnic_id, const int packets_in, const int packets_out, const int broadcast_packets_in, const int broadcast_packets_out, const int bytes_in, const int bytes_out, const int multicast_packets_in, const int multicast_packets_out, const int unicast_packets_in, const int unicast_packets_out)
Add an additional vNIC usage record Measurement.
EVEL_ERR_CODES evel_post_event(EVENT_HEADER *event)
Post an event.
char * syslog_tag
Definition: evel.h:1006
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.
Definition: evel_service.c:705
void evel_mobile_flow_rac_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const rac)
Set the RAC property of the Mobile Flow.
struct measurement_errors MEASUREMENT_ERRORS
Errors.
State Change.
Definition: evel.h:952
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.
Definition: evel_service.c:570
EVEL_OPTION_STRING local_ip_address
Definition: evel.h:933
void evel_report_feature_use_add(EVENT_REPORT *report, char *feature, int utilization)
Add a Feature usage value name/value pair to the Report.
int minor_version
Definition: evel.h:958
EVEL_OPTION_INT unicast_packets_out
Definition: evel.h:597
char * condition1
Definition: evel.h:1036
EVEL_OPTION_STRING remote_ip_address
Definition: evel.h:935
struct measurement_feature_use MEASUREMENT_FEATURE_USE
Feature Usage.
EVEL_BOOLEAN is_set
Definition: evel.h:370
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.
Definition: evel_service.c:651
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.
Definition: evel_service.c:233
void evel_syslog_proc_set(EVENT_SYSLOG *syslog, const char *const proc)
Set the Process property of the Syslog.
Definition: evel_syslog.c:248
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.
Definition: evel_service.c:163
int evel_json_encode_event(char *json, int max_size, EVENT_HEADER *event)
Encode the event as a JSON event object according to AT&T&#39;s schema.
Definition: evel_event.c:381
int minor_version
Definition: evel.h:999
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.
char * state_interface
Definition: evel.h:965
EVEL_OPTION_INT multicast_packets_out
Definition: evel.h:595
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.
Definition: evel_syslog.c:56
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.
Other Field.
Definition: evel.h:803
EVEL_OPTION_INT round_trip_delay
Definition: evel.h:897
void evel_syslog_s_data_set(EVENT_SYSLOG *syslog, const char *const s_data)
Set the Structured Data property of the Syslog.
Definition: evel_syslog.c:331
struct mobile_gtp_per_flow_metrics MOBILE_GTP_PER_FLOW_METRICS
Mobile GTP Per Flow Metrics.
EVEL_EVENT_INSTANCE_ID instance_id
Definition: evel.h:927
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.
Definition: evel.c:93
Syslog.
Definition: evel.h:993
double measurement_interval
Definition: evel.h:515
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.
EVEL_OPTION_DOUBLE vnfc_scaling_metric
Definition: evel.h:535
void evel_report_type_set(EVENT_REPORT *report, const char *const type)
Set the Event Type property of the Report.
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.
Syslog Additional Field.
Definition: evel.h:1025
DLIST cpu_usage
Definition: evel.h:525
struct event_mobile_flow EVENT_MOBILE_FLOW
Mobile Flow.
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.
Definition: evel_event.c:264
EVEL_OPTION_INT endpoint_rtp_pkt_sent
Definition: evel.h:885
EVEL_OPTION_STRING local_port
Definition: evel.h:934
void evel_syslog_facility_set(EVENT_SYSLOG *syslog, EVEL_SYSLOG_FACILITIES facility)
Set the Syslog Facility property of the Syslog.
Definition: evel_syslog.c:219
time_t value
Definition: evel.h:396
EVEL_ENTITY_STATE old_state
Definition: evel.h:964
A Syslog event.
Definition: evel.h:141
EVEL_OPTION_INT local_rtp_pkt_recv
Definition: evel.h:891
char * ip_protocol_type
Definition: evel.h:753
struct syslog_additional_field SYSLOG_ADDL_FIELD
Syslog Additional Field.
EVEL_OPTION_INT sampling_algorithm
Definition: evel.h:782
EVEL_OPTION_STRING mcc
Definition: evel.h:775
DLIST additional_measurements
Definition: evel.h:520
Too many events in the ring-buffer.
Definition: evel.h:75
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.
EVEL_OPTION_STRING remote_port
Definition: evel.h:936
void evel_free_service(EVENT_SERVICE *const event)
Free a Service Events event.
A cURL library operation failed.
Definition: evel.h:72
EVEL_OPTION_INT endpoint_rtp_pkt_recv
Definition: evel.h:884
char * value
Definition: evel.h:805
void evel_service_r_factor_set(EVENT_SERVICE *const event, const int r_factor)
Set the R Factor property of the Service event.
Definition: evel_service.c:949
struct event_report EVENT_REPORT
Report.
EVEL_OPTION_STRING vlan_id
Definition: evel.h:785
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.
EVEL_OPTION_STRING gtp_connection_status
Definition: evel.h:718
struct measurement_cpu_use MEASUREMENT_CPU_USE
CPU Usage.
EVEL_OPTION_STRING gtp_protocol_type
Definition: evel.h:769
int major_version
Definition: evel.h:745
CPU Usage.
Definition: evel.h:544
char * reporting_endpoint_ip_addr
Definition: evel.h:757
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.
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.
Optional parameter holder for int.
Definition: evel.h:376
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.
DLIST codec_usage
Definition: evel.h:522
EVEL_OPTION_STRING phone_number
Definition: evel.h:902
DLIST latency_distribution
Definition: evel.h:529
EVEL_LOG_LEVELS debug_level
Definition: evel_logging.c:52
EVEL_SOURCE_TYPES
Fault source types.
Definition: evel.h:174
struct evel_option_time EVEL_OPTION_TIME
Optional parameter holder for time_t.
void evel_report_custom_measurement_add(EVENT_REPORT *report, const char *const group, const char *const name, const char *const value)
Add a Additional Measurement value name/value pair to the Report.
EVEL_ALERT_TYPES
Alert types.
Definition: evel.h:236
char * useAndRedistribution
Definition: evel.h:1035
struct evel_option_double EVEL_OPTION_DOUBLE
Optional parameter holder for double.
EVEL_OPTION_STRING cid
Definition: evel.h:766
void evel_free_event(void *event)
Free an event.
Definition: evel.c:299
EVEL_OPTION_STRING sac
Definition: evel.h:781
int minor_version
Definition: evel.h:510
DLIST feature_usage
Definition: evel.h:527
A Signaling event.
Definition: evel.h:139
EVEL_OPTION_DOUBLE memory_used
Definition: evel.h:532
EVEL_OPTION_DOUBLE memory_configured
Definition: evel.h:531
void evel_service_packets_lost_set(EVENT_SERVICE *const event, const int packets_lost)
Set the Packets Lost property of the Service event.
Definition: evel_service.c:894
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.
int minor_version
Definition: evel.h:455
int major_version
Definition: evel.h:454
struct measurement_codec_use MEASUREMENT_CODEC_USE
Codec Usage.
EVEL_OPTION_INT max_transmit_bit_rate
Definition: evel.h:723
EVEL_OPTION_STRING gtp_version
Definition: evel.h:770
EVEL_OPTION_STRING application_type
Definition: evel.h:763
EVEL_OPTION_INT endpoint_rtp_oct_recv
Definition: evel.h:881
EVEL_OPTION_STRING other_functional_role
Definition: evel.h:778
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.
struct measurement_group MEASUREMENT_GROUP
Measurement Group.
unsigned long long value
Definition: evel.h:387
DLIST additional_fields
Definition: evel.h:970
EVEL_ERR_CODES
Error codes.
Definition: evel.h:68
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.
Definition: evel_service.c:813
struct event_header EVENT_HEADER
Event header.
char * source_name
Definition: evel.h:422
A Mobile Flow event.
Definition: evel.h:136
void evel_service_adjacency_name_set(EVENT_SERVICE *const event, const char *const adjacency_name)
Set the Adjacency Name property of the Service event.
Definition: evel_service.c:434
double ephemeral_configured
Definition: evel.h:558
struct evel_option_ull EVEL_OPTION_ULL
Optional parameter holder for unsigned long long.
EVEL_SYSLOG_FACILITIES
Syslog facilities.
Definition: evel.h:259
EVEL_OPTION_INT local_rtp_pkt_sent
Definition: evel.h:892
char * syslog_msg
Definition: evel.h:1005
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.
EVEL_OPTION_DOUBLE mos_cqe
Definition: evel.h:893
void evel_measurement_latency_add(EVENT_MEASUREMENT *const measurement, const double low_end, const double high_end, const int count)
Add an additional Latency Distribution bucket to the Measurement.
EVEL_OPTION_INT packets_lost
Definition: evel.h:894
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.
Mobile Flow.
Definition: evel.h:740
Latency Bucket.
Definition: evel.h:567
EVEL_OPTION_STRING event_friendly_name
Definition: evel.h:825
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.
Definition: evel_event.c:189
char * name
Definition: evel.h:804
EVEL_EVENT_DOMAINS event_domain
Definition: evel.h:420
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.
EVEL_OPTION_STRING product_id
Definition: evel.h:823
EVEL_OPTION_INT syslog_proc_id
Definition: evel.h:1015
struct evel_event_instance_id EVEL_EVENT_INSTANCE_ID
Event Instance Identifier JSON equivalent field: eventInstanceIdentifier.
EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval)
Create a new Measurement event.
EVENT_HEADER header
Definition: evel.h:744
EVEL_VF_STATUSES
Fault VNF Status.
Definition: evel.h:202
EVENT_HEADER header
Definition: evel.h:453
EVENT_HEADER header
Definition: evel.h:997
EVEL_OPTION_INT dur_connection_failed_status
Definition: evel.h:713
EVEL_OPTION_STRING tac
Definition: evel.h:783
EVEL_SEVERITIES
Fault / Threshold severities.
Definition: evel.h:161
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.
EVEL_OPTION_STRING subsystem_id
Definition: evel.h:824
EVEL_OPTION_DOUBLE packet_loss_percent
Definition: evel.h:895
void evel_free_header(EVENT_HEADER *const event)
Free an event header.
Definition: evel_event.c:349
EVEL_OPTION_INT broadcast_packets_out
Definition: evel.h:593
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.
EVEL_OPTION_STRING mnc
Definition: evel.h:776
EVENT_HEADER header
Definition: evel.h:843
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.
Definition: evel_service.c:624
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.
Service Events.
Definition: evel.h:839
EVEL_BOOLEAN is_set
Definition: evel.h:388
EVEL_OPTION_STRING lac
Definition: evel.h:774
A Heartbeat event (event header only).
Definition: evel.h:133
DLIST vnic_usage
Definition: evel.h:536
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 log_error_state(char *format,...)
Definition: evel_logging.c:98
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.
int num_packets_received_incl_retrans
Definition: evel.h:699
EVEL_OPTION_INT endpoint_jitter
Definition: evel.h:879
A State Change event.
Definition: evel.h:140
void evel_service_correlator_set(EVENT_SERVICE *const event, const char *const correlator)
Set the correlator property of the Service event.
Definition: evel_service.c:291
void evel_service_mos_cqe_set(EVENT_SERVICE *const event, const double mos_cqe)
Set the Mos Cqe property of the Service event.
Definition: evel_service.c:867
MEASUREMENT_ERRORS * errors
Definition: evel.h:526
struct event_measurement EVENT_MEASUREMENT
Measurement.
Other.
Definition: evel.h:793
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.
Definition: evel_service.c:543
EVEL_SERVICE_ENDPOINT_DESC
Service Event endpoint description JSON equivalent field: endpointDesc.
Definition: evel.h:341
EVEL_OPTION_INT num_gtp_tunnel_errors
Definition: evel.h:725
EVEL_OPTION_STRING flow_deactivated_by
Definition: evel.h:717
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.
Definition: evel_service.c:977
struct other_field OTHER_FIELD
Other Field.
void evel_mobile_flow_lac_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const lac)
Set the LAC property of the Mobile Flow.
double usage
Definition: evel.h:546
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.
Definition: evel_service.c:461
EVEL_OPTION_STRING ecgi
Definition: evel.h:768
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_free_other(EVENT_OTHER *event)
Free an Other.
Definition: evel_other.c:201
void evel_syslog_addl_field_add(EVENT_SYSLOG *syslog, char *name, char *value)
Add an additional field name/value pair to the Syslog.
Definition: evel_syslog.c:148
unsigned long long last_epoch_microsec
Definition: evel.h:427
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.
EVEL_OPTION_INT local_rtp_oct_disc
Definition: evel.h:887
struct copyright COPYRIGHT
Copyright.
A Measurement for VF Scaling event.
Definition: evel.h:135
EVEL_QCI_COS_TYPES
Mobile QCI Classes of Service.
Definition: evel.h:308
Mobile GTP Per Flow Metrics.
Definition: evel.h:675
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.
Event header.
Definition: evel.h:410
void evel_syslog_type_set(EVENT_SYSLOG *syslog, const char *const type)
Set the Event Type property of the Syslog.
Definition: evel_syslog.c:118
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.
State Change Additional Field.
Definition: evel.h:978
EVENT_REPORT * evel_new_report(double measurement_interval)
Create a new Report event.
char * value
Definition: evel.h:369
void evel_syslog_event_source_host_set(EVENT_SYSLOG *syslog, const char *const host)
Set the Event Source Host property of the Syslog.
Definition: evel_syslog.c:189
int minor_version
Definition: evel.h:746
EVENT_HEADER header
Definition: evel.h:794
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.
char * disclaimerLine2
Definition: evel.h:1041
Internal event, not for external routing.
Definition: evel.h:132
EVEL_OPTION_STRING app_protocol_version
Definition: evel.h:765
EVEL_OPTION_STRING gtp_tunnel_status
Definition: evel.h:719
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.
EVEL_OPTION_INT r_factor
Definition: evel.h:896
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. ...
EVEL_OPTION_STRING compressed_sip
Definition: evel.h:937
EVEL_EVENT_PRIORITIES priority
Definition: evel.h:425
EVEL_OPTION_INT num_gtp_echo_failures
Definition: evel.h:724
Failed to retrieve OpenStack metadata.
Definition: evel.h:77
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.
Definition: evel_event.c:212
Signaling.
Definition: evel.h:916
char * disclaimerLine1
Definition: evel.h:1040
EVEL_OPTION_INT broadcast_packets_in
Definition: evel.h:592
Virtual NIC usage.
Definition: evel.h:582
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_header_type_set(EVENT_HEADER *const header, const char *const type)
Set the Event Type property of the event header.
Definition: evel_event.c:164
EVEL_BOOLEAN is_set
Definition: evel.h:397
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.
EVEL_ALERT_ACTIONS
Alert actions.
Definition: evel.h:225
Copyright.
Definition: evel.h:1034
Fault Additional Info.
Definition: evel.h:478
void evel_mobile_flow_imei_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const imei)
Set the IMEI property of the Mobile Flow.
char * other_endpoint_ip_address
Definition: evel.h:755
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.
EVEL_EVENT_PRIORITIES
Event priorities.
Definition: evel.h:149
Double-linked list structure.
Definition: double_list.h:53
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.
Definition: evel_service.c:597
char * condition3
Definition: evel.h:1038
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.
Definition: evel_service.c:516
struct event_service EVENT_SERVICE
Service Events.
void evel_service_rtcp_data_set(EVENT_SERVICE *const event, const char *const rtcp_data)
Set the RTCP Data property of the Service event.
Definition: evel_service.c:404
EVEL_OPTION_INT media_ports_in_use
Definition: evel.h:533
char * event_id
Definition: evel.h:421
A Service event.
Definition: evel.h:138
EVEL_ENTITY_STATE new_state
Definition: evel.h:963
void evel_mobile_flow_mcc_set(EVENT_MOBILE_FLOW *mobile_flow, const char *const mcc)
Set the MCC property of the Mobile Flow.
struct custom_measurement CUSTOM_MEASUREMENT
Custom Defined Measurement.
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.
EVEL_BOOLEAN is_set
Definition: evel.h:361
void evel_service_friendly_name_set(EVENT_SERVICE *const event, const char *const friendly_name)
Set the Friendly Name property of the Service event.
Definition: evel_service.c:262
int major_version
Definition: evel.h:998
void evel_init_header(EVENT_HEADER *const header)
Initialize a newly created event header.
Definition: evel_event.c:112
int major_version
Definition: evel.h:655
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.
Definition: evel_service.c:840
EVEL_OPTION_STRING alarm_interface_a
Definition: evel.h:469
void evel_service_type_set(EVENT_SERVICE *const event, const char *const type)
Set the Event Type property of the Service event.
Definition: evel_service.c:135
int major_version
Definition: evel.h:509
void evel_service_caller_codec_set(EVENT_SERVICE *const event, const char *const codec)
Set the Caller Side Codec property of the Service event.
Definition: evel_service.c:375
Optional parameter holder for time_t.
Definition: evel.h:394
char * name
Definition: evel.h:624
void evel_service_local_jitter_set(EVENT_SERVICE *const event, const int jitter)
Set the Local Jitter property of the Service event.
Definition: evel_service.c:678
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.
Measurement Group.
Definition: evel.h:623
Codec Usage.
Definition: evel.h:605
EVEL_OPTION_STRING flow_activated_by
Definition: evel.h:715
char * value
Definition: evel.h:634
EVEL_SEVERITIES event_severity
Definition: evel.h:460
struct event_other EVENT_OTHER
Other.
EVEL_ENTITY_STATE
Alert types.
Definition: evel.h:248
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.
Definition: evel_service.c:786
Attempt to raise event when inactive.
Definition: evel.h:76
EVEL_OPTION_INT local_rtp_oct_sent
Definition: evel.h:889
int transmit_errors
Definition: evel.h:497
int major_version
Definition: evel.h:414
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.
Definition: evel_fault.c:164
EVEL_OPTION_INT num_http_errors
Definition: evel.h:726
DLIST filesystem_usage
Definition: evel.h:528
EVEL_OPTION_STRING event_source_host
Definition: evel.h:1012
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.
Definition: evel_service.c:489
void log_debug(EVEL_LOG_LEVELS level, char *format,...)
Log debug information.
Definition: evel_logging.c:120
DLIST additional_info
Definition: evel.h:470
Fault.
Definition: evel.h:449
EVEL_SOURCE_TYPES event_source_type
Definition: evel.h:1004
Custom Defined Measurement.
Definition: evel.h:632
JSON failed to parse correctly.
Definition: evel.h:79
EVEL_OPTION_INT local_rtp_pkt_disc
Definition: evel.h:890
EVEL_OPTION_STRING correlator
Definition: evel.h:855
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.
int sequence
Definition: evel.h:428
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_free_mobile_gtp_flow_metrics(MOBILE_GTP_PER_FLOW_METRICS *metrics)
Free a Mobile GTP Per Flow Metrics.
EVEL_OPTION_STRING msisdn
Definition: evel.h:777
EVEL_OPTION_INT dur_tunnel_failed_status
Definition: evel.h:714
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.
struct event_syslog EVENT_SYSLOG
Syslog.
EVEL_OPTION_DOUBLE low_end
Definition: evel.h:574
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.
EVEL_VF_STATUSES vf_status
Definition: evel.h:464
EVEL_COUNTER_CRITICALITIES
Counter criticalities.
Definition: evel.h:215