SlideShare a Scribd company logo
VPP Prototyping for Stateless
SRv6/GTP-U Translation
2019.05.28
S.Matsushima, K.Ebisawa
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/
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.
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
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.
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.
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.
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.
SRv6 Mobile User Plane in IETF104 Hackathon
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
Hackathon Topology
Hack target
VPP1
VPP4
D4::
IPv4 over GTP/UDP/IPv4 IPv4 over SRH/IPv6
VPP2
D2::
IPv4 over IPv6 IPv4 over GTP/UDP/IPv4
T.M.Tmap End.M.GTP4.E
VPP3
D3::
scapy scapy
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>”
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
SRv6 Mobile Hackathon team
in IETF104@Prague

More Related Content

PDF
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...
PDF
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)
PDF
SRv6 Mobile User Plane : Initial POC and Implementation
PDF
SRv6 study
PDF
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U Translation
PDF
Using GTP on Linux with libgtpnl
PDF
Intel DPDK Step by Step instructions
PDF
JANOG43 Forefront of SRv6, Open Source Implementations
Fun with PRB, VRFs and NetNS on Linux - What is it, how does it work, what ca...
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)
SRv6 Mobile User Plane : Initial POC and Implementation
SRv6 study
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U Translation
Using GTP on Linux with libgtpnl
Intel DPDK Step by Step instructions
JANOG43 Forefront of SRv6, Open Source Implementations

What's hot (20)

ODP
Dpdk performance
PDF
GoBGP : yet another OSS BGPd
PDF
GTPing, How To
PDF
DPDK in Containers Hands-on Lab
PPTX
Docker Networking with New Ipvlan and Macvlan Drivers
PDF
Service Function Chaining with SRv6
PDF
SRv6 Mobile User Plane P4 proto-type
PDF
VXLAN BGP EVPN: Technology Building Blocks
PDF
Building Network Functions with eBPF & BCC
PDF
IPv6 Transition Strategies
PDF
LinuxCon 2015 Linux Kernel Networking Walkthrough
PDF
Kubernetes Networking with Cilium - Deep Dive
PDF
BPF: Tracing and more
PDF
DPDK: Multi Architecture High Performance Packet Processing
PPTX
The TCP/IP Stack in the Linux Kernel
PDF
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
PDF
Fun with Network Interfaces
PDF
Segment Routing Lab
PPTX
OpenvSwitch Deep Dive
PPTX
Dpdk applications
Dpdk performance
GoBGP : yet another OSS BGPd
GTPing, How To
DPDK in Containers Hands-on Lab
Docker Networking with New Ipvlan and Macvlan Drivers
Service Function Chaining with SRv6
SRv6 Mobile User Plane P4 proto-type
VXLAN BGP EVPN: Technology Building Blocks
Building Network Functions with eBPF & BCC
IPv6 Transition Strategies
LinuxCon 2015 Linux Kernel Networking Walkthrough
Kubernetes Networking with Cilium - Deep Dive
BPF: Tracing and more
DPDK: Multi Architecture High Performance Packet Processing
The TCP/IP Stack in the Linux Kernel
Deploying CloudStack and Ceph with flexible VXLAN and BGP networking
Fun with Network Interfaces
Segment Routing Lab
OpenvSwitch Deep Dive
Dpdk applications
Ad

Similar to VPP for Stateless SRv6/GTP-U Translation (20)

PDF
18-20180514_SRv6_RIPE.pdf
PPTX
Leveraging IPv6 extension header for traffic engineering, by Eric Vyncke [APN...
PDF
SRv6 Network Programming: deployment use-cases
PDF
WAN SDN meet Segment Routing
PDF
Design Of 10 gbps
PDF
Traffic Engineering Using Segment Routing
PDF
SRv6: DEPLOYMENT & USECASES by Aditya Kaul
PPTX
Brkrst 3123 previdi-final
PDF
JCSA2013 04 Laurent Toutain - La frange polymorphe de l'Internet
PDF
SRv6 note from book and some drawing for different srv6 packet format
PPTX
redGuardian DP100 large scale DDoS mitigation solution
PDF
Performance Evaluation of GTP-U and SRv6 Stateless Translation
PDF
PGW GGSN Optional Services Configuration
PDF
Hardware Accelerated Software Defined Radio
PDF
1 bonica tutorial_segment_routing
PDF
Ieee nfv-sdn-2020-srv6-tutorial
PDF
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
PDF
p4srv6 (P4-16) design document rev1.0
PDF
Cisco Live! :: Introduction to Segment Routing :: BRKRST-2124 | Las Vegas 2017
PPTX
EIGRP (Enhanced Interior Gateway Routing Protocol)
18-20180514_SRv6_RIPE.pdf
Leveraging IPv6 extension header for traffic engineering, by Eric Vyncke [APN...
SRv6 Network Programming: deployment use-cases
WAN SDN meet Segment Routing
Design Of 10 gbps
Traffic Engineering Using Segment Routing
SRv6: DEPLOYMENT & USECASES by Aditya Kaul
Brkrst 3123 previdi-final
JCSA2013 04 Laurent Toutain - La frange polymorphe de l'Internet
SRv6 note from book and some drawing for different srv6 packet format
redGuardian DP100 large scale DDoS mitigation solution
Performance Evaluation of GTP-U and SRv6 Stateless Translation
PGW GGSN Optional Services Configuration
Hardware Accelerated Software Defined Radio
1 bonica tutorial_segment_routing
Ieee nfv-sdn-2020-srv6-tutorial
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
p4srv6 (P4-16) design document rev1.0
Cisco Live! :: Introduction to Segment Routing :: BRKRST-2124 | Las Vegas 2017
EIGRP (Enhanced Interior Gateway Routing Protocol)
Ad

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Machine learning based COVID-19 study performance prediction
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Approach and Philosophy of On baking technology
PPTX
Spectroscopy.pptx food analysis technology
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Electronic commerce courselecture one. Pdf
PPTX
Cloud computing and distributed systems.
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Understanding_Digital_Forensics_Presentation.pptx
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Machine learning based COVID-19 study performance prediction
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Dropbox Q2 2025 Financial Results & Investor Presentation
Approach and Philosophy of On baking technology
Spectroscopy.pptx food analysis technology
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
20250228 LYD VKU AI Blended-Learning.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Empathic Computing: Creating Shared Understanding
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Encapsulation theory and applications.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Electronic commerce courselecture one. Pdf
Cloud computing and distributed systems.

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.
  • 9. SRv6 Mobile User Plane in IETF104 Hackathon
  • 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
  • 11. Hackathon Topology Hack target VPP1 VPP4 D4:: IPv4 over GTP/UDP/IPv4 IPv4 over SRH/IPv6 VPP2 D2:: IPv4 over IPv6 IPv4 over GTP/UDP/IPv4 T.M.Tmap End.M.GTP4.E VPP3 D3:: scapy scapy
  • 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
  • 14. SRv6 Mobile Hackathon team in IETF104@Prague