summaryrefslogtreecommitdiffstats
path: root/src/plugins/srv6-mobile/README.md
diff options
context:
space:
mode:
authorSatoru Matsushima <satoru.matsushima@gmail.com>2020-01-16 09:16:39 +0000
committerAndrew Yourtchenko <ayourtch@gmail.com>2020-01-27 16:20:25 +0000
commit0c514f0d76762bbd408fd41f2799343facbb8e02 (patch)
treed68ed91e68cd9d0949cb87b8e7b3431092689917 /src/plugins/srv6-mobile/README.md
parentabd931251649dd818d77fb991171c278e5b42ff1 (diff)
srv6-mobile: Update the document
Updating the document of srv6-mobile plugin code integrated into stable/2001. The reason of this patch just only for the document is that the latest commit to master was reverted by the release master for some reason. The commit included not only the code for new feature, but also the updated document for the already merged code into stable/2001. The previous doc is work-in-progress status in terms of its CLI and features. It seems there is some confusion on this patch is trying to update the document of outside feature of stable/2001 which is not true. This patch exactly reflects the correct information of srv6-mobile plugin within the extent of stable/2001. Type: docs Signed-off-by: Satoru Matsushima <satoru.matsushima@gmail.com> Change-Id: I376386ef6fc9584ab945db7358e3c4a698471e9b Signed-off-by: Satoru Matsushima <satoru.matsushima@gmail.com>
Diffstat (limited to 'src/plugins/srv6-mobile/README.md')
-rw-r--r--src/plugins/srv6-mobile/README.md178
1 files changed, 0 insertions, 178 deletions
diff --git a/src/plugins/srv6-mobile/README.md b/src/plugins/srv6-mobile/README.md
deleted file mode 100644
index 18628806cbc..00000000000
--- a/src/plugins/srv6-mobile/README.md
+++ /dev/null
@@ -1,178 +0,0 @@
-SRv6 Mobile User Plane Plugin for VPP
-========================
-
-## Introduction
-
-This plugin module can provide the stateless mobile user plane protocols translation between GTP-U and SRv6.
-The functions of the translation take advantage of SRv6 network programmability.
-[SRv6 Mobile User Plane](https://tools.ietf.org/html/draft-ietf-dmm-srv6-mobile-uplane) defines the user plane protocol using SRv6
-including following stateless translation functions:
-
-- **T.M.GTP4.D:**
- GTP-U over UDP/IPv4 -> SRv6
-- **End.M.GTP4.E:**
- SRv6 -> GTP-U over UDP/IPv4
-- **End.M.GTP6.D:**
- GTP-U over UDP/IPv6 -> SRv6
-- **End.M.GTP6.E:**
- SRv6 -> GTP-U over UDP/IPv6
-
-These functions benefit user plane(overlay) to be able to utilize data plane(underlay) networks properly. And also it benefits
-data plane to be able to handle user plane in routing paradigm.
-
-## Getting started
-To play with SRv6 Mobile User Plane on VPP, you need to install following packages:
-
- docker
- python3
- pip3
-
- Python packages (use pip):
- docker
- scapy
- jinja2
-
-
-### Quick-start
-
-1. Build up the docker container image as following:
-
-```
-$ git clone https://github.com/filvarga/srv6-mobile.git
-$ cd ./srv6-mobile/extras/ietf105
-$ ./runner.py infra build
-
-$ docker images
-REPOSITORY TAG IMAGE ID CREATED SIZE
-ietf105-image latest 577e786b7ec6 2 days ago 5.57GB
-ubuntu 18.04 4c108a37151f 4 weeks ago 64.2MB
-
-```
-
-The runner script [runner.py](test/runner.py) has features to automate configurations and procedures for the test.
-
-2. Instantiate test Scenario
-
-Let's try following command to instantiate a topology:
-
-```
-$ ./runner.py infra start
-```
-
-This command instantiates 4 VPP containers with following topology:
-
-![Topology Diagram](test/topo-init.png)
-
-You can check the instantiated docker instances with "docker ps".
-
-
-```
-$ docker ps
-CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
-44cb98994500 ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-4
-6d65fff8aee9 ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-3
-ad123b516b24 ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-2
-5efed405b96a ietf105-image "/bin/sh -c 'vpp -c …" About a minute ago Up About a minute hck-vpp-1
-
-```
-
-You can login to and configure each instantiated container.
-
-```
-$ ./runner.py cmd vppctl 0
-
-Verified image: None
-connecting to: hck-vpp-1
- _______ _ _ _____ ___
- __/ __/ _ \ (_)__ | | / / _ \/ _ \
- _/ _// // / / / _ \ | |/ / ___/ ___/
- /_/ /____(_)_/\___/ |___/_/ /_/
-
-vpp#
-```
-
-## Test Scenarios
-### SRv6 Drop-in between GTP-U tunnel
-
-This test scenario introduces SRv6 path between GTP-U tunnel transparently. A GTP-U packet sent out from one end to another is translated to SRv6 and then back to GTP-U. All GTP-U tunnel identifiers are preserved in IPv6 header and SRH.
-
-
-#### GTP-U over UDP/IPv4 case
-
-This case uses SRv6 end functions, T.M.GTP4.D and End.M.GTP4.E.
-
-![Topology Diagram](test/topo-test_gtp4d.png)
-
-VPP1 is configured with "T.M.GTP4.D", and VPP4 is configured with "End.M.GTP4.E". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv4 toward the packet capture. VPP1 translates it to SRv6 toward D4::TEID with SR policy <D2::, D3::> in SRH. VPP4 translates the SRv6 packet to the original GTP-U packet and send out to the packet capture.
-
-To start this case with IPv4 payload over GTP-U, you can run:
-
-```
-$ ./runner.py test tmap
-```
-
-If you want to use IPv6 payload instead of IPv4, you can run:
-
-```
-$ ./runner.py test tmap_ipv6
-```
-
-
-#### GTP-U over UDP/IPv6 case
-
-This case uses SRv6 end functions, End.M.GTP6.D.Di and End.M.GTP6.E.
-
-![Topology Diagram](test/topo-test_gtp6d.png)
-
-VPP1 is configured with "End.M.GTP6.D.Di", and VPP4 is configured with "End.M.GTP4.E". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv6 toward D:: of the packet capture. VPP1 translates it to SRv6 toward D:: with SR policy <D2::, D3::, D4::TEID> in SRH. VPP4 translates the SRv6 packet to the original GTP-U packet and send out to the packet capture.
-
-To start this case with IPv4 payload over GTP-U, you can run:
-
-```
-$ ./runner.py test gtp6_drop_in
-```
-
-If you want to use IPv6 payload instead of IPv4, you can run:
-
-```
-$ ./runner.py test gtp6_drop_in_ipv6
-```
-
-
-### GTP-U to SRv6
-
-This test scenario demonstrates GTP-U to SRv6 translation. A GTP-U packet sent out from one end to another is translated to SRv6.
-
-#### GTP-U over UDP/IPv6 case
-
-##### IPv4 payload
-
-This case uses SRv6 end functions, End.M.GTP6.D and End.DT4.
-
-![Topology Diagram](test/topo-test_gtp6.png)
-
-VPP1 is configured with "End.M.GTP6.D", and VPP4 is configured with "End.DT4". Others are configured with "End". The packet generator sends a GTP-U packet over UDP/IPv6 toward D::2. VPP1 translates it to SRv6 toward the IPv6 destination consists of D4:: and TEID of GTP-U with SR policy <D2::, D3::> in SRH. VPP4 decapsulates the SRv6 packet and lookup the table for the inner IPv4 packet and send out to the packet capture.
-
-To start this case, you can run:
-
-```
-$ ./runner.py test gtp6
-```
-
-##### IPv6 payload
-
-This case uses SRv6 end functions, End.M.GTP6.D and End.DT6.
-
-
-![Topology Diagram](test/topo-test_gtp6ip6.png)
-
-The configurations are same with IPv4 payload case, except D4:: is configured as "End.DT6" in VPP4. VPP4 decapsulates the SRv6 packet and lookup the table for the inner IPv6 packet and send out to the packet capture.
-
-If you want to use IPv6 payload instead of IPv4, you can run:
-
-```
-$ ./runner.py test gtp6_ipv6
-```
-
-## More information
-TBD