RBS2000 RSL: Support for sending RSL PAGING CMD for GPRS
Change-Id: I66541f9b20e7fd67fbec329283fc3c821c970a56
This commit is contained in:
parent
f7e9a349ef
commit
baaf3e242e
|
@ -22,6 +22,7 @@
|
||||||
#ifndef _RSL_H
|
#ifndef _RSL_H
|
||||||
#define _RSL_H
|
#define _RSL_H
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
#include <osmocom/gsm/protocol/gsm_08_58.h>
|
#include <osmocom/gsm/protocol/gsm_08_58.h>
|
||||||
#include <osmocom/gsm/gsm_utils.h>
|
#include <osmocom/gsm/gsm_utils.h>
|
||||||
|
|
||||||
|
@ -49,7 +50,7 @@ int rsl_chan_activate_lchan(struct gsm_lchan *lchan, uint8_t act_type,
|
||||||
int rsl_chan_mode_modify_req(struct gsm_lchan *ts);
|
int rsl_chan_mode_modify_req(struct gsm_lchan *ts);
|
||||||
int rsl_encryption_cmd(struct msgb *msg);
|
int rsl_encryption_cmd(struct msgb *msg);
|
||||||
int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len,
|
int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len,
|
||||||
uint8_t *ms_ident, uint8_t chan_needed);
|
uint8_t *ms_ident, uint8_t chan_needed, bool is_gprs);
|
||||||
int rsl_imm_assign_cmd(struct gsm_bts *bts, uint8_t len, uint8_t *val);
|
int rsl_imm_assign_cmd(struct gsm_bts *bts, uint8_t len, uint8_t *val);
|
||||||
|
|
||||||
int rsl_data_request(struct msgb *msg, uint8_t link_id);
|
int rsl_data_request(struct msgb *msg, uint8_t link_id);
|
||||||
|
|
|
@ -1007,7 +1007,7 @@ static int rsl_rx_rf_chan_rel_ack(struct gsm_lchan *lchan)
|
||||||
}
|
}
|
||||||
|
|
||||||
int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len,
|
int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len,
|
||||||
uint8_t *ms_ident, uint8_t chan_needed)
|
uint8_t *ms_ident, uint8_t chan_needed, bool is_gprs)
|
||||||
{
|
{
|
||||||
struct abis_rsl_dchan_hdr *dh;
|
struct abis_rsl_dchan_hdr *dh;
|
||||||
struct msgb *msg = rsl_msgb_alloc();
|
struct msgb *msg = rsl_msgb_alloc();
|
||||||
|
@ -1020,6 +1020,11 @@ int rsl_paging_cmd(struct gsm_bts *bts, uint8_t paging_group, uint8_t len,
|
||||||
msgb_tlv_put(msg, RSL_IE_MS_IDENTITY, len-2, ms_ident+2);
|
msgb_tlv_put(msg, RSL_IE_MS_IDENTITY, len-2, ms_ident+2);
|
||||||
msgb_tv_put(msg, RSL_IE_CHAN_NEEDED, chan_needed);
|
msgb_tv_put(msg, RSL_IE_CHAN_NEEDED, chan_needed);
|
||||||
|
|
||||||
|
/* Ericsson wants to have this IE in case a paging message
|
||||||
|
* relates to packet paging */
|
||||||
|
if (bts->type == GSM_BTS_TYPE_RBS2000 && is_gprs)
|
||||||
|
msgb_tv_put(msg, RSL_IE_ERIC_PACKET_PAG_IND, 0);
|
||||||
|
|
||||||
msg->dst = bts->c0->rsl_link;
|
msg->dst = bts->c0->rsl_link;
|
||||||
|
|
||||||
return abis_rsl_sendmsg(msg);
|
return abis_rsl_sendmsg(msg);
|
||||||
|
|
|
@ -419,7 +419,7 @@ error:
|
||||||
int gsm0808_page(struct gsm_bts *bts, unsigned int page_group, unsigned int mi_len,
|
int gsm0808_page(struct gsm_bts *bts, unsigned int page_group, unsigned int mi_len,
|
||||||
uint8_t *mi, int chan_type)
|
uint8_t *mi, int chan_type)
|
||||||
{
|
{
|
||||||
return rsl_paging_cmd(bts, page_group, mi_len, mi, chan_type);
|
return rsl_paging_cmd(bts, page_group, mi_len, mi, chan_type, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_ass_compl(struct gsm_subscriber_connection *conn,
|
static void handle_ass_compl(struct gsm_subscriber_connection *conn,
|
||||||
|
|
Loading…
Reference in New Issue