srv6 for mobile user-plane - ietf datatracker

56
SRv6 for Mobile User-Plane draft-ietf-dmm-srv6-mobile-uplane-01 IETF101 S.Matsushima, C.Filsfils, M.Kohno, D.Voyer, C.Perkins, P.Camarillo

Upload: others

Post on 28-May-2022

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SRv6 for Mobile User-Plane - IETF Datatracker

SRv6 for Mobile User-Planedraft-ietf-dmm-srv6-mobile-uplane-01

IETF101S.Matsushima, C.Filsfils, M.Kohno, D.Voyer, C.Perkins, P.Camarillo

Page 2: SRv6 for Mobile User-Plane - IETF Datatracker

Comments since IETF100•Many positive comments from both On/Off-List

• Adopted as a WG document.

• But with some complains mainly on readability, i.e: packet flow description.

• Concerns on SRH• SRH insertion or IPv6 encaps with SRH

• Impact to size of overhead

• Applicability for 5G architecture• Need to be clear on which generation is the target

• Functions covered versus existing User Plane protocol• GTP-U Messages (e.g, End-Marker)

• GTP-U Extension headers (e.g, 5G container)

• IPv4/Ethernet PDU support

Page 3: SRv6 for Mobile User-Plane - IETF Datatracker

Summary of Updates from v00 to v01• Reference architecture and terminology changes• Refer to 5G arch (TS23.501), but not limited to only that.• Traditional mode ( from Basic mode in v00 )• Enhanced mode ( from Aggregate mode in v00)

• Uses IPv6 encapsulation with SRH by default• … thereby supporting other types of PDU, e.g. IPv4, Ethernet, etc.,

• Improved draft readability• Added detailed packet flows, simplified use-cases.

• Added interworking with IPv6/GTP• New SR-GW functionality at UPF• No need for an uplink classifier

Page 4: SRv6 for Mobile User-Plane - IETF Datatracker

Next Steps• Extend function coverage

• To support GTP-U Messages and Extension headers, i.e, 5GS Container.• Ideally, GTP-U Extension header encodings are not modified. Needs further study.

• Examples with different UPFs• Interaction with Uplink Classifier UPF and/or Branching Point UPF for use cases.• e.g, traffic measurement, lawful intercept, multi-homing, charging, etc.,

Page 5: SRv6 for Mobile User-Plane - IETF Datatracker

A View of 3GPP-friendly SRv6 UP Protocol Stack

Application

PDU Layer

5G-AN

Protocol

Layers

5G-AN

Protocol

Layers

Relay Relay

IPv6*

L2

L1

IPv6*

L2

L1

IPv6*

L2

L1

IPv6*

L2

L1

PDU Layer

UE UPF

(PDU Session Anchor)

UPF5G-AN N3 N9 N6

*: IPv6 header + SRH (variable size: 1 SID = 16Bytes)

No SRH in traditional mode with just an IPv6 header (40Bytes)

Page 6: SRv6 for Mobile User-Plane - IETF Datatracker

A View of 3GPP-friendly SRv6 UP Protocol Stack(gNB/N3 unchanged scenarios)

Application

PDU Layer

5G-ANProtocolLayers

5G-ANProtocolLayers

Relay Relay

UDP/IP

L2

L1

UDP/IP

L2

L1

L2

L1

L2

L1

PDU Layer

UE

GTP-U GTP-U

UPF(PDU Session Anchor)

UPFN3 N9 N65G-AN

IPv6*IPv6*

*: IPv6 header + SRH (variable size: 1 SID = 16Bytes) No SRH in traditional mode with just an IPv6 header (40Bytes)

Page 7: SRv6 for Mobile User-Plane - IETF Datatracker

Traditional mode

Page 8: SRv6 for Mobile User-Plane - IETF Datatracker

Reference diagram

SMF

Internet

gNB

AUPFU1

UPFU2

G1

G2

AMF

