The fix Andreas just pushed is what I suspected: A missing 'return' that made the "ignore" casei, not really ignored.
What seems to happen is: - We respond to the assignement a bit fast it seems and OpenBTS doesn't see the first SABM at all (not in the OpenBTS trace at all) - When OpenBTS sees the SABM, it responds with the UA frame - OpenBTS doesn't send a new frame until quite a bit later, which means the UA frame is resent several times by OpenBTS transceiver application using it's filling table (which is why we see only 1 UA frame in OpenBTS trace but multiple of them in the OsmocomBB trace) - OsmocomBB had a bug where it was supposed to ignore the extraneous UA frame but instead was dropping the connection because of a missing "return" inside the switch statement.
Cheers,
Sylvain