Harald Welte | 4f361fc | 2009-02-15 15:32:53 +0000 | [diff] [blame] | 1 | #ifndef _IPACCESS_H |
| 2 | #define _IPACCESS_H |
| 3 | |
Pablo Neira Ayuso | ed5cacb | 2011-08-17 22:44:07 +0200 | [diff] [blame] | 4 | #include <osmocom/abis/e1_input.h> |
Pablo Neira Ayuso | 136f453 | 2011-03-22 16:47:59 +0100 | [diff] [blame] | 5 | #include <osmocom/core/linuxlist.h> |
Harald Welte | a85515b | 2011-05-22 21:57:36 +0200 | [diff] [blame] | 6 | #include <osmocom/gsm/protocol/ipaccess.h> |
Harald Welte | d3fa84d | 2016-04-20 17:50:17 +0200 | [diff] [blame] | 7 | #include <osmocom/gsm/protocol/gsm_23_003.h> |
Harald Welte | 4f361fc | 2009-02-15 15:32:53 +0000 | [diff] [blame] | 8 | |
Harald Welte | d9956d9 | 2017-12-17 21:48:47 +0100 | [diff] [blame] | 9 | struct gsm_bts; |
| 10 | struct gsm_bts_trx; |
| 11 | |
Holger Hans Peter Freyther | ec8a4e2 | 2010-10-14 22:56:06 +0200 | [diff] [blame] | 12 | struct 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 Welte | d3fa84d | 2016-04-20 17:50:17 +0200 | [diff] [blame] | 17 | char imsi[GSM23003_IMSI_MAX_DIGITS+1]; |
Holger Hans Peter Freyther | 7a0010b | 2013-04-29 20:40:44 +0200 | [diff] [blame] | 18 | uint8_t data[0]; |
Holger Hans Peter Freyther | ec8a4e2 | 2010-10-14 22:56:06 +0200 | [diff] [blame] | 19 | } __attribute__((packed)); |
| 20 | |
Holger Hans Peter Freyther | c3f2832 | 2011-04-23 15:08:44 +0200 | [diff] [blame] | 21 | /* |
Holger Hans Peter Freyther | 2a9eeaa | 2011-04-23 16:37:58 +0200 | [diff] [blame] | 22 | * @add_remove 0 for remove, 1 for add, 3 to asK |
Holger Hans Peter Freyther | c3f2832 | 2011-04-23 15:08:44 +0200 | [diff] [blame] | 23 | * @nr_lacs Number of extra lacs inside this package |
| 24 | * @lac One lac entry |
| 25 | */ |
| 26 | struct 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 Freyther | 1464a12 | 2014-11-06 16:32:57 +0100 | [diff] [blame] | 33 | void ipaccess_drop_oml(struct gsm_bts *bts); |
Pau Espin Pedrol | 9862bcb | 2018-08-22 21:54:12 +0200 | [diff] [blame] | 34 | void ipaccess_drop_oml_deferred(struct gsm_bts *bts); |
Holger Hans Peter Freyther | 1464a12 | 2014-11-06 16:32:57 +0100 | [diff] [blame] | 35 | void ipaccess_drop_rsl(struct gsm_bts_trx *trx); |
Holger Hans Peter Freyther | d3d5be1 | 2010-02-09 14:37:23 +0100 | [diff] [blame] | 36 | |
Holger Hans Peter Freyther | 0183edd | 2009-12-30 06:13:36 +0100 | [diff] [blame] | 37 | struct sdp_header_item { |
Holger Hans Peter Freyther | c9f8a6d | 2009-12-30 06:10:56 +0100 | [diff] [blame] | 38 | struct sdp_header_entry header_entry; |
| 39 | struct llist_head entry; |
Holger Hans Peter Freyther | 38722cc | 2010-03-22 11:22:54 +0100 | [diff] [blame] | 40 | off_t absolute_offset; |
Holger Hans Peter Freyther | c9f8a6d | 2009-12-30 06:10:56 +0100 | [diff] [blame] | 41 | }; |
| 42 | |
Holger Hans Peter Freyther | 4a98cad | 2009-12-30 05:56:49 +0100 | [diff] [blame] | 43 | struct sdp_header { |
| 44 | struct sdp_firmware firmware_info; |
Holger Hans Peter Freyther | c9f8a6d | 2009-12-30 06:10:56 +0100 | [diff] [blame] | 45 | |
| 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 Freyther | 4a98cad | 2009-12-30 05:56:49 +0100 | [diff] [blame] | 51 | }; |
| 52 | |
| 53 | int ipaccess_analyze_file(int fd, const unsigned int st_size, const unsigned base_offset, struct llist_head *list); |
| 54 | |
Harald Welte | 4f361fc | 2009-02-15 15:32:53 +0000 | [diff] [blame] | 55 | #endif /* _IPACCESS_H */ |