Skip to content

feat(uds_services): an application may decline a listed service at run time - #95

Draft
FelicianoAngulo2 wants to merge 2 commits into
feat/session-preparefrom
feat/decline-listed-service
Draft

FelicianoAngulo2 wants to merge 2 commits into
feat/session-preparefrom
feat/decline-listed-service

Conversation

@FelicianoAngulo2

Copy link
Copy Markdown

An application that implements a service's trait can decline it at run time (serves(), default true): the server answers serviceNotSupported, in the order ISO 14229-1 Figure 5 gives, instead of a later NRC. A C binding whose tables leave a service unserved needs this.

Depends on #94.

Issue URL

Towards https://github.com/luminartech/halo/issues/5100

Testing

Run on this branch with the commits of the PRs below it, each commit alone and on the stack's top:

  • tool self-tests, validate, governance, the Sphinx needs build, and prose (plain and CI's --strict crates/uds_c)
  • cargo test --workspace --all-features; clippy on the host and for thumbv7em-none-eabihf
  • just embedded builds on 1.91 for both targets and the size check (matches the baseline)
  • cargo doc with -D warnings; pre-commit run --all-files
  • On the stack's top also the uds_c Miri job from ci.yml and cargo package -p uds_c --no-verify

…unsafe_code alone

check_governance accepts uds_c, the C binding, declaring its own lint tables instead of inheriting the workspace's, and only where those tables are the workspace's entry for entry with unsafe_code at deny rather than forbid. The C binding declares and calls C, which forbid rules out and no attribute can relax; at deny, each module that does so allows it with a reason. Own tables in any other crate, and any other difference, a dropped or relaxed entry or a table identical to the workspace's, are rejected, and the self-tests show each. The tables are read line by line, so the check still needs no TOML parser and runs on any Python 3.
…n time

ReadDtcInformation, ClearDiagnosticInformation, CommunicationControl, ControlDtcSetting and DataTransfer gain a provided serves, true by default. The assembly asks it with Figure 5's first check, so a service the application declines is serviceNotSupported (0x11), as one the assembly does not list, ahead of Table 23's 0x7F and of every check its trait would otherwise answer. This is for an application whose handlers come from tables at run time, such as the C binding. UDSSVC_ARCH_0006 names it. The embedded probe's size is unchanged.

This branch has not been deployed

No deployments
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