nvme: restore backward compatibility for mi_i2c without bus property

For NVMe devices configured with protocol "mi_i2c" and associated
with MCTP reactor configurations (isMctpReactorDevice), the "Bus"
property is optional because endpoint discovery and routing are
resolved dynamically via MCTP associations.

A recent commit enforced that both "mi_basic" and "mi_i2c" require
the "Bus" property upfront, which caused valid "mi_i2c" reactor
configurations lacking the "Bus" property to be skipped.

This change separates the protocol validation logic so that "mi_i2c"
only enforces the presence of "Bus" when the device is not an MCTP
reactor device, restoring backward compatibility.

Tested:
- Added a temporary unit test simulating NVMe configurations with
  Protocol "mi_i2c" and MctpReactorConfigPath without a "Bus" property,
  verifying that the NVMeSubsystem and NVMeDevice are created.
- Verified that direct "mi_i2c" (without MCTP reactor config) and
  "mi_basic" configurations without "Bus" continue to be rejected.

Google-Bug-Id: 546682451
Change-Id: I6db4c1a47860b6ac1e8ccf5393f3230ba85b8642
Signed-off-by: Hao Jiang <jianghao@google.com>
1 file changed