[OVSDB-243] distributed arp in old l3 for ovsdb is not installing rules when it should Created: 04/Jan/16  Updated: 30/Oct/17  Resolved: 25/Jan/16

Status: Resolved
Project: ovsdb
Component/s: openstack.net-virt
Affects Version/s: unspecified
Fix Version/s: None

Type: Bug
Reporter: Flavio Fernandes Assignee: Flavio Fernandes
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 4874

 Description   

As part of fixing OVSDB-235 logic was added to ensure distributed arp entries
are only added when needed.

To determine if distributed arp rule is needed, codepath uses

TenantNetworkManagerImpl::isTenantNetworkPresentInNode()

and that has a race bug. ouch!



 Comments   
Comment by Flavio Fernandes [ 04/Jan/16 ]

Gerrits:

https://git.opendaylight.org/gerrit/#/c/32096
https://git.opendaylight.org/gerrit/#/c/32097

Comment by Hari Prasidh [ 23/Jan/16 ]

Flavio,
I tested with Beryllium patch.
ARP flows are not formed properly in control node itself. If we created new instance in openstack then Arp entries are over written with new IP, at last got only 1 Arp entry.

PFB dump flows for Control node.

Controle Node:

10.0.0.2 (DHCP IP) for tenant1

[stack@control devstack]$ sudo ovs-ofctl -O OpenFlow13 dump-flows br-int
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0x0, duration=5635.959s, table=0, n_packets=1026, n_bytes=112210, priority=0 actions=goto_table:20
cookie=0x0, duration=24.448s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x3fb,arp_tpa=10.0.0.2,arp_op=1 actions=move:NXM_OF_ETH_SRC[]>NXM_OF_ETH_DST[],set_field:fa:16:3e:8d:be:30>eth_src,load:0x2->NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]>NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]>NXM_OF_ARP_TPA[],load:0xfa163e8dbe30->NXM_NX_ARP_SHA[],load:0xa000002->NXM_OF_ARP_SPA[],IN_PORT
cookie=0x0, duration=5635.918s, table=20, n_packets=1026, n_bytes=112210, priority=0 actions=goto_table:30
cookie=0x0, duration=5635.918s, table=50, n_packets=0, n_bytes=0, priority=0 actions=goto_table:60
cookie=0x0, duration=1701.609s, table=110, n_packets=0, n_bytes=0, priority=16384,reg0=0x2,tun_id=0x429,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=output:1

20.0.0.2(DHCP IP) for tenant2

[stack@control devstack]$ sudo ovs-ofctl -O OpenFlow13 dump-flows br-int
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0x0, duration=5665.144s, table=0, n_packets=1044, n_bytes=114196, priority=0 actions=goto_table:20
cookie=0x0, duration=8.070s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x43e,arp_tpa=20.0.0.2,arp_op=1 actions=move:NXM_OF_ETH_SRC[]>NXM_OF_ETH_DST[],set_field:fa:16:3e:a3:84:7e>eth_src,load:0x2->NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]>NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]>NXM_OF_ARP_TPA[],load:0xfa163ea3847e->NXM_NX_ARP_SHA[],load:0x14000002->NXM_OF_ARP_SPA[],IN_PORT
cookie=0x0, duration=5665.103s, table=20, n_packets=1044, n_bytes=114196, priority=0 actions=goto_table:30
cookie=0x0, duration=5665.103s, table=50, n_packets=0, n_bytes=0, priority=0 actions=goto_table:60
cookie=0x0, duration=1730.794s, table=110, n_packets=0, n_bytes=0, priority=16384,reg0=0x2,tun_id=0x429,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=output:1

10.0.0.3 (VM1)

[stack@control devstack]$ sudo ovs-ofctl -O OpenFlow13 dump-flows br-int
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0x0, duration=6751.917s, table=0, n_packets=1695, n_bytes=186023, priority=0 actions=goto_table:20
cookie=0x0, duration=22.812s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x3fb,arp_tpa=10.0.0.3,arp_op=1 actions=move:NXM_OF_ETH_SRC[]>NXM_OF_ETH_DST[],set_field:fa:16:3e:fa:f9:84>eth_src,load:0x2->NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]>NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]>NXM_OF_ARP_TPA[],load:0xfa163efaf984->NXM_NX_ARP_SHA[],load:0xa000003->NXM_OF_ARP_SPA[],IN_PORT
cookie=0x0, duration=6751.876s, table=20, n_packets=1695, n_bytes=186023, priority=0 actions=goto_table:30
cookie=0x0, duration=6751.877s, table=50, n_packets=0, n_bytes=0, priority=0 actions=goto_table:60
cookie=0x0, duration=2817.568s, table=110, n_packets=0, n_bytes=0, priority=16384,reg0=0x2,tun_id=0x429,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=output:1

20.0.0.3 (VM2)

[stack@control devstack]$ sudo ovs-ofctl -O OpenFlow13 dump-flows br-int
OFPST_FLOW reply (OF1.3) (xid=0x2):
cookie=0x0, duration=7110.033s, table=0, n_packets=1920, n_bytes=211310, priority=0 actions=goto_table:20
cookie=0x0, duration=27.891s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x43e,arp_tpa=20.0.0.3,arp_op=1 actions=move:NXM_OF_ETH_SRC[]>NXM_OF_ETH_DST[],set_field:fa:16:3e:64:e0:2b>eth_src,load:0x2->NXM_OF_ARP_OP[],move:NXM_NX_ARP_SHA[]>NXM_NX_ARP_THA[],move:NXM_OF_ARP_SPA[]>NXM_OF_ARP_TPA[],load:0xfa163e64e02b->NXM_NX_ARP_SHA[],load:0x14000003->NXM_OF_ARP_SPA[],IN_PORT
cookie=0x0, duration=7109.992s, table=20, n_packets=1920, n_bytes=211310, priority=0 actions=goto_table:30
cookie=0x0, duration=7109.992s, table=50, n_packets=0, n_bytes=0, priority=0 actions=goto_table:60
cookie=0x0, duration=3175.683s, table=110, n_packets=0, n_bytes=0, priority=16384,reg0=0x2,tun_id=0x429,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=output:1

Comment by Hari Prasidh [ 25/Jan/16 ]

Flavio,

I tested with latest code. Now Arp entries are working as expected.

Comment by Flavio Fernandes [ 25/Jan/16 ]

(In reply to hari prasad from comment #3)
> Flavio,
>
> I tested with latest code. Now Arp entries are working as expected.

great, thanks!

Generated at Wed Feb 07 20:35:52 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.