DPDK usage discussions
 help / color / mirror / Atom feed
* [dpdk-users] Why packet_type is zero?
@ 2015-11-06 14:57 Arseniy Zaostrovnykh
  2015-11-06 15:05 ` Arseniy Zaostrovnykh
  0 siblings, 1 reply; 4+ messages in thread
From: Arseniy Zaostrovnykh @ 2015-11-06 14:57 UTC (permalink / raw)
  To: users

Hello,

I have the following setup of VirtualBox machines on a single host:
node2:
  eth0: VBox NAT, connecting to the host internet
  eth1: 192.168.1.12/24
   and additional route for 192.168.0.0/16 -> gateway 192.168.1.11

dpdk-node:
  eth0: VBox NaT, connecting to the host internet
  eth1: 192.168.1.11/24
  eth2: 192.168.2.11/24

Now I run
     node2 $ ping 192.168.2.13
so, following the route, it sends the ping ICMP messages to 192.168.1.11 
(dpdk-node).

On the dpdk-node I run l3fwd:
     dpdk-node $ sudo examples/l3fwd/build/app/l3fwd -c 0x01 -n 2 -- -p 
0x03 --config="(0,0,0),(1,0,0)"
with APP_LOOKUP_METHOD = APP_LOOKUP_EXACT_MATCH, and with some 
debug-printfs. In particular I printf
m->packet_type in the beginning of the l3fwd_simple_forward function.

Question:
Why does it prints 0? What is a possible causes?

P.S. my DPDK version is 2.1.0; The printf is executed on each ping 
message; tcpdump shows no other traffic in this internal network.

-- 
Respectfully,
Arseniy.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-users] Why packet_type is zero?
  2015-11-06 14:57 [dpdk-users] Why packet_type is zero? Arseniy Zaostrovnykh
@ 2015-11-06 15:05 ` Arseniy Zaostrovnykh
  2015-11-10 14:46   ` Arseniy Zaostrovnykh
  0 siblings, 1 reply; 4+ messages in thread
From: Arseniy Zaostrovnykh @ 2015-11-06 15:05 UTC (permalink / raw)
  To: users

Forgot to mention:
I tried KNI (first detaching eth1 and eth2 from the kernel) and pcap PMD 
drivers, with:
     dpdk-node $ sudo examples/l3fwd/build/app/l3fwd -c 0x01 -n 2 
--vdev=eth_pcap0,iface=eth2 --vdev=eth_pcap1,iface=eth1 -p 0x03 
--config="(0,0,0),(1,0,0)"
The sysptoms are identical.

On 06.11.2015 15:57, Arseniy Zaostrovnykh wrote:
> Hello,
>
> I have the following setup of VirtualBox machines on a single host:
> node2:
>  eth0: VBox NAT, connecting to the host internet
>  eth1: 192.168.1.12/24
>   and additional route for 192.168.0.0/16 -> gateway 192.168.1.11
>
> dpdk-node:
>  eth0: VBox NaT, connecting to the host internet
>  eth1: 192.168.1.11/24
>  eth2: 192.168.2.11/24
>
> Now I run
>     node2 $ ping 192.168.2.13
> so, following the route, it sends the ping ICMP messages to 
> 192.168.1.11 (dpdk-node).
>
> On the dpdk-node I run l3fwd:
>     dpdk-node $ sudo examples/l3fwd/build/app/l3fwd -c 0x01 -n 2 -- -p 
> 0x03 --config="(0,0,0),(1,0,0)"
> with APP_LOOKUP_METHOD = APP_LOOKUP_EXACT_MATCH, and with some 
> debug-printfs. In particular I printf
> m->packet_type in the beginning of the l3fwd_simple_forward function.
>
> Question:
> Why does it prints 0? What is a possible causes?
>
> P.S. my DPDK version is 2.1.0; The printf is executed on each ping 
> message; tcpdump shows no other traffic in this internal network.
>

-- 
Respectfully,
Arseniy.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-users] Why packet_type is zero?
  2015-11-06 15:05 ` Arseniy Zaostrovnykh
@ 2015-11-10 14:46   ` Arseniy Zaostrovnykh
  2015-11-10 14:55     ` Thomas Monjalon
  0 siblings, 1 reply; 4+ messages in thread
From: Arseniy Zaostrovnykh @ 2015-11-10 14:46 UTC (permalink / raw)
  To: users

Is the pcap driver obsolete?

