Hi Tomas,

> But how does af-packet-input decide which of these nodes to run? Is it simply in descending order so since sample is at the bottom, it will be run before ethernet-input etc?

If the device produce's ptype & ethtype information, dpdk-input will use this to identify the next node for any given packet. If not it will identify the packet's ptype in software.

As I remember

.runs_before = VNET_FEATURES ("ethernet-input"),

Causes the sample plugin to hook itself in front of the ethernet-input graph node. The tracing facility is revealing for this kind of understanding.

Ray K


On 16/05/2017 09:55, Tomas Brännström wrote:
Hi
I'm struggling a bit to understand how VPP processes the node graph. If
we take the sample plugin for example, it registers itself to the
"device-input" arc. Then it is run after "af-packet-input" among others.
But looking at the af-packet-input-node, it has the following "next"
nodes in the graph:

af-packet-input            ip4-input-no-checksum [0]
                                 ip4-input [1]
                                 ip6-input [2]
                                mpls-input [3]
                              ethernet-input [4]
                                error-drop [5]
                                  sample [6]

But how does af-packet-input decide which of these nodes to run? Is it
simply in descending order so since sample is at the bottom, it will be
run before ethernet-input etc?

Also, is there a document somewhere that explains exactly how a node is
input into the graph? I think I understand how it works on some level,
but I'm not 100% clear what for example VPP actually does with
".arc_name", ".runs_before" and so on.

/Tomas



_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

_______________________________________________
vpp-dev mailing list
vpp-dev@lists.fd.io
https://lists.fd.io/mailman/listinfo/vpp-dev

Reply via email to