layer23: update to new GSMTAP API in libosmocore >= 0.3.1
This commit is contained in:
parent
8226b8eae9
commit
308f9e506e
|
@ -47,6 +47,8 @@
|
|||
#include <osmocom/bb/common/lapdm.h>
|
||||
#include <osmocom/bb/common/logging.h>
|
||||
|
||||
extern struct gsmtap_inst *gsmtap_inst;
|
||||
|
||||
static struct msgb *osmo_l1_alloc(uint8_t msg_type)
|
||||
{
|
||||
struct l1ctl_hdr *l1h;
|
||||
|
@ -214,9 +216,9 @@ printf("Dropping frame with %u bit errors\n", dl->num_biterr);
|
|||
|
||||
/* send CCCH data via GSMTAP */
|
||||
gsmtap_chan_type = chantype_rsl2gsmtap(chan_type, dl->link_id);
|
||||
gsmtap_sendmsg(ntohs(dl->band_arfcn), chan_ts, gsmtap_chan_type, chan_ss,
|
||||
tm.fn, dl->rx_level-110, dl->snr, ccch->data,
|
||||
sizeof(ccch->data));
|
||||
gsmtap_send(gsmtap_inst, ntohs(dl->band_arfcn), chan_ts,
|
||||
gsmtap_chan_type, chan_ss, tm.fn, dl->rx_level-110,
|
||||
dl->snr, ccch->data, sizeof(ccch->data));
|
||||
|
||||
/* determine LAPDm entity based on SACCH or not */
|
||||
if (dl->link_id & 0x40)
|
||||
|
@ -280,8 +282,8 @@ int l1ctl_tx_data_req(struct osmocom_ms *ms, struct msgb *msg,
|
|||
/* send copy via GSMTAP */
|
||||
rsl_dec_chan_nr(chan_nr, &chan_type, &chan_ss, &chan_ts);
|
||||
gsmtap_chan_type = chantype_rsl2gsmtap(chan_type, link_id);
|
||||
gsmtap_sendmsg(0|0x4000, chan_ts, gsmtap_chan_type, chan_ss,
|
||||
0, 127, 255, msg->l2h, msgb_l2len(msg));
|
||||
gsmtap_send(gsmtap_inst, 0|0x4000, chan_ts, gsmtap_chan_type,
|
||||
chan_ss, 0, 127, 255, msg->l2h, msgb_l2len(msg));
|
||||
|
||||
/* prepend uplink info header */
|
||||
l1i_ul = (struct l1ctl_info_ul *) msgb_push(msg, sizeof(*l1i_ul));
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
#include <osmocom/core/select.h>
|
||||
#include <osmocom/core/linuxlist.h>
|
||||
#include <osmocom/core/gsmtap_util.h>
|
||||
#include <osmocom/core/gsmtap.h>
|
||||
#include <osmocom/core/utils.h>
|
||||
|
||||
#include <arpa/inet.h>
|
||||
|
@ -50,15 +51,18 @@
|
|||
struct log_target *stderr_target;
|
||||
|
||||
void *l23_ctx = NULL;
|
||||
|
||||
static char *layer2_socket_path = "/tmp/osmocom_l2";
|
||||
static char *sap_socket_path = "/tmp/osmocom_sap";
|
||||
struct llist_head ms_list;
|
||||
static struct osmocom_ms *ms = NULL;
|
||||
static uint32_t gsmtap_ip = 0;
|
||||
static char *gsmtap_ip = NULL;
|
||||
|
||||
unsigned short vty_port = 4247;
|
||||
int (*l23_app_work) (struct osmocom_ms *ms) = NULL;
|
||||
int (*l23_app_exit) (struct osmocom_ms *ms) = NULL;
|
||||
int quit = 0;
|
||||
struct gsmtap_inst *gsmtap_inst;
|
||||
|
||||
const char *openbsc_copyright =
|
||||
"%s"
|
||||
|
@ -139,7 +143,6 @@ static void build_config(char **opt, struct option **option)
|
|||
|
||||
static void handle_options(int argc, char **argv)
|
||||
{
|
||||
struct sockaddr_in gsmtap;
|
||||
struct l23_app_info *app = l23_app_info();
|
||||
struct option *long_options;
|
||||
char *opt;
|
||||
|
@ -170,11 +173,7 @@ static void handle_options(int argc, char **argv)
|
|||
ms->test_arfcn = atoi(optarg);
|
||||
break;
|
||||
case 'i':
|
||||
if (!inet_aton(optarg, &gsmtap.sin_addr)) {
|
||||
perror("inet_aton");
|
||||
exit(2);
|
||||
}
|
||||
gsmtap_ip = ntohl(gsmtap.sin_addr.s_addr);
|
||||
gsmtap_ip = optarg;
|
||||
break;
|
||||
case 'v':
|
||||
vty_port = atoi(optarg);
|
||||
|
@ -263,11 +262,12 @@ int main(int argc, char **argv)
|
|||
exit(1);
|
||||
|
||||
if (gsmtap_ip) {
|
||||
rc = gsmtap_init(gsmtap_ip);
|
||||
if (rc < 0) {
|
||||
gsmtap_inst = gsmtap_source_init(gsmtap_ip, GSMTAP_UDP_PORT, 1);
|
||||
if (!gsmtap_inst) {
|
||||
fprintf(stderr, "Failed during gsmtap_init()\n");
|
||||
exit(1);
|
||||
}
|
||||
gsmtap_source_add_sink(gsmtap_inst);
|
||||
}
|
||||
|
||||
signal(SIGINT, sighandler);
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#include <osmocom/core/talloc.h>
|
||||
#include <osmocom/core/linuxlist.h>
|
||||
#include <osmocom/core/gsmtap_util.h>
|
||||
#include <osmocom/core/gsmtap.h>
|
||||
#include <osmocom/core/signal.h>
|
||||
|
||||
#include <arpa/inet.h>
|
||||
|
@ -48,7 +49,8 @@ struct log_target *stderr_target;
|
|||
|
||||
void *l23_ctx = NULL;
|
||||
struct llist_head ms_list;
|
||||
static uint32_t gsmtap_ip = 0;
|
||||
static char *gsmtap_ip = 0;
|
||||
struct gsmtap_inst *gsmtap_inst = NULL;
|
||||
unsigned short vty_port = 4247;
|
||||
int debug_set = 0;
|
||||
char *config_dir = NULL;
|
||||
|
@ -85,7 +87,6 @@ static void print_help()
|
|||
|
||||
static void handle_options(int argc, char **argv)
|
||||
{
|
||||
struct sockaddr_in gsmtap;
|
||||
while (1) {
|
||||
int option_index = 0, c;
|
||||
static struct option long_options[] = {
|
||||
|
@ -108,11 +109,7 @@ static void handle_options(int argc, char **argv)
|
|||
exit(0);
|
||||
break;
|
||||
case 'i':
|
||||
if (!inet_aton(optarg, &gsmtap.sin_addr)) {
|
||||
perror("inet_aton");
|
||||
exit(2);
|
||||
}
|
||||
gsmtap_ip = ntohl(gsmtap.sin_addr.s_addr);
|
||||
gsmtap_ip = optarg;
|
||||
break;
|
||||
case 'v':
|
||||
vty_port = atoi(optarg);
|
||||
|
@ -171,11 +168,12 @@ int main(int argc, char **argv)
|
|||
log_set_log_level(stderr_target, LOGL_INFO);
|
||||
|
||||
if (gsmtap_ip) {
|
||||
rc = gsmtap_init(gsmtap_ip);
|
||||
if (rc < 0) {
|
||||
gsmtap_inst = gsmtap_source_init(gsmtap_ip, GSMTAP_UDP_PORT, 1);
|
||||
if (!gsmtap_inst) {
|
||||
fprintf(stderr, "Failed during gsmtap_init()\n");
|
||||
exit(1);
|
||||
}
|
||||
gsmtap_source_add_sink(gsmtap_inst);
|
||||
}
|
||||
|
||||
home = getenv("HOME");
|
||||
|
|
Loading…
Reference in New Issue