blob: 692e79576f5fc9bc2cf27fda9b5cbdce9ca94bdb [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);
Pau Espin Pedrol9862bcb2018-08-22 21:54:12 +020034void ipaccess_drop_oml_deferred(struct gsm_bts *bts);
Holger Hans Peter Freyther1464a122014-11-06 16:32:57 +010035void ipaccess_drop_rsl(struct gsm_bts_trx *trx);
Holger Hans Peter Freytherd3d5be12010-02-09 14:37:23 +010036
Holger Hans Peter Freyther0183edd2009-12-30 06:13:36 +010037struct sdp_header_item {
Holger Hans Peter Freytherc9f8a6d2009-12-30 06:10:56 +010038 struct sdp_header_entry header_entry;
39 struct llist_head entry;
Holger Hans Peter Freyther38722cc2010-03-22 11:22:54 +010040 off_t absolute_offset;
Holger Hans Peter Freytherc9f8a6d2009-12-30 06:10:56 +010041};
42
Holger Hans Peter Freyther4a98cad2009-12-30 05:56:49 +010043struct sdp_header {
44 struct sdp_firmware firmware_info;
Holger Hans Peter Freytherc9f8a6d2009-12-30 06:10:56 +010045
46 /* for more_magic a list of sdp_header_entry_list */
47 struct llist_head header_list;
48
49 /* the entry of the sdp_header */
50 struct llist_head entry;
Holger Hans Peter Freyther4a98cad2009-12-30 05:56:49 +010051};
52
53int ipaccess_analyze_file(int fd, const unsigned int st_size, const unsigned base_offset, struct llist_head *list);
54
Harald Welte4f361fc2009-02-15 15:32:53 +000055#endif /* _IPACCESS_H */