diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-04-03 19:46:20 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-04-10 11:48:34 +0200 |
commit | cd13b68e67159bd8beb47b660fe45b4613a0eb76 (patch) | |
tree | 6c65ddb37faf16ae600956e69492dc5a459ab902 /src | |
parent | dd59a11667645e21ea1c0b563dda52324adc6249 (diff) |
sua.c: Replace sua_msgb_alloc() with new sccp_msgb_alloc()
Change-Id: I7067a85dcc5dda66f4b17b0fe08da8cb3efe79ef
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/sccp_internal.h | 5 | ||||
-rw-r--r-- | src/sua.c | 32 |
3 files changed, 24 insertions, 15 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index f7f4ccc..ec3fe99 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,7 @@ AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -I$(top_builddir) AM_CFLAGS=-Wall $(LIBOSMOCORE_CFLAGS) $(LIBOSMONETIF_CFLAGS) -noinst_HEADERS = xua_asp_fsm.h xua_as_fsm.h xua_internal.h +noinst_HEADERS = sccp_internal.h xua_asp_fsm.h xua_as_fsm.h xua_internal.h # Legacy static libs diff --git a/src/sccp_internal.h b/src/sccp_internal.h new file mode 100644 index 0000000..7287a82 --- /dev/null +++ b/src/sccp_internal.h @@ -0,0 +1,5 @@ +#pragma once + +#include <osmocom/core/msgb.h> + +struct msgb *sccp_msgb_alloc(const char *name); @@ -51,6 +51,17 @@ #define GUARD_TIMER (23 * 60 * 100) #define RESET_TIMER ( 10 * 100) +#define SCCP_MSG_SIZE 2048 +#define SCCP_MSG_HEADROOM 512 + +struct msgb *sccp_msgb_alloc(const char *name) +{ + if (!name) + name = "SCCP"; + return msgb_alloc_headroom(SCCP_MSG_SIZE+SCCP_MSG_HEADROOM, + SCCP_MSG_HEADROOM, name); +} + /*********************************************************************** * Protocol Definition (string tables, mandatory IE checking) ***********************************************************************/ @@ -432,13 +443,6 @@ static void conn_start_inact_timers(struct sua_connection *conn) conn_restart_rx_inact_timer(conn); } - -static struct msgb *sua_msgb_alloc(void) -{ - return msgb_alloc(SUA_MSGB_SIZE, "SUA Primitive"); -} - - /*********************************************************************** * Handling of messages from the User SAP ***********************************************************************/ @@ -871,7 +875,7 @@ static int sua_rx_cldt(struct osmo_sccp_link *link, struct xua_msg *xua) struct osmo_scu_prim *prim; struct osmo_scu_unitdata_param *param; struct xua_msg_part *data_ie = xua_msg_find_tag(xua, SUA_IEI_DATA); - struct msgb *upmsg = sua_msgb_alloc(); + struct msgb *upmsg = sccp_msgb_alloc(__func__); uint32_t protocol_class; /* fill primitive */ @@ -932,7 +936,7 @@ static int sua_rx_core(struct osmo_sccp_link *link, struct xua_msg *xua) conn->remote_ref = xua_msg_get_u32(xua, SUA_IEI_SRC_REF); /* fill primitive */ - upmsg = sua_msgb_alloc(); + upmsg = sccp_msgb_alloc(__func__); prim = (struct osmo_scu_prim *) msgb_put(upmsg, sizeof(*prim)); param = &prim->u.connect; osmo_prim_init(&prim->oph, SCCP_SAP_USER, @@ -992,7 +996,7 @@ static int sua_rx_coak(struct osmo_sccp_link *link, struct xua_msg *xua) conn->remote_ref = xua_msg_get_u32(xua, SUA_IEI_SRC_REF); /* fill primitive */ - upmsg = sua_msgb_alloc(); + upmsg = sccp_msgb_alloc(__func__); prim = (struct osmo_scu_prim *) msgb_put(upmsg, sizeof(*prim)); param = &prim->u.connect; osmo_prim_init(&prim->oph, SCCP_SAP_USER, @@ -1044,7 +1048,7 @@ static int sua_rx_coref(struct osmo_sccp_link *link, struct xua_msg *xua) conn_restart_rx_inact_timer(conn); /* fill primitive */ - upmsg = sua_msgb_alloc(); + upmsg = sccp_msgb_alloc(__func__); prim = (struct osmo_scu_prim *) msgb_put(upmsg, sizeof(*prim)); param = &prim->u.disconnect; osmo_prim_init(&prim->oph, SCCP_SAP_USER, @@ -1095,7 +1099,7 @@ static int sua_rx_relre(struct osmo_sccp_link *link, struct xua_msg *xua) } /* fill primitive */ - upmsg = sua_msgb_alloc(); + upmsg = sccp_msgb_alloc(__func__); prim = (struct osmo_scu_prim *) msgb_put(upmsg, sizeof(*prim)); param = &prim->u.disconnect; osmo_prim_init(&prim->oph, SCCP_SAP_USER, @@ -1144,7 +1148,7 @@ static int sua_rx_relco(struct osmo_sccp_link *link, struct xua_msg *xua) conn_restart_rx_inact_timer(conn); /* fill primitive */ - upmsg = sua_msgb_alloc(); + upmsg = sccp_msgb_alloc(__func__); prim = (struct osmo_scu_prim *) msgb_put(upmsg, sizeof(*prim)); param = &prim->u.disconnect; osmo_prim_init(&prim->oph, SCCP_SAP_USER, @@ -1196,7 +1200,7 @@ static int sua_rx_codt(struct osmo_sccp_link *link, struct xua_msg *xua) conn_restart_rx_inact_timer(conn); /* fill primitive */ - upmsg = sua_msgb_alloc(); + upmsg = sccp_msgb_alloc(__func__); prim = (struct osmo_scu_prim *) msgb_put(upmsg, sizeof(*prim)); param = &prim->u.data; osmo_prim_init(&prim->oph, SCCP_SAP_USER, |