Skip to content

[POC] feat: add proxy-main binary, FLXC1000 test client#14

Open
arvindr19 wants to merge 44 commits into
eclipse-opensovd:mainfrom
arvindr19:feat/proxy-main
Open

[POC] feat: add proxy-main binary, FLXC1000 test client#14
arvindr19 wants to merge 44 commits into
eclipse-opensovd:mainfrom
arvindr19:feat/proxy-main

Conversation

@arvindr19
Copy link
Copy Markdown
Contributor

@arvindr19 arvindr19 commented Apr 22, 2026

Summary

Adds the proxy-main binary entry point, FLXC1000 integration test client, and updated README with architecture docs and usage instructions.

Depends on: PR #11 (proxy-core), PR #12 (proxy-sovd), PR #13 (proxy-doip)

Changes

  • main.rs: CLI (clap), config loading + validation, MDD loading, ServiceResolver + SovdDiagHandler + DoIpServer wiring, graceful Ctrl+C shutdown
  • test_client_flxc1000.rs: UDS test client -- RDBI (VIN 0xF190, ActiveSession 0xF186, Identification 0xF100) . WBDI (VIN 0xF190), some test for NRC

Usage

cargo run --release -- --mdd-file FLXC1000.mdd
# In another terminal:
cargo run --release --example test_client_flxc1000

Checklist

  • I have tested my changes locally
  • I have added or updated documentation
  • I have linked related issues or discussions
  • I have added or updated tests

Related

Notes for Reviewers

Since this part of stacked PR, you could see changes from #11, #12 & #13 , until it gets merged
Review required for proxy-main crate

…nd workspace setup

Signed-off-by: Arvind Rathod <Arvind.RA.Rathod@bti.bmwgroup.com>
@arvindr19 arvindr19 requested a review from a team as a code owner April 22, 2026 08:35
@arvindr19 arvindr19 marked this pull request as draft April 22, 2026 08:36
Signed-off-by: Arvind Rathod <Arvind.RA.Rathod@bti.bmwgroup.com>
Signed-off-by: Arvind Rathod <Arvind.RA.Rathod@bti.bmwgroup.com>
Signed-off-by: Arvind Rathod <Arvind.RA.Rathod@bti.bmwgroup.com>
Signed-off-by: Arvind Rathod <Arvind.RA.Rathod@bti.bmwgroup.com>
@arvindr19 arvindr19 marked this pull request as ready for review April 28, 2026 04:59
Signed-off-by: Arvind Rathod <Arvind.RA.Rathod@bti.bmwgroup.com>
Signed-off-by: Arvind Rathod <Arvind.RA.Rathod@bti.bmwgroup.com>
Signed-off-by: Arvind Rathod <Arvind.RA.Rathod@bti.bmwgroup.com>
@arvindr19 arvindr19 changed the title feat: add proxy-main binary, FLXC1000 test client [POC] feat: add proxy-main binary, FLXC1000 test client May 11, 2026
arvindr19 added 23 commits May 12, 2026 14:14
Signed-off-by: Arvind Rathod <Arvind.RA.Rathod@bti.bmwgroup.com>
- Add UdsResponse<'a> wrapper with sid()/is_negative()/nrc() accessors
- is_negative_response/get_nrc delegate to UdsResponse — no more raw byte indexing
- Add ResolvedService { name, params } struct; replace (String, Map) tuple in
  resolve_read_service / resolve_write_service return types
- Split resolve_service_did into build_did_candidates + match_candidate_did
- or_else + match pattern in activate_base_variant (replaces nested if/else)
- Add RwLock doc comment explaining write-reservation intent
- Remove redundant HashSet alongside Vec in candidate dedup
- Add #[cfg(test)] modules to resolve.rs, metadata.rs, response.rs
  (6 + 9 + 12 new unit tests; 63 total in proxy-core)
…BI only)

Signed-off-by: Arvind Rathod <Arvind.RA.Rathod@bti.bmwgroup.com>
Signed-off-by: Arvind Rathod <Arvind.RA.Rathod@bti.bmwgroup.com>
Signed-off-by: Arvind Rathod <Arvind.RA.Rathod@bti.bmwgroup.com>
Signed-off-by: Arvind Rathod <Arvind.RA.Rathod@bti.bmwgroup.com>
…test client

- proxy-doip/handler.rs: InvalidDid -> NRC 0x31 (requestOutOfRange);
  SOVD/other errors -> NRC 0x22 (conditionsNotCorrect) to distinguish
  'DID not in MDD' from 'service resolved but backend unreachable'
- test_client_flxc1000: accept NRC 0x22 as pass (service routing validated,
  no SOVD server running in CI)
- testcontainer/mdd: add FLXCNG1000.mdd (copied from companion workspace)
…ound

The regression was caused by running without a config file, so mock_gateway
defaulted to false and all SOVD calls failed with HTTP errors.

- proxy-main/src/main.rs: change default config path from 'config.toml' to
  'config/config.toml' to match actual file location
- proxy-doip/handler.rs: revert NRC 0x22 workaround (was masking the real bug)
- test_client_flxc1000: revert NRC 0x22 acceptance (now gets real 0x62/0x6E responses)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant