Loading...
Searching...
No Matches
gprs_bssgp_util.c File Reference

GPRS BSSGP protocol implementation as per 3GPP TS 08.18. More...

`#include <errno.h>`
`#include <stdint.h>`
`#include <osmocom/core/msgb.h>`
`#include <osmocom/core/byteswap.h>`
`#include <osmocom/gsm/tlv.h>`
`#include <osmocom/core/talloc.h>`
`#include <osmocom/gprs/gprs_bssgp.h>`
`#include <osmocom/gprs/gprs_ns.h>`
`#include "gprs_bssgp_internal.h"`

## Macros

#define | DL BSSGP_PDUF_DL
#define | UL BSSGP_PDUF_UL
#define | SIG BSSGP_PDUF_SIG
#define | PTP BSSGP_PDUF_PTP
#define | PTM BSSGP_PDUF_PTM

## Functions

const char * | bssgp_cause_str (enum gprs_bssgp_cause cause)
const char * | bssgp_pdu_str (enum bssgp_pdu_type pdu)
struct msgb * | bssgp_msgb_alloc (void)
struct msgb * | bssgp_msgb_copy (const struct msgb *msg, const char *name)
int | bssgp_tx_simple_bvci (uint8_t pdu_type, uint16_t nsei, uint16_t bvci, uint16_t ns_bvci)
int | bssgp_tx_status (uint8_t cause, uint16_t *bvci, struct msgb *orig_msg)

## Variables

