diff options
author | Harald Welte <laforge@gnumonks.org> | 2017-01-13 00:23:42 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2017-01-13 00:23:42 +0100 |
commit | 1af2267fa05c0ff2069b6fe83caa62940ba39ce5 (patch) | |
tree | 912632ca27e900da60373f57b8c26df857712ccc | |
parent | ce3c88e075ee5d5e97f8497c0143aeedf3ad0f8c (diff) |
WIP: Support Early Classmark Sendinglaforge/early-cm
If SI3 rest octets indicate EARLY CM Sending is allowed, and the
'support' indicates we support it (which we now do by default), then
send the classmark change message every time a LAPDm link layer is
established.
-rw-r--r-- | src/host/layer23/src/mobile/gsm48_rr.c | 6 | ||||
-rw-r--r-- | src/host/layer23/src/mobile/support.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/host/layer23/src/mobile/gsm48_rr.c b/src/host/layer23/src/mobile/gsm48_rr.c index 76eaf8f5..6794636f 100644 --- a/src/host/layer23/src/mobile/gsm48_rr.c +++ b/src/host/layer23/src/mobile/gsm48_rr.c @@ -3297,6 +3297,8 @@ static int gsm48_rr_dl_est(struct osmocom_ms *ms) static int gsm48_rr_estab_cnf(struct osmocom_ms *ms, struct msgb *msg) { struct gsm48_rrlayer *rr = &ms->rrlayer; + struct gsm_support *sup = &ms->support; + struct gsm322_cellsel *cs = &ms->cellsel; uint8_t *mode; struct msgb *nmsg; @@ -3317,6 +3319,10 @@ static int gsm48_rr_estab_cnf(struct osmocom_ms *ms, struct msgb *msg) /* 3.3.1.1.4 */ new_rr_state(rr, GSM48_RR_ST_DEDICATED); + /* early classmark sending */ + if (cs->si->ecsm && sup->es_ind) + gsm48_rr_tx_cm_change(ms); + /* send confirm to upper layer */ nmsg = gsm48_rr_msgb_alloc( (rr->rr_est_req) ? GSM48_RR_EST_CNF : GSM48_RR_EST_IND); diff --git a/src/host/layer23/src/mobile/support.c b/src/host/layer23/src/mobile/support.c index 063733a7..e9361a35 100644 --- a/src/host/layer23/src/mobile/support.c +++ b/src/host/layer23/src/mobile/support.c @@ -33,7 +33,7 @@ void gsm_support_init(struct osmocom_ms *ms) sup->ms = ms; /* controlled early classmark sending */ - sup->es_ind = 0; /* no */ + sup->es_ind = 1; /* yes */ /* revision level */ sup->rev_lev = 1; /* phase 2 mobile station */ /* support of VGCS */ |