aboutsummaryrefslogtreecommitdiffstats
path: root/vnfs/VES5.0/evel/evel-library/code/VESreporting_vAFX/afx_ves_reporter.c
diff options
context:
space:
mode:
Diffstat (limited to 'vnfs/VES5.0/evel/evel-library/code/VESreporting_vAFX/afx_ves_reporter.c')
-rw-r--r--vnfs/VES5.0/evel/evel-library/code/VESreporting_vAFX/afx_ves_reporter.c372
1 files changed, 0 insertions, 372 deletions
diff --git a/vnfs/VES5.0/evel/evel-library/code/VESreporting_vAFX/afx_ves_reporter.c b/vnfs/VES5.0/evel/evel-library/code/VESreporting_vAFX/afx_ves_reporter.c
deleted file mode 100644
index 45c842dc..00000000
--- a/vnfs/VES5.0/evel/evel-library/code/VESreporting_vAFX/afx_ves_reporter.c
+++ /dev/null
@@ -1,372 +0,0 @@
-
-/*************************************************************************//**
- *
- * Main Agent which spins up monitoring threads
- *
- * Version 1.0: Gokul Singaraju gs244f Tech Mahindra Inc.
- *
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * 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
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ****************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <string.h>
-#include <stdint.h>
-#include <unistd.h>
-#include <pthread.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include "evel.h"
-#include "afx_ves_reporter.h"
-
-int (*afxFunctions[NUM_THREADS]) (void *threadarg);
-
-char *messages[NUM_THREADS];
-char hostname[BUFSIZE];
-char oam_intfaddr[BUFSIZE];
-struct thread_data thread_data_array[NUM_THREADS];
-
-
-void *HeartbeatAfxThread(void *threadarg)
-{
- int taskid, sum;
- char *hello_msg;
- struct thread_data *my_data;
- char hrtbtevid[256];
-
- sleep(1);
- my_data = (struct thread_data *) threadarg;
- taskid = my_data->thread_id;
- sum = my_data->sum;
- hello_msg = my_data->message;
- printf("Thread %d: %s Sum=%d\n", taskid, hello_msg, sum);
-
-while(1)
-{
- EVENT_HEADER * heartbeat = NULL;
- EVEL_ERR_CODES evel_rc = EVEL_SUCCESS;
-
- /***************************************************************************/
- /* Heartbeat */
- /***************************************************************************/
- sprintf(hrtbtevid,"Heartbeat_vAfx_%s",oam_intfaddr);
- heartbeat = evel_new_heartbeat_nameid("Heartbeat_vAfx",hrtbtevid);
- //heartbeat = evel_new_heartbeat();
- if (heartbeat != NULL)
- {
- evel_header_type_set(heartbeat, "applicationVnf");
- evel_nfcnamingcode_set(heartbeat, "AFX");
- evel_nfnamingcode_set(heartbeat, "AFX");
- evel_rc = evel_post_event(heartbeat);
- if (evel_rc != EVEL_SUCCESS)
- {
- EVEL_ERROR("Post failed %d (%s)", evel_rc, evel_error_string());
- }
- }
- else
- {
- EVEL_ERROR("New Heartbeat failed");
- }
- printf(" Processed Heartbeat\n");
- sleep(15);
-}
-
- pthread_exit(NULL);
-}
-
-int checklist(char *modname, char **list, int numt)
-{
- int i;
- for(i=0;i<numt;i++)
- {
- if( !strcasecmp(list[i],modname) )
- return 1;
- }
- return 0;
-}
-
-
-int start_threads(void)
-{
-
-pthread_t threads[NUM_THREADS];
-int *taskids[NUM_THREADS];
-int rc, t, sum;
-char *modlist[NUM_THREADS];
-int modcounter = 0;
-char line[128];
-char *pos;
-FILE *file;
-
-pthread_attr_t attr;
-
-sum=0;
-messages[0] = "Heartbeat started!";
-messages[1] = "Link monitoring started";
-messages[2] = "AFX Measurement started!";
-messages[3] = "Service Monitoring started";
-messages[4] = "BGP Monitoring started";
-
- file = fopen(AFX_MODULES_FILE, "r"); /* should check the result */
-
- if( file != NULL ){
- while ( file != NULL && fgets(line, sizeof(line), file)) {
- /* note that fgets don't strip the terminating \n, checking its
- presence would allow to handle lines longer that sizeof(line) */
- //printf("%s", line);
- remove_spaces(line);
- if ((pos=strchr(line, '\n')) != NULL)
- *pos = '\0';
- if( modcounter >= NUM_THREADS )
- {
- EVEL_ERROR("AFX modules file %s has more modules than allowed\n",AFX_MODULES_FILE);
- exit(1);
- }
- modlist[modcounter] = strdup(line);
- modcounter++;
- }
- fclose(file);
- }
-
-
-for(t=0;t<NUM_THREADS;t++) {
- if( file == NULL || (t == 0 && checklist("HeartBeat",modlist, modcounter)) ||
- (t == 1 && checklist("LinkMonitor",modlist, modcounter)) ||
- (t == 2 && checklist("ScalingMeasurements",modlist, modcounter)) ||
- (t == 3 && checklist("ServiceMonitor",modlist, modcounter)) ||
- (t == 4 && checklist("SyslogBgp",modlist, modcounter))
- )
- {
- sum = sum + t;
- thread_data_array[t].thread_id = t;
- thread_data_array[t].sum = sum;
- thread_data_array[t].message = messages[t];
-
- /* Initialize and set thread detached attribute */
- pthread_attr_init(&attr);
- pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
-
- printf("Creating thread %d\n", t);
- rc = pthread_create(&threads[t], NULL, afxFunctions[t], (void *)
- &thread_data_array[t]);
- if (rc) {
- printf("ERROR; return code from pthread_create() is %d\n", rc);
- exit(-1);
- }
- }
- else threads[t] = NULL;
-}
-
- //pthread_exit(NULL);
- for(t=0;t<NUM_THREADS;t++) {
- if( threads[t] != NULL )
- pthread_join(threads[t],NULL);
- }
- return sum;
-}
-
-void read_lpfile(char *fname, char **usn, char **pwd)
-{
- FILE *fp;
- int i=0; // count how many lines are in the file
- char line[256];
- char *pos;
-
- fp=fopen(fname, "r");
- while (fgets(line, sizeof(line), fp)) {
- //printf("%s", line);
- if ((pos=strchr(line, '\n')) != NULL)
- *pos = '\0';
- i++;
- if( i == 1 && strlen(line) < 64 ) *usn = strdup(line);
- if( i == 2 && strlen(line) < 64 ) *pwd = strdup(line);
- }
- fclose(fp);
-}
-
-
-int main(int argc, char** argv)
-{
- char* fqdn = argv[1];
- int port = atoi(argv[2]);
- char *fqdn2 = NULL;
- int port2;
- char* lpfile = argv[3];
- char* lpfile2 = NULL;
- //char* usname = argv[3];
- //char* passwd = argv[4];
- char* usname = NULL;
- char* passwd = NULL;
- char* usname2 = NULL;
- char* passwd2 = NULL;
- int secty = atoi(argv[4]);
- int dbglvl = atoi(argv[5]);
- //int hrtbtintval = atoi(argv[6]);
- int rc = EVEL_SUCCESS;
- char oam_intf[64];
- char const* const fileName = "afxintf.conf";
- char line[128];
- FILE *file=NULL;
- char *pos;
- struct stat sb;
-
-
- printf("\nvAFX VES Processing (VPP) measurement collection\n");
- fflush(stdout);
-
-if( argc == 9 )
-{
- fqdn2 = argv[6];
- port2 = atoi(argv[7]);
- lpfile2 = argv[8];
-}
-
-
- if ( !(argc == 6 || argc == 9 ) || port < 0 || dbglvl < 0 )
- {
- fprintf(stderr, "Usage: %s <DCAE FQDN>|<IP address> <port> <credential file> <debug level> \n", argv[0]);
- fprintf(stderr, "Or: %s <DCAE FQDN>|<IP address> <port> <credential file> <debug level> <DCAE FQDN2>|<IP address2> <port2> <credential file2> \n", argv[0]);
- exit(-1);
- }
-
- if( stat(lpfile,&sb)<0 )
- {
- fprintf(stderr, "Error: Invalid Login password file %s \n", lpfile);
- EVEL_ERROR("Error: Invalid Login password file %s \n", lpfile);
- exit(-1);
- }
- read_lpfile(lpfile,&usname,&passwd);
- //fprintf(stderr, "Login:%s:\n", usname);
- //fprintf(stderr, "Password:%s:\n", passwd);
- if ( usname == NULL || passwd == NULL || strlen(usname) < 5 || strlen(passwd) < 5 )
- {
- fprintf(stderr, "Error: Invalid credentials in file %s \n", lpfile);
- EVEL_ERROR("Error: Invalid credentials in file %s \n", lpfile);
- exit(-1);
- }
-
-if( argc == 9 )
-{
- if( stat(lpfile2,&sb)<0 )
- {
- fprintf(stderr, "Error: Invalid Redundant collector Login password file %s \n", lpfile2);
- EVEL_ERROR("Error: Invalid Login password file %s \n", lpfile2);
- exit(-1);
- }
- read_lpfile(lpfile2,&usname2,&passwd2);
- if ( usname2 == NULL || passwd2 == NULL || strlen(usname2) < 5 || strlen(passwd2) < 5 )
- {
- fprintf(stderr, "Error: Invalid credentials in file %s \n", lpfile2);
- EVEL_ERROR("Error: Invalid credentials in file %s \n", lpfile2);
- exit(-1);
- }
- //fprintf(stderr, "Login:%s:\n", usname2);
- //fprintf(stderr, "Password:%s:\n", passwd2);
-}
-
- srand(time(NULL));
- gethostname(hostname, BUFSIZE);
-
- strcpy(oam_intf,OAM_INTERFACE);
- sprintf(oam_intfaddr,"%s",get_oam_intfaddr(oam_intf));
-
- /**************************************************************************/
- /* Initialize */
- /**************************************************************************/
- do {
-
-if( argc == 6 )
-{
- rc = evel_initialize(fqdn, /* FQDN */
- port, /* Port */
- NULL, /* backup fqdn */
- 0, /* backup port */
- NULL, /* optional path */
- NULL, /* optional topic */
- 1000, /* Ring buf size */
- secty, /* HTTPS? */
- NULL, /*"/home/gs244f/sslcerts/testclient.crt",*/
- NULL, /*"/home/gs244f/sslcerts/testclient.key",*/
- NULL, /*"/etc/pki/ca-trust/source/ca-bundle.legacy.crt",*/
- NULL, /*"/home/gs244f/sslcerts/www.testsite.com.crt",*/
- 0, 0,
- usname, /* Username */
- passwd, /* Password */
- NULL, /* Username2 */
- NULL, /* Password2 */
- NULL, /* source ip */
- NULL, /* backup ip */
- EVEL_SOURCE_VIRTUAL_MACHINE, /* Source type */
- "vAFX", /* Role */
- dbglvl); /* Verbosity */
- if(rc != EVEL_SUCCESS){
- fprintf(stderr, "\nFailed to initialize the EVEL library!!!\n");
- exit(-1);
- }
- else
- {
- printf("\nInitialization completed\n");
- }
-} else {
-
- rc = evel_initialize(fqdn, /* FQDN */
- port, /* Port */
- fqdn2, /* backup fqdn */
- port2, /* backup port */
- NULL, /* optional path */
- NULL, /* optional topic */
- 1000, /* RingB size */
- secty, /* HTTPS? */
- NULL, /*"/home/gs244f/sslcerts/testclient.crt",*/
- NULL, /*"/home/gs244f/sslcerts/testclient.key",*/
- NULL, /*"/etc/pki/ca-trust/source/ca-bundle.legacy.crt",*/
- NULL, /*"/home/gs244f/sslcerts/www.testsite.com.crt",*/
- 0, 0,
- usname, /* Username */
- passwd, /* Password */
- usname2, /* Username2 */
- passwd2, /* Password2 */
- NULL, /* source ip */
- NULL, /* backup ip */
- EVEL_SOURCE_VIRTUAL_MACHINE, /* Source type */
- "vAFX", /* Role */
- dbglvl); /* Verbosity */
- if(rc != EVEL_SUCCESS){
- fprintf(stderr, "\nFailed to initialize the EVEL library!!!\n");
- evel_terminate();
- exit(-1);
- }
- else
- {
- printf("\nInitialization completed\n");
- }
-}
-
- } while( rc != EVEL_SUCCESS);
-
- afxFunctions[0] = HeartbeatAfxThread;
- afxFunctions[1] = LinkMonitorAfxThread;
- afxFunctions[2] = MeasureAfxThread;
- afxFunctions[3] = ServiceMonitorAfxThread;
- afxFunctions[4] = BgpLoggingAfxThread;
-
- start_threads();
-
- evel_terminate();
- printf("Terminated\n");
-}
-