Difference between revisions of "VPPHostStack"

From fd.io
Jump to: navigation, search
(VCL socket client/server)
Line 19: Line 19:
 
* POSIX API through LD_PRELOAD
 
* POSIX API through LD_PRELOAD
  
A number of test applications can be used to exercise these APIs.
+
A number of test applications can be used to exercise these APIs. For all the examples below, it assumed that two VPP instances have been brought up and properly configured to ensure networking connectivity between them. To test that network connectivity is available, the builtin ping tool can be used.
  
 
=== Builtin Echo Server/Client ===
 
=== Builtin Echo Server/Client ===
  
Once two vpp instances are brought and conf, the builtin echo apps can be
+
On the vpp instance that will act as a server:
 +
 
 +
# test echo server uri tcp://vpp_server_ip/port
 +
 
 +
and on the client
 +
 
 +
# test echo client uri tcp://vpp_server_ip/port
  
 
=== External Echo Server/Client ===
 
=== External Echo Server/Client ===

Revision as of 23:45, 6 March 2018

Description

VPP's host stack is a user space implementation of a number of transport, session and application layer protocols that leverages VPP's existing protocol stack. It roughly consists of four major components:

  • Session Layer that accepts pluggable transport protocols
  • Shared memory mechanisms for pushing data between VPP and applications
  • Transport protocol implementations (e.g. TCP, SCTP, UDP)
  • Comms Library (VCL) and LD_PRELOAD Library

Start Here

Set Up Dev Environment - Explains how to set up a VPP development environment and the requirements for using the build tools

Getting Started

Applications can link against the following APIs for host-stack service:

  • Builtin C API. It can only be used by applications hosted within VPP
  • "Raw" session layer API. It does not offer any support for async communication
  • VCL API that offers a POSIX-like interface. It comes with its own epoll implementation.
  • POSIX API through LD_PRELOAD

A number of test applications can be used to exercise these APIs. For all the examples below, it assumed that two VPP instances have been brought up and properly configured to ensure networking connectivity between them. To test that network connectivity is available, the builtin ping tool can be used.

Builtin Echo Server/Client

On the vpp instance that will act as a server:

# test echo server uri tcp://vpp_server_ip/port

and on the client

# test echo client uri tcp://vpp_server_ip/port

External Echo Server/Client

VCL socket client/server

For more details see the tutorial here

Session Layer Architecture

Session API Diagram

Running List of Presentations