 
            Hi Vadim and others,
given how long L1CTL has been around, and how many programs implement it by now, I really would like to ensure backwards compatibility without introducing weird breakage all over the place.
The good news: I think it's possible to extend L1CTL in a backwards-compatible way, and I started with a related implementation.
Some of my raw notes below:
--- Extension of L1CTL in a compatible way
* enhance l1ctl_reset with version and feature bitmap ** used by L1CTL_RESET_CONF, possibly also REQ, IND ** old implementation ignores trailer ** new implementation recognizes new format due to longer message (and enables use of new features)
* new DM_EST_2_REQ ** sent by L23 only if feature-bit was set in RSEET_CONF ** contains additional fields *** L1 SAPI bitmask *** sync_source member to select own cell or neighbor cell sync info * new DM_EST_2_CONF ** response to _REQ (which is currently missing from DM_EST_REQ)
* extend l1ctl_neigh_pm_ind with new fields at end ** L23 can use size to determine if new fields exist or not
* new DM_MODIFY_REQ ** sent by L23 to change L1 SAPI bitmask * new DM_MODIFY_CONF to confirm it
/* bit definitions for individual features communicated in RESET_CONF */ enum l1ctl_feature { L1CTL_FT_DM_EST2_MODIFY, /* DM_EST_2 and DM_MODIFY procedures */ L1CTL_FT_RACH_DM, /* RACH can be sent in dedicated mode */ L1CTL_FT_EXT_RACH_REQ, /* Extended RACH (11bit) support */ L1CTL_FT_SPKR_MIC, /* Hardware Speaker + Microphone supported */ L1CTL_FT_TRAFFIC_IND, L1CTL_FT_BURST_IND, L1CTL_FT_TBF, /* support for TBF_CFG and DATA_TBF procedures */ L1CTL_FT_SIM_SLOT, /* physical SIM slot exists */ L1CTL_FT_SIM_SLOT, /* physical SIM slot exists */ L1CTL_FT_BAND_850, L1CTL_FT_BAND_900, L1CTL_FT_BAND_1800, L1CTL_FT_BAND_1900, L1CTL_FT_CIPH_A51, L1CTL_FT_CIPH_A52, L1CTL_FT_CIPH_A53, }; ---
I won't go "full steam ahead" on this, but will try to get it implemented within the next week or so.
Regards, Harald