GTPv6 tunnel reassembly
In a fixed-wireless setup, the MAG can receive upstream fragmented GTPv6 data packets from RAN nodes over the S1-u or N3 interface. RAN nodes fragment a packet after GTPv6 tunnel encapsulation if the resulting packet exceeds the configured MTU. This typically occurs if the Path MTU Discovery (PMTUD) does not work end-to-end, and the fixed-wireless CPE sends an underlying IP packet that, after GTPv6 encapsulation on the RAN, exceeds the configured MTU.
Tunnel reassembly function on the MAG is performed on a group of ESA-VMs of type BB. A NAT group, belonging to a WLAN-GW-group of ESA-VMs, must be configured for reassembly and associated with the routing context (Base router or VPRN). The routing context is the same as the one in which the reassembled GTP packets are received and processed. The following example shows the NAT group reassembly configuration.
MD-CLI
[ex:/configure isa]
A:admin@Dut-AE# info
nat-group 1 {
redundancy {
active-mda-limit 2
}
esa-vm 1/1
esa-vm 1/2
esa-vm 1/3
}
[ex:/configure service]
A:admin@node-2# info
vprn "to-ran" {
service-id 2
customer "1"
interface "gtp-u-termination" {
}
}
classic CLI
A:node-2>config>isa>nat-group# info
----------------------------------------------
nat-group 1
redundancy
active-mda-limit 2
exit
esa-vm 1/1
esa-vm 1/2
esa-vm 1/3
no shutdown
----------------------------------------------
A:node-2>config>service# info
----------------------------------------------
customer 1 name "1" create
description "Default customer"
exit
vprn 2 name "to-ran" customer 1 create
shutdown
interface "gtp-u-termination" create
exit
exit
----------------------------------------------
The fragmented packets are steered to the ESA-VM group using the action reassemble command in an IP filter that matches on fragmented UDP packets. The IP filter is associated with the ingress network interface on which the GTPv6 packets are received. The following example shows the reassembly configuration.
MD-CLI
configure filter ipv6-filter “gtpv6-reassembly” {
entry 10 {
match {
next-header udp
fragment true
}
action {
reassemble true
}
}
}
configure router interface “gtp-u-termination”
configure service vprn “to-ran” interface “gtp-u-termination”
{
ingress {
filter {
ip "gtpv6-reassembly"
}
}
}
classic CLI
A:node-2>config>filter# info
----------------------------------------------
ipv6-filter 1 name "gtpv6-reassembly" create
entry 10 create
match next-header udp
fragment true
exit
action
reassemble
exit
exit
exit
----------------------------------------------
A:node-2>config>router# info
----------------------------------------------
#--------------------------------------------------
echo "IP Configuration"
#--------------------------------------------------
interface "gtp-u-termination"
no shutdown
exit
----------------------------------------------
The reassembled GTPv6 packet is forwarded out of the ESA and follows regular GTPv6 ingress processing in the IOM/IMM, which a received unfragmented GTPv6 packet receives.
GTPv6 tunnel reassembly is load-balanced amongst the active ESA-VMs configured in the ESA-VM group. Load balancing is performed such that all fragments of a packet are steered to the same ESA-VM in the group. Other functions, such as NAT or WLAN-GW processing, can occur simultaneously on the same set of ESAs that perform the tunnel reassembly.
The ESA-VM group providing reassembly function supports the N:K ESA-VM redundancy model, where failure of one or more active ESA-VMs can be handled by available backup ESA-VMs.