When a logical switch (localnet) has lots of ports on a hypervisor,
I find that broadcast packets from one of the ports is only forwarded to
a subset of the other ports, and the kernel module shows the message -
"kernel: openvswitch: ovs-system: deferred action limit reached, drop
recirc action"
There appears to be a discussion of a related problem and a possible
patch here:
http://openvswitch.org/pipermail//discuss/2015-October/019168.html
http://openvswitch.org/pipermail//discuss/2015-October/019198.html
there is another related discussion here but it seems to have been
fixed,
http://openvswitch.org/pipermail/dev/2015-November/061840.html
but I am still seeing the problem
I appreciate any feedback on possible fix for this problem.
(I will try the fixes in above link).
Details (for reproduction):
1. Create 50 logical ports on a localnet logical switch and bind them
for i in {1..50};do ovn-nbctl lport-add
064d37d8-b3dd-45e6-81a3-15fc8d0a99a3 vif-${i}; done
for i in {1..50}; do sudo ip link add vif-${i} type veth peer name
vifpeer-${i}; done
for i in {1..50}; do sudo ip link set dev vif-${i} up; done
for i in {1..50}; do sudo ip link set dev vifpeer-${i} up; done
sudo ip addr add 10.10.10.1/16 dev vifpeer-1
2. Send a broadcast packet on one of the ports
sudo dhclient -v vifpeer-1 <<< this triggers a broadcast DHCP DISCOVER
message
3. I find that only about 10 of the 50 ports get the dhcp DISCOVER
broadcast message.
The problem appears is in this flow in table 33. It seems that only the
first 10 resubmits to table 34 in the following flow have really taken
effect,
cookie=0x0, duration=60631.984s, table=33, n_packets=118, n_bytes=11074,
idle_age=2205, hard_age=5826, priority=100,reg7=0xffff,metadata=0x2
actions=load:0x32->NXM_NX_REG5[],load:0x31->NXM_NX_REG7[],resubmit(,34),load:0x11->NXM_NX_REG5[],load:0x10->NXM_NX_REG7[],resubmit(,34),load:0x31->NXM_NX_REG5[],load:0x30->NXM_NX_REG7[],resubmit(,34),load:0x26->NXM_NX_REG5[],load:0x25->NXM_NX_REG7[],resubmit(,34),load:0x3->NXM_NX_REG5[],load:0x2->NXM_NX_REG7[],resubmit(,34),load:0xa->NXM_NX_REG5[],load:0x9->NXM_NX_REG7[],resubmit(,34),load:0xd->NXM_NX_REG5[],load:0xc->NXM_NX_REG7[],resubmit(,34),load:0x35->NXM_NX_REG5[],load:0x34->NXM_NX_REG7[],resubmit(,34),load:0x18->NXM_NX_REG5[],load:0x17->NXM_NX_REG7[],resubmit(,34),load:0x14->NXM_NX_REG5[],load:0x13->NXM_NX_REG7[],resubmit(,34),load:0x4->NXM_NX_REG5[],load:0x4->NXM_NX_REG7[],resubmit(,34),load:0x10->NXM_NX_REG5[],load:0xf->NXM_NX_REG7[],resubmit(,34),load:0x2b->NXM_NX_REG5[],load:0x2a->NXM_NX_REG7[],resubmit(,34),load:0x2d->NXM_NX_REG5[],load:0x2c->NXM_NX_REG7[],resubmit(,34),load:0x27->NXM_NX_REG5[],load:0x26->NXM_NX_REG7[],resubmit(,34),load:0xb->NXM_NX_REG5[],load:0x
a->NXM_N
X_REG7[],resubmit(,34),load:0x17->NXM_NX_REG5[],load:0x16->NXM_NX_REG7[],resubmit(,34),load:0x1f->NXM_NX_REG5[],load:0x1e->NXM_NX_REG7[],resubmit(,34),load:0x1b->NXM_NX_REG5[],load:0x1a->NXM_NX_REG7[],resubmit(,34),load:0x28->NXM_NX_REG5[],load:0x27->NXM_NX_REG7[],resubmit(,34),load:0x33->NXM_NX_REG5[],load:0x32->NXM_NX_REG7[],resubmit(,34),load:0x30->NXM_NX_REG5[],load:0x2f->NXM_NX_REG7[],resubmit(,34),load:0x5->NXM_NX_REG5[],load:0x5->NXM_NX_REG7[],resubmit(,34),load:0x34->NXM_NX_REG5[],load:0x33->NXM_NX_REG7[],resubmit(,34),load:0x15->NXM_NX_REG5[],load:0x14->NXM_NX_REG7[],resubmit(,34),load:0x8->NXM_NX_REG5[],load:0x7->NXM_NX_REG7[],resubmit(,34),load:0xc->NXM_NX_REG5[],load:0xb->NXM_NX_REG7[],resubmit(,34),load:0xe->NXM_NX_REG5[],load:0xd->NXM_NX_REG7[],resubmit(,34),load:0x1c->NXM_NX_REG5[],load:0x1b->NXM_NX_REG7[],resubmit(,34),load:0x1e->NXM_NX_REG5[],load:0x1d->NXM_NX_REG7[],resubmit(,34),load:0x12->NXM_NX_REG5[],load:0x11->NXM_NX_REG7[],resubmit(,34),load:0x9->NXM_N
X_REG5[]
,load:0x8->NXM_NX_REG7[],resubmit(,34),load:0x19->NXM_NX_REG5[],load:0x18->NXM_NX_REG7[],resubmit(,34),load:0x22->NXM_NX_REG5[],load:0x21->NXM_NX_REG7[],resubmit(,34),load:0x2a->NXM_NX_REG5[],load:0x29->NXM_NX_REG7[],resubmit(,34),load:0x13->NXM_NX_REG5[],load:0x12->NXM_NX_REG7[],resubmit(,34),load:0x1a->NXM_NX_REG5[],load:0x19->NXM_NX_REG7[],resubmit(,34),load:0x1d->NXM_NX_REG5[],load:0x1c->NXM_NX_REG7[],resubmit(,34),load:0x29->NXM_NX_REG5[],load:0x28->NXM_NX_REG7[],resubmit(,34),load:0x36->NXM_NX_REG5[],load:0x35->NXM_NX_REG7[],resubmit(,34),load:0x25->NXM_NX_REG5[],load:0x24->NXM_NX_REG7[],resubmit(,34),load:0x24->NXM_NX_REG5[],load:0x23->NXM_NX_REG7[],resubmit(,34),load:0x16->NXM_NX_REG5[],load:0x15->NXM_NX_REG7[],resubmit(,34),load:0x2c->NXM_NX_REG5[],load:0x2b->NXM_NX_REG7[],resubmit(,34),load:0x2e->NXM_NX_REG5[],load:0x2d->NXM_NX_REG7[],resubmit(,34),load:0xf->NXM_NX_REG5[],load:0xe->NXM_NX_REG7[],resubmit(,34),load:0x2->NXM_NX_REG5[],load:0x1->NXM_NX_REG7[],resubmit(
,34),loa
d:0x20->NXM_NX_REG5[],load:0x1f->NXM_NX_REG7[],resubmit(,34),load:0x7->NXM_NX_REG5[],load:0x6->NXM_NX_REG7[],resubmit(,34),load:0x23->NXM_NX_REG5[],load:0x22->NXM_NX_REG7[],resubmit(,34),load:0x21->NXM_NX_REG5[],load:0x20->NXM_NX_REG7[],resubmit(,34),load:0x37->NXM_NX_REG5[],load:0x36->NXM_NX_REG7[],resubmit(,34),load:0x2f->NXM_NX_REG5[],load:0x2e->NXM_NX_REG7[],resubmit(,34),load:0xffff->NXM_NX_REG7[]
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev