Holger Hans Peter Freyther | 97f66e2 | 2010-07-28 03:32:52 +0800 | [diff] [blame] | 1 | == Building the cellmgr_ng == |
| 2 | |
| 3 | === Requirements === |
| 4 | |
| 5 | ==== OpenBSC ==== |
| 6 | The result of "make install" of OpenBSC is required. The cellmgr_ng is using |
| 7 | the osmocomm and sccp library provided by OpenBSC. |
| 8 | |
| 9 | ==== NexusWare C7 ===== |
| 10 | The NexusWare C7 library must be available. It is used to communicate with |
| 11 | MTP up to Level3. |
| 12 | |
| 13 | ==== NexusWare Uniporte ==== |
| 14 | The NexusWare Uniported library must be available. It is used to handle |
| 15 | the configuration of the MGW. |
| 16 | |
| 17 | |
| 18 | === Configuring & Building === |
| 19 | The cellmgr_ng is using autoconf. At first the configure script must be |
| 20 | generated, after this ./configure can be called. The configure script will |
| 21 | use pkg-config to find the CFLAGS and LIBS for the Osmocomm, SCCP, NexusWare |
| 22 | C7 and NexusWare Uniporte libraries. |
| 23 | |
| 24 | The NexusWare libraries naturally do not come with pkg-config files. There |
| 25 | are two example files in the pkg-config directory of the cellmgr_ng that can |
| 26 | be changed to point to the proper paths. Alternatively the NEXUSWARE_C7_CFLAGS, |
| 27 | NEXUSWARE_C7_LIBS, NEXUSWARE_UNIPORTE_CFLAGS, NEXUSWARE_UNIPORTE_LIBS environment |
| 28 | variables can be set instead. |
| 29 | |
| 30 | $ autoreconf --install --force |
| 31 | $ export PKG_CONFIG_PATH=/openbsc/install/lib/pkg-config:$PWD/pkgconfig |
| 32 | $ . /stuff/NexusWare/SETUP.SH |
| 33 | $ ./configure --host=ppc-linux |
| 34 | $ make |
| 35 | |
| 36 | |
| 37 | |
| 38 | == Reset handling == |
| 39 | |
| 40 | === Loss of the TCP connection to the MSC === |
| 41 | * All open SCCP connections need to be closed |
| 42 | * All circuits allocated for voice calls need to be closed |
| 43 | * On reconnect the cellmgr needs to generate the reset messages |
| 44 | * The SCCP link is considered to be up |
| 45 | |
| 46 | === Loss of the MTP link/SLTM timeouts === |
| 47 | * We will have to generate a SCCP reset to the network |
| 48 | * We will have to close ever voice call/mgcp and such |
| 49 | |
| 50 | == Filtering == |
| 51 | === Filtering reset acks === |
| 52 | For the above reset handling we filter the reset on both sides. Whenever |
| 53 | we connect to the MSC or lose the BSC we send it a reset. |
| 54 | |
| 55 | Whenever the BSC is sending us a reset we directly respond with a reset act |
| 56 | |
| 57 | === Filtering RLSD messages === |
| 58 | We are using the RLSD from the network and immediately reply with a RLC |
| 59 | if we don't know about this combination of src and dest reference. If we |
| 60 | do have a pair we set a flag and will send a RLC when we receive a RLC from |
| 61 | the BSC. |
| 62 | |
| 63 | If we receive a RLSD from the BSC we do have a bug as we didn't respond |
| 64 | within a short enough timeout. We will close the connection. At which point |
| 65 | we will handle the above. |
| 66 | |
| 67 | The reason to handle RLSD is that the BSC has a rather short timeout from |
| 68 | cleanup complete to wanting a RLSD and then the MSC and BSC will have some |
| 69 | issues... |
| 70 | |
| 71 | == Header Rewriting == |
| 72 | === POI === |
| 73 | We do not want to have the point code indicator in the SCCP header. Currently |
| 74 | we are removing this from the CR and DT1 messages. |
| 75 | |