This slides deck presents mobile network protocol interworking idea of which the mobile networking IDs in GTP-U are mapped into IPv6 address with SRv6 concept in stateless. We adopt VPP as the target platform for prototyping the SRv6/GTP-U stateless translation. IETF104 hackathon was the venue where we hacked VPP to implement it.
Building AI-Driven Apps Using Semantic Kernel.pptx
VPP for Stateless SRv6/GTP-U Translation
1. VPP Prototyping for Stateless
SRv6/GTP-U Translation
2019.05.28
S.Matsushima, K.Ebisawa
2. Objectives
• Implements the key SRv6 functions defined by “I-D.ietf-dmm-srv6-
mobile-uplane*”
• Needs a flexible platform to impalement all possible functions
• Try to hack the missing features already known.
• Disclose the implementation codes as open source
• Provides feedbacks to the I-D through the hack
• To Improve the specs.
• Identify the hidden missing parts of the spec.
*: https://datatracker.ietf.org/doc/draft-ietf-dmm-srv6-mobile-uplane/
3. SRv6 Mobile Upane Functions
Target Function Description
End.MAP Forwards the receiving IPv6 packet and update the IPv6 DA
with mapped SID.
End.M.GTP6.D Decap the receiving GTP/UDP/IPv6 packet and encap with
IPv6 header, or IPv6 header with SRH based on the
address/ID mapping rule and binding SR-Policy
End.M.GTP6.E Decap the receiving IPv6+SRH packet and encap with
IPv6/UDP/GTP-U header based on the address/ID mapping
rule.
End.M.GTP4.E Decap the receiving IPv6+SRH packet and encap with
IPv4/UDP/GTP-U header base on the address/ID mapping
rule.
T.M.Tmap Decap the receiving GTP/UDP/IPv4 packet and encap with
IPv6 header, or IPv6 header with SRH based on the
address/ID mapping rule and binding SR-Policy.
End.Limit Limit the throughput of the packet flow with mapped SID.
**NEW** Encoding GTP-U Messages into SRH.
**NEW** Decoding GTP-U Messages from SRH.
4. End.MAP in Downlink
Internet
gNBUE
N3 N9 N6
IPv6 Hdr SA = U2::, DA = G::1
IPv6 Hdr SA = Z::, DA = A::
IPv6 Hdr SA = Z::, DA = A:: IPv6 HdrSA = U2::, DA = U1::
IPv6
Hdr
SA = Z::, DA = A::
IPv6 HdrSA = Z::, DA = A::
End.DX End.MAP T.Encaps.Red
UPF1
U1
UPF2
U2
SMF
AMF
N2
N11
N4
Payload
Payload
Payload
Payload
G::1
5. End.M.GTP6.D in Uplink
IPv6 Hdr SA = A::, DA = Z::
Payload
IPv6 Hdr SA = G1::, DA = X:A::1
UDP -
GTP
SA = A::, DA = Z::
Payload
TEID: 1234
IPv6 Hdr
• Without modifying the N2 interface we are steering the UE
packets to an SRGW along the designated algorithm path.
IPv6 Hdr SA = X::, DA = S1::
SR Hdr (U2::, C1::) SL=2
Payload
IPv6 Hdr SA = A::, DA = Z::
IPv6 Hdr SA = X::, DA = C1::
SR Hdr (U2::, C1::) SL=1
Payload
IPv6 Hdr SA = A::, DA = Z::
IPv6 Hdr SA = X::, DA = U2::
Payload
IPv6 Hdr SA = A::, DA = Z:: Payload
IPv6 Hdr SA = A::, DA = Z::
• SRGW advertise SID in LOC(64b of X ) + Algorithm(8b of A and B) format :
• X:A::/72 -> Low latency
• X:B::/72 -> High bandwidth
• SRGW does End.M.GTP6.D function for X:A:: and X:B::.
• X:A::1 is a type of End.M.GTP6.D SID that pops the GTP header without lookup
and pushes an outer header with SID list
• X:A:1 could be a flex-alg SID (end-to-end network slicing) for other SRv6 nodes.
• X:A::1 can be shared across UEs
SMF
InternetSR GW
X
UPF
U2
AMF
N2
N9 N6
N4
N11
Old: IPv6 addr “X::1” + TEID (1234)
New: IPv6 SID “X:A::1” + TEID (1234)
X:A:1 is BSID at X
TEID (1234) could be dummy
TE
C1
NFV
S1 N9N9
gNB
A
G1
UE
N3
End.M.GTP.6.D End.DT6End.* End.*
End.*: Appropriate SRv6 End function type for the purposes.
6. End.M.GTP6.E in Downlink
SMF
SR GW
X
AMF
IPv6 Hdr SA = Z::, DA = A::
Payload
IPv6 Hdr SA = X::, DA = G1::
UDP -
GTP
SA = Z::, DA = A::
Payload
TEID: 3456
IPv6 Hdr
• SRGW does End.M.GTP6.E function.
• X::2 is an SRv6 End.M.GTP6.E SID.
• Removes SRH, adds UDP and GTP with TEID received in SID ARGs
• IPv6 DA is the last segment of the SRH
• Scales (no state per UE in SR gateway)
• gNB could configure an IPv6 addresses per network slice.
• G1::1 -> Low latency
• G1::2 -> High bandwidth
IPv6 Hdr SA= U2::, DA= X::2:3456
SR Hdr ( G1::, X::2:3456, S1::) SL=1
IPv6 Hdr SA = Z::, DA = A::
Payload
IPv6 Hdr SA = Z::, DA = A::
Payload
• UPF U2 (anchor point) maintains state of A:
• FIB lookup: A/128 is matched to <C1::, S1::, X::2:3456, G1::>
• SRGW SID X:: need be pre-configured, or through N4 or other means.
N2
N4
N11
UPF
U2N9 N6N9N9
IPv6 Hdr SA= U2::, DA= S1
SR Hdr ( G1::, X::2:3456, S1::) SL=2
IPv6 Hdr SA = Z::, DA = A::
Payload
IPv6 Hdr SA= U2::, DA= C1
SR Hdr ( G1::, X::2:3456, S1::) SL=3
IPv6 Hdr SA = Z::, DA = A::
Payload
Remote Endpoint ==
G1:: + TEID (3456)
G1:: is a gNB IPv6 addr
TE
C1
NFV
S1
Internet
gNB
A
G1
UE
N3
End.M.GTP.6.E T.Encaps.RedEnd.*End.*
End.*: Appropriate SRv6 End function type for the purposes.
7. End.M.GTP4.E in Downlink
SMF
SR GW
X
AMF
N2
N11
UPF
U2N9 N6
N4
N9N9
IPv6 Hdr SA = Z::, DA = A::
Payload
IPv4 Hdr SA = SRGW, DA = G1
UDP -
GTP
SA = Z::, DA = A::
Payload
TEID: 3456
IPv6 Hdr
IPv6 Hdr
SA= U2::,
DA= X::G1:SRGW:3456
SR Hdr (X::G1:SRGW:3456, S1::)SL=0
IPv6 Hdr SA = Z::, DA = A::
IPv6 Hdr SA = Z::, DA = A::
Payload
IPv6 Hdr SA= U2::, DA= S1
SR Hdr (X::G1:SRGW:3456, S1::) SL=1
IPv6 Hdr SA = Z::, DA = A::
Payload
IPv6 Hdr SA= U2::, DA= C1
SR Hdr (X::G1:SRGW:3456, S1::) SL=2
IPv6 Hdr SA = Z::, DA = A::
Payload
• X::G1:SRGW:3456is an SRv6 End.M.GTP4.E function
• Removes SRH, adds IPv4/UDP and GTP
• IPv4 SA, DA and GTP TEID are part of the SID’s arguments
• Scales (no state per UE in SR gateway)
Payload
IPv4 addr of gNB + TEID (3456)
TE
C1
NFV
S1
Internet
gNB
A
G1
UE
N3
End.M.GTP.4.E T.Encaps.RedEnd.* End.*
End.*: Appropriate SRv6 End function type for the purposes.
8. SMF
SR GW
X
AMF
N2
N11
T.M.Tmap in Uplink
UPF
U2N9 N6
N4
N9N9
IPv6 Hdr SA = A::, DA = Z::
Payload
IPv4 Hdr SA = G1, DA = SRGW
UDP -
GTP
SA = A::, DA = Z::
Payload
TEID: 1234
IPv6 Hdr
IPv6 Hdr SA = X::, DA = S1::
SR Hdr (U2::, C1::) SL=2
Payload
IPv6 Hdr SA = A::, DA = Z::
IPv6 Hdr SA = X::, DA = C1::
SR Hdr (U2::, C1::) SL=1
Payload
IPv6 Hdr SA = A::, DA = Z::
IPv6 Hdr SA = X::, DA = U2::
Payload
IPv6 Hdr SA = A::, DA = Z:: Payload
IPv6 Hdr SA = A::, DA = Z::
• SRGW does T.M.Tmap function.
• SRGW is a UPF Uplink Classifier. Coexist with current UPFs.
• Steers traffic into SR policy.
IPv4 addr of SRGW + TEID (1234)
TE
C1
NFV
S1
Internet
gNB
A
G1
UE
N3
T.M.Tmap End.DTEnd.* End.*
End.*: Appropriate SRv6 End function type for the purposes.
10. Feedback from Hackathon
• Two target functions has been implemented for VPP and P4 Switch.
• New mapping rule of GTP-U<->SRv6 has been studied
• It is possible to support both ‘Args.Mob.Session’ and ‘Drop-in’ scenario.
• The codes are now open-sourced:
• VPP and P4
Target Function Description
End.MAP Forwards the receiving IPv6 packet and update the IPv6 DA
with mapped SID.
End.M.GTP6.D Decap the receiving GTP/UDP/IPv6 packet and encap with
IPv6 header, or IPv6 header with SRH based on the
address/ID mapping rule and binding SR-Policy
End.M.GTP6.E Decap the receiving IPv6+SRH packet and encap with
IPv6/UDP/GTP-U header based on the address/ID mapping
rule.
End.M.GTP4.E
(SRv6 -> GTP-U)
Decap the receiving IPv6+SRH packet and encap with
IPv4/UDP/GTP-U header base on the address/ID mapping
rule.
T.M.Tmap
(GTP-U -> SRv6)
Decap the receiving GTP/UDP/IPv4 packet and encap with
IPv6 header, or IPv6 header with SRH based on the
address/ID mapping rule and binding SR-Policy.
End.Limit Limit the throughput of the packet flow with mapped SID.
**NEW** Translate GTP-U Echo Request to ICMP Echo Request and vice
versa
**NEW** Translate GTP-U Echo Reply to ICMP Echo Request and vice
versa
12. VPP Command Lines for SRv6 Mobile UPlane
Function Command Line
End.M.GTP4.E “sr localsid (del) address <IPv6 address of SRGW>/<mask> behavior end.m.gtp4.e”
T.M.Tmap
“sr policy add bsid <bsid> next A1:: next B1:: next C1:: (weight 5) (fib-table 3)
gtp4_removal sr-prefix <ipv6_prefix_interworking>/<mask> local-prefix <src_prefix>/<mask>”
“sr steer l3 <IPv4 dst addr of GTP-U>/<mask> via bsid <bsid>”
13. ToDo:
• Contribute stateless GTP-U/SRv6 translation to FD.io
• Need ”T.M.tmap” and “End.M.GTP4.E” refactoring to be integrated into VPP
distribution.
• Support IPv6 over GTP-U case with “T.M.Tmap” and “End.M.GTP4.E”.
• Implement rest of the functions:
• End.M.GTP6.E/D
• End.MAP
• Encode/decode GTP-U Messages to/from SRH