UE

N2

N3

N3

N9 N6

N4

N11

X2

AMF: Access & Mobility FunctionSMF: Session Management FunctiongNB: 5G eNodeB (i.e., base station)UPF: User Plane FunctionN2, N3, N4, N6, N9, N11: 5G reference points (functional block interfaces)X2: inter-base station reference point

Page 9: SRv6 for Mobile User-Plane - IETF Datatracker

• Mobile user-plane functions are the same ones as with GTP-U. It’s just a data plane replacement.

• Equivalent with existing User Plane in terms of functionality.• PDU sessions mapped 1-for-1 with a GTP-U tunnel. In this mode,

mapped with SRv6 policy.• gNB is SRv6 capable but from control plane viewpoint there’s no change.• Lower MTU overhead than GTP-U over IPv6/UDP!draft-dukes-spring-mtu-overhead-analysis-00

Traditional mode

Page 10: SRv6 for Mobile User-Plane - IETF Datatracker

Traditional mode - uplink

Internet

gNB

UPF1U1

UPF2U2

UEN3 N9 N6

IPv6 Hdr SA = G::, DA = U1::IPv6 Hdr SA = A::, DA = Z::

IPv6 Hdr SA = A::, DA = Z:: IPv6 Hdr SA = G::, DA = U2::IPv6 Hdr SA = A::, DA = Z::

IPv6 Hdr SA = A::, DA = Z::

T.Encaps.Red End.MAP End.DT

G

SMF

AMF

N2

N11

N4

PayloadPayload

PayloadPayload

Page 11: SRv6 for Mobile User-Plane - IETF Datatracker

Traditional mode - downlink

Internet

gNBUEN3 N9 N6

IPv6 Hdr SA = U2::, DA = G::1IPv6 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

UPF1U1

UPF2U2

SMF

AMF

N2

N11

N4

PayloadPayload

PayloadPayload

G::1

Page 12: SRv6 for Mobile User-Plane - IETF Datatracker

• The “Endpoint function with SID mapping” (End.MAP) is used in several scenarios. Particulary in mobility, is is used in the UPF for

• When N receives a packet destined to S and S is a local End.Map SID, N does:

• 1. look up the IPv6 DA in the mapping table2. update the IPv6 DA with the new mapped SID ;; Ref13. forward according to the new mapped SID 4. ELSE /* if S is NOT a local End.Map SID */ 5. Drop the packet

Ref1: SRH is NOT modified if it exists in the header.

End.Map

Page 13: SRv6 for Mobile User-Plane - IETF Datatracker

Enhanced mode

Page 14: SRv6 for Mobile User-Plane - IETF Datatracker

Reference diagram

SMF

Internet

gNB

AUPFU2

G1

G2

AMF

UE

N2

N3 N9 N6

N4

N11

X2 NFVS1

TEC1N9

C1: Traffic EngineeringS1: Service function instance running on NFV platform

AMF: Access & Mobility FunctionSMF: Session Management FunctiongNB: 5G eNodeB (i.e., base station)UPF: User Plane FunctionN2, N3, N4, N6, N9, N11: 5G reference points (functional block interfaces)X2: inter-base station reference point

Page 15: SRv6 for Mobile User-Plane - IETF Datatracker

• Several UE share the same SR policy (and its SIDs)

• The SR policy includes Traffic Engineering(C1) and NFV(S1)

• The gNB control-plane (N2 interface) might, or might not be unchanged:Ø If unchanged, we signal a single IP address that the gNB resolves with

PCEP, reverse DNS, LISP into a SID listØ If changed, we signal a full SID list over the N2 interface

Enhanced mode

Page 16: SRv6 for Mobile User-Plane - IETF Datatracker

Enhanced mode - uplink

Internet

gNB

TEC1

UPF2U2

UE

NFVS1

IPv6 Hdr SA = G::, DA = S1::SR Hdr (U2::, C1::) SL=2

