[OVSDB-246] Not getting Arp flows if there is no Router Created: 07/Jan/16  Updated: 30/Oct/17  Resolved: 02/Feb/16

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

Type: Bug
Reporter: Hari Prasidh Assignee: Hari Prasidh
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: 4892

 Description   

Am analysing ARP responder feature in ODL using openstack.

Used ODL lithium build + openstack and have one control and 2 compute nodes

observation-1:

If router created then am able to see the ARP flows and ArpResponder service is invoked.

APR rules are created in all nodes

cookie=0x0, duration=7511.807s, table=20, n_packets=1, n_bytes=42, priority=1024,arp,tun_id=0x41d,arp_tpa=10.0.0.1 actions=move:NXM_OF_ETH_SRC[]>NXM_OF_ETH_DST[],set_field:fa:16:3e:81:6e:5e>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:0xfa163e816e5e->NXM_NX_ARP_SHA[],load:0xa000001->NXM_OF_ARP_SPA[],IN_PORT
cookie=0x0, duration=7511.721s, table=20, n_packets=1, n_bytes=42, priority=1024,arp,tun_id=0x41d,arp_tpa=10.0.0.2 actions=move:NXM_OF_ETH_SRC[]>NXM_OF_ETH_DST[],set_field:fa:16:3e:04:3c:6f>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:0xfa163e043c6f->NXM_NX_ARP_SHA[],load:0xa000002->NXM_OF_ARP_SPA[],IN_PORT
cookie=0x0, duration=7495.663s, table=20, n_packets=1, n_bytes=42, priority=1024,arp,tun_id=0x447,arp_tpa=20.0.0.1 actions=move:NXM_OF_ETH_SRC[]>NXM_OF_ETH_DST[],set_field:fa:16:3e:76:6c:11>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:0xfa163e766c11->NXM_NX_ARP_SHA[],load:0x14000001->NXM_OF_ARP_SPA[],IN_PORT
cookie=0x0, duration=7495.570s, table=20, n_packets=2, n_bytes=84, priority=1024,arp,tun_id=0x447,arp_tpa=20.0.0.2 actions=move:NXM_OF_ETH_SRC[]>NXM_OF_ETH_DST[],set_field:fa:16:3e:24:ae:40>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:0xfa163e24ae40->NXM_NX_ARP_SHA[],load:0x14000002->NXM_OF_ARP_SPA[],IN_PORT
cookie=0x0, duration=1516.969s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x41d,arp_tpa=10.0.0.3 actions=move:NXM_OF_ETH_SRC[]>NXM_OF_ETH_DST[],set_field:fa:16:3e:36:85:de>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:0xfa163e3685de->NXM_NX_ARP_SHA[],load:0xa000003->NXM_OF_ARP_SPA[],IN_PORT
cookie=0x0, duration=1447.612s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x447,arp_tpa=20.0.0.3 actions=move:NXM_OF_ETH_SRC[]>NXM_OF_ETH_DST[],set_field:fa:16:3e:66:71:de>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:0xfa163e6671de->NXM_NX_ARP_SHA[],load:0x14000003->NXM_OF_ARP_SPA[],IN_PORT
cookie=0x0, duration=500.699s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x41d,arp_tpa=10.0.0.4 actions=move:NXM_OF_ETH_SRC[]>NXM_OF_ETH_DST[],set_field:fa:16:3e:6d:ca:c9>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:0xfa163e6dcac9->NXM_NX_ARP_SHA[],load:0xa000004->NXM_OF_ARP_SPA[],IN_PORT
cookie=0x0, duration=464.514s, table=20, n_packets=0, n_bytes=0, priority=1024,arp,tun_id=0x447,arp_tpa=20.0.0.4 actions=move:NXM_OF_ETH_SRC[]>NXM_OF_ETH_DST[],set_field:fa:16:3e:ae:f8:1c>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:0xfa163eaef81c->NXM_NX_ARP_SHA[],load:0x14000004->NXM_OF_ARP_SPA[],IN_PORT

Observation-2:
If there is no router then am not able to see ARP flows. So ArpResponder service is not enabled.

