root/trunk/src/renetcol.h @ 32

Revision 29, 2.8 KB (checked in by andreu, 16 years ago)

sampling information in rrd filename - optional template first step

  • Property svn:eol-style set to native
Line 
1/*
2 * File: renetcol.h
3 *
4 * Authors: ANDREU Francois-Xavier
5 *
6 * Copyright (C) 2005 2006 2007 GIP RENATER
7 */
8
9/*  This file is part of renetcol.
10 *
11 *  renetcol is free software; you can redistribute it and/or modify
12 *  it under the terms of the GNU General Public License as published by
13 *  the Free Software Foundation; either version 2 of the License, or
14 *  (at your option) any later version.
15 *
16 *  renetcol is distributed in the hope that it will be useful,
17 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
18 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 *  GNU General Public License for more details.
20 *
21 *  You should have received a copy of the GNU General Public License
22 *  along with renetcol; if not, write to the Free Software
23 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
24 */
25
26#define _GNU_SOURCE
27
28#include <unistd.h>
29#include <stdio.h>
30#include <string.h>
31#include <stdlib.h>
32#include <syslog.h>
33#include <sys/types.h>
34#include <sys/socket.h>
35#include <netinet/in.h>
36#include <time.h>
37#include <errno.h>
38#include <sys/ipc.h>
39#include <sys/shm.h>
40#include <sys/sem.h>
41#include <ctype.h>
42#include <netdb.h>
43#include <net/if.h>
44#include <sys/ioctl.h>
45#include <arpa/inet.h>
46#include <signal.h>
47#include <setjmp.h>
48
49#include "routers_mgmt.h"
50#include "fields_mgmt.h"
51#include "routers_mgmt.h"
52#include "tplflset_mgmt.h"
53#include "fields_mgmt.h"
54#include "headers_mgmt.h"
55#include "V9Header_mgmt.h"
56#include "template.h"
57#include "dataFlowSet.h"
58#include "get_conf.h"
59#include "rules_mgmt.h"
60#include "msg_mgmt.h"
61
62/* #include "mysql_mgmt.h" */
63
64#define SOCKET_BUFFER_SIZE 1500
65
66#define RECEPTION_ADDRESS "" /* your collector address like 10.0.0.90 */
67#define RECEPTION_PORT 9999 /* your collector port to recept netflow export */
68
69#define TIME_OUT 300 /* MAJSCH */
70
71#define ROUTER_INDEX_MAX 70
72#define FIELD_TYPE_NUMBER 89
73#define MAX_RULES_PER_FIELD 10
74
75#ifdef CRIHAN
76#define OUTPUT_IP "/tmp/ipflow"
77#define EXTENSION ".txt" 
78#define OUTPUT_MPLS "/tmp/mplsflow"
79#define MAX_IP_OUTPUT_FILES 3
80#define MAX_MPLS_OUTPUT_FILES 3
81#define IP_TIME_THRESHOLD 60 /* in sec */
82#define MPLS_TIME_THRESHOLD 60 /* in sec */
83#endif /* CRIHAN */
84
85#define MAX_IP_FLOW 10000
86#define MAX_MPLS_FLOW 200
87
88#define SHMSIZE 33554432
89
90#define STEP 5  /* in min */
91
92struct SHMForAgg {
93  unsigned short currentTable;
94  unsigned short secondTable;
95  unsigned short readed;
96  unsigned short v4PrefixNb;
97  struct PrefixV4 prefixV4Tab[2][MAX_IPV4_PREFIX];
98  /*  struct PrefixV6 ; */
99};
100
101
102void setCache(RulesPtr);
103void initCache();
104void waitingRoom();
105void initRule();
106void sigusr1Mgmt(int);
107void sendMyPid(int);
108void sendReadRulesSignal(int);
109void initStream();
110void catchAlarm(int);
111int socketLoop();
112short initSocket();
113short socketReading();
114short getFlow(short);
115short checkFlow(short);
116void showAllTplFlSet();
117void writeAllTplFlSet();
Note: See TracBrowser for help on using the browser.