diff --git a/src/e1_test_dieter.c b/src/e1_test_dieter.c
index 6277556..62334e4 100644
--- a/src/e1_test_dieter.c
+++ b/src/e1_test_dieter.c
@@ -11,21 +11,21 @@
 #include <osmocom/core/application.h>
 #include <osmocom/gsm/gsm_utils.h>
 
-#include "osmo_e1.h"
+#include "osmo_e1f.h"
 
-static struct osmo_e1_instance inst;
+static struct osmo_e1f_instance inst;
 static struct log_info log_info = {};
 
-static void data_cb(struct osmo_e1_instance_ts *e1t, struct msgb *msg)
+static void data_cb(struct osmo_e1f_instance_ts *e1t, struct msgb *msg)
 {
 	printf("Rx TS %02u: %s\n", e1t->ts_nr, msgb_hexdump(msg));
 	msgb_free(msg);
 }
 
-static void notify_cb(struct osmo_e1_instance *e1i, enum osmo_e1_notify_event evt,
+static void notify_cb(struct osmo_e1f_instance *e1i, enum osmo_e1f_notify_event evt,
 			bool present, void *data)
 {
-	fprintf(stdout, "NOTIFY: %s %s\n", osmo_e1_notify_event_name(evt), present ? "PRESENT" : "ABSENT");
+	fprintf(stdout, "NOTIFY: %s %s\n", osmo_e1f_notify_event_name(evt), present ? "PRESENT" : "ABSENT");
 }
 
 static void read_file(const char *fname)
@@ -45,7 +45,7 @@
 		if (rc < sizeof(buf))
 			exit(24);
 		//printf("FRAME: %s\n", osmo_hexdump(buf, sizeof(buf)));
-		osmo_e1_rx_frame(&inst, buf);
+		osmo_e1f_rx_frame(&inst, buf);
 	}
 }
 
@@ -54,16 +54,16 @@
 	int i;
 
 	osmo_init_logging2(NULL, &log_info);
-	osmo_e1_init();
+	osmo_e1f_init();
 
-	osmo_e1_instance_init(&inst, "e1_test", &notify_cb, true, NULL);
+	osmo_e1f_instance_init(&inst, "e1_test", &notify_cb, true, NULL);
 	for (i = 1; i < 32; i++) {
-		struct osmo_e1_instance_ts *e1t = osmo_e1_instance_ts(&inst, i);
-		enum osmo_e1_ts_mode mode;
+		struct osmo_e1f_instance_ts *e1t = osmo_e1f_instance_ts(&inst, i);
+		enum osmo_e1f_ts_mode mode;
 		bool enable;
 		switch (i) {
 		case 2:
-			mode = OSMO_E1_TS_HDLC_CRC;
+			mode = OSMO_E1F_TS_HDLC_CRC;
 			enable = true;
 			break;
 		case 5:
@@ -71,11 +71,11 @@
 		case 7:
 		case 8:
 		default:
-			mode = OSMO_E1_TS_RAW;
+			mode = OSMO_E1F_TS_RAW;
 			enable = false;
 			break;
 		}
-		osmo_e1_ts_config(e1t, &data_cb, 64, enable, mode);
+		osmo_e1f_ts_config(e1t, &data_cb, 64, enable, mode);
 	}
 
 	read_file("Insite_to_Racal_E1.bin");
