mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 04:30:28 +00:00
- all RAN code, CI code, configuration files, dockerfiles, in CSSL v1.0
- all deployment code (openshift, charts, ancillary files like shell
scripts), in MIT
- documentation in CC-BY-4.0
- exceptions might apply and are listed in NOTICE
- there is a new LICENSES folder with all licenses
- CONTRIBUTIONS.md has been updated accordingly
For automated changes based on OAI PL v1.1:
perl -i~ -0pe 's/\/\*.*Licensed to the OpenAirInterface.*openairinterface.org\n#?/\/*\n * SPDX-License-Identifier: LicenseRef-CSSL-1.0\n/s' **/*.{c,h,cpp}
perl -i~ -0pe 's/\/\*.*Licensed to the OpenAirInterface.*openairinterface.org\n#?/\/*\n * SPDX-License-Identifier: LicenseRef-CSSL-1.0\n/s' **/*.ts
perl -i~ -0pe 's/<!--.*Licensed to the OpenAirInterface.*openairinterface.org\n.*-->/<!-- SPDX-License-Identifier: LicenseRef-CSSL-1.0 -->/s' **/*.xml
The rest (cmake, files with missing license, cmake) manually.
242 lines
8.1 KiB
C
242 lines
8.1 KiB
C
/*
|
|
* SPDX-License-Identifier: LicenseRef-CSSL-1.0
|
|
*/
|
|
|
|
/*****************************************************************************
|
|
|
|
Source networkDef.h
|
|
|
|
Version 0.1
|
|
|
|
Date 2012/09/21
|
|
|
|
Product NAS stack
|
|
|
|
Subsystem include
|
|
|
|
Description Contains network's global definitions
|
|
|
|
*****************************************************************************/
|
|
#ifndef __NETWORKDEF_H__
|
|
#define __NETWORKDEF_H__
|
|
|
|
/****************************************************************************/
|
|
/********************* G L O B A L C O N S T A N T S *******************/
|
|
/****************************************************************************/
|
|
|
|
/*
|
|
* ----------------------
|
|
* Network selection mode
|
|
* ----------------------
|
|
*/
|
|
#define NET_PLMN_AUTO 0
|
|
#define NET_PLMN_MANUAL 1
|
|
|
|
/*
|
|
* ---------------------------
|
|
* Network registration status
|
|
* ---------------------------
|
|
*/
|
|
/* not registered, not currently searching an operator to register to */
|
|
#define NET_REG_STATE_OFF 0
|
|
/* registered, home network */
|
|
#define NET_REG_STATE_HN 1
|
|
/* not registered, currently trying to attach or searching an operator
|
|
* to register to */
|
|
#define NET_REG_STATE_ON 2
|
|
/* registration denied */
|
|
#define NET_REG_STATE_DENIED 3
|
|
/* unknown (e.g. out of GERAN/UTRAN/E-UTRAN coverage) */
|
|
#define NET_REG_STATE_UNKNOWN 4
|
|
/* registered, roaming */
|
|
#define NET_REG_STATE_ROAMING 5
|
|
/* registered for "SMS only", home network */
|
|
#define NET_REG_STATE_SMS_HN 6
|
|
/* registered, for "SMS only", roaming */
|
|
#define NET_REG_STATE_SMS_ROAMING 7
|
|
/* attached for emergency bearer services only (applicable to UTRAN) */
|
|
#define NET_REG_STATE_EMERGENCY 8
|
|
|
|
/*
|
|
* ------------------------------------
|
|
* Network access technology indicators
|
|
* ------------------------------------
|
|
*/
|
|
#define NET_ACCESS_UNAVAILABLE (-1) /* Not available */
|
|
#define NET_ACCESS_GSM 0 /* GSM */
|
|
#define NET_ACCESS_COMPACT 1 /* GSM Compact */
|
|
#define NET_ACCESS_UTRAN 2 /* UTRAN */
|
|
#define NET_ACCESS_EGPRS 3 /* GSM w/EGPRS */
|
|
#define NET_ACCESS_HSDPA 4 /* UTRAN w/HSDPA */
|
|
#define NET_ACCESS_HSUPA 5 /* UTRAN w/HSUPA */
|
|
#define NET_ACCESS_HSDUPA 6 /* UTRAN w/HSDPA and HSUPA */
|
|
#define NET_ACCESS_EUTRAN 7 /* E-UTRAN */
|
|
|
|
/*
|
|
* ---------------------------------------
|
|
* Network operator representation formats
|
|
* ---------------------------------------
|
|
*/
|
|
#define NET_FORMAT_LONG 0 /* long format alphanumeric */
|
|
#define NET_FORMAT_SHORT 1 /* short format alphanumeric */
|
|
#define NET_FORMAT_NUM 2 /* numeric format */
|
|
|
|
#define NET_FORMAT_MAX_SIZE NET_FORMAT_LONG_SIZE
|
|
|
|
/*
|
|
* -----------------------------
|
|
* Network operator availability
|
|
* -----------------------------
|
|
*/
|
|
#define NET_OPER_UNKNOWN 0 /* unknown operator */
|
|
#define NET_OPER_AVAILABLE 1 /* available operator */
|
|
#define NET_OPER_CURRENT 2 /* currently selected operator */
|
|
#define NET_OPER_FORBIDDEN 3 /* forbidden operator */
|
|
|
|
/*
|
|
* --------------------------------------
|
|
* Network connection establishment cause
|
|
* --------------------------------------
|
|
*/
|
|
#define NET_ESTABLISH_CAUSE_EMERGENCY 0x01
|
|
#define NET_ESTABLISH_CAUSE_HIGH_PRIO 0x02
|
|
#define NET_ESTABLISH_CAUSE_MT_ACCESS 0x03
|
|
#define NET_ESTABLISH_CAUSE_MO_SIGNAL 0x04
|
|
#define NET_ESTABLISH_CAUSE_MO_DATA 0x05
|
|
#define NET_ESTABLISH_CAUSE_V1020 0x06
|
|
|
|
/*
|
|
* --------------------------------------
|
|
* Network connection establishment type
|
|
* --------------------------------------
|
|
*/
|
|
#define NET_ESTABLISH_TYPE_ORIGINATING_SIGNAL 0x10
|
|
#define NET_ESTABLISH_TYPE_EMERGENCY_CALLS 0x20
|
|
#define NET_ESTABLISH_TYPE_ORIGINATING_CALLS 0x30
|
|
#define NET_ESTABLISH_TYPE_TERMINATING_CALLS 0x40
|
|
#define NET_ESTABLISH_TYPE_MO_CS_FALLBACK 0x50
|
|
|
|
/*
|
|
* -------------------
|
|
* PDN connection type
|
|
* -------------------
|
|
*/
|
|
#define NET_PDN_TYPE_IPV4 (0 + 1)
|
|
#define NET_PDN_TYPE_IPV6 (1 + 1)
|
|
#define NET_PDN_TYPE_IPV4V6 (2 + 1)
|
|
|
|
/****************************************************************************/
|
|
/************************ G L O B A L T Y P E S ************************/
|
|
/****************************************************************************/
|
|
|
|
/*
|
|
* ---------------------
|
|
* PDN connection status
|
|
* ---------------------
|
|
*/
|
|
typedef enum {
|
|
/* MT = The Mobile Terminal, NW = The Network */
|
|
NET_PDN_MT_DEFAULT_ACT = 1, /* MT has activated a PDN connection */
|
|
NET_PDN_NW_DEFAULT_DEACT, /* NW has deactivated a PDN connection */
|
|
NET_PDN_MT_DEFAULT_DEACT, /* MT has deactivated a PDN connection */
|
|
NET_PDN_NW_DEDICATED_ACT, /* NW has activated an EPS bearer context */
|
|
NET_PDN_MT_DEDICATED_ACT, /* MT has activated an EPS bearer context */
|
|
NET_PDN_NW_DEDICATED_DEACT, /* NW has deactivated an EPS bearer context */
|
|
NET_PDN_MT_DEDICATED_DEACT, /* MT has deactivated an EPS bearer context */
|
|
} network_pdn_state_t;
|
|
|
|
/*
|
|
* ---------------------------
|
|
* Network operator identifier
|
|
* ---------------------------
|
|
*/
|
|
typedef struct {
|
|
#define NET_FORMAT_LONG_SIZE 16 /* Long alphanumeric format */
|
|
#define NET_FORMAT_SHORT_SIZE 8 /* Short alphanumeric format */
|
|
#define NET_FORMAT_NUM_SIZE 6 /* Numeric format (PLMN identifier */
|
|
union {
|
|
unsigned char alpha_long[NET_FORMAT_LONG_SIZE+1];
|
|
unsigned char alpha_short[NET_FORMAT_SHORT_SIZE+1];
|
|
unsigned char num[NET_FORMAT_NUM_SIZE+1];
|
|
} id;
|
|
} network_plmn_t;
|
|
|
|
/*
|
|
* -------------------------------
|
|
* EPS bearer level QoS parameters
|
|
* -------------------------------
|
|
*/
|
|
typedef struct {
|
|
int gbrUL; /* Guaranteed Bit Rate for uplink */
|
|
int gbrDL; /* Guaranteed Bit Rate for downlink */
|
|
int mbrUL; /* Maximum Bit Rate for uplink */
|
|
int mbrDL; /* Maximum Bit Rate for downlink */
|
|
int qci; /* QoS Class Identifier */
|
|
} network_qos_t;
|
|
|
|
/*
|
|
* -----------------------------
|
|
* IPv4 packet filter parameters
|
|
* -----------------------------
|
|
*/
|
|
typedef struct {
|
|
unsigned char protocol; /* Protocol identifier */
|
|
unsigned char tos; /* Type of service */
|
|
#define NET_PACKET_FILTER_IPV4_ADDR_SIZE 4
|
|
unsigned char addr[NET_PACKET_FILTER_IPV4_ADDR_SIZE];
|
|
unsigned char mask[NET_PACKET_FILTER_IPV4_ADDR_SIZE];
|
|
} network_ipv4_data_t;
|
|
|
|
/*
|
|
* -----------------------------
|
|
* IPv6 packet filter parameters
|
|
* -----------------------------
|
|
*/
|
|
typedef struct {
|
|
unsigned char nh; /* Next header type */
|
|
unsigned char tf; /* Traffic class */
|
|
#define NET_PACKET_FILTER_IPV6_ADDR_SIZE 16
|
|
unsigned char addr[NET_PACKET_FILTER_IPV6_ADDR_SIZE];
|
|
unsigned char mask[NET_PACKET_FILTER_IPV6_ADDR_SIZE];
|
|
unsigned int ipsec; /* IPSec security parameter index */
|
|
unsigned int fl; /* Flow label */
|
|
} network_ipv6_data_t;
|
|
|
|
/*
|
|
* -------------
|
|
* Packet Filter
|
|
* -------------
|
|
*/
|
|
typedef struct {
|
|
unsigned char id; /* Packet filter identifier */
|
|
unsigned char dir; /* Packet filter direction */
|
|
unsigned char precedence; /* Evaluation precedence */
|
|
union {
|
|
network_ipv4_data_t ipv4;
|
|
network_ipv6_data_t ipv6;
|
|
} data;
|
|
unsigned short lport; /* Local (UE) port number */
|
|
unsigned short rport; /* Remote (network) port number */
|
|
} network_pkf_t;
|
|
|
|
/*
|
|
* ---------------------
|
|
* Traffic Flow Template
|
|
* ---------------------
|
|
*/
|
|
typedef struct {
|
|
int n_pkfs;
|
|
#define NET_PACKET_FILTER_MAX 16
|
|
network_pkf_t* pkf[NET_PACKET_FILTER_MAX];
|
|
} network_tft_t;
|
|
|
|
/****************************************************************************/
|
|
/******************** G L O B A L V A R I A B L E S ********************/
|
|
/****************************************************************************/
|
|
|
|
/****************************************************************************/
|
|
/****************** E X P O R T E D F U N C T I O N S ******************/
|
|
/****************************************************************************/
|
|
|
|
#endif /* __NETWORKDEF_H__*/
|