refactor: move RESET Osmux TLV parsing to ran_msg_a.c

ran_peer.c is not the proper place to parse messages, because it should be RAN
agnostic. All parsing and encoding belongs in ran_msg_a.c and ran_msg_iu.c.

Move the Osmux TLV parsing into the is_reset_msg op: add supports_osmux
out-parameter (and add a logging fi pointer). To be able to modify msg->l3h,
also make the msgb arg non-const.

In ranap_is_reset_msg(), always return non-support for Osmux.

In bssmap_is_reset_msg(), return 0 if no TLVs were parsed, 1/-1 if an Osmux TLV
was present/not present.

Update the osmux support flag directly where the ConnectionLess message is
received, so that there is only one place responsible for that.

Related: OS#4595
Change-Id: I1ad4a3f9356216dd4bf8c48fba29fd23438810a7
diff --git a/include/osmocom/msc/sccp_ran.h b/include/osmocom/msc/sccp_ran.h
index f84bf61..a4bd4ca 100644
--- a/include/osmocom/msc/sccp_ran.h
+++ b/include/osmocom/msc/sccp_ran.h
@@ -233,8 +233,11 @@
 
 	/* Return whether the given l2_cl message is a RESET, RESET ACKNOWLEDGE, or RESET-unrelated message.
 	 * This callback is stored in struct sccp_ran_inst to provide RESET handling to the caller (ran_peer),
-	 * it is not used in sccp_ran.c. */
-	enum reset_msg_type (* is_reset_msg )(const struct sccp_ran_inst *sri, const struct msgb *l2_cl);
+	 * it is not used in sccp_ran.c.
+	 * In supports_osmux, return 0 for no information, 1 for support detected, -1 for non-support detected.
+	 */
+	enum reset_msg_type (* is_reset_msg )(const struct sccp_ran_inst *sri, struct osmo_fsm_inst *log_fi,
+					      struct msgb *l2_cl, int *supports_osmux);
 
 	/* Return a RESET or RESET ACK message for this RAN type.
 	 * This callback is stored in struct sccp_ran_inst to provide RESET handling to the caller (ran_peer),