> And you might not want to enable reassembly in the input feature arc, unless 
> you want every fragment arriving on that interface to be reassembled. 
> Independently of packet being to your feature plugin or not. 
>  
> Hi Ole, yes we are checking for ip fragmented packet in our plugin and if 
> reassembly is required we are trying to send to ip4_reass_node.

Splendid. I was a little worried that you were going to try to reassemble all 
packets received on the interface, even those not for your plugin.
If you don't need real reassembly, you might want to consider doing virtual 
reassembly instead. That is much lower overhead.
But it will depend on your use case.

> Below is code snippet for your reference:
> 
> if( (ip4_is_fragment(ip_hdr)) )  /* Check if Reassembly is required */
> {
> /* forward to reassembly node for processing */
>    frame = vlib_get_frame_to_node (vlib_get_main (), ip4_reass_node.index);
>    frame->n_vectors = 1;
>    to_next = vlib_frame_vector_args (frame);
> ...
>     vlib_put_frame_to_node (vlib_get_main (), node_index, frame );
> }

Any reason why you cannot use the common pattern?
Populate the node's next_index array and set next as part of the loop?
e.g. https://git.fd.io/vpp/tree/extras/emacs/dual-loop-skel.el#n212

Then to get the reassembled packet back, you can set ip.reass.next_index in the 
buffer:
vnet_buffer (b0)->ip.reass.next_index

Cheers,
Ole
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#13235): https://lists.fd.io/g/vpp-dev/message/13235
Mute This Topic: https://lists.fd.io/mt/31952526/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to