Change in osmo-e1d[master]: e1-prbs-test: Add support for osmo-e1d

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

laforge gerrit-no-reply at lists.osmocom.org
Tue Sep 1 07:37:47 UTC 2020


laforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-e1d/+/19929 )


Change subject: e1-prbs-test: Add support for osmo-e1d
......................................................................

e1-prbs-test: Add support for osmo-e1d

This allows e1-prbs-test to not only use DAHDI devices, but also
osmo-e1d supported devices

Change-Id: I0e88f2b056db931b0e442567efa9a8d270abb9f2
---
M contrib/e1-prbs-test/Makefile
M contrib/e1-prbs-test/main.c
2 files changed, 55 insertions(+), 12 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-e1d refs/changes/29/19929/1

diff --git a/contrib/e1-prbs-test/Makefile b/contrib/e1-prbs-test/Makefile
index 172847f..598366a 100644
--- a/contrib/e1-prbs-test/Makefile
+++ b/contrib/e1-prbs-test/Makefile
@@ -1,5 +1,5 @@
-LIBOSMO_CFLAGS:=$(shell pkg-config --cflags libosmocore)
-LIBOSMO_LIBS:=$(shell pkg-config --libs libosmocore)
+LIBOSMO_CFLAGS:=$(shell pkg-config --cflags libosmocore libosmo-e1d)
+LIBOSMO_LIBS:=$(shell pkg-config --libs libosmocore libosmo-e1d)
 
 CFLAGS=-O2 -g -Wall -Werror $(LIBOSMO_CFLAGS)
 LIBS=$(LIBOSMO_LIBS)
diff --git a/contrib/e1-prbs-test/main.c b/contrib/e1-prbs-test/main.c
index 4fe0e84..a124087 100644
--- a/contrib/e1-prbs-test/main.c
+++ b/contrib/e1-prbs-test/main.c
@@ -40,6 +40,8 @@
 #include <osmocom/core/bits.h>
 #include <osmocom/core/prbs.h>
 
+#include <osmocom/e1d/proto_clnt.h>
+
 #include "internal.h"
 
 static struct test_state g_tst;
@@ -69,12 +71,58 @@
 	return 0;
 }
 
+static void init_timeslot(struct timeslot_state *ts)
+{
+	osmo_fd_register(&ts->ofd);
+	printf("E1TS(%02u) opened\n", ts->ofd.priv_nr);
+
+	ts_init_prbs_tx(ts, g_prbs_offs_tx);
+	ts_init_prbs_rx(ts, g_prbs_offs_rx);
+
+	/* start to put something into the transmit queue, before we get read-triggered
+	 * later on */
+	process_tx(ts, 1024);
+}
+
+static int open_slots_e1d(struct test_state *tst, int intf_nr, int line_nr)
+{
+	struct osmo_e1dp_client *clnt = osmo_e1dp_client_create(NULL, E1DP_DEFAULT_SOCKET);
+	int i, rc, num_slots = 0;
+
+	if (!clnt) {
+		fprintf(stderr, "Unable to connect to osmo-e1d\n");
+		return -1;
+	}
+
+	for (i = 1; i < 32; i++) {
+		struct timeslot_state *ts;
+		rc = osmo_e1dp_client_ts_open(clnt, intf_nr, line_nr, i, E1DP_TSMODE_RAW, 1024);
+		if (rc < 0) {
+			fprintf(stderr, "Error opening %d: %d (%s)\n", i, rc, strerror(errno));
+			return -1;
+		}
+		ts = &tst->ts[tst->next_unused_ts++];
+
+		/* open the respective file descriptor */
+		osmo_fd_setup(&ts->ofd, rc, BSC_FD_READ, e1_fd_cb, ts, i);
+
+		init_timeslot(ts);
+		num_slots++;
+	}
+
+	return num_slots;
+}
+
 static int open_slots(struct test_state *tst, const char *basedir)
 {
-	DIR *dir = opendir(basedir);
+	DIR *dir;
 	struct dirent *ent;
 	int rc, num_slots = 0;
 
+	if (!strcmp(basedir, "e1d"))
+		return open_slots_e1d(tst, 0, 0);
+
+	dir = opendir(basedir);
 	if (!dir)
 		return -ENOENT;
 
@@ -99,15 +147,6 @@
 
 		/* open the respective file descriptor */
 		osmo_fd_setup(&ts->ofd, rc, BSC_FD_READ, e1_fd_cb, ts, atoi(ent->d_name));
-		osmo_fd_register(&ts->ofd);
-		printf("E1TS(%02u) opened\n", ts->ofd.priv_nr);
-
-		ts_init_prbs_tx(ts, g_prbs_offs_tx);
-		ts_init_prbs_rx(ts, g_prbs_offs_rx);
-
-		/* start to put something into the transmit queue, before we get read-triggered
-		 * later on */
-		process_tx(ts, 1024);
 
 		cfg_dahdi_buffer(ts->ofd.fd);
 		struct dahdi_bufferinfo bi;
@@ -115,6 +154,8 @@
 		OSMO_ASSERT(rc == 0);
 		printf("tx_pol=%d, rx_pol=%d, num=%d, size=%d, nread=%d, nwrite=%d\n",
 			bi.txbufpolicy, bi.rxbufpolicy, bi.numbufs, bi.bufsize, bi.readbufs, bi.writebufs); 
+
+		init_timeslot(ts);
 		num_slots++;
 	}
 	closedir(dir);
@@ -198,6 +239,8 @@
 
 	set_realtime(10);
 	rc = open_slots(&g_tst, basedir);
+	if (rc < 0)
+		exit(1);
 	printf("==> opened a total of %d slots\n", rc);
 
 	signal(SIGINT, sig_handler);

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-e1d/+/19929
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-e1d
Gerrit-Branch: master
Gerrit-Change-Id: I0e88f2b056db931b0e442567efa9a8d270abb9f2
Gerrit-Change-Number: 19929
Gerrit-PatchSet: 1
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200901/36bdd765/attachment.htm>


More information about the gerrit-log mailing list