struct gprs_ns_inst * | bssgp_nsi
static const struct value_string | bssgp_cause_strings []
static const struct value_string | bssgp_pdu_strings []
static const uint8_t | dl_ud_ies [] = { BSSGP_IE_PDU_LIFETIME }
static const uint8_t | ul_ud_ies [] = { BSSGP_IE_CELL_ID }
static const uint8_t | ra_cap_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_MS_RADIO_ACCESS_CAP }
static const uint8_t | dl_mb_ud_ies [] = { BSSGP_IE_PDU_LIFETIME, BSSGP_IE_TMGI, BSSGP_IE_LLC_PDU }
static const uint8_t | ul_mb_ud_ies [] = { BSSGP_IE_PDU_LIFETIME, BSSGP_IE_TMGI, BSSGP_IE_LLC_PDU }
static const uint8_t | pag_ps_ies [] = { BSSGP_IE_IMSI, BSSGP_IE_QOS_PROFILE }
static const uint8_t | pag_cs_ies [] = { BSSGP_IE_IMSI, BSSGP_IE_DRX_PARAMS }
static const uint8_t | ra_cap_upd_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_TAG }
static const uint8_t | ra_cap_upd_ack_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_TAG, BSSGP_IE_RA_CAP_UPD_CAUSE }
static const uint8_t | rad_sts_ies [] = { BSSGP_IE_RADIO_CAUSE }
static const uint8_t | suspend_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }
static const uint8_t | suspend_ack_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA, BSSGP_IE_SUSPEND_REF_NR }
static const uint8_t | suspend_nack_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }
static const uint8_t | resume_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA, BSSGP_IE_SUSPEND_REF_NR }
static const uint8_t | resume_ack_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }
static const uint8_t | resume_nack_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }
static const uint8_t | d_pag_ps_ies [] = { BSSGP_IE_IMSI }
static const uint8_t | d_pag_ps_resp_ies [] = { BSSGP_IE_IMSI, BSSGP_IE_T_UNTIL_NEXT_PAGING }
static const uint8_t | d_pag_ps_rej_ies [] = { BSSGP_IE_IMSI, BSSGP_IE_T_UNTIL_NEXT_PAGING }
static const uint8_t | ms_reg_enq_ies [] = { BSSGP_IE_IMSI }
static const uint8_t | ms_reg_enq_res_ies [] = { BSSGP_IE_IMSI }
static const uint8_t | flush_ll_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_BVCI }
static const uint8_t | flush_ll_ack_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_FLUSH_ACTION }
static const uint8_t | llc_disc_ies []
static const uint8_t | fc_bvc_ies []
static const uint8_t | fc_bvc_ack_ies [] = { BSSGP_IE_TAG }
static const uint8_t | fc_ms_ies []
static const uint8_t | fc_ms_ack_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_TAG }
static const uint8_t | block_ies [] = { BSSGP_IE_BVCI, BSSGP_IE_CAUSE }
static const uint8_t | block_ack_ies [] = { BSSGP_IE_BVCI }
static const uint8_t | unblock_ies [] = { BSSGP_IE_BVCI }
static const uint8_t | unblock_ack_ies [] = { BSSGP_IE_BVCI }
static const uint8_t | reset_ies [] = { BSSGP_IE_BVCI, BSSGP_IE_CAUSE }
static const uint8_t | reset_ack_ies [] = { BSSGP_IE_BVCI }
static const uint8_t | status_ies [] = { BSSGP_IE_CAUSE }
static const uint8_t | inv_trc_ies [] = { BSSGP_IE_TRACE_TYPE, BSSGP_IE_TRACE_REFERENC }
static const uint8_t | dl_bss_pfc_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID }
static const uint8_t | crt_bss_pfc_ies []
static const uint8_t | crt_bss_pfc_ack_ies []
static const uint8_t | crt_bss_pfc_nack_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, BSSGP_IE_CAUSE }
static const uint8_t | mod_bss_pfc_ies []
static const uint8_t | mod_bss_pfc_ack_ies []
static const uint8_t | del_bss_pfc_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID }
static const uint8_t | del_bss_pfc_ack_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID }
static const uint8_t | fc_pfc_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_TAG, BSSGP_IE_PFC_FLOW_CTRL_PARAMS }
static const uint8_t | fc_pfc_ack_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_TAG }
static const uint8_t | del_bss_pfc_req_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, BSSGP_IE_CAUSE }
static const uint8_t | ps_ho_required_ies []
static const uint8_t | ps_ho_required_ack_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_LIST_OF_SETUP_PFC }
static const uint8_t | ps_ho_required_nack_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_CAUSE }
static const uint8_t | ps_ho_request_ies []
static const uint8_t | ps_ho_request_ack_ies []
static const uint8_t | ps_ho_request_nack_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_CAUSE }
static const uint8_t | ps_ho_compl_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_IMSI }
static const uint8_t | ps_ho_cancel_ies [] = { BSSGP_IE_TLLI, BSSGP_IE_CAUSE, BSSGP_IE_CELL_ID }
static const uint8_t | ps_ho_compl_ack_ies [] = { BSSGP_IE_TLLI }
static const uint8_t | overload_ies [] = { BSSGP_IE_PRIO_CLASS_IND }
static const uint8_t | rinfo_ies [] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_RIM_CONTAINER }
static const uint8_t | rinfo_req_ies [] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_REQ_RIM_CONTAINER }
static const uint8_t | rinfo_ack_ies [] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_ACK_RIM_CONTAINER }
static const uint8_t | rinfo_err_ies [] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_ERROR_RIM_COINTAINER }
static const uint8_t | rinfo_aerr_ies [] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_APP_ERROR_RIM_CONT }
const struct osmo_tlv_prot_def | osmo_pdef_bssgp

## Detailed Description

GPRS BSSGP protocol implementation as per 3GPP TS 08.18.

## Macro Definition Documentation

## DL

#define DL BSSGP_PDUF_DL

## PTM

#define PTM BSSGP_PDUF_PTM

## PTP

#define PTP BSSGP_PDUF_PTP

## SIG

#define SIG BSSGP_PDUF_SIG

## UL

#define UL BSSGP_PDUF_UL

## Function Documentation

## bssgp_cause_str()

const char * bssgp_cause_str | ( | enum gprs_bssgp_cause | cause | ) |

References bssgp_cause_strings, cause, and get_value_string().

Referenced by bssgp_bvc_fsm_allstate(), bssgp_bvc_fsm_blocked(), bssgp_bvc_fsm_unblocked(), bssgp_rx_bvc_reset(), bssgp_rx_status(), bssgp_tx_bvc_block(), bssgp_tx_bvc_ptp_reset(), bssgp_tx_status(), common_tx_radio_status2(), and tx_bvc_reset_nsei_bvci().

## bssgp_msgb_alloc()

struct msgb * bssgp_msgb_alloc | ( | void |  | ) |

References msg, msgb_bssgph, and OSMO_ASSERT.

