History log of /openbmc/phosphor-net-ipmid/sessions_manager.hpp (Results 1 – 17 of 17)
Revision Date Author Comments
# 33503e2a 03-Feb-2025 Patrick Williams <patrick@stwcx.xyz>

clang-format: update latest spec and reformat

Copy the latest format file from the docs repository and apply.

Change-Id: I2a188ebd3faf376ecba3e20ef6a28ffbaa986628
Signed-off-by: Patrick Williams <p

clang-format: update latest spec and reformat

Copy the latest format file from the docs repository and apply.

Change-Id: I2a188ebd3faf376ecba3e20ef6a28ffbaa986628
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# 8425624a 16-Aug-2024 Patrick Williams <patrick@stwcx.xyz>

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda forma

clang-format: re-format for clang-18

clang-format-18 isn't compatible with the clang-format-17 output, so we
need to reformat the code with the latest version. The way clang-18
handles lambda formatting also changed, so we have made changes to the
organization default style format to better handle lambda formatting.

See I5e08687e696dd240402a2780158664b7113def0e for updated style.
See Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.

Change-Id: I8d0072c279e4de87dc001190845d0ca6da233345
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# 0a59062c 22-Jul-2022 Patrick Williams <patrick@stwcx.xyz>

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are

sdbusplus: use shorter type aliases

The sdbusplus headers provide shortened aliases for many types.
Switch to using them to provide better code clarity and shorter
lines. Possible replacements are for:
* bus_t
* exception_t
* manager_t
* match_t
* message_t
* object_t
* slot_t

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Ic68a12ef7c12222b1300981282161c971b561dc1

show more ...


# bc8958fe 03-Jul-2022 George Liu <liuxiwei@inspur.com>

Update to latest clang-format

Refer:https://github.com/openbmc/docs/blob/ac5d544553934f8083c61c5986a1420261bc8a4c/style/cpp/.clang-format

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id:

Update to latest clang-format

Refer:https://github.com/openbmc/docs/blob/ac5d544553934f8083c61c5986a1420261bc8a4c/style/cpp/.clang-format

Signed-off-by: George Liu <liuxiwei@inspur.com>
Change-Id: I1e06864afc29ce7de463e62fa2a0eb6f70e8fd93

show more ...


# c1c2e0a1 10-Nov-2021 Willy Tu <wltu@google.com>

net_ipmi: initialize ipmiNetworkInstance to zero as default value

Close session failed like

```
Close Session command failed: Unspecified error
```

due to using `closeOtherNetInstanceSession` inst

net_ipmi: initialize ipmiNetworkInstance to zero as default value

Close session failed like

```
Close Session command failed: Unspecified error
```

due to using `closeOtherNetInstanceSession` instead of
`closeMyNetInstanceSession`.

After initializing ipmiNetworkInstance to zero by default, the issue is
resolved.

Tested:
Ran the following multiple times
```
for ((i=0; i<10; i++)); do
./ipmitool -I lanplus -H $IP_ADDRESS%usb0 \
-U root -P 0penBmc fru &
done
...

Before the change it will failed to close the session and run out of
available sessions.

For example,
```
Close Session command failed: Unspecified error
```

```
Error: Unable to establish IPMI v2 / RMCP+ session
```

After this change, no more errors and all close/create sessions are
successful.

Change-Id: Ibaf26fb2e554fa530542587b380891ee6f60ec0d
Signed-off-by: Willy Tu <wltu@google.com>

show more ...


# 2085ae07 10-Jun-2021 Vernon Mauery <vernon.mauery@linux.intel.com>

replace tuple-based singleton with individual singletons

The tuple-based singletons did not actually enforce singleton behavior
and the requirement of the accessor mechanism to include all of the
me

replace tuple-based singleton with individual singletons

The tuple-based singletons did not actually enforce singleton behavior
and the requirement of the accessor mechanism to include all of the
member types at once was starting to cause a header prerequisite
tangle. This removes the cross-dependencies and enforces actual
singletons by making a single way to access the class.

Tested: Run ipmitool to show that behavior has not changed

Change-Id: Ie966e1142363d279365b1095066380c8383e9f9b
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>

show more ...


# ecc8efad 12-Jun-2021 Vernon Mauery <vernon.mauery@linux.intel.com>

Be more proactive at removing stale sessions

The maximum number of sessions is set to limit total resources that
netipmid is allowed to use. But it also opens a door to DoS attacks that
would use up

Be more proactive at removing stale sessions

The maximum number of sessions is set to limit total resources that
netipmid is allowed to use. But it also opens a door to DoS attacks that
would use up all the sessions and then never close them. This new
mechanism will allow extra sessions, especially if they are short and
active. As the number of sessions grows beyond the desired maximum, the
reaping time becomes shorter and shorter to ensure that only actual
active sessions are kept.

This introduces a variable max idle time that starts at 60s, according
to the IPMI spec, for up to the desired maximum number of sessions per
channel (currently 15). Beyond 15 sessions, The idle time is reduced
proportionally to the inverse^3 of the number of sessions beyond the
desired maximum.

Some sample maximum idle times for active sessions this new scheme:
Idle time for up to 15 sessions stays at 60s
Idle time for 16 sessions is reduced to 7.5s
Idle time for 20 sessions is reduced to 277ms
Idle time for 24 sessions is reduced to 60ms

For sessions in setup, the idle times are calculated the same as for
active sessions, but use the full session count (active and setup) and
are limited to a maximum idle time of 3 seconds.

One other feature added is to schedule session cleaning when a Close
Session command is received. Without this, sessions that are in the
shutDownPending state would live on for much longer than needed. Really,
the session only needs to live long enough to prepare the response
message, but curretly there is no mechanism to remove just that one
session from that context.

Tested: Open lots of sessions and wait for them to get reaped
$ for ((i=0; i<16; i++)); do \
ipmitool -C 17 -I lanplus -H $HOST -U $USR -P $PW sensor list & \
done
$ for ((i=0; i<10; i++)); do \
ipmitool -C 17 -I lanplus -H $HOST -U $USR -P $PW mc info & \
done

In this case, the first 16 sessions will open just fine, but with
a slightly shorted idle time (no problems). The next ten sessions
may or may not all get to open, because the number of setup
sessions open simultaneously will severely limit the idle time of
the setup sessions, causing some of them to fail to fully open.

Change-Id: Iae2e68c7192f3f5a2cafa8e825aa025454405c84
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>

show more ...


# 7408e76a 17-May-2020 Andrew Geissler <geissonator@yahoo.com>

string: ensure string included

Latest upstream yocto appears to have removed a free include of string.
This is causing compile failures for files which do not include it
properly.

Signed-off-by: An

string: ensure string included

Latest upstream yocto appears to have removed a free include of string.
This is causing compile failures for files which do not include it
properly.

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I76b1d73d045f98bd457c155086e000a430134918

show more ...


# f8a34fc4 12-Jun-2019 Suryakanth Sekar <suryakanth.sekar@linux.intel.com>

netipmid: Manage and expose session object

Session (RMCP+) is managed by net-ipmid directly, but
session commands has to be supported in both LAN & other
session-less interfaces. In order to make se

netipmid: Manage and expose session object

Session (RMCP+) is managed by net-ipmid directly, but
session commands has to be supported in both LAN & other
session-less interfaces. In order to make session commands
to work in other interfaces, session objects must be
exposed as D-Bus objects, so that ipmi-providers can
query the same.

Tested:
1. Verified that RMCP+ session are perfectly working
2. Verified RMCP+ session establishment fails for wrong
password
3. Verified that session privilege level are maintained
and access are restricted accordingly
4. Verified session timeout and sessions are destroyed
accordingly after timeout
5. verified max session count working behavior
6. verified ipmi-providers responding with proper response for this
(or D-Bus objects are exposed correctly during session creation,
session deletion,session update,
(like privilege, - say even set session privilege level command)
7.Session objects are created dynamically.

Change-Id: I78a8449359877ef6cc4cd8161d8c67e6e54eb52b
Signed-off-by: Suryakanth Sekar <suryakanth.sekar@linux.intel.com>

show more ...


# 250bf103 20-Mar-2019 Suryakanth Sekar <suryakanth.sekar@linux.intel.com>

Update IPMI max session count from 5 to 15

According to the IPMI spec,No of possible active session is
one byte - BIT5-BIT0 so 63 is the max active session we can have.

- 15 was chosen as it seems

Update IPMI max session count from 5 to 15

According to the IPMI spec,No of possible active session is
one byte - BIT5-BIT0 so 63 is the max active session we can have.

- 15 was chosen as it seems to be reasonable.

Tested: Able to establish the 14 LAN sessions and 1 reserved for
sessionless connection.
Get session Info command should provide 15 as max no of ipmi session

Signed-off-by: Suryakanth Sekar <suryakanth.sekar@linux.intel.com>
Change-Id: I1bc2003502f35c1d15de18cdf2874cd6ce74006e

show more ...


# ae1fda44 15-Oct-2018 Vernon Mauery <vernon.mauery@linux.intel.com>

netipmid: use std::shared_ptr instead of weak_ptr/lock

All of the instances of getSession and startSession were assigning the
result to a local shared_ptr via lock on the weak_ptr. It doesn't make
s

netipmid: use std::shared_ptr instead of weak_ptr/lock

All of the instances of getSession and startSession were assigning the
result to a local shared_ptr via lock on the weak_ptr. It doesn't make
sense to demote the shared_ptr (from the sessionsMap) to a weak_ptr via
the return, only to promote to a shared_ptr again via lock.

Tested-by: running ipmitool -H a.b.c.d -P 0penBmc -I lanplus mc info
Sessions start and stop, same as before.

Change-Id: Ic10779285891d73ee51115f16ed0000b38d1c52a
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>

show more ...


# 9e801a2b 12-Oct-2018 Vernon Mauery <vernon.mauery@linux.intel.com>

netipmid: apply clang-format rules

Lots of whitespace change. Let clang-format do its job and keep the code
looking nice.

Change-Id: Idfcad1a99cab8170d55a06163de8ad3f420b68b7
Signed-off-by: Vernon

netipmid: apply clang-format rules

Lots of whitespace change. Let clang-format do its job and keep the code
looking nice.

Change-Id: Idfcad1a99cab8170d55a06163de8ad3f420b68b7
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>

show more ...


# 3563f8fe 08-May-2017 Tom Joseph <tomjoseph@in.ibm.com>

Correct doxygen syntax in phosphor-net-ipmid

Resolves openbmc/openbmc#1147

Change-Id: I57ab1b09ec1bf308cc3d97cd30b2d18564beb38b
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>


# ba11f792 24-Jan-2017 Tom Joseph <tomjoseph@in.ibm.com>

Authentication Algo keeps record of the Confidentiality algo

The confidentiality algo negotiated during Open Session Request
would be stored in the Authentication algorithm and is activated
once the

Authentication Algo keeps record of the Confidentiality algo

The confidentiality algo negotiated during Open Session Request
would be stored in the Authentication algorithm and is activated
once the session setup is successful.

Change-Id: I4d5efd71a992dd0cf505bcf7a6d9ebb394bcb880
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>

show more ...


# dd1be1a2 10-Jan-2017 Tom Joseph <tomjoseph@in.ibm.com>

Authentication Algorithm keeps record of the Integrity algo

The Integrity algorithm negotiated during Open Session Request
would be stored in the Authentication algorithm and is
activated once the s

Authentication Algorithm keeps record of the Integrity algo

The Integrity algorithm negotiated during Open Session Request
would be stored in the Authentication algorithm and is
activated once the session setup is successful.

Change-Id: I780680c8991487f8fd9030217793f2b0d0fa8a25
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>

show more ...


# 9662c3a9 06-Dec-2016 Tom Joseph <tomjoseph@in.ibm.com>

Session Commands Implementation

Implements Set Session Privilege Command and Close Session
command.

Change-Id: I18aeee7bcae48db3eb8a61292c9333ca2304dcf1
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.

Session Commands Implementation

Implements Set Session Privilege Command and Close Session
command.

Change-Id: I18aeee7bcae48db3eb8a61292c9333ca2304dcf1
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>

show more ...


# 3e61aa0d 08-Aug-2016 Tom Joseph <tomjoseph@in.ibm.com>

Sessions Manager to manage IPMI sessions

IPMI Sessions manager is responsible for managing IPMI sessions and
routines for starting and stopping sessions.

Change-Id: Ic5c559fdc0dab0145e463689026c2f1

Sessions Manager to manage IPMI sessions

IPMI Sessions manager is responsible for managing IPMI sessions and
routines for starting and stopping sessions.

Change-Id: Ic5c559fdc0dab0145e463689026c2f1c66f24a59
Signed-off-by: Tom Joseph <tomjoseph@in.ibm.com>

show more ...