No egressing packet
Hi all,
I am new to dpdk. I am running a single forwarding program based on dpdk 2.1.0. The program runs on a VM, binding on two interfaces. All it's doing is to forward packets from one interface to another. All ingressing packets are fine but there seems no egressing packets. I used rte_eth_add_tx_callback to register a tx callback. The callback is able to print the right egress packet but the destination is just not receiving it (via tcpdump). Does anybody have the similar experience? Any solution or hints will be great.
Thanks,
Yiwen
2015-09-15 17:10, Wu, Yiwen:
Quoted 10 lines
Hi all,
I am new to dpdk. I am running a single forwarding program based on dpdk 2.1.0. The program runs on a VM, binding on two interfaces. All it's doing is to forward packets from one interface to another. All ingressing packets are fine but there seems no egressing packets. I used
rte_eth_add_tx_callbackto register a tx callback. The callback is able to print the right egress packet but the destination is just not receiving it (via tcpdump). Does anybody have the similar experience? Any solution or hints will be great.
You need to call rte_eth_tx_burst() instead of rte_eth_add_tx_callback(). For more information, please check the guide:
http://dpdk.org/doc/guides/prog_guide/poll_mode_drv.html#poll-mode-driver
You can also check this basic example:
http://dpdk.org/browse/dpdk/tree/examples/skeleton/basicfwd.c
Thomas,
I am using rte_eth_tx_burst to send packets. I also use rte_eth_add_tx_callback to register a callback to figure out what has been sent.
Thanks,
Yiwen
Quoted 16 lines · Thomas Monjalon
2015-09-15 17:10, Wu, Yiwen:
Quoted 10 lines
Hi all,
I am new to dpdk. I am running a single forwarding program based on dpdk 2.1.0. The program runs on a VM, binding on two interfaces. All it's doing is to forward packets from one interface to another. All ingressing packets are fine but there seems no egressing packets. I used
rte_eth_add_tx_callbackto register a tx callback. The callback is able to print the right egress packet but the destination is just not receiving it (via tcpdump). Does anybody have the similar experience? Any solution or hints will be great.You need to call
rte_eth_tx_burst()instead ofrte_eth_add_tx_callback(). For more information, please check the guide:
http://dpdk.org/doc/guides/prog_guide/poll_mode_drv.html#poll-mode-driver
You can also check this basic example:
http://dpdk.org/browse/dpdk/tree/examples/skeleton/basicfwd.c
Quoted 9 lines
-----Original Message-----
From: dev [mailto:[email protected]] On Behalf Of Wu, Yiwen
Sent: Wednesday, September 16, 2015 2:31 PM
To: Thomas Monjalon
Cc: [email protected]
Subject: Re: [dpdk-dev] No egressing packet
Quoted 6 lines
Thomas,
I am using
rte_eth_tx_burstto send packets. I also userte_eth_add_tx_callbackto register a callback to figure out what has been sent.
I would suggest checking that the source mac address is correct for all outgoing frames as packets with an incorrect source are likely to be blocked due to security (spoofing) concerns.
/Bruce
Quoted 24 lines
Thanks,
Yiwen
Quoted 10 lines · Thomas Monjalon
2015-09-15 17:10, Wu, Yiwen:
Quoted 9 lines
Hi all,
I am new to dpdk. I am running a single forwarding program based on dpdk 2.1.0. The program runs on a VM, binding on two interfaces. All it's doing is to forward packets from one interface to another. All ingressing packets are fine but there seems no egressing packets. I used
rte_eth_add_tx_callbackto register a tx callback. The callback is able to print the right egress packet but the destination is just not receiving it (via tcpdump). Does anybody have the similarexperience?
Quoted 2 lines
Quoted 1 line
Any solution or hints will be great.
You need to call
rte_eth_tx_burst()instead of
rte_eth_add_tx_callback().Quoted 5 lines
For more information, please check the guide:
http://dpdk.org/doc/guides/prog_guide/poll_mode_drv.html#poll-mode-dri
ver You can also check this basic example:
http://dpdk.org/browse/dpdk/tree/examples/skeleton/basicfwd.c