Skip to content

Conversation

@pavel-kirienko
Copy link
Member

@pavel-kirienko pavel-kirienko commented Jun 28, 2023

Please focus on the documentation in udpard.h. The other changes are trivial and can be ignored.

Changes:

  1. Update the API according to the new design principle that the library is to be used with a third-party UDP/IP+IGMP stack.

Q: Could you be a bit more specific about the multiplexing that you saw in the old version? Do you mean redundant interfaces?
A: No, I mean the socket layer (or the lack-of-socket layer, as Erik puts it) already demultiplexes incoming datagrams per subject. The original design joins the demultiplexed datagram feeds into one feed which is then demultiplexed back through AVL tree lookup. This is suboptimal. The new design eliminates one (of the two) AVL lookups from the RX pipeline. To subscribe to a subject, you would call udpardRxSubscribtionInit and then create a socket for this subscription. The socket and the subscription will exist side-by-side.

  1. Set up static analysis and verification:
  • Clang-Tidy and SonarCloud with a large subset of MISRA rules enabled.
  • Build for i386, AMD64, ARM, AVR.
  • Run tests on i386 and AMD64 using both GCC and Clang with coverage.
  1. Switch from Catch2 to Google Test.

@pavel-kirienko pavel-kirienko self-assigned this Jun 28, 2023
@pavel-kirienko pavel-kirienko marked this pull request as ready for review June 29, 2023 15:31
@pavel-kirienko pavel-kirienko changed the title [WIP] New API and static analysis New API and static analysis Jun 29, 2023
Copy link
Member

@thirtytwobits thirtytwobits left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

General comments. Looks good otherwise.

/// speaking in terms of Berkeley sockets). In the case of redundant interfaces, each socket may need to be configured
/// to emit data through its specific interface.
///
/// Graphically, the transmission pipeline is arranged as follows:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See discussion in chat about what the application should do if one of these tx pipelines fills up but not the other.

@pavel-kirienko
Copy link
Member Author

pavel-kirienko commented Jun 30, 2023

@lydia-at-amazon @thirtytwobits I updated the docs to try and capture almost all of the issues raised here, and marked the respective threads as resolved. I also added one idea on the future evolution of UdpardTx.

@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

100.0% 100.0% Coverage
0.0% 0.0% Duplication

@pavel-kirienko
Copy link
Member Author

As this is approved, I am going to merge this now. Please move unfinished discussions to new issues if necessary.

@pavel-kirienko pavel-kirienko merged commit 5350ec8 into main2 Jun 30, 2023
@pavel-kirienko pavel-kirienko deleted the pavel branch June 30, 2023 09:45
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.

5 participants