Yes, it is set correctly. To validate it, I bypassed the dpdk optimization and fed every packet to ethernet-input (by making "dpdk_rx_next_from_etype" always return VNET_DEVICE_INPUT_NEXT_ETHERNET_INPUT). Then things started working fine - packets getting classified to correct sw_if_index, ip header pointing to beginning of ip header etc.
I am referring to the way l3_offset is set by looking up device_input_next_node_advance[next] - there is no check to skip the vlan header - can you please point me to the code snippet in dpdk_device_input which does that? "vnet_feature_start_device_input" does not seem to be doing anything here.. Thanks, -nagp On Mon, May 8, 2017 at 7:32 PM, Damjan Marion (damarion) <damar...@cisco.com > wrote: > > > > On 3 May 2017, at 13:28, Nagaprabhanjan Bellaru <nagp.li...@gmail.com> > wrote: > > > > Hi, > > > > It looks like dpdk_device_input() - is not checking if there is a vlan > header in the packet or not and always sets the buffer->current_data to 14 > (smac+dmac+ethtype). Because of that ip4_input is not able to recognize a > correct IP packet. > > > > For example, I have a subinterface created with vlan100 - which is > trying to send IP packets. The receiving side is setting l3offset to 14 and > feeding the packet to ip4-input-no-checksum and is getting dropped there. > > > > Am I missing something? "show interface" shows the main and the sub > interface. "show trace" for dpdk_input shows the vlan tag as 100. But > ip4_input_inline gets a buffer with current_data as 14 instead of 18 > (accounting for vlan header) > > We do respect VLAN ethertypes, is your ethertype set correctly? > >
_______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev