SRv6 Mobile User Plane
Initial POC and Implementation
ENOG55 @新潟 燕三条| 2019年2月22日
海老澤 健太郎 Kentaro Ebisawa
Toyota InfoTechnology Center Co., Ltd.
SRv6データプレーン実装とモバイルへの適用
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
Happy cat’s day ☺
• Deployment options of “SRv6 Mobile User Plane”
• draft-ietf-dmm-srv6-mobile-uplane
• https://datatracker.ietf.org/doc/draft-ietf-dmm-srv6-mobile-uplane/
• Proof Of Concept ... Topology and Results
• Partial migration of GTP to SRv6 without Control Plane change
• POC Findings
• POC SRv6 Implementations
• VPP / FD.io (customized by Pablo@Cisco)
• Barefoot SRv6 P4-16 on Tofino Switch (customized by Apresia Systems)
• POC Future plans
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
Table of Contents
• POC in this document was conducted during Nov ~ Dec 2018 by the “SRv6 Consortium” ... https://seg6.net/
POC Participants and roles
• Satoru Matsushima (Softbank)
• Overall organization. Packet bare metal cloud setup including Cisco vRouter config.
• Hitoshi Kuwata (Apresia Systems)
• P4 SRv6 custom development. Wedge 100BF (Tofino Switch).
• Kentaro Ebisawa (Toyota ITC) (Editor of this document)
• Overall deployment and testing of VPP, P4 SRv6 and GTPing.
Contributors outside of the SRv6 Consortium
• Physical Lab environment (Rack/Server/Switch) was provided by Yuji Sekiya Lab @ The University of Tokyo
• https://www.sekiya-lab.info/
• Physical Lab and Server & Switch setup was by Ryo Nakamura (upa)
• VPP used in this POC is a privately customized version developed by Pablo@Cisco
• P4 SRv6 source code (without Mobile functions) was provided from Milad@Barefoot
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
About the POC and this document
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
https://seg6.net/
Deployment options of
“SRv6 Mobile User Plane”
draft-ietf-dmm-srv6-mobile-uplane-03
https://datatracker.ietf.org/doc/draft-ietf-dmm-srv6-mobile-uplane/
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
Deployment options of “SRv6 Mobile User Plane”
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
4G / 5G Core Network (focused in Uplane)
U
E
eNB PGW
Internet
GTPv1-U over IPv4
User Data
User Data
Wireless SGi
S1-U
gNB
SGW
UPF
User Data
U
E
GTPv1-U over IPv4
User Data
N3
UPF
N9 N6Wireless
4G (LTE)
5G
“SRv6 Mobile User Plane” is
an alternative User Plane option to GTPv1-U
draft-ietf-dmm-srv6-mobile-uplane-03
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
5.1. Traditional mode
draft-ietf-dmm-srv6-mobile-uplane-03
https://datatracker.ietf.org/doc/draft-ietf-dmm-srv6-mobile-uplane/
In existing 3GPP mobile networks, an UE session is mapped 1-for-1
with a specific GTP tunnel (TEID). This 1-for-1 mapping is
replicated here to replace GTP encapsulation with the SRv6
encapsulation, while not changing anything else.
Uplink Packet Flow Downlink Packet Flow
draft-ietf-dmm-srv6-mobile-uplane-03
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
5.2. Enhanced Mode
... use of multiple SIDs, instead of a single SID as
done in the Traditional mode.
The main difference is that the SR policy MAY include
SIDs for traffic engineering and service programming
in addition to the UPFs SIDs.
Uplink Packet Flow Downlink Packet Flow
draft-ietf-dmm-srv6-mobile-uplane-03
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
5.3. Enhanced mode with unchanged gNB GTP behavior
This section describes two mechanisms for interworking with legacy
gNBs that still use GTP: one for IPv4, the other for IPv6.
In the interworking scenarios as illustrated in Figure 4, gNB does
not support SRv6. gNB supports GTP encapsulation over IPv4 or IPv6.
To achieve interworking, a SR Gateway (SRGW-UPF1) entity is added.
The SRGW maps the GTP traffic into SRv6.
The SRGW is not an anchor point, and maintains very little state.
For this reason, both IPv4 and IPv6 methods scale to millions of UEs.
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
5.3. Enhanced mode with unchanged gNB GTP behavior
5.3.1. / 5.3.2. | Interworking with IPv6 / IPv4 GTP
End.M.GTP6.D End.DT4 or End.DT6
PSP
End
T.M.Tmap End.DT4 or End.DT6
PSP
End
T.Encaps.Red
<C1, S1, SRGW::TEID,gNB>End.M.GTP4.E
End.M.GTP6.E
T.Encaps.Red
<C1, S1, SRGW::TEID,gNB>
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
Slide 6 : https://datatracker.ietf.org/meeting/103/materials/slides-103-dmm-a-smooth-migration-of-mobile-core-user-plane-from-gtp-to-srv6-00
“A Smooth Migration of Mobile Core User Plane from GTP to SRv6”
IETF103 Bangkok, November, 2018 | Arashmid Akhavain, Chenchen Liu @Huawei / Pablo Camarillo @Cisco
Proof Of Concept ... Topology and Results
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
POC Topology and Results
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
Partial migration of GTP to SRv6 without Control Plane change
SRv6 Drop-In Replacement for GTP
GTP
Client
SRGW
(P4 Switch)
SRGW
(VPP)
GTP
ServerGTP/IPv4 GTP/IPv4
<= End.M.GTP4.E <= T.M.Tmap
SRv6
• GTP to SRv6 stateless translation
• No SRH overhead (one segment)
• No change in Control Plane
=> T.M.Tmap => End.M.GTP4.E
POC Topology and Results
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
GTP  SRv6 Translation Logic
GTP
Client
SRGW
(P4 Switch)
SRGW
(VPP)
GTP
ServerGTP/IPv4 GTP/IPv4
<= End.M.GTP4.E
=> T.M.Tmap => End.M.GTP4.E
<= T.M.Tmap
SRv6
① ②
SRv6 SID : fc34:5678:ac14:0002:ac14:0001:0000:0064
Dst: 172.20.0.2
Src: 172.20.0.1
TEID: 100
PREFIX
SRv6 SID
① ①②
① ①②
Packet Captured
in private network
different from POC
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
POC Topology and Results
GTP
Client
SRGW
(P4 Switch)
(Tofino)
SRGW
(VPP)
GTP
Server
GTP/IPv4 GTP/IPv4
<= End.M.GTP4.E
=> T.M.Tmap => End.M.GTP4.E
<= T.M.Tmap
SRv6
Dst: 2604:1380:3000:757f:a00:1ce1:0:2 TEID
48.0.117.127
10.0.28.225
48.0.117.127
10.0.28.225
2604:1380::
2001:200::
Eyes Only
Includes Public IP used in actual POC environment
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
POC Topology and Results
GTP
Client
SRGW
(P4 Switch)
(Tofino)
SRGW
(VPP)
GTP
Server
GTP/IPv4 GTP/IPv4
<= End.M.GTP4.E
=> T.M.Tmap => End.M.GTP4.E
<= T.M.Tmap
SRv6
Dst: 2001:200:0:1ce1:3000:757f:0:2 TEID
0.0.28.225 (*)
48.0.117.127
48.0.117.127
10.0.28.225
2604:1380::
2001:200::
Eyes Only
Includes Public IP used in actual POC environment
(*) SRGW (P4 Switch)
translates dst addr
with mask 10.x.x.x to
workaround limitation
due to available public
IPv6 address range.
Proof Of Concept ... Findings
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
Proof Of Concept ... Findings
• (T.M.Tmap) (End.M.GTP4.E) Should we (not) add SRH when single SID was
specified?
• “6.6. T.M.Tmap” psudo code does NOT insert SRH, but just encap in IPv6 packet.
• “6.5. End.M.GTP4.E” assumes there is SRH (4. pop the SRH).
• If not having SRH is acceptable, then we should update End.M.GTP4.E description
(psudo code) as well.
• We might want to do traffic engineering together with GTP to SRv6 translation.
Thus, we should update T.M.Tmap to support both cases … no SRH with single SID,
push SRH when two or more SIDs was specified including the one generated as
“SRGW-IPv6-LOC-FUNC:IPv4DA:IPv4SA:TUN-ID”
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
Error in the Mobile Uplane draft & Improvements
Proof Of Concept ... Findings
• (T.M.Tmap) GTP header info other than TEID will be lost.
• Flags ... has_seq (and others)
• Message Type ... GTPMSG_ECHO(1), GTPMSG_ECHOREPLY(2),
GTPMSG_TPDU(255)
• (T.M.Tmap) How to set correct “Next Header” to SRv6 packet?
• Protocol in GTP Payload cannot be identified from the packet itself. Assumption is
GTP in/out gateway understands the protocol the user (UE) is using.
• Maybe “T.M.Tmap” should have a parameter to specify “Next Header” value and
let controller configure it?
• What will be the number for unstructured data? 59??
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
Issues due to protocol design
Proof Of Concept ... Findings
• (T.M.Tmap) UDP source port number would not be stored when
“T.M.Tmap” is applied.
• GTP packet could change before / after going through SRv6. (Unless it is 2152)
• Use port “2152” for both source and destination packet.
• This should NOT be a problem because actual GTP-U session is uni-directional.
• (T.M.Tmap) (End.M.GTP4.E) PREFIX length longer than 32 bits?
• Operator might only have PREFIX longer than 32bits available.
• ex: Very small MVNO, Private LTE or POC testing like we did.
• Possible solution is to configure PREFIX with length “32+n” and set IPv4 higher n
bits as part of SRv6 function parameter.
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
Minor Issues / Improvements
Proof Of Concept ... Findings
• (End.M.GTP4.E) Should SRGW drop packet when header of SRv6
payload was invalid from the one specified in “Next Header” field?
• Or should SRGW blindly translate SRv6 to GTP?
• Should SRGW log this when it found the mismatch?
• Cons are too many logs generated while operator is aware (so mismatch
would not happen) or doesn’t need to be aware of what UE is sending.
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
Implementation considerations
Proof Of Concept
... SRv6 Implementations
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
POC SRv6 Implementations
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
Mobile functions (T.M.Tmap, End.M.GTP4.E) developed by ...
VPP ... by Pablo@Cisco
P4 Switch ... by Apresia Systems,
based on P4-16 SRv6 by Milad@Barefoot
But both VPP and P4 implementations are closed source (as of today)
.....
Seeking to develop Open Source implementations,
so anyone can reproduce POC and expand !! ☺
POC SRv6 Implementations
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
SRv6 on VPP (Vector Packet Processing)
https://fd.io/technology/
• Input as Packet Vector
• Process based on graph of nodes
(ethernet, mpls, ip6, arp …)
• New functionality could be added by
customizing node or creating plugin
SRv6 node: sr_localsid_node, sr_policy_*_node
DPDK (User Land)
POC SRv6 Implementations
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
SRv6 on VPP (by FD.io project)
Supported functions as of 2019/01/16
http://www.segment-routing.net/open-software/vpp/
POC SRv6 Implementations
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
Extending SRv6 functions
https://docs.fd.io/vpp/19.04/srv6_plugin_doc.html
$ git clone https://gerrit.fd.io/r/vpp
~/vpp/src/examples/srv6-sample-localsid$ ls
node.c srv6_localsid_sample.h
srv6_localsid_sample.c
srv6_sample_localsid_doc.md
POC SRv6 Implementations
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
IETF 104 Hackathon @Prague, Czech
https://trac.ietf.org/trac/ietf/meeting/wiki/104hackathon
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
POC SRv6 Implementations
Reference: P4 Workshop 2018 in Tokyo
“Wedge 100 BF Switch Introduction and SRv6 Demonstration | APRESIA Systems & Edgecore” Slide 8 https://www.barefootnetworks.com/products/brief-tofino/
P4-16 SRv6 Implementation running on Wedge100BF-32X
POC SRv6 Implementations
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
p4srv6 ... Open Source P4-16 SRv6 on BMv2
Proof Of Concept ... Future plans
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
POC Future plans
• Feedback findings to IETF DMM working group and SRv6 Mobile Uplane draft
• https://datatracker.ietf.org/doc/draft-ietf-dmm-srv6-mobile-uplane/
• Develop Open Source P4 SRv6 implementations (p4srv6 and more?)
• Develop and upstream SRv6 Mobile Functions on VPP (at IETF)
• POC next Phase
• TE enabled GTP to SRv6 translation (T.M.Tmap with SRH)
• Direct SRv6 to DN translation
• 5.3. Enhanced mode with unchanged gNB GTP behavior 5.3.2. Interworking with IPv4 GTP
• User data  GTP  SRv6  User data (DN: upstream) | Requires control plane change (S11)
• Wireless UE
SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
Next Steps

