pespin has uploaded this change for review.
llc: Introduce function to log XID fields and use upon rx
Change-Id: I8c6b07305c0bcecb4e1681967884a3e62c813592
---
M include/osmocom/gprs/llc/llc_private.h
M src/llc/llc.c
M src/llc/llc_xid.c
3 files changed, 43 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-gprs refs/changes/47/33947/1
diff --git a/include/osmocom/gprs/llc/llc_private.h b/include/osmocom/gprs/llc/llc_private.h
index b2b9047..e5c197e 100644
--- a/include/osmocom/gprs/llc/llc_private.h
+++ b/include/osmocom/gprs/llc/llc_private.h
@@ -345,6 +345,8 @@
struct gprs_llc_xid_field *gprs_llc_xid_deepcopy(void *ctx,
const struct gprs_llc_xid_field *src_xid,
size_t src_xid_len);
+void gprs_llc_dump_xid_fields(const struct gprs_llc_xid_field *xid_fields,
+ size_t xid_fields_len, unsigned int logl);
/* llc_pdu.c: */
int gprs_llc_pdu_decode(struct gprs_llc_pdu_decoded *pdu,
diff --git a/src/llc/llc.c b/src/llc/llc.c
index 93a11ec..9e16d23 100644
--- a/src/llc/llc.c
+++ b/src/llc/llc.c
@@ -569,6 +569,8 @@
* when a MS submits values which defer from
* the default! */
+ gprs_llc_dump_xid_fields(xid_fields, xid_fields_len, LOGL_DEBUG);
+
/* Store last received XID-Ind from peer: */
lle->rx_xid = gprs_llc_xid_deepcopy(lle->llme, xid_fields, xid_fields_len);
OSMO_ASSERT(lle->rx_xid);
diff --git a/src/llc/llc_xid.c b/src/llc/llc_xid.c
index 9280416..c46083d 100644
--- a/src/llc/llc_xid.c
+++ b/src/llc/llc_xid.c
@@ -320,3 +320,33 @@
}
return dst_xid;
}
+
+/* Dump a list with XID fields (Debug) */
+void gprs_llc_dump_xid_fields(const struct gprs_llc_xid_field *xid_fields,
+ size_t xid_fields_len, unsigned int logl)
+{
+ unsigned int i;
+
+ OSMO_ASSERT(xid_fields);
+
+ for (i = 0; i < xid_fields_len; i++) {
+ const struct gprs_llc_xid_field *xid_field = &xid_fields[i];
+ const uint8_t len = gprs_llc_xid_field_get_len(xid_field);
+ if (len > 0) {
+ if (gprs_llc_xid_type_is_variable_len(xid_field->type)) {
+ OSMO_ASSERT(xid_field->var.val);
+ LOGLLC(logl, "XID: type %s, data_len=%d, data=%s\n",
+ gprs_llc_xid_type_name(xid_field->type),
+ xid_field->var.val_len,
+ osmo_hexdump_nospc(xid_field->var.val, xid_field->var.val_len));
+ } else {
+ LOGLLC(logl, "XID: type %s, val_len=%d, val=%u\n",
+ gprs_llc_xid_type_name(xid_field->type),
+ len, xid_field->val);
+ }
+ } else {
+ LOGLLC(logl, "XID: type %s, data_len=0\n",
+ gprs_llc_xid_type_name(xid_field->type));
+ }
+ }
+}
To view, visit change 33947. To unsubscribe, or for help writing mail filters, visit settings.