path: root/openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c
diff options
authorHolger Hans Peter Freyther <zecke@selfish.org>2012-10-24 21:52:16 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2012-10-29 19:41:37 +0100
commit07fc097fc406c8daa26b83171d3d68f5d1537ac6 (patch)
tree89660a7389fb4fa5164f3b79a664a1c47a9502cb /openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c
parentaff20717e4a15599a30396f5a38aa42f0ce8d779 (diff)
nat: Document the high level goal of the MGCP/NAT routines
Provide some high level documentation that might help to understand what this code is supposed to be doing.
Diffstat (limited to 'openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c')
1 files changed, 26 insertions, 2 deletions
diff --git a/openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c b/openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c
index 62bf183f..2ff22b27 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_mgcp_utils.c
@@ -1,6 +1,30 @@
+ * This file contains helper routines for MGCP Gateway handling.
+ *
+ * The first thing to remember is that each BSC has its own namespace/range
+ * of endpoints. Whenever a BSSMAP ASSIGNMENT REQUEST is received this code
+ * will be called to select an endpoint on the BSC. The mapping from original
+ * multiplex/timeslot to BSC multiplex'/timeslot' will be stored.
+ *
+ * The second part is to take messages on the public MGCP GW interface
+ * and forward them to the right BSC. This requires the MSC to first
+ * assign the timeslot. This assumption has been true so far. We are using
+ * the policy_cb of the MGCP protocol code to decide if the request should
+ * be immediately answered or delayed. An extension "Z: noanswer" is used
+ * to request the BSC to not respond. This is saving some bytes of bandwidth
+ * and as we are using TCP to forward the message we know it will arrive.
+ * The mgcp_do_read method reads these messages and hands them to the protocol
+ * parsing code which will call the mentioned policy_cb. The bsc_mgcp_forward
+ * method is used on the way back from the BSC to the network.
+ *
+ * The third part is to patch messages forwarded to the BSC. This includes
+ * the endpoint number, the ports to be used inside the SDP file and maybe
+ * some other bits.
+ *
+ */
- * (C) 2010 by Holger Hans Peter Freyther <zecke@selfish.org>
- * (C) 2010 by On-Waves
+ * (C) 2010-2012 by Holger Hans Peter Freyther <zecke@selfish.org>
+ * (C) 2010-2012 by On-Waves
* All Rights Reserved
* This program is free software; you can redistribute it and/or modify