filvarga / srv6-mobile Goto Github PK
View Code? Open in Web Editor NEWSRv6 IETF 104 Hackathon
License: Apache License 2.0
SRv6 IETF 104 Hackathon
License: Apache License 2.0
When a node N receives a packet destined to S and S is a
local End.M.GTP6.DT6 SID, N does:
1. IF NH=UDP & UDP_DST_PORT = GTP & inner_first_nibble = 6 THEN
2. IF inner IPv6 DA != link-local address
3. pop the outer IPv6, UDP and GTP headers
4. set the packet's associated FIB table to T1
5. resubmit the packet to the egress IPv6 FIB lookup and
transmission to the inner IPv6 destination
6. ELSE
7. set the packet's associated FIB table to T2
8. resubmit the packet to the egress IPv6 FIB lookup and
transmission to the outer IPv6 destination
9. ELSE
10. Drop the packet
Where to put/extract the SID argument (i.e, TEID) will be configurable based on the prefix length of the SID.
sub-issue of #12
The following GTP-U messages will be mapping to SRv6. Each GTP-U message is indicated by Message Type value. Message Type is encoded in the Message Type field in GTP-U header. Encoding GTP-U Message Types in SRv6 is TBD.
GTP-U header format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver |P|R|E|S|N| Message Type | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tunnel Endpoint Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number | N-PDU Number | Next-Ext-Hdr |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
5G user plane requires a new GTP-U extension header "PDU Session Container" in which 6-bits QFI and 1-bit RQI are encoded as specified in 3GPP TS36.415 "PDU Session User Plane Protocol".
T.M.GTP4.D(former T.M.Tmap) and End.M.GTP6.D will to be able to copy QFI from the extension header in the incoming GTP-U packets to the 8-bits space in between the prefix and TEID of the last SID of outgoing IPv6/SRv6 packet.
End.M.GTP4/6.E will be able to copy 8-bits consists of PPI(always 0)/RQI/QFI from the SID argument of incoming packets to the extension header of outgoing GTP-U packets. Supporting PPP/PPI mapping is currently TBD.
GTP-U header with PDU Session container extension header in 4-octets row format is as following:
GTP-U header
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0x1 |1|0|1|0|0| 0xff | Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TEID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number = 0 |N-PDU Number=0 |NextExtHdr=0x85|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
GTP-U Extension Header (PDU Session Container)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ExtHdrLen=2 | Type | Spare |P|R| QFI | PPI | Spare |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Padding |NextExtHdr=0x0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 0 = Downlink (indicates RQI, QFI and PPP present)
1 = Uplink (indicates only QFI presents)
P: PPI (Paging policy Indicator) PPI set to 1 indicates PPI presents.
R: RQI (Reflective QoS Indicator)
Parent issue is #22 .
All srv6-mobile localsid and T.M.GTP4.D(former T.M.Tmap) will be able to support IPv6 over GTP-U case.
need to be more intuitive to configure src address.
sub-issue of #15 for End.M.GTP4.E.
as of July 10:
$ ~/vpp/extras/ietf105$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ietf105-image latest 928adbda59c7 6 days ago 5.49GB
sub-issue of #15 for T.M.GTP4.D.
sub-issue of #12
T.M.GTP4.D (former T.M.Tmap) is currently implemented in sr_policy_rewrite code. As the GTP4.D code makes the sr_policy complicated, whether it is possible to make GTP4.D code to be a plugin of srv6-mobile series.
Explain the behaviors and configurations for the localsid of srv6 mobile user plane functions.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.