split libgb into a separate library for outside use

This also removes the dependency to osmo_sock() inside libcommon and
replaces it with osmo_sock_* from libosmocore
This commit is contained in:
Harald Welte 2012-06-16 14:59:56 +08:00
parent 704cb8680b
commit ea34a4e3a7
28 changed files with 80 additions and 53 deletions

View File

@ -114,6 +114,8 @@ AM_CONFIG_HEADER(bscconfig.h)
AC_OUTPUT( AC_OUTPUT(
openbsc.pc openbsc.pc
include/openbsc/Makefile include/openbsc/Makefile
include/osmocom/Makefile
include/osmocom/gprs/Makefile
include/Makefile include/Makefile
src/Makefile src/Makefile
src/libtrau/Makefile src/libtrau/Makefile

View File

@ -1,3 +1,3 @@
SUBDIRS = openbsc SUBDIRS = openbsc osmocom
noinst_HEADERS = mISDNif.h compat_af_isdn.h noinst_HEADERS = mISDNif.h compat_af_isdn.h

View File

@ -7,9 +7,9 @@ noinst_HEADERS = abis_nm.h abis_rsl.h db.h gsm_04_08.h gsm_data.h \
system_information.h handover.h mgcp_internal.h \ system_information.h handover.h mgcp_internal.h \
vty.h socket.h e1_config.h trau_upqueue.h token_auth.h \ vty.h socket.h e1_config.h trau_upqueue.h token_auth.h \
handover_decision.h rrlp.h control_if.h \ handover_decision.h rrlp.h control_if.h \
crc24.h gprs_bssgp.h gprs_llc.h gprs_ns.h gprs_gmm.h \ crc24.h gprs_llc.h gprs_gmm.h \
gb_proxy.h gprs_sgsn.h gsm_04_08_gprs.h sgsn.h \ gb_proxy.h gprs_sgsn.h gsm_04_08_gprs.h sgsn.h \
gprs_ns_frgre.h auth.h osmo_msc.h bsc_msc.h bsc_nat.h \ auth.h osmo_msc.h bsc_msc.h bsc_nat.h \
osmo_bsc_rf.h osmo_bsc.h network_listen.h bsc_nat_sccp.h \ osmo_bsc_rf.h osmo_bsc.h network_listen.h bsc_nat_sccp.h \
osmo_msc_data.h osmo_bsc_grace.h sms_queue.h abis_om2000.h \ osmo_msc_data.h osmo_bsc_grace.h sms_queue.h abis_om2000.h \
bss.h gsm_data_shared.h control_cmd.h ipaccess.h mncc_int.h bss.h gsm_data_shared.h control_cmd.h ipaccess.h mncc_int.h

View File

@ -4,7 +4,7 @@
#include <osmocom/core/msgb.h> #include <osmocom/core/msgb.h>
#include <openbsc/gprs_ns.h> #include <osmocom/gprs/gprs_ns.h>
#include <osmocom/vty/command.h> #include <osmocom/vty/command.h>
struct gbproxy_config { struct gbproxy_config {

View File

@ -4,7 +4,7 @@
#include <osmocom/core/msgb.h> #include <osmocom/core/msgb.h>
#include <openbsc/gprs_ns.h> #include <osmocom/gprs/gprs_ns.h>
#include <openbsc/gprs_sgsn.h> #include <openbsc/gprs_sgsn.h>
struct sgsn_config { struct sgsn_config {

View File

@ -0,0 +1 @@
SUBDIRS = gprs

View File

@ -0,0 +1,3 @@
libgb_HEADERS = gprs_bssgp.h gprs_ns.h gprs_ns_frgre.h
libgbdir = $(includedir)/osmocom/gprs

View File

@ -143,6 +143,8 @@ enum gprs_bssgp_cause {
/* Our implementation */ /* Our implementation */
#include <osmocom/gsm/gsm48.h>
/* gprs_bssgp_util.c */ /* gprs_bssgp_util.c */
extern struct gprs_ns_inst *bssgp_nsi; extern struct gprs_ns_inst *bssgp_nsi;
struct msgb *bssgp_msgb_alloc(void); struct msgb *bssgp_msgb_alloc(void);

View File

@ -32,10 +32,11 @@
#include <osmocom/core/talloc.h> #include <osmocom/core/talloc.h>
#include <osmocom/core/select.h> #include <osmocom/core/select.h>
#include <osmocom/gprs/gprs_ns.h>
#include <osmocom/gprs/gprs_bssgp.h>
#include <openbsc/signal.h> #include <openbsc/signal.h>
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/gprs_ns.h>
#include <openbsc/gprs_bssgp.h>
#include <openbsc/gb_proxy.h> #include <openbsc/gb_proxy.h>
struct gbprox_peer { struct gbprox_peer {

View File

@ -37,10 +37,11 @@
#include <osmocom/core/select.h> #include <osmocom/core/select.h>
#include <osmocom/core/rate_ctr.h> #include <osmocom/core/rate_ctr.h>
#include <osmocom/gprs/gprs_ns.h>
#include <osmocom/gprs/gprs_bssgp.h>
#include <openbsc/signal.h> #include <openbsc/signal.h>
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/gprs_ns.h>
#include <openbsc/gprs_bssgp.h>
#include <openbsc/vty.h> #include <openbsc/vty.h>
#include <openbsc/gb_proxy.h> #include <openbsc/gb_proxy.h>

View File

@ -24,9 +24,10 @@
#include <osmocom/core/talloc.h> #include <osmocom/core/talloc.h>
#include <osmocom/gprs/gprs_ns.h>
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/gb_proxy.h> #include <openbsc/gb_proxy.h>
#include <openbsc/gprs_ns.h>
#include <openbsc/vty.h> #include <openbsc/vty.h>
#include <osmocom/vty/command.h> #include <osmocom/vty/command.h>

View File

@ -38,6 +38,8 @@
#include <osmocom/core/talloc.h> #include <osmocom/core/talloc.h>
#include <osmocom/core/rate_ctr.h> #include <osmocom/core/rate_ctr.h>
#include <osmocom/gprs/gprs_bssgp.h>
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/gsm_data.h> #include <openbsc/gsm_data.h>
#include <openbsc/gsm_subscriber.h> #include <openbsc/gsm_subscriber.h>
@ -45,7 +47,6 @@
#include <openbsc/gsm_04_08_gprs.h> #include <openbsc/gsm_04_08_gprs.h>
#include <openbsc/paging.h> #include <openbsc/paging.h>
#include <openbsc/transaction.h> #include <openbsc/transaction.h>
#include <openbsc/gprs_bssgp.h>
#include <openbsc/gprs_llc.h> #include <openbsc/gprs_llc.h>
#include <openbsc/gprs_sgsn.h> #include <openbsc/gprs_sgsn.h>
#include <openbsc/gprs_gmm.h> #include <openbsc/gprs_gmm.h>

View File

@ -26,12 +26,12 @@
#include <osmocom/core/linuxlist.h> #include <osmocom/core/linuxlist.h>
#include <osmocom/core/timer.h> #include <osmocom/core/timer.h>
#include <osmocom/core/talloc.h> #include <osmocom/core/talloc.h>
#include <osmocom/gprs/gprs_bssgp.h>
#include <openbsc/gsm_data.h> #include <openbsc/gsm_data.h>
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/gprs_sgsn.h> #include <openbsc/gprs_sgsn.h>
#include <openbsc/gprs_gmm.h> #include <openbsc/gprs_gmm.h>
#include <openbsc/gprs_bssgp.h>
#include <openbsc/gprs_llc.h> #include <openbsc/gprs_llc.h>
#include <openbsc/crc24.h> #include <openbsc/crc24.h>
#include <openbsc/sgsn.h> #include <openbsc/sgsn.h>

View File

@ -25,11 +25,12 @@
#include <osmocom/core/talloc.h> #include <osmocom/core/talloc.h>
#include <osmocom/core/timer.h> #include <osmocom/core/timer.h>
#include <osmocom/core/rate_ctr.h> #include <osmocom/core/rate_ctr.h>
#include <osmocom/gprs/gprs_ns.h>
#include <osmocom/gprs/gprs_bssgp.h>
#include <openbsc/gsm_subscriber.h> #include <openbsc/gsm_subscriber.h>
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/gprs_sgsn.h> #include <openbsc/gprs_sgsn.h>
#include <openbsc/gprs_ns.h>
#include <openbsc/gprs_bssgp.h>
#include <openbsc/sgsn.h> #include <openbsc/sgsn.h>
#include <openbsc/gsm_04_08_gprs.h> #include <openbsc/gsm_04_08_gprs.h>
#include <openbsc/gprs_gmm.h> #include <openbsc/gprs_gmm.h>

View File

@ -27,10 +27,10 @@
#include <osmocom/core/linuxlist.h> #include <osmocom/core/linuxlist.h>
#include <osmocom/core/timer.h> #include <osmocom/core/timer.h>
#include <osmocom/core/talloc.h> #include <osmocom/core/talloc.h>
#include <osmocom/gprs/gprs_bssgp.h>
#include <openbsc/gsm_data.h> #include <openbsc/gsm_data.h>
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/gprs_bssgp.h>
#include <openbsc/gprs_llc.h> #include <openbsc/gprs_llc.h>
#include <openbsc/sgsn.h> #include <openbsc/sgsn.h>

View File

@ -36,13 +36,13 @@
#include <osmocom/core/talloc.h> #include <osmocom/core/talloc.h>
#include <osmocom/core/select.h> #include <osmocom/core/select.h>
#include <osmocom/core/rate_ctr.h> #include <osmocom/core/rate_ctr.h>
#include <openbsc/gsm_04_08_gprs.h> #include <osmocom/gprs/gprs_bssgp.h>
#include <openbsc/gsm_04_08_gprs.h>
#include <openbsc/signal.h> #include <openbsc/signal.h>
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/sgsn.h> #include <openbsc/sgsn.h>
#include <openbsc/gprs_llc.h> #include <openbsc/gprs_llc.h>
#include <openbsc/gprs_bssgp.h>
#include <openbsc/gprs_sgsn.h> #include <openbsc/gprs_sgsn.h>
#include <openbsc/gprs_gmm.h> #include <openbsc/gprs_gmm.h>

View File

@ -38,6 +38,9 @@
#include <osmocom/core/rate_ctr.h> #include <osmocom/core/rate_ctr.h>
#include <osmocom/core/logging.h> #include <osmocom/core/logging.h>
#include <osmocom/gprs/gprs_ns.h>
#include <osmocom/gprs/gprs_bssgp.h>
#include <osmocom/vty/telnet_interface.h> #include <osmocom/vty/telnet_interface.h>
#include <osmocom/vty/logging.h> #include <osmocom/vty/logging.h>
@ -45,8 +48,6 @@
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/vty.h> #include <openbsc/vty.h>
#include <openbsc/sgsn.h> #include <openbsc/sgsn.h>
#include <openbsc/gprs_ns.h>
#include <openbsc/gprs_bssgp.h>
#include <openbsc/gprs_llc.h> #include <openbsc/gprs_llc.h>
#include <gtp.h> #include <gtp.h>

View File

@ -28,7 +28,7 @@
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/sgsn.h> #include <openbsc/sgsn.h>
#include <openbsc/gprs_ns.h> #include <osmocom/gprs/gprs_ns.h>
#include <openbsc/gprs_sgsn.h> #include <openbsc/gprs_sgsn.h>
#include <openbsc/vty.h> #include <openbsc/vty.h>
#include <openbsc/gsm_04_08_gprs.h> #include <openbsc/gsm_04_08_gprs.h>

View File

@ -41,7 +41,7 @@
#include <openbsc/db.h> #include <openbsc/db.h>
#include <osmocom/core/talloc.h> #include <osmocom/core/talloc.h>
#include <openbsc/vty.h> #include <openbsc/vty.h>
#include <openbsc/gprs_ns.h> #include <osmocom/gprs/gprs_ns.h>
#include <openbsc/system_information.h> #include <openbsc/system_information.h>
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/paging.h> #include <openbsc/paging.h>

View File

@ -35,10 +35,10 @@
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/gsm_data.h> #include <openbsc/gsm_data.h>
#include <openbsc/gsm_04_08_gprs.h> #include <openbsc/gsm_04_08_gprs.h>
#include <openbsc/gprs_bssgp.h>
#include <openbsc/gprs_llc.h> #include <osmocom/gprs/gprs_bssgp.h>
#include <openbsc/gprs_ns.h> #include <osmocom/gprs/gprs_ns.h>
#include <openbsc/gprs_sgsn.h>
#include <openbsc/gprs_gmm.h> #include <openbsc/gprs_gmm.h>
void *bssgp_tall_ctx = NULL; void *bssgp_tall_ctx = NULL;

View File

@ -28,11 +28,11 @@
#include <osmocom/core/rate_ctr.h> #include <osmocom/core/rate_ctr.h>
#include <osmocom/gsm/tlv.h> #include <osmocom/gsm/tlv.h>
#include <osmocom/core/talloc.h> #include <osmocom/core/talloc.h>
#include <osmocom/gprs/gprs_bssgp.h>
#include <osmocom/gprs/gprs_ns.h>
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/gsm_data.h> #include <openbsc/gsm_data.h>
#include <openbsc/gprs_bssgp.h>
#include <openbsc/gprs_ns.h>
uint8_t *bssgp_msgb_tlli_put(struct msgb *msg, uint32_t tlli) uint8_t *bssgp_msgb_tlli_put(struct msgb *msg, uint32_t tlli)
{ {

View File

@ -27,11 +27,11 @@
#include <osmocom/core/msgb.h> #include <osmocom/core/msgb.h>
#include <osmocom/gsm/tlv.h> #include <osmocom/gsm/tlv.h>
#include <osmocom/core/talloc.h> #include <osmocom/core/talloc.h>
#include <osmocom/gprs/gprs_bssgp.h>
#include <osmocom/gprs/gprs_ns.h>
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/gsm_data.h> #include <openbsc/gsm_data.h>
#include <openbsc/gprs_bssgp.h>
#include <openbsc/gprs_ns.h>
struct gprs_ns_inst *bssgp_nsi; struct gprs_ns_inst *bssgp_nsi;

View File

@ -26,17 +26,13 @@
#include <arpa/inet.h> #include <arpa/inet.h>
#include <openbsc/gsm_data.h>
#include <osmocom/core/msgb.h> #include <osmocom/core/msgb.h>
#include <osmocom/gsm/tlv.h> #include <osmocom/gsm/tlv.h>
#include <osmocom/core/talloc.h> #include <osmocom/core/talloc.h>
#include <osmocom/core/select.h> #include <osmocom/core/select.h>
#include <osmocom/core/rate_ctr.h> #include <osmocom/core/rate_ctr.h>
#include <openbsc/debug.h> #include <osmocom/gprs/gprs_ns.h>
#include <openbsc/signal.h> #include <osmocom/gprs/gprs_bssgp.h>
#include <openbsc/gprs_ns.h>
#include <openbsc/gprs_bssgp.h>
#include <openbsc/vty.h>
#include <osmocom/vty/vty.h> #include <osmocom/vty/vty.h>
#include <osmocom/vty/command.h> #include <osmocom/vty/command.h>
@ -44,6 +40,11 @@
#include <osmocom/vty/telnet_interface.h> #include <osmocom/vty/telnet_interface.h>
#include <osmocom/vty/misc.h> #include <osmocom/vty/misc.h>
#include <openbsc/vty.h>
#include <openbsc/gsm_data.h>
#include <openbsc/debug.h>
/* FIXME: this should go to some common file as it is copied /* FIXME: this should go to some common file as it is copied
* in vty_interface.c of the BSC */ * in vty_interface.c of the BSC */
static const struct value_string gprs_bssgp_timer_strs[] = { static const struct value_string gprs_bssgp_timer_strs[] = {

View File

@ -68,18 +68,18 @@
#include <arpa/inet.h> #include <arpa/inet.h>
#include <openbsc/gsm_data.h>
#include <osmocom/core/msgb.h> #include <osmocom/core/msgb.h>
#include <osmocom/gsm/tlv.h> #include <osmocom/gsm/tlv.h>
#include <osmocom/core/talloc.h> #include <osmocom/core/talloc.h>
#include <osmocom/core/select.h> #include <osmocom/core/select.h>
#include <osmocom/core/rate_ctr.h> #include <osmocom/core/rate_ctr.h>
#include <osmocom/core/socket.h>
#include <osmocom/gprs/gprs_ns.h>
#include <osmocom/gprs/gprs_bssgp.h>
#include <osmocom/gprs/gprs_ns_frgre.h>
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/signal.h> #include <openbsc/signal.h>
#include <openbsc/gprs_ns.h>
#include <openbsc/gprs_bssgp.h>
#include <openbsc/gprs_ns_frgre.h>
#include <openbsc/socket.h>
static const struct tlv_definition ns_att_tlvdef = { static const struct tlv_definition ns_att_tlvdef = {
.def = { .def = {
@ -1026,14 +1026,19 @@ static int nsip_fd_cb(struct osmo_fd *bfd, unsigned int what)
*/ */
int gprs_ns_nsip_listen(struct gprs_ns_inst *nsi) int gprs_ns_nsip_listen(struct gprs_ns_inst *nsi)
{ {
struct in_addr in;
int ret; int ret;
ret = make_sock(&nsi->nsip.fd, IPPROTO_UDP, nsi->nsip.local_ip, in.s_addr = htonl(nsi->nsip.local_ip);
nsi->nsip.local_port, 0, nsip_fd_cb, NULL);
nsi->nsip.fd.cb = nsip_fd_cb;
nsi->nsip.fd.data = nsi;
ret = osmo_sock_init_ofd(&nsi->nsip.fd, AF_INET, SOCK_DGRAM,
IPPROTO_UDP, inet_ntoa(in),
nsi->nsip.local_port, OSMO_SOCK_F_BIND);
if (ret < 0) if (ret < 0)
return ret; return ret;
nsi->nsip.fd.data = nsi;
return ret; return ret;
} }

View File

@ -34,10 +34,10 @@
#include <osmocom/core/select.h> #include <osmocom/core/select.h>
#include <osmocom/core/msgb.h> #include <osmocom/core/msgb.h>
#include <osmocom/core/talloc.h> #include <osmocom/core/talloc.h>
#include <osmocom/core/socket.h>
#include <osmocom/gprs/gprs_ns.h>
#include <openbsc/socket.h>
#include <openbsc/debug.h> #include <openbsc/debug.h>
#include <openbsc/gprs_ns.h>
#define GRE_PTYPE_FR 0x6559 #define GRE_PTYPE_FR 0x6559
#define GRE_PTYPE_IPv4 0x0800 #define GRE_PTYPE_IPv4 0x0800
@ -282,8 +282,11 @@ static int nsfrgre_fd_cb(struct osmo_fd *bfd, unsigned int what)
int gprs_ns_frgre_listen(struct gprs_ns_inst *nsi) int gprs_ns_frgre_listen(struct gprs_ns_inst *nsi)
{ {
struct in_addr in;
int rc; int rc;
in.s_addr = htonl(nsi->frgre.local_ip);
/* Make sure we close any existing socket before changing it */ /* Make sure we close any existing socket before changing it */
if (nsi->frgre.fd.fd) if (nsi->frgre.fd.fd)
close(nsi->frgre.fd.fd); close(nsi->frgre.fd.fd);
@ -291,8 +294,11 @@ int gprs_ns_frgre_listen(struct gprs_ns_inst *nsi)
if (!nsi->frgre.enabled) if (!nsi->frgre.enabled)
return 0; return 0;
rc = make_sock(&nsi->frgre.fd, IPPROTO_GRE, nsi->frgre.local_ip, nsi->frgre.fd.cb = nsfrgre_fd_cb;
0, 0, nsfrgre_fd_cb, NULL); nsi->frgre.fd.data = nsi;
rc = osmo_sock_init_ofd(&nsi->frgre.fd, AF_INET, SOCK_RAW,
IPPROTO_GRE, inet_ntoa(in), 0,
OSMO_SOCK_F_BIND);
if (rc < 0) { if (rc < 0) {
LOGP(DNS, LOGL_ERROR, "Error creating GRE socket (%s)\n", LOGP(DNS, LOGL_ERROR, "Error creating GRE socket (%s)\n",
strerror(errno)); strerror(errno));

View File

@ -26,17 +26,13 @@
#include <arpa/inet.h> #include <arpa/inet.h>
#include <openbsc/gsm_data.h>
#include <osmocom/core/msgb.h> #include <osmocom/core/msgb.h>
#include <osmocom/gsm/tlv.h> #include <osmocom/gsm/tlv.h>
#include <osmocom/core/talloc.h> #include <osmocom/core/talloc.h>
#include <osmocom/core/select.h> #include <osmocom/core/select.h>
#include <osmocom/core/rate_ctr.h> #include <osmocom/core/rate_ctr.h>
#include <openbsc/debug.h> #include <osmocom/gprs/gprs_ns.h>
#include <openbsc/signal.h> #include <osmocom/gprs/gprs_bssgp.h>
#include <openbsc/gprs_ns.h>
#include <openbsc/gprs_bssgp.h>
#include <openbsc/vty.h>
#include <osmocom/vty/vty.h> #include <osmocom/vty/vty.h>
#include <osmocom/vty/command.h> #include <osmocom/vty/command.h>
@ -44,6 +40,11 @@
#include <osmocom/vty/telnet_interface.h> #include <osmocom/vty/telnet_interface.h>
#include <osmocom/vty/misc.h> #include <osmocom/vty/misc.h>
#include <openbsc/gsm_data.h>
#include <openbsc/debug.h>
#include <openbsc/signal.h>
#include <openbsc/vty.h>
static struct gprs_ns_inst *vty_nsi = NULL; static struct gprs_ns_inst *vty_nsi = NULL;
/* FIXME: this should go to some common file as it is copied /* FIXME: this should go to some common file as it is copied