Referenced by bssgp2_enc_bvc_block(), bssgp2_enc_bvc_block_ack(), bssgp2_enc_bvc_reset(), bssgp2_enc_bvc_reset_ack(), bssgp2_enc_bvc_unblock(), bssgp2_enc_bvc_unblock_ack(), bssgp2_enc_fc_bvc(), bssgp2_enc_fc_bvc_ack(), bssgp2_enc_fc_ms(), bssgp2_enc_fc_ms_ack(), bssgp2_enc_flush_ll(), bssgp2_enc_status(), bssgp_encode_rim_pdu(), bssgp_tx_bvc_block(), bssgp_tx_bvc_unblock(), bssgp_tx_fc_bvc(), bssgp_tx_fc_bvc_ack(), bssgp_tx_fc_ms(), bssgp_tx_flush_ll_ack(), bssgp_tx_llc_discarded(), bssgp_tx_paging(), bssgp_tx_ra_capa_upd(), bssgp_tx_resume(), bssgp_tx_resume_ack(), bssgp_tx_resume_nack(), bssgp_tx_simple_bvci(), bssgp_tx_status(), bssgp_tx_suspend(), bssgp_tx_suspend_ack(), bssgp_tx_suspend_nack(), common_tx_radio_status(), and tx_bvc_reset_nsei_bvci().

## bssgp_msgb_copy()

struct msgb * bssgp_msgb_copy | ( | const struct msgb * | msg,
|  | const char * | name
| ) |  |

References msgb::len, LIBGB_MSGB_CB, msg, msgb_copy(), and name.

## bssgp_pdu_str()

const char * bssgp_pdu_str | ( | enum bssgp_pdu_type | pdu | ) |

References bssgp_pdu_strings, and get_value_string().

Referenced by bssgp_rcvmsg(), bssgp_rx_ptp(), bssgp_rx_rim(), bssgp_rx_sign(), bssgp_tx_rim(), and bssgp_tx_rim_encoded().

## bssgp_tx_simple_bvci()

int bssgp_tx_simple_bvci | ( | uint8_t | pdu_type,
|  | uint16_t | nsei,
|  | uint16_t | bvci,
|  | uint16_t | ns_bvci
| ) |  |

References BSSGP_IE_BVCI, bssgp_msgb_alloc(), bssgp_ns_send, bssgp_ns_send_data, bvci, msg, msgb_bvci, msgb_nsei, nsei, osmo_htons, pdu_type, and bssgp_normal_hdr::pdu_type.

Referenced by bssgp_bvc_fsm_unblocked(), bssgp_rx_bvc_block(), bssgp_rx_bvc_reset(), and bssgp_rx_bvc_unblock().

## bssgp_tx_status()

int bssgp_tx_status | ( | uint8_t | cause,
|  | uint16_t * | bvci,
|  | struct msgb * | orig_msg
| ) |  |

References BSSGP_CAUSE_BVCI_BLOCKED, bssgp_cause_str(), BSSGP_CAUSE_UNKNOWN_BVCI, BSSGP_IE_BVCI, BSSGP_IE_CAUSE, BSSGP_IE_PDU_IN_ERROR, bssgp_msgb_alloc(), bssgp_ns_send, bssgp_ns_send_data, BSSGP_PDUT_STATUS, bvci, cause, DLBSSGP, LOGL_ERROR, LOGL_NOTICE, LOGP, msg, msgb_bssgp_len, msgb_bssgph, msgb_bvci, msgb_nsei, osmo_htons, and bssgp_normal_hdr::pdu_type.

Referenced by bssgp_rcvmsg(), bssgp_rx_bvc_block(), bssgp_rx_bvc_unblock(), bssgp_rx_fc_bvc(), bssgp_rx_llc_disc(), bssgp_rx_ptp(), bssgp_rx_resume(), bssgp_rx_rim(), bssgp_rx_sign(), bssgp_rx_suspend(), and bssgp_rx_ul_ud().

## Variable Documentation

## block_ack_ies

const uint8_t block_ack_ies[] = { BSSGP_IE_BVCI }

static

## block_ies

const uint8_t block_ies[] = { BSSGP_IE_BVCI, BSSGP_IE_CAUSE }

static

## bssgp_cause_strings

const struct value_string bssgp_cause_strings[]

static

Referenced by bssgp_cause_str().

## bssgp_nsi

struct gprs_ns_inst* bssgp_nsi

