diff options
author | Harald Welte <laforge@osmocom.org> | 2020-01-29 09:19:45 +0100 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2020-01-29 09:21:00 +0100 |
commit | 2fa9763fb8ad3bf8fdf6b235f601a8b16cd6f8f9 (patch) | |
tree | bc55f705111758dd3f551c3049e5c091bbe25342 | |
parent | b84463e36ac73e3664f1a7eaabb2e35bb191194a (diff) |
OM2000: Add some more message types and IEs we now understand
OM2000 is not only used for the venerable RBS2000 family, but also
for the more modern RBS6000 family, specifically the DUG 20 GSM
baseband unit.
In RBS6000, there are some protocol extensions which are not yet fully
understood. However, we are understanding some bits around the MCTR
(multi carrier transceiver?), a new MO that appears to be present for
every physical RUS (Radio Unit) attached to the DUG 20.
Let's add what we have learned so far.
Thanks to Sylvain Munaut for his help with this.
Change-Id: Ib868358eca12b94c4fcca58e94ec8ab1a4edfda2
-rw-r--r-- | include/osmocom/bsc/abis_om2000.h | 1 | ||||
-rw-r--r-- | src/osmo-bsc/abis_om2000.c | 41 |
2 files changed, 42 insertions, 0 deletions
diff --git a/include/osmocom/bsc/abis_om2000.h b/include/osmocom/bsc/abis_om2000.h index b093a0350..49e8510aa 100644 --- a/include/osmocom/bsc/abis_om2000.h +++ b/include/osmocom/bsc/abis_om2000.h @@ -29,6 +29,7 @@ enum abis_om2k_mo_cls { OM2K_MO_CLS_IS = 0x05, OM2K_MO_CLS_CON = 0x06, OM2K_MO_CLS_DP = 0x07, + OM2K_MO_CLS_MCTR = 0x08, OM2K_MO_CLS_CF = 0x0a, OM2K_MO_CLS_TX = 0x0b, OM2K_MO_CLS_RX = 0x0c, diff --git a/src/osmo-bsc/abis_om2000.c b/src/osmo-bsc/abis_om2000.c index 14c373b17..f8efa3990 100644 --- a/src/osmo-bsc/abis_om2000.c +++ b/src/osmo-bsc/abis_om2000.c @@ -202,6 +202,26 @@ enum abis_om2k_msgtype { OM2K_MSGT_NEGOT_REQ_ACK = 0x0104, OM2K_MSGT_NEGOT_REQ_NACK = 0x0105, OM2K_MSGT_NEGOT_REQ = 0x0106, + + OM2K_MSGT_BTS_INITIATED_REQ_ACK = 0x0108, + OM2K_MSGT_BTS_INITIATED_REQ_NACK = 0x0109, + OM2K_MSGT_BTS_INITIATED_REQ = 0x010a, + + OM2K_MSGT_RADIO_CHAN_REL_CMD = 0x010c, + OM2K_MSGT_RADIO_CHAN_REL_COMPL = 0x010e, + OM2K_MSGT_RADIO_CHAN_REL_REJ = 0x010f, + + OM2K_MSGT_FEATURE_CTRL_CMD = 0x0118, + OM2K_MSGT_FEATURE_CTRL_COMPL = 0x011a, + OM2K_MSGT_FEATURE_CTRL_REJ = 0x011b, + + OM2K_MSGT_MCTR_CONFIG_REQ = 0x012c, + OM2K_MSGT_MCTR_CONFIG_REQ_ACK = 0x012e, + OM2K_MSGT_MCTR_CONFIG_REQ_REJ = 0x012f, + + OM2K_MSGT_MCTR_CONFIG_RES_ACK = 0x0130, + OM2K_MSGT_MCTR_CONFIG_RES_NACK = 0x0131, + OM2K_MSGT_MCTR_CONFIG_RES = 0x0132, }; enum abis_om2k_dei { @@ -272,6 +292,13 @@ enum abis_om2k_dei { OM2K_DEI_FS_OFFSET = 0x98, OM2K_DEI_EXT_COND_MAP_2_EXT = 0x9c, OM2K_DEI_TSS_MO_STATE = 0x9d, + OM2K_DEI_CONFIG_TYPE = 0x9e, + OM2K_DEI_JITTER_SIZE = 0x9f, + OM2K_DEI_PACKING_ALGO = 0xa0, + OM2K_DEI_TRXC_LIST = 0xa8, + OM2K_DEI_MAX_ALLOWED_POWER = 0xa9, + OM2K_DEI_MAX_ALLOWED_NUM_TRXCS = 0xaa, + OM2K_DEI_MCTR_FEAT_STATUS_BMAP = 0xab, }; const struct tlv_definition om2k_att_tlvdef = { @@ -521,6 +548,12 @@ static const struct value_string om2k_msgcode_vals[] = { { 0x0118, "Feature Control Command" }, { 0x011a, "Feature Control Complete" }, { 0x011b, "Feature Control Reject" }, + { 0x012c, "MCTR Configuration Request" }, + { 0x012e, "MCTR Configuration Request Accept" }, + { 0x012f, "MCTR Configuration Request Reject" }, + { 0x0130, "MCTR Configuration Result ACK" }, + { 0x0131, "MCTR Configuration Result NACK" }, + { 0x0132, "MCTR Configuration Result" }, { 0, NULL } }; @@ -653,6 +686,13 @@ static const struct value_string om2k_attr_vals[] = { { 0x9b, "Master TX Chain Delay" }, { 0x9c, "External Condition Class 2 Extension" }, { 0x9d, "TSs MO State" }, + { 0x9e, "Configuration Type" }, + { 0x9f, "Jitter Size" }, + { 0xa0, "Packing Algorithm" }, + { 0xa8, "TRXC List" }, + { 0xa9, "Maximum Allowed Power" }, + { 0xaa, "Maximum Allowed Number of TRXCs" }, + { 0xab, "MCTR Feature Status Bitmap" }, { 0, NULL } }; @@ -663,6 +703,7 @@ const struct value_string om2k_mo_class_short_vals[] = { { 0x05, "IS" }, { 0x06, "CON" }, { 0x07, "DP" }, + { 0x08, "MCTR" }, { 0x0a, "CF" }, { 0x0b, "TX" }, { 0x0c, "RX" }, |