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

Reply via email to