Referenced by _gprs_ns_sendmsg().

## bssgp_pdu_strings

const struct value_string bssgp_pdu_strings[]

static

Referenced by bssgp_pdu_str().

## crt_bss_pfc_ack_ies

const uint8_t crt_bss_pfc_ack_ies[]

static

Initial value:
= { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID,
BSSGP_IE_AGG_BSS_QOS_PROFILE }
BSSGP_IE_AGG_BSS_QOS_PROFILE
@ BSSGP_IE_AGG_BSS_QOS_PROFILE
Definition gsm_08_18.h:160
BSSGP_IE_PACKET_FLOW_ID
@ BSSGP_IE_PACKET_FLOW_ID
Definition gsm_08_18.h:158
BSSGP_IE_TLLI
@ BSSGP_IE_TLLI
Definition gsm_08_18.h:149

## crt_bss_pfc_ies

const uint8_t crt_bss_pfc_ies[]

static

Initial value:
= { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID,
BSSGP_IE_PACKET_FLOW_TIMER, BSSGP_IE_AGG_BSS_QOS_PROFILE }
BSSGP_IE_PACKET_FLOW_TIMER
@ BSSGP_IE_PACKET_FLOW_TIMER
Definition gsm_08_18.h:159

## crt_bss_pfc_nack_ies

const uint8_t crt_bss_pfc_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, BSSGP_IE_CAUSE }

static

## d_pag_ps_ies

const uint8_t d_pag_ps_ies[] = { BSSGP_IE_IMSI }

static

## d_pag_ps_rej_ies

const uint8_t d_pag_ps_rej_ies[] = { BSSGP_IE_IMSI, BSSGP_IE_T_UNTIL_NEXT_PAGING }

static

## d_pag_ps_resp_ies

const uint8_t d_pag_ps_resp_ies[] = { BSSGP_IE_IMSI, BSSGP_IE_T_UNTIL_NEXT_PAGING }

static

## del_bss_pfc_ack_ies

const uint8_t del_bss_pfc_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID }

static

## del_bss_pfc_ies

const uint8_t del_bss_pfc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID }

static

## del_bss_pfc_req_ies

const uint8_t del_bss_pfc_req_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID, BSSGP_IE_CAUSE }

static

## dl_bss_pfc_ies

const uint8_t dl_bss_pfc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID }

static

## dl_mb_ud_ies

const uint8_t dl_mb_ud_ies[] = { BSSGP_IE_PDU_LIFETIME, BSSGP_IE_TMGI, BSSGP_IE_LLC_PDU }

static

## dl_ud_ies

const uint8_t dl_ud_ies[] = { BSSGP_IE_PDU_LIFETIME }

static

## fc_bvc_ack_ies

const uint8_t fc_bvc_ack_ies[] = { BSSGP_IE_TAG }

static

## fc_bvc_ies

const uint8_t fc_bvc_ies[]

static

Initial value:
= { BSSGP_IE_TAG, BSSGP_IE_BVC_BUCKET_SIZE, BSSGP_IE_BUCKET_LEAK_RATE,
BSSGP_IE_BMAX_DEFAULT_MS, BSSGP_IE_R_DEFAULT_MS }
BSSGP_IE_TAG
@ BSSGP_IE_TAG
Definition gsm_08_18.h:148
BSSGP_IE_R_DEFAULT_MS
@ BSSGP_IE_R_DEFAULT_MS
Definition gsm_08_18.h:146
BSSGP_IE_BUCKET_LEAK_RATE
@ BSSGP_IE_BUCKET_LEAK_RATE
Definition gsm_08_18.h:121
BSSGP_IE_BMAX_DEFAULT_MS
@ BSSGP_IE_BMAX_DEFAULT_MS
Definition gsm_08_18.h:119
BSSGP_IE_BVC_BUCKET_SIZE
@ BSSGP_IE_BVC_BUCKET_SIZE
Definition gsm_08_18.h:123

## fc_ms_ack_ies

const uint8_t fc_ms_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG }

static

## fc_ms_ies

const uint8_t fc_ms_ies[]

static

Initial value:
= { BSSGP_IE_TLLI, BSSGP_IE_TAG, BSSGP_IE_MS_BUCKET_SIZE,
BSSGP_IE_BUCKET_LEAK_RATE }
BSSGP_IE_MS_BUCKET_SIZE
@ BSSGP_IE_MS_BUCKET_SIZE
Definition gsm_08_18.h:136

