aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-04-05 17:10:11 +0200
committerHarald Welte <laforge@gnumonks.org>2017-04-09 18:50:47 +0200
commite3c228430cebbe21d93a03c25c4ac00ebde9226f (patch)
tree773cbb9db82f4d5446d4adb61ae4fff664099be1
parent7d651ab2854974c146725c391281d3d98fbba618 (diff)
xua_msg: Add xua_from_nested() helper function for nested IEs
-rw-r--r--include/osmocom/sigtran/xua_msg.h2
-rw-r--r--src/xua_msg.c5
2 files changed, 7 insertions, 0 deletions
diff --git a/include/osmocom/sigtran/xua_msg.h b/include/osmocom/sigtran/xua_msg.h
index e0e1bcf..423adbc 100644
--- a/include/osmocom/sigtran/xua_msg.h
+++ b/include/osmocom/sigtran/xua_msg.h
@@ -82,6 +82,8 @@ int xua_msg_copy_part(struct xua_msg *xua_out, uint16_t tag_out,
struct xua_msg *xua_from_msg(const int version, uint16_t len, uint8_t *data);
struct msgb *xua_to_msg(const int version, struct xua_msg *msg);
+struct xua_msg *xua_from_nested(struct xua_msg_part *outer);
+
int msgb_t16l16vp_put(struct msgb *msg, uint16_t tag, uint16_t len, const uint8_t *data);
int msgb_t16l16vp_put_u32(struct msgb *msg, uint16_t tag, uint32_t val);
int xua_msg_add_u32(struct xua_msg *xua, uint16_t iei, uint32_t val);
diff --git a/src/xua_msg.c b/src/xua_msg.c
index cb487c8..a5b7560 100644
--- a/src/xua_msg.c
+++ b/src/xua_msg.c
@@ -163,6 +163,11 @@ fail:
return NULL;
}
+struct xua_msg *xua_from_nested(struct xua_msg_part *outer)
+{
+ return xua_from_msg(0, outer->len, outer->dat);
+}
+
struct msgb *xua_to_msg(const int version, struct xua_msg *xua)
{
struct xua_msg_part *part;