| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | |
| | | |
lib: Add configuration message to FRCT
|
| | |
| | |
| | |
| | |
| | | |
This adds the configuration message to FRCT, which allows for
configuring the connection.
|
|\ \ \
| |/ /
|/| /
| |/ |
irmd: Don't warn on failed write to terminated IPCP
|
|/ |
|
|\
| |
| |
| | |
lib: Fix bad locking in frcti_read
|
|/
|
|
| |
A read lock was taken when a write lock was needed.
|
|\
| |
| |
| | |
lib, ipcpd, irmd: Fix several memleaks
|
|/
|
|
|
| |
This fixes several memleaks as reported by valgrind. It also fixes
some calls to close() with -1.
|
|\
| |
| |
| | |
lib: Make sender and receiver inactivity simple checks
|
|/
|
|
|
|
| |
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.
|
|\ |
|
| |\
| | |
| | |
| | | |
irmd: Fix potential data race in irmd
|
| |/
| |
| |
| |
| | |
If the IPCP was not created, the printing of the log may use a
variable that was already freed.
|
|\ \
| | |
| | |
| | | |
Be llc
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|/ /
| |
| |
| |
| | |
Timeout was asserted not to be NULL, but sometimes timeout can be NULL
and is a valid parameter when NULL.
|
|\ \
| | |
| | |
| | | |
ipcpd: Fix data race in connmgr
|
|/ /
| |
| |
| | |
The removal of the mutex and signal in 198b709 was a mistake.
|
|\ \
| | |
| | |
| | | |
lib: Fix timeout value of flow_event_wait
|
| | |
| | |
| | |
| | |
| | | |
shm_flow_set_wait was called with a timeout even though
flow_event_wait was called with timeout NULL.
|
|\| |
| | |
| | |
| | | |
lib: Fix calling frct_clear in wrong function
|
| | |
| | |
| | |
| | | |
frct_clear was called in ouroboros_fini instead of ouroboros_init.
|
|\| |
| | |
| | |
| | | |
lib: Fix CRC check and add frct_clear
|
|/ /
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | |
| | | |
Be tw
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
| | |
| | |
| | |
| | |
| | | |
There was an else clause matched with the wrong if statement,
resulting in robust mutexes being enabled even in glibc 2.25.
|
|\ \ \
| |/ /
|/| |
| | | |
ipcpd: Improve locking in connmgr
|
| | | |
|
|/ / |
|
|\ \
| | |
| | |
| | | |
build: Revise the build system
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\ \ \
| |/ /
|/| /
| |/ |
|
| |\
| | |
| | |
| | | |
ipcpd, irmd: Fix data races
|
| |/
| |
| |
| |
| |
| | |
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.
|
|\ \
| |/
|/|
| | |
lib: Add basic FRCT mechanisms
|
|/
|
|
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| | |
Be llc bpf
|
| | |
|
| |
| |
| |
| |
| | |
This adds support reading Ethernet frames using the Berkeley Packet
Filter (BPF). Ouroboros now fully runs on OS X Sierra.
|
|/
|
|
| |
The build failed on OS X if an old version of libgrypt is installed.
|
|\
| |
| |
| | |
irmd, ipcpd: Signal acceptor only
|
|/
|
|
|
| |
This adds an extra condvar so the mainloops can signal the acceptor
thread without waking up all mainloops.
|
|\
| |
| |
| | |
Be single accept
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|