IPv6 Hdr SA = A::, DA = Z::IPv6 Hdr SA = A::, DA = Z:: IPv6 Hdr SA = A::, DA = Z::

T.Encaps.Red<S1::, C1::, U2::>

End.DT with PSP

IPv6 Hdr SA = G::, DA = C1::IPv6 Hdr SA = A::, DA = Z::

IPv6 Hdr SA = G::, DA = C1::SR Hdr (U2::, C1::) SL=1

IPv6 Hdr SA = A::, DA = Z::

G

SMF

AMF

N2

N4

N11

PayloadPayload PayloadPayloadPayload

End.* End.*

End.*: Appropriate SRv6 End function type for the purposes.

Page 17: SRv6 for Mobile User-Plane - IETF Datatracker

Enhanced mode - downlink

Internet

gNBUE

IPv6 Hdr SA = U2::, DA = C1::SR Hdr (G::1, S1::) SL=2

IPv6 Hdr SA = Z::, DA = A::IPv6 Hdr SA = Z::, DA = A:: IPv6 Hdr SA = Z::, DA = A::Payload

T.Encaps.Red<C1::, S1::, G::1>End.DX with PSP

IPv6 Hdr SA = U2::, DA = G::1IPv6 Hdr SA = Z::, DA = A::

IPv6 Hdr SA = U2::, DA = S1::SR Hdr (G::1, S1::) SL=1

IPv6 Hdr SA = Z::, DA = A::

TEC1

UPF2U2

NFVS1

SMF

AMF

N2

N4

N11

Payload Payload Payload Payload

End.*End.*

G::1

End.*: Appropriate SRv6 End function type for the purposes.

Page 18: SRv6 for Mobile User-Plane - IETF Datatracker

Enhanced mode with unchanged gNBIPv6 GTP behavior

Page 19: SRv6 for Mobile User-Plane - IETF Datatracker

SRv6 (N3 unchanged – IPv6/GTP)

Application

PDU Layer

5G-ANProtocolLayers

5G-ANProtocolLayers

Relay Relay

UDP/IPv6

L2

L1

UDP/IPv6

L2

L1

IPv6*

L2

L1

IPv6*

L2

L1

PDU Layer

UE UPF(PDU Session Anchor)

UPF5G-AN

N3 N9 N6

GTP-U GTP-U

At the N3 the packet is IPv6/GTP, but IPv6 DA is an SRv6 segment. Routing is based on SRv6.

*: IPv6 header + SRH (variable size: 1 SID = 16Bytes) No SRH in traditional mode with just an IPv6 header (40Bytes)

Page 20: SRv6 for Mobile User-Plane - IETF Datatracker

Reference diagram

SMF

Internet

gNB

A SR GWX

UPFU2

G1

G2

AMF

UE

N2

N3N9 N6

N4

N11

X2TEC1

NFVS1 N9N9

C1: Traffic Engineering

S1: Service function instance running on NFV platform

X: GTP-U/SRv6 Interworking

AMF: Access & Mobility Function

SMF: Session Management Function

gNB: 5G eNodeB (i.e., base station)

UPF: User Plane Function

N2, N3, N4, N6, N9, N11: 5G reference points (functional block interfaces)

X2: inter-base station reference point

SR GW: Segment Routing Gateway between GTP-U/IPv6 and SRv6

Page 21: SRv6 for Mobile User-Plane - IETF Datatracker

Objective

• SR GW to UPF U2 is SRv6 capable for the underlay, overlay and service chaining

• GTP-U endpoint IPv6 addresses of gNB and SR GW could be treated as SRv6 SID.

• No software changes in the gNB

• To achieve this we deploy an SR GW in between gNB and UPF (N3 interface)• Any SRv6 capable router on hardware or software.

• Applies to any kind of PDU session types

SMF

Internet

gNB

A SR GWX

UPFU2

G1

G2

AMF

