bsc_api.c: Documentation for handle_mr_config()

Change-Id: I6edd442afc7c20f8f097198941bc592d429ba5da
diff --git a/openbsc/src/libbsc/bsc_api.c b/openbsc/src/libbsc/bsc_api.c
index 4dba3e9..7613cac 100644
--- a/openbsc/src/libbsc/bsc_api.c
+++ b/openbsc/src/libbsc/bsc_api.c
@@ -151,8 +151,13 @@
 	api->assign_fail(conn, GSM0808_CAUSE_NO_RADIO_RESOURCE_AVAILABLE, NULL);
 }
 
-/**
- * Handle the multirate config
+/*! \brief Determine and apply AMR multi-rate configuration to lchan
+ *  Determine which AMR multi-rate configuration to use and apply it to
+ *  the lchan (so it can be communicated to BTS and MS during channel
+ *  activation.
+ *  \param[in] conn subscriber connection (used to resolve bsc_api)
+ *  \param[out] lchan logical channel to which to apply mr config
+ *  \param[in] full_rate whether to use full-rate (1) or half-rate (0) config
  */
 static void handle_mr_config(struct gsm_subscriber_connection *conn,
 			     struct gsm_lchan *lchan, int full_rate)
@@ -162,9 +167,13 @@
 	struct amr_multirate_conf *mr;
 	struct gsm48_multi_rate_conf *mr_conf;
 
+	/* BSC api override for this method, used in OsmoBSC mode with
+	 * bsc_mr_config() to use MSC-specific/specified configuration */
 	if (api->mr_config)
 		return api->mr_config(conn, lchan, full_rate);
 
+	/* NITB case: use the BTS-specic multi-rate configuration from
+	 * the vty/configuration file */
 	if (full_rate)
 		mr = &lchan->ts->trx->bts->mr_full;
 	else
@@ -178,6 +187,8 @@
 		mr_conf->icmi = 1;
 		mr_conf->m5_90 = 1;
 	}
+	/* store encoded MR config IE lchan for both MS (uplink) and BTS
+	 * (downlink) directions */
 	gsm48_multirate_config(lchan->mr_ms_lv, mr, mr->ms_mode);
 	gsm48_multirate_config(lchan->mr_bts_lv, mr, mr->bts_mode);
 }