diff options
author | Harald Welte <laforge@gnumonks.org> | 2011-05-23 22:17:26 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2011-05-23 22:17:26 +0200 |
commit | d76345aefa34c576dd142eb64cb0f765cda22933 (patch) | |
tree | 6a08f29e160aea04859d9953dd4db2fc7696271f /src/shared/libosmocore/include | |
parent | 308f9e506e6ae2f30a4b49895f80aa26605e50c0 (diff) | |
parent | 3036612d59a5c8d97b2086a5e7817613f45948ef (diff) |
Merge commit '3036612d59a5c8d97b2086a5e7817613f45948ef'
Diffstat (limited to 'src/shared/libosmocore/include')
5 files changed, 123 insertions, 2 deletions
diff --git a/src/shared/libosmocore/include/osmocom/core/socket.h b/src/shared/libosmocore/include/osmocom/core/socket.h index a3baa9d5..b2601c76 100644 --- a/src/shared/libosmocore/include/osmocom/core/socket.h +++ b/src/shared/libosmocore/include/osmocom/core/socket.h @@ -8,6 +8,9 @@ struct sockaddr; int osmo_sock_init(uint16_t family, uint16_t type, uint8_t proto, const char *host, uint16_t port, int connect0_bind1); +int osmo_sock_init_ofd(struct osmo_fd *ofd, int family, int type, int proto, + const char *host, uint16_t port, int connect0_bind1); + int osmo_sock_init_sa(struct sockaddr *ss, uint16_t type, uint8_t proto, int connect0_bind1); diff --git a/src/shared/libosmocore/include/osmocom/gsm/Makefile.am b/src/shared/libosmocore/include/osmocom/gsm/Makefile.am index a39d2d04..c3670ec7 100644 --- a/src/shared/libosmocore/include/osmocom/gsm/Makefile.am +++ b/src/shared/libosmocore/include/osmocom/gsm/Makefile.am @@ -1,5 +1,5 @@ osmogsm_HEADERS = a5.h comp128.h gsm0808.h gsm48_ie.h mncc.h rxlev_stat.h \ - gsm0480.h gsm48.h gsm_utils.h rsl.h tlv.h + gsm0480.h gsm48.h gsm_utils.h rsl.h tlv.h abis_nm.h SUBDIRS = protocol diff --git a/src/shared/libosmocore/include/osmocom/gsm/abis_nm.h b/src/shared/libosmocore/include/osmocom/gsm/abis_nm.h new file mode 100644 index 00000000..720b603d --- /dev/null +++ b/src/shared/libosmocore/include/osmocom/gsm/abis_nm.h @@ -0,0 +1,25 @@ +#ifndef _OSMO_GSM_ABIS_NM_H +#define _OSMO_GSM_ABIS_NM_H + +#include <osmocom/gsm/tlv.h> +#include <osmocom/gsm/protocol/gsm_12_21.h> + +const enum abis_nm_msgtype abis_nm_reports[4]; +const enum abis_nm_msgtype abis_nm_no_ack_nack[3]; +const enum abis_nm_msgtype abis_nm_sw_load_msgs[9]; +const enum abis_nm_msgtype abis_nm_nacks[33]; + +extern const struct value_string abis_nm_obj_class_names[]; +extern const struct value_string abis_nm_adm_state_names[]; + +const char *abis_nm_nack_cause_name(uint8_t cause); +const char *abis_nm_nack_name(uint8_t nack); +const char *abis_nm_event_type_name(uint8_t cause); +const char *abis_nm_severity_name(uint8_t cause); +const struct tlv_definition abis_nm_att_tlvdef; +const char *abis_nm_opstate_name(uint8_t os); +const char *abis_nm_avail_name(uint8_t avail); +const char *abis_nm_test_name(uint8_t test); +void abis_nm_debugp_foh(int ss, struct abis_om_fom_hdr *foh); + +#endif /* _OSMO_GSM_ABIS_NM_H */ diff --git a/src/shared/libosmocore/include/osmocom/gsm/protocol/Makefile.am b/src/shared/libosmocore/include/osmocom/gsm/protocol/Makefile.am index 8483f10a..7f6de639 100644 --- a/src/shared/libosmocore/include/osmocom/gsm/protocol/Makefile.am +++ b/src/shared/libosmocore/include/osmocom/gsm/protocol/Makefile.am @@ -1,6 +1,6 @@ osmogsm_proto_HEADERS = gsm_03_41.h \ gsm_04_08.h gsm_04_11.h gsm_04_12.h gsm_04_80.h \ gsm_08_08.h gsm_08_58.h \ - gsm_12_21.h + gsm_12_21.h ipaccess.h osmogsm_protodir = $(includedir)/osmocom/gsm/protocol diff --git a/src/shared/libosmocore/include/osmocom/gsm/protocol/ipaccess.h b/src/shared/libosmocore/include/osmocom/gsm/protocol/ipaccess.h new file mode 100644 index 00000000..27925725 --- /dev/null +++ b/src/shared/libosmocore/include/osmocom/gsm/protocol/ipaccess.h @@ -0,0 +1,93 @@ +#ifndef _OSMO_PROTO_IPACCESS_H +#define _OSMO_PROTO_IPACCESS_H + +#include <stdint.h> + +#define IPA_TCP_PORT_OML 3002 +#define IPA_TCP_PORT_RSL 3003 + +struct ipaccess_head { + uint16_t len; /* network byte order */ + uint8_t proto; + uint8_t data[0]; +} __attribute__ ((packed)); + +struct ipaccess_head_ext { + uint8_t proto; + uint8_t data[0]; +} __attribute__ ((packed)); + +enum ipaccess_proto { + IPAC_PROTO_RSL = 0x00, + IPAC_PROTO_IPACCESS = 0xfe, + IPAC_PROTO_SCCP = 0xfd, + IPAC_PROTO_OML = 0xff, + + + /* OpenBSC extensions */ + IPAC_PROTO_OSMO = 0xee, + IPAC_PROTO_MGCP_OLD = 0xfc, +}; + +enum ipaccess_proto_ext { + IPAC_PROTO_EXT_CTRL = 0x00, + IPAC_PROTO_EXT_MGCP = 0x01, + IPAC_PROTO_EXT_LAC = 0x02, +}; + +enum ipaccess_msgtype { + IPAC_MSGT_PING = 0x00, + IPAC_MSGT_PONG = 0x01, + IPAC_MSGT_ID_GET = 0x04, + IPAC_MSGT_ID_RESP = 0x05, + IPAC_MSGT_ID_ACK = 0x06, + + /* OpenBSC extension */ + IPAC_MSGT_SCCP_OLD = 0xff, +}; + +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, +}; + +/* + * Firmware specific header + */ +struct sdp_firmware { + char magic[4]; + char more_magic[2]; + uint16_t more_more_magic; + uint32_t header_length; + uint32_t file_length; + char sw_part[20]; + char text1[64]; + char time[12]; + char date[14]; + char text2[10]; + char version[20]; + uint16_t table_offset; + /* stuff i don't know */ +} __attribute__((packed)); + +struct sdp_header_entry { + uint16_t something1; + char text1[64]; + char time[12]; + char date[14]; + char text2[10]; + char version[20]; + uint32_t length; + uint32_t addr1; + uint32_t addr2; + uint32_t start; +} __attribute__((packed)); + +#endif /* _OSMO_PROTO_IPACCESS_H */ |