Requirements#
FlatBuffers Requirements
|
status: draft
security: YES
safety: ASIL_B
|
||||
FlatBuffers Tooling Requirements#
FlatBuffers Code Generation for C++
|
status: invalid
security: NO
safety: ASIL_B
|
||||
The FlatBuffers-Library tooling shall generate code for serialization and read access of FlatBuffers data for C++. |
|||||
FlatBuffers Code Generation for Rust
|
status: invalid
security: NO
safety: ASIL_B
|
||||
The FlatBuffers-Library tooling shall generate code for serialization and read access of FlatBuffers data for Rust. |
|||||
FlatBuffers Code Generation for Python
|
status: invalid
security: NO
safety: ASIL_B
|
||||
The FlatBuffers-Library tooling shall generate code for serialization and read access of FlatBuffers data for Python. Note Python code generation is nice-to-have for benchmark testing (scale configurations). It is not intended for safety certification (meta model check requires safety level ASIL-B). |
|||||
FlatBuffers Binary Creation from JSON
|
status: invalid
security: NO
safety: ASIL_B
|
||||
The FlatBuffers-Library tooling shall support creation of FlatBuffers binary files from JSON-encoded files conforming to the corresponding FlatBuffers schema. |
|||||
FlatBuffers Data Constraint Validation
|
status: invalid
security: NO
safety: ASIL_B
|
||||
The FlatBuffers-Library tooling shall provide a mechanism to validate FlatBuffers data against schema-defined semantic constraints such as value ranges, allowed values, and required field presence. Note Support JSON Schema validation of the JSON-encoded files used as input for FlatBuffers serialization. |
|||||
FlatBuffers Schema Evolution Check
|
status: invalid
security: NO
safety: ASIL_B
|
||||
The FlatBuffers-Library tooling shall provide a mechanism to check whether a new version of a FlatBuffers schema is backward compatible with a previous version. Note Backward compatibility in FlatBuffers requires that existing fields are not removed or reordered, field types are not changed, and deprecated fields retain their field identifier. Breaking these rules silently corrupts data when old binaries access buffers produced from a new schema or vice versa. |
|||||
FlatBuffers Library Requirements#
FlatBuffers Serialization
|
status: valid
security: NO
safety: ASIL_B
|
||||
The FlatBuffers-Library shall provide functionality to serialize data into the FlatBuffers binary format. |
|||||
FlatBuffers Access
|
status: valid
security: NO
safety: ASIL_B
|
||||
The FlatBuffers-Library shall provide functionality to read FlatBuffers binary data. Note FlatBuffers uses a zero-copy approach where data is accessed directly from the binary buffer. |
|||||
FlatBuffers Verification
|
status: valid
security: NO
safety: ASIL_B
|
||||
The FlatBuffers-Library shall provide a verification mechanism to validate the structural well-formedness of a FlatBuffers buffer. Note Verification only validates the buffer structure (e.g. offsets, vtables, field boundaries), not the correctness or integrity of the payload data. |
|||||
Load FlatBuffers Binary File
|
status: valid
security: NO
safety: ASIL_B
|
||||
The FlatBuffers-Library shall provide functionality to load FlatBuffers binary files from the filesystem. |
|||||
Buffer Identification and Versioning#
Common Buffer Identification
|
status: valid
security: NO
safety: ASIL_B
|
||||
The FlatBuffers-Library shall provide a common opt-in buffer identification mechanism consisting of a major version, a minor version, and a 4-character identifier. |
|||||
Common Version Check
|
status: valid
security: NO
safety: ASIL_B
|
||||
The FlatBuffers-Library shall provide a common opt-in version check mechanism that validates the major version, minor version, and 4-character identifier of a FlatBuffers buffer. |
|||||
User friendly API for information exchange#
Support for programming language idioms
|
status: valid
security: NO
safety: ASIL_B
|
||||
The public API shall support the idioms of the programming language it is written in. |
|||||
Use programming language infrastructure
|
status: valid
security: NO
safety: ASIL_B
|
||||
The public API shall use core infrastructure of its programming language and accompanying standard libraries, whenever possible and meaningful. Note This includes error handling. |
|||||
Full testability for the user facing API#
Fully testable public API
|
status: valid
security: NO
safety: ASIL_B
|
||||
The public API of the library shall support dependency injection with test doubles. Note This enables full testability of the user code. |
|||||
Safety Impact#
FlatBuffers library ASIL level
|
status: valid
security: NO
safety: ASIL_B
|
||||
The FlatBuffers library shall be ASIL-B compliant for C++ and Rust language support. |
|||||
AoU Requirements#
FlatBuffers data integrity
|
status: valid
security: NO
safety: ASIL_B
|
||||
The user shall provide FlatBuffers binary data as input which is not corrupted due to HW, QM SW, or communication channel errors. Note The FlatBuffers-Library verification mechanism only validates structural well-formedness, not payload data integrity. Data integrity shall be ensured by external means such as a safe read-only filesystem for FlatBuffers binary file storage or a checksum protection on the FlatBuffers binary file content. |
|||||
FlatBuffers access control
|
status: valid
security: NO
safety: ASIL_B
|
||||
The user shall ensure access control and manipulation prevention on the FlatBuffers binary files. Note This can be done by the hosting process and system configuration (e.g. by using dm-verity). |
|||||
FlatBuffers schema consistency
|
status: valid
security: NO
safety: ASIL_B
|
||||
The user shall ensure that the FlatBuffers schema used for code generation is consistent with the schema used to produce the binary data being read. |
|||||
FlatBuffers buffer verification before access
|
status: valid
security: NO
safety: ASIL_B
|
||||
The user shall apply the FlatBuffers-Library verification mechanism to a loaded buffer and confirm a successful result before accessing any data from that buffer. Note Accessing data from an unverified or malformed buffer results in undefined behaviour. The verification mechanism provided by FlatBuffers Verification (comp_req__flatbuffers__verification) only checks structural well-formedness; it does not replace data integrity measures required by FlatBuffers data integrity (aou_req__flatbuffers__data_integrity). |
|||||