## fc_pfc_ack_ies

const uint8_t fc_pfc_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG }

static

## fc_pfc_ies

const uint8_t fc_pfc_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG, BSSGP_IE_PFC_FLOW_CTRL_PARAMS }

static

## flush_ll_ack_ies

const uint8_t flush_ll_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_FLUSH_ACTION }

static

## flush_ll_ies

const uint8_t flush_ll_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_BVCI }

static

## inv_trc_ies

const uint8_t inv_trc_ies[] = { BSSGP_IE_TRACE_TYPE, BSSGP_IE_TRACE_REFERENC }

static

## llc_disc_ies

const uint8_t llc_disc_ies[]

static

Initial value:
= { BSSGP_IE_TLLI, BSSGP_IE_LLC_FRAMES_DISCARDED, BSSGP_IE_BVCI,
BSSGP_IE_NUM_OCT_AFF }
BSSGP_IE_NUM_OCT_AFF
@ BSSGP_IE_NUM_OCT_AFF
Definition gsm_08_18.h:155
BSSGP_IE_LLC_FRAMES_DISCARDED
@ BSSGP_IE_LLC_FRAMES_DISCARDED
Definition gsm_08_18.h:133
BSSGP_IE_BVCI
@ BSSGP_IE_BVCI
Definition gsm_08_18.h:122

## mod_bss_pfc_ack_ies

const uint8_t mod_bss_pfc_ack_ies[]

static

Initial value:
= { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID,
BSSGP_IE_PACKET_FLOW_TIMER, BSSGP_IE_AGG_BSS_QOS_PROFILE }

## mod_bss_pfc_ies

const uint8_t mod_bss_pfc_ies[]

static

Initial value:
= { BSSGP_IE_TLLI, BSSGP_IE_PACKET_FLOW_ID,
BSSGP_IE_AGG_BSS_QOS_PROFILE }

## ms_reg_enq_ies

const uint8_t ms_reg_enq_ies[] = { BSSGP_IE_IMSI }

static

## ms_reg_enq_res_ies

const uint8_t ms_reg_enq_res_ies[] = { BSSGP_IE_IMSI }

static

## osmo_pdef_bssgp

const struct osmo_tlv_prot_def osmo_pdef_bssgp

Referenced by bssgp_parse_rim_pdu(), bssgp_pdu_type_flags(), fi_tx_ptp(), and fi_tx_sig().

## overload_ies

const uint8_t overload_ies[] = { BSSGP_IE_PRIO_CLASS_IND }

static

## pag_cs_ies

const uint8_t pag_cs_ies[] = { BSSGP_IE_IMSI, BSSGP_IE_DRX_PARAMS }

static

## pag_ps_ies

const uint8_t pag_ps_ies[] = { BSSGP_IE_IMSI, BSSGP_IE_QOS_PROFILE }

static

## ps_ho_cancel_ies

const uint8_t ps_ho_cancel_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_CAUSE, BSSGP_IE_CELL_ID }

static

## ps_ho_compl_ack_ies

const uint8_t ps_ho_compl_ack_ies[] = { BSSGP_IE_TLLI }

static

## ps_ho_compl_ies

const uint8_t ps_ho_compl_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_IMSI }

static

## ps_ho_request_ack_ies

const uint8_t ps_ho_request_ack_ies[]

static

Initial value:
= { BSSGP_IE_TLLI, BSSGP_IE_LIST_OF_SETUP_PFC,
BSSGP_IE_TBSS_TO_SBSS_TR_CONT }
BSSGP_IE_TBSS_TO_SBSS_TR_CONT
@ BSSGP_IE_TBSS_TO_SBSS_TR_CONT
Definition gsm_08_18.h:201
BSSGP_IE_LIST_OF_SETUP_PFC
@ BSSGP_IE_LIST_OF_SETUP_PFC
Definition gsm_08_18.h:204

## ps_ho_request_ies

const uint8_t ps_ho_request_ies[]

static

