mirror of
				https://gitea.osmocom.org/cellular-infrastructure/osmo-upf.git
				synced 2025-11-03 21:43:34 +00:00 
			
		
		
		
	manual: use 'tunend' and 'tunmap'
Change-Id: I09a2fa28465945c98b58b4093c7d5de65e184645
This commit is contained in:
		@@ -79,14 +79,14 @@ and encapsulation/decapsulation of GTP tunnels.
 | 
			
		||||
OsmoUPF does not support the complete PFCP feature set. It detects exactly two
 | 
			
		||||
use cases that will provide service of actual GTP tunnels:
 | 
			
		||||
 | 
			
		||||
* GTP tunnel encapsulation/decapsulation:
 | 
			
		||||
* `tunend`: GTP tunnel encapsulation/decapsulation:
 | 
			
		||||
  - One Packet Detection Rule (PDR) accepts a GTP tunnel from the Access side
 | 
			
		||||
    with an Outer Header Removal.
 | 
			
		||||
  - This PDR uses a Forwarding Action Rule (FAR) for plain IP towards Core.
 | 
			
		||||
  - Another PDR accepts plain IP on a specific IP address from Core.
 | 
			
		||||
  - The second PDR uses a FAR towards Access with Outer Header Creation for GTP.
 | 
			
		||||
 | 
			
		||||
* GTP tunnel forwarding:
 | 
			
		||||
* `tunmap`: GTP tunnel forwarding:
 | 
			
		||||
  - One Packet Detection Rule (PDR) accepts a GTP tunnel from the Access side
 | 
			
		||||
    with an Outer Header Removal.
 | 
			
		||||
  - This PDR uses a Forwarding Action Rule (FAR) towards Core with an Outer
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,7 @@ If multiple `osmo-upf` processes are running on the same Linux kernel, each
 | 
			
		||||
naming of individual tunnel rulesets does not collide:
 | 
			
		||||
 | 
			
		||||
----
 | 
			
		||||
nft
 | 
			
		||||
tunmap
 | 
			
		||||
 table-name osmo-upf-2
 | 
			
		||||
----
 | 
			
		||||
 | 
			
		||||
@@ -103,10 +103,10 @@ GTP kernel module configuration can be omitted for sites that serve only as GTP
 | 
			
		||||
forwarding proxy, without encapsulation/decapsulation of GTP payloads.
 | 
			
		||||
 | 
			
		||||
[[gtp_module]]
 | 
			
		||||
===== Configure Linux Kernel GTP Module
 | 
			
		||||
===== Configure Linux Kernel GTP Module for `tunend`
 | 
			
		||||
 | 
			
		||||
The Linux kernel GTP module is used for GTP encapsulation/decapsulation from/to
 | 
			
		||||
"the internet".
 | 
			
		||||
The Linux kernel GTP module is used for the `tunend` use case, i.e. GTP
 | 
			
		||||
encapsulation/decapsulation from/to "the internet".
 | 
			
		||||
 | 
			
		||||
To use the GTP kernel module, OsmoUPF requires a GTP device, which is a
 | 
			
		||||
dedicated network device provided by the Linux kernel, serving as GTP tunnel
 | 
			
		||||
@@ -120,7 +120,7 @@ The following configuration placed in `osmo-upf.cfg` creates a GTP device called
 | 
			
		||||
`apn23` on startup, which is also destroyed on program exit:
 | 
			
		||||
 | 
			
		||||
----
 | 
			
		||||
gtp
 | 
			
		||||
tunend
 | 
			
		||||
 dev create apn23
 | 
			
		||||
----
 | 
			
		||||
 | 
			
		||||
@@ -131,7 +131,7 @@ The following configuration placed in `osmo-upf.cfg` uses a pre-existing device
 | 
			
		||||
called `apn42`:
 | 
			
		||||
 | 
			
		||||
----
 | 
			
		||||
gtp
 | 
			
		||||
tunend
 | 
			
		||||
 dev use apn42
 | 
			
		||||
----
 | 
			
		||||
 | 
			
		||||
@@ -153,7 +153,7 @@ Instance IE passed in the PFCP Session messages (PDR/FAR). Until then, it makes
 | 
			
		||||
little sense to configure more than one GTP device.
 | 
			
		||||
 | 
			
		||||
[[nftables]]
 | 
			
		||||
===== Configure Linux netfilter
 | 
			
		||||
===== Configure Linux netfilter for `tunmap`
 | 
			
		||||
 | 
			
		||||
The Linux kernel netfilter module is used for GTP tunnel proxying, also known as
 | 
			
		||||
tunnel forwarding or tunnel mapping.
 | 
			
		||||
@@ -165,6 +165,9 @@ GTP tunnel proxying. This table name defaults to `osmo-upf`. A custom table name
 | 
			
		||||
can be configured in `osmo-upf.cfg` like this:
 | 
			
		||||
 | 
			
		||||
----
 | 
			
		||||
nft
 | 
			
		||||
tunmap
 | 
			
		||||
 table-name my-table-name
 | 
			
		||||
----
 | 
			
		||||
 | 
			
		||||
When running more than one osmo-upf process on a system, pick distinct table
 | 
			
		||||
names to avoid name collisions in the nftables reulesets.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user