UE

N2

N3N9 N6

N4

N11

X2TEC1

NFVS1 N9N9

Page 22: SRv6 for Mobile User-Plane - IETF Datatracker

Uplink traffic

SMF

Internet

gNB

A

SR GWX

UPFU2G1

AMF

UE

N2

N3N9 N6

N4

N11

Old: IPv6 addr “X::1” + TEID (1234)New: IPv6 SID “X:A::1” + TEID (1234)

X:A:1 is BSID at XTEID (1234) could be dummy

TEC1

NFVS1 N9N9

Page 23: SRv6 for Mobile User-Plane - IETF Datatracker

Uplink traffic

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

• 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

Internet

SR GWX

UPFU2

AMF

N2

N9 N6

N4

N11Old: 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

TEC1

NFVS1 N9N9

gNB

AG1

UE

N3

Page 24: SRv6 for Mobile User-Plane - IETF Datatracker

Uplink traffic

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::

PayloadIPv6 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 GWX

UPFU2

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 XTEID (1234) could be dummy

TEC1

NFVS1 N9N9

gNB

AG1

UE

N3

End.M.GTP.6.D End.DT6End.* End.*

End.*: Appropriate SRv6 End function type for the purposes.

Page 25: SRv6 for Mobile User-Plane - IETF Datatracker

• The " Endpoint function with IPv6/GTP decapsulation into SR policy” (End.M.GTP6.D) is used to in interworking scenario the direction from legacy user-plane to SRv6 user- plane network.

• When N receives a packet destined to S and S is a local End.M.GTP6.D SID, N does:

• 1. IF NH=UDP and UDP.DST_PORT=GTP

• 2. pop IP, UDP and GTP headers

• 3. push an outer IPv6 header with its own SRH

• 4. set the outer IPv6 SA to A

• 5. set the outer IPv6 DA to the first segment of the SRv6 Policy

• 6. forward according to the first segment of the SRv6 Policy

• 7. ELSE

• 8. drop the packet

End.M.GTP6.D

Page 26: SRv6 for Mobile User-Plane - IETF Datatracker

Downlink traffic

SMF

SR GWX

AMF

IPv6 Hdr SA = Z::, DA = A::

Payload

N2

N4

N11

UPFU2N9 N6N9N9

Remote Endpoint ==G1:: + TEID (3456)G1:: is a gNB IPv6 addr

TEC1

NFVS1

• 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.

Internet

gNB

AG1

UE

N3

Page 27: SRv6 for Mobile User-Plane - IETF Datatracker

Downlink traffic

SMF

SR GWX

AMF

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

N2

N4

N11

UPFU2N9 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

• 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.

• 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

TEC1

NFVS1

Internet

gNB

AG1

UE

N3

T.Encaps.RedEnd.*End.*

End.*: Appropriate SRv6 End function type for the purposes.

Page 28: SRv6 for Mobile User-Plane - IETF Datatracker

Downlink traffic

SMF

SR GWX

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

UPFU2N9 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

TEC1

NFVS1

Internet

gNB

AG1

UE

N3

End.M.GTP.6.E T.Encaps.RedEnd.*End.*

End.*: Appropriate SRv6 End function type for the purposes.

Page 29: SRv6 for Mobile User-Plane - IETF Datatracker

• The " Endpoint function with encapsulation for IPv6/GTP tunnel” (End.M.GTP6.E) is used in interworking scenario for the direction from SRv6 user-plane to legacy user- plane network.

• When interworking node N receives a packet P destined to S and S is a local End.RAN SID, N does:

End.M.GTP6.E

1. IF NH=SRH & SL = 1 THEN ;; Ref12. decrement SL3. store SRH[SL] in variable new_DA4 store TEID in variable new_TEID ;; Ref25. pop the (outer) IPv6 header and its extension headers6. push an IPv6 header, a UDP header and a GTP-U header7. set the IPv6 DA to new_DA8. set the GTP_TEID to new_TEID9. lookup the new_DA and forward the packet accordingly

