Lines Matching full:session
4 #include "session.hpp"
15 namespace session namespace
18 static std::array<uint8_t, session::maxNetworkInstanceSupported>
29 index < session::maxNetworkInstanceSupported) in setNetworkInstance()
56 * Session ID is 0000_0000h for messages that are sent outside the session. in managerInit()
57 * The session setup commands are sent on this session, so when the session in managerInit()
58 * manager comes up, is creates the Session ID 0000_0000h. It is active in managerInit()
59 * through the lifetime of the Session Manager. in managerInit()
63 *getSdBus(), session::sessionManagerRootPath); in managerInit()
65 auto objPath = std::string(session::sessionManagerRootPath) + "/" + in managerInit()
71 0, std::make_shared<Session>(*getSdBus(), objPath.c_str(), 0, 0, 0)); in managerInit()
77 std::shared_ptr<Session> Manager::startSession( in startSession()
82 std::shared_ptr<Session> session = nullptr; in startSession() local
85 // set up the timer for monitoring this session in startSession()
90 auto activeSessions = sessionsMap.size() - session::maxSessionlessCount; in startSession()
97 bmcSessionID &= session::multiIntfaceSessionIDMask; in startSession()
101 * Every IPMI Session has two ID's attached to it Remote Console in startSession()
102 * Session ID and BMC Session ID. The remote console ID is passed in startSession()
103 * along with the Open Session request command. The BMC session ID in startSession()
104 * is the key for the session map and is generated using std::rand. in startSession()
105 * There is a rare chance for collision of BMC session ID, so the in startSession()
107 * created session is reset and a new session is created for in startSession()
113 // Detected BMC Session ID collisions in startSession()
129 sessionHandle &= session::multiIntfaceSessionHandleMask; in startSession()
136 auto objPath = std::string(session::sessionManagerRootPath) + "/" + in startSession()
138 session = std::make_shared<Session>(*getSdBus(), objPath.c_str(), in startSession()
147 session->setAuthAlgo( in startSession()
154 session->setAuthAlgo( in startSession()
165 sessionsMap.emplace(bmcSessionID, session); in startSession()
166 session->sessionHandle(sessionHandle); in startSession()
168 return session; in startSession()
182 static_cast<uint8_t>(session::State::tearDownInProgress)); in stopSession()
191 std::shared_ptr<Session> Manager::getSession(SessionID sessionID, in getSession()
210 const std::pair<const uint32_t, std::shared_ptr<Session>>& in getSession()
225 throw std::runtime_error("Session ID not found"); in getSession()
233 // no +1 for the zero session here because this is just active sessions in cleanStaleEntries()
235 getActiveSessionCount() - session::maxSessionCountPerChannel; in cleanStaleEntries()
243 // +1 for the zero session here because size() counts that too in cleanStaleEntries()
245 sessionsMap.size() - (session::maxSessionCountPerChannel + 1); in cleanStaleEntries()
256 auto session = iter->second; in cleanStaleEntries() local
258 if (session->getBMCSessionID() == session::sessionZero) in cleanStaleEntries()
263 if (!(session->isSessionActive(activeGrace, setupGrace))) in cleanStaleEntries()
266 "Removing idle IPMI LAN session, id: {ID}, handler: {HANDLE}", in cleanStaleEntries()
267 "ID", session->getBMCSessionID(), "HANDLE", in cleanStaleEntries()
268 getSessionHandle(session->getBMCSessionID())); in cleanStaleEntries()
269 sessionHandleMap[getSessionHandle(session->getBMCSessionID())] = 0; in cleanStaleEntries()
288 // Handler index 0 is reserved for invalid session. in storeSessionHandle()
290 for (size_t i = 1; i < session::maxSessionHandles; i++) in storeSessionHandle()
303 if (sessionHandle < session::maxSessionHandles) in getSessionIDbyHandle()
312 // Handler index 0 is reserved for invalid session. in getSessionHandle()
314 for (size_t i = 1; i < session::maxSessionHandles; i++) in getSessionHandle()
327 [](const std::pair<const uint32_t, std::shared_ptr<Session>>& in) in getActiveSessionCount()
330 static_cast<uint8_t>(session::State::active); in getActiveSessionCount()
353 } // namespace session