Lines Matching +full:socket +full:- +full:based

1 # NC-SId Internals
3 **NOTE**: This documents describes the internal architecture of NC-SId daemon.
11 - **NC-SId Core**. These are new components implemented in NC-SId.
13 - **Hardware**. External hardware components, in this case, the NIC.
15 - **EC**. This is the code borrowed from EC. The three state machines are pretty
18 - **External Components**. These are external services/daemons NC-SIs interacts
25 In the NIC — NC-SId interactions, NIC acts as a server, replying to NC-SId
26 requests and NC-SId itself acts as a client, sending those requests. Thus, there
27 is no state in NIC (server), but there is a state in NC-SId (client).
31 NC-SId reuses the state machines from EC. They are treated like black boxes.
33 NC-SI command buffer (reply from the NIC) and returns the buffer that needs to
38 This state machine performs basic configuration of the NC-SI comm channel and
47 This state machine periodically tests NC-SI connection with the NIC, verifies
48 filters and queries the NIC state (hostless or host-based). If it ever fails,
49 all state machines restart, which means that NC-SI in the NIC is also reset and
52 ---
57 - State Parameters. These structures are allocated outside of EC State Machines,
59 - MAC Address. For L2 FSM this parameter is _OUT_.
60 - IP Address (only for L3/4 FSM and Test FSM) for setting up and verifying
62 - TCP Port (only for L3/4 FSM and Test FSM) for setting up and verifying
71 NC-SId uses `phosphord-networkd` to configure the BMC's network (MAC Address).
72 In turn, `phosphord-networkd` uses `systemd`. Their interactions go through
75 ## NC-SId Core
80 heavily based on EC code. It uses `net::SockIO` interface to interact with the
85 Implements `net::ConfigBase` and makes calls to `phosphord-networkd` via `DBus`
90 Implements `net::SockIO` and sends NC-SI commands to the NIC through raw Unix
91 socket. That socket is configured using `net::IFace` component, which represents
95 ---
101 To allow some fairly sophisticated unit-tests, EC State Machines as well as
105 The most complicated part of these tests is `mock::NIC`, which acts as a NC-SI
106 server, replying to NC-SI requests coming from NC-SI State Machines.