libosmogsm  1.14.2
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 
17  uint8_t proto;
18  uint8_t data[0];
19 } __attribute__ ((packed));
20 
26 
27 
28  /* OpenBSC extensions */
31 };
32 
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 
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 */
60 };
61 
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 
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
Definition: ipaccess.h:46
@ IPAC_MSGT_ID_GET
Definition: ipaccess.h:49
@ IPAC_MSGT_ID_ACK
Definition: ipaccess.h:51
@ IPAC_MSGT_SCCP_OLD
Definition: ipaccess.h:59
@ IPAC_MSGT_PROXY
Definition: ipaccess.h:53
@ IPAC_MSGT_SSL_INFO
Definition: ipaccess.h:56
@ IPAC_MSGT_PONG
Definition: ipaccess.h:48
@ IPAC_MSGT_ID_NACK
Definition: ipaccess.h:52
@ IPAC_MSGT_ID_RESP
Definition: ipaccess.h:50
@ IPAC_MSGT_PROXY_NACK
Definition: ipaccess.h:55
@ IPAC_MSGT_PROXY_ACK
Definition: ipaccess.h:54
@ IPAC_MSGT_PING
Definition: ipaccess.h:47
ipaccess_proto_ext
Definition: ipaccess.h:33
@ IPAC_PROTO_EXT_GSUP
Definition: ipaccess.h:39
@ IPAC_PROTO_EXT_CTRL
Definition: ipaccess.h:34
@ IPAC_PROTO_EXT_ORC
Definition: ipaccess.h:38
@ IPAC_PROTO_EXT_LAC
Definition: ipaccess.h:36
@ IPAC_PROTO_EXT_OAP
Definition: ipaccess.h:40
@ IPAC_PROTO_EXT_RSPRO
Definition: ipaccess.h:41
@ IPAC_PROTO_EXT_TCAP_ROUTING
Definition: ipaccess.h:43
@ IPAC_PROTO_EXT_SMSC
Definition: ipaccess.h:37
@ IPAC_PROTO_EXT_PCU
Definition: ipaccess.h:42
@ IPAC_PROTO_EXT_MGCP
Definition: ipaccess.h:35
ipaccess_id_tags
Definition: ipaccess.h:62
@ IPAC_IDTAG_PASSWORD
Definition: ipaccess.h:73
@ IPAC_IDTAG_USERNAME
Definition: ipaccess.h:72
@ IPAC_IDTG_APP_PROTO_VER
Definition: ipaccess.h:75
@ IPAC_IDTAG_EQUIPVERS
Definition: ipaccess.h:67
@ IPAC_IDTAG_MACADDR
Definition: ipaccess.h:70
@ IPAC_IDTAG_ACCESS_CLASS
Definition: ipaccess.h:74
@ IPAC_IDTAG_UNIT
Definition: ipaccess.h:71
@ IPAC_IDTAG_UNITNAME
Definition: ipaccess.h:64
@ IPAC_IDTAG_SWVERSION
Definition: ipaccess.h:68
@ IPAC_IDTAG_LOCATION2
Definition: ipaccess.h:66
@ IPAC_IDTAG_LOCATION1
Definition: ipaccess.h:65
@ IPAC_IDTAG_SERNR
Definition: ipaccess.h:63
@ IPAC_IDTAG_IPADDR
Definition: ipaccess.h:69
ipaccess_proto
Definition: ipaccess.h:21
@ IPAC_PROTO_RSL
Definition: ipaccess.h:22
@ IPAC_PROTO_IPACCESS
Definition: ipaccess.h:23
@ IPAC_PROTO_SCCP
Definition: ipaccess.h:24
@ IPAC_PROTO_OML
Definition: ipaccess.h:25
@ IPAC_PROTO_OSMO
Definition: ipaccess.h:29
@ IPAC_PROTO_MGCP_OLD
Definition: ipaccess.h:30
enum ipaccess_proto __attribute__
Definition: ipaccess.h:16
uint8_t proto
Definition: ipaccess.h:17
uint8_t data[0]
Definition: ipaccess.h:18
Definition: ipaccess.h:10
uint8_t data[0]
Definition: ipaccess.h:13
uint8_t proto
Definition: ipaccess.h:12
uint16_t len
Definition: ipaccess.h:11
Definition: ipaccess.h:81
char time[12]
Definition: ipaccess.h:89
char date[14]
Definition: ipaccess.h:90
uint32_t file_length
Definition: ipaccess.h:86
char text2[10]
Definition: ipaccess.h:91
char text1[64]
Definition: ipaccess.h:88
uint32_t header_length
Definition: ipaccess.h:85
uint16_t more_more_magic
Definition: ipaccess.h:84
uint16_t table_offset
Definition: ipaccess.h:93
char magic[4]
Definition: ipaccess.h:82
char sw_part[20]
Definition: ipaccess.h:87
char more_magic[2]
Definition: ipaccess.h:83
char version[20]
Definition: ipaccess.h:92
Definition: ipaccess.h:97
uint16_t something1
Definition: ipaccess.h:98
uint32_t addr2
Definition: ipaccess.h:106
uint32_t addr1
Definition: ipaccess.h:105
uint32_t start
Definition: ipaccess.h:107
uint32_t length
Definition: ipaccess.h:104
char date[14]
Definition: ipaccess.h:101
char text1[64]
Definition: ipaccess.h:99
char text2[10]
Definition: ipaccess.h:102
char version[20]
Definition: ipaccess.h:103
char time[12]
Definition: ipaccess.h:100