diff options
author | Andreas.Eversberg <jolly@eversberg.eu> | 2010-06-26 11:12:25 +0000 |
---|---|---|
committer | Andreas.Eversberg <jolly@eversberg.eu> | 2010-06-26 11:12:25 +0000 |
commit | 7b84cf805b83fee946f1319225c8dff1c25c0f73 (patch) | |
tree | 31db82a47a81ce2f088ae7243484624d6062cbc6 /src/host/layer23/include/osmocom | |
parent | 4e03d6f82210535d8d1d93aa7be0af5c8372485b (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.h | 3 | ||||
-rw-r--r-- | src/host/layer23/include/osmocom/lapdm.h | 1 |
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); |