Hi Dave,
Thanks (again) for your reply.
> Brief commercial: hopefully you added your node to the ip4 unicast feature
> arc,
> configured to grab pkts, pre-ip4/6-lookup.
Indeed, I added my node to the ip4-unicast feature arc.
> In feature-arc land, the following one-liner sets next0 so pkts will visit the
> next enabled feature. The last node in the ip4-unicast feature arc is
> ip4-lookup...
>
> /* Next node in unicast feature arc */
> vnet_get_config_data (em->config_main[table_index],
> &b0->current_config_index, &next0,
> /* # bytes of config data */ 0);
>
> Check the ip protocol and ignore any non-TCP pkts:
>
> ip40 = vlib_buffer_get_current (b0);
> if (ip40->protocol != IP_PROTOCOL_TCP)
> goto trace0;
>
> Then use ip4_next_header() to find the tcp layer, etc. etc.
Actually, I'm already able to access L3 and L4 structures. But, when I have the
following, for instance:
ip40 = vlib_buffer_get_current (b0);
if (ip40->protocol == IP_PROTOCOL_TCP)
{
tcp_header_t *tcp = ip4_next_header(ip40);
// where are options (tcp_options_t) ?
}
How am I able to access TCP options for each packet ? I mean, I could directly
parse them by moving the data pointer but I've also seen a function called
tcp_options_parse (see my previous email) that already does this job. How would
you proceed to do this ? The expected behavior is to match some options and
strip them.
Thanks,
Justin
_______________________________________________
vpp-dev mailing list
[email protected]
https://lists.fd.io/mailman/listinfo/vpp-dev