10. ELSE11. drop the packetRef1: An End.M.GTP6.E SID must always be the penultimate SID.Ref2: TEID is extracted from the argument space of the current SID.

Page 30: SRv6 for Mobile User-Plane - IETF Datatracker

Enhanced mode with unchanged gNBIPv4 GTP behavior

Page 31: SRv6 for Mobile User-Plane - IETF Datatracker

SRv6 (N3 unchanged – IPv4/GTP)

Application

PDU Layer

5G-ANProtocolLayers

5G-ANProtocolLayers

Relay Relay

UDP/IPv4

L2

L1

UDP/IPv4

L2

L1

IPv6*

L2

L1

IPv6*

L2

L1

PDU Layer

UE

UPF(PDU Session Anchor)

UPF5G-AN

N3 N9 N6

*: IPv6 header + SRH (variable size: 1 SID = 16Byte) No SRH in traditional mode with just an IPv6 header (40Byte)

GTP-U GTP-U

At the N3 the packet is IPv4/GTP.

Page 32: SRv6 for Mobile User-Plane - IETF Datatracker

UE

SMF

gNB

A SR GWX

G1

G2

AMF

UE

N2

N3

N11

X2

Reference topology

InternetUPFU2N9 N6

N4

TEC1

NFVS1 N9N9

C1: Traffic Engineering

S1: Service function instance running on NFV platform

X: GTP-U/SRv6 Interworking

AMF: Access & Mobility Function

SMF: Session Management Function

gNB: 5G eNodeB (i.e., base station)

UPF: User Plane Function

N2, N3, N4, N6, N9, N11: 5G reference points (functional block interfaces)

X2: inter-base station reference point

SR GW: Segment Routing Gateway between GTP-U/IPv4 and SRv6

Page 33: SRv6 for Mobile User-Plane - IETF Datatracker

UE

SMF

gNB

A SR GWX

G1

G2

AMF

UE

N2

N3

N11

X2

Objective

UPFU2N9 N6

N4

TEC1

NFVS1 N9N9

• SR GW to UPF U2 is SRv6 capable for the underlay, overlay and service chaining

• GTP-U endpoint of gNB and SR GW addresses on N3 is IPv4.

• No software changes in the gNB

• To achieve this we deploy an SR GW in between gNB and UPF (N3 interface)

• Any SRv6 capable router on hardware or software.

• Applies to any kind of PDU session types

Internet

Page 34: SRv6 for Mobile User-Plane - IETF Datatracker

SMF

SR GWX

AMF

N2N11

Uplink

UPFU2N9 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::

PayloadIPv6 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)

TEC1

NFVS1

Internet

gNB

AG1

UE

N3

T.M.Tmap End.DTEnd.* End.*

End.*: Appropriate SRv6 End function type for the purposes.

Page 35: SRv6 for Mobile User-Plane - IETF Datatracker

Downlink

SMF

SR GWX

AMF

N2

N11

UPFU2N9 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)

TEC1

NFVS1

Internet

gNB

AG1

UE

N3

End.M.GTP.4.E T.Encaps.RedEnd.* End.*

End.*: Appropriate SRv6 End function type for the purposes.

Page 36: SRv6 for Mobile User-Plane - IETF Datatracker

• The “Endpoint function with encapsulation for IPv4/GTP tunnel” (End.M.GTP4.E) is used to the direction from SRv6 user-plane to legacy user-plane network.

• When interworking node N receives a packet destined to S and S is a local End.M.GTP4.E SID, N does:

End.M.GTP4.E

1. IF NH=SRH & SL > 0 THEN

2. decrement SL

3. update the IPv6 DA with SRH[SL]

4. push header of TUN-PROTO with tunnel ID from S

5. push outer IPv4 header with SA, DA from S

6. ELSE

