blob: 3d0f6128cea4dd11181430c1786cc9626c1554bb [file] [log] [blame]
Harald Welte4f361fc2009-02-15 15:32:53 +00001#ifndef _IPACCESS_H
2#define _IPACCESS_H
3
Pablo Neira Ayusoed5cacb2011-08-17 22:44:07 +02004#include <osmocom/abis/e1_input.h>
Pablo Neira Ayuso136f4532011-03-22 16:47:59 +01005#include <osmocom/core/linuxlist.h>
Harald Weltea85515b2011-05-22 21:57:36 +02006#include <osmocom/gsm/protocol/ipaccess.h>
Harald Welted3fa84d2016-04-20 17:50:17 +02007#include <osmocom/gsm/protocol/gsm_23_003.h>
Harald Welte4f361fc2009-02-15 15:32:53 +00008
Harald Welted9956d92017-12-17 21:48:47 +01009struct gsm_bts;
10struct gsm_bts_trx;
11
Holger Hans Peter Freytherec8a4e22010-10-14 22:56:06 +020012struct ipac_msgt_sccp_state {
13 uint8_t src_ref[3];
14 uint8_t dst_ref[3];
15 uint8_t trans_id;
16 uint8_t invoke_id;
Harald Welted3fa84d2016-04-20 17:50:17 +020017 char imsi[GSM23003_IMSI_MAX_DIGITS+1];
Holger Hans Peter Freyther7a0010b2013-04-29 20:40:44 +020018 uint8_t data[0];
Holger Hans Peter Freytherec8a4e22010-10-14 22:56:06 +020019} __attribute__((packed));
20
Holger Hans Peter Freytherc3f28322011-04-23 15:08:44 +020021/*
Holger Hans Peter Freyther2a9eeaa2011-04-23 16:37:58 +020022 * @add_remove 0 for remove, 1 for add, 3 to asK
Holger Hans Peter Freytherc3f28322011-04-23 15:08:44 +020023 * @nr_lacs Number of extra lacs inside this package
24 * @lac One lac entry
25 */
26struct ipac_ext_lac_cmd {
27 uint8_t add_remove;
28 uint8_t nr_extra_lacs;
29 uint16_t lac;
30 uint8_t data[0];
31} __attribute__((packed));
32
Holger Hans Peter Freyther1464a122014-11-06 16:32:57 +010033void ipaccess_drop_oml(struct gsm_bts *bts);
34void ipaccess_drop_rsl(struct gsm_bts_trx *trx);
Holger Hans Peter Freytherd3d5be12010-02-09 14:37:23 +010035
Holger Hans Peter Freyther0183edd2009-12-30 06:13:36 +010036struct sdp_header_item {
Holger Hans Peter Freytherc9f8a6d2009-12-30 06:10:56 +010037 struct sdp_header_entry header_entry;
38 struct llist_head entry;
Holger Hans Peter Freyther38722cc2010-03-22 11:22:54 +010039 off_t absolute_offset;
Holger Hans Peter Freytherc9f8a6d2009-12-30 06:10:56 +010040};
41
Holger Hans Peter Freyther4a98cad2009-12-30 05:56:49 +010042struct sdp_header {
43 struct sdp_firmware firmware_info;
Holger Hans Peter Freytherc9f8a6d2009-12-30 06:10:56 +010044
45 /* for more_magic a list of sdp_header_entry_list */
46 struct llist_head header_list;
47
48 /* the entry of the sdp_header */
49 struct llist_head entry;
Holger Hans Peter Freyther4a98cad2009-12-30 05:56:49 +010050};
51
52int ipaccess_analyze_file(int fd, const unsigned int st_size, const unsigned base_offset, struct llist_head *list);
53
Harald Welte4f361fc2009-02-15 15:32:53 +000054#endif /* _IPACCESS_H */