YARP Transports

A subset of the network protocols used in YARP (called “carriers” there) is supported by RSB.

The YARP transports for RSB map the following URI schemas to YARP network protocols:

tcp+yarp (See TCP+YARP Transport (without Nameservice operations))

Direct connections to the TCP endpoints of YARP ports.

yarp (See YARP Transport (with Nameservice operations))

Connections to YARP ports are made via the YARP nameservice.

TCP+YARP Transport (without Nameservice operations)

Direct connections to the TCP endpoints of YARP ports. This low-level protocol requires knowing the TCP endpoint of a YARP port. Knowing the port name is not sufficient on this level.

The details of this protocol are documented here.

Note

This schema is supported in the C++ and Common Lisp implementations of RSB.

Schema

See also

URIs
Use of URIs in RSB.

This transport uses the tcp+yarp URI schema.

Options

The following configuration options are accepted:

Name         Type   Comment
+ transport
+-- tcp+yarp
+---- host   string Hostname on which endpoint runs
+---- port   uint16 Port on which endpoint listens

Implementations

Language File(s)
C++ “0.14” branch of https://code.cor-lab.org/git/rsb.git.yarp-cpp src/rsb/transport/yarp
Java not implemented yet
Python not implemented yet
Common Lisp “0.14” branch of https://code.cor-lab.org/git/rsb.git.yarp-cl src/transport/yarptcp

YARP Transport (with Nameservice operations)

Connections to YARP ports are made via the YARP nameservice. In this case, the YARP nameservice is consulted to determine the (TCP) endpoint for a YARP port name. After that, a low-level connection is established, if the carrier of the port is supported.

For this schema, nameservice queries which yield multiple results or change over time can lead to a changing set of connections. For example, the URL yarp:/iCubSim/cam could cause connections to be established to YARP ports named /iCubSim/cam/left, /iCubSim/cam/left/fovea, /iCubSim/cam/right, /iCubSim/cam/right/fovea if these ports are registered in the YARP nameservice.

Note

This schema is only supported in the Common Lisp implementation of RSB.

Schema

See also

URIs
Use of URIs in RSB.

This transport uses the yarp URI schema.

Options

The following configuration options are accepted:

Name        Type   Comment
+ transport
+-- yarp
+---- host  string Hostname or address on which the YARP nameserver listens
+---- port  uint16 Port on which the YARP nameserver listens

Implementations

Language File(s)
C++ not implemented yet
Java not implemented yet
Python not implemented yet
Common Lisp “0.14” branch of https://code.cor-lab.org/git/rsb.git.yarp-cl src/transport/yarp

Limitations

The connectors provided by the YARP transports for RSB are not proper YARP ports:

  • They do not accept incoming connections
  • They do not support the port management protocol (except the part required for connecting to other ports)
  • Only the tcp carrier is supported. udp and special-purpose carriers are not supported.