blob: 5b53b3a5b11a9f699e5ae1a80e65658cd8d5c3e5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#ifndef _OSMO_NETIF_IPA_H_
#define _OSMO_NETIF_IPA_H_
struct ipa_head {
uint16_t len; /* network byte order */
uint8_t proto;
uint8_t data[0];
} __attribute__ ((packed));
/* IPA protocols. */
#define IPAC_PROTO_RSL 0x00
#define IPAC_PROTO_IPACCESS 0xfe
#define IPAC_PROTO_SCCP 0xfd
#define IPAC_PROTO_OML 0xff
#define IPAC_PROTO_OSMO 0xee /* OpenBSC extension. */
#define IPAC_PROTO_MGCP_OLD 0xfc /* OpenBSC extension. */
struct ipa_head_ext {
uint8_t proto;
uint8_t data[0];
} __attribute__ ((packed));
/* Protocol extensions. */
#define IPAC_PROTO_EXT_CTRL 0x00
#define IPAC_PROTO_EXT_MGCP 0x01
#define IPAC_PROTO_EXT_LAC 0x02
/* Message types. */
#define IPAC_MSGT_PING 0x00
#define IPAC_MSGT_PONG 0x01
#define IPAC_MSGT_ID_GET 0x04
#define IPAC_MSGT_ID_RESP 0x05
#define IPAC_MSGT_ID_ACK 0x06
#define IPAC_MSGT_SCCP_OLD 0xff /* OpenBSC extension */
enum ipaccess_id_tags {
IPAC_IDTAG_SERNR = 0x00,
IPAC_IDTAG_UNITNAME = 0x01,
IPAC_IDTAG_LOCATION1 = 0x02,
IPAC_IDTAG_LOCATION2 = 0x03,
IPAC_IDTAG_EQUIPVERS = 0x04,
IPAC_IDTAG_SWVERSION = 0x05,
IPAC_IDTAG_IPADDR = 0x06,
IPAC_IDTAG_MACADDR = 0x07,
IPAC_IDTAG_UNIT = 0x08,
};
struct msgb *osmo_ipa_msg_alloc(int headroom);
void osmo_ipa_msg_push_header(struct msgb *msg, uint8_t proto);
int osmo_ipa_msg_recv(int fd, struct msgb *msg);
#endif
|