7. Drop the packet

Ref1: TUN-PROTO indicates target tunnel type.

Page 37: SRv6 for Mobile User-Plane - IETF Datatracker

• The "Transit with mobile tunnel decapsulation and map to an SRv6 policy function (T.M.Tmap for short) is used to the direction from legacy user-plane to SRv6 user-plane network.

• When interworking node N receives a packet destined to a SRGW IPv4 address, N does:

• 1. IF P.PLOAD == TUN-PROTO THEN ;; Ref1

• 2. pop the outer IPv4 header and tunnel headers

• 3. copy IPv4 DA, SA, TUN-ID to form SID B with SRGW-IPv6-Prefix ;; embedding IPv4 DA/SA/TEID in a SID could be an option.

• 4. encapsulate the packet into a new IPv6 header ;; Ref2, Ref2bis

• 5. set the IPv6 DA = B

• 6. forward along the shortest path to B

• 7. ELSE

• 8. Drop the packet

• Ref1: P.PLOAD and T.PLOAD represent payload protocol of the receiving packet, and payload protocol of the tunnel respectively.

• Ref2: The received IPv6 DA is placed as last SID of the inserted SRH.

• Ref2bis: The SRH is inserted before any other IPv6 Routing Extension

T.M.Tmap

Page 38: SRv6 for Mobile User-Plane - IETF Datatracker

Appendix

Page 39: SRv6 for Mobile User-Plane - IETF Datatracker

CC E A , E AC I4

2,(

44

- -

42 C ,3A D3E

434 A )3A3

AD ,3A D3E 2 C 4B 4A

- C - C, E6

-G -G

)3A3 3

- A A2 C 4 AD

• C4 E EA . , - 4 /• - C A E 6C 4E A 4 4• ,A A E 4E4 4E

<- Redundancies lessen TCO <- Can be scaled up but costy<- Hard to meet Apps reqs

Page 40: SRv6 for Mobile User-Plane - IETF Datatracker

, ( 5 ) 5 -5 535 1 .

Page 41: SRv6 for Mobile User-Plane - IETF Datatracker

5 - 5 5-

-

Page 42: SRv6 for Mobile User-Plane - IETF Datatracker

D .? C .B C ?BDC B ? DB

4 8 4 CH

86 4 CH

/ ))

4 8 4 CH86 4 CH38 / (38 (

OIICH 3/ (

4 6 3/ &

/8 /8 LN &/8 8 LN &

38P / &38P &

/ ))

MCL 8 SH B

8L PFBCM 2FD O HFNS IB CHF FHFNSOHNF HC FLNO H 6CNQ LGM CRFMN

/C H SM FHC - AG OH IB LCQ 2FD O HFNS IB CHF FHFNS

0 L 8H IC IB 6CNQ LGM

1 8P& M FHC MCL 8H IC 8L N A HOHNF HCRCM CMMF IM FI OIICH -CNQCCI Q 6 BCM

38P M MCL 8/6 8L N A H

-D D - - DF?B C D?, A B DC ? , D C D

Page 43: SRv6 for Mobile User-Plane - IETF Datatracker

0 N 7 H R 7 ?D H ? N IC 7N ?

IM NAM - 2 RALM 6 A1IN 7 IC A 15P) 2 RAL

15P) -

15P) 7-

7ACHAIN 1

7ACHAIN 1

(* NM

*Exist in Segment Routing Extension Header (SRH)

275 2 A 54 2 A

3- 73-

275 2 A 54 2 A 15 - 15 7-

8 IIA 1

2-4 1

5 LN ) 5 7 LN )

15P) - 15P) 7-

3- 73-

MAL 5 R

( NM

Page 44: SRv6 for Mobile User-Plane - IETF Datatracker

C .-E 6 ? 6B C6A C E6 ? , D 6

)-

3 23 3 23

23 3 3

23 - 3 ( 3 3

) )

