aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmo-bts/msg_utils.h
blob: f07623d504c26cab8b9a8ee1753e54e5d71df4a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
 * Routines to check the structurally integrity of messages
 */

#pragma once

#include <osmo-bts/gsm_data.h>

#include <osmocom/codec/codec.h>

#include <stdbool.h>

struct msgb;

/* Access 1st byte of msgb control buffer */
#define rtpmsg_marker_bit(x) ((x)->cb[0])

/**
 * Classification of OML message. ETSI for plain GSM 12.21
 * messages and IPA/Osmo for manufacturer messages.
 */
enum {
	OML_MSG_TYPE_ETSI,
	OML_MSG_TYPE_IPA,
	OML_MSG_TYPE_OSMO,
};

void lchan_set_marker(bool t, struct gsm_lchan *lchan);
void save_last_sid(struct gsm_lchan *lchan, const uint8_t *l1_payload,
		   size_t length, uint32_t fn, int update, uint8_t cmr,
		   int8_t cmi);
uint8_t repeat_last_sid(struct gsm_lchan *lchan, uint8_t *dst, uint32_t fn);
int msg_verify_ipa_structure(struct msgb *msg);
int msg_verify_oml_structure(struct msgb *msg);