Initial value:
= { BSSGP_IE_TLLI, BSSGP_IE_IMSI, BSSGP_IE_CAUSE,
BSSGP_IE_CELL_ID, BSSGP_IE_SBSS_TO_TBSS_TR_CONT,
BSSGP_IE_PFC_TO_BE_SETUP_LIST }
BSSGP_IE_PFC_TO_BE_SETUP_LIST
@ BSSGP_IE_PFC_TO_BE_SETUP_LIST
Definition gsm_08_18.h:203
BSSGP_IE_IMSI
@ BSSGP_IE_IMSI
Definition gsm_08_18.h:131
BSSGP_IE_CAUSE
@ BSSGP_IE_CAUSE
Definition gsm_08_18.h:125
BSSGP_IE_CELL_ID
@ BSSGP_IE_CELL_ID
Definition gsm_08_18.h:126
BSSGP_IE_SBSS_TO_TBSS_TR_CONT
@ BSSGP_IE_SBSS_TO_TBSS_TR_CONT
Definition gsm_08_18.h:200

## ps_ho_request_nack_ies

const uint8_t ps_ho_request_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_CAUSE }

static

## ps_ho_required_ack_ies

const uint8_t ps_ho_required_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_LIST_OF_SETUP_PFC }

static

## ps_ho_required_ies

const uint8_t ps_ho_required_ies[]

static

Initial value:
= { BSSGP_IE_TLLI, BSSGP_IE_CAUSE, BSSGP_IE_CELL_ID,
BSSGP_IE_ACTIVE_PFC_LIST }
BSSGP_IE_ACTIVE_PFC_LIST
@ BSSGP_IE_ACTIVE_PFC_LIST
Definition gsm_08_18.h:219

## ps_ho_required_nack_ies

const uint8_t ps_ho_required_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_CAUSE }

static

## ra_cap_ies

const uint8_t ra_cap_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_MS_RADIO_ACCESS_CAP }

static

## ra_cap_upd_ack_ies

const uint8_t ra_cap_upd_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG, BSSGP_IE_RA_CAP_UPD_CAUSE }

static

## ra_cap_upd_ies

const uint8_t ra_cap_upd_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_TAG }

static

## rad_sts_ies

const uint8_t rad_sts_ies[] = { BSSGP_IE_RADIO_CAUSE }

static

## reset_ack_ies

const uint8_t reset_ack_ies[] = { BSSGP_IE_BVCI }

static

## reset_ies

const uint8_t reset_ies[] = { BSSGP_IE_BVCI, BSSGP_IE_CAUSE }

static

## resume_ack_ies

const uint8_t resume_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }

static

## resume_ies

const uint8_t resume_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA, BSSGP_IE_SUSPEND_REF_NR }

static

## resume_nack_ies

const uint8_t resume_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }

static

## rinfo_ack_ies

const uint8_t rinfo_ack_ies[] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_ACK_RIM_CONTAINER }

static

## rinfo_aerr_ies

const uint8_t rinfo_aerr_ies[] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_APP_ERROR_RIM_CONT }

static

## rinfo_err_ies

const uint8_t rinfo_err_ies[] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_ERROR_RIM_COINTAINER }

static

## rinfo_ies

const uint8_t rinfo_ies[] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_RIM_CONTAINER }

static

## rinfo_req_ies

const uint8_t rinfo_req_ies[] = { BSSGP_IE_RIM_ROUTING_INFO, BSSGP_IE_RI_REQ_RIM_CONTAINER }

static

## status_ies

const uint8_t status_ies[] = { BSSGP_IE_CAUSE }

static

## suspend_ack_ies

const uint8_t suspend_ack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA, BSSGP_IE_SUSPEND_REF_NR }

static

## suspend_ies

const uint8_t suspend_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }

static

## suspend_nack_ies

const uint8_t suspend_nack_ies[] = { BSSGP_IE_TLLI, BSSGP_IE_ROUTEING_AREA }

static

## ul_mb_ud_ies

const uint8_t ul_mb_ud_ies[] = { BSSGP_IE_PDU_LIFETIME, BSSGP_IE_TMGI, BSSGP_IE_LLC_PDU }

static

## ul_ud_ies

const uint8_t ul_ud_ies[] = { BSSGP_IE_CELL_ID }

static

## unblock_ack_ies

const uint8_t unblock_ack_ies[] = { BSSGP_IE_BVCI }

static

## unblock_ies

const uint8_t unblock_ies[] = { BSSGP_IE_BVCI }

static