#69 - Introduce Concepts page and restructure API Reference docs#94
Conversation
Signed-off-by: Denis Leshchev <dleshchev@nvidia.com>
Signed-off-by: Denis Leshchev <dleshchev@nvidia.com>
Signed-off-by: Denis Leshchev <dleshchev@nvidia.com>
Signed-off-by: Denis Leshchev <dleshchev@nvidia.com>
Signed-off-by: Denis Leshchev <dleshchev@nvidia.com>
Signed-off-by: Denis Leshchev <dleshchev@nvidia.com>
Signed-off-by: Denis Leshchev <dleshchev@nvidia.com>
Signed-off-by: Chloe Crozier <chloecrozier@gmail.com>
|
| Filename | Overview |
|---|---|
| docs/concepts.md | New top-level glossary consolidating terminology from the old API guide and deleted background tutorial; content is accurate, cross-links resolve, admonitions are well-structured. |
| docs/api-reference/index.md | Short orientation page covering the six-step lifecycle and configuration-first model; all See Also links point to correct relative paths. |
| docs/api-reference/cpp.md | C++ workflow and function reference moved from api-guide.md; RX/TX step headings disambiguated, reorder promoted to top-level section, cross-links updated. |
| .claude/rules/docs-sync.md | Source-to-doc mapping corrected: src/common.h → include/daqiri/common.h, CLAUDE.md → AGENTS.md, old api-guide.md/daqiri-api.html paths replaced with api-reference/* equivalents. |
| mkdocs.yml | Nav restructured: Concepts added as top-level entry, API Reference expanded into three sub-pages, Background tutorial removed; consistent with new file layout. |
| scripts/check_html_links.py | daqiri-api.html removed from HTML_PAGES and docstring updated; correct since the file was deleted in this PR. |
| docs/index.html | Landing page updated: nav link changed from daqiri-api.html to api-reference/, hero actions updated with Key Concepts and API Reference buttons, tutorial list renumbered, footer Docs column updated with new api-reference/* links. |
| AGENTS.md | Documentation section updated to reflect new structure (api-reference/*, concepts.md); drift hotspot paths corrected; daqiri-api.html removed. |
| README.md | Documentation table updated with new URLs (concepts/, api-reference/, api-reference/configuration/, api-reference/cpp/); Background tutorial link removed. |
Reviews (7): Last reviewed commit: "#69 - updating queue and intro sections" | Re-trigger Greptile
The Concepts page is now a top-level mkdocs nav entry but the hand-maintained docs/index.html landing page had no entry point into it. Add a Key Concepts button to the hero actions between Quick Start and API Reference so first-time visitors can find the glossary. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: rgurunathan <rgurunathan@nvidia.com>
RamyaGuru
left a comment
There was a problem hiding this comment.
Looks good, thanks! I just added a button on the landing page to link to the Concepts page. (It was the one thing that greptile review picked up)
Signed-off-by: Ramya Gurunathan <rgurunathan@nvidia.com> # Conflicts: # README.md # docs/api-reference/cpp.md # docs/daqiri-api.html
The Tutorials section needs the left-hand nav so readers can jump between sibling tutorial pages. Getting Started is a single standalone page where the LHS nav adds no value, so hide it there to maximize content width — matching the existing Concepts page. Signed-off-by: Ramya Gurunathan <rgurunathan@nvidia.com>
| @@ -0,0 +1,62 @@ | |||
| # API Guide | |||
|
|
|||
| DAQIRI is a kernel-bypass packet I/O library that moves bursts of packets | |||
There was a problem hiding this comment.
Dropped the kernel-bypass label from the intro since the term already is explained in its own section on the Concepts page
|
|
||
| The language APIs do **not** discover queues, memory, or flow steering | ||
| rules on their own. They are runtime handles over the topology declared | ||
| in YAML. Keep the configuration as the source of truth for queue IDs, |
There was a problem hiding this comment.
One thought: daqiri is configurable both through yank config file and config struct; may be we need to use language that is inclusive of the struct
There was a problem hiding this comment.
fixed to be inclusive of both configuration options
| model and **RoCE** (RDMA over Converged Ethernet) protocol. It costs more | ||
| to set up on both ends but offers a simpler user interface, orders packets | ||
| on arrival, and is the only backend with a high-reliability mode. | ||
| - **Socket / RoCE transport** — a socket-oriented interface (UDP and TCP via |
| See [Configuration YAML Reference → RX Reorder Configs](api-reference/configuration.md#rx-reorder-configs-dpdk-v1) | ||
| for the configuration constraints and | ||
| [C++ API Usage → Reordered RX bursts](api-reference/cpp.md#reordered-rx-bursts) | ||
| for how to consume them from C++. |
There was a problem hiding this comment.
May be here or may be in the other docs, we should mention that at the moment we support gpu-only or cpu-only packet reorder, i.e. for hds types of situations the reorder (of packet parts in two memory regions) is not supported yet - will be added in the future
There was a problem hiding this comment.
I went ahead and added this clarification in docs/concepts.md
| @@ -0,0 +1,259 @@ | |||
| --- | |||
There was a problem hiding this comment.
HEAD commit missing DCO sign-off
The tip commit 26bd7b7b — "#69 - updating wordage based on comments" — has no Signed-off-by: trailer. Every commit in this repo must carry one per CONTRIBUTING.md's "Signing Your Work" section. The unsigned commit will be rejected by the DCO gate.
The contributor needs to amend and force-push:
git commit -s --amend (then git push --force-with-lease)
Rule Used: Every commit in the PR must contain a 'Signed-off-... (source)
Signed-off-by: Chloe Crozier <chloecrozier@gmail.com>
26bd7b7 to
f15bc99
Compare
| segment**, **flow / queue**, **memory region**, **zero-copy ownership**, and | ||
| **RX reorder** — and explains how those pieces fit together. | ||
|
|
||
| It is not a tutorial. There is no plot to follow. Keep this page open in a |
There was a problem hiding this comment.
Maybe do different wording here or erase the first two sentences.
There was a problem hiding this comment.
Generalized to:
Concepts
DAQIRI glossary — defines the terms used across the
API Guide,
Configuration Reference, and
tutorials: kernel bypass,
GPUDirect, packet / burst / segment, flow / queue,
memory region, zero-copy ownership, and RX reorder.
I also removed some similar styled wording later in the doc
| differs from the other Ethernet-based backends with its server/client | ||
| model and **RoCE** (RDMA over Converged Ethernet) protocol. It costs more | ||
| to set up on both ends but offers a simpler user interface, orders packets | ||
| on arrival, and is the only backend with a high-reliability mode. |
There was a problem hiding this comment.
Technically regular sockets with TCP also offers reliability
There was a problem hiding this comment.
Updated to be more inclusive of other backends. I also addressed the queue cpu pinning comment we discussed in our meeting this morning.
Signed-off-by: Chloe Crozier <chloecrozier@gmail.com>
Addresses some of #69
Summary
docs/api-guide.mdanddocs/configuration.mdinto a dedicateddocs/api-reference/section:index.md(API guide),configuration.md(YAML schema),cpp.md(C++ usage + function reference).docs/concepts.mdpage that consolidates DAQIRI terminology — kernel bypass, GPUDirect, packet / burst / segment, flow / queue, memory region, zero-copy ownership, and RX reorder — so readers have a single glossary to keep open in parallel with the rest of the docs.What's in this PR
API Reference section (
docs/api-reference/)index.md— the API guide is now a short orientation page (~60 lines): one-line description of the library, configuration-first model, the 6-step application lifecycle, and a See Also footer. The glossary content that used to live here has moved intodocs/concepts.md.configuration.md— moved fromdocs/configuration.md; YAML schema reference, unchanged in scope.cpp.md— moved fromdocs/api-guide.mdand reorganized:### RX Step 1 — …/### TX Step 1 — …) so the page TOC reads cleanly.New Concepts page (
docs/concepts.md)tutorials/background.md, including the backend trade-off framing and the Backend Maturity admonition that had been dropped in the earlier restructure.Nav and entry points
mkdocs.yml—Conceptsis now a top-level nav entry, sibling of Getting Started / API Reference / Tutorials.docs/getting-started.md— Concepts added as step 1 of "Next Steps".Sync + onboarding docs
.claude/rules/docs-sync.md,AGENTS.md,README.md— all three updated so future contributors knowdocs/concepts.mdexists and which source changes should trigger updates to it (backend additions, new user-facing concepts, etc.).Removed
docs/tutorials/background.md— content lives ondocs/concepts.mdnow, no longer a standalone tutorial page (it was never really plot-driven).Discussion notes
This PR implements the first iteration agreed on in the docs sync: separate the conceptual glossary from the API reference, keep the API reference focused on lifecycle + schema + language reference, and defer the larger doc-strategy decisions to a follow-up. The doc-vs-tutorial test we settled on — reference pages list and connect, tutorials walk a goal-driven plot — drove the splits below.
Out of scope / Next steps
These are intentionally deferred so this PR stays narrowly scoped to the restructure:
docs/concepts.mdunder Packets, Bursts, and Segments and GPUDirect. (This is the immediate next piece of work.)docs/index.htmlnav + footer is intentionally not in this PR — it can ride along with the landing-page refresh that picks up the diagrams above.cpp.md. The page currently does two jobs (workflow narrative + alphabetical-ish reference) with opposite reading patterns. A dedicatedcpp-functions.mdwould shorten the workflow page and make the reference easier to deep-link.API Guide/Configuration YAML Reference/C++ API Usage) into a uniformOverview/Configuration (YAML)/C++ APIscheme that future-proofs for aPython APIsibling.Test plan
python3 -m mkdocs build --strict— clean, no broken-link or anchor warnings (matches.github/workflows/docs.ymlgate).python3 scripts/check_html_links.py site— all hand-maintained HTML links resolve.python3 scripts/check_doc_refs.py— 8 binaries × 19 YAML configs across 10 doc files all resolve; decision-tree YAML coverage complete.docs/concepts.mdrendered through MkDocs Material — admonitions (!!! warning,??? example,??? info) render, anchors link back intoapi-reference/cpp.mdandapi-reference/configuration.md.