diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-02-12 11:57:20 +0100 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2016-03-03 16:19:10 +0100 |
commit | 6a2d8985bfd6d9c6e6c0f541aca0e1590a753709 (patch) | |
tree | 0d4a67c5e353ee9eef47477893b8e89fc54c3ed5 /openbsc/include | |
parent | c6794eed1dbe726b23c60e96e214ec1a1fbf6b51 (diff) |
cscn: rename msc_api
Diffstat (limited to 'openbsc/include')
-rw-r--r-- | openbsc/include/openbsc/msc_ifaces.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/msc_ifaces.h b/openbsc/include/openbsc/msc_ifaces.h new file mode 100644 index 000000000..ace6ea11d --- /dev/null +++ b/openbsc/include/openbsc/msc_ifaces.h @@ -0,0 +1,31 @@ +#pragma once + +#include <osmocom/core/msgb.h> +#include <openbsc/gsm_data.h> + +/* This callback structure allows linking specific components without having to + * include entire infrastructures of external libraries. For example, a unit + * test does not need to link against external ASN1 libraries if it is never + * going to encode actual outgoing messages. It is up to each building scope to + * plug meaningful sending/receiving callback functions, or to have mere dummy + * implementations. */ +struct msc_api { + + struct { + /* libmsc calls this to send out messages to an A-interface */ + int (*tx)(struct msgb *msg, uint8_t sapi); + } a; + + struct { + /* libmsc calls this to send out messages to an Iu-interface */ + int (*tx)(struct msgb *msg, uint8_t sapi); + } iu; +}; + +/* TODO does this belong to openbsc/gsm_04_08.h ?? */ +int msc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg, + uint16_t chosen_channel); + +/* Depending on conn->via_iface (A or IuCS), submit msg to the proper link api. */ +extern int msc_submit_dtap(struct gsm_subscriber_connection *conn, + struct msgb *msg); |