Source: https://osmocom.org/issues/1614
Timestamp: 2019-04-25 06:10:14+00:00

Document:
Right now, there is a lot of implied knowledge at the BSC level about the BTS, i.e.
the BSC needs to be told about the codec capabilities, etc.
no standard in the Abis specs for this, we have to come up with a mechanism of our own.
It might be a vendor-specific OML request from BSC to BTS, which we could use to determine from BSC side if the BTS supports this request at all (if not, proceed as usual). This would also ensure backwards compatibility with nanoBTS or older OsmoBTS versions.
The feature-bit definitions should probably be part of a shared header file (maybe put them in gsm_data_common)?
The OML message exchange should then transfer the capability bit-mask from the 'struct gsm_bts' and 'struct gsm_bts_trx' from OsmoBTS into that of libbsc (OsmoBSC/OsmoNITB(. The libbsc code can then take those capabilities into consideration when trying to configure or use the BTS.
- for sending OsmoPCU version string we can re-use § 8.8.2 Failure Event Report using manufacturer-defined NM_PCAUSE_T_MANUF with osmocom-specific sub-types for versions as it's unlikely to be already known when we report capabilities to BSC.
In case of 1) we can use either §9.4.48 Site Inputs TLV (up to 128 parameters with boolean state) or §9.4.7 Availability Status TLV (octet per feature with pre-defined status encoding like "In test", "Not installed" etc) for feature sets. BTS variant and sub-model can be encoded using §9.4.28 Man.dep. State TV which give us up to 255 variants.
In case of 2) we can use §8.11.3 Get Attribute Response with §9.4.64 Get Attribute Response Info. This way we can request any attributes from §9.4 using §9.4.26 List of Required Attributes TLV.
The 2) seems to be more flexible (we can stuff BTS version into §9.4.62 SW Description TV for example) on the other hand we already using 1) actively. Overall I think we should use 2) unless it's somehow incompatible with other BTS hw we support.
Gerrit 2093 has been merged with changes necessary for backward compatibility between new BSC and old BTS.
Related gerrit 2144 is under review.
Gerrit 2144, 2161 were merged, 2165, 2166, 2087 are under review, additional patches will follow.
PCU version number is handled by #1615.
Gerrit 2165, 2166, 2087, 2544 merged, 2545 is under review, additional patches will follow.
Gerrit 2545 has been merged.
Gerrit 2784, 2785 are merged; 2783, 2786, 2794, 2797, 2799, 2800 are under review.
I have reverted 9eeb0b1a136fc8c24a86cb4d832c264674c10db0 in d36b3a84638d6db940387f0e18c98855202f554d.
Note: due to #2317 it'll not work if BTS is configured in OpenBSC with number higher than 0 because corresponding OML requests will be ignored by BTS.
Merged: 2783, 2794, 2797, 2800, 2786, 2799.

References: § 8
 §9
 §9
 §9
 §8
 §9
 §9
 §9
 §9