diff options
Diffstat (limited to 'vnfs/VES5.0/evel')
19 files changed, 275 insertions, 92 deletions
diff --git a/vnfs/VES5.0/evel/evel-library/bldjobs/Makefile b/vnfs/VES5.0/evel/evel-library/bldjobs/Makefile index b1e15e5e..d37d0e4b 100644 --- a/vnfs/VES5.0/evel/evel-library/bldjobs/Makefile +++ b/vnfs/VES5.0/evel/evel-library/bldjobs/Makefile @@ -140,6 +140,7 @@ API_SOURCES=$(EVELLIB_ROOT)/evel.c \ $(EVELLIB_ROOT)/evel_throttle.c \ $(EVELLIB_ROOT)/evel_internal_event.c \ $(EVELLIB_ROOT)/evel_event_mgr.c \ + $(EVELLIB_ROOT)/evel_threshold_cross.c \ $(EVELLIB_ROOT)/evel_voicequality.c \ $(EVELLIB_ROOT)/evel_logging.c \ $(EVELLIB_ROOT)/jsmn.c diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.h b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.h index be0c5f0e..0ae1713e 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.h +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.h @@ -738,10 +738,10 @@ MEASUREMENT_DISK_USE * evel_measurement_new_disk_use_add(EVENT_MEASUREMENT * mea typedef struct measurement_fsys_use { char * filesystem_name; double block_configured; - int block_iops; + double block_iops; double block_used; double ephemeral_configured; - int ephemeral_iops; + double ephemeral_iops; double ephemeral_used; } MEASUREMENT_FSYS_USE; @@ -1486,6 +1486,21 @@ size_t evel_write_callback(void *contents, EVENT_HEADER * evel_new_heartbeat(void); /**************************************************************************//** + * Create a new heartbeat event of given name and type. + * + * @note that the heartbeat is just a "naked" commonEventHeader! + * + * @param event_name Unique Event Name confirming Domain AsdcModel Description + * @param event_id A universal identifier of the event for: troubleshooting correlation, analysis, etc + * + * @returns pointer to the newly manufactured ::EVENT_HEADER. If the event is + * not used it must be released using ::evel_free_event + * @retval NULL Failed to create the event. + *****************************************************************************/ +EVENT_HEADER * evel_new_heartbeat_nameid(const char* ev_name, const char *ev_id); + + +/**************************************************************************//** * Free an event header. * * Free off the event header supplied. Will free all the contained allocated @@ -1560,6 +1575,23 @@ void evel_reporting_entity_name_set(EVENT_HEADER * const header, void evel_reporting_entity_id_set(EVENT_HEADER * const header, const char * const entity_id); +/**************************************************************************//** + * Set the NFC Naming code property of the event header. + * + * @param header Pointer to the ::EVENT_HEADER. + * @param nfcnamingcode String + *****************************************************************************/ +void evel_nfcnamingcode_set(EVENT_HEADER * const header, + const char * const nfcnam); +/**************************************************************************//** + * Set the NF Naming code property of the event header. + * + * @param header Pointer to the ::EVENT_HEADER. + * @param nfnamingcode String + *****************************************************************************/ +void evel_nfnamingcode_set(EVENT_HEADER * const header, + const char * const nfnam); + /*****************************************************************************/ /*****************************************************************************/ /* */ @@ -1575,6 +1607,8 @@ void evel_reporting_entity_id_set(EVENT_HEADER * const header, * function and are immutable once set. Optional fields have explicit * setter functions, but again values may only be set once so that the * Fault has immutable properties. + * @param event_name Unique Event Name + * @param event_id A universal identifier of the event for analysis etc * @param condition The condition indicated by the Fault. * @param specific_problem The specific problem triggering the fault. * @param priority The priority of the event. @@ -1586,7 +1620,8 @@ void evel_reporting_entity_id_set(EVENT_HEADER * const header, * not used (i.e. posted) it must be released using ::evel_free_fault. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_FAULT * evel_new_fault(const char * const condition, +EVENT_FAULT * evel_new_fault(const char* ev_name, const char *ev_id, + const char * const condition, const char * const specific_problem, EVEL_EVENT_PRIORITIES priority, EVEL_SEVERITIES severity, @@ -1678,13 +1713,15 @@ void evel_fault_type_set(EVENT_FAULT * fault, const char * const type); * that the Measurement has immutable properties. * * @param measurement_interval + * @param event_name Unique Event Name + * @param event_id A universal identifier of the event for analysis etc * * @returns pointer to the newly manufactured ::EVENT_MEASUREMENT. If the * event is not used (i.e. posted) it must be released using * ::evel_free_event. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval); +EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval,const char* ev_name, const char *ev_id); /**************************************************************************//** * Free a Measurement. @@ -1918,10 +1955,10 @@ void evel_measurement_fsys_use_add(EVENT_MEASUREMENT * measurement, char * filesystem_name, double block_configured, double block_used, - int block_iops, + double block_iops, double ephemeral_configured, double ephemeral_used, - int ephemeral_iops); + double ephemeral_iops); /**************************************************************************//** * Add a Feature usage value name/value pair to the Measurement. @@ -2557,13 +2594,15 @@ void evel_measurement_vnic_performance_add(EVENT_MEASUREMENT * const measurement * that the Report has immutable properties. * * @param measurement_interval + * @param event_name Unique Event Name + * @param event_id A universal identifier of the event for analysis etc * * @returns pointer to the newly manufactured ::EVENT_REPORT. If the event is * not used (i.e. posted) it must be released using * ::evel_free_report. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_REPORT * evel_new_report(double measurement_interval); +EVENT_REPORT * evel_new_report(double measurement_interval,const char* ev_name, const char *ev_id); /**************************************************************************//** * Free a Report. @@ -2637,6 +2676,8 @@ void evel_report_custom_measurement_add(EVENT_REPORT * report, * explicit setter functions, but again values may only be set once so * that the Mobile Flow has immutable properties. * + * @param event_name Unique Event Name + * @param event_id A universal identifier of the event for analysis etc * @param flow_direction * @param gtp_per_flow_metrics * @param ip_protocol_type @@ -2652,6 +2693,7 @@ void evel_report_custom_measurement_add(EVENT_REPORT * report, * @retval NULL Failed to create the event. *****************************************************************************/ EVENT_MOBILE_FLOW * evel_new_mobile_flow( + const char* ev_name, const char *ev_id, const char * const flow_direction, MOBILE_GTP_PER_FLOW_METRICS * gtp_per_flow_metrics, const char * const ip_protocol_type, @@ -3372,6 +3414,8 @@ void evel_mobile_gtp_metrics_qci_cos_count_add( * this factory function and are immutable once set. Optional fields * have explicit setter functions, but again values may only be set * once so that the event has immutable properties. + * @param event_name Unique Event Name + * @param event_id A universal identifier of the event for analysis etc * @param vendor_name The vendor id to encode in the event vnf field. * @param module The module to encode in the event. * @param vnfname The Virtual network function to encode in the event. @@ -3380,7 +3424,8 @@ void evel_mobile_gtp_metrics_qci_cos_count_add( * ::evel_free_signaling. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_SIGNALING * evel_new_signaling(const char * const vendor_name, +EVENT_SIGNALING * evel_new_signaling(const char* ev_name, const char *ev_id, + const char * const vendor_name, const char * const correlator, const char * const local_ip_address, const char * const local_port, @@ -3582,6 +3627,8 @@ void evel_signaling_summary_sip_set(EVENT_SIGNALING * const event, * setter functions, but again values may only be set once so that the * Syslog has immutable properties. * + * @param event_name Unique Event Name + * @param event_id A universal identifier of the event for analysis etc * @param new_state The new state of the reporting entity. * @param old_state The old state of the reporting entity. * @param interface The card or port name of the reporting entity. @@ -3591,7 +3638,8 @@ void evel_signaling_summary_sip_set(EVENT_SIGNALING * const event, * ::evel_free_state_change * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_STATE_CHANGE * evel_new_state_change(const EVEL_ENTITY_STATE new_state, +EVENT_STATE_CHANGE * evel_new_state_change(const char* ev_name, const char *ev_id, + const EVEL_ENTITY_STATE new_state, const EVEL_ENTITY_STATE old_state, const char * const interface); @@ -3656,6 +3704,8 @@ void evel_state_change_addl_field_add(EVENT_STATE_CHANGE * const state_change, * setter functions, but again values may only be set once so that the * Syslog has immutable properties. * + * @param event_name Unique Event Name + * @param event_id A universal identifier of the event for analysis etc * @param event_source_type * @param syslog_msg * @param syslog_tag @@ -3665,7 +3715,8 @@ void evel_state_change_addl_field_add(EVENT_STATE_CHANGE * const state_change, * not used it must be released using ::evel_free_syslog * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_SYSLOG * evel_new_syslog(EVEL_SOURCE_TYPES event_source_type, +EVENT_SYSLOG * evel_new_syslog(const char* ev_name, const char *ev_id, + EVEL_SOURCE_TYPES event_source_type, const char * const syslog_msg, const char * const syslog_tag); @@ -3834,12 +3885,14 @@ void evel_syslog_severity_set(EVENT_SYSLOG * syslog, const char * const severty) /**************************************************************************//** * Create a new other event. * + * @param event_name Unique Event Name + * @param event_id A universal identifier of the event for analysis etc * * @returns pointer to the newly manufactured ::EVENT_OTHER. If the event is * not used it must be released using ::evel_free_other. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_OTHER * evel_new_other(void); +EVENT_OTHER * evel_new_other(const char* ev_name, const char *ev_id); /**************************************************************************//** * Free an Other. @@ -3987,6 +4040,8 @@ typedef struct voice_quality_additional_info { * factory function and are immutable once set. Optional fields have * explicit setter functions, but again values may only be set once * so that the Voice Quality has immutable properties. + * @param event_name Unique Event Name + * @param event_id A universal identifier of the event for analysis etc * @param calleeSideCodec Callee codec for the call. * @param callerSideCodec Caller codec for the call. * @param correlator Constant across all events on this call. @@ -3998,7 +4053,8 @@ typedef struct voice_quality_additional_info { ::evel_free_voice_quality. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_VOICE_QUALITY * evel_new_voice_quality(const char * const calleeSideCodec, +EVENT_VOICE_QUALITY * evel_new_voice_quality(const char* ev_name, const char *ev_id, + const char * const calleeSideCodec, const char * const callerSideCodec, const char * const correlator, const char * const midCallRtcp, const char * const vendorVnfNameFields); @@ -4248,6 +4304,8 @@ typedef struct event_threshold_cross { * setter functions, but again values may only be set once so that the * TCA has immutable properties. * + * @param event_name Unique Event Name + * @param event_id A universal identifier of the event for analysis etc * @param char* tcriticality Performance Counter Criticality MAJ MIN, * @param char* tname Performance Counter Threshold name * @param char* tthresholdCrossed Counter Threshold crossed value @@ -4265,6 +4323,7 @@ typedef struct event_threshold_cross { * @retval NULL Failed to create the event. *****************************************************************************/ EVENT_THRESHOLD_CROSS * evel_new_threshold_cross( + const char* ev_name, const char *ev_id, char * tcriticality, char * tname, char * tthresholdCrossed, diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c index 6d025abe..ced29b2c 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c @@ -52,6 +52,51 @@ void evel_set_next_event_sequence(const int sequence) EVEL_EXIT(); } + +/**************************************************************************//** + * Create a new heartbeat event of given name and type. + * + * @note that the heartbeat is just a "naked" commonEventHeader! + * + * @param event_name Unique Event Name: in format + * {DomainAbbreviation}_{AsdcModel or ApplicationPlatform}_{DescriptionOfInfoBeingConveyed} + * @param event_id Uniquely identify event for correlation and analysis + * + * @returns pointer to the newly manufactured ::EVENT_HEADER. If the event is + * not used it must be released using ::evel_free_event + * @retval NULL Failed to create the event. + *****************************************************************************/ +EVENT_HEADER * evel_new_heartbeat_nameid(const char* ev_name, const char *ev_id) +{ + EVENT_HEADER * heartbeat = NULL; + EVEL_ENTER(); + + assert(ev_name != NULL); + assert(ev_id != NULL); + + /***************************************************************************/ + /* Allocate the header. */ + /***************************************************************************/ + heartbeat = malloc(sizeof(EVENT_HEADER)); + if (heartbeat == NULL) + { + log_error_state("Out of memory"); + goto exit_label; + } + memset(heartbeat, 0, sizeof(EVENT_HEADER)); + + /***************************************************************************/ + /* Initialize the header. Get a new event sequence number. Note that if */ + /* any memory allocation fails in here we will fail gracefully because */ + /* everything downstream can cope with NULLs. */ + /***************************************************************************/ + evel_init_header_nameid(heartbeat,ev_name,ev_id); + +exit_label: + EVEL_EXIT(); + return heartbeat; +} + /**************************************************************************//** * Create a new heartbeat event. * @@ -141,6 +186,55 @@ void evel_init_header(EVENT_HEADER * const header,const char *const eventname) EVEL_EXIT(); } + +/**************************************************************************//** + * Initialize a newly created event header. + * + * @param header Pointer to the header being initialized. + *****************************************************************************/ +void evel_init_header_nameid(EVENT_HEADER * const header,const char *const eventname, const char *eventid) +{ + struct timeval tv; + + EVEL_ENTER(); + + assert(header != NULL); + assert(eventname != NULL); + assert(eventid != NULL); + + gettimeofday(&tv, NULL); + + /***************************************************************************/ + /* Initialize the header. Get a new event sequence number. Note that if */ + /* any memory allocation fails in here we will fail gracefully because */ + /* everything downstream can cope with NULLs. */ + /***************************************************************************/ + header->event_domain = EVEL_DOMAIN_HEARTBEAT; + header->event_id = strdup(eventid); + header->event_name = strdup(eventname); + header->last_epoch_microsec = tv.tv_usec + 1000000 * tv.tv_sec; + header->priority = EVEL_PRIORITY_NORMAL; + header->reporting_entity_name = strdup(openstack_vm_name()); + header->source_name = strdup(openstack_vm_name()); + header->sequence = event_sequence; + header->start_epoch_microsec = header->last_epoch_microsec; + header->major_version = EVEL_HEADER_MAJOR_VERSION; + header->minor_version = EVEL_HEADER_MINOR_VERSION; + event_sequence++; + + /***************************************************************************/ + /* Optional parameters. */ + /***************************************************************************/ + evel_init_option_string(&header->event_type); + evel_init_option_string(&header->nfcnaming_code); + evel_init_option_string(&header->nfnaming_code); + evel_force_option_string(&header->reporting_entity_id, openstack_vm_uuid()); + evel_force_option_string(&header->source_id, openstack_vm_uuid()); + evel_init_option_intheader(&header->internal_field); + + EVEL_EXIT(); +} + /**************************************************************************//** * Set the Event Type property of the event header. * diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event_mgr.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event_mgr.c index de4296df..a96124ab 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event_mgr.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event_mgr.c @@ -144,6 +144,16 @@ EVEL_ERR_CODES event_handler_initialize(const char * const event_api_url, evel_throt_api_url = strdup(throt_api_url); assert(evel_throt_api_url != NULL); + + curl_version_info_data *d = curl_version_info(CURLVERSION_NOW); + /* compare with the 24 bit hex number in 8 bit fields */ + if(d->version_num >= 0x072100) { + /* this is libcurl 7.33.0 or later */ + EVEL_INFO("7.33 or later Curl version %x.",d->version_num); + } + else { + EVEL_INFO("Old Curl version."); + } /***************************************************************************/ /* Start the CURL library. Note that this initialization is not threadsafe */ /* which imposes a constraint that the EVEL library is initialized before */ @@ -408,7 +418,7 @@ EVEL_ERR_CODES event_handler_terminate() /*************************************************************************/ /* Make sure that the event handler knows it's time to die. */ /*************************************************************************/ - event = evel_new_internal_event(EVT_CMD_TERMINATE); + event = evel_new_internal_event(EVT_CMD_TERMINATE,"EVELinternal","EVELid"); if (event == NULL) { /***********************************************************************/ diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_fault.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_fault.c index 7cbadfe6..c211f607 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_fault.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_fault.c @@ -36,6 +36,8 @@ * function and are immutable once set. Optional fields have explicit * setter functions, but again values may only be set once so that the * Fault has immutable properties. + * @param event_name Unique Event Name confirming Domain AsdcModel Description + * @param event_id A universal identifier of the event for: troubleshooting correlation, analysis, etc * @param condition The condition indicated by the Fault. * @param specific_problem The specific problem triggering the fault. * @param priority The priority of the event. @@ -47,7 +49,9 @@ * not used (i.e. posted) it must be released using ::evel_free_fault. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_FAULT * evel_new_fault(const char * const condition, +EVENT_FAULT * evel_new_fault(const char * ev_name, + const char * ev_id, + const char * const condition, const char * const specific_problem, EVEL_EVENT_PRIORITIES priority, EVEL_SEVERITIES severity, @@ -81,7 +85,7 @@ EVENT_FAULT * evel_new_fault(const char * const condition, /* Initialize the header & the fault fields. Optional string values are */ /* uninitialized (NULL). */ /***************************************************************************/ - evel_init_header(&fault->header,"Fault"); + evel_init_header_nameid(&fault->header,ev_name,ev_id); fault->header.event_domain = EVEL_DOMAIN_FAULT; fault->header.priority = priority; fault->major_version = EVEL_FAULT_MAJOR_VERSION; diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_heartbeat_fields.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_heartbeat_fields.c index 73773edc..872af1f8 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_heartbeat_fields.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_heartbeat_fields.c @@ -35,6 +35,8 @@ * this factory function and are immutable once set. Optional fields * have explicit setter functions, but again values may only be set * once so that the event has immutable properties. + * @param event_name Unique Event Name confirming Domain AsdcModel Description + * @param event_id A universal identifier of the event for: troubleshooting correlation, analysis, etc * @param vendor_id The vendor id to encode in the event instance id. * @param event_id The vendor event id to encode in the event instance id. * @returns pointer to the newly manufactured ::EVENT_HEARTBEAT_FIELD. If the event @@ -42,7 +44,7 @@ * ::evel_free_hrtbt_field. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_HEARTBEAT_FIELD * evel_new_heartbeat_field(int interval) +EVENT_HEARTBEAT_FIELD * evel_new_heartbeat_field(int interval,const char* ev_name, const char *ev_id) { EVENT_HEARTBEAT_FIELD * event = NULL; @@ -68,7 +70,7 @@ EVENT_HEARTBEAT_FIELD * evel_new_heartbeat_field(int interval) /***************************************************************************/ /* Initialize the header & the Heartbeat fields fields. */ /***************************************************************************/ - evel_init_header(&event->header,"HeartbeatFields"); + evel_init_header_nameid(&event->header,ev_name,ev_id); event->header.event_domain = EVEL_DOMAIN_HEARTBEAT_FIELD; event->major_version = EVEL_HEARTBEAT_FIELD_MAJOR_VERSION; event->minor_version = EVEL_HEARTBEAT_FIELD_MINOR_VERSION; diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_internal.h b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_internal.h index f057fe87..46f71af1 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_internal.h +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_internal.h @@ -226,7 +226,7 @@ EVEL_ERR_CODES event_handler_run(); * ::evel_free_event. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_INTERNAL * evel_new_internal_event(EVT_HANDLER_COMMAND command); +EVENT_INTERNAL * evel_new_internal_event(EVT_HANDLER_COMMAND command,const char* ev_name, const char *ev_id); /**************************************************************************//** * Free an internal event. diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_internal_event.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_internal_event.c index 511c7d51..cb56c880 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_internal_event.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_internal_event.c @@ -43,12 +43,14 @@ * setter functions, but again values may only be set once so that the * Fault has immutable properties. * @param command The condition indicated by the event. + * @param event_name Unique Event Name confirming Domain AsdcModel Description + * @param event_id A universal identifier of the event for: troubleshooting correlation, analysis, etc * @returns pointer to the newly manufactured ::EVENT_INTERNAL. If the event * is not used (i.e. posted) it must be released using * ::evel_free_event. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_INTERNAL * evel_new_internal_event(EVT_HANDLER_COMMAND command) +EVENT_INTERNAL * evel_new_internal_event(EVT_HANDLER_COMMAND command,const char* ev_name, const char *ev_id) { EVENT_INTERNAL * event = NULL; EVEL_ENTER(); @@ -73,7 +75,7 @@ EVENT_INTERNAL * evel_new_internal_event(EVT_HANDLER_COMMAND command) /***************************************************************************/ /* Initialize the header & the event fields. */ /***************************************************************************/ - evel_init_header(&event->header,NULL); + evel_init_header_nameid(&event->header,ev_name,ev_id); event->header.event_domain = EVEL_DOMAIN_INTERNAL; event->command = command; diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_mobile_flow.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_mobile_flow.c index 0716e45f..5085d6a9 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_mobile_flow.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_mobile_flow.c @@ -80,6 +80,8 @@ void evel_json_encode_mobile_flow_gtp_flow_metrics( * factory function and are immutable once set. Optional fields have * explicit setter functions, but again values may only be set once so * that the Mobile Flow has immutable properties. + * @param event_name Unique Event Name confirming Domain AsdcModel Description + * @param event_id A universal identifier of the event for: troubleshooting correlation, analysis, etc * @param flow_direction Flow direction. * @param gtp_per_flow_metrics GTP per-flow metrics. * @param ip_protocol_type IP protocol type. @@ -93,7 +95,7 @@ void evel_json_encode_mobile_flow_gtp_flow_metrics( * ::evel_free_mobile_flow. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_MOBILE_FLOW * evel_new_mobile_flow( +EVENT_MOBILE_FLOW * evel_new_mobile_flow(const char* ev_name, const char *ev_id, const char * const flow_direction, MOBILE_GTP_PER_FLOW_METRICS * gtp_per_flow_metrics, const char * const ip_protocol_type, @@ -134,7 +136,7 @@ EVENT_MOBILE_FLOW * evel_new_mobile_flow( /* Initialize the header & the Mobile Flow fields. Optional string values */ /* are uninitialized (NULL). */ /***************************************************************************/ - evel_init_header(&mobile_flow->header,"MobileFlow"); + evel_init_header_nameid(&mobile_flow->header,ev_name,ev_id); mobile_flow->header.event_domain = EVEL_DOMAIN_MOBILE_FLOW; mobile_flow->major_version = EVEL_MOBILE_FLOW_MAJOR_VERSION; mobile_flow->minor_version = EVEL_MOBILE_FLOW_MINOR_VERSION; diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_other.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_other.c index 447ac9a4..c7a227b3 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_other.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_other.c @@ -39,7 +39,7 @@ * not used (i.e. posted) it must be released using ::evel_free_other. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_OTHER * evel_new_other() +EVENT_OTHER * evel_new_other(const char *ev_name, const char *ev_id) { EVENT_OTHER * other = NULL; EVEL_ENTER(); @@ -64,7 +64,7 @@ EVENT_OTHER * evel_new_other() /* Initialize the header & the Other fields. Optional string values are */ /* uninitialized (NULL). */ /***************************************************************************/ - evel_init_header(&other->header,"OtherEvent"); + evel_init_header_nameid(&other->header,ev_name,ev_id); other->header.event_domain = EVEL_DOMAIN_OTHER; other->major_version = EVEL_OTHER_EVENT_MAJOR_VERSION; other->minor_version = EVEL_OTHER_EVENT_MINOR_VERSION; diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_reporting_measurement.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_reporting_measurement.c index a7397237..38a17313 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_reporting_measurement.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_reporting_measurement.c @@ -44,12 +44,13 @@ * that the Report has immutable properties. * * @param measurement_interval - + * @param event_name Unique Event Name + * @param event_id A universal identifier of the event for analysis etc * @returns pointer to the newly manufactured ::EVENT_REPORT. If the event is * not used (i.e. posted) it must be released using ::evel_free_event. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_REPORT * evel_new_report(double measurement_interval) +EVENT_REPORT * evel_new_report(double measurement_interval,const char *ev_name, const char *ev_id) { EVENT_REPORT * report = NULL; @@ -75,7 +76,7 @@ EVENT_REPORT * evel_new_report(double measurement_interval) /***************************************************************************/ /* Initialize the header & the report fields. */ /***************************************************************************/ - evel_init_header(&report->header,"Report"); + evel_init_header_nameid(&report->header,ev_name,ev_id); report->header.event_domain = EVEL_DOMAIN_REPORT; report->measurement_interval = measurement_interval; @@ -328,7 +329,7 @@ void evel_json_encode_report(EVEL_JSON_BUFFER * jbuf, { evel_json_open_object(jbuf); evel_enc_kv_string(jbuf, "name", measurement_group->name); - evel_json_open_named_list(jbuf, "measurements"); + evel_json_open_named_list(jbuf, "arrayOfFields"); /*********************************************************************/ /* Measurements list. */ diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_scaling_measurement.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_scaling_measurement.c index f1b38e3c..7920d81b 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_scaling_measurement.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_scaling_measurement.c @@ -37,13 +37,15 @@ * that the Measurement has immutable properties. * * @param measurement_interval + * @param event_name Unique Event Name confirming Domain AsdcModel Description + * @param event_id A universal identifier of the event for: troubleshooting correlation, analysis, etc * * @returns pointer to the newly manufactured ::EVENT_MEASUREMENT. If the * event is not used (i.e. posted) it must be released using * ::evel_free_event. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval) +EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval, const char* ev_name, const char *ev_id) { EVENT_MEASUREMENT * measurement = NULL; @@ -69,7 +71,7 @@ EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval) /***************************************************************************/ /* Initialize the header & the measurement fields. */ /***************************************************************************/ - evel_init_header(&measurement->header,"vnfScalingMeasurement"); + evel_init_header_nameid(&measurement->header,ev_name,ev_id); measurement->header.event_domain = EVEL_DOMAIN_MEASUREMENT; measurement->measurement_interval = measurement_interval; dlist_initialize(&measurement->additional_info); @@ -1531,10 +1533,10 @@ void evel_measurement_fsys_use_add(EVENT_MEASUREMENT * measurement, char * filesystem_name, double block_configured, double block_used, - int block_iops, + double block_iops, double ephemeral_configured, double ephemeral_used, - int ephemeral_iops) + double ephemeral_iops) { MEASUREMENT_FSYS_USE * fsys_use = NULL; EVEL_ENTER(); @@ -1547,10 +1549,10 @@ void evel_measurement_fsys_use_add(EVENT_MEASUREMENT * measurement, assert(filesystem_name != NULL); assert(block_configured >= 0.0); assert(block_used >= 0.0); - assert(block_iops >= 0); + assert(block_iops >= 0.0); assert(ephemeral_configured >= 0.0); assert(ephemeral_used >= 0.0); - assert(ephemeral_iops >= 0); + assert(ephemeral_iops >= 0.0); /***************************************************************************/ /* Allocate a container for the value and push onto the list. */ @@ -1563,7 +1565,7 @@ void evel_measurement_fsys_use_add(EVENT_MEASUREMENT * measurement, fsys_use->block_configured = block_configured; fsys_use->block_used = block_used; fsys_use->block_iops = block_iops; - fsys_use->ephemeral_configured = block_configured; + fsys_use->ephemeral_configured = ephemeral_configured; fsys_use->ephemeral_used = ephemeral_used; fsys_use->ephemeral_iops = ephemeral_iops; @@ -3201,15 +3203,15 @@ void evel_json_encode_measurement(EVEL_JSON_BUFFER * jbuf, fsys_use->filesystem_name)) { evel_json_open_object(jbuf); + evel_enc_kv_string(jbuf, "filesystemName", fsys_use->filesystem_name); evel_enc_kv_double( jbuf, "blockConfigured", fsys_use->block_configured); - evel_enc_kv_int(jbuf, "blockIops", fsys_use->block_iops); + evel_enc_kv_double(jbuf, "blockIops", fsys_use->block_iops); evel_enc_kv_double(jbuf, "blockUsed", fsys_use->block_used); evel_enc_kv_double( jbuf, "ephemeralConfigured", fsys_use->ephemeral_configured); - evel_enc_kv_int(jbuf, "ephemeralIops", fsys_use->ephemeral_iops); + evel_enc_kv_double(jbuf, "ephemeralIops", fsys_use->ephemeral_iops); evel_enc_kv_double(jbuf, "ephemeralUsed", fsys_use->ephemeral_used); - evel_enc_kv_string(jbuf, "filesystemName", fsys_use->filesystem_name); evel_json_close_object(jbuf); item_added = true; } @@ -3516,7 +3518,7 @@ void evel_json_encode_measurement(EVEL_JSON_BUFFER * jbuf, { evel_json_open_object(jbuf); evel_enc_kv_string(jbuf, "name", measurement_group->name); - evel_json_open_opt_named_list(jbuf, "measurements"); + evel_json_open_opt_named_list(jbuf, "arrayOfFields"); /*********************************************************************/ /* Measurements list. */ @@ -3711,3 +3713,4 @@ void evel_free_measurement(EVENT_MEASUREMENT * event) EVEL_EXIT(); } + diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_sipsignaling.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_sipsignaling.c index 09c95cd0..45f53487 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_sipsignaling.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_sipsignaling.c @@ -33,6 +33,8 @@ * this factory function and are immutable once set. Optional fields * have explicit setter functions, but again values may only be set * once so that the event has immutable properties. + * @param event_name Unique Event Name confirming Domain AsdcModel Description + * @param event_id A universal identifier of the event for: troubleshooting correlation, analysis, etc * @param vendor_name The vendor id to encode in the event vnf field. * @param module The module to encode in the event. * @param vnfname The Virtual network function to encode in the event. @@ -41,7 +43,8 @@ * ::evel_free_signaling. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_SIGNALING * evel_new_signaling(const char * const vendor_name, +EVENT_SIGNALING * evel_new_signaling(const char* ev_name, const char *ev_id, + const char * const vendor_name, const char * const correlator, const char * const local_ip_address, const char * const local_port, @@ -72,7 +75,7 @@ EVENT_SIGNALING * evel_new_signaling(const char * const vendor_name, /***************************************************************************/ /* Initialize the header & the Signaling fields. */ /***************************************************************************/ - evel_init_header(&event->header,"SipSignaling"); + evel_init_header_nameid(&event->header,ev_name,ev_id); event->header.event_domain = EVEL_DOMAIN_SIPSIGNALING; event->major_version = EVEL_SIGNALING_MAJOR_VERSION; event->minor_version = EVEL_SIGNALING_MINOR_VERSION; diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_state_change.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_state_change.c index c9de5065..8915afaf 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_state_change.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_state_change.c @@ -34,6 +34,8 @@ * explicit setter functions, but again values may only be set once * so that the State Change has immutable properties. * + * @param event_name Unique Event Name confirming Domain AsdcModel Description + * @param event_id A universal identifier of the event for: troubleshooting correlation, analysis, etc * @param new_state The new state of the reporting entity. * @param old_state The old state of the reporting entity. * @param interface The card or port name of the reporting entity. @@ -43,7 +45,9 @@ * ::evel_free_state_change * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_STATE_CHANGE * evel_new_state_change(const EVEL_ENTITY_STATE new_state, +EVENT_STATE_CHANGE * evel_new_state_change(const char* ev_name, + const char *ev_id, + const EVEL_ENTITY_STATE new_state, const EVEL_ENTITY_STATE old_state, const char * const interface) { @@ -73,7 +77,7 @@ EVENT_STATE_CHANGE * evel_new_state_change(const EVEL_ENTITY_STATE new_state, /* Initialize the header & the State Change fields. Optional string */ /* values are uninitialized (NULL). */ /***************************************************************************/ - evel_init_header(&state_change->header,"StateChange"); + evel_init_header_nameid(&state_change->header,ev_name,ev_id); state_change->header.event_domain = EVEL_DOMAIN_STATE_CHANGE; state_change->major_version = EVEL_STATE_CHANGE_MAJOR_VERSION; state_change->minor_version = EVEL_STATE_CHANGE_MINOR_VERSION; diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_syslog.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_syslog.c index fb22df9f..85b0ec91 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_syslog.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_syslog.c @@ -33,6 +33,8 @@ * function and are immutable once set. Optional fields have explicit * setter functions, but again values may only be set once so that the * Syslog has immutable properties. + * @param event_name Unique Event Name confirming Domain AsdcModel Description + * @param event_id A universal identifier of the event for: troubleshooting correlation, analysis, etc * @param event_source_type The type of Syslog event source. * @param syslog_msg The Syslog event message. * @param syslog_tag The messgaeId identifying the type of message. @@ -41,7 +43,8 @@ * ::evel_free_syslog. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_SYSLOG * evel_new_syslog(EVEL_SOURCE_TYPES event_source_type, +EVENT_SYSLOG * evel_new_syslog(const char* ev_name, const char *ev_id, + EVEL_SOURCE_TYPES event_source_type, const char * const syslog_msg, const char * const syslog_tag) { @@ -71,7 +74,7 @@ EVENT_SYSLOG * evel_new_syslog(EVEL_SOURCE_TYPES event_source_type, /* Initialize the header & the Syslog fields. Optional string values are */ /* uninitialized (NULL). */ /***************************************************************************/ - evel_init_header(&syslog->header,"Syslog"); + evel_init_header_nameid(&syslog->header,ev_name,ev_id); syslog->header.event_domain = EVEL_DOMAIN_SYSLOG; syslog->major_version = EVEL_SYSLOG_MAJOR_VERSION; syslog->minor_version = EVEL_SYSLOG_MINOR_VERSION; diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_threshold_cross.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_threshold_cross.c index a0a9cc3d..f4fa620f 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_threshold_cross.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_threshold_cross.c @@ -35,6 +35,8 @@ * setter functions, but again values may only be set once so that the * TCA has immutable properties. * + * @param event_name Unique Event Name confirming Domain AsdcVnfModel Description + * @param event_id A universal identifier of the event for: troubleshooting correlation, analysis, etc * @param char* tcriticality Performance Counter Criticality MAJ MIN, * @param char* tname Performance Counter Threshold name * @param char* tthresholdCrossed Counter Threshold crossed value @@ -51,7 +53,8 @@ * ::evel_free_threshold_cross * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_THRESHOLD_CROSS * evel_new_threshold_cross( char * tcriticality, +EVENT_THRESHOLD_CROSS * evel_new_threshold_cross(const char * ev_name, const char * ev_id, + char * tcriticality, char * tname, char * tthresholdCrossed, char * tvalue, @@ -87,7 +90,7 @@ EVENT_THRESHOLD_CROSS * evel_new_threshold_cross( char * tcriticality, /***************************************************************************/ /* Initialize the header & the threshold crossing fields. */ /***************************************************************************/ - evel_init_header(&event->header,"thresholdCrossingAlert"); + evel_init_header_nameid(&event->header,ev_name,ev_id); event->header.event_domain = EVEL_DOMAIN_THRESHOLD_CROSS; event->major_version = EVEL_THRESHOLD_CROSS_MAJOR_VERSION; event->minor_version = EVEL_THRESHOLD_CROSS_MINOR_VERSION; diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_voicequality.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_voicequality.c index c3826cab..cf2ec878 100644 --- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_voicequality.c +++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_voicequality.c @@ -34,6 +34,8 @@ * factory function and are immutable once set. Optional fields have * explicit setter functions, but again values may only be set once * so that the Voice Quality has immutable properties. + * @param event_name Unique Event Name + * @param event_id A universal identifier of the event for analysis etc. * @param calleeSideCodec Callee codec for the call. * @param callerSideCodec Caller codec for the call. * @param correlator Constant across all events on this call. @@ -45,7 +47,8 @@ ::evel_free_voice_quality. * @retval NULL Failed to create the event. *****************************************************************************/ -EVENT_VOICE_QUALITY * evel_new_voice_quality(const char * const calleeSideCodec, +EVENT_VOICE_QUALITY * evel_new_voice_quality(const char* ev_name, const char *ev_id, + const char * const calleeSideCodec, const char * const callerSideCodec, const char * const correlator, const char * const midCallRtcp, const char * const vendorName) { @@ -82,7 +85,7 @@ EVENT_VOICE_QUALITY * evel_new_voice_quality(const char * const calleeSideCodec, /* Initialize the header & the fault fields. Optional integer values are */ /* initialized as 0. */ /***************************************************************************/ - evel_init_header(&voiceQuality->header,"voiceQuality"); + evel_init_header_nameid(&voiceQuality->header,ev_name,ev_id); voiceQuality->header.event_domain = EVEL_DOMAIN_VOICE_QUALITY; voiceQuality->major_version = EVEL_VOICEQ_MAJOR_VERSION; voiceQuality->minor_version = EVEL_VOICEQ_MINOR_VERSION; diff --git a/vnfs/VES5.0/evel/evel-test-collector/code/collector/rest_dispatcher.pyc b/vnfs/VES5.0/evel/evel-test-collector/code/collector/rest_dispatcher.pyc Binary files differdeleted file mode 100644 index 7a084e5f..00000000 --- a/vnfs/VES5.0/evel/evel-test-collector/code/collector/rest_dispatcher.pyc +++ /dev/null diff --git a/vnfs/VES5.0/evel/evel-test-collector/docs/att_interface_definition/event_format_updated.json b/vnfs/VES5.0/evel/evel-test-collector/docs/att_interface_definition/event_format_updated.json index 986ed8f5..160add52 100644 --- a/vnfs/VES5.0/evel/evel-test-collector/docs/att_interface_definition/event_format_updated.json +++ b/vnfs/VES5.0/evel/evel-test-collector/docs/att_interface_definition/event_format_updated.json @@ -2,48 +2,37 @@ "$schema": "http://json-schema.org/draft-04/schema#",
"definitions": {
- "attCopyrightNotice": {
- "description": "Copyright (c) <2016>, AT&T Intellectual Property. All other rights reserved",
- "type": "object",
- "properties": {
- "useAndRedistribution": {
- "description": "Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:",
- "type": "string"
- },
- "condition1": {
- "description": "Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.",
- "type": "string"
- },
- "condition2": {
- "description": "Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.",
- "type": "string"
- },
- "condition3": {
- "description": "All advertising materials mentioning features or use of this software must display the following acknowledgement: This product includes software developed by the AT&T.",
- "type": "string"
- },
- "condition4": {
- "description": "Neither the name of AT&T nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.",
- "type": "string"
- },
- "disclaimerLine1": {
- "description": "THIS SOFTWARE IS PROVIDED BY AT&T INTELLECTUAL PROPERTY AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS",
- "type": "string"
- },
- "disclaimerLine2": {
- "description": "FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AT&T INTELLECTUAL PROPERTY BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES",
- "type": "string"
- },
- "disclaimerLine3": {
- "description": "(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,",
- "type": "string"
+ "attCopyrightNotice": {
+ "description": "Copyright (c) <2017>, AT&T Intellectual Property. All rights reserved. Licensed under the Apache License, Version 2.0 (the License)",
+ "type": "object",
+ "properties": {
+ "useAndRedistribution": {
+ "description": "You may not use this file except in compliance with the License.You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0",
+ "type": "string"
+ },
+ "licenseLink": "http://www.apache.org/licenses/LICENSE-2.0",
+ "condition1": {
+ "description": "Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an AS IS BASIS,",
+ "type": "string"
+ },
+ "condition2": {
+ "description": "Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.",
+ "type": "string"
+ },
+ "condition3": {
+ "description": "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.",
+ "type": "string"
+ },
+ "condition4": {
+ "description": "See the License for the specific language governing permissions and limitations under the License.",
+ "type": "string"
+ },
+ "Trademarks": {
+ "description": "ECOMP and OpenECOMP are trademarks and service marks of AT&T Intellectual Property.",
+ "type": "string"
+ }
+ }
},
- "disclaimerLine4": {
- "description": "WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",
- "type": "string"
- }
- }
- },
"codecsInUse": {
"description": "number of times an identified codec was used over the measurementInterval",
"type": "object",
@@ -1704,11 +1693,11 @@ "type": "string"
},
"vfModuleName": {
- "description": "ASDC vfModuleName for the vfModule generating the event",
+ "description": "SDC vfModuleName for the vfModule generating the event",
"type": "string"
},
"vnfName": {
- "description": "ASDC modelName for the VNF generating the event",
+ "description": "SDC modelName for the VNF generating the event",
"type": "string"
}
},
|