control(control node):
cookie=0x0, duration=60515.540s, table=0, n_packets=33981, n_bytes=3768795, dl_type=0x88cc actions=CONTROLLER:65535
cookie=0x0, duration=59205.978s, table=0, n_packets=129, n_bytes=16092, in_port=1,dl_src=fa:16:3e:03:17:44 actions=set_field:0x431->tun_id,load:0x1->NXM_NX_REG0[],goto_table:20
cookie=0x0, duration=941.512s, table=0, n_packets=8, n_bytes=648, in_port=7,dl_src=fa:16:3e:0b:cd:c4 actions=set_field:0x3f9->tun_id,load:0x1->NXM_NX_REG0[],goto_table:20
cookie=0x0, duration=941.456s, table=0, n_packets=0, n_bytes=0, tun_id=0x3f9,in_port=3 actions=load:0x2->NXM_NX_REG0[],goto_table:20
cookie=0x0, duration=941.440s, table=0, n_packets=0, n_bytes=0, tun_id=0x3f9,in_port=6 actions=load:0x2->NXM_NX_REG0[],goto_table:20
cookie=0x0, duration=59205.946s, table=0, n_packets=0, n_bytes=0, priority=8192,in_port=1 actions=drop
cookie=0x0, duration=941.489s, table=0, n_packets=0, n_bytes=0, priority=8192,in_port=7 actions=drop
cookie=0x0, duration=60515.540s, table=0, n_packets=0, n_bytes=0, priority=0 actions=goto_table:20
cookie=0x0, duration=60515.529s, table=20, n_packets=338, n_bytes=38324, priority=0 actions=goto_table:30
cookie=0x0, duration=60515.511s, table=30, n_packets=338, n_bytes=38324, priority=0 actions=goto_table:40
cookie=0x0, duration=59206.017s, table=40, n_packets=23, n_bytes=7640, priority=61012,udp,tp_src=68,tp_dst=67 actions=goto_table:50
cookie=0x0, duration=60515.502s, table=40, n_packets=315, n_bytes=30684, priority=0 actions=goto_table:50
cookie=0x0, duration=60515.492s, table=50, n_packets=338, n_bytes=38324, priority=0 actions=goto_table:60
cookie=0x0, duration=60515.482s, table=60, n_packets=338, n_bytes=38324, priority=0 actions=goto_table:70
cookie=0x0, duration=60515.475s, table=70, n_packets=338, n_bytes=38324, priority=0 actions=goto_table:80
cookie=0x0, duration=60515.446s, table=80, n_packets=338, n_bytes=38324, priority=0 actions=goto_table:90
cookie=0x0, duration=60515.392s, table=90, n_packets=338, n_bytes=38324, priority=0 actions=goto_table:100
cookie=0x0, duration=60515.383s, table=100, n_packets=338, n_bytes=38324, priority=0 actions=goto_table:110
cookie=0x0, duration=59205.918s, table=110, n_packets=93, n_bytes=9396, tun_id=0x431,dl_dst=fa:16:3e:03:17:44 actions=output:1
cookie=0x0, duration=941.480s, table=110, n_packets=0, n_bytes=0, tun_id=0x3f9,dl_dst=fa:16:3e:0b:cd:c4 actions=output:7
cookie=0x0, duration=59205.906s, table=110, n_packets=51, n_bytes=6156, priority=16384,reg0=0x2,tun_id=0x431,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=output:1
cookie=0x0, duration=59205.897s, table=110, n_packets=36, n_bytes=4182, priority=16383,reg0=0x1,tun_id=0x431,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=output:1
cookie=0x0, duration=941.470s, table=110, n_packets=0, n_bytes=0, priority=16384,reg0=0x2,tun_id=0x3f9,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=output:7
cookie=0x0, duration=941.470s, table=110, n_packets=8, n_bytes=648, priority=16383,reg0=0x1,tun_id=0x3f9,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00 actions=output:7,output:3,output:6
cookie=0x0, duration=941.463s, table=110, n_packets=0, n_bytes=0, priority=8192,tun_id=0x3f9 actions=drop
cookie=0x0, duration=60515.372s, table=110, n_packets=1, n_bytes=90, priority=0 actions=drop



 Comments   
Comment by Sam Hague [ 19/Jan/16 ]

Flavio,

is this bug related to the case you mentioned today where arp responder is tied to L3?

Thanks, Sam

Comment by Flavio Fernandes [ 19/Jan/16 ]

(In reply to Sam Hague from comment #1)
> Flavio,
>
> is this bug related to the case you mentioned today where arp responder is
> tied to L3?
>
> Thanks, Sam

yup, that is it!

Comment by Sam Hague [ 26/Jan/16 ]

https://git.opendaylight.org/gerrit/#/c/33522/

Comment by Sam Hague [ 31/Jan/16 ]

From our understanding In router scenario whenever router created using openstack, netvirt south bound handler will receive interface update event. ARP responder will program the arp rules for the router interface event through distributed arp service class.
(openstack àrouter create àsouthbound handleràprocess event àprocess interface updateàARP handleinterface eventàprogram ARP)

In normal L2 scenario whenever tenant network created using openstack, netvirt will receive neutron port add event distributed arp service class use this neutron port details to program arp rules for the DHCP IP. Whenever VM instance created using openstack, netvirt will receive neutron port event distributed arp service class use this neutron port details to program arp rules for particular VM IP.

(openstackàVM instance à port handleràprocess eventà do neutronport(ADD/UPDATE/DELETE) à handle port àprogram ARP)

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