diff options
Diffstat (limited to 'sigtran/sccp_sap.h')
-rw-r--r-- | sigtran/sccp_sap.h | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/sigtran/sccp_sap.h b/sigtran/sccp_sap.h deleted file mode 100644 index 89d92a9..0000000 --- a/sigtran/sccp_sap.h +++ /dev/null @@ -1,199 +0,0 @@ -#pragma once - -/* SCCP User SAP description */ - -/* (C) 2015 by Harald Welte <laforge@gnumonks.org> - * All Rights Reserved - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation; either version 3 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 Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - * - */ - -#include <stdint.h> -#include <osmocom/core/prim.h> - -#include <netinet/in.h> - -/* FIXME: properly define this based on libosmocore */ -#define SCCP_SAP_USER 0x2342 - -/* detailed coding of primitives at the SAP_SCCP_USER */ - -/*! \brief SCCP-User primitives as per Q.711 */ -enum osmo_scu_prim_type { - /* connection oriented, 6.1.1 */ - OSMO_SCU_PRIM_N_CONNECT, - OSMO_SCU_PRIM_N_DATA, - OSMO_SCU_PRIM_N_EXPEDITED_DATA, - OSMO_SCU_PRIM_N_DISCONNECT, - OSMO_SCU_PRIM_N_RESET, - OSMO_SCU_PRIM_N_INFORM, - /* connectionless, 6.2.2 */ - OSMO_SCU_PRIM_N_UNITDATA, - OSMO_SCU_PRIM_N_NOTICE, - /* management */ - OSMO_SCU_PRIM_N_COORD, - OSMO_SCU_PRIM_N_STATE, - OSMO_SCU_PRIM_N_PCSTATE, -}; - -#define OSMO_SCCP_ADDR_T_GT 0x0001 -#define OSMO_SCCP_ADDR_T_PC 0x0002 -#define OSMO_SCCP_ADDR_T_SSN 0x0004 -#define OSMO_SCCP_ADDR_T_IPv4 0x0008 -#define OSMO_SCCP_ADDR_T_IPv6 0x0010 - -/* Q.713 3.4.1 + RFC 3868 3.10.2.3 */ -enum osmo_sccp_routing_ind { - OSMO_SCCP_RI_GT, - OSMO_SCCP_RI_SSN_PC, - OSMO_SCCP_RI_SSN_IP, -}; - -/* Q.713 3.4.1 + RFC 3868 3.10.2.3 */ -enum osmo_sccp_gti { - OSMO_SCCP_GTI_NO_GT, - OSMO_SCCP_GTI_NAI_ONLY, - OSMO_SCCP_GTI_TT_ONLY, - OSMO_SCCP_GTI_TT_NPL_ENC, - OSMO_SCCP_GTI_TT_NPL_ENC_NAI, -}; - -/* RFC 3868 3.10.2.3 */ -enum osmo_sccp_npi { - OSMO_SCCP_NPI_UNKNOWN = 0, - OSMO_SCCP_NPI_E164_ISDN = 1, - OSMO_SCCP_NPI_GEERIC = 2, - OSMO_SCCP_NPI_X121_DATA = 3, - OSMO_SCCP_NPI_F69_TELEX = 4, - OSMO_SCCP_NPI_E210_MARITIME = 5, - OSMO_SCCP_NPI_E212_LAND = 6, - OSMO_SCCP_NPI_E214_ISDN_MOBILE = 7, - OSMO_SCCP_NPI_PRIVATE = 14, -}; - -/* Q.713 3.4.2.3.1 + RFC 3868 3.10.2.3 */ -enum osmo_sccp_nai { - OSMO_SCCP_NAI_UNKNOWN = 0, - OSMO_SCCP_NAI_SUBSCR = 1, - OSMO_SCCP_NAI_RES_NAT_USE = 2, - OSMO_SCCP_NAI_NATL = 3, - OSMO_SCCP_NAI_INTL = 4, - /* 5.. 255: Spare */ -}; - -/* Q.713 3.4.2.2 */ -enum osmo_sccp_ssn { - OSMO_SCCP_SSN_MGMT = 1, - OSMO_SCCP_SSN_ISUP = 3, - OSMO_SCCP_SSN_OMAP = 4, - OSMO_SCCP_SSN_MAP = 5, - OSMO_SCCP_SSN_HLR = 6, - OSMO_SCCP_SSN_VLR = 7, - OSMO_SCCP_SSN_MSC = 8, - OSMO_SCCP_SSN_EIR = 9, - OSMO_SCCP_SSN_AUC = 0x0a, - OSMO_SCCP_SSN_ISDN_SS = 0x0b, - OSMO_SCCP_SSN_RES_INTL = 0x0c, - OSMO_SCCP_SSN_BISDN = 0x0d, - OSMO_SCCP_SSN_TC_TEST = 0x0e, -}; - -struct osmo_sccp_gt { - uint8_t gti; - uint8_t nr_digits; - uint8_t tt; - uint32_t npi; - uint32_t nai; - uint8_t digits[32]; -}; - -struct osmo_sccp_addr { - uint32_t presence; - struct osmo_sccp_gt gt; - uint32_t pc; - uint32_t ssn; - union { - struct in_addr v4; - struct in6_addr v6; - } ip; - /* we don't do hostnames */ -}; - -/* OSMO_SCU_PRIM_N_CONNECT */ -struct osmo_scu_connect_param { - struct osmo_sccp_addr called_addr; - struct osmo_sccp_addr calling_addr; - struct osmo_sccp_addr responding_addr; - //struct osmo_sccp_qos_pars qos_pars; - uint32_t sccp_class; - uint32_t importance; - uint32_t conn_id; - /* user data */ -}; - -/* OSMO_SCU_PRIM_N_DATA / OSMO_SCU_PRIM_N_EXPEDITED_DATA */ -struct osmo_scu_data_param { - uint32_t conn_id; - uint32_t importance; - /* user data */ -}; - -enum osmo_sccp_originator { - OSMO_SCCP_ORIG_NS_PROVIDER, - OSMO_SCCP_ORIG_NS_USER, - OSMO_SCCP_ORIG_UNDEFINED, -}; - -/* OSMO_SCU_PRIM_N_DISCONNECT */ -struct osmo_scu_disconn_param { - enum osmo_sccp_originator originator; - struct osmo_sccp_addr repsonding_addr; - uint32_t cause; - uint32_t conn_id; - uint32_t importance; - /* user data */ -}; - -/* OSMO_SCU_PRIM_N_RESET */ -struct osmo_scu_reset_param { - enum osmo_sccp_originator originator; - uint32_t cause; - uint32_t conn_id; -}; - -/* OSMO_SCU_PRIM_N_UNITDATA */ -struct osmo_scu_unitdata_param { - struct osmo_sccp_addr called_addr; - struct osmo_sccp_addr calling_addr; - uint32_t in_sequence_control; - uint32_t return_option; - uint32_t importance; - /* user data */ -}; - -struct osmo_scu_prim { - struct osmo_prim_hdr oph; - union { - struct osmo_scu_connect_param connect; - struct osmo_scu_data_param data; - struct osmo_scu_disconn_param disconnect; - struct osmo_scu_reset_param reset; - struct osmo_scu_unitdata_param unitdata; - } u; -}; - -#define msgb_scu_prim(msg) ((struct osmo_scu_prim *)(msg)->l1h) - -char *osmo_sccp_prim_name(struct osmo_prim_hdr *oph); |