summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * ipcpd: Address comments on 176698edimitri staessens2017-08-285-10/+4
| |
| * tools: Add tool to connect IPCP componentsdimitri staessens2017-08-2825-64/+635
| | | | | | | | | | | | | | | | | | | | | | | | This enables user-written tools to instruct IPCPs to establish and tear down connections (a.k.a. adjacencies) between its internal components (Management and Data Transfer). For more info, do "irm ipcp connect" or "irm ipcp disconnect" on the command line. This commit exposes a deletion bug in the RIB where FSO's fail to unpack/parse. This will be fixed when the RIB is deprecated.
| * ipcpd: Deprecate gam as autonomous componentdimitri staessens2017-08-2839-1320/+869
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The graph adjacency manager has been deprecated in favor of providing an external interface into the connectivity manager so that adjacencies can be controlled from the command line, user scripts or user applications. The gam and its associated policies were removed from the normal IPCP and the IRM configuration tools. The "/members" part of the RIB was deprecated. Removal of the gam means that initial connectivity based on changes in the RIB can't be provided, so some changes were required throughout the normal IPCP. The enrollment procedure was revised to establish its own connectivity. First, it gets boot information from a peer by establishing a connection to the remote enrollment component and downloading the IPCP configuratoin. This is now done using its own protocol buffers message in anticipation of deprecation of the RIB and CDAP for communication within a DIF. After the boot information is downloaded, it establishes a data transfer flow for enrolling the directory (DHT). After the DHT has enrolled, it signals the peer to that enrollment is done, and the data transfer connection is torn down. Signaling connections is done via the nbs struct, which is now passed to the connmgr, which enables control of the connectivity graph from external sources.
* | Merged in sandervrijders/ouroboros/be-config (pull request #570)Sander Vrijders2017-08-263-95/+179
|\ \ | | | | | | | | | lib: Add configuration message to FRCT
| * | lib: Add configuration message to FRCTSander Vrijders2017-08-263-95/+179
| | | | | | | | | | | | | | | This adds the configuration message to FRCT, which allows for configuring the connection.
* | | Merged in dstaesse/ouroboros/be-irmd-no-warn (pull request #571)dimitri staessens2017-08-261-1/+2
|\ \ \ | |/ / |/| / | |/ irmd: Don't warn on failed write to terminated IPCP
| * irmd: Don't warn on failed write to terminated IPCPdimitri staessens2017-08-251-1/+2
|/
* Merged in sandervrijders/ouroboros/be-lock-fix (pull request #569)Sander Vrijders2017-08-251-1/+1
|\ | | | | | | lib: Fix bad locking in frcti_read
| * lib: Fix bad locking in frcti_readSander Vrijders2017-08-251-1/+1
|/ | | | A read lock was taken when a write lock was needed.
* Merged in sandervrijders/ouroboros/be-memleaks (pull request #568)Sander Vrijders2017-08-236-9/+10
|\ | | | | | | lib, ipcpd, irmd: Fix several memleaks
| * lib, ipcpd, irmd: Fix several memleaksSander Vrijders2017-08-236-9/+10
|/ | | | | This fixes several memleaks as reported by valgrind. It also fixes some calls to close() with -1.
* Merged in sandervrijders/ouroboros/be-inactivity (pull request #567)Sander Vrijders2017-08-231-153/+68
|\ | | | | | | lib: Make sender and receiver inactivity simple checks
| * lib: Make sender and receiver inactivity simple checksSander Vrijders2017-08-231-153/+68
|/ | | | | | This makes the sender and receiver inactivity timers into simple checks that compare when the last SDU was sent to the current time to set the receiver or sender inactivity.
* Merge branch 'testing' into beSander Vrijders2017-08-231-3/+5
|\
| * Merged in sandervrijders/ouroboros/testing-irmd (pull request #566)Sander Vrijders2017-08-231-3/+5
| |\ | | | | | | | | | irmd: Fix potential data race in irmd
| | * irmd: Fix potential data race in irmdSander Vrijders2017-08-231-3/+5
| |/ | | | | | | | | If the IPCP was not created, the printing of the log may use a variable that was already freed.
* | Merged in sandervrijders/ouroboros/be-llc (pull request #565)Sander Vrijders2017-08-233-4/+6
|\ \ | | | | | | | | | Be llc
| * | ipcpd: shim-eth-llc: Fix building LLC shimSander Vrijders2017-08-232-3/+6
| | | | | | | | | | | | | | | | | | | | | The LLC shim was not being built even though it should be build. This is due to CMake behaviour that when you set a var in the parent scope, it is not set in the local scope. It also adds back THIS_TYPE to the shim-eth-llc.
| * | lib: Remove bad assertionSander Vrijders2017-08-231-1/+0
|/ / | | | | | | | | Timeout was asserted not to be NULL, but sometimes timeout can be NULL and is a valid parameter when NULL.
* | Merged in dstaesse/ouroboros/be-connmgr-fix (pull request #564)dimitri staessens2017-08-231-0/+5
|\ \ | | | | | | | | | ipcpd: Fix data race in connmgr
| * | ipcpd: Fix data race in connmgrdimitri staessens2017-08-221-0/+5
|/ / | | | | | | The removal of the mutex and signal in 198b709 was a mistake.
* | Merged in sandervrijders/ouroboros/be-crc (pull request #563)Sander Vrijders2017-08-222-5/+7
|\ \ | | | | | | | | | lib: Fix timeout value of flow_event_wait
| * | lib: Fix timeout value of flow_event_waitSander Vrijders2017-08-222-5/+7
| | | | | | | | | | | | | | | shm_flow_set_wait was called with a timeout even though flow_event_wait was called with timeout NULL.
* | | Merged in sandervrijders/ouroboros/be-crc (pull request #562)Sander Vrijders2017-08-221-2/+2
|\| | | | | | | | | | | lib: Fix calling frct_clear in wrong function
| * | lib: Fix calling frct_clear in wrong functionSander Vrijders2017-08-221-2/+2
| | | | | | | | | | | | frct_clear was called in ouroboros_fini instead of ouroboros_init.
* | | Merged in sandervrijders/ouroboros/be-crc (pull request #561)Sander Vrijders2017-08-224-16/+43
|\| | | | | | | | | | | lib: Fix CRC check and add frct_clear
| * | lib: Fix CRC check and add frct_clearSander Vrijders2017-08-224-16/+43
|/ / | | | | | | | | | | This adds the CRC check by default on outgoing SDUs. It fixes some errors in the serialization and deserialization of the SDU. frct_clear was added to avoid bad initialization of the array of FRCT instances.
* | Merged in sandervrijders/ouroboros/be-tw (pull request #560)Sander Vrijders2017-08-225-164/+27
|\ \ | | | | | | | | | Be tw
| * | lib: Make timerwheel a passive componentSander Vrijders2017-08-224-162/+25
| | | | | | | | | | | | | | | | | | This turns the timerwheel into a passive component since it is used by application using the library. The user of the timerwheel now has to call timerwheel_move to advance the timerwheel.
| * | lib: Fix check for robust mutexesSander Vrijders2017-08-221-2/+2
| | | | | | | | | | | | | | | There was an else clause matched with the wrong if statement, resulting in robust mutexes being enabled even in glibc 2.25.
* | | Merged in dstaesse/ouroboros/be-connmgr (pull request #559)dimitri staessens2017-08-225-102/+113
|\ \ \ | |/ / |/| | | | | ipcpd: Improve locking in connmgr
| * | lib, irmd: Use static buffer for messagesdimitri staessens2017-08-222-36/+20
| | |
| * | ipcpd: Improve locking in connmgrdimitri staessens2017-08-223-66/+93
|/ /
* | Merged in dstaesse/ouroboros/be-build (pull request #557)dimitri staessens2017-08-2187-638/+645
|\ \ | | | | | | | | | build: Revise the build system
| * | build: Revise the build systemdimitri staessens2017-08-2187-638/+645
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This revises the build system to have configuration per system component. System settings can now be set using cmake. The standard compliance defines were removed from configuration header and are set in the sources where needed. Also some small code refactors, such as moving the data for shims out of the ipcp structure to the respective shims were performed.
* | | Merge branch 'testing' into beSander Vrijders2017-08-202-19/+34
|\ \ \ | |/ / |/| / | |/
| * Merged in dstaesse/ouroboros/testing-bugfix (pull request #558)dimitri staessens2017-08-202-19/+34
| |\ | | | | | | | | | ipcpd, irmd: Fix data races
| | * ipcpd, irmd: Fix data racesdimitri staessens2017-08-192-19/+34
| |/ | | | | | | | | | | Fixes a data race in the IRMd when IPCPs bail immediately after being created (e.g. due to an error). Fixes a race between the acceptor threads and the threads managed by threadpool manager upon shutdown.
* | Merged in sandervrijders/ouroboros/be-frct (pull request #555)Sander Vrijders2017-08-1718-269/+718
|\ \ | |/ |/| | | lib: Add basic FRCT mechanisms
| * lib: Add basic FRCT mechanismsSander Vrijders2017-08-1718-269/+718
|/ | | | | | | | | | This adds the basic FRCT mechanisms to the library. Upon flow alloc or accept an FRCT instance is now created and used when reading or writing to the flow. The timerwheel has been refactored to allow recharging timers and removing them and is now part of the library. The first SDU sent over the connection has the DRF set and this initializes the connection. Sender and receiver inactivity timers are added.
* Merged in dstaesse/ouroboros/be-llc-bpf (pull request #556)dimitri staessens2017-08-177-189/+318
|\ | | | | | | Be llc bpf
| * irmd: Handle IPCP creation fails gracefullydimitri staessens2017-08-172-35/+52
| |
| * ipcpd: Support Berkeley Packet Filter in LLC shimdimitri staessens2017-08-174-148/+260
| | | | | | | | | | This adds support reading Ethernet frames using the Berkeley Packet Filter (BPF). Ouroboros now fully runs on OS X Sierra.
| * lib: Check system-specific call firstdimitri staessens2017-08-171-6/+6
|/ | | | The build failed on OS X if an old version of libgrypt is installed.
* Merged in dstaesse/ouroboros/be-accept-target (pull request #554)dimitri staessens2017-08-163-5/+24
|\ | | | | | | irmd, ipcpd: Signal acceptor only
| * irmd, ipcpd: Signal acceptor onlydimitri staessens2017-08-163-5/+24
|/ | | | | This adds an extra condvar so the mainloops can signal the acceptor thread without waking up all mainloops.
* Merged in dstaesse/ouroboros/be-single-accept (pull request #553)dimitri staessens2017-08-165-166/+349
|\ | | | | | | Be single accept
| * ipcpd: Fix missing clock_gettime in flow allocatordimitri staessens2017-08-161-0/+2
| |
| * ipcpd: Refactor normal IPCP failure handlingdimitri staessens2017-08-161-35/+24
| |
| * irmd, ipcpd: Listen on a dedicated accept() threaddimitri staessens2017-08-163-131/+323
| | | | | | | | | | | | | | | | | | | | | | The IRMd and IPCPs will now call accept on their command sockets from a single thread that will dispatch work to the other threads. This solves a problem on OS X and FreeBSD where accept() doesn't time out when setting SO_RCVTIMEO on the socket. Calling kqueue or select() on that socket to wait for events before calling accept() didn't solve it since select() or kqueue() might wake up multiple threads, with the non-working threads again blocked on the accept() on shutdown.