I just submitted patch which cleans vlib_frame_t allocation code and adds 
support for aux data.

https://gerrit.fd.io/r/c/vpp/+/34798

Example use case is when node passes array of sw_if_index to next node, so next 
node doesn’t need
to do expensive parsing of buffer metadata.

It is as simple as:

typedef struct {
  u32 sw_if_index;
  u32 foo;
} my_frame_aux_data_t;

VLIB_REGISTER_NODE (my_node) = {
    .vector_size = sizeof (u32),
    .aux_size = sizeof (my_frame_aux_data_t),
};

And the inside the node function:

my_frame_aux_data_t *ad = vlib_frame_aux_args (frame);

Sending node can pass parameters with:

  vlib_next_frame_t *nf;
  vlib_frame_t *f;
  nf = vlib_node_runtime_get_next_frame (vm, node, next_index);
  f = vlib_get_frame (vm, nf->frame);
  aux = vlib_frame_aux_args (f);

Please let me know if any feedback...

— 
Damjan



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#20663): https://lists.fd.io/g/vpp-dev/message/20663
Mute This Topic: https://lists.fd.io/mt/87924883/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to