summaryrefslogtreecommitdiff
path: root/src/ipcpd/common/connmgr.c
Commit message (Collapse)AuthorAgeFilesLines
* lib: Fix flow timeouts after flow allocationDimitri Staessens2 days1-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | There were two timeout bugs in the flow allocation steps. Found these when debugging why some links were always timing out in one direction. The first bug only affects flows going through the connection manager in the IPCP (such as the management flow used by the link state routing component. The connection manager was setting a timeout on the flow for its handling connection establishment, but didn't reset that timeout before handing the flow to the internal component after the CEP was complete. The link-state routing component was showing flow read timeouts (ETIMEDOUT) without setting one. This was not causing the links to time out. The second one was that the IPCP was keeping the qosspec from on the np1 flow, which, when the qosspec requested for the applicatoin had a keepalive set, would always time out. This bug was the root cause for some link advertisements not to be read and links to time out in the link-state routing component. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* lib: Rename CACEP to CEP and set conngmr timeout0.21.2Dimitri Staessens2024-02-261-29/+40
| | | | | | | | | | | | | | | | The Common Application Connection Establishment Protocol (CACEP) is a RINA construct associated with the Common Distributed Application Protocol (CDAP). We dropped CDAP as O7s sees connection establishment as common to all applications (though it can be a nop). The wiki already refers to this as (O7s) Connection Establishment Protocol (CEP). The connection manager will now timeout waiting for CEP messages to avoid hanging forever, configurable at build time via CONNMGR_RCV_TIMEOUT. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* ipcpd: Clean up connection when cancelling connectDimitri Staessens2024-02-231-1/+8
| | | | | | | | The connection element was not free'd on shutdown during a connect operation. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* build: Update licenses to 2024Dimitri Staessens2024-01-131-1/+1
| | | | | | | Slow but steady. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* ipcpd: Revise loggingDimitri Staessens2023-08-301-49/+78
| | | | | | | | This revises the logging in the IPCPs to be a more consistent and reduce duplicate messages in nested functions. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* build: Update copyright to 2023Dimitri Staessens2023-02-131-1/+1
| | | | | | | 2022 was a rather slow year... Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* build: Update copyright to 2022Dimitri Staessens2022-04-031-1/+1
| | | | | | | Growing pains. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* lib, ipcpd, irmd: Wrap pthread unlocks for cleanupDimitri Staessens2021-06-231-3/+2
| | | | | | | | | | | | This add an ouroboros/pthread.h header that wraps the pthread_..._unlock() functions for cleanup using pthread_cleanup_push() as this casting is not safe (and there were definitely bad casts in the code). The close() function is now also wrapped for cleanup in ouroboros/sockets.h. This allows enabling more compiler checks. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* build: Move connmgr and enrolment to common groundDimitri Staessens2021-03-281-0/+518
The connection manager and enrolment components of the unicast and broadcast IPCP have a lot in common, as conjectured in the paper. The initial implementation of the broadcast IPCP just duplicated the code. This moves the shared functionality to common ground. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>