From 344cbe115a5ff5afcbc95e6042677a410fddd56e Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Tue, 24 Oct 2017 12:30:28 -0700 Subject: More markup fixes. Initial push to gh-pages. --- man/v0.0.0/README.html | 456 ++++++++++++++++++++++++ man/v0.0.0/nng.html | 570 ++++++++++++++++++++++++++++++ man/v0.0.0/nng_zerotier.html | 816 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 1842 insertions(+) (limited to 'man') diff --git a/man/v0.0.0/README.html b/man/v0.0.0/README.html index e69de29b..ab317eea 100644 --- a/man/v0.0.0/README.html +++ b/man/v0.0.0/README.html @@ -0,0 +1,456 @@ +--- +version: 0.0.0 +layout: default +--- + + + + + + + +Untitled + + + + + +
+
+

This contains the nng documentation for API users.

+
+
+

The documentation is written in asciidoc in the form of man pages. It is +automatically formatted for display on the website.

+
+
+

It is possible to emit TROFF sources for use by the UNIX man page, and HTML +for online viewing. asciidoctor supports PDF and EPUB formats via plugins, +so there are still more options available.

+
+
+ + + diff --git a/man/v0.0.0/nng.html b/man/v0.0.0/nng.html index e69de29b..f23c9c2e 100644 --- a/man/v0.0.0/nng.html +++ b/man/v0.0.0/nng.html @@ -0,0 +1,570 @@ +--- +version: 0.0.0 +layout: default +--- + + + + + + + + + +nng(7) + + + + + +
+
+

SYNOPSIS

+
+
+

cc [flags] files -lnng [libraries]

+
+
+
+
+

DESCRIPTION

+
+
+

The nng library provides a common messaging framework intended to +solve common communication problems in distributed applications. +It offers a number of protocols, and also a number of transports.

+
+
+

The protocols implement the semantics associated with particular +communications scenarios, such as RPC style services, service discovery, +publish/subscribe, and so forth.

+
+
+

The transports provide support for underlying transport methods, such +as TCP, IPC, websockets, and so forth.

+
+
+

The nng library is designed to permit easy creation of new transports and, +to a lesser extent, new protocols.

+
+
+

The nng library is wire compatible with the SP protocols described in +the nanomsg project; projects using libnanomsg can interoperate with +nng as well as other conforming implementations. (One such implementation +is the mangos. Applications using nng +which wish to communicate with older libraries must ensure that they only +use protocols or transports offered by the earlier library.

+
+
+

The nng library also offers a compatible API, permitting legacy code to +be recompiled or relinked against nng. When doing this, support for +certain enhancements or features will likely be absent, requiring the +application developer to use the new-style API.

+
+
+

The nng library is implemented in pure C; if you need bindings for +other languages please check the website.

+
+
+

Protocols

+
+ +
+
+
+

Transports

+
+ +
+
+
+
+
+

AUTHORS

+ +
+
+

SEE ALSO

+ +
+
+ +
+
+

Copyright 2017 Garrett D’Amore
+Copyright 2017 Capitar IT Group BV

+
+
+

This document is supplied under the terms of the +MIT License.

+
+
+
+
+ + + diff --git a/man/v0.0.0/nng_zerotier.html b/man/v0.0.0/nng_zerotier.html index e69de29b..16fbadd2 100644 --- a/man/v0.0.0/nng_zerotier.html +++ b/man/v0.0.0/nng_zerotier.html @@ -0,0 +1,816 @@ +--- +version: 0.0.0 +layout: default +--- + + + + + + + + +nng_zerotier(7) + + + + + + + +
+
+

SYNOPSIS

+
+
+

#include <nn/transports/zt.h>

+
+
+

int nng_zt_register(void);

+
+
+
+
+

DESCRIPTION

+
+
+

The nng_zerotier transport provides communication support for +nng applications over a ZeroTier network, +using a Virtual Layer 2 packet facility.

+
+
+ + + + + +
+ + +This transport is very experimental. To utilize it at +present, the library must be built with support, and the +ZeroTierOne dev branch must be included; this will require +linking against a suitable libzerotiercore static library. +
+
+
+ + + + + +
+ + +The libzerotiercore library at present is covered under different +license terms than the rest of nng. Please be careful to review +and adhere to the licensing terms. +
+
+
+

While ZeroTier makes use of the host’s IP stack (and UDP in particular), +this transport does not use or require an IP stack on the virtual +network; thereby mitigating any considerations about IP address management.

+
+
+

This service uses Ethernet type 901 to transport packets. Network rules +must permit this Ethernet type to pass in order to have a functional +network.

+
+
+ + + + + +
+ + +This document assumes that the reader is familiar with ZeroTier +concepts and administration. +
+
+
+

Registration

+
+

Depending upon how the library was built, it may be necessary to +register the transport by calling nng_zt_register. This function +returns zero on success, or an nng error value if the transport +cannot be initialized for any reason.

+
+
+
+

URI Format

+
+

This transport uses URIs using the scheme zt://, followed by a network +address (sixteen hexadecimal digits), followed by a / delimiter, +followed by the node number (ten hexadecimal digits) of the listening +node, followed by a service or port number (decimal value, up to 24-bits). +For example, the URI zt://0123456789abdef/fedcba9876:999 indicates +that node fedcba9876 on network 0123456789abcdef listening on port 999.

+
+
+

Listening nodes may use port 0, or *, to indicate that a suitable port +number be selected automatically. Applications using this must get the +selected port address using the nng_listener_getopt function.

+
+
+

Listening nodes may also elide their own node number, as well as the +delimiter seperating the node number.

+
+
+
+

Socket Address

+
+

When using an nng_sockaddr structure, the actual structure is of type +struct nng_sockaddr_zt. This type has the following definition:

+
+
+
+
#define NNG_AF_ZT 5
+
+struct nng_sockaddr_zt {
+    uint16_t sa_family;  // must be NNG_AF_ZT
+    uint64_t sa_nwid;    // 64-bit network ID
+    uint64_t sa_nodeid;  // 40-bit node ID
+    uint32_t sa_port;    // 24-bit application port
+}
+
+
+
+

The sa_family member will have the value NNG_AF_ZT (5). The remaining +members are, unlike TCP socket address, in native byte order. Only the +lower 24-bits of the sa_port may be used. Likewise only the lower 40-bits +of the sa_nodeid may be used.

+
+
+
+

Node Presence

+
+

By default this transport creates an "ephemeral" node, and used the +same ephemeral node for any additional endpoints created. As this node +is ephemeral, the keys associated with it and all associated data are +located in memory and are discarded upon application termination. If +a persistent node is desired, please see the NNG_OPT_ZT_HOME option +below.

+
+
+

It is possible for a single application to join multiple networks +using the same node, or using separate nodes.

+
+
+
+

Transport Options

+
+

The following transport options are available:

+
+
+
+
NNG_OPT_ZT_HOME
+
+

This is a string representing the "home directory", where the transport +can store (and reuse) persistent state, such as key materials, node +identity, and federation membership. This option must be set before the +ZeroTier transport is first used. If this value is empty, then an ephermal +ZeroTier node is created, and no persistent state is used. The default +is to use an ephemeral node.

+
+ + + + + +
+ + +If this option is set to different values on different sockets, +dialers, or listeners, then separate nodes will be created. It +is perfectly valid for an application to have multiple node identities +in this fashion. +
+
+
+
NNG_OPT_ZT_NWID
+
+

This is a read-only option for listeners, dialers, and pipes, and +provides a uint64_t in native byte order representing the 64-bit ZeroTier +network number.

+
+
NNG_OPT_ZT_NODE
+
+

This is a read-only option for listeners, dialers, and pipes, and +provides a uint64_t in native byte order representing the ZeroTier +40-bit node address.

+
+
NNG_OPT_ZT_NETWORK_STATUS
+
+

This is a read-ony integer, representing the ZeroTier network status. +Valid values for this are:

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + +

nng_zt_network_status_configuring

The ZeroTier node is still configuring, network services are not available.

nng_zt_network_status_ok

The ZeroTier network is up.

nng_zt_network_status_denied

The node does not have permission to join the ZeroTier network.

nng_zt_network_status_notfound

The ZeroTier network is not found.

nng_zt_network_status_error

Some other ZeroTier error has occurred; the network is not available.

nng_zt_network_status_obsolete

The node is running obsolete software; the network is not available.

+
+
NNG_OPT_ZT_NETWORK_NAME
+
+

This is a read-only ASCIIZ string containing the name of the network +as established by the ZeroTier network administrator.

+
+
NNG_OPT_ZT_PING_TIME
+
+

If no traffic has been received from the ZeroTier peer after this +period of time, then a "ping" message is sent to check if the peer +is still alive. This is an nng_duration (msec).

+
+
NNG_OPT_ZT_PING_COUNT
+
+

If this number (int) of consecutive "ping" requests are sent to the +peer with no response (and no other intervening traffic), then the +peer is assumed to be dead and the connection is closed. Note that +if any traffic is received from the peer, then the underlying counter +is reset to zero.

+
+
NNG_OPT_ZT_MTU
+
+

This is a read-only size (size_t) representing the ZeroTier virtual +network MTU; this is the Virtual Layer 2 MTU. The headers used by +this transport and the protocols consume some of this for each message +sent over the network. (The transport uses 20-bytes of this, and each +protocol may consume additional space, typically not more than 16-bytes.)

+
+
NNG_OPT_ZT_ORBIT
+
+

This is a write-only option that takes an array of two uint64_t values, +indicating the ID of a ZeroTier "moon", and the node ID of the root server +for that moon. (The ID may be zero if the moon ID is the same as it’s +root server ID, which is conventional.)

+
+
NNG_OPT_ZT_DEORBIT
+
+

This write-only option takes a single uint64_t indicating the moon +ID to "deorbit". If the node is not already orbiting the moon, then +this has no effect.

+
+
+
+
+
+
+
+

AUTHORS

+ +
+
+

SEE ALSO

+
+
+

nng(7)

+
+
+
+
+ +
+
+

Copyright 2017 Garrett D’Amore
+Copyright 2017 Capitar IT Group BV

+
+
+

This document is supplied under the terms of the +MIT License.

+
+
+
+
+ + + -- cgit v1.2.3-70-g09d2