diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/osmocom/bsc/bsc_msc_data.h | 11 | ||||
-rw-r--r-- | include/osmocom/bsc/osmo_bsc_sigtran.h | 9 |
2 files changed, 20 insertions, 0 deletions
diff --git a/include/osmocom/bsc/bsc_msc_data.h b/include/osmocom/bsc/bsc_msc_data.h index 1f9872a41..2ad7c685e 100644 --- a/include/osmocom/bsc/bsc_msc_data.h +++ b/include/osmocom/bsc/bsc_msc_data.h @@ -33,6 +33,7 @@ #include "osmux.h" #include <osmocom/core/timer.h> +#include <osmocom/core/select.h> #include <osmocom/gsm/protocol/gsm_04_08.h> @@ -135,6 +136,16 @@ struct bsc_msc_data { enum osmux_usage use_osmux; /* Whether we detected the MSC supports Osmux (during BSSMAP_RESET) */ bool remote_supports_osmux; + + /* Proxy between IPA/SCCPlite encapsulated MGCP and UDP */ + struct { + /* local (BSC) IP address to be used */ + char *local_addr; + /* local (BSC) UDP port to be used to talk with MGW */ + uint16_t local_port; + /* UDP socket for proxying MGCP via SCCPlite/IPA */ + struct osmo_fd ofd; + } mgcp_ipa; }; /* diff --git a/include/osmocom/bsc/osmo_bsc_sigtran.h b/include/osmocom/bsc/osmo_bsc_sigtran.h index bd8b06398..b934d51d3 100644 --- a/include/osmocom/bsc/osmo_bsc_sigtran.h +++ b/include/osmocom/bsc/osmo_bsc_sigtran.h @@ -44,3 +44,12 @@ void osmo_bsc_sigtran_tx_reset_ack(const struct bsc_msc_data *msc); /* receive + process a CTRL command from the piggy-back on the IPA/SCCPlite link */ int bsc_sccplite_rx_ctrl(struct osmo_ss7_asp *asp, struct msgb *msg); + +/* receive + process a MGCP message from the piggy-back on the IPA/SCCPlite link */ +int bsc_sccplite_rx_mgcp(struct osmo_ss7_asp *asp, struct msgb *msg); + +/* send a message via SCCPLite to given MSC */ +int bsc_sccplite_msc_send(struct bsc_msc_data *msc, struct msgb *msg); + +/* we received some data on the UDP proxy socket from the MGW. Pass it to MSC via IPA */ +int bsc_sccplite_mgcp_proxy_cb(struct osmo_fd *ofd, unsigned int what); |