Loading...
Searching...
No Matches
gsm29118.h
Go to the documentation of this file.
/* (C) 2018 by sysmocom s.f.m.c. GmbH
* All Rights Reserved
*
* Author: Harald Welte, Philipp Maier
*
* SPDX-License-Identifier: GPL-2.0+
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
#pragma once
#include <osmocom/core/msgb.h>
#include <osmocom/gsm/gsm23003.h>
#include <osmocom/gsm/protocol/gsm_29_118.h>
#include <osmocom/gsm/protocol/gsm_04_08.h>
struct gsm29118_paging_req {
char imsi[GSM48_MI_SIZE];
char vlr_name[SGS_VLR_NAME_MAXLEN + 1];
uint8_t serv_ind;
bool lai_present;
struct osmo_location_area_id lai;
};
struct gsm29118_reset_msg {
bool vlr_name_present;
char vlr_name[SGS_VLR_NAME_MAXLEN + 1];
bool mme_name_present;
char mme_name[SGS_MME_NAME_LEN + 1];
};
struct msgb *gsm29118_msgb_alloc(void);
struct msgb *gsm29118_create_alert_req(const char *imsi);
struct msgb *gsm29118_create_dl_ud(const char *imsi, struct msgb *nas_msg);
struct msgb *gsm29118_create_eps_det_ack(const char *imsi);
struct msgb *gsm29118_create_imsi_det_ack(const char *imsi);
struct msgb *gsm29118_create_lu_ack(const char *imsi, const struct osmo_location_area_id *lai, const uint8_t *new_id,
unsigned int new_id_len);
struct msgb *gsm29118_create_lu_rej(const char *imsi, uint8_t rej_cause, const struct osmo_location_area_id *lai);
struct msgb *gsm29118_create_mm_info_req(const char *imsi, const uint8_t *mm_info, uint8_t mm_info_len);
struct msgb *gsm29118_create_paging_req(struct gsm29118_paging_req *params);
struct msgb *gsm29118_create_reset_ack(struct gsm29118_reset_msg *params);
struct msgb *gsm29118_create_reset_ind(struct gsm29118_reset_msg *params);
struct msgb *gsm29118_create_status(const char *imsi, enum sgsap_sgs_cause cause, const struct msgb *err_msg);
struct msgb *gsm29118_create_release_req(const char *imsi, const uint8_t sgs_cause);
struct msgb *gsm29118_create_service_abort_req(const char *imsi);
gsm23003.h
gsm29118_create_release_req
struct msgb * gsm29118_create_release_req(const char *imsi, const uint8_t sgs_cause)
Definition gsm29118.c:420
gsm29118_create_dl_ud
struct msgb * gsm29118_create_dl_ud(const char *imsi, struct msgb *nas_msg)
Definition gsm29118.c:255
gsm29118_create_imsi_det_ack
struct msgb * gsm29118_create_imsi_det_ack(const char *imsi)
Definition gsm29118.c:275
gsm29118_create_paging_req
struct msgb * gsm29118_create_paging_req(struct gsm29118_paging_req *params)
Definition gsm29118.c:331
gsm29118_msgb_alloc
struct msgb * gsm29118_msgb_alloc(void)
Definition gsm29118.c:185
gsm29118_create_alert_req
struct msgb * gsm29118_create_alert_req(const char *imsi)
Definition gsm29118.c:246
gsm29118_create_lu_ack
struct msgb * gsm29118_create_lu_ack(const char *imsi, const struct osmo_location_area_id *lai, const uint8_t *new_id, unsigned int new_id_len)
8.9 SGsAP-LOCATION-UPDATE-ACCEPT.
Definition gsm29118.c:286
gsm29118_create_reset_ind
struct msgb * gsm29118_create_reset_ind(struct gsm29118_reset_msg *params)
Definition gsm29118.c:374
gsm29118_create_eps_det_ack
struct msgb * gsm29118_create_eps_det_ack(const char *imsi)
Definition gsm29118.c:267
gsm29118_create_lu_rej
struct msgb * gsm29118_create_lu_rej(const char *imsi, uint8_t rej_cause, const struct osmo_location_area_id *lai)
Definition gsm29118.c:303
gsm29118_create_reset_ack
struct msgb * gsm29118_create_reset_ack(struct gsm29118_reset_msg *params)
Definition gsm29118.c:352
gsm29118_create_status
struct msgb * gsm29118_create_status(const char *imsi, enum sgsap_sgs_cause cause, const struct msgb *err_msg)
Definition gsm29118.c:398
gsm29118_create_service_abort_req
struct msgb * gsm29118_create_service_abort_req(const char *imsi)
Definition gsm29118.c:433
gsm29118_create_mm_info_req
struct msgb * gsm29118_create_mm_info_req(const char *imsi, const uint8_t *mm_info, uint8_t mm_info_len)
Definition gsm29118.c:319
gsm_04_08.h
GSM TS 04.08 definitions.
cause
uint8_t cause
Definition gsm_04_08.h:2
lai
struct gsm48_loc_area_id lai
Definition gsm_04_08.h:2
GSM48_MI_SIZE
#define GSM48_MI_SIZE
Definition gsm_04_08.h:2111
params
uint8_t params[0]
Definition gsm_08_58.h:6
gsm_29_118.h
SGS_MME_NAME_LEN
#define SGS_MME_NAME_LEN
Definition gsm_29_118.h:178
SGS_VLR_NAME_MAXLEN
#define SGS_VLR_NAME_MAXLEN
Definition gsm_29_118.h:182
sgsap_sgs_cause
sgsap_sgs_cause
Definition gsm_29_118.h:126
msgb.h
gsm29118_paging_req
3GPP TS 3GPP TS 29.018 8.14 SGsAP-PAGING-REQUEST.
Definition gsm29118.h:30
gsm29118_paging_req::serv_ind
uint8_t serv_ind
Definition gsm29118.h:33
gsm29118_paging_req::lai_present
bool lai_present
Definition gsm29118.h:35
gsm29118_paging_req::imsi
char imsi[GSM48_MI_SIZE]
Definition gsm29118.h:31
gsm29118_paging_req::vlr_name
char vlr_name[SGS_VLR_NAME_MAXLEN+1]
Definition gsm29118.h:32
gsm29118_paging_req::lai
struct osmo_location_area_id lai
Definition gsm29118.h:36
gsm29118_reset_msg
3GPP TS 3GPP TS 29.018 8.15 SGsAP-RESET-ACK and 8.16 SGsAP-RESET-INDICATION.
Definition gsm29118.h:40
gsm29118_reset_msg::mme_name
char mme_name[SGS_MME_NAME_LEN+1]
Definition gsm29118.h:44
gsm29118_reset_msg::vlr_name_present
bool vlr_name_present
Definition gsm29118.h:41
gsm29118_reset_msg::mme_name_present
bool mme_name_present
Definition gsm29118.h:43
gsm29118_reset_msg::vlr_name
char vlr_name[SGS_VLR_NAME_MAXLEN+1]
Definition gsm29118.h:42
msgb
osmo_location_area_id
Definition gsm23003.h:16