diff options
author | 2021-01-04 11:28:33 +0100 | |
---|---|---|
committer | 2022-03-28 22:34:33 +0000 | |
commit | e74c04fc9fb2600470fe79a69d3ec6b0db95faec (patch) | |
tree | cc85fb480afcbe74184a56162d3d06af67cc4eb5 /extras/libmemif/examples/example_setup_doc.rst | |
parent | 7d6f7d0d67face9889e43bdb5f71f352294b918a (diff) |
libmemif: refactor examples
- icmp_responder: responds to ICMPv4 and ARP requests
- loopback: connects two interfaces and sends a
verification packet from master memif to slave memif
where it is looped back
- loopback (reverse path): reverses direction of packet
in loopback application (slave memif to master memif)
Type: refactor
Signed-off-by: Jakub Grajciar <jgrajcia@cisco.com>
Change-Id: Ie90aaa3367269408efb6c5d538ad5aa827432238
Signed-off-by: Dave Wallace <dwallacelf@gmail.com>
Diffstat (limited to 'extras/libmemif/examples/example_setup_doc.rst')
-rw-r--r-- | extras/libmemif/examples/example_setup_doc.rst | 248 |
1 files changed, 0 insertions, 248 deletions
diff --git a/extras/libmemif/examples/example_setup_doc.rst b/extras/libmemif/examples/example_setup_doc.rst deleted file mode 100644 index 76ce78dab72..00000000000 --- a/extras/libmemif/examples/example_setup_doc.rst +++ /dev/null @@ -1,248 +0,0 @@ -.. _libmemif_example_setup_doc: - -Example setup -============= - -VPP-memif master icmp_responder slave -------------------------------------- - - Libmemif example app(s) use memif default socket file: - ``/run/vpp/memif.sock``. - -Run VPP and icmpr-epoll example (default example when running in -container). - - Other examples work similar to icmpr-epoll. Brief explanation can be - found in :ref:`libmemif_examples_doc` . - -VPP-side config: - -:: - - DBGvpp# create interface memif id 0 master - DBGvpp# set int state memif0/0 up - DBGvpp# set int ip address memif0/0 192.168.1.1/24 - -icmpr-epoll: - -:: - - conn 0 0 - -Memif in slave mode will try to connect every 2 seconds. If connection -establishment is successful, a message will show. - -:: - - INFO: memif connected! - -.. - - Error messages like “unmatched interface id” are printed only in - debug mode. - -Check connected status. Use show command in icmpr-epoll: - -:: - - show - MEMIF DETAILS - ============================== - interface index: 0 - interface ip: 192.168.1.2 - interface name: memif_connection - app name: ICMP_Responder - remote interface name: memif0/0 - remote app name: VPP 17.10-rc0~132-g62f9cdd - id: 0 - secret: - role: slave - mode: ethernet - socket filename: /run/vpp/memif.sock - rx queues: - queue id: 0 - ring size: 1024 - buffer size: 2048 - tx queues: - queue id: 0 - ring size: 1024 - buffer size: 2048 - link: up - interface index: 1 - no connection - -Use sh memif command in VPP: - -:: - - DBGvpp# sh memif - interface memif0/0 - remote-name "ICMP_Responder" - remote-interface "memif_connection" - id 0 mode ethernet file /run/vpp/memif.sock - flags admin-up connected - listener-fd 12 conn-fd 13 - num-s2m-rings 1 num-m2s-rings 1 buffer-size 0 - master-to-slave ring 0: - region 0 offset 32896 ring-size 1024 int-fd 16 - head 0 tail 0 flags 0x0000 interrupts 0 - master-to-slave ring 0: - region 0 offset 0 ring-size 1024 int-fd 15 - head 0 tail 0 flags 0x0001 interrupts 0 - -Send ping from VPP to icmpr-epoll: - -:: - - DBGvpp# ping 192.168.1.2 - 64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=.1888 ms - 64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=.1985 ms - 64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=.1813 ms - 64 bytes from 192.168.1.2: icmp_seq=5 ttl=64 time=.1929 ms - - Statistics: 5 sent, 4 received, 20% packet loss - -multiple queues VPP-memif slave icmp_responder master ------------------------------------------------------ - -Run icmpr-epoll as in previous example setup. Run VPP with startup conf, -enabling 2 worker threads. Example startup.conf: - -:: - - unix { - interactive - nodaemon - full-coredump - } - - cpu { - workers 2 - } - -VPP-side config: - -:: - - DBGvpp# create memif id 0 slave rx-queues 2 tx-queues 2 - DBGvpp# set int state memif0/0 up - DBGvpp# set int ip address memif0/0 192.168.1.1/24 - -icmpr-epoll: - -:: - - conn 0 1 - -When connection is established a message will print: - -:: - - INFO: memif connected! - -.. - - Error messages like “unmatched interface id” are printed only in - debug mode. - -Check connected status. Use show command in icmpr-epoll: - -:: - - show - MEMIF DETAILS - ============================== - interface index: 0 - interface ip: 192.168.1.2 - interface name: memif_connection - app name: ICMP_Responder - remote interface name: memif0/0 - remote app name: VPP 17.10-rc0~132-g62f9cdd - id: 0 - secret: - role: master - mode: ethernet - socket filename: /run/vpp/memif.sock - rx queues: - queue id: 0 - ring size: 1024 - buffer size: 2048 - queue id: 1 - ring size: 1024 - buffer size: 2048 - tx queues: - queue id: 0 - ring size: 1024 - buffer size: 2048 - queue id: 1 - ring size: 1024 - buffer size: 2048 - link: up - interface index: 1 - no connection - -Use sh memif command in VPP: - -:: - - DBGvpp# sh memif - interface memif0/0 - remote-name "ICMP_Responder" - remote-interface "memif_connection" - id 0 mode ethernet file /run/vpp/memif.sock - flags admin-up slave connected - listener-fd -1 conn-fd 12 - num-s2m-rings 2 num-m2s-rings 2 buffer-size 2048 - slave-to-master ring 0: - region 0 offset 0 ring-size 1024 int-fd 14 - head 0 tail 0 flags 0x0000 interrupts 0 - slave-to-master ring 1: - region 0 offset 32896 ring-size 1024 int-fd 15 - head 0 tail 0 flags 0x0000 interrupts 0 - slave-to-master ring 0: - region 0 offset 65792 ring-size 1024 int-fd 16 - head 0 tail 0 flags 0x0001 interrupts 0 - slave-to-master ring 1: - region 0 offset 98688 ring-size 1024 int-fd 17 - head 0 tail 0 flags 0x0001 interrupts 0 - -Send ping from VPP to icmpr-epoll: - -:: - - DBGvpp# ping 192.168.1.2 - 64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=.1439 ms - 64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=.2184 ms - 64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=.1458 ms - 64 bytes from 192.168.1.2: icmp_seq=5 ttl=64 time=.1687 ms - - Statistics: 5 sent, 4 received, 20% packet loss - -icmp_responder master icmp_responder slave ------------------------------------------- - - This setup creates connection between two applications using - libmemif. Traffic functionality is the same as when connection to - VPP. App can receive ARP/ICMP request and transmit response. - -Run two instances of icmpr-epoll example. > If not running in container, -make sure folder /run/vpp/ exists before creating memif master. Instance -1 will be in master mode, instance 2 in slave mode. instance 1: - -:: - - conn 0 1 - -instance 2: - -:: - - conn 0 0 - -In 2 seconds, both instances should print connected! message: - -:: - - INFO: memif connected! - -Check peer interface names using show command. |