Dear Robin,

your observation is true, many things are not documented.
It is mainly result of limited manpower available to the project.

I suggest you ask question here if you need some explanation and of
course documentation improvement contributions are very welcome.

Cheers,

Damjan


> On 14.12.2025., at 18:08, Robin Christ via lists.fd.io 
> <[email protected]> wrote:
>
> Hey folks,
>
>
> I'd like to talk about the current state of VPP's developer documentation.
>
>
> Overall, I'd say that VPP's developer documentation is severely lacking. As 
> harsh as this sounds, I trust everyone knows that this is in no way meant as 
> an attack or critique on a specific person.
>
> I recognize that VPP is a very complex project due to its performance goals, 
> and there will always be a learning curve, but to me it seems like the 
> learning curve is far, far steeper than it should and could be.
> I would go as far as saying that this is a significant barrier to VPP 
> contribution.
>
>
> Some examples:
> - vlib_buffer_enqueue_to_next is completely undocumented. While one could 
> argue that the vlib_validate_buffer_enqueue_.. functions are *somehow* 
> documented, vlib_buffer_enqueue_to_next is still used in many places in the 
> built-in plugins
> - vnet_feature_next is also completely undocumented, some info can be found 
> on the mailing list 
> https://lists.fd.io/g/vpp-dev/topic/questions_abount/102777199 but this 
> cannot be the way
> - VLIB_NODE_FN is also undocumented - sure, some external docs tell you that 
> you need it to register nodes, but this can also not be the way..
>
> Sometimes you can find information on the mailing list, or some 
> presentations, or by watching an ancient video 
> https://www.youtube.com/watch?v=4oxYNv0gOeY, but I don't think this qualifies 
> as proper, good documentation.
>
> There is one field report here: 
> https://github.com/aregm/nff-go/wiki/VPP-vs-NFF-Go:-Productivity-Comparison/e4a00b2fd29a675123ecbd53a5d9e17453073050
>
> And yes, sure, it is possible that it's a bit biased, but I can completely 
> understand the experiences described there.
>
>
> From my POV, the most important points to tackle are
> - Document: How exactly do I get information in and out of my node: This is a 
> big point. It needs explanation of all the common functions like 
> vlib_buffer_enqueue_to_next, vnet_feature_next, 
> vlib_validate_buffer_enqueue_...
> - Document: How does the graph exactly work: How do feature arcs works 
> VISUALIZED including runs_before and runs_after, static vs dynamic next 
> nodes, etc...
> - Document: All the performance optimizations: Pipeline infra, prefetch 
> walkthrough, writing code is correct despite the code duplication, etc...
> - Use the above docs to add more documentation to the code itself
>
>
>
> Are there documentation efforts I'm missing?
>
> What does the community think about this?
>
>
>
> Cheers,
> Robin
>
> 
>

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#26652): https://lists.fd.io/g/vpp-dev/message/26652
Mute This Topic: https://lists.fd.io/mt/116778994/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/14379924/21656/631435203/xyzzy 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to