hi, i am thinking about moving sms code from openbsc to libsomocore. my idea is to move the core code of openbsc to libosmocore's src/gsm and include/osmocom/gsm/ respectively. one problem is that the transaction structure of osmocombb and openbsc is different. for sms support there could be a common part inside the union of each transaction: struct gsm_trans { ... union { ... struct { uint8_t link_id; /* RSL Link ID to be used for this trans */ int is_mt; /* is this a MO (0) or MT (1) transfer */ enum gsm411_cp_state cp_state; struct osmo_timer_list cp_timer; enum gsm411_rp_state rp_state; struct gsm_sms *sms; } sms; }; }; i would suggest to move the common part to libosmocore and name it "gsm_trans_sms". then both openbsc and osmocombb can use the same sms structure. also the "gsm_sms" structure itself must be generalized and not rely on openbsc structures. (i have not yet looked at it.) to get reference to the private gsm_trans, openbsc and osmocombb can now use "container_of" in the specific sms glue code. any ideas / suggestions? andreas