diff options
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/man/fccntl.3 | 42 | ||||
| -rw-r--r-- | doc/man/flow_alloc.3 | 26 | ||||
| -rw-r--r-- | doc/man/flow_read.3 | 35 | ||||
| -rw-r--r-- | doc/man/fqueue.3 | 40 | ||||
| -rw-r--r-- | doc/man/fset.3 | 8 | ||||
| -rw-r--r-- | doc/man/ouroboros-glossary.7 | 8 | ||||
| -rw-r--r-- | doc/man/ouroboros-tutorial.7 | 28 | ||||
| -rw-r--r-- | doc/man/ouroboros.8 | 161 | ||||
| -rw-r--r-- | doc/workflow.txt | 4 |
9 files changed, 226 insertions, 126 deletions
diff --git a/doc/man/fccntl.3 b/doc/man/fccntl.3 index bec506ec..767342b9 100644 --- a/doc/man/fccntl.3 +++ b/doc/man/fccntl.3 @@ -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 FCCNTL 3 2018-02-28 Ouroboros "Ouroboros Programmer's Manual" +.TH FCCNTL 3 2018-10-04 Ouroboros "Ouroboros Programmer's Manual" .SH NAME @@ -40,8 +40,8 @@ disables the timeout. \fBFLOWGQOSSPEC\fR - retrieve the current QoS specification of the flow. Takes a \fBqosspec_t * \fIqs\fR as third argument. -\fBFLOWSFLAGS\fR - set flow flags. Takes flow flags as third -argument. Supported flags are: +\fBFLOWSFLAGS\fR - set flow flags. Takes flow \fBuint32_t\fR +\fIflags\fR as third argument. Supported flags are: .RS 8 \fIFLOWFRDONLY\fR - set flow to read-only. @@ -60,36 +60,36 @@ argument. Supported flags are: \fIFLOWFRNOPART\fR - disable partial reading. -\fIFLOWFDEFAULT\fR - set flow defaults (blocking, read-write). +\fIFLOWFWNOPART\fR - disable partial writing. + +\fIFLOWFDEFAULT\fR - set flow defaults (blocking, read-write, +no partial writes). .RE -\fBFLOWGFLAGS\fR - get the current flow flags. Takes an \fBuint32_t +\fBFLOWGFLAGS\fR - get the current flow flags. Takes an \fBuint32_t * \fIflags\fR as third argument. \fBFLOWGRXQLEN\fR - get the current number of packets in the receive -buffer. Takes a \fBsize_t \fIqlen\fR as third argument. +buffer. Takes a \fBsize_t \fIqlen\fR * as third argument. \fBFLOWGTXQLEN\fR - get the current number of packets in the transmit -buffer. Takes a \fBsize_t \fIqlen\fR as third argument. +buffer. Takes a \fBsize_t \fIqlen\fR * as third argument. -\fBFRCTSFLAGS\fR - set FRCT flags. Takes FRCT flags as third -argument. Supported flags are: +\fBFRCTSFLAGS\fR - set the current flow flags. Takes an \fBuint16_t +\fIflags\fR as third argument. Supported flags are: .RS 8 -\fIFRCTFRESCNTRL\fR - enable resource control. - -\fIFRCTFRTX\fR - enable retransmission. - -\fIFRCTFERRCHCK\fR - enable checksum (CRC32). +\fIFRCTFRESCNTL\fR - resource control enabled. -\fIFRCTFORDERING\fR - enable packet in-order delivery. +\fIFRCTFRTX\fR - retransmission enabled. Cannot be modified and will +be ignored on set. -\fIFRCTFPARTIAL\fR - enable partial delivery. +\fIFRCTFLINGER\fR - finish connection on flow deallocation. .RE -\fBFRCTGFLAGS\fR - get the current flow flags. Takes an \fBuint16_t +\fBFRCTGFLAGS\fR - get the current flow flags. Takes an \fBuint16_t * \fIflags\fR as third argument. .SH RETURN VALUE @@ -140,7 +140,7 @@ ouroboros (8) .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 diff --git a/doc/man/flow_alloc.3 b/doc/man/flow_alloc.3 index dda0c877..dbe5323c 100644 --- a/doc/man/flow_alloc.3 +++ b/doc/man/flow_alloc.3 @@ -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 FLOW_ALLOC 3 2017-12-02 Ouroboros "Ouroboros Programmer's Manual" +.TH FLOW_ALLOC 3 2018-10-05 Ouroboros "Ouroboros Programmer's Manual" .SH NAME @@ -19,6 +19,9 @@ const struct timespec * \fItimeo\fB); int flow_alloc(const char * \fIdst_name\fB, qosspec_t * \fIqs\fB, const struct timespec * \fItimeo\fB); +int flow_join(const char * \fIdst_name\fB, qosspec_t * \fIqs\fB, const +struct timespec * \fItimeo\fB); + \fBint flow_dealloc(int \fIfd\fB);\fR Compile and link with \fI-louroboros-dev\fR. @@ -52,8 +55,12 @@ The \fBflow_accept\fR() and \fBflow_alloc\fR() take a \fBconst struct timespec * \fItimeo\fR to specify a timeout. If \fItimeo\fR is NULL, the call will block indefinitely or until some error condition occurs. +The \fBflow_join\fR() function allows applications to join a broadcast +flow provided by a broadcast layer. The dst is the layer name. + The \fBflow_dealloc\fR() function will release any resources -associated with the flow. +associated with the flow. This call may block and keep reliable flows +active until all packets are acknowledged. A \fBqosspec_t\fR specifies the following QoS characteristics of a flow: @@ -80,7 +87,7 @@ Failed to contact an IRMd instance. \fBflow_accept\fR() and \fBflow_alloc\fR() can also return .B -EBADF -No more flow desciptors or port_ids available. +No more flow desciptors or flow_ids available. .B -ENOMEM Not enough system memory resources available to allocate the flow. @@ -88,6 +95,9 @@ Not enough system memory resources available to allocate the flow. .B -ETIMEDOUT Flow allocation timed out. +.B -ECRYPT +The requested encryption is not supported. + .SH ATTRIBUTES For an explanation of the terms used in this section, see \fBattributes\fR(7). @@ -102,6 +112,8 @@ _ _ \fBflow_alloc\fR() & Thread safety & MT-Safe _ +\fBflow_join\fR() & Thread safety & MT-Safe +_ \fBflow_dealloc\fR() & Thread safety & MT-Safe .TE @@ -115,7 +127,7 @@ ouroboros (8) .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 diff --git a/doc/man/flow_read.3 b/doc/man/flow_read.3 index 20f5b976..acc1f61e 100644 --- a/doc/man/flow_read.3 +++ b/doc/man/flow_read.3 @@ -1,6 +1,6 @@ -.\" 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 FLOW_READ 3 2017-04-10 Ouroboros "Ouroboros Programmer's Manual" @@ -12,9 +12,9 @@ flow_read, flow_write \- read and write from/to a flow .B #include <ouroboros/dev.h> -\fBint flow_read(int \fIfd\fB, void * \fIbuf\fB, size_t \fIcount\fB);\fR +\fBssize_t flow_read(int \fIfd\fB, void * \fIbuf\fB, size_t \fIcount\fB);\fR -\fBint flow_write(int \fIfd\fB, const void * \fIbuf\fB, size_t \fIcount\fB);\fR +\fBssize_t flow_write(int \fIfd\fB, const void * \fIbuf\fB, size_t \fIcount\fB);\fR Compile and link with \fI-louroboros-dev\fR. @@ -30,15 +30,17 @@ from the supplied buffer \fIbuf\fR to the flow specified by \fIfd\fR. .SH RETURN VALUE On success, \fBflow_read\fR() returns the number of bytes read. On -failure, a negative value indicating the error will be returned. If -the number of bytes read equals count, a subsequent call to -\fBflow_read\fR() should be performed to check if there were more -bytes to read. This call to \fBflow_read\fR will return 0 if there was -no more data and mark the end of the datagram. - -On success, \fBflow_write\fR() returns 0. On failure, a negative value -indicating the error will be returned. Passing a NULL pointer for -\fIbuf\fR returns 0 with no other effects. +failure, a negative value indicating the error will be +returned. Partial reads are enabled by default. If the number of bytes +read equals count, a subsequent call to \fBflow_read\fR() should be +performed to check if there were more bytes to read. This call to +\fBflow_read\fR will return 0 if there was no more data and mark the +end of the datagram. + +On success, \fBflow_write\fR() returns the number of bytes written. On +failure, a negative value indicating the error will be returned. +Partial writes needs to be explicitly enabled. Passing a +NULL pointer for \fIbuf\fR returns 0 with no other effects. .SH ERRORS .B -EINVAL @@ -56,6 +58,9 @@ The flow was not allocated. .B -EFLOWDOWN The flow has been reported down. +.B -EFLOWPEER +The flow's peer is unresponsive (flow timed out). + .B -EMSGSIZE The buffer was too large to be written. @@ -84,7 +89,7 @@ ouroboros (8) .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 diff --git a/doc/man/fqueue.3 b/doc/man/fqueue.3 index 00c28d4c..72a0bc25 100644 --- a/doc/man/fqueue.3 +++ b/doc/man/fqueue.3 @@ -1,6 +1,6 @@ -.\" 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 FQUEUE 3 2017-08-29 Ouroboros "Ouroboros Programmer's Manual" @@ -19,7 +19,9 @@ on flows \fBint fqueue_next(fqueue_t * \fIfq\fB); -\fBint fevent(fset_t * \fIset\fB, fqueue_t * \fIfq\fB, +\fBint fqueue_type(fqueue_t * \fIfq\fB); + +\fBssize_t fevent(fset_t * \fIset\fB, fqueue_t * \fIfq\fB, const struct timespec * \fItimeo\fB); Compile and link with \fI-louroboros-dev\fR. @@ -36,6 +38,22 @@ an \fBfqueue_t\fR \fIfq\fR. The \fBfqueue_next\fR() function retrieves the next event (a \fIflow descriptor\fR) that is ready within the event queue \fIfq\fR. +The \fBfqueue_type\fR() function retrieves the type for the current +event on the fd that was returned by \fBfqueue_next\fR(). Event types +are: +.RS 4 +FLOW_PKT: A new packet arrived on this flow and is ready for reading. + +FLOW_UP: The flow is now marked UP and ready for read/write. + +FLOW_DOWN: The flow is now marked DOWN and cannot be written to. + +FLOW_ALLOC: A pending flow is now allocated. + +FLOW_DEALLOC: The flow is deallocated by the other (N+1 or N-1) +process. +.RE + The \fBfevent\fR() function retrieves all events that occured on any \fIflow descriptor\fR within \fIset\fR and returns them in the event queue \fBfq\fR. If a \fBstruct timespec *\fI timeo\fR can be provided, @@ -50,7 +68,13 @@ On success, \fBfqueue_create\fR() returns a pointer to an \fBfqueue_destroy\fR() has no return value. -On success, \fBfevent\fR() returns the number of events that occured in \fIset\fR. +On success, \fBfevent\fR() returns 1. + +On success, \fBfqueue_next\fR() returns the next file descriptor for +which an event occurred. + +On success, \fBfqueue_type\fR() returns the event type for the last +event returned by \fBfqueue_next\fR(). .SH ERRORS @@ -62,10 +86,10 @@ were available to create the \fBfqueue_t\fR. .B -EINVAL An invalid argument was passed (\fIfq\fR or \fIset\fR was \fINULL\fR). -In addition, \fBfqueue_next\fR() can return +In addition, \fBfqueue_next\fR() or \fBqueue_type\fR() can return .B -EPERM -No more fds available in \fIfq\fR. +No more fds available or no current event in \fIfq\fR. and \fBfevent\fR() can return @@ -102,7 +126,7 @@ fset "(3), " ouroboros (8) .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 diff --git a/doc/man/fset.3 b/doc/man/fset.3 index a2094158..87a7dc87 100644 --- a/doc/man/fset.3 +++ b/doc/man/fset.3 @@ -1,6 +1,6 @@ -.\" 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 FSET 3 2017-04-10 Ouroboros "Ouroboros Programmer's Manual" @@ -108,7 +108,7 @@ fqueue "(3), " ouroboros (8) .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 diff --git a/doc/man/ouroboros-glossary.7 b/doc/man/ouroboros-glossary.7 index c0d89738..1f7ad882 100644 --- a/doc/man/ouroboros-glossary.7 +++ b/doc/man/ouroboros-glossary.7 @@ -1,6 +1,6 @@ -.\" 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-GLOSSARY 7 2017-12-02 Ouroboros "Ouroboros User Manual" @@ -113,7 +113,7 @@ the process that manages local IPC and IPCPs (providing remote IPC). .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 diff --git a/doc/man/ouroboros-tutorial.7 b/doc/man/ouroboros-tutorial.7 index 98e27254..1fc02a02 100644 --- a/doc/man/ouroboros-tutorial.7 +++ b/doc/man/ouroboros-tutorial.7 @@ -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-TUTORIAL 7 2017-12-02 Ouroboros "Ouroboros User Manual" +.TH OUROBOROS-TUTORIAL 7 2018-10-05 Ouroboros "Ouroboros User Manual" .SH NAME @@ -108,31 +108,31 @@ Pinging my.oping.server with 64 bytes of data: --- my.oping.server ping statistics --- .br -3 SDUs transmitted, 3 received, 0% packet loss, time: 3001.011 ms +3 packets transmitted, 3 received, 0% packet loss, time: 3001.011 ms .br rtt min/avg/max/mdev = 0.304/0.392/0.475/0.086 ms .RE That's all there is to it! The IRMd should log the flow -allocation. There are two endpoints of the flow (port_id's 0 and 1), +allocation. There are two endpoints of the flow (flow_id's 0 and 1), one for the server (1) and one for the client (0). After the flow -request, a new port_id is created at the server side (port_id 1) and -then a previously pending flow (on port_id 0) is allocated following +request, a new flow_id is created at the server side (flow_id 1) and +then a previously pending flow (on flow_id 0) is allocated following the response from the server. When the communication is done, the flow is deallocated and the -resources (port_id's 0 and 1) are released. +resources (flow_id's 0 and 1) are released. .RS 4 ==23918== irmd(II): Flow request arrived for my.oping.server. .br -==23918== irmd(II): Flow on port_id 1 allocated. +==23918== irmd(II): Flow on flow_id 1 allocated. .br -==23918== irmd(II): Flow on port_id 0 allocated. +==23918== irmd(II): Flow on flow_id 0 allocated. .br -==23918== irmd(II): Completed deallocation of port_id 0 by process 23932. +==23918== irmd(II): Completed deallocation of flow_id 0 by process 23932. .br -==23918== irmd(II): Completed deallocation of port_id 1 by process 23932. +==23918== irmd(II): Completed deallocation of flow_id 1 by process 23932. .RE .SH TERMINOLOGY @@ -143,7 +143,7 @@ Please see \fBouroboros-glossary\fR(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 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 diff --git a/doc/workflow.txt b/doc/workflow.txt index 81bc8667..b8dd0d1c 100644 --- a/doc/workflow.txt +++ b/doc/workflow.txt @@ -43,7 +43,7 @@ incremented when an urgent bugfix is incorporated. 3.1. Repository structure The main git repository can be found at: -https://ouroboros.ilabt.imec.be/git/ouroboros +https://ouroboros.rocks/cgit/ouroboros It contains the following branches: @@ -98,7 +98,7 @@ were made 3.4 Bugs Bugs are reported through the Bugzilla issue tracker -(https://ouroboros.ilabt.imec.be/bugzilla/). The process of reporting +(https://ouroboros.rocks/bugzilla/). The process of reporting a bug is the following: a. Provide a description of the bug |
