diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/Compliance.html | 919 | ||||
-rw-r--r-- | doc/Makefile.am | 7 | ||||
-rw-r--r-- | doc/examples/Makefile.am | 27 | ||||
-rwxr-xr-x | doc/examples/firewall | 48 | ||||
-rw-r--r-- | doc/examples/osmo-ggsn.cfg | 73 | ||||
-rw-r--r-- | doc/examples/sgsnemu.conf | 131 | ||||
-rw-r--r-- | doc/osmo-ggsn.8 | 173 | ||||
-rw-r--r-- | doc/sgsnemu.8 | 396 |
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> |