summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/include/osmocom
diff options
context:
space:
mode:
authorAndreas.Eversberg <jolly@eversberg.eu>2010-06-26 11:12:25 +0000
committerAndreas.Eversberg <jolly@eversberg.eu>2010-06-26 11:12:25 +0000
commit7b84cf805b83fee946f1319225c8dff1c25c0f73 (patch)
tree31db82a47a81ce2f088ae7243484624d6062cbc6 /src/host/layer23/include/osmocom
parent4e03d6f82210535d8d1d93aa7be0af5c8372485b (diff)
[lapdm] Added flow control between L1 and L2, so DM mode does not crash.
In dedicated mode a frame is sent to layer 1. Subsequent frames are queued inside lapdm.c until a confirm from layer 1 is received. Since not all pending frames are sent rapidly at once, the layer 1 does not crash anymore. Also included in this commit: handling of reset confirm (maybe required in the future after dedicated mode)
Diffstat (limited to 'src/host/layer23/include/osmocom')
-rw-r--r--src/host/layer23/include/osmocom/l1ctl.h3
-rw-r--r--src/host/layer23/include/osmocom/lapdm.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/src/host/layer23/include/osmocom/l1ctl.h b/src/host/layer23/include/osmocom/l1ctl.h
index ad59b2d4..cac37cf7 100644
--- a/src/host/layer23/include/osmocom/l1ctl.h
+++ b/src/host/layer23/include/osmocom/l1ctl.h
@@ -32,6 +32,9 @@ int l1ctl_tx_ccch_mode_req(struct osmocom_ms *ms, uint8_t ccch_mode);
int l1ctl_tx_echo_req(struct osmocom_ms *ms, unsigned int len);
+/* Transmit L1CTL_RESET_REQ */
+int l1ctl_tx_reset_req(struct osmocom_ms *ms, uint8_t type);
+
/* Transmit L1CTL_PM_REQ */
int l1ctl_tx_pm_req_range(struct osmocom_ms *ms, uint16_t arfcn_from,
uint16_t arfcm_to);
diff --git a/src/host/layer23/include/osmocom/lapdm.h b/src/host/layer23/include/osmocom/lapdm.h
index f1f4ed5c..06ac5f89 100644
--- a/src/host/layer23/include/osmocom/lapdm.h
+++ b/src/host/layer23/include/osmocom/lapdm.h
@@ -78,6 +78,7 @@ void lapdm_exit(struct lapdm_entity *le);
/* input into layer2 (from layer 1) */
int l2_ph_data_ind(struct msgb *msg, struct lapdm_entity *le, struct l1ctl_info_dl *l1i);
+int l2_ph_data_conf(struct msgb *msg, struct lapdm_entity *le);
/* input into layer2 (from layer 3) */
int rslms_recvmsg(struct msgb *msg, struct osmocom_ms *ms);