aboutsummaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/oml.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/common/oml.c b/src/common/oml.c
index 6cb8e56e..3f7f4729 100644
--- a/src/common/oml.c
+++ b/src/common/oml.c
@@ -160,6 +160,29 @@ struct msgb *oml_msgb_alloc(void)
return msgb_alloc_headroom(1024, 128, "OML");
}
+int oml_add_manufacturer_id_label(struct msgb *msg,
+ enum oml_message_type vendor_type)
+{
+ uint8_t *manuf;
+
+ switch (vendor_type) {
+ case OML_MSG_TYPE_IPA:
+ manuf = msgb_push(msg, 1 + sizeof(ipaccess_magic));
+ manuf[0] = sizeof(ipaccess_magic);
+ memcpy(manuf+1, ipaccess_magic, sizeof(ipaccess_magic));
+ break;
+ case OML_MSG_TYPE_OSMO:
+ manuf = msgb_push(msg, 1 + sizeof(osmocom_magic));
+ manuf[0] = sizeof(osmocom_magic);
+ memcpy(manuf+1, osmocom_magic, sizeof(osmocom_magic));
+ break;
+ default:
+ return -1;
+ }
+
+ return 0;
+}
+
int oml_check_manuf(struct abis_om_hdr *hdr, size_t msg_size)
{
if (msg_size < 1) {