More Related Content

PDF
Overview 5G NR Radio Protocols by Intel
PDF
Intel dpdk Tutorial
PDF
Introduction to OFI
PPTX
TRex Realistic Traffic Generator - Stateless support
PPSX
FD.IO Vector Packet Processing
PDF
TRex Traffic Generator - Hanoch Haim
PDF
Memory Mapping Implementation (mmap) in Linux Kernel
PPTX
Diabetes Mellitus
Overview 5G NR Radio Protocols by Intel
Intel dpdk Tutorial
Introduction to OFI
TRex Realistic Traffic Generator - Stateless support
FD.IO Vector Packet Processing
TRex Traffic Generator - Hanoch Haim
Memory Mapping Implementation (mmap) in Linux Kernel
Diabetes Mellitus

What's hot (20)

PDF
JANOG43 Forefront of SRv6, Open Source Implementations
PDF
閉域網接続の技術入門
PDF
SRv6 study
PDF
Ethernetの受信処理
PDF
Comparison of SRv6 Extensions uSID, SRv6+, C-SRH
PDF
大規模DCのネットワークデザイン
PDF
IPv4/IPv6 移行・共存技術の動向
PDF
Segment Routing: A Tutorial
PDF
Building DataCenter networks with VXLAN BGP-EVPN
PPTX
Vxlan deep dive session rev0.5 final
PDF
"SRv6の現状と展望" ENOG53@上越
PDF
BGP Unnumbered で遊んでみた
PDF
大規模サービスを支えるネットワークインフラの全貌
PDF
ネットワークコンフィグ分析ツール Batfish との付き合い方
PDF
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)
PPTX
Scaleway Approach to VXLAN EVPN Fabric
PPTX
Wiresharkの解析プラグインを作る ssmjp 201409
PDF
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
PDF
TIME_WAITに関する話
PPTX
VPP for Stateless SRv6/GTP-U Translation
JANOG43 Forefront of SRv6, Open Source Implementations
閉域網接続の技術入門
SRv6 study
Ethernetの受信処理
Comparison of SRv6 Extensions uSID, SRv6+, C-SRH
大規模DCのネットワークデザイン
IPv4/IPv6 移行・共存技術の動向
Segment Routing: A Tutorial
Building DataCenter networks with VXLAN BGP-EVPN
Vxlan deep dive session rev0.5 final
"SRv6の現状と展望" ENOG53@上越
BGP Unnumbered で遊んでみた
大規模サービスを支えるネットワークインフラの全貌
ネットワークコンフィグ分析ツール Batfish との付き合い方
Zebra SRv6 CLI on Linux Dataplane (ENOG#49)
Scaleway Approach to VXLAN EVPN Fabric
Wiresharkの解析プラグインを作る ssmjp 201409
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
TIME_WAITに関する話
VPP for Stateless SRv6/GTP-U Translation
Ad

Similar to SRv6 Mobile User Plane : Initial POC and Implementation (20)

PDF
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U Translation
PDF
SRv6 Mobile User Plane P4 proto-type
PDF
Performance Evaluation of GTP-U and SRv6 Stateless Translation
PPTX
SCF Partners' Day: Standards and Interoperability
PPTX
GPRS TUNNELING PROTOCOL (GTP).pptxxxxxxxx
PDF
5G Network Architecture and Design
PDF
JPNE MAP-E Deployment (IETF92@Dallas)
PDF
Experience of IPv6 Introduction in Japan
PDF
I pv6 migration_strategies_for_mobile_networks_whitepaper
PDF
Linkmeup v076(2019-06).2
PDF
Advanced: 5G NR RRC Inactive State
PPTX
PDF
Part 7: 3GPP Roadmap - 5G for Absolute Beginners
DOC
Resume_Mohit_Panwar
PDF
Beginners: Introduction to 5G Reduced Capability (RedCap) Devices
PDF
18-20180514_SRv6_RIPE.pdf
ODP
3gpp overview
PDF
Bruno Decraene - Improving network availability through the graceful shutdown...
PPTX
NEC Platforms' Activity For IPv6 Deployment
PDF
Summary from 3GPP RAN #86
IETF 104 Hackathon VPP Prototyping Stateless SRv6/GTP-U Translation
SRv6 Mobile User Plane P4 proto-type
Performance Evaluation of GTP-U and SRv6 Stateless Translation
SCF Partners' Day: Standards and Interoperability
GPRS TUNNELING PROTOCOL (GTP).pptxxxxxxxx
5G Network Architecture and Design
JPNE MAP-E Deployment (IETF92@Dallas)
Experience of IPv6 Introduction in Japan
I pv6 migration_strategies_for_mobile_networks_whitepaper
Linkmeup v076(2019-06).2
Advanced: 5G NR RRC Inactive State
Part 7: 3GPP Roadmap - 5G for Absolute Beginners
Resume_Mohit_Panwar
Beginners: Introduction to 5G Reduced Capability (RedCap) Devices
18-20180514_SRv6_RIPE.pdf
3gpp overview
Bruno Decraene - Improving network availability through the graceful shutdown...
NEC Platforms' Activity For IPv6 Deployment
Summary from 3GPP RAN #86
Ad

More from Kentaro Ebisawa (20)

PDF
P4 Updates (2020) (Japanese)
PDF
Barefoot Faster™ 日本語紹介
PDF
IETF106 Hackathon 報告 & P4 based Switch の課題と未来
PDF
MPLS Japan 2019 : Data & Control Plane を繋ぐ API
PDF
Yang Tools Quick Memo
PDF
In Network Computing Prototype Using P4 at KSC/KREONET 2019
PDF
Interop2019 Toyota Netcope P4
PDF
p4srv6 (P4-16) design document rev1.0
PDF
Using GTP on Linux with libgtpnl
PDF
GTPing, How To
PDF
Zebra 2.0 in Hybrid Cloud Era
PDF
p4alu: Arithmetic Logic Unit in P4
PDF
zebra & openconfigd Introduction
PDF
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
PDF
How to run P4 BMv2
PDF
ネットワークOS野郎 ~ インフラ野郎Night 20160414
PDF
"OPEN NETWORKING" に向けた Management / Data Plane の動向
PPTX
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
PDF
ネットワークAPI のあれこれ (ENOG37)
PPTX
OVN 設定サンプル | OVN config example 2015/12/27
P4 Updates (2020) (Japanese)
Barefoot Faster™ 日本語紹介
IETF106 Hackathon 報告 & P4 based Switch の課題と未来
MPLS Japan 2019 : Data & Control Plane を繋ぐ API
Yang Tools Quick Memo
In Network Computing Prototype Using P4 at KSC/KREONET 2019
Interop2019 Toyota Netcope P4
p4srv6 (P4-16) design document rev1.0
Using GTP on Linux with libgtpnl
GTPing, How To
Zebra 2.0 in Hybrid Cloud Era
p4alu: Arithmetic Logic Unit in P4
zebra & openconfigd Introduction
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
How to run P4 BMv2
ネットワークOS野郎 ~ インフラ野郎Night 20160414
"OPEN NETWORKING" に向けた Management / Data Plane の動向
ネットワーク機器のAPIあれこれ入門 (NetOpsCoding#2)
ネットワークAPI のあれこれ (ENOG37)
OVN 設定サンプル | OVN config example 2015/12/27

Recently uploaded (20)

PDF
Uncertainty-aware contextual multi-armed bandits for recommendations in e-com...
PPTX
Presentation - Principles of Instructional Design.pptx
PDF
Addressing the challenges of harmonizing law and artificial intelligence tech...
PDF
EGCB_Solar_Project_Presentation_and Finalcial Analysis.pdf
PDF
1_Keynote_Breaking Barriers_한계를 넘어서_Charith Mendis.pdf
PDF
Applying Agentic AI in Enterprise Automation
PDF
Introduction to c language from lecture slides
PPTX
How to use fields_get method in Odoo 18
PDF
Human Computer Interaction Miterm Lesson
PPTX
Report in SIP_Distance_Learning_Technology_Impact.pptx
PDF
Examining Bias in AI Generated News Content.pdf
PDF
Peak of Data & AI Encore: Scalable Design & Infrastructure
PDF
Revolutionizing recommendations a survey: a comprehensive exploration of mode...
PDF
Domain-specific knowledge and context in large language models: challenges, c...
PDF
Slides World Game (s) Great Redesign Eco Economic Epochs.pdf
PDF
TicketRoot: Event Tech Solutions Deck 2025
PPTX
Blending method and technology for hydrogen.pptx
PDF
Child-friendly e-learning for artificial intelligence education in Indonesia:...
PPTX
maintenance powerrpoint for adaprive and preventive
PDF
substrate PowerPoint Presentation basic one
Uncertainty-aware contextual multi-armed bandits for recommendations in e-com...
Presentation - Principles of Instructional Design.pptx
Addressing the challenges of harmonizing law and artificial intelligence tech...
EGCB_Solar_Project_Presentation_and Finalcial Analysis.pdf
1_Keynote_Breaking Barriers_한계를 넘어서_Charith Mendis.pdf
Applying Agentic AI in Enterprise Automation
Introduction to c language from lecture slides
How to use fields_get method in Odoo 18
Human Computer Interaction Miterm Lesson
Report in SIP_Distance_Learning_Technology_Impact.pptx
Examining Bias in AI Generated News Content.pdf
Peak of Data & AI Encore: Scalable Design & Infrastructure
Revolutionizing recommendations a survey: a comprehensive exploration of mode...
Domain-specific knowledge and context in large language models: challenges, c...
Slides World Game (s) Great Redesign Eco Economic Epochs.pdf
TicketRoot: Event Tech Solutions Deck 2025
Blending method and technology for hydrogen.pptx
Child-friendly e-learning for artificial intelligence education in Indonesia:...
maintenance powerrpoint for adaprive and preventive
substrate PowerPoint Presentation basic one

SRv6 Mobile User Plane : Initial POC and Implementation

  • 1. SRv6 Mobile User Plane Initial POC and Implementation ENOG55 @新潟 燕三条| 2019年2月22日 海老澤 健太郎 Kentaro Ebisawa Toyota InfoTechnology Center Co., Ltd. SRv6データプレーン実装とモバイルへの適用 SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 Happy cat’s day ☺
  • 2. • Deployment options of “SRv6 Mobile User Plane” • draft-ietf-dmm-srv6-mobile-uplane • https://datatracker.ietf.org/doc/draft-ietf-dmm-srv6-mobile-uplane/ • Proof Of Concept ... Topology and Results • Partial migration of GTP to SRv6 without Control Plane change • POC Findings • POC SRv6 Implementations • VPP / FD.io (customized by Pablo@Cisco) • Barefoot SRv6 P4-16 on Tofino Switch (customized by Apresia Systems) • POC Future plans SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 Table of Contents
  • 3. • POC in this document was conducted during Nov ~ Dec 2018 by the “SRv6 Consortium” ... https://seg6.net/ POC Participants and roles • Satoru Matsushima (Softbank) • Overall organization. Packet bare metal cloud setup including Cisco vRouter config. • Hitoshi Kuwata (Apresia Systems) • P4 SRv6 custom development. Wedge 100BF (Tofino Switch). • Kentaro Ebisawa (Toyota ITC) (Editor of this document) • Overall deployment and testing of VPP, P4 SRv6 and GTPing. Contributors outside of the SRv6 Consortium • Physical Lab environment (Rack/Server/Switch) was provided by Yuji Sekiya Lab @ The University of Tokyo • https://www.sekiya-lab.info/ • Physical Lab and Server & Switch setup was by Ryo Nakamura (upa) • VPP used in this POC is a privately customized version developed by Pablo@Cisco • P4 SRv6 source code (without Mobile functions) was provided from Milad@Barefoot SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 About the POC and this document
  • 4. SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 https://seg6.net/
  • 5. Deployment options of “SRv6 Mobile User Plane” draft-ietf-dmm-srv6-mobile-uplane-03 https://datatracker.ietf.org/doc/draft-ietf-dmm-srv6-mobile-uplane/ SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
  • 6. Deployment options of “SRv6 Mobile User Plane” SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 4G / 5G Core Network (focused in Uplane) U E eNB PGW Internet GTPv1-U over IPv4 User Data User Data Wireless SGi S1-U gNB SGW UPF User Data U E GTPv1-U over IPv4 User Data N3 UPF N9 N6Wireless 4G (LTE) 5G “SRv6 Mobile User Plane” is an alternative User Plane option to GTPv1-U
  • 7. draft-ietf-dmm-srv6-mobile-uplane-03 SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 5.1. Traditional mode draft-ietf-dmm-srv6-mobile-uplane-03 https://datatracker.ietf.org/doc/draft-ietf-dmm-srv6-mobile-uplane/ In existing 3GPP mobile networks, an UE session is mapped 1-for-1 with a specific GTP tunnel (TEID). This 1-for-1 mapping is replicated here to replace GTP encapsulation with the SRv6 encapsulation, while not changing anything else. Uplink Packet Flow Downlink Packet Flow
  • 8. draft-ietf-dmm-srv6-mobile-uplane-03 SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 5.2. Enhanced Mode ... use of multiple SIDs, instead of a single SID as done in the Traditional mode. The main difference is that the SR policy MAY include SIDs for traffic engineering and service programming in addition to the UPFs SIDs. Uplink Packet Flow Downlink Packet Flow
  • 9. draft-ietf-dmm-srv6-mobile-uplane-03 SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 5.3. Enhanced mode with unchanged gNB GTP behavior This section describes two mechanisms for interworking with legacy gNBs that still use GTP: one for IPv4, the other for IPv6. In the interworking scenarios as illustrated in Figure 4, gNB does not support SRv6. gNB supports GTP encapsulation over IPv4 or IPv6. To achieve interworking, a SR Gateway (SRGW-UPF1) entity is added. The SRGW maps the GTP traffic into SRv6. The SRGW is not an anchor point, and maintains very little state. For this reason, both IPv4 and IPv6 methods scale to millions of UEs.
  • 10. SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 5.3. Enhanced mode with unchanged gNB GTP behavior 5.3.1. / 5.3.2. | Interworking with IPv6 / IPv4 GTP End.M.GTP6.D End.DT4 or End.DT6 PSP End T.M.Tmap End.DT4 or End.DT6 PSP End T.Encaps.Red <C1, S1, SRGW::TEID,gNB>End.M.GTP4.E End.M.GTP6.E T.Encaps.Red <C1, S1, SRGW::TEID,gNB>
  • 11. SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 Slide 6 : https://datatracker.ietf.org/meeting/103/materials/slides-103-dmm-a-smooth-migration-of-mobile-core-user-plane-from-gtp-to-srv6-00 “A Smooth Migration of Mobile Core User Plane from GTP to SRv6” IETF103 Bangkok, November, 2018 | Arashmid Akhavain, Chenchen Liu @Huawei / Pablo Camarillo @Cisco
  • 12. Proof Of Concept ... Topology and Results SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
  • 13. POC Topology and Results SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 Partial migration of GTP to SRv6 without Control Plane change SRv6 Drop-In Replacement for GTP GTP Client SRGW (P4 Switch) SRGW (VPP) GTP ServerGTP/IPv4 GTP/IPv4 <= End.M.GTP4.E <= T.M.Tmap SRv6 • GTP to SRv6 stateless translation • No SRH overhead (one segment) • No change in Control Plane => T.M.Tmap => End.M.GTP4.E
  • 14. POC Topology and Results SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 GTP  SRv6 Translation Logic GTP Client SRGW (P4 Switch) SRGW (VPP) GTP ServerGTP/IPv4 GTP/IPv4 <= End.M.GTP4.E => T.M.Tmap => End.M.GTP4.E <= T.M.Tmap SRv6 ① ② SRv6 SID : fc34:5678:ac14:0002:ac14:0001:0000:0064 Dst: 172.20.0.2 Src: 172.20.0.1 TEID: 100 PREFIX SRv6 SID ① ①② ① ①② Packet Captured in private network different from POC
  • 15. SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 POC Topology and Results GTP Client SRGW (P4 Switch) (Tofino) SRGW (VPP) GTP Server GTP/IPv4 GTP/IPv4 <= End.M.GTP4.E => T.M.Tmap => End.M.GTP4.E <= T.M.Tmap SRv6 Dst: 2604:1380:3000:757f:a00:1ce1:0:2 TEID 48.0.117.127 10.0.28.225 48.0.117.127 10.0.28.225 2604:1380:: 2001:200:: Eyes Only Includes Public IP used in actual POC environment
  • 16. SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 POC Topology and Results GTP Client SRGW (P4 Switch) (Tofino) SRGW (VPP) GTP Server GTP/IPv4 GTP/IPv4 <= End.M.GTP4.E => T.M.Tmap => End.M.GTP4.E <= T.M.Tmap SRv6 Dst: 2001:200:0:1ce1:3000:757f:0:2 TEID 0.0.28.225 (*) 48.0.117.127 48.0.117.127 10.0.28.225 2604:1380:: 2001:200:: Eyes Only Includes Public IP used in actual POC environment (*) SRGW (P4 Switch) translates dst addr with mask 10.x.x.x to workaround limitation due to available public IPv6 address range.
  • 17. Proof Of Concept ... Findings SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
  • 18. Proof Of Concept ... Findings • (T.M.Tmap) (End.M.GTP4.E) Should we (not) add SRH when single SID was specified? • “6.6. T.M.Tmap” psudo code does NOT insert SRH, but just encap in IPv6 packet. • “6.5. End.M.GTP4.E” assumes there is SRH (4. pop the SRH). • If not having SRH is acceptable, then we should update End.M.GTP4.E description (psudo code) as well. • We might want to do traffic engineering together with GTP to SRv6 translation. Thus, we should update T.M.Tmap to support both cases … no SRH with single SID, push SRH when two or more SIDs was specified including the one generated as “SRGW-IPv6-LOC-FUNC:IPv4DA:IPv4SA:TUN-ID” SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 Error in the Mobile Uplane draft & Improvements
  • 19. Proof Of Concept ... Findings • (T.M.Tmap) GTP header info other than TEID will be lost. • Flags ... has_seq (and others) • Message Type ... GTPMSG_ECHO(1), GTPMSG_ECHOREPLY(2), GTPMSG_TPDU(255) • (T.M.Tmap) How to set correct “Next Header” to SRv6 packet? • Protocol in GTP Payload cannot be identified from the packet itself. Assumption is GTP in/out gateway understands the protocol the user (UE) is using. • Maybe “T.M.Tmap” should have a parameter to specify “Next Header” value and let controller configure it? • What will be the number for unstructured data? 59?? SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 Issues due to protocol design
  • 20. Proof Of Concept ... Findings • (T.M.Tmap) UDP source port number would not be stored when “T.M.Tmap” is applied. • GTP packet could change before / after going through SRv6. (Unless it is 2152) • Use port “2152” for both source and destination packet. • This should NOT be a problem because actual GTP-U session is uni-directional. • (T.M.Tmap) (End.M.GTP4.E) PREFIX length longer than 32 bits? • Operator might only have PREFIX longer than 32bits available. • ex: Very small MVNO, Private LTE or POC testing like we did. • Possible solution is to configure PREFIX with length “32+n” and set IPv4 higher n bits as part of SRv6 function parameter. SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 Minor Issues / Improvements
  • 21. Proof Of Concept ... Findings • (End.M.GTP4.E) Should SRGW drop packet when header of SRv6 payload was invalid from the one specified in “Next Header” field? • Or should SRGW blindly translate SRv6 to GTP? • Should SRGW log this when it found the mismatch? • Cons are too many logs generated while operator is aware (so mismatch would not happen) or doesn’t need to be aware of what UE is sending. SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 Implementation considerations
  • 22. Proof Of Concept ... SRv6 Implementations SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
  • 23. POC SRv6 Implementations SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 Mobile functions (T.M.Tmap, End.M.GTP4.E) developed by ... VPP ... by Pablo@Cisco P4 Switch ... by Apresia Systems, based on P4-16 SRv6 by Milad@Barefoot But both VPP and P4 implementations are closed source (as of today) ..... Seeking to develop Open Source implementations, so anyone can reproduce POC and expand !! ☺
  • 24. POC SRv6 Implementations SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 SRv6 on VPP (Vector Packet Processing) https://fd.io/technology/ • Input as Packet Vector • Process based on graph of nodes (ethernet, mpls, ip6, arp …) • New functionality could be added by customizing node or creating plugin SRv6 node: sr_localsid_node, sr_policy_*_node DPDK (User Land)
  • 25. POC SRv6 Implementations SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 SRv6 on VPP (by FD.io project) Supported functions as of 2019/01/16 http://www.segment-routing.net/open-software/vpp/
  • 26. POC SRv6 Implementations SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 Extending SRv6 functions https://docs.fd.io/vpp/19.04/srv6_plugin_doc.html $ git clone https://gerrit.fd.io/r/vpp ~/vpp/src/examples/srv6-sample-localsid$ ls node.c srv6_localsid_sample.h srv6_localsid_sample.c srv6_sample_localsid_doc.md
  • 27. POC SRv6 Implementations SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 IETF 104 Hackathon @Prague, Czech https://trac.ietf.org/trac/ietf/meeting/wiki/104hackathon
  • 28. SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 POC SRv6 Implementations Reference: P4 Workshop 2018 in Tokyo “Wedge 100 BF Switch Introduction and SRv6 Demonstration | APRESIA Systems & Edgecore” Slide 8 https://www.barefootnetworks.com/products/brief-tofino/ P4-16 SRv6 Implementation running on Wedge100BF-32X
  • 29. POC SRv6 Implementations SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 p4srv6 ... Open Source P4-16 SRv6 on BMv2
  • 30. Proof Of Concept ... Future plans SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22
  • 31. POC Future plans • Feedback findings to IETF DMM working group and SRv6 Mobile Uplane draft • https://datatracker.ietf.org/doc/draft-ietf-dmm-srv6-mobile-uplane/ • Develop Open Source P4 SRv6 implementations (p4srv6 and more?) • Develop and upstream SRv6 Mobile Functions on VPP (at IETF) • POC next Phase • TE enabled GTP to SRv6 translation (T.M.Tmap with SRH) • Direct SRv6 to DN translation • 5.3. Enhanced mode with unchanged gNB GTP behavior 5.3.2. Interworking with IPv4 GTP • User data  GTP  SRv6  User data (DN: upstream) | Requires control plane change (S11) • Wireless UE SRv6 Mobile User Plane ~ Initial POC and Implementation | ENOG55 in Nigata Tsubame Sanjyo | 2019/02/22 Next Steps