2 //! @file store_mibdata.h
3 //! @brief net-snmp mibdata stored header
5 // copyright(c) sdy corporation.2008
6 // mail: h.okada at sdy.co.jp
7 // Copyright (c) 2008 norihisa nakai (n dot nakai at sdy dot co do jp)
9 // Distributed under the Boost Software License, Version 1.0. (See accompanying
10 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
13 #ifndef STORE_MIBDATA_H
14 #define STORE_MIBDATA_H
19 #include <netinet/in.h>
20 #include <sys/socket.h>
21 #include <arpa/inet.h>
23 #include "netsnmp_bridge.h"
24 #include "logger_enum.h"
25 #include "MessengerClient.h"
27 #define DISPLAYSTRING_LEN (256) // RFC2579
28 #define L7VS_IPADDR_LEN (128)
32 unsigned char protocol;
33 char ipAddress[L7VS_IPADDR_LEN];
34 unsigned short portNumber;
35 char scheduleModule[L7VS_MODNAME_LEN];
36 char protocolModule[L7VS_MODNAME_LEN];
37 char protocolModuleOption[L7VS_PROTOMOD_OPT_LEN];
38 unsigned char reschedule;
39 char sorryIpAddress[L7VS_IPADDR_LEN];
40 unsigned short sorryPortNumber;
41 unsigned int sorryThreshold;
42 unsigned char sorryForceFlag;
43 unsigned long long QoSThresholdUp;
44 unsigned long long QoSThresholdDown;
45 unsigned long long throughputUp;
46 unsigned long long throughputDown;
51 unsigned short virtualServiceIndex;
52 char ipAddress[L7VS_IPADDR_LEN];
53 unsigned short portNumber;
54 unsigned short forwardMode;
56 unsigned int activeConn;
57 unsigned int inactiveConn;
60 struct l7vsd_log_level {
61 l7vs::LOG_LEVEL_TAG network;
62 l7vs::LOG_LEVEL_TAG networkBandwidth;
63 l7vs::LOG_LEVEL_TAG networkNumConnection;
64 l7vs::LOG_LEVEL_TAG networkQoS;
65 l7vs::LOG_LEVEL_TAG virtualService;
66 l7vs::LOG_LEVEL_TAG realServer;
67 l7vs::LOG_LEVEL_TAG realServerBalancing;
68 l7vs::LOG_LEVEL_TAG sorryServer;
69 l7vs::LOG_LEVEL_TAG replication;
70 l7vs::LOG_LEVEL_TAG startStop;
71 l7vs::LOG_LEVEL_TAG system;
72 l7vs::LOG_LEVEL_TAG systemMemory;
73 l7vs::LOG_LEVEL_TAG systemSocket;
74 l7vs::LOG_LEVEL_TAG systemSignal;
75 l7vs::LOG_LEVEL_TAG environment;
76 l7vs::LOG_LEVEL_TAG environmentParameter;
77 l7vs::LOG_LEVEL_TAG logger;
78 l7vs::LOG_LEVEL_TAG parameter;
79 l7vs::LOG_LEVEL_TAG event;
80 l7vs::LOG_LEVEL_TAG schedule;
81 l7vs::LOG_LEVEL_TAG program;
82 l7vs::LOG_LEVEL_TAG protocol;
83 l7vs::LOG_LEVEL_TAG module;
86 struct l7vsadm_log_level {
87 l7vs::LOG_LEVEL_TAG parse;
88 l7vs::LOG_LEVEL_TAG operate;
89 l7vs::LOG_LEVEL_TAG communicate;
90 l7vs::LOG_LEVEL_TAG configResult;
91 l7vs::LOG_LEVEL_TAG common;
92 l7vs::LOG_LEVEL_TAG logger;
93 l7vs::LOG_LEVEL_TAG parameter;
94 l7vs::LOG_LEVEL_TAG protocol;
95 l7vs::LOG_LEVEL_TAG module;
98 struct l7snmpagent_log_level {
99 l7vs::LOG_LEVEL_TAG startStop;
100 l7vs::LOG_LEVEL_TAG managerReceive;
101 l7vs::LOG_LEVEL_TAG managerSend;
102 l7vs::LOG_LEVEL_TAG l7vsdReceive;
103 l7vs::LOG_LEVEL_TAG l7vsdSend;
104 l7vs::LOG_LEVEL_TAG logger;
105 l7vs::LOG_LEVEL_TAG parameter;
109 char message[DISPLAYSTRING_LEN];
110 IPC_STATUS_TAG snmpAgent;
111 // REPLICATION_MODE_TAG replication;
114 class l7ag_store_mibdata
117 std::vector<vsdata> vsdatalist;
118 std::vector<rsdata> rsdatalist;
119 l7vsd_log_level vsd_log;
120 l7vsadm_log_level adm_log;
121 l7snmpagent_log_level snmp_log;
123 netsnmp_table_data_set* vs_table_set;
124 netsnmp_table_data_set* rs_table_set;
126 l7ag_store_mibdata(){};
127 l7ag_store_mibdata( const l7ag_store_mibdata& ){};
128 l7ag_store_mibdata& operator=( const l7ag_store_mibdata& in_data ){
129 vsdatalist = in_data.vsdatalist;
130 rsdatalist = in_data.rsdatalist;
134 static l7ag_store_mibdata& getInstance(){
135 static l7ag_store_mibdata instance;
139 vsdata* getVS_first_data_point();
140 rsdata* getRS_first_data_point();
141 vsdata* getVS_data_point( std::vector<vsdata>::iterator );
142 rsdata* getRS_data_point( std::vector<rsdata>::iterator );
143 std::vector<vsdata>::iterator getVS_first_data_iterator();
144 std::vector<rsdata>::iterator getRS_first_data_iterator();
146 vsdata* getVSmibdata( std::size_t );
147 rsdata* getRSmibdata( std::size_t );
148 l7vsd_log_level* getVsdLogmibdata();
149 l7vsadm_log_level* getVsadmLogmibdata();
150 l7snmpagent_log_level* getAgentLogmibdata();
151 l7_status* getStatmibdata();
153 std::size_t getVSdatacount();
154 std::size_t getRSdatacount();
156 bool addVSmibdata( struct l7ag_mibdata_payload_vs* );
157 bool addRSmibdata( struct l7ag_mibdata_payload_rs* );
158 vsdata* updateVSmibdata( std::size_t, l7ag_mibdata_payload_vs* );
159 rsdata* updateRSmibdata( std::size_t, l7ag_mibdata_payload_rs* );
161 void clearVSmibdata();
162 void clearRSmibdata();
163 void clearVsdLogmibdata();
164 void clearVsadmLogmibdata();
165 void clearAgentLogmibdata();
166 void clearStatmibdata();
167 void setVsdLogmibdata(l7vsd_log_level);
168 void setVsadmLogmibdata(l7vsadm_log_level);
169 void setAgentLogmibdata(l7snmpagent_log_level);
170 void setStatmibdata(l7_status);
171 void setVsTableSet(netsnmp_table_data_set*);
172 void setRsTableSet(netsnmp_table_data_set*);
175 #endif //__STORE_MIBDATA_H__