L3fwd example(http://dpdk.org/doc/guides/sample_app_ug/l3_forward.html) 
check the mbuf field packet_type, and in the zero case (which is a 
default value, as far as I know) it does nothing. At the same time, only 
few drivers even mention this field:

dpdk-2.1.0 $ grep packet_type drivers -Rl
     drivers/net/enic/enic_main.c
     drivers/net/e1000/igb_rxtx.c
     drivers/net/ixgbe/ixgbe_rxtx.c
     drivers/net/mlx4/mlx4.c
     drivers/net/i40e/i40e_rxtx.c
     drivers/net/mpipe/mpipe_tilegx.c
     drivers/net/vmxnet3/vmxnet3_rxtx.c
     drivers/net/fm10k/fm10k_rxtx.c
     drivers/net/cxgbe/sge.c

And a PCap driver (drivers/net/pcap/rte_eth_pcap.c) specifically, does 
not alter the field, so L3fwd application drops all packets.


On 06.11.2015 16:05, Arseniy Zaostrovnykh wrote:
> Forgot to mention:
> I tried KNI (first detaching eth1 and eth2 from the kernel) and pcap 
> PMD drivers, with:
>     dpdk-node $ sudo examples/l3fwd/build/app/l3fwd -c 0x01 -n 2 
> --vdev=eth_pcap0,iface=eth2 --vdev=eth_pcap1,iface=eth1 -p 0x03 
> --config="(0,0,0),(1,0,0)"
> The sysptoms are identical.
>
> On 06.11.2015 15:57, Arseniy Zaostrovnykh wrote:
>> Hello,
>>
>> I have the following setup of VirtualBox machines on a single host:
>> node2:
>>  eth0: VBox NAT, connecting to the host internet
>>  eth1: 192.168.1.12/24
>>   and additional route for 192.168.0.0/16 -> gateway 192.168.1.11
>>
>> dpdk-node:
>>  eth0: VBox NaT, connecting to the host internet
>>  eth1: 192.168.1.11/24
>>  eth2: 192.168.2.11/24
>>
>> Now I run
>>     node2 $ ping 192.168.2.13
>> so, following the route, it sends the ping ICMP messages to 
>> 192.168.1.11 (dpdk-node).
>>
>> On the dpdk-node I run l3fwd:
>>     dpdk-node $ sudo examples/l3fwd/build/app/l3fwd -c 0x01 -n 2 -- 
>> -p 0x03 --config="(0,0,0),(1,0,0)"
>> with APP_LOOKUP_METHOD = APP_LOOKUP_EXACT_MATCH, and with some 
>> debug-printfs. In particular I printf
>> m->packet_type in the beginning of the l3fwd_simple_forward function.
>>
>> Question:
>> Why does it prints 0? What is a possible causes?
>>
>> P.S. my DPDK version is 2.1.0; The printf is executed on each ping 
>> message; tcpdump shows no other traffic in this internal network.
>>
>

-- 
Respectfully,
Arseniy.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-users] Why packet_type is zero?
  2015-11-10 14:46   ` Arseniy Zaostrovnykh
@ 2015-11-10 14:55     ` Thomas Monjalon
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Monjalon @ 2015-11-10 14:55 UTC (permalink / raw)
  To: Arseniy Zaostrovnykh; +Cc: dev, users

Thanks for reporting.

2015-11-10 15:46, Arseniy Zaostrovnykh:
> Is the pcap driver obsolete?

No

> L3fwd example(http://dpdk.org/doc/guides/sample_app_ug/l3_forward.html) 
> check the mbuf field packet_type, and in the zero case (which is a 
> default value, as far as I know) it does nothing. At the same time, only 
> few drivers even mention this field:
> 
> dpdk-2.1.0 $ grep packet_type drivers -Rl
>      drivers/net/enic/enic_main.c
>      drivers/net/e1000/igb_rxtx.c
>      drivers/net/ixgbe/ixgbe_rxtx.c
>      drivers/net/mlx4/mlx4.c
>      drivers/net/i40e/i40e_rxtx.c
>      drivers/net/mpipe/mpipe_tilegx.c
>      drivers/net/vmxnet3/vmxnet3_rxtx.c
>      drivers/net/fm10k/fm10k_rxtx.c
>      drivers/net/cxgbe/sge.c
> 
> And a PCap driver (drivers/net/pcap/rte_eth_pcap.c) specifically, does 
> not alter the field, so L3fwd application drops all packets.

The zero value is acceptable.
#define RTE_PTYPE_UNKNOWN                   0x00000000

Maybe a fix is required in the l3fwd example?
Or maybe it should be explicit that it works with only few drivers.

More generally, the packet type is not mandatory for drivers.
At a time we were talking about implementing a generic callback to
fill it. Or it can be filled in an application fallback with parsing.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-11-10 14:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-06 14:57 [dpdk-users] Why packet_type is zero? Arseniy Zaostrovnykh
2015-11-06 15:05 ` Arseniy Zaostrovnykh
2015-11-10 14:46   ` Arseniy Zaostrovnykh
2015-11-10 14:55     ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).