Code Monkey home page Code Monkey logo

srv6-mobile's People

Contributors

alagalah avatar aloysaugustin avatar ayourtch avatar bganne avatar chrisy avatar dmarion avatar dwallacelf avatar edwarnicke avatar florincoras avatar ftehlar avatar hongjunni avatar imichail avatar jgelety avatar juslo avatar kingwelx avatar marekgr avatar matfabia avatar matsusato3 avatar mgsmith1000 avatar mohsinkazmi avatar mvarlese avatar oryon avatar otroan avatar pingyucn avatar pvinci avatar sknat avatar tetsuya-arrcus avatar tetsuyamurakami avatar vrpolakatcisco avatar zhiyongyang2020 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

srv6-mobile's Issues

End.M.GTP6.DT4/6/46

End.M.GTP6.DT6

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

NH type config for GTP6.D

sub-issue of #12

  • no option: first nibble lookup
  • w/ ipv4 : GTP-U payload should only be IPv4
  • w/ ipv6 : GTP-U payload should only be IPv6
  • w/ non-ip: NH==59 (no next-header)

GTP-U Message support

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.

  • Echo Request: 1
  • Echo Responce: 2
  • Error Indication: 26
  • End Marker: 254

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 QoS flow support

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)

IPv6 over GTP-U support

All srv6-mobile localsid and T.M.GTP4.D(former T.M.Tmap) will be able to support IPv6 over GTP-U case.

Optimize the docker image size

as of July 10:

$ ~/vpp/extras/ietf105$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ietf105-image       latest              928adbda59c7        6 days ago          5.49GB

GTP4.D to be a srv6-mobile plugin

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.

Documentation

Explain the behaviors and configurations for the localsid of srv6 mobile user plane functions.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.