libosmogsm 1.13.1.1-afb4 Osmocom GSM library

ipaccess.h
Go to the documentation of this file.
1
3#pragma once
4
5#include <stdint.h>
6
7#define IPA_TCP_PORT_OML 3002
8#define IPA_TCP_PORT_RSL 3003
9
10 struct ipaccess_head {
11 uint16_t len; /* network byte order */
12 uint8_t proto;
13 uint8_t data[0];
14} __attribute__ ((packed));
15
16 struct ipaccess_head_ext {
17 uint8_t proto;
18 uint8_t data[0];
19} __attribute__ ((packed));
20
21 enum ipaccess_proto {
22 IPAC_PROTO_RSL = 0x00,
23 IPAC_PROTO_IPACCESS = 0xfe,
24 IPAC_PROTO_SCCP = 0xfd,
25 IPAC_PROTO_OML = 0xff,
26
27
28 /* OpenBSC extensions */
29 IPAC_PROTO_OSMO = 0xee,
30 IPAC_PROTO_MGCP_OLD = 0xfc,
31};
32
33 enum ipaccess_proto_ext {
34 IPAC_PROTO_EXT_CTRL = 0x00,
35 IPAC_PROTO_EXT_MGCP = 0x01,
36 IPAC_PROTO_EXT_LAC = 0x02,
37 IPAC_PROTO_EXT_SMSC = 0x03,
38 IPAC_PROTO_EXT_ORC = 0x04, /* OML Router Control */
39 IPAC_PROTO_EXT_GSUP = 0x05, /* GSUP GPRS extension */
40 IPAC_PROTO_EXT_OAP = 0x06, /* Osmocom Authn Protocol */
41 IPAC_PROTO_EXT_RSPRO = 0x07, /* Remote SIM protocol */
42 IPAC_PROTO_EXT_PCU = 0x08, /* BSC<->BTS<->PCU communication */
43 IPAC_PROTO_EXT_TCAP_ROUTING = 0x09, /* TCAP Routing Protocol */
44};
45
46 enum ipaccess_msgtype {
47 IPAC_MSGT_PING = 0x00, /* Heartbeet */
48 IPAC_MSGT_PONG = 0x01, /* Heartbeat Ack */
49 IPAC_MSGT_ID_GET = 0x04, /* Identity Request */
50 IPAC_MSGT_ID_RESP = 0x05, /* Identity */
51 IPAC_MSGT_ID_ACK = 0x06, /* Identity Ack */
52 IPAC_MSGT_ID_NACK = 0x07, /* Identity Nack */
53 IPAC_MSGT_PROXY = 0x08, /* Proxy */
54 IPAC_MSGT_PROXY_ACK = 0x09, /* Proxy Ack */
55 IPAC_MSGT_PROXY_NACK = 0x0a, /* Proxy Nack */
56 IPAC_MSGT_SSL_INFO = 0x0b, /* SSL Info */
57
58 /* OpenBSC extension */
59 IPAC_MSGT_SCCP_OLD = 0xff,
60};
61
62 enum ipaccess_id_tags {
63 IPAC_IDTAG_SERNR = 0x00, /* Unit Serial Number */
64 IPAC_IDTAG_UNITNAME = 0x01, /* Unit Name */
65 IPAC_IDTAG_LOCATION1 = 0x02, /* Unit Location */
66 IPAC_IDTAG_LOCATION2 = 0x03, /* Unit Type */
67 IPAC_IDTAG_EQUIPVERS = 0x04, /* Hardware Version */
68 IPAC_IDTAG_SWVERSION = 0x05, /* Software Version */
69 IPAC_IDTAG_IPADDR = 0x06, /* IP Address */
70 IPAC_IDTAG_MACADDR = 0x07, /* Ethernet Address */
71 IPAC_IDTAG_UNIT = 0x08, /* Unit ID */
72 IPAC_IDTAG_USERNAME = 0x09, /* User Name */
73 IPAC_IDTAG_PASSWORD = 0x0a, /* Password */
74 IPAC_IDTAG_ACCESS_CLASS = 0x0b, /* Access Class */
75 IPAC_IDTG_APP_PROTO_VER = 0x0c, /* Application Protocol Version */
76};
77
78/*
79 * Firmware specific header
80 */
81 struct sdp_firmware {
82 char magic[4];
83 char more_magic[2];
84 uint16_t more_more_magic;
85 uint32_t header_length;
86 uint32_t file_length;
87 char sw_part[20];
88 char text1[64];
89 char time[12];
90 char date[14];
91 char text2[10];
92 char version[20];
93 uint16_t table_offset;
94 /* stuff i don't know */
95} __attribute__((packed));
96
97 struct sdp_header_entry {
98 uint16_t something1;
99 char text1[64];
100 char time[12];
101 char date[14];
102 char text2[10];
103 char version[20];
104 uint32_t length;
105 uint32_t addr1;
106 uint32_t addr2;
107 uint32_t start;
108} __attribute__((packed));
ipaccess_msgtype
ipaccess_msgtype
Definition: ipaccess.h:46
IPAC_MSGT_ID_GET
@ IPAC_MSGT_ID_GET
Definition: ipaccess.h:49
IPAC_MSGT_ID_ACK
@ IPAC_MSGT_ID_ACK
Definition: ipaccess.h:51
IPAC_MSGT_SCCP_OLD
@ IPAC_MSGT_SCCP_OLD
Definition: ipaccess.h:59
IPAC_MSGT_PROXY
@ IPAC_MSGT_PROXY
Definition: ipaccess.h:53
IPAC_MSGT_SSL_INFO
@ IPAC_MSGT_SSL_INFO
Definition: ipaccess.h:56
IPAC_MSGT_PONG
@ IPAC_MSGT_PONG
Definition: ipaccess.h:48
IPAC_MSGT_ID_NACK
@ IPAC_MSGT_ID_NACK
Definition: ipaccess.h:52
IPAC_MSGT_ID_RESP
@ IPAC_MSGT_ID_RESP
Definition: ipaccess.h:50
IPAC_MSGT_PROXY_NACK
@ IPAC_MSGT_PROXY_NACK
Definition: ipaccess.h:55
IPAC_MSGT_PROXY_ACK
@ IPAC_MSGT_PROXY_ACK
Definition: ipaccess.h:54
IPAC_MSGT_PING
@ IPAC_MSGT_PING
Definition: ipaccess.h:47
ipaccess_proto_ext
ipaccess_proto_ext
Definition: ipaccess.h:33
IPAC_PROTO_EXT_GSUP
@ IPAC_PROTO_EXT_GSUP
Definition: ipaccess.h:39
IPAC_PROTO_EXT_CTRL
@ IPAC_PROTO_EXT_CTRL
Definition: ipaccess.h:34
IPAC_PROTO_EXT_ORC
@ IPAC_PROTO_EXT_ORC
Definition: ipaccess.h:38
IPAC_PROTO_EXT_LAC
@ IPAC_PROTO_EXT_LAC
Definition: ipaccess.h:36
IPAC_PROTO_EXT_OAP
@ IPAC_PROTO_EXT_OAP
Definition: ipaccess.h:40
IPAC_PROTO_EXT_RSPRO
@ IPAC_PROTO_EXT_RSPRO
Definition: ipaccess.h:41
IPAC_PROTO_EXT_TCAP_ROUTING
@ IPAC_PROTO_EXT_TCAP_ROUTING
Definition: ipaccess.h:43
IPAC_PROTO_EXT_SMSC
@ IPAC_PROTO_EXT_SMSC
Definition: ipaccess.h:37
IPAC_PROTO_EXT_PCU
@ IPAC_PROTO_EXT_PCU
Definition: ipaccess.h:42
IPAC_PROTO_EXT_MGCP
@ IPAC_PROTO_EXT_MGCP
Definition: ipaccess.h:35
ipaccess_id_tags
ipaccess_id_tags
Definition: ipaccess.h:62
IPAC_IDTAG_PASSWORD
@ IPAC_IDTAG_PASSWORD
Definition: ipaccess.h:73
IPAC_IDTAG_USERNAME
@ IPAC_IDTAG_USERNAME
Definition: ipaccess.h:72
IPAC_IDTG_APP_PROTO_VER
@ IPAC_IDTG_APP_PROTO_VER
Definition: ipaccess.h:75
IPAC_IDTAG_EQUIPVERS
@ IPAC_IDTAG_EQUIPVERS
Definition: ipaccess.h:67
IPAC_IDTAG_MACADDR
@ IPAC_IDTAG_MACADDR
Definition: ipaccess.h:70
IPAC_IDTAG_ACCESS_CLASS
@ IPAC_IDTAG_ACCESS_CLASS
Definition: ipaccess.h:74
IPAC_IDTAG_UNIT
@ IPAC_IDTAG_UNIT
Definition: ipaccess.h:71
IPAC_IDTAG_UNITNAME
@ IPAC_IDTAG_UNITNAME
Definition: ipaccess.h:64
IPAC_IDTAG_SWVERSION
@ IPAC_IDTAG_SWVERSION
Definition: ipaccess.h:68
IPAC_IDTAG_LOCATION2
@ IPAC_IDTAG_LOCATION2
Definition: ipaccess.h:66
IPAC_IDTAG_LOCATION1
@ IPAC_IDTAG_LOCATION1
Definition: ipaccess.h:65
IPAC_IDTAG_SERNR
@ IPAC_IDTAG_SERNR
Definition: ipaccess.h:63
IPAC_IDTAG_IPADDR
@ IPAC_IDTAG_IPADDR
Definition: ipaccess.h:69
ipaccess_proto
ipaccess_proto
Definition: ipaccess.h:21
IPAC_PROTO_RSL
@ IPAC_PROTO_RSL
Definition: ipaccess.h:22
IPAC_PROTO_IPACCESS
@ IPAC_PROTO_IPACCESS
Definition: ipaccess.h:23
IPAC_PROTO_SCCP
@ IPAC_PROTO_SCCP
Definition: ipaccess.h:24
IPAC_PROTO_OML
@ IPAC_PROTO_OML
Definition: ipaccess.h:25
IPAC_PROTO_OSMO
@ IPAC_PROTO_OSMO
Definition: ipaccess.h:29
IPAC_PROTO_MGCP_OLD
@ IPAC_PROTO_MGCP_OLD
Definition: ipaccess.h:30
__attribute__
enum ipaccess_proto __attribute__
ipaccess_head_ext
Definition: ipaccess.h:16
ipaccess_head_ext::proto
uint8_t proto
Definition: ipaccess.h:17
ipaccess_head_ext::data
uint8_t data[0]
Definition: ipaccess.h:18
ipaccess_head
Definition: ipaccess.h:10
ipaccess_head::data
uint8_t data[0]
Definition: ipaccess.h:13
ipaccess_head::proto
uint8_t proto
Definition: ipaccess.h:12
ipaccess_head::len
uint16_t len
Definition: ipaccess.h:11
sdp_firmware
Definition: ipaccess.h:81
sdp_firmware::time
char time[12]
Definition: ipaccess.h:89
sdp_firmware::date
char date[14]
Definition: ipaccess.h:90
sdp_firmware::file_length
uint32_t file_length
Definition: ipaccess.h:86
sdp_firmware::text2
char text2[10]
Definition: ipaccess.h:91
sdp_firmware::text1
char text1[64]
Definition: ipaccess.h:88
sdp_firmware::header_length
uint32_t header_length
Definition: ipaccess.h:85
sdp_firmware::more_more_magic
uint16_t more_more_magic
Definition: ipaccess.h:84
sdp_firmware::table_offset
uint16_t table_offset
Definition: ipaccess.h:93
sdp_firmware::magic
char magic[4]
Definition: ipaccess.h:82
sdp_firmware::sw_part
char sw_part[20]
Definition: ipaccess.h:87
sdp_firmware::more_magic
char more_magic[2]
Definition: ipaccess.h:83
sdp_firmware::version
char version[20]
Definition: ipaccess.h:92
sdp_header_entry
Definition: ipaccess.h:97
sdp_header_entry::something1
uint16_t something1
Definition: ipaccess.h:98
sdp_header_entry::addr2
uint32_t addr2
Definition: ipaccess.h:106
sdp_header_entry::addr1
uint32_t addr1
Definition: ipaccess.h:105
sdp_header_entry::start
uint32_t start
Definition: ipaccess.h:107
sdp_header_entry::length
uint32_t length
Definition: ipaccess.h:104
sdp_header_entry::date
char date[14]
Definition: ipaccess.h:101
sdp_header_entry::text1
char text1[64]
Definition: ipaccess.h:99
sdp_header_entry::text2
char text2[10]
Definition: ipaccess.h:102
sdp_header_entry::version
char version[20]
Definition: ipaccess.h:103
sdp_header_entry::time
char time[12]
Definition: ipaccess.h:100