summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* irmd: Fix detection of IRMddimitri staessens2017-02-211-22/+22
| | | | | | | When starting two IRMds, the second one exits, but applications can't contact the first because the second instance took the UNIX socket. Now the lockfile is checked for running IRMd instances before opening the UNIX socket.
* lib: Clean up memory management in cacep policiesdimitri staessens2017-02-212-4/+15
|
* Merged in sandervrijders/ouroboros/be-addr (pull request #384)Sander Vrijders2017-02-216-45/+83
|\ | | | | | | ipcpd: normal: Change address authority policy
| * ipcpd: normal: Change address authority policySander Vrijders2017-02-216-45/+83
|/ | | | | | This changes the address authority to follow a similar approach to that of the other policies. No function pointers are passed to its user anymore.
* Merged in dstaesse/ouroboros/be-cacep (pull request #383)dimitri staessens2017-02-2114-31/+470
|\ | | | | | | lib: Exchange protocol info during CACEP
| * lib: Exchange protocol info during CACEPdimitri staessens2017-02-2114-31/+470
| | | | | | | | | | | | | | | | | | This exchanges a protocol name, a protocol version and concrete syntax for the protocol upon CACEP. For CDAP, only version 1 and GPB are supported. No lists for other supported versions or syntaxes are exchanged (but the proto file supports it). CACEP fails if there is a mismatch between the protocol names, version and syntax specified by the communicating parties.
* | Merged in dstaesse/ouroboros/be-cdap-flow (pull request #382)dimitri staessens2017-02-204-91/+254
|\| | | | | | | ipcpd: Allocation of authenticated CDAP flows
| * ipcpd: Allocation of authenticated CDAP flowsdimitri staessens2017-02-204-91/+254
| | | | | | | | | | Avoids some code duplication in the normal IPCP with respect to establishing authenticated CDAP flows.
* | Merged in dstaesse/ouroboros/be-cacep (pull request #381)dimitri staessens2017-02-2011-192/+367
|\| | | | | | | lib: Revise CACEP
| * lib: Revise CACEPdimitri staessens2017-02-2011-192/+367
|/ | | | | | | | | Revises CACEP policies to stateless library calls. It provides two policies: an anonymous authentication policy that will generate random credentials for the peer, and a simple authentication policy that will return a name for the peer and an address. Changes the normal IPCP to use the updates API calls.
* Merged in dstaesse/ouroboros/be-sha3 (pull request #380)dimitri staessens2017-02-181-4/+6
|\ | | | | | | lib: Fix bug in sha3
| * lib: Fix bug in sha3dimitri staessens2017-02-181-4/+6
| |
* | Merged in dstaesse/ouroboros/be-cdap (pull request #379)dimitri staessens2017-02-181-12/+20
|\ \ | | | | | | | | | lib: Set cdap_req state to REQ_NULL after timeout
| * | lib: Set cdap_req state to REQ_NULL after timeoutdimitri staessens2017-02-181-12/+20
| |/ | | | | | | | | This prevented destruction of a CDAP instance that had a timed out request.
* | Merged in dstaesse/ouroboros/be-ribmgr (pull request #378)0.4dimitri staessens2017-02-1712-32/+59
|\| | | | | | | ipcpd: Move RIB configuration to common header
| * ipcpd: Move RIB configuration to common headerdimitri staessens2017-02-1712-32/+59
|/ | | | | Moves the definitions of paths in the RIB for the normal IPCP to a header ribconfig.h to avoid repetition.
* Merged in dstaesse/ouroboros/be-irmd (pull request #377)dimitri staessens2017-02-161-4/+4
|\ | | | | | | irmd: Fix bad lock
| * irmd: Fix bad lockdimitri staessens2017-02-161-4/+4
|/
* Merged in sandervrijders/ouroboros/be-endianness (pull request #376)Sander Vrijders2017-02-164-253/+92
|\ | | | | | | lib: Revise endian header and SHA3
| * lib: Revise endian header and SHA3Sander Vrijders2017-02-164-253/+92
|/ | | | | | | | This revises the endian header to let the build time checks of endianness be performed by the standard libraries. We just check for the OS that is being used and provide the endian functions from OpenBSD to everyone. It also updates the SHA3 sources to use this new header. The byte order header is removed.
* Merged in dstaesse/ouroboros/be-eth-lock (pull request #375)dimitri staessens2017-02-131-1/+49
|\ | | | | | | ipcpd: Add lock to tx_ring data
| * ipcpd: Add lock to tx_ring datadimitri staessens2017-02-131-1/+49
| | | | | | | | Also fixes another lock.
* | Merged in sandervrijders/ouroboros/be-install-scripts (pull request #373)Sander Vrijders2017-02-134-4/+4
|\ \ | | | | | | | | | build: Make install scripts OS agnostic
| * | build: Make install scripts OS agnosticSander Vrijders2017-02-134-4/+4
| | | | | | | | | | | | | | | This makes the install scripts OS agnostic, since env is used to call bash, which just uses looks for bash in the path.
* | | Merged in dstaesse/ouroboros/be-bsd (pull request #374)dimitri staessens2017-02-132-2/+4
|\ \ \ | |/ / |/| / | |/ ipcpd: Fix build on FreeBSD
| * ipcpd: Fix build on FreeBSDdimitri staessens2017-02-132-2/+4
|/ | | | | Use labs for absolute value of a long, and defines bswap_64 as the FreeBSD function bswap64.
* Merged in sandervrijders/ouroboros/be-ipcpd-threads (pull request #372)Sander Vrijders2017-02-133-3/+2
|\ | | | | | | ipcpd: Increase threadpool size
| * ipcpd: Increase threadpool sizeSander Vrijders2017-02-133-3/+2
|/ | | | | | This increases the threadpool size for the IPCP main loop. Starvation was happening due to a lot of back and forth interactions between the normal IPCPd and the IRMd.
* Merged in dstaesse/ouroboros/be-endian (pull request #371)dimitri staessens2017-02-1315-165/+401
|\ | | | | | | Check time synchronization upon enrollment
| * ipcpd: Fix timeout in ipcp_wait_statedimitri staessens2017-02-121-2/+2
| |
| * include: Use width in endian naming conventiondimitri staessens2017-02-122-20/+12
| | | | | | | | | | ntohll and ntohl have been renamed ntoh64 and ntoh32, htonll and htonl have been renamed hton64 and hton32.
| * irmd: Allow time for AP to call flow_accept()dimitri staessens2017-02-125-47/+154
| | | | | | | | | | | | | | | | When there is a burst of successive flow allocations for a certain name, each such request will block a thread in the IRMD for IRMD_REQ_ARR_TIMEOUT ms to allow the application some time to respond. This refactors some parts of the IRMd.
| * ipcpd: Prevent access to directory before initdimitri staessens2017-02-111-4/+14
| | | | | | | | | | | | | | Doing a directory query before the IPCP is has bootstrapped or is enrolled will result in an assertion failure as the directory is not yet ready. This fixes flow allocation over the LLC shim (which triggers a directory query from the IRMd) with a normal IPCP present.
| * ipcpd: Compare timestamp upon enrollmentdimitri staessens2017-02-112-7/+56
| | | | | | | | | | | | The enrollment procedure will ask for a timestamp of the IPCP it is enrolling with. It will (taking into account the RTT of the request) issue a warning if the offset is larger than RIB_WARN_TIME_OFFSET ms.
| * cdap: Take void * for send operationsdimitri staessens2017-02-102-14/+18
| | | | | | | | This facilitates sending arbitrary variables over CDAP.
| * ipcpd: Silent shutdown of normaldimitri staessens2017-02-103-3/+9
| | | | | | | | | | The acceptor will not log disconnects with IRMd. Unexpected disconnects will be reported and handled by management components.
| * include: Add header for endiannessdimitri staessens2017-02-103-88/+156
|/ | | | | | | | | This adds a header for dealing with endianness in ouroboros. It is extracted from the byte_order header in the library (which now includes this header). It also exposes the functions ntohl, ntohll, htonl and htonll, necessary for converting 32 and 64 bit values for storage and retrieval from the RIB (which should store multi-byte values in network byte order).
* Merged in sandervrijders/ouroboros/be-ipcpd-logs (pull request #370)Sander Vrijders2017-02-105-7/+1
|\ | | | | | | ipcpd: Remove logging if not initialized yet
| * ipcpd: Remove logging if not initialized yetSander Vrijders2017-02-105-7/+1
| | | | | | | | | | | | This removes the logs that would print to stdout if the IPCP fails to initialize. If the user had asked that logs would be printed to the syslog this would be unwanted behaviour.
* | Merged in dstaesse/ouroboros/be-cacep (pull request #369)dimitri staessens2017-02-102-0/+3
|\ \ | |/ |/| | | ipcpd: Fix leaking name in cacep_info
| * ipcpd: Fix leaking name in cacep_infodimitri staessens2017-02-102-0/+3
|/
* Merged in dstaesse/ouroboros/be-bsd (pull request #368)dimitri staessens2017-02-109-23/+39
|\ | | | | | | Be bsd
| * lib: Fix bad lock in ribdimitri staessens2017-02-101-1/+1
| |
| * lib, ipcp: Correctly init condvarsdimitri staessens2017-02-093-12/+23
| | | | | | | | | | The timerwheel and RIB use timedwaits. The condition variables are now correctly initialised to use the configuration defined clock.
| * ipcpd: Print size_t and uint64_t in portable waydimitri staessens2017-02-092-6/+7
| | | | | | | | | | | | On 32-bit systems size_t is different than on 64 bit systems. The correct way to print a size_t is with %z. uint64_t is printed portably with the PRIu64 macro.
| * lib: Fix bug in rib_testdimitri staessens2017-02-091-1/+1
| |
| * lib, tools, ipcpd: Fix compilation on FreeBSDdimitri staessens2017-02-093-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | FreeBSD defines its own bswap64 in the <sys/endian.h> header, which is now included correctly. POSIX requires XSI or RTS extensions to be enabled for the sa_sigaction field to be visible. Linux doesn't do the check correctly, but FreeBSD does. Removes the LOG_MISSING call which was deprecated with the last revision of the logging system.
* | Merged in dstaesse/ouroboros/be-create_r (pull request #367)Sander Vrijders2017-02-0916-127/+201
|\| | | | | | | ipcpd, lib: Report IPCP creation failure
| * ipcpd, lib: Report IPCP creation failuredimitri staessens2017-02-0916-127/+201
|/ | | | | | | | The IPCP will now respond with an ipcp_create_r message when it fails, informing the IRMd. Also adds some const qualifiers in the public headers and fixes some formatting in dev.c.
* Merged in dstaesse/ouroboros/be-fixes (pull request #366)Sander Vrijders2017-02-092-5/+14
|\ | | | | | | Be fixes