diff options
author | Harald Welte <laforge@gnumonks.org> | 2009-02-16 21:12:08 +0000 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2009-02-16 21:12:08 +0000 |
commit | 75099266149b78193854e84f73910074680191fa (patch) | |
tree | 7836b602f1edeb9a248072ba7d9ffa0874bf5e93 /include | |
parent | e021254b649e47370933d3344e6ef8439d1b8316 (diff) |
* introduce TLV parser definitions for RSL IE's
* introduce functions for ip.access specific RSL commands
Diffstat (limited to 'include')
-rw-r--r-- | include/openbsc/abis_rsl.h | 21 | ||||
-rw-r--r-- | include/openbsc/gsm_data.h | 6 |
2 files changed, 27 insertions, 0 deletions
diff --git a/include/openbsc/abis_rsl.h b/include/openbsc/abis_rsl.h index b3318d32f..160e2807d 100644 --- a/include/openbsc/abis_rsl.h +++ b/include/openbsc/abis_rsl.h @@ -54,6 +54,7 @@ struct abis_rsl_dchan_hdr { #define ABIS_RSL_MDISC_COM_CHAN 0x0c #define ABIS_RSL_MDISC_TRX 0x10 #define ABIS_RSL_MDISC_LOC 0x20 +#define ABIS_RSL_MDISC_IPACCESS 0x7e #define ABIS_RSL_MDISC_IS_TRANSP(x) (x & 0x01) @@ -121,6 +122,16 @@ enum abis_rsl_msgtype { RSL_MT_MR_CODEC_MOD_PER, RSL_MT_TFO_REP, RSL_MT_TFO_MOD_REQ, /* 0x3f */ + + /* ip.access specific RSL message types */ + RSL_MT_IPAC_BIND = 0x70, /* Bind to local BTS RTP port */ + RSL_MT_IPAC_BIND_ACK, + RSL_MT_IPAC_BIND_NACK, + RSL_MT_IPAC_CONNECT = 0x73, + RSL_MT_IPAC_CONNECT_ACK, + RSL_MT_IPAC_CONNECT_NACK, + RSL_MT_IPAC_DISCONNECT_IND = 0x76, + }; /* Chapter 9.3 */ @@ -185,6 +196,11 @@ enum abis_rsl_ie { RSL_IE_RTD, RSL_IE_TFO_STATUS, RSL_IE_LLP_APDU, + + RSL_IE_IPAC_REMOTE_IP = 0xf0, + RSL_IE_IPAC_REMOTE_PORT = 0xf1, + RSL_IE_IPAC_LOCAL_PORT = 0xf3, + RSL_IE_IPAC_LOCAL_IP = 0xf5, }; /* Chapter 9.3.1 */ @@ -371,6 +387,11 @@ int rsl_imm_assign_cmd(struct gsm_bts *bts, u_int8_t len, u_int8_t *val); int rsl_data_request(struct msgb *msg, u_int8_t link_id); +/* ip.access specfic RSL extensions */ +int rsl_ipacc_bind(struct gsm_lchan *lchan); +int rsl_ipacc_connect(struct gsm_lchan *lchan, u_int32_t ip, + u_int16_t port, u_int16_t f8, u_int8_t fc); + int abis_rsl_rcvmsg(struct msgb *msg); unsigned int get_paging_group(u_int64_t imsi, unsigned int bs_cc_chans, diff --git a/include/openbsc/gsm_data.h b/include/openbsc/gsm_data.h index 0aa3c59b7..2048abc1f 100644 --- a/include/openbsc/gsm_data.h +++ b/include/openbsc/gsm_data.h @@ -174,6 +174,12 @@ struct gsm_bts_trx_ts { /* To which E1 subslot are we connected */ struct gsm_e1_subslot e1_link; + struct { + u_int32_t bound_ip; + u_int16_t bound_port; + u_int8_t attr_fc; + u_int16_t attr_f8; + } abis_ip; struct gsm_lchan lchan[TS_MAX_LCHAN]; }; |