diff options
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. |