This group is locked. No changes can be made to the group while it is locked.
Re: how to set environment to run xdp_redirect_map.py example?
Gary Lin
On Wed, May 29, 2019 at 12:04:53AM -0700, forrest0579@... wrote:
As I said, xdp_redirect_map.py is a demo script, so it doesn't care if
the packets are dropped in Machine B or not. In the real world, users
of XDP_REDIRECT usually modify the IP address or prepend a header
with bpf_xdp_adjust_head(), so that those packets can be passed further.
have to do the calculation.
Cheers,
Gary Lin
On Tue, May 28, 2019 at 09:20 PM, Gary Lin wrote:Sorry, my memory betrayed me. Those two scripts swap the mac, not IP.These two examples swap mac instead of IP address.
On Tue, May 28, 2019 at 07:32:33PM -0700, forrest0579@... wrote:Hi all,The script does nothing really meaningful but demostrates how to use
What kind of network topology should I set up to make xdp_redirect_map.py
runnable and what user-case this example represent for?
XDP_REDIRECT.
It redirects all traffic from one network interface to another, so you
need a machine with at least two XDP-enabled network interfaces. When you
send a packet from eth0 of Machine B to eth0 of Machine A, the script
swaps the src IP and dst IP of the incoming packets and sends them out
through eth1 of Machine A, so the packets will flow like this:
(Machine A) (Machine B)
[ eth0 ]<------[ eth0 ]
| ^
v |
[ eth1 ] ---------+
The script also counts the number of packet processed per second as a
rough performance measurement for XDP_REDIRECT, so you can generate a
huge volume of traffic with the programs like trafgen in Machine B to
do the test.
Cheers,
Gary LinPS: I have the same question about xdp_macswap_count.py too
Thanks for helping me!
Forrest
And as an effect with the given topology, the egress package from MachineA-eth1 has dst mac of MachineB-eth0 and src mac of MachineA-eth0, dst IP of MachineA and src IP of MachineB. Assume that due to the dst mac, the package finally delivered back to MachineB, but the dst IP does not match the IP in MachineB. I have no idea in which kind of topology the package could be consumed.
As I said, xdp_redirect_map.py is a demo script, so it doesn't care if
the packets are dropped in Machine B or not. In the real world, users
of XDP_REDIRECT usually modify the IP address or prepend a header
with bpf_xdp_adjust_head(), so that those packets can be passed further.
Another question, after swap mac, shouldn't we re-calculate the l2 csum? or if I modify that field like src/dst IP/Port, how can I re-calculate these csum? Does BPF_FUNC_csum_diff helper function work for this?AFAIK, the frame checksum is calculated by the network card, so we don't
have to do the calculation.
Cheers,
Gary Lin