• 6 A 6 C6 C? - , .• ,6A B6BB ? CD 6 A6 C ?• ? ? C C C• ,E C6 A C6B 6C ?A B ? C 6 ? 6 ?C 6AB• . A6 A6B6 CB C 6 A? 6 D C ?

.-E 6C ?A

.-E . B

3- 4 2 (

3(

Page 45: SRv6 for Mobile User-Plane - IETF Datatracker

-1 - ) ( )

1

4 2 6 4

3 94 3 4 6 4

SMF

4

AMF

Page 46: SRv6 for Mobile User-Plane - IETF Datatracker

2- - ) ( )

1

4 2 6 4

3 94 3 4 6 4

SMF

4

AMF

Page 47: SRv6 for Mobile User-Plane - IETF Datatracker

1 )( 1

1SID

SID

SID

SID

4 2 6 4

3 94 3 4 6 4

SMF

4

AMF

Page 48: SRv6 for Mobile User-Plane - IETF Datatracker

2 )(

1

S I D

S I D

S I D

S I D

S I D

S I D

S I D

S I D

4 2 6 4

3 94 3 4 6 4

SMF

4

AMF

Page 49: SRv6 for Mobile User-Plane - IETF Datatracker

7 7=58 8 ==7 = : :5 7

Control-PlaneEntity

Control-Plane Message

ü Tunnel endpoint Address (A::)ü Tunnel Identifier(0x12345678)

MAG/LMA/SGW/PGW/eNB

User-PlaneEntity

FIB table

ü Tunnel endpoint Address (A::)ü Tunnel Identifier(0x12345678)

ü SID: A::1234:5678

2 25A: 562 2 21-5A: 56

2 ����������2 3 4

Page 50: SRv6 for Mobile User-Plane - IETF Datatracker

SRH (Segment Routing Header)

4

Segment ID(SID)

Page 51: SRv6 for Mobile User-Plane - IETF Datatracker

46 6 SRv6 Function*Name

Forwarding

( - (

( . 3

( 6 ) 6

( ) 3 6) 6

( ) 3 6) 6

( . ) 3 )

( . ) 3 )

( - 64 -) 64

SRv6 Function*Name

Forwarding

) 4

)6 ) - 64 -) 64

(6 - 64 -) 64 ) 3

* Non exhaustive list of SRv6 Network Programming

Page 52: SRv6 for Mobile User-Plane - IETF Datatracker

����������

• IPv6 Segment Routing Header (SRH)• draft-ietf-6man-segment-routing-header

• SRv6 Network Programming• draft-filsfils-spring-srv6-network-programming

Page 53: SRv6 for Mobile User-Plane - IETF Datatracker

Traditional mode - uplink

Internet

gNB

UPF1U1

UPF2U2

UEN3 N9 N6

IPv6 Hdr SA = A::, DA = U1::SR Hdr ( Z::, U2::) SL=1

Payload

IPv6 Hdr SA = A::, DA = Z::Payload

IPv6 Hdr SA = A::, DA = U2::SR Hdr ( Z::, U2::) SL=0

Payload

IPv6 Hdr SA = A::, DA = Z::Payload

T.Insert.Red End.B6 End.T

Inse

rtio

n

IPv6 Hdr SA = G::, DA = U1::

PayloadIPv6 Hdr SA = A::, DA = Z::

IPv6 Hdr SA = A::, DA = Z::Payload

IPv6 Hdr SA = G::, DA = U2::

PayloadIPv6 Hdr SA = A::, DA = Z::

IPv6 Hdr SA = A::, DA = Z::Payload

T.Encaps.Red End.MAP End.DT

Enca

psul

atio

n

G

SMF

AMF

N2

N11

N4

Page 54: SRv6 for Mobile User-Plane - IETF Datatracker

Traditional mode - downlink

Internet

gNBUEN3 N9 N6

IPv6 Hdr SA = Z::, DA = G::SR Hdr ( A::, G::) SL=0

Payload

IPv6 Hdr SA = Z::, DA = A::Payload

IPv6 Hdr SA = Z::, DA = U1::SR Hdr ( A::, G::) SL=1

Payload

IPv6 Hdr SA = Z::, DA = A::Payload

End.X End.B6 T.Insert.Red

Inse

rtio

n

IPv6 Hdr SA = U2::, DA = G::

PayloadIPv6 Hdr SA = Z::, DA = A::

IPv6 Hdr SA = Z::, DA = A::Payload

IPv6 Hdr SA = U2::, DA = U1::

PayloadIPv6 Hdr SA = Z::, DA = A::

IPv6 Hdr SA = Z::, DA = A::Payload

End.X End.MAP T.Encaps.Red

Enca

psul

atio

n

UPF1U1

UPF2U2G

SMF

AMF

N2

N11

N4

Page 55: SRv6 for Mobile User-Plane - IETF Datatracker

Enhanced mode - uplink

Internet

gNB

TEC1

UPF2U2

UE

NFVS1

IPv6 Hdr SA = A::, DA = S1::SR Hdr (Z::, U2::, C1::) SL=3

PayloadIPv6 Hdr SA = A::, DA = Z::

PayloadIPv6 Hdr SA = A::, DA = Z::

Payload

T.Insert.Red<S1::, C1::, U2::>

End.T with PSP

Inse

rt

IPv6 Hdr SA = A::, DA = U2::

Payload(Z::, U2::, C1::) SL=1SR Hdr

IPv6 Hdr SA = A::, DA = C1::SR Hdr (Z::, U2::, C1::) SL=2

Payload

IPv6 Hdr SA = G::, DA = S1::SR Hdr (U2::, C1::) SL=2

PayloadIPv6 Hdr SA = A::, DA = Z::IPv6 Hdr SA = A::, DA = Z::

PayloadIPv6 Hdr SA = A::, DA = Z::

Payload

T.Encaps.Red<S1::, C1::, U2::>

End.DT with PSP

Enca

ps

IPv6 Hdr SA = G::, DA = C1::

PayloadIPv6 Hdr SA = A::, DA = Z::

IPv6 Hdr SA = G::, DA = C1::SR Hdr (U2::, C1::) SL=1

PayloadIPv6 Hdr SA = A::, DA = Z::

G

SMF

AMF

N2

N4

N11

Page 56: SRv6 for Mobile User-Plane - IETF Datatracker

Enhanced mode - downlink

Internet

gNBUE

IPv6 Hdr SA = Z::, DA = G1::SR Hdr (A::, G::, S1::) SL=1

PayloadIPv6 Hdr SA = Z::, DA = A::

PayloadIPv6 Hdr SA = Z::, DA = A::

Payload

T.Insert.Red<C1::, S1::, G::>

End.T with PSP

Inse

rt

IPv6 Hdr SA = Z::, DA = C1::

Payload(A::, G::, S1::) SL=3SR Hdr

IPv6 Hdr SA = Z::, DA = S1::SR Hdr (A::, G::, S1::) SL=2

Payload

IPv6 Hdr SA = U2::, DA = C1::SR Hdr (G::, S1::) SL=2

PayloadIPv6 Hdr SA = Z::, DA = A::IPv6 Hdr SA = Z::, DA = A::

PayloadIPv6 Hdr SA = Z::, DA = A::

Payload

T.Encaps.Red<C1::, S1::, G::>End.DT with PSP

Enca

ps

IPv6 Hdr SA = U2::, DA = G::

PayloadIPv6 Hdr SA = Z::, DA = A::

IPv6 Hdr SA = U2::, DA = S1::SR Hdr (G::, S1::) SL=1

PayloadIPv6 Hdr SA = Z::, DA = A::

TEC1

UPF2U2

NFVS1

G

SMF

AMF

N2

N4

N11