aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/Compliance.html919
-rw-r--r--doc/Makefile.am7
-rw-r--r--doc/examples/Makefile.am27
-rwxr-xr-xdoc/examples/firewall48
-rw-r--r--doc/examples/osmo-ggsn.cfg73
-rw-r--r--doc/examples/sgsnemu.conf131
-rw-r--r--doc/osmo-ggsn.8173
-rw-r--r--doc/sgsnemu.8396
8 files changed, 1774 insertions, 0 deletions
diff --git a/doc/Compliance.html b/doc/Compliance.html
new file mode 100644
index 0000000..4c2fc3a
--- /dev/null
+++ b/doc/Compliance.html
@@ -0,0 +1,919 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+ <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+ <title>Compliance</title>
+</head>
+<body>
+<h1>Protocol Compliance List</h1>
+OsmoGGSN supports both GTP0 (GSM 09.60) and GTP1 (3GPP 29.060). In the
+following tables the support of each individual message type is
+detailed. The numbers before each feature indicates the relevant
+section in the standard.<br>
+<h2>GSM 09.60 (GTPv0)<br>
+</h2>
+<table style="text-align: left; width: 100%;" border="1" cellspacing="2"
+ cellpadding="2">
+ <tbody>
+ <tr>
+ <td style="vertical-align: top; font-weight: bold;">Feature<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; font-weight: bold;">gtplib<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; font-weight: bold;">ggsn<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; font-weight: bold;">sgsnemu<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; font-weight: bold;">notes<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;"><span style="font-weight: bold;">7.4
+Path Management Messages</span><br>
+ </td>
+ <td style="vertical-align: top;"><br>
+ </td>
+ <td style="vertical-align: top;"><br>
+ </td>
+ <td style="vertical-align: top;"><br>
+ </td>
+ <td style="vertical-align: top;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.4.1 Echo Request</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.4.2 Echo Response<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.4.3 Version Not Supported<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;"><span style="font-weight: bold;">7.5
+Tunnel Management Messages</span><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.1 Create PDP Context Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.2 Create PDP Context Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.3 Update PDP Context Request</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.4 Update PDP Context Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.5 Delete PDP Context Request</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.6 Delete PDP Context Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.7 Create AA PDP Context
+Request</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.8 Create AA PDP Context
+Response<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.9 Delete AA PDP Context
+Request</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.10 Delete AA PDP Context
+Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.11 Error Indication<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.12 PDU Notification Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.13 PDU Notification Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.14 PDU Notification Reject
+Request</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.15 PDU Notification Reject
+Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;"><span style="font-weight: bold;">7.6
+Location Management Messages</span><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.6.1 Send Routeing Information
+for GPRS Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.6.2 Send Routeing Information
+for GPRS Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.6.3 Failure Report Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.6.3 Failure Report Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.6.5 Note MS GPRS Present
+Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.6.6 Note MS GPRS Present
+Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;"><span style="font-weight: bold;">7.5
+Mobility Management Messages</span><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.1 Identification Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable<br>
+ </td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.2 Identification Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.3 SGSN Context Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.4 SGSN Context Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.5 SGSN Context Acknowledge</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<br>
+<h2>3GPP 29.060 (GTPv1)<br>
+</h2>
+<table cellpadding="2" cellspacing="2" border="1"
+ style="text-align: left; width: 100%;">
+ <tbody>
+ <tr>
+ <td style="vertical-align: top; font-weight: bold;">Feature<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; font-weight: bold;">gtplib<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; font-weight: bold;">ggsn<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; font-weight: bold;">sgsnemu<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; font-weight: bold;">notes<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;"><span style="font-weight: bold;">7.2
+Path Management Messages</span><br>
+ </td>
+ <td style="vertical-align: top;"><br>
+ </td>
+ <td style="vertical-align: top;"><br>
+ </td>
+ <td style="vertical-align: top;"><br>
+ </td>
+ <td style="vertical-align: top;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.2.1 Echo Request</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.2.2 Echo Response<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.2.3 Version Not Supported<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.2.4 Supported Extension
+Headers Notification<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;"><span style="font-weight: bold;">7.3
+Tunnel Management Messages</span><br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);"><br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);"><br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.3.1 Create PDP Context Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;">1<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.3.2 Create PDP Context Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.3.3 Update PDP Context Request</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">1<br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.3.4 Update PDP Context Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.3.5 Delete PDP Context Request</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.3.6 Delete PDP Context Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.3.7 Error Indication<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(51, 255, 51);">Supported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.3.8 PDU Notification Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.3.9 PDU Notification Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.3.10 PDU Notification Reject
+Request</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.3.10 PDU Notification Reject
+Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;"><span style="font-weight: bold;">7.4
+Location Management Messages</span><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.4.1 Send Routeing Information
+for GPRS Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.4.2 Send Routeing Information
+for GPRS Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.4.3 Failure Report Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.4.3 Failure Report Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.4.5 Note MS GPRS Present
+Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.4.6 Note MS GPRS Present
+Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;"><span style="font-weight: bold;">7.5
+Mobility Management Messages</span><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.1 Identification Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable<br>
+ </td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.2 Identification Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.3 SGSN Context Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.4 SGSN Context Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.5 SGSN Context Acknowledge</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.6 Forward Relocation Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.7 Forward Relocation Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.8 Forward Relocation Complete</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.9 Relocation Cancel Request<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.10 Relocation Cancel Response</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.11 Forward Relocation
+Complete Acknowledge<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.12 Forward SRNS Context
+Acknowledge</td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ <tr>
+ <td style="vertical-align: top;">7.5.13 Forward SRNS Context<br>
+ </td>
+ <td
+ style="vertical-align: top; text-align: center; background-color: rgb(255, 204, 204);">Unsupported</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;">Not
+applicable</td>
+ <td style="vertical-align: top; text-align: center;"><br>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<br>
+<h2>Notes</h2>
+1) The "Secondary PDP Context Activation
+Procedure" is not supported.
+<p style="margin-bottom: 0in;"><br>
+</p>
+<br>
+<br>
+</body>
+</html>
diff --git a/doc/Makefile.am b/doc/Makefile.am
new file mode 100644
index 0000000..46c634e
--- /dev/null
+++ b/doc/Makefile.am
@@ -0,0 +1,7 @@
+man_MANS = osmo-ggsn.8 sgsnemu.8
+man_aux = $(man_MANS:.1=.x)
+EXTRA_DIST = $(man_MANS)
+
+SUBDIRS = \
+ examples \
+ $(NULL)
diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am
new file mode 100644
index 0000000..d0b677c
--- /dev/null
+++ b/doc/examples/Makefile.am
@@ -0,0 +1,27 @@
+osmoconfdir = $(sysconfdir)/osmocom
+osmoconf_DATA = osmo-ggsn.cfg
+
+EXTRA_DIST = osmo-ggsn.cfg
+
+CFG_FILES = find $(srcdir) -name '*.cfg*' | sed -e 's,^$(srcdir),,'
+
+dist-hook:
+ for f in $$($(CFG_FILES)); do \
+ j="$(distdir)/$$f" && \
+ mkdir -p "$$(dirname $$j)" && \
+ $(INSTALL_DATA) $(srcdir)/$$f $$j; \
+ done
+
+install-data-hook:
+ for f in $$($(CFG_FILES)); do \
+ j="$(DESTDIR)$(docdir)/examples/$$f" && \
+ mkdir -p "$$(dirname $$j)" && \
+ $(INSTALL_DATA) $(srcdir)/$$f $$j; \
+ done
+
+uninstall-hook:
+ @$(PRE_UNINSTALL)
+ for f in $$($(CFG_FILES)); do \
+ j="$(DESTDIR)$(docdir)/examples/$$f" && \
+ $(RM) $$j; \
+ done
diff --git a/doc/examples/firewall b/doc/examples/firewall
new file mode 100755
index 0000000..fce735a
--- /dev/null
+++ b/doc/examples/firewall
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+# Firewall script for GGSN
+#
+# Uses $IFGN (eth0) as the Gn interface (Gn) and
+# $IFGI (eth1) as the Gi interface.
+#
+# SUMMARY
+# * All connections originating from GGSN are allowed.
+# * Incoming ssh, GTPv0 and GTPv1 is allowed on the Gn interface.
+# * Incoming ssh is allowed on the Gi interface.
+# * Forwarding is allowed to and from the Gi interface, but disallowed
+# to and from the Gn interface.
+# * Masquerede on Gi interface.
+
+IPTABLES="/sbin/iptables"
+IFGN="eth0"
+IFGI="eth1"
+
+$IPTABLES -P INPUT DROP
+$IPTABLES -P FORWARD ACCEPT
+$IPTABLES -P OUTPUT ACCEPT
+
+#Allow related and established on all interfaces (input)
+$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
+
+#Allow releated, established, GTP and ssh on $IFGN. Reject everything else.
+$IPTABLES -A INPUT -i $IFGN -p tcp -m tcp --dport 22 --syn -j ACCEPT
+$IPTABLES -A INPUT -i $IFGN -p udp -m udp --dport 2123 -j ACCEPT
+$IPTABLES -A INPUT -i $IFGN -p udp -m udp --dport 2152 -j ACCEPT
+$IPTABLES -A INPUT -i $IFGN -p udp -m udp --dport 3386 -j ACCEPT
+$IPTABLES -A INPUT -i $IFGN -j REJECT
+
+#Allow related, established and ssh. Drop everything else.
+$IPTABLES -A INPUT -i $IFGI -p tcp -m tcp --dport 22 --syn -j ACCEPT
+$IPTABLES -A INPUT -i $IFGI -j DROP
+
+# Masquerade everything going out on $IFGI
+$IPTABLES -t nat -A POSTROUTING -o $IFGI -j MASQUERADE
+
+#Allow everything on loopback interface.
+$IPTABLES -A INPUT -i lo -j ACCEPT
+
+# Drop everything to and from $IFGN (forward)
+$IPTABLES -A FORWARD -i $IFGN -j DROP
+$IPTABLES -A FORWARD -o $IFGN -j DROP
+
+
diff --git a/doc/examples/osmo-ggsn.cfg b/doc/examples/osmo-ggsn.cfg
new file mode 100644
index 0000000..4000636
--- /dev/null
+++ b/doc/examples/osmo-ggsn.cfg
@@ -0,0 +1,73 @@
+!
+! OpenGGSN (0.94.1-adac) configuration saved from vty
+!!
+!
+log stderr
+ logging filter all 1
+ logging color 1
+ logging print category 0
+ logging timestamp 0
+ logging level ip info
+ logging level tun info
+ logging level ggsn info
+ logging level sgsn notice
+ logging level icmp6 notice
+ logging level lglobal notice
+ logging level llapd notice
+ logging level linp notice
+ logging level lmux notice
+ logging level lmi notice
+ logging level lmib notice
+ logging level lsms notice
+ logging level lctrl notice
+ logging level lgtp info
+ logging level lstats notice
+ logging level lgsup notice
+ logging level loap notice
+ logging level lss7 notice
+ logging level lsccp notice
+ logging level lsua notice
+ logging level lm3ua notice
+ logging level lmgcp notice
+!
+stats interval 5
+!
+line vty
+ no login
+!
+ggsn ggsn0
+ gtp state-dir /tmp
+ gtp bind-ip 127.0.0.6
+ apn internet
+ gtpu-mode tun
+ tun-device tun4
+ type-support v4
+ ip prefix dynamic 176.16.222.0/24
+ ip dns 0 192.168.100.1
+ ip dns 1 8.8.8.8
+ ip ifconfig 176.16.222.0/24
+ no shutdown
+ apn inet6
+ gtpu-mode tun
+ tun-device tun6
+ type-support v6
+ ipv6 prefix dynamic 2001:780:44:2000:0:0:0:0/56
+ ipv6 dns 0 2001:4860:4860::8888
+ ipv6 dns 1 2001:4860:4860::8844
+ ipv6 ifconfig 2001:780:44:2000:0:0:0:0/56
+ no shutdown
+ apn inet46
+ gtpu-mode tun
+ tun-device tun46
+ type-support v4v6
+ ip prefix dynamic 176.16.46.0/24
+ ip dns 0 192.168.100.1
+ ip dns 1 8.8.8.8
+ ip ifconfig 176.16.46.0/24
+ ipv6 prefix dynamic 2001:780:44:2100:0:0:0:0/56
+ ipv6 dns 0 2001:4860:4860::8888
+ ipv6 dns 1 2001:4860:4860::8844
+ ipv6 ifconfig 2001:780:44:2100:0:0:0:0/56
+ no shutdown
+ default-apn internet
+ no shutdown ggsn
diff --git a/doc/examples/sgsnemu.conf b/doc/examples/sgsnemu.conf
new file mode 100644
index 0000000..43b2458
--- /dev/null
+++ b/doc/examples/sgsnemu.conf
@@ -0,0 +1,131 @@
+##############################################################################
+#
+# Sample sgsnemu configuration file
+#
+##############################################################################
+
+# TAG: debug
+# Include this flag to include debug information.
+#debug
+
+
+# TAG: conf
+# Configuration file to use. This file is the configuration file,
+# so changing this parameter in the configuration file does not make
+# sense. Use it on the command line instead.
+
+# TAG: pidfile
+# File to store information about the pricess id of the program.
+# The program must have write access to this file/directory.
+#pidfile ./sgsnemu.pid
+
+# TAG: statedir
+# Directory to use for nonvolatile storage.
+# The program must have write access to this directory.
+#statedir ./
+
+
+# TAG: dns
+# DNS server to use for ns lookups.
+# If this tag is not set the system default DNS will be used.
+#dns 10.1.2.3
+
+# TAG: listen
+# Specifies the local IP address to listen to
+#listen 10.0.0.217
+
+# TAG: remote
+# Specifies the remote IP address to connect to
+# If DNS is setup correctly it should be possible to specify the
+# access point name (APN) as the remote address.
+#remote 10.0.0.240
+
+
+# TAG: contexts
+# Number of contexts to establish from the emulator to the ggsn.
+# Set this tag to zero to not establish any contexts.
+#contexts 1
+
+# TAG: timelimit
+# Disconnect contexts after timelimit seconds, and exit the program.
+# Setting timelimit to zero will cause the program not to disconnect.
+#timelimit 0
+
+
+# TAG: apn
+# Access point name to connect to when run in client mode.
+#apn internet
+
+# TAG: selmode
+# Selection mode to use when connecting to GGSN.
+#selmode 0x01
+
+# TAG: imsi
+# IMSI number used when run in client mode.
+#imsi 2400101234567890
+
+# TAG: msisdn
+# MSISDN number used when run in client mode.
+#msisdn 46702123456
+
+# TAG: qos
+# Requested Quality of Service used when run in client mode.
+# 3 bytes corresponding to ????
+#qos 0x0b921f
+
+# TAG: uid
+# User ID used when run in client mode.
+#uid mig
+
+# TAG: pwd
+# Password used when run in client mode.
+#pwd hemlig
+
+
+# TAG: createif
+# Use this flag if you want to set up a local network interface after
+# a PDP context has been established.
+#createif
+
+# TAG: defaultroute
+# Use this flag if you want to add a default route after a network interface
+# had been established.
+#defaultroute
+
+# TAG: ipup
+# Script executed after network interface has been brought up.
+# Executed with the following parameters: <devicename> <ip address>
+#ipup /etc/sgsnemu/ip-up
+
+# TAG: ipdown
+# Script executed after network interface has been taken down.
+# Executed with the following parameters: <devicename> <ip address>
+#ipdown /etc/sgsnemu/ip-down
+
+
+# TAG: pinghost
+# Ping a remote host through a PDP context by using ICMP echo messages.
+# If more than one PDP context has been established the ICMP messages will
+# be distributed between all available contexts.
+#pinghost 192.168.0.0
+
+# TAG: pingrate
+# Number of ping messages to send off each second.
+#pingrate 1
+
+# TAG: pingsize
+# Size of ICMP echo message payload. Add 28 to get the full IP packet size.
+#pingsize 56
+
+# TAG: pingcount
+# Number of ping messages to send off.
+#pingcount 0
+
+# TAG: pingquiet
+# Do not print ping packet info.
+#pingquiet
+
+
+
+
+
diff --git a/doc/osmo-ggsn.8 b/doc/osmo-ggsn.8
new file mode 100644
index 0000000..b9f928f
--- /dev/null
+++ b/doc/osmo-ggsn.8
@@ -0,0 +1,173 @@
+
+.\" * OsmoGGSN - Gateway GPRS Support Node
+.\" * Copyright (C) 2002, 2003 Mondru AB.
+.\" *
+.\" * The contents of this file may be used under the terms of the GNU
+.\" * General Public License Version 2, provided that the above copyright
+.\" * notice and this permission notice is included in all copies or
+.\" * substantial portions of the software.
+.\" *
+.\" * The initial developer of the original code is
+.\" * Jens Jakobsen <jj@openggsn.org>
+.\" *
+.\" * Contributor(s):
+.\" *
+.\" Manual page for osmo-ggsn
+.\" SH section heading
+.\" SS subsection heading
+.\" LP paragraph
+.\" IP indented paragraph
+.\" TP hanging label
+
+.TH osmo-ggsn 8 "August 2017"
+.SH NAME
+osmo-ggsn \- Gateway GPRS Support Node.
+.SH SYNOPSIS
+.B osmo-ggsn
+\-\-help
+
+.B osmo-ggsn
+\-\-version
+
+.B osmo-ggsn
+[
+.BI \-\-help
+] [
+.BI \-\-daemonize
+] [
+.BI \-\-config-file " file"
+] [
+.BI \-\-version
+]
+.SH DESCRIPTION
+.B osmo-ggsn
+is part of the
+.B OsmoGGSN
+project, and implements a Gateway GPRS Support Node. It is used by
+mobile operators as the interface between the Internet and the rest of
+the mobile network infrastructure.
+
+The GPRS functionality and protocols has been standardised by the
+Third Generation Partnership Project (3GPP). According to the 3GPP
+specifications a GGSN has two interfaces: The Gn/Gp interface and the
+Gi interface.
+
+The Gn/Gp interface can be seen as the downlink interface of the
+GGSN. It is used for communicating with the Serving GPRS Support Node
+(SGSN) which again interfaces to the radio access network. The Gn/Gp
+interface uses the GPRS tunneling protocol (GTP). User data packets
+(typically IP packets) are tunneled over GTP, which again uses UDP
+over IP.
+
+The other interface can be thought of as the uplink interface, and
+interfaces the GGSN to an external data network. Gi is most often an
+interface to the Internet.
+.B osmo-ggsn
+uses the
+.B TUN/TAP driver
+for the Gi interface. A tun network interface is established when the
+.B osmo-ggsn
+is started.
+
+.B osmo-ggsn
+will accept incoming connections from mobile stations through the
+radio access network and the SGSN. When a connection request is
+received the ggsn will allocate a dynamic IP address for the mobile
+station, and allow the mobile station to access the Gi
+interface. Connections are terminated by either the mobile station or
+the SGSN. Runtime errors are reported using the Osmocom logging
+framework.
+
+Typically
+.B osmo-ggsn
+will be deployed with two Ethernet interfaces. One for the Gn/Gp
+interface, and one for the Gi interface. Policy routing and firewall
+rules should be used in order to separate Gi traffic from Gn/Gp
+traffic.
+
+.SH OPTIONS
+.TP
+.BI --help
+Print help and exit.
+
+.TP
+.BI --version
+Print version and exit.
+
+.TP
+.BI --daemonize
+Run in background as a daemon (default = off)
+
+.TP
+.BI --config-file " file"
+Read configuration
+.I file
+(default = ./openggsn.cfg)
+
+.SH FILES
+.I ./osmo-ggsn.cfg
+.RS
+The configuration file for
+.B osmo-ggsn.
+.RE
+.I /var/run/osmo-ggsn.pid
+.RS
+Process ID file.
+.RE
+.I /var/lib/osmo-ggsn
+.RS
+Directory holding nonvolatile data.
+.RE
+
+.SH BUGS
+Report all bugs to the OsmoGGSN bug tracking list at
+.I https://osmocom.org/projects/openggsn
+
+.B osmo-ggsn
+has very limited management support. Currently both SNMP as well as
+billing mechanisms are missing.
+
+
+.SH "SEE ALSO"
+.BR sgsnemu (8)
+
+.SH NOTES
+.LP
+
+Besides the long options documented in this man page
+.B osmo-ggsn
+also accepts a number of short options with the same functionality. Use
+.B osmo-ggsn --help
+for a full list of all the available options.
+
+The TUN/TAP driver is required for proper operation of
+.B osmo-ggsn.
+For linux kernels later than 2.4.7 the TUN/TAP driver is included in the kernel, but typically needs to be loaded manually with
+.B modprobe tun.
+For automatic loading the line
+.B alias char-major-10-200 tun
+can be added to
+.B /etc/modules.conf.
+For other platforms see
+.I http://vtun.sourceforge.net/tun/
+for information on how to install and configure the tun driver.
+
+.B osmo-ggsn
+uses the GPRS Tunneling Protocol (GTP) as specified by the Third
+Generation Partnership Project (3GPP). 3GPP protocols specifications
+can be found at
+.I http://www.3gpp.org
+
+.SH COPYRIGHT
+
+Copyright (C) 2002, 2003 by Mondru AB.
+Copyright (C) 2017 Harald Welte
+
+The contents of this file may be used under the terms of the GNU
+General Public License Version 2, provided that the above copyright
+notice and this permission notice is included in all copies or
+substantial portions of the software.
+
+.SH AUTHORS
+Jens Jakobsen <jj@openggsn.org>
+Harald Welte <laforge@gnumonks.org>
diff --git a/doc/sgsnemu.8 b/doc/sgsnemu.8
new file mode 100644
index 0000000..197bd5d
--- /dev/null
+++ b/doc/sgsnemu.8
@@ -0,0 +1,396 @@
+
+.\" * OsmoGGSN - Gateway GPRS Support Node
+.\" * Copyright (C) 2002, 2003 Mondru AB.
+.\" *
+.\" * The contents of this file may be used under the terms of the GNU
+.\" * General Public License Version 2, provided that the above copyright
+.\" * notice and this permission notice is included in all copies or
+.\" * substantial portions of the software.
+.\" *
+.\" * The initial developer of the original code is
+.\" * Jens Jakobsen <jj@openggsn.org>
+.\" *
+.\" * Contributor(s):
+.\" *
+.\" Manual page for ggsn
+.\" SH section heading
+.\" SS subsection heading
+.\" LP paragraph
+.\" IP indented paragraph
+.\" TP hanging label
+
+.TH sgsnemu 8 "May 2004"
+.SH NAME
+sgsnemu \- Serving GPRS Support Node Emulator
+.SH SYNOPSIS
+.B sgsnemu
+\-\-help
+
+.B sgsnemu
+\-\-version
+
+.B sgsnemu
+[
+.BI \-\-debug
+] [
+.BI \-\-conf " file"
+] [
+.BI \-\-pidfile " file"
+] [
+.BI \-\-statedir " file"
+] [
+.BI \-\-dns " host"
+] [
+.BI \-\-listen " host"
+] [
+.BI \-\-remote " host"
+] [
+.BI \-\-contexts " num"
+] [
+.BI \-\-timelimit " seconds"
+] [
+.BI \-\-gtpversion " version"
+] [
+.BI \-\-apn " apn"
+] [
+.BI \-\-selmode " selmode"
+] [
+.BI \-\-imsi " imsi"
+] [
+.BI \-\-nsapi " nsapi"
+] [
+.BI \-\-msisdn " msisdn"
+] [
+.BI \-\-qos " qos"
+] [
+.BI \-\-charging " charging"
+] [
+.BI \-\-uid " uid"
+] [
+.BI \-\-pwd " pwd"
+] [
+.BI \-\-createif
+] [
+.BI \-\-net " net"
+] [
+.BI \-\-defaultroute
+] [
+.BI \-\-ipup " script"
+] [
+.BI \-\-ipdown " script"
+] [
+.BI \-\-pinghost " host"
+] [
+.BI \-\-pingrate " num"
+] [
+.BI \-\-pingsize " num"
+] [
+.BI \-\-pingcount " num"
+]
+.SH DESCRIPTION
+.B sgsnemu
+is part of the
+.B OsmoGGSN
+project, and implements a Serving GPRS Support Node (SGSN)
+emulator. It can be used for testing Gateway GPRS Support Nodes
+(GGSNs), GPRS core networks as well as GPRS roaming connections.
+
+The GPRS functionality and protocols has been standardised by the
+Third Generation Partnership Project (3GPP). According to the 3GPP
+specifications an SGSN has several interfaces.
+.B sgsnemu
+implements the Gn/Gp interface which is used towards GGSNs.
+
+The Gn/Gp interface can be seen as the uplink interface of the
+SGSN. It is used for communicating with a GGSN which is typically
+connected to the Internet. The Gn/Gp interface uses the GPRS tunneling
+protocol (GTP). User data packets (typically IP packets) are tunneled
+over GTP, which again uses UDP over IP.
+
+
+.B sgsnemu
+will establish a number of connections to the GGSN. An internal ping
+facility will transmit ping requests through the established
+connections. Alternatively a local network interface can be
+created. In this case
+.B sgsnemu
+will forward packets between the local network interface and the
+established connections on the Gn/Gp interface.
+
+.B sgsnemu
+uses the
+.B TUN/TAP driver
+for the local interface. A tun network interface is established for
+each connection established to the GGSN.
+
+Runtime errors are reported using the Osmocom logging framework.
+
+
+.SH OPTIONS
+.TP
+.BI --help
+Print help and exit.
+
+.TP
+.BI --version
+Print version and exit.
+
+.TP
+.BI --debug
+Run in debug mode (default = off)
+
+.TP
+.BI --conf " file"
+Read configuration
+.I file
+where each line corresponds to one command line option, but with the
+leading '--' removed. Command line options override the options given
+in the configuration file.
+
+.TP
+.BI --pidfile " file"
+Filename of process id
+.I file
+(default = ./sgsnemu.pid)
+
+.TP
+.BI --statedir " path"
+.I path
+to directory of nonvolatile data (default = ./)
+
+.TP
+.BI --dns " host"
+DNS server to use for APN lookups. If omitted the default system DNS
+configuration will be used.
+
+.TP
+.BI --listen " host"
+Local interface IP address to use for the Gn/Gp interface. If omitted
+.B sgsnemu
+will listen to any IP address.
+
+.TP
+.BI --remote " host"
+GGSN
+.I host
+to connect to. If DNS is setup correctly it should be possible to
+specify the access point name (APN) as the remote host.
+
+.TP
+.BI --contexts " num"
+Number of contexts to establish. (default = 1). For multiple contexts
+the the first context is established using imsi + 0 and msisdn +
+0. The second context is established using imsi + 1 and msisdn +
+1. The third....
+
+.TP
+.BI --timelimit " seconds"
+Exit
+.B sgsnemu
+after
+.I seconds.
+When using the ping facility
+.B sgsnemu
+will also exit after
+.B --pingcount
+packets has been transmitted.
+
+.TP
+.BI --gtpversion " version"
+.I version
+of GTP to use when establishing a context (default = 1). If not able
+to establish a GTPv1 context sgsnemu will fall back to using GTPv0.
+
+.TP
+.BI --apn " apn"
+.I apn
+to use when connecting to the GGSN (default = internet). APN is an
+abbreviation of Access Point Name.
+
+.TP
+.BI --selmode " selmode"
+Selection mode to use when connecting to the GGSN (default =
+0x01). The encoding of the selection mode is as follows: 0: MS or
+network provided APN, subscribed verified, 1: MS provided APN,
+subscription not verified, 2: Network provided APN, subscription not
+verified.
+
+
+.TP
+.BI --imsi " imsi"
+.I imsi
+to use when connecting to the GGSN (default = 240010123456789). IMSI
+is an abbreviation of International Mobile Subscriber Identity. Must
+be exactly 15 digits. See the
+.I contexts
+option for the the use of the
+.I imsi
+option with multiple contexts.
+
+.TP
+.BI --nsapi " nsapi"
+.I nsapi
+to use when connecting to the GGSN (default = 0). Must be between 0
+and 15.
+
+.TP
+.BI --msisdn " msisdn"
+.I msisdn
+to use when connecting to the GGSN (default = 46702123456). MSISDN is
+an abbreviation of International Mobile Integrated Services Digital
+Network. Effectly a phone number in international format without the
+leading 00 or 011. See the
+.I contexts
+option for the the use of the
+.I msisdn
+option with multiple contexts.
+
+.TP
+.BI --qos " qos"
+.I qos
+to use when connecting to the GGSN (default = 0x0b921f). QoS is an
+abbreviation of Quality of Service. See 3GPP specification 09.60 for
+the format of this string.
+
+.TP
+.BI --charging " charging"
+Charging characteristics to use when connecting to the GGSN (default =
+0x0800). 0x0800 = Normal, 0x0400 = Prepaid, 0x0200 = Flat rate, 0x0100
+= Hot billing. See 3GPP specification 32.015 for the format of this
+field.
+
+.TP
+.BI --uid " uid"
+User ID to send to GGSN as protocol configuration option.
+
+.TP
+.BI --pwd " pws"
+Password to send to GGSN as protocol configuration option.
+
+.TP
+.BI --createif
+Create a local tun interface. This interface will be used for
+forwarding packets to and from the Gn/Gp interface. Use with caution
+as the Gn/Gp interface is normally be routed to the Internet by the
+GGSN. Only one interface will be created, even if several contexts are
+established. The interface will be given an IP address for each
+established context, or the address can be specified with the
+.I net
+option.
+
+.TP
+.BI --net " net"
+Network address of the local interface. The
+.I net
+option is only valid when the
+.I createif
+option is used. The
+.I net
+option is given in cidr format (net/mask bits). If the
+.I net
+option omitted an IP address is allocated for each context established.
+
+.TP
+.BI --defaultroute
+Create a defaultroute to the local tun interface.
+
+.TP
+.BI --ipup " script"
+Script executed after the tun network interface has been brought up.
+Executed with the following parameters: <devicename> <ip address>
+
+.TP
+.BI --ipdown " script"
+Script executed after the tun network interface has been taken down.
+Executed with the following parameters: <devicename> <ip address>
+
+.TP
+.BI --pinghost " host"
+Ping
+.I host
+through the Gn/GP interface. Ping statistics are reported much like
+done by the original ping program. Use this facility for performance
+test of GGSNs.
+
+.TP
+.BI --pingrate " num"
+Number of ping requests per second (default = 1)
+
+.TP
+.BI --pingsize " num"
+The size of each ping requests in octets (default = 56)
+
+
+.TP
+.BI --pingcount " num"
+Number of ping requests to send (default = 0). A value of 0 (zero)
+indicates infinite.
+
+.TP
+.BI --pingquiet
+Do not print information for each packet received (default = off). Is
+quite useful for high pingrates.
+
+
+.SH FILES
+.I sgsnemu.conf
+.RS
+The configuration file for
+.B sgsnemu.
+.RE
+.I .sgsnemu.pid
+.RS
+Process ID file.
+.RE
+.I ./
+.RS
+Directory holding nonvolatile data.
+.RE
+
+.SH BUGS
+Report all bugs to the OsmoGGSN bug tracking list at
+.I http://osmocom.org/projects/openggsn/issues
+
+
+.SH "SEE ALSO"
+.BR ggsn (8)
+
+.SH NOTES
+.LP
+
+Besides the long options documented in this man page
+.B sgsnemu
+also accepts a number of short options with the same functionality. Use
+.B sgsnemu --help
+for a full list of all the available options.
+
+The TUN/TAP driver is required for proper operation of
+.B sgsnemu.
+For linux kernels later than 2.4.7 the TUN/TAP driver is included in
+the kernel, but typically needs to be loaded manually with
+.B modprobe tun.
+For automatic loading the line
+.B alias char-major-10-200 tun
+can be added to
+.B /etc/modules.conf.
+For other platforms see
+.I http://vtun.sourceforge.net/tun/
+for information on how to install and configure the tun driver.
+
+.B sgsnemu
+uses the GPRS Tunneling Protocol (GTP) as specified by the Third
+Generation Partnership Project (3GPP). 3GPP protocols specifications
+can be found at
+.I http://www.3gpp.org
+
+.SH COPYRIGHT
+
+Copyright (C) 2002, 2003, 2004 by Mondru AB.
+
+The contents of this file may be used under the terms of the GNU
+General Public License Version 2, provided that the above copyright
+notice and this permission notice is included in all copies or
+substantial portions of the software.
+
+.SH AUTHORS
+Jens Jakobsen <jj@openggsn.org>