Hi,
I found that sometime userspace vxlan can not work happily.
1. first data packet loss
when tunnel neigh cache is empty, then the first data packet triggered
sending ARP packet to peer VTEP, and the data packet dropped,
tunnel neigh cache added this entry when receive ARP reply packet.
err = tnl_neigh_lookup(out_dev->xbridge->name, &d_ip6, &dmac);
if (err) {
xlate_report(ctx, OFT_DETAIL,
"neighbor cache miss for %s on bridge %s, "
"sending %s request",
buf_dip6, out_dev->xbridge->name, d_ip ? "ARP" : "ND");
if (d_ip) {
tnl_send_arp_request(ctx, out_dev, smac, s_ip, d_ip);
} else {
tnl_send_nd_request(ctx, out_dev, smac, &s_ip6, &d_ip6);
}
return err;
}
2. connection lost when peer VTEP mac changed
when VTEP mac is already in tunnel neigh cache, exp:
10.182.6.81 fa:eb:26:c3:16:a5 br-phy
so when data packet come in, it will use this mac for encaping outer VXLAN
header.
but VTEP 10.182.6.81 mac changed from fa:eb:26:c3:16:a5 to
24:eb:26:c3:16:a5 because of NIC changed.
data packet continue sending with the old mac fa:eb:26:c3:16:a5, but the
peer VTEP will not accept these packets because of mac not match.
the wrong tunnel neigh entry aging until the data packet stop sending.
if (ovs_native_tunneling_is_on(ctx->xbridge->ofproto)) {
tnl_neigh_snoop(flow, wc, ctx->xbridge->name);
}
3. is there anybody has working for these problems?
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev