summaryrefslogtreecommitdiffstats
path: root/extras/libmemif/libmemif_doc.rst
diff options
context:
space:
mode:
Diffstat (limited to 'extras/libmemif/libmemif_doc.rst')
-rw-r--r--extras/libmemif/libmemif_doc.rst67
1 files changed, 67 insertions, 0 deletions
diff --git a/extras/libmemif/libmemif_doc.rst b/extras/libmemif/libmemif_doc.rst
new file mode 100644
index 00000000000..a6478cfa89e
--- /dev/null
+++ b/extras/libmemif/libmemif_doc.rst
@@ -0,0 +1,67 @@
+.. _libmemif_doc:
+
+Shared Memory Packet Interface (memif) Library
+==============================================
+
+Features
+--------
+
+- ✅ Slave mode
+
+ - ✅ Connect to VPP over memif
+ - ✅ ICMP responder example app
+
+- ✅ Transmit/receive packets
+- ✅ Interrupt mode support
+- ✅ File descriptor event polling in libmemif (optional)
+
+ - ✅ Simplify file descriptor event polling (one handler for control
+ and interrupt channel)
+
+- ✅ Multiple connections
+- ✅ Multiple queues
+
+ - ✅ Multi-thread support
+
+- ✅ Master mode
+
+ - ✅ Multiple regions
+
+- ✅ Loopback
+
+Quickstart
+----------
+
+This setup will run libmemif ICMP responder example app in container.
+Install `docker <https://docs.docker.com/engine/installation>`__ engine.
+Useful link: `Docker
+documentation <https://docs.docker.com/get-started>`__.
+
+Build the docker image:
+
+::
+
+ # docker build . -t libmemif
+
+Now you should be able to see libmemif image on your local machine:
+
+::
+
+ # docker images
+ REPOSITORY TAG IMAGE ID CREATED SIZE
+ libmemif latest 32ecc2f9d013 About a minute ago 468MB
+ ...
+
+Run container:
+
+::
+
+ # docker run -it --rm --name icmp-responder --hostname icmp-responder --privileged -v "/run/vpp/:/run/vpp/" libmemif
+
+The interface will by default connect to a master interface listening on
+``/run/vpp/master.sock``. The example will handle ARP requests and
+respond to ICMPv4 requests to ``192.168.1.1``.
+
+Continue with :ref:`libmemif_example_setup_doc` which contains instructions on
+how to set up connection between icmpr-epoll example app and VPP-memif.
+