Hi,

I'm trying to grasp how features arcs are done in the code. And have a couple 
of questions

1. Is a feature a representation of a node ?
2. Does ".next_nodes" from VLIB_REGISTER_NODE() restrain to which nodes the 
.function() primitive may send it to?
3. I'm trying to grasp how the feature arhitecture has been thought. I started 
by looking the "nsh" plugin.
>From what I understand:
VNET_FEATURE_ARC_INIT() creates an empty Arc of nodes/features
.start_nodes from VNET_FEATURE_ARC_INIT() says/adds where the Arc processing 
starts
VNET_FEATURE_INIT() adds nodes/features to the Arc
.runs_before from VNET_FEATURE_INIT() and .next_nodes from VLIB_REGISTER_NODE() 
give the vertices/dependencies in the Arc

Everything in "nsh" seems to start from the "nsh_midchain_node" node.

How is the "nsh_eth_output_node" triggered? I see it has the same name as the 
Arc name ("nsh-eth-output"). Does this have any relevance or it is just a 
coincidence of name? Does a node which belongs to no Arc get triggered directly 
with no dependency?
4. It is not clear to me who initializes the "nm->output_feature_arc_index" 
entry.

Best regards,
Catalin Vasile
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#19208): https://lists.fd.io/g/vpp-dev/message/19208
Mute This Topic: https://lists.fd.io/mt/82113339/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to