2 //! @file store_mibdata.h
3 //! @brief net-snmp mibdata stored header
5 // Copyright (C) 2008 NTT COMWARE Corporation.
7 // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
11 #ifndef STORE_MIBDATA_H
12 #define STORE_MIBDATA_H
17 #include <netinet/in.h>
18 #include <sys/socket.h>
19 #include <arpa/inet.h>
21 #include "netsnmp_bridge.h"
22 #include "logger_enum.h"
23 #include "MessengerClient.h"
25 #define DISPLAYSTRING_LEN (256) // RFC2579
26 #define L7VS_IPADDR_LEN (128)
30 unsigned char protocol;
31 char ipAddress[L7VS_IPADDR_LEN];
32 unsigned short portNumber;
33 char scheduleModule[L7VS_MODNAME_LEN];
34 char protocolModule[L7VS_MODNAME_LEN];
35 char protocolModuleOption[L7VS_PROTOMOD_OPT_LEN];
36 unsigned char reschedule;
37 char sorryIpAddress[L7VS_IPADDR_LEN];
38 unsigned short sorryPortNumber;
39 unsigned int sorryThreshold;
40 unsigned char sorryForceFlag;
41 unsigned long long QoSThresholdUp;
42 unsigned long long QoSThresholdDown;
43 unsigned long long throughputUp;
44 unsigned long long throughputDown;
49 unsigned short virtualServiceIndex;
50 char ipAddress[L7VS_IPADDR_LEN];
51 unsigned short portNumber;
52 unsigned short forwardMode;
54 unsigned int activeConn;
55 unsigned int inactiveConn;
58 struct l7vsd_log_level {
59 l7vs::LOG_LEVEL_TAG network;
60 l7vs::LOG_LEVEL_TAG networkBandwidth;
61 l7vs::LOG_LEVEL_TAG networkNumConnection;
62 l7vs::LOG_LEVEL_TAG networkQoS;
63 l7vs::LOG_LEVEL_TAG virtualService;
64 l7vs::LOG_LEVEL_TAG realServer;
65 l7vs::LOG_LEVEL_TAG realServerBalancing;
66 l7vs::LOG_LEVEL_TAG sorryServer;
67 l7vs::LOG_LEVEL_TAG replication;
68 l7vs::LOG_LEVEL_TAG startStop;
69 l7vs::LOG_LEVEL_TAG system;
70 l7vs::LOG_LEVEL_TAG systemMemory;
71 l7vs::LOG_LEVEL_TAG systemSocket;
72 l7vs::LOG_LEVEL_TAG systemSignal;
73 l7vs::LOG_LEVEL_TAG environment;
74 l7vs::LOG_LEVEL_TAG environmentParameter;
75 l7vs::LOG_LEVEL_TAG logger;
76 l7vs::LOG_LEVEL_TAG parameter;
77 l7vs::LOG_LEVEL_TAG event;
78 l7vs::LOG_LEVEL_TAG schedule;
79 l7vs::LOG_LEVEL_TAG program;
80 l7vs::LOG_LEVEL_TAG protocol;
81 l7vs::LOG_LEVEL_TAG module;
84 struct l7vsadm_log_level {
85 l7vs::LOG_LEVEL_TAG parse;
86 l7vs::LOG_LEVEL_TAG operate;
87 l7vs::LOG_LEVEL_TAG communicate;
88 l7vs::LOG_LEVEL_TAG configResult;
89 l7vs::LOG_LEVEL_TAG common;
90 l7vs::LOG_LEVEL_TAG logger;
91 l7vs::LOG_LEVEL_TAG parameter;
92 l7vs::LOG_LEVEL_TAG protocol;
93 l7vs::LOG_LEVEL_TAG module;
96 struct l7snmpagent_log_level {
97 l7vs::LOG_LEVEL_TAG startStop;
98 l7vs::LOG_LEVEL_TAG managerReceive;
99 l7vs::LOG_LEVEL_TAG managerSend;
100 l7vs::LOG_LEVEL_TAG l7vsdReceive;
101 l7vs::LOG_LEVEL_TAG l7vsdSend;
102 l7vs::LOG_LEVEL_TAG logger;
103 l7vs::LOG_LEVEL_TAG parameter;
107 char message[DISPLAYSTRING_LEN];
108 IPC_STATUS_TAG snmpAgent;
109 // REPLICATION_MODE_TAG replication;
112 class l7ag_store_mibdata
115 std::vector<vsdata> vsdatalist;
116 std::vector<rsdata> rsdatalist;
117 l7vsd_log_level vsd_log;
118 l7vsadm_log_level adm_log;
119 l7snmpagent_log_level snmp_log;
121 netsnmp_table_data_set *vs_table_set;
122 netsnmp_table_data_set *rs_table_set;
124 l7ag_store_mibdata() {};
125 l7ag_store_mibdata(const l7ag_store_mibdata &) {};
126 l7ag_store_mibdata &operator=(const l7ag_store_mibdata &in_data) {
127 vsdatalist = in_data.vsdatalist;
128 rsdatalist = in_data.rsdatalist;
132 static l7ag_store_mibdata &getInstance() {
133 static l7ag_store_mibdata instance;
137 vsdata *getVS_first_data_point();
138 rsdata *getRS_first_data_point();
139 vsdata *getVS_data_point(std::vector<vsdata>::iterator);
140 rsdata *getRS_data_point(std::vector<rsdata>::iterator);
141 std::vector<vsdata>::iterator getVS_first_data_iterator();
142 std::vector<rsdata>::iterator getRS_first_data_iterator();
144 vsdata *getVSmibdata(std::size_t);
145 rsdata *getRSmibdata(std::size_t);
146 l7vsd_log_level *getVsdLogmibdata();
147 l7vsadm_log_level *getVsadmLogmibdata();
148 l7snmpagent_log_level *getAgentLogmibdata();
149 l7_status *getStatmibdata();
151 std::size_t getVSdatacount();
152 std::size_t getRSdatacount();
154 bool addVSmibdata(struct l7ag_mibdata_payload_vs *);
155 bool addRSmibdata(struct l7ag_mibdata_payload_rs *);
156 vsdata *updateVSmibdata(std::size_t, l7ag_mibdata_payload_vs *);
157 rsdata *updateRSmibdata(std::size_t, l7ag_mibdata_payload_rs *);
159 void clearVSmibdata();
160 void clearRSmibdata();
161 void clearVsdLogmibdata();
162 void clearVsadmLogmibdata();
163 void clearAgentLogmibdata();
164 void clearStatmibdata();
165 void setVsdLogmibdata(l7vsd_log_level);
166 void setVsadmLogmibdata(l7vsadm_log_level);
167 void setAgentLogmibdata(l7snmpagent_log_level);
168 void setStatmibdata(l7_status);
169 void setVsTableSet(netsnmp_table_data_set *);
170 void setRsTableSet(netsnmp_table_data_set *);
173 #endif //__STORE_MIBDATA_H__