blob: 82e89c27d9c9dcaf538d9711ba8a8d6793495fc2 [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>
Holger Hans Peter Freytherec8a4e22010-10-14 22:56:06 +02005#include "gsm_subscriber.h"
Pablo Neira Ayuso136f4532011-03-22 16:47:59 +01006#include <osmocom/core/linuxlist.h>
Harald Weltea85515b2011-05-22 21:57:36 +02007#include <osmocom/gsm/protocol/ipaccess.h>
Harald Welted3fa84d2016-04-20 17:50:17 +02008#include <osmocom/gsm/protocol/gsm_23_003.h>
Harald Welte4f361fc2009-02-15 15:32:53 +00009
Holger Hans Peter Freytherec8a4e22010-10-14 22:56:06 +020010struct ipac_msgt_sccp_state {
11 uint8_t src_ref[3];
12 uint8_t dst_ref[3];
13 uint8_t trans_id;
14 uint8_t invoke_id;
Harald Welted3fa84d2016-04-20 17:50:17 +020015 char imsi[GSM23003_IMSI_MAX_DIGITS+1];
Holger Hans Peter Freyther7a0010b2013-04-29 20:40:44 +020016 uint8_t data[0];
Holger Hans Peter Freytherec8a4e22010-10-14 22:56:06 +020017} __attribute__((packed));
18
Holger Hans Peter Freytherc3f28322011-04-23 15:08:44 +020019/*
Holger Hans Peter Freyther2a9eeaa2011-04-23 16:37:58 +020020 * @add_remove 0 for remove, 1 for add, 3 to asK
Holger Hans Peter Freytherc3f28322011-04-23 15:08:44 +020021 * @nr_lacs Number of extra lacs inside this package
22 * @lac One lac entry
23 */
24struct ipac_ext_lac_cmd {
25 uint8_t add_remove;
26 uint8_t nr_extra_lacs;
27 uint16_t lac;
28 uint8_t data[0];
29} __attribute__((packed));
30
Holger Hans Peter Freyther1464a122014-11-06 16:32:57 +010031void ipaccess_drop_oml(struct gsm_bts *bts);
32void ipaccess_drop_rsl(struct gsm_bts_trx *trx);
Holger Hans Peter Freytherd3d5be12010-02-09 14:37:23 +010033
Holger Hans Peter Freyther0183edd2009-12-30 06:13:36 +010034struct sdp_header_item {
Holger Hans Peter Freytherc9f8a6d2009-12-30 06:10:56 +010035 struct sdp_header_entry header_entry;
36 struct llist_head entry;
Holger Hans Peter Freyther38722cc2010-03-22 11:22:54 +010037 off_t absolute_offset;
Holger Hans Peter Freytherc9f8a6d2009-12-30 06:10:56 +010038};
39
Holger Hans Peter Freyther4a98cad2009-12-30 05:56:49 +010040struct sdp_header {
41 struct sdp_firmware firmware_info;
Holger Hans Peter Freytherc9f8a6d2009-12-30 06:10:56 +010042
43 /* for more_magic a list of sdp_header_entry_list */
44 struct llist_head header_list;
45
46 /* the entry of the sdp_header */
47 struct llist_head entry;
Holger Hans Peter Freyther4a98cad2009-12-30 05:56:49 +010048};
49
50int ipaccess_analyze_file(int fd, const unsigned int st_size, const unsigned base_offset, struct llist_head *list);
51
Harald Welte4f361fc2009-02-15 15:32:53 +000052#endif /* _IPACCESS_H */