Skip to content

Commit 6338ce0

Browse files
committed
Merge branch 'master' of github.com:kristrev/data-exporter
2 parents 921ed0f + 7e54da3 commit 6338ce0

File tree

3 files changed

+47
-31
lines changed

3 files changed

+47
-31
lines changed

Jenkinsfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import java.text.SimpleDateFormat
22
jobName = "metadata-exporter"
3-
version = "0.1.49"
3+
version = "0.1.50"
44
build_dir = "build"
55
buildPackageName = "meta-exporter"
66

metadata_writer_nne.c

Lines changed: 43 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,18 @@
3232
#include "backend_event_loop.h"
3333
#include "metadata_exporter_log.h"
3434

35-
static struct nne_value md_iface_parse_mode(struct nne_modem *modem, struct md_iface_event *mie);
36-
static struct nne_value md_iface_parse_submode(struct nne_modem *modem, struct md_iface_event *mie);
37-
static struct nne_value md_iface_parse_rssi(struct nne_modem *modem, struct md_iface_event *mie);
38-
static struct nne_value md_iface_parse_rscp(struct nne_modem *modem, struct md_iface_event *mie);
39-
static struct nne_value md_iface_parse_ecio(struct nne_modem *modem, struct md_iface_event *mie);
40-
static struct nne_value md_iface_parse_rsrp(struct nne_modem *modem, struct md_iface_event *mie);
41-
static struct nne_value md_iface_parse_rsrq(struct nne_modem *modem, struct md_iface_event *mie);
42-
static struct nne_value md_iface_parse_lac(struct nne_modem *modem, struct md_iface_event *mie);
43-
static struct nne_value md_iface_parse_cid(struct nne_modem *modem, struct md_iface_event *mie);
44-
static struct nne_value md_iface_parse_oper(struct nne_modem *modem, struct md_iface_event *mie);
45-
static struct nne_value md_iface_parse_ipaddr(struct nne_modem *modem, struct md_iface_event *mie);
46-
static struct nne_value md_iface_parse_dev_state(struct nne_modem *modem, struct md_iface_event *mie);
35+
static struct nne_value md_iface_parse_mode(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len);
36+
static struct nne_value md_iface_parse_submode(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len);
37+
static struct nne_value md_iface_parse_rssi(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len);
38+
static struct nne_value md_iface_parse_rscp(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len);
39+
static struct nne_value md_iface_parse_ecio(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len);
40+
static struct nne_value md_iface_parse_rsrp(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len);
41+
static struct nne_value md_iface_parse_rsrq(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len);
42+
static struct nne_value md_iface_parse_lac(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len);
43+
static struct nne_value md_iface_parse_cid(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len);
44+
static struct nne_value md_iface_parse_oper(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len);
45+
static struct nne_value md_iface_parse_ipaddr(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len);
46+
static struct nne_value md_iface_parse_dev_state(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len);
4747

4848
static struct nne_metadata_descr NNE_METADATA_DESCR[] = {
4949
{ NNE_IDX_MODE, "mode", 0, NNE_TYPE_UINT8, IFACE_EVENT_MODE_CHANGE, md_iface_parse_mode },
@@ -63,7 +63,7 @@ static struct nne_metadata_descr NNE_METADATA_DESCR[] = {
6363
#define NNE_METADATA_DESCR_LEN (sizeof(NNE_METADATA_DESCR) / sizeof(struct nne_metadata_descr))
6464

6565

66-
static struct nne_value md_iface_parse_mode(struct nne_modem *modem, struct md_iface_event *mie)
66+
static struct nne_value md_iface_parse_mode(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len)
6767
{
6868
struct nne_value value;
6969
value.type = NNE_TYPE_UINT8;
@@ -90,7 +90,7 @@ static struct nne_value md_iface_parse_mode(struct nne_modem *modem, struct md_i
9090
return value;
9191
}
9292

93-
static struct nne_value md_iface_parse_submode(struct nne_modem *modem, struct md_iface_event *mie)
93+
static struct nne_value md_iface_parse_submode(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len)
9494
{
9595
struct nne_value value;
9696
value.type = NNE_TYPE_NULL;
@@ -139,7 +139,7 @@ static struct nne_value md_iface_parse_submode(struct nne_modem *modem, struct m
139139
return value;
140140
}
141141

142-
static struct nne_value md_iface_parse_rssi(struct nne_modem *modem, struct md_iface_event *mie)
142+
static struct nne_value md_iface_parse_rssi(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len)
143143
{
144144
struct nne_value value;
145145
value.type = NNE_TYPE_INT8;
@@ -150,7 +150,7 @@ static struct nne_value md_iface_parse_rssi(struct nne_modem *modem, struct md_i
150150
return value;
151151
}
152152

153-
static struct nne_value md_iface_parse_rscp(struct nne_modem *modem, struct md_iface_event *mie)
153+
static struct nne_value md_iface_parse_rscp(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len)
154154
{
155155
struct nne_value value;
156156
uint8_t mode = modem->metadata[NNE_IDX_MODE].value.u.v_uint8;
@@ -163,7 +163,7 @@ static struct nne_value md_iface_parse_rscp(struct nne_modem *modem, struct md_i
163163
return value;
164164
}
165165

166-
static struct nne_value md_iface_parse_ecio(struct nne_modem *modem, struct md_iface_event *mie)
166+
static struct nne_value md_iface_parse_ecio(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len)
167167
{
168168
struct nne_value value;
169169
uint8_t mode = modem->metadata[NNE_IDX_MODE].value.u.v_uint8;
@@ -176,7 +176,7 @@ static struct nne_value md_iface_parse_ecio(struct nne_modem *modem, struct md_i
176176
return value;
177177
}
178178

179-
static struct nne_value md_iface_parse_rsrp(struct nne_modem *modem, struct md_iface_event *mie)
179+
static struct nne_value md_iface_parse_rsrp(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len)
180180
{
181181
struct nne_value value;
182182
uint8_t mode = modem->metadata[NNE_IDX_MODE].value.u.v_uint8;
@@ -189,7 +189,7 @@ static struct nne_value md_iface_parse_rsrp(struct nne_modem *modem, struct md_i
189189
return value;
190190
}
191191

192-
static struct nne_value md_iface_parse_rsrq(struct nne_modem *modem, struct md_iface_event *mie)
192+
static struct nne_value md_iface_parse_rsrq(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len)
193193
{
194194
struct nne_value value;
195195
uint8_t mode = modem->metadata[NNE_IDX_MODE].value.u.v_uint8;
@@ -202,7 +202,7 @@ static struct nne_value md_iface_parse_rsrq(struct nne_modem *modem, struct md_i
202202
return value;
203203
}
204204

205-
static struct nne_value md_iface_parse_lac(struct nne_modem *modem, struct md_iface_event *mie)
205+
static struct nne_value md_iface_parse_lac(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len)
206206
{
207207
int len = 16;
208208
size_t retval;
@@ -222,7 +222,7 @@ static struct nne_value md_iface_parse_lac(struct nne_modem *modem, struct md_if
222222
return value;
223223
}
224224

225-
static struct nne_value md_iface_parse_cid(struct nne_modem *modem, struct md_iface_event *mie)
225+
static struct nne_value md_iface_parse_cid(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len)
226226
{
227227
int len = 16;
228228
size_t retval;
@@ -242,26 +242,34 @@ static struct nne_value md_iface_parse_cid(struct nne_modem *modem, struct md_if
242242
return value;
243243
}
244244

245-
static struct nne_value md_iface_parse_oper(struct nne_modem *modem, struct md_iface_event *mie)
245+
static struct nne_value md_iface_parse_oper(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len)
246246
{
247247
struct nne_value value;
248248
value.type = NNE_TYPE_UINT32;
249249
value.u.v_uint32 = mie->nw_mccmnc;
250250
return value;
251251
}
252252

253-
static struct nne_value md_iface_parse_ipaddr(struct nne_modem *modem, struct md_iface_event *mie)
253+
static struct nne_value md_iface_parse_ipaddr(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len)
254254
{
255255
struct nne_value value;
256256
value.type = NNE_TYPE_STRING;
257-
if (mie->ip_addr != NULL)
257+
if (mie->ip_addr != NULL) {
258258
value.u.v_str = strdup("UP");
259-
else
259+
// We need to pass ip address to the event message in the extra field;
260+
// the problem is, though, that it must be the address as seen inside the
261+
// experiment container, so we construct the address here the same way
262+
// as nne-lxc-network-manager: 192.168.<netword_id>.<container_id + 100>
263+
// In the current implementation we have only one container with id 1.
264+
snprintf(extra, extra_len, "192.168.%d.101", modem->network_id);
265+
}
266+
else {
260267
value.u.v_str = strdup("DOWN");
268+
}
261269
return value;
262270
}
263271

264-
static struct nne_value md_iface_parse_dev_state(struct nne_modem *modem, struct md_iface_event *mie)
272+
static struct nne_value md_iface_parse_dev_state(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len)
265273
{
266274
struct nne_value value;
267275
value.type = NNE_TYPE_UINT8;
@@ -506,7 +514,10 @@ static void md_nne_process_iface_event(struct md_writer_nne *mwn,
506514
enum nne_message_source source)
507515
{
508516
int i;
509-
struct nne_value value = descr->parse_cb(modem, mie);
517+
char extra[NNE_EXTRA_FIELD_MAX_LEN];
518+
519+
memset(extra, 0, NNE_EXTRA_FIELD_MAX_LEN);
520+
struct nne_value value = descr->parse_cb(modem, mie, extra, NNE_EXTRA_FIELD_MAX_LEN);
510521

511522
if (nne_value_compare(modem->metadata[descr->idx].value, value) != 0) {
512523

@@ -526,7 +537,7 @@ static void md_nne_process_iface_event(struct md_writer_nne *mwn,
526537
msg.network_id = modem->network_id;
527538
msg.key = descr->key;
528539
msg.value = value;
529-
msg.extra = NULL;
540+
msg.extra = strlen(extra) > 0 ? extra : NULL;
530541
msg.source = source;
531542
msg.delta = 0;
532543

@@ -659,6 +670,7 @@ static uint32_t md_find_network_id(uint32_t imsi_mccmnc, const char *iccid)
659670
}
660671
break;
661672
case 26001:
673+
case 26006:
662674
network_id = 9;
663675
break;
664676
}
@@ -686,6 +698,7 @@ static void md_nne_handle_iface_event(struct md_writer_nne *mwn,
686698
"ip_addr=%s, "
687699
"ifname=%s, "
688700
"iccid=%s, "
701+
"imsi=%s, "
689702
"imsi_mccmnc=%d, "
690703
"nw_mccmnc=%d, "
691704
"cid=%d, "
@@ -702,6 +715,7 @@ static void md_nne_handle_iface_event(struct md_writer_nne *mwn,
702715
mie->ip_addr,
703716
mie->ifname,
704717
mie->iccid,
718+
mie->imsi,
705719
mie->imsi_mccmnc,
706720
mie->nw_mccmnc,
707721
mie->cid,
@@ -757,7 +771,7 @@ static void md_nne_handle_iface_event(struct md_writer_nne *mwn,
757771
msg.network_id = network_id;
758772
msg.key = "usbmodem";
759773
msg.value = nne_value_init_str("UP");
760-
msg.extra = NULL;
774+
msg.extra = mie->imsi;
761775
msg.source = NNE_MESSAGE_SOURCE_REPORT;
762776
msg.delta = 0;
763777

metadata_writer_nne.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,14 +109,16 @@ struct nne_modem
109109
struct nne_metadata metadata[NNE_IDX_MAX + 1];
110110
};
111111

112+
#define NNE_EXTRA_FIELD_MAX_LEN (500)
113+
112114
struct nne_metadata_descr
113115
{
114116
enum nne_metadata_idx idx;
115117
const char *key;
116118
int mode_dependent;
117119
enum nne_type type;
118120
enum iface_event event; // iface event that updates this metadata
119-
struct nne_value (*parse_cb)(struct nne_modem *modem, struct md_iface_event *mie);
121+
struct nne_value (*parse_cb)(struct nne_modem *modem, struct md_iface_event *mie, char *extra, size_t extra_len);
120122
};
121123

122124
struct nne_radio_descr

0 commit comments

Comments
 (0)