NvSOMEIP Changes#

Target Changes

Backward Compatible

Platform

OS

The SetConfig API is used to provide a static configuration. The API used to accept a file stream. The API now accepts configuration structures.

No

NSR, SR

Linux and QNX

Migration Path

7.2.4.0 to 7.2.5.0

Migration Rationale

Parsing a file stream is now the responsibility of the caller. This decouples the SOME/IP library from any specific storage format (JSON, KV, binary, XML, and so on), giving integrators flexibility to choose or implement their own parser. A reference configuration parser is provided alongside the library.

  • Reduced attack surface: The library no longer opens, reads, or interprets file I/O, eliminating an entire class of input-validation vulnerabilities.

  • Deterministic memory usage: All configuration is supplied as a pre-validated, fixed-size struct. There is no dynamic allocation driven by untrusted file content within the process boundary.

  • Security improvement: The trust boundary is shifted to the caller, who is responsible for authenticating and validating the configuration source before constructing the struct.

Steps to Migrate

Infra::SetConfig() no longer accepts a configuration file stream. Callers must now provide a populated NvSomeIpConfig structure.

  1. Replace any SetConfig(fileStream) / file-stream-based configuration flow with construction of NvSomeIpConfig.

  2. Populate NvSomeIpConfig with network, service, service discovery, TP, and client ID settings.

  3. Call Infra::SetConfig(config) before any other Infra API and before Start().

  4. If the application still uses a text config file, parse it first using ConfigParserText::ParseFile(filePath, config), then pass the resulting struct to SetConfig(). The ConfigParserText class is provided in a sample folder named config_parser.

Example Code:

NvSomeIp::NvSomeIpConfig config;
NvSomeIp::ConfigParserText parser;

if (parser.ParseFile(configFilePath, config) != NvSomeIp::ErrorCode::E_SUCCESS) {
    return -1;
}

NvSomeIp::Infra& someipInstance = NvSomeIp::Infra::GetInstance();
NvSomeIp::ErrorCode err = someipInstance.SetConfig(config);