Skip to content

Commit d1aa001

Browse files
SNMP fixes
1 parent 4f3d192 commit d1aa001

File tree

4 files changed

+34
-34
lines changed

4 files changed

+34
-34
lines changed

server.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88

99
typedef struct
1010
{
11-
uint32_t iscsiSsnCmdPDUs; // 1.3.6.1.2.1.142.1.10.2.1.1
12-
uint32_t iscsiInstSsnFailures; // 1.3.6.1.2.1.142.1.1.1.1.10
13-
uint32_t iscsiInstSsnFormatErrors; // 1.3.6.1.2.1.142.1.1.2.1.3
14-
uint32_t iscsiInstSsnDigestErrors; // 1.3.6.1.2.1.142.1.1.2.1.1
11+
uint64_t iscsiSsnCmdPDUs; // 1.3.6.1.2.1.142.1.10.2.1.1
12+
uint64_t iscsiInstSsnFailures; // 1.3.6.1.2.1.142.1.1.1.1.10
13+
uint64_t iscsiInstSsnFormatErrors; // 1.3.6.1.2.1.142.1.1.2.1.3
14+
uint64_t iscsiInstSsnDigestErrors; // 1.3.6.1.2.1.142.1.1.2.1.1
1515
uint64_t iscsiSsnTxDataOctets; // 1.3.6.1.2.1.142.1.10.2.1.3
1616
uint64_t iscsiSsnRxDataOctets; // 1.3.6.1.2.1.142.1.10.2.1.4
17-
uint32_t iscsiTgtLoginAccepts; // 1.3.6.1.2.1.142.1.6.2.1.1
18-
uint32_t iscsiTgtLogoutNormals; // 1.3.6.1.2.1.142.1.6.3.1.1
17+
uint64_t iscsiTgtLoginAccepts; // 1.3.6.1.2.1.142.1.6.2.1.1
18+
uint64_t iscsiTgtLogoutNormals; // 1.3.6.1.2.1.142.1.6.3.1.1
1919
} iscsi_stats_t;
2020

2121
class server

snmp.cpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,37 +10,37 @@
1010
void init_snmp(snmp **const snmp_, snmp_data **const snmp_data_, io_stats_t *const ios, iscsi_stats_t *const is, std::function<int(void *)> get_percentage_diskspace, void *const gpd_context, int *const cpu_usage, int *const ram_free_kb, std::atomic_bool *const stop, const int port)
1111
{
1212
*snmp_data_ = new snmp_data();
13-
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.13.15.1.1.2", "iESP" );
1413
(*snmp_data_)->register_oid("1.3.6.1.2.1.1.1.0", "iESP" );
1514
//(*snmp_data_)->register_oid("1.3.6.1.2.1.1.2.0", new snmp_data_type_oid("1.3.6.1.4.1.57850.1"));
1615
(*snmp_data_)->register_oid("1.3.6.1.2.1.1.3.0", new snmp_data_type_running_since());
1716
(*snmp_data_)->register_oid("1.3.6.1.2.1.1.4.0", "Folkert van Heusden <[email protected]>");
1817
(*snmp_data_)->register_oid("1.3.6.1.2.1.1.5.0", "iESP");
1918
(*snmp_data_)->register_oid("1.3.6.1.2.1.1.6.0", "The Netherlands, Europe, Earth");
2019
(*snmp_data_)->register_oid("1.3.6.1.2.1.1.7.0", snmp_integer::si_integer, 254);
21-
(*snmp_data_)->register_oid("1.3.6.1.2.1.1.8.0", snmp_integer::si_integer, 0);
20+
(*snmp_data_)->register_oid("1.3.6.1.2.1.1.8.0", snmp_integer::si_ticks, 0);
21+
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.1.1.1.10", new snmp_data_type_stats(snmp_integer::snmp_integer_type::si_counter32, &is->iscsiInstSsnFailures));
22+
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.1.2.1.1", new snmp_data_type_stats(snmp_integer::snmp_integer_type::si_counter32, &is->iscsiInstSsnDigestErrors));
23+
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.1.2.1.3", new snmp_data_type_stats(snmp_integer::snmp_integer_type::si_counter32, &is->iscsiInstSsnFormatErrors));
24+
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.6.2.1.1", new snmp_data_type_stats(snmp_integer::snmp_integer_type::si_counter32, &is->iscsiTgtLoginAccepts));
25+
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.6.3.1.1", new snmp_data_type_stats(snmp_integer::snmp_integer_type::si_counter32, &is->iscsiTgtLogoutNormals));
26+
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.10.2.1.1", new snmp_data_type_stats(snmp_integer::snmp_integer_type::si_counter32, &is->iscsiSsnCmdPDUs));
27+
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.10.2.1.3", new snmp_data_type_stats(snmp_integer::snmp_integer_type::si_counter64, &is->iscsiSsnTxDataOctets));
28+
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.10.2.1.4", new snmp_data_type_stats(snmp_integer::snmp_integer_type::si_counter64, &is->iscsiSsnRxDataOctets));
29+
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.11.54", new snmp_data_type_stats_uint32_t(&ios->io_wait));
30+
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.13.15.1.1.2", "iESP" );
31+
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.100.1", snmp_integer::snmp_integer_type::si_integer, 1);
2232
#if defined(ARDUINO)
2333
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.100.2", version_str);
2434
#endif
2535
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.100.3", __DATE__);
26-
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.100.1", snmp_integer::snmp_integer_type::si_integer, 1);
2736

2837
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.13.15.1.1.3", new snmp_data_type_stats(snmp_integer::snmp_integer_type::si_counter64, &ios->bytes_read ));
2938
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.13.15.1.1.4", new snmp_data_type_stats(snmp_integer::snmp_integer_type::si_counter64, &ios->bytes_written));
3039
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.13.15.1.1.5", new snmp_data_type_stats(snmp_integer::snmp_integer_type::si_counter64, &ios->n_reads ));
3140
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.13.15.1.1.6", new snmp_data_type_stats(snmp_integer::snmp_integer_type::si_counter64, &ios->n_writes ));
32-
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.11.54", new snmp_data_type_stats_uint32_t(&ios->io_wait));
33-
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.1.1.1.10", new snmp_data_type_stats_uint32_t(&is->iscsiInstSsnFailures));
34-
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.10.2.1.1", new snmp_data_type_stats_uint32_t(&is->iscsiSsnCmdPDUs));
35-
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.6.2.1.1", new snmp_data_type_stats_uint32_t(&is->iscsiTgtLoginAccepts));
36-
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.6.3.1.1", new snmp_data_type_stats_uint32_t(&is->iscsiTgtLogoutNormals));
37-
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.1.2.1.1", new snmp_data_type_stats_uint32_t(&is->iscsiInstSsnDigestErrors));
38-
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.10.2.1.3", new snmp_data_type_stats(snmp_integer::snmp_integer_type::si_counter64, &is->iscsiSsnTxDataOctets));
39-
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.10.2.1.4", new snmp_data_type_stats(snmp_integer::snmp_integer_type::si_counter64, &is->iscsiSsnRxDataOctets));
40-
(*snmp_data_)->register_oid("1.3.6.1.2.1.142.1.1.2.1.3", new snmp_data_type_stats_uint32_t(&is->iscsiInstSsnFormatErrors));
41+
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.4.11.0", new snmp_data_type_stats_int(ram_free_kb));
4142
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.9.1.9.1", new snmp_data_type_stats_int_callback(get_percentage_diskspace, gpd_context));
4243
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.11.9.0", new snmp_data_type_stats_int(cpu_usage));
43-
(*snmp_data_)->register_oid("1.3.6.1.4.1.2021.4.11.0", new snmp_data_type_stats_int(ram_free_kb));
4444

4545
*snmp_ = new snmp(*snmp_data_, stop, port);
4646
}

snmp/snmp.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ uint64_t snmp::get_INTEGER(const uint8_t *p, const size_t length)
7272
uint64_t v = 0;
7373

7474
if (length > 8)
75-
DOLOG(logging::ll_error, "SNMP::get_INTEGER", "-", "truncated (%zu bytes)\n", length);
75+
DOLOG(logging::ll_error, "SNMP::get_INTEGER", "-", "truncated (%zu bytes)", length);
7676

7777
for(size_t i=0; i<length; i++) {
7878
v <<= 8;
@@ -85,7 +85,7 @@ uint64_t snmp::get_INTEGER(const uint8_t *p, const size_t length)
8585
bool snmp::get_type_length(const uint8_t *p, const size_t len, uint8_t *const type, uint8_t *const length)
8686
{
8787
if (len < 2) {
88-
DOLOG(logging::ll_error, "snmp::get_type_length", "-", "length < 2\n");
88+
DOLOG(logging::ll_error, "snmp::get_type_length", "-", "length < 2");
8989
return false;
9090
}
9191

@@ -121,7 +121,7 @@ bool snmp::get_OID(const uint8_t *p, const size_t length, std::string *const oid
121121
}
122122

123123
if (v) {
124-
DOLOG(logging::ll_error, "snmp::get_OID", "-", "object identifier did not properly terminate\n");
124+
DOLOG(logging::ll_error, "snmp::get_OID", "-", "object identifier did not properly terminate");
125125
return false;
126126
}
127127

@@ -137,7 +137,7 @@ bool snmp::process_PDU(const uint8_t *p, const size_t len, oid_req_t *const oids
137137
return false;
138138

139139
if (pdu_type != 0x02) { // expecting an integer here)
140-
DOLOG(logging::ll_error, "SNMP::process_PDU", "-", "ID-type is not integer\n");
140+
DOLOG(logging::ll_error, "SNMP::process_PDU", "-", "ID-type is not integer");
141141
return false;
142142
}
143143

@@ -151,7 +151,7 @@ bool snmp::process_PDU(const uint8_t *p, const size_t len, oid_req_t *const oids
151151
return false;
152152

153153
if (pdu_type != 0x02) { // expecting an integer here)
154-
DOLOG(logging::ll_error, "SNMP::process_PDU", "-", "error-type is not integer\n");
154+
DOLOG(logging::ll_error, "SNMP::process_PDU", "-", "error-type is not integer");
155155
return false;
156156
}
157157

@@ -166,7 +166,7 @@ bool snmp::process_PDU(const uint8_t *p, const size_t len, oid_req_t *const oids
166166
return false;
167167

168168
if (pdu_type != 0x02) { // expecting an integer here)
169-
DOLOG(logging::ll_error, "SNMP::process_PDU", "-", "error-index is not integer\n");
169+
DOLOG(logging::ll_error, "SNMP::process_PDU", "-", "error-index is not integer");
170170
return false;
171171
}
172172

@@ -179,7 +179,7 @@ bool snmp::process_PDU(const uint8_t *p, const size_t len, oid_req_t *const oids
179179
// varbind list sequence
180180
uint8_t type_vb_list = *p++;
181181
if (type_vb_list != 0x30) {
182-
DOLOG(logging::ll_error, "SNMP::process_PDU", "-", "expecting varbind list sequence, got %02x\n", type_vb_list);
182+
DOLOG(logging::ll_error, "SNMP::process_PDU", "-", "expecting varbind list sequence, got %02x", type_vb_list);
183183
return false;
184184
}
185185
uint8_t len_vb_list = *p++;
@@ -191,7 +191,7 @@ bool snmp::process_PDU(const uint8_t *p, const size_t len, oid_req_t *const oids
191191
uint8_t seq_length = *pnt++;
192192

193193
if (&pnt[seq_length] > &p[len_vb_list]) {
194-
DOLOG(logging::ll_error, "SNMP::process_PDU", "-", "length field out of bounds (PDU)\n");
194+
DOLOG(logging::ll_error, "SNMP::process_PDU", "-", "length field out of bounds (PDU)");
195195
return false;
196196
}
197197

@@ -200,7 +200,7 @@ bool snmp::process_PDU(const uint8_t *p, const size_t len, oid_req_t *const oids
200200
pnt += seq_length;
201201
}
202202
else {
203-
DOLOG(logging::ll_error, "SNMP::process_PDU", "-", "unexpected/invalid type %02x\n", seq_type);
203+
DOLOG(logging::ll_error, "SNMP::process_PDU", "-", "unexpected/invalid type %02x", seq_type);
204204
return false;
205205
}
206206
}
@@ -211,7 +211,7 @@ bool snmp::process_PDU(const uint8_t *p, const size_t len, oid_req_t *const oids
211211
bool snmp::process_BER(const uint8_t *p, const size_t len, oid_req_t *const oids_req, const bool is_getnext, const int is_top)
212212
{
213213
if (len < 2) {
214-
DOLOG(logging::ll_error, "SNMP::process_BER", "-", "BER too small\n");
214+
DOLOG(logging::ll_error, "SNMP::process_BER", "-", "BER too small");
215215
return false;
216216
}
217217

@@ -224,7 +224,7 @@ bool snmp::process_BER(const uint8_t *p, const size_t len, oid_req_t *const oids
224224
uint8_t length = *pnt++;
225225

226226
if (&pnt[length] > &p[len]) {
227-
DOLOG(logging::ll_error, "SNMP::process_BER", "-", "length field out of bounds (BER)\n");
227+
DOLOG(logging::ll_error, "SNMP::process_BER", "-", "length field out of bounds (BER)");
228228
return false;
229229
}
230230

@@ -293,7 +293,7 @@ bool snmp::process_BER(const uint8_t *p, const size_t len, oid_req_t *const oids
293293
pnt += length;
294294
}
295295
else {
296-
DOLOG(logging::ll_error, "SNMP::process_BER", "-", "invalid type %02x\n", type);
296+
DOLOG(logging::ll_error, "SNMP::process_BER", "-", "invalid type %02x", type);
297297
return false;
298298
}
299299
}
@@ -332,7 +332,7 @@ void snmp::gen_reply(oid_req_t & oids_req, uint8_t **const packet_out, size_t *c
332332

333333
varbind->add(new snmp_oid(e));
334334

335-
DOLOG(logging::ll_error, "SNMP:process_BER", "-", "requested: %s\n", e.c_str());
335+
DOLOG(logging::ll_debug, "SNMP:process_BER", "-", "requested: %s", e.c_str());
336336

337337
std::optional<snmp_elem *> rc = sd->find_by_oid(e);
338338

@@ -351,7 +351,7 @@ void snmp::gen_reply(oid_req_t & oids_req, uint8_t **const packet_out, size_t *c
351351
varbind->add(new snmp_null());
352352
}
353353
else {
354-
DOLOG(logging::ll_error, "SNMP::process_BER", "-", "requested %s not found, returning null\n", e.c_str());
354+
DOLOG(logging::ll_info, "SNMP::process_BER", "-", "requested %s not found, returning null", e.c_str());
355355

356356
// FIXME snmp_null?
357357
varbind->add(new snmp_null());

snmp/snmp_data.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ snmp_elem * snmp_data_type_static::get_data()
7878
if (is_string)
7979
return new snmp_octet_string(reinterpret_cast<const uint8_t *>(data.c_str()), data.size());
8080

81-
return new snmp_integer(snmp_integer::si_integer, data_int);
81+
return new snmp_integer(type, data_int);
8282
}
8383

8484
snmp_data_type_stats::snmp_data_type_stats(const snmp_integer::snmp_integer_type type, uint64_t *const counter) :

0 commit comments

Comments
 (0)