summaryrefslogtreecommitdiff
path: root/doc/man/ouroboros.8
diff options
context:
space:
mode:
Diffstat (limited to 'doc/man/ouroboros.8')
-rw-r--r--doc/man/ouroboros.8161
1 files changed, 110 insertions, 51 deletions
diff --git a/doc/man/ouroboros.8 b/doc/man/ouroboros.8
index 95d17a05..df328fcc 100644
--- a/doc/man/ouroboros.8
+++ b/doc/man/ouroboros.8
@@ -1,8 +1,8 @@
-.\" Ouroboros man pages CC-BY 2017 - 2018
-.\" Dimitri Staessens <dimitri.staessens@ugent.be>
-.\" Sander Vrijders <sander.vrijders@ugent.be>
+.\" Ouroboros man pages CC-BY 2017 - 2024
+.\" Dimitri Staessens <dimitri@ouroboros.rocks>
+.\" Sander Vrijders <sander@ouroboros.rocks>
-.TH OUROBOROS 8 2018-03-10 Ouroboros "Ouroboros User Manual"
+.TH OUROBOROS 8 2020-11-29 Ouroboros "Ouroboros User Manual"
.SH NAME
@@ -36,9 +36,9 @@ superuser):
$ irmd
-or, if your system uses systemd, the IRM can be started as a service:
+or, if your system uses systemd, Ouroboros can be started as a service:
-$ systemctl start irmd
+$ systemctl start ouroboros
When started from the command line, the IRM has the following options:
.PP
@@ -69,7 +69,8 @@ order.
certain \fIprogram\fR or \fIprocess\fR will respond to \fIflow
allocation\fR requests for the bound name. Multiple programs and
processes can be bound to the same name, and a program or process can
-be bound to multiple names.
+be bound to multiple names. This only works for programs that use the
+Ouroboros API.
\fBCreating an IPC Process\fR will instantiate a new IPCP in the
system. This IPCP will be empty, with only a name and type specified,
@@ -90,7 +91,7 @@ may not have connections to the layer.
layer, the name can be used as a destination handle for \fIflow
allocation\fR.
-Ouroboros normal IPCPs are just like any other process, and will need
+Ouroboros unicast IPCPs are just like any other process, and will need
to be bound and registered in a lower-rank layer before they can be
accessed by other processes.
@@ -98,10 +99,9 @@ In order to enroll an IPC process in a layer, some other member will
have to be reachable over a lower layer. IPCPs that wrap a legacy
transmission technology are all bootstrapped and thus need not enroll
as they work directly over a physical connection. Ouroboros currently
-supports IPCPs over shared memory (local), L1 (raptor, experimental),
-L2 (eth-llc and eth-dix) and L3 (udp). The normal layer requires
-connections to be established between IPCP components for its
-operation.
+supports IPCPs over shared memory (local), L2 (eth-llc and eth-dix)
+and L3 (udp). The unicast and broadcast layers require connections to
+be established between IPCP components for its operation.
\fBConnecting the management components\fR using \fImanagement
flows\fR allows management information to be sent between IPCPs so
@@ -121,17 +121,17 @@ that rely on data transfer flows are the \fIdirectory\fR and the
creates an IPCP process of type \fItype\fR in the system with name
\fIname\fR. Allowable values for \fItype\fR are:
.PP
-\fBlocal\fR - create a loopback IPCP.
+\fBlocal\fR - create a loopback IPCP.
.PP
-\fBraptor\fR - create an IPCP that attaches to a raptor NetFPGA device.
+\fBeth-llc\fR - create an IPCP that attaches to Ethernet using LLC frames.
.PP
-\fBeth-llc\fR - create an IPCP that attaches to Ethernet using LLC frames.
+\fBeth-dix\fR - create an IPCP that attaches to Ethernet using DIX frames.
.PP
-\fBeth-dix\fR - create an IPCP that attaches to Ethernet using DIX frames.
+\fBudp\fR - create an IPCP that attaches to a UDP socket.
.PP
-\fBudp\fR - create an IPCP that attaches to a UDP socket.
+\fBunicast\fR - create a unicast IPCP that uses lower level layers.
.PP
-\fBnormal\fR - create a normal IPCP that uses lower level layers.
+\fBbroadcast\fR - create a broadcast IPCP that uses lower level layers.
.RE
.PP
@@ -159,19 +159,10 @@ Values for [\fIparam\fR] are dependent on \fItype\fR:
default: SHA3_256.
.RE
-\fBraptor\fR
-.RS 4
-.PP
-[hash \fIpolicy\fR] specifies the hash function used for the directory,
-.br
-\fIpolicy\fR: SHA3_224, SHA3_256, SHA3_384, SHA3_512.
-.br
-default: SHA3_256.
-.RE
-
.PP
\fBeth-llc\fR
.RS 4
+.PP
dev \fIinterface\fR specifies the interface to bind the IPCP to.
.PP
[hash \fIpolicy\fR] specifies the hash function used for the directory,
@@ -184,6 +175,7 @@ default: SHA3_256.
.PP
\fBeth-dix\fR
.RS 4
+.PP
dev \fIinterface\fR specifies the interface to bind the IPCP to.
.PP
[ethertype \fIethertype\fR] specifies the ethertype used for the layer.
@@ -200,15 +192,25 @@ default: SHA3_256.
.PP
\fBudp\fR
.RS 4
+.PP
ip \fIip\fR specifies the local IP address to bind to
-
-[dns \fdns\fR] specifies an optional DDNS server that will be used for
+.PP
+[dns \fIdns\fR] specifies an optional DDNS server that will be used for
the directory.
+.PP
+[port \fIport\fR] specifies a UDP port that is used for sending and
+receiving ouroboros traffic. This must be the same for the entire UDP
+layer. Parallel UDP layers should use different ports. This UDP port
+needs to be forwarded if the server is behind a NAT and wants to
+receive incoming requests.
+.br
+default: 3435
.RE
.PP
-\fBnormal\fR
+\fBunicast\fR
.RS 4
+.PP
[addr \fIaddress_size\fR] specifies the size of an address in bytes.
.br
default: 4 bytes.
@@ -228,31 +230,64 @@ default: flat.
.PP
[routing \fIpolicy\fR] specifies the routing policy.
.br
-\fIpolicy\fR: link_state, lfa.
+\fIpolicy\fR:
+.RS 4
+link_state: default shortest-path link-state routing.
+.br
+lfa: loop-free alternate resilient routing.
+.br
+ecmp: equal-cost multipath routing.
+.RE
.br
default: link_state.
.PP
-[pff \fIpolicy\fR] specifies the pdu forwarding function policy.
+[congestion \fIpolicy\fR] specifies the congestion avoidance policy.
.br
-\fIpolicy\fR: simple, alternate.
+\fIpolicy\fR:
+.RS 4
+none: no congestion avoidance.
+.br
+mb-ecn: Multi-bit explicit congestion notification and avoidance.
+.RE
.br
-default: simple.
+default: mb-ecn.
.PP
-[hash \fIpolicy\fR] specifies the hash function used for the directory,
+[hash \fIpolicy\fR] specifies the hash function used for the directory.
.br
\fIpolicy\fR: SHA3_224, SHA3_256, SHA3_384, SHA3_512.
.br
default: SHA3_256.
.PP
-[autobind] will automatically bind a normal IPCP to its name and the layer name.
+[autobind] will automatically bind a unicast or broadcast IPCP to its
+name and the layer name.
+.RE
+
+.PP
+\fBbroadcast\fR
+.RS 4
+.PP
+[hash \fIpolicy\fR] specifies the hash function used for the layer name.
+.br
+\fIpolicy\fR: SHA3_224, SHA3_256, SHA3_384, SHA3_512.
+.br
+default: SHA3_256.
.RE
.RE
.PP
-\fBirm ipcp enroll\fR name \fIname\fR layer \fIlayer\fR [\fIautobind\fR]
+\fBirm ipcp enroll\fR name \fIname\fR [type \fItype\fR] [dst \fIdst\fR] \
+[layer \fIlayer\fR] [\fIautobind\fR]
.RS 4
-enrolls a normal IPCP \fIname\fR to a layer for which the IPCPs accept flows for
-\fIname\fR.
+enrolls a unicast ot broadcast IPCP \fIname\fR with a dst IPCP into a
+layer. Either dst or layer need to be specified.
+.PP
+[type \fItype\fR] specifies the IPCP type (unicast or broadcast).
+.PP
+[dst \fIdst\fR] specifies the destination name to enroll with
+.PP
+[layer \fIlayer\fR] specifies the name of the layer. Only specifying
+the layer name is a shorthand for the destination name being the same
+as the layer name.
.PP
[autobind] will automatically bind this IPCP to its name and the layer name.
.RE
@@ -260,17 +295,17 @@ enrolls a normal IPCP \fIname\fR to a layer for which the IPCPs accept flows for
\fBirm ipcp connect\fR name \fIname\fR component \fIcomponent\fR dst
\fIdestination\fR
.RS 4
-connects a \fIcomponent\fR (\fBdt\fR or \fBmgmt\fR) of a normal IPCP
-with name \fIname\fR to that component of the destination IPCP within the
-same layer.
+connects a \fIcomponent\fR (\fBdt\fR or \fBmgmt\fR) of a unicast or
+broadcast IPCP with name \fIname\fR to that component of the
+destination IPCP within the same layer.
.RE
\fBirm ipcp disconnect\fR name \fIname\fR component \fIcomponent\fR dst
\fIdestination\fR
.RS 4
-disconnects \fIcomponent\fR (\fBdt\fR or \fBmgmt\fR) of a normal IPCP
-with name \fIname\fR from that component of the destination IPCP within the
-same layer.
+disconnects \fIcomponent\fR (\fBdt\fR or \fBmgmt\fR) of a unicast or
+broadcast IPCP with name \fIname\fR from that component of the
+destination IPCP within the same layer.
.RE
\fBirm ipcp list\fR type \fItype\fR name \fIname\fR layer \fIlayer\fR
@@ -279,7 +314,7 @@ lists IPCPs in the system. You can filter by type, by name or by layer.
.RE
.RE
-.SH IRM COMMANDS
+.SH IRM BIND COMMANDS
.PP
\fBirm bind\fR program \fiprogram\fR name \fIname\fR [[\fIauto\fR] -- \
[\fIparam\fR] [\fIparam\fR] ... [\fIparam\fR]]
@@ -333,20 +368,44 @@ remove the binding between \fIipcp\fR and \fIname\fR. This IPCP will
not accept future flow allocation requests for \fIname\fR.
.RE
+.SH IRM NAME COMMANDS
+.PP
+\fBirm name create \fIname\fR \fIlb\fR policy
+.RS 4
+Create a name \fIname\fR with a load-balancing policy
+.br
+\fIpolicy\fR: round-robin, spillover
+.br
+.RE
+
.PP
-\fBirm reg\fR name \fIname\fR \fIipcp\fR ipcp [\fIipcp\fR ...]
+\fBirm name destroy \fIname\fR
+.RS 4
+Destroy name \fIname\fR. This does not unregister or unbind it.
+.RE
+
+.PP
+\fBirm name register \fIname\fR \fIipcp\fR ipcp [\fIipcp\fR ...]
layer [layer \fIlayer\fR ...]
.RS 4
Register name \fIname\fR in ipcps \fIipcp\fR ipcp and layers \fIlayer\fR.
.RE
.PP
-\fBirm unreg\fR name \fIname\fR \fIipcp\fR ipcp [\fIipcp\fR ...]
+\fBirm name unregister \fIname\fR \fIipcp\fR ipcp [\fIipcp\fR ...]
layer [layer \fIlayer\fR ...]
.RS 4
Unregister name \fIname\fR in ipcps \fIipcp\fR ipcp and layers \fIlayer\fR.
.RE
+.PP
+\fBirm name list \fIname\fR
+.RS 4
+List names in the system. \fIname\fR can be used as a prefix to filter
+the names.
+.RE
+
+
.SH TERMINOLOGY
Please see \fBouroboros-glossary\fR(7).
@@ -355,14 +414,14 @@ Ouroboros was started and is currently maintained by Dimitri Staessens
and Sander Vrijders.
.SH REPORTING BUGS
-Report bugs on the bugzilla tracker at https://ouroboros.ilabt.imec.be/bugzilla
+Report bugs on the bugzilla tracker at https://ouroboros.rocks/bugzilla
.SH SEE ALSO
.BR flow_alloc "(3), " ouroboros-tutorial "(7), " ouroboros-glossary (7)
.SH COLOPHON
This page is part of the Ouroboros project, found at
-http://ouroboros.ilabt.imec.be
+http://ouroboros.rocks
These man pages are licensed under the Creative Commons Attribution
4.0 International License. To view a copy of this license, visit