--- name: Session Layer maintainer: Florin Coras features: - Manages allocation and tracking of sessions (6-tuple lookup tables) - App namespaces that constrain application access to network resources - Conveys data and notifications (ctrl and io) between transport protocols and apps - Transport protocol interface: - Provides generic transport protocol template - Converts between transport and application representation of data - Schedules sessions/connections for sending - Application interface: - Maintains per application state - Manages allocation of shared memory resources used for exchanging data between applications and transports - Exposes a native C and a binary api for builtin and external apps respectively description: "The session layer facilitates the interaction between northbound applications and southbound transport protocols. To this end, northbound, through the app-interface sub layer, the session layer exposes APIs for applications to interact with abstract units of communication, i.e., sessions. And southbound, through the transport protocol interface, it exposes APIs that allow transport protocols to exchange data and events (ctrl and io) with applications, without actually being aware of how that communication is carried out." state: production properties: [API, CLI, STATS, MULTITHREAD]