Modified hardcoded eventname id to user defined 37/8037/1
authorgokuls <goksing@gmail.com>
Fri, 18 Aug 2017 20:38:13 +0000 (16:38 -0400)
committergokuls <goksing@gmail.com>
Fri, 18 Aug 2017 21:03:52 +0000 (17:03 -0400)
Issue-Id: VNFRQTS-77
Change-Id: I7141a1cd5206893007873efbeaef377e5e00c96b
Signed-Off-by: Gokul Singaraju <goksing@gmail.com>
17 files changed:
vnfs/VES5.0/evel/evel-library/bldjobs/Makefile
vnfs/VES5.0/evel/evel-library/code/evel_library/evel.h
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event_mgr.c
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_fault.c
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_heartbeat_fields.c
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_internal.h
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_internal_event.c
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_mobile_flow.c
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_other.c
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_reporting_measurement.c
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_scaling_measurement.c
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_sipsignaling.c
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_state_change.c
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_syslog.c
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_threshold_cross.c
vnfs/VES5.0/evel/evel-library/code/evel_library/evel_voicequality.c

index b1e15e5..d37d0e4 100644 (file)
@@ -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
index be0c5f0..6aceec3 100644 (file)
@@ -1485,6 +1485,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.
  *
@@ -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.
@@ -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,
index 6d025ab..ced29b2 100644 (file)
@@ -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.
  *
index de4296d..a96124a 100644 (file)
@@ -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)
     {
       /***********************************************************************/
index 7cbadfe..c211f60 100644 (file)
@@ -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;
index 73773ed..872af1f 100644 (file)
@@ -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;
index f057fe8..46f71af 100644 (file)
@@ -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.
index 511c7d5..cb56c88 100644 (file)
  *          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;
 
index 0716e45..5085d6a 100644 (file)
@@ -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;
index 447ac9a..c7a227b 100644 (file)
@@ -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;
index a739723..36c34da 100644 (file)
  *          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;
 
index f1b38e3..22626f9 100644 (file)
  *          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);
@@ -3711,3 +3713,4 @@ void evel_free_measurement(EVENT_MEASUREMENT * event)
 
   EVEL_EXIT();
 }
+
index 09c95cd..45f5348 100644 (file)
@@ -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;
index c9de506..8915afa 100644 (file)
@@ -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;
index fb22df9..85b0ec9 100644 (file)
@@ -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;
index a0a9cc3..f4fa620 100644 (file)
@@ -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;
index c3826ca..cf2ec87 100644 (file)
@@ -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;