Hello,
thanks for your advices but i'm still stuck.
At the beginning, everything is OK :
$ sudo ovs-dpctl dump-flows sw0
in_port(3),eth(src=08:00:27:9b:24:12,dst=08:00:27:77:b1:55),eth_type(0x0800),ipv4(src=10.0.0.1,dst=10.0.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=0,code=0),
packets:119, bytes:11662, used:0.362s, actions:1
in_port(1),eth(src=08:00:27:77:b1:55,dst=08:00:27:9b:24:12),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0),
packets:121, bytes:11858, used:0.362s, actions:3
$ sudo ovs-dpctl dump-flows sw0
in_port(3),eth(src=08:00:27:9b:24:12,dst=08:00:27:77:b1:55),eth_type(0x0800),ipv4(src=10.0.0.1,dst=10.0.0.2,proto=1,tos=0,ttl=128,frag=no),icmp(type=0,code=0),
packets:121, bytes:11858, used:0.559s, actions:1
in_port(1),eth(src=08:00:27:77:b1:55,dst=08:00:27:9b:24:12),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0),
packets:123, bytes:12054, used:0.560s, actions:3
When I put down one of the bonded tun interface on the host :
$ sudo ifconfig sw0p0 down
$ sudo ovs-dpctl dump-flows sw0
in_port(1),eth(src=08:00:27:77:b1:55,dst=08:00:27:9b:24:12),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0),
packets:6, bytes:588, used:0.966s, actions:drop
$ sudo ovs-dpctl dump-flows sw0
in_port(1),eth(src=08:00:27:77:b1:55,dst=08:00:27:9b:24:12),eth_type(0x0800),ipv4(src=10.0.0.2,dst=10.0.0.1,proto=1,tos=0,ttl=64,frag=no),icmp(type=8,code=0),
packets:8, bytes:784, used:0.492s, actions:drop
The other command teaches me nothing :
$ sudo ovs-appctl ofproto/trace sw0
'in_port(1),eth(src=08:00:27:77:b1:55,dst=ff:ff:ff:ff:ff:ff),eth_type(0x0806),arp(sip=10.0.0.2,tip=10.0.0.1,op=1,sha=08:00:27:77:b1:55,tha=00:00:00:00:00:00)'
Flow: priority0:tunnel0:in_port0001:tci(0)
mac08:00:27:77:b1:55->ff:ff:ff:ff:ff:ff type0806 proto1 tos0 ttl0
ip10.0.0.2->10.0.0.1 arp_ha08:00:27:77:b1:55->00:00:00:00:00:00
Rule: table=0 cookie=0 priority=0
OpenFlow actions=NORMAL
Final flow: unchanged
Datapath actions: 0
$ sudo ovs-appctl ofproto/trace sw0
'in_port(3),eth(src=08:00:27:9b:24:12,dst=08:00:27:77:b1:55),eth_type(0x0800),ipv4(src=10.0.0.1,dst=10.0.0.2,proto=1,tos=0,ttl=128,frag=no)'
Flow: priority0:tunnel0:in_port0003:tci(0)
mac08:00:27:9b:24:12->08:00:27:77:b1:55 type0800 proto1 tos0 ttl128
ip10.0.0.1->10.0.0.2
Rule: table=0 cookie=0 priority=0
OpenFlow actions=NORMAL
Final flow: unchanged
Datapath actions: drop
Le 30/07/2012 23:06, Ethan Jackson a écrit :
Well, based on the output you've given, the bond looks healthy.
You'll have to figure out where precisely the packets are getting
dropped. Typically I do this by using ovs-dpctl dump-flows to figure
out what the datapath is a given packet. If you're still stuck, you
may want to check out the ovs-appctl ofproto/trace command. You can
give it an exact match datapath flow, and it will tell you in detail
how userspace came to its forwarding decision.
Ethan
On Fri, Jul 27, 2012 at 12:28 AM, Pacôme MASSOL <pac...@pmassol.net> wrote:
Le 26/07/2012 23:21, Ethan Jackson a écrit :
Please keep replies on the list.
Ooops sorry !
Thank you for your help. What I tried since your last message :
This my startup configuration (VMs halted) :
-----
killall ovsdb-server
killall ovs-vswitchd
for tap in `seq 0 3`; do ip tuntap del mode tap sw0p$tap; done;
rmmod openvswitch
modprobe openvswitch
for tap in `seq 0 3`; do ip tuntap add mode tap sw0p$tap; done;
for tap in `seq 0 3`; do ip link set sw0p$tap up; done;
rm -f /etc/openvswitch/conf.db
ovsdb-tool create /etc/openvswitch/conf.db
/usr/share/openvswitch/vswitch.ovsschema
mkdir /var/run/openvswitch
ovsdb-server --remote=punix:/var/run/openvswitch/db.sock --pidfile --detach
ovs-vsctl --no-wait init
ovs-vswitchd --pidfile --detach
ovs-vsctl add-br sw0
ovs-vsctl add-port sw0 sw0p2
ovs-vsctl add-bond sw0 bond0 sw0p0 sw0p1
ovs-vsctl set port bond0 bond_mode=balance-tcp
ovs-vsctl set port bond0 lacp=active
ovs-vsctl set port bond0 other_config:lacp-time=fast
----
Then I launch the 2 VMS (Windows 10.0.0.1 with LACP Intel proprietary driver
configured with 802.3ad and a simple Linux Debian guest 10.0.0.2)
When the Windows guest is on, I get on the host :
# ovs-appctl bond/show bond0
bond_mode: balance-tcp
bond-hash-algorithm: balance-tcp
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
next rebalance: 5899 ms
lacp_negotiated: true
slave sw0p1: enabled
active slave
may_enable: true
slave sw0p0: enabled
may_enable: true
From now, it is really confusing. From the Linux vm, I ping the Win VM, the
first 8 pings are OK and then it stops (without any intervention).
What Wireshark says under Windows :
- bonded NIC : ICMP requests from Linux and Win ARP requests
- first NIC : only Win ARP requests (+LACP announces)
- second NIC : only ICMP requests from Linux (+LACP announces)
What tcpdump says under Linux :
- Win ARP Requests
- Linux ARP Replies
- ICMP Requests
Linux ARP replies never reach the Win VM.
Bond state on the host :
# ovs-appctl bond/show bond0
bond_mode: balance-tcp
bond-hash-algorithm: balance-tcp
bond-hash-basis: 0
updelay: 0 ms
downdelay: 0 ms
next rebalance: 8452 ms
lacp_negotiated: true
slave sw0p1: enabled
active slave
may_enable: true
hash 237: 0 kB load
slave sw0p0: enabled
may_enable: true
hash 80: 1 kB load
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss