[NETVIRT-725] IPv6: Extra Route is failing Created: 12/Jun/17  Updated: 29/Jun/17  Resolved: 29/Jun/17

Status: Resolved
Project: netvirt
Component/s: General
Affects Version/s: Carbon
Fix Version/s: None

Type: Bug
Reporter: Valentina Krasnobaeva Assignee: Sridhar Gaddam
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: 8657

 Description   

in IPv6 use-case: extra-routes for a normal router is failing.

The FIB Entry has been created but after that it hasn't been translated into Table 21 flows.

Steps (openstack newton):

1. Create IPv6 subnet with GUA, create a router, add this subnet to router.
2. Spawn 2 neutron ports in this created IPv6 subnet with attributes:

--allowed-address ip_address=2001:db9:abcd:d::/64
--allowed-address ip_address=2001:db9:cafe:d::/64,

where:

2001:db9:abcd:d::/64
2001:db9:cafe:d::/64

are extraroutes

3. launch two VMs (VM1, VM2), attached to created neutron ports.

4. Put an extra-route with one of the VMs as the nexthop for that router using:

Openstack router-update <router-name> destination=extra-route,nexthop=VM1-ip

5. Ping the extra-route from VM2 and it will not work.



 Comments   
Comment by Valentina Krasnobaeva [ 12/Jun/17 ]

Error from karaf logs that leads to the problem:

2017-06-05 14:12:33,430 | INFO | eChangeHandler-0 | VpnInterfaceOpListener | 332 - org.opendaylight.netvirt.vpnmanager-impl - 0.4.1.SNAPSHOT | VpnInterfaceOpListener updated: original VpnInterface{getDpnId=119733771958416, getName=261e09e5-51db-49c6-b267-d415adc96a4a, getVpnInstanceName=342ef982-604a-430f-b48a-4f5be54271bc, isScheduledForRemove=false, augmentations={interface org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.Adjacencies=Adjacencies{getAdjacency=[Adjacency{getIpAddress=2001:db9:abcd:d::/64, getLabel=100016, getNextHopIpList=[2001:db8:0:2:f816:3eff:fe83:f07c], getVrfId=119733771958416, isPhysNetworkFunc=false, isPrimaryAdjacency=false, augmentations={}}, Adjacency{getIpAddress=2001:db8:0:2:f816:3eff:fe83:f07c/128, getLabel=100060, getMacAddress=fa:16:3e:83:f0:7c, getNextHopIpList=[10.29.14.194], getSubnetId=Uuid [_value=dd9c130e-24c1-4543-99af-69d2e470a8a6], getVrfId=342ef982-604a-430f-b48a-4f5be54271bc, isPhysNetworkFunc=false, isPrimaryAdjacency=true, augmentations={}}]}}} updated VpnInterface{getDpnId=119733771958416, getName=261e09e5-51db-49c6-b267-d415adc96a4a, getVpnInstanceName=342ef982-604a-430f-b48a-4f5be54271bc, isScheduledForRemove=false, augmentations={interface org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.Adjacencies=Adjacencies{getAdjacency=[Adjacency{getIpAddress=2001:db9:cafe:d::/64, getLabel=100063, getNextHopIpList=[2001:db8:0:2:f816:3eff:fe83:f07c], getVrfId=119733771958416, isPhysNetworkFunc=false, isPrimaryAdjacency=false, augmentations={}}, Adjacency{getIpAddress=2001:db9:abcd:d::/64, getLabel=100016, getNextHopIpList=[2001:db8:0:2:f816:3eff:fe83:f07c], getVrfId=119733771958416, isPhysNetworkFunc=false, isPrimaryAdjacency=false, augmentations={}}, Adjacency{getIpAddress=2001:db8:0:2:f816:3eff:fe83:f07c/128, getLabel=100060, getMacAddress=fa:16:3e:83:f0:7c, getNextHopIpList=[10.29.14.194], getSubnetId=Uuid [_value=dd9c130e-24c1-4543-99af-69d2e470a8a6], getVrfId=342ef982-604a-430f-b48a-4f5be54271bc, isPhysNetworkFunc=false, isPrimaryAdjacency=true, augmentations={}}]}}}

2017-06-05 14:12:33,432 | ERROR | eChangeHandler-5 | AsyncDataTreeChangeListenerBase | 291 - org.opendaylight.genius.mdsalutil-api - 0.2.1.SNAPSHOT | Thread terminated due to uncaught exception: AsyncDataTreeChangeListenerBase-DataTreeChangeHandler-5

java.lang.NullPointerException

at org.opendaylight.netvirt.fibmanager.VrfEntryListener.lambda$createLocalFibEntry$5(VrfEntryListener.java:747)[334:org.opendaylight.netvirt.fibmanager-impl:0.4.1.SNAPSHOT]

at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)[:1.8.0_121]

at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)[:1.8.0_121]

at org.opendaylight.netvirt.fibmanager.VrfEntryListener.createLocalFibEntry(VrfEntryListener.java:744)[334:org.opendaylight.netvirt.fibmanager-impl:0.4.1.SNAPSHOT]

at org.opendaylight.netvirt.fibmanager.VrfEntryListener.createFibEntries(VrfEntryListener.java:425)[334:org.opendaylight.netvirt.fibmanager-impl:0.4.1.SNAPSHOT]

at org.opendaylight.netvirt.fibmanager.VrfEntryListener.add(VrfEntryListener.java:232)[334:org.opendaylight.netvirt.fibmanager-impl:0.4.1.SNAPSHOT]

at org.opendaylight.netvirt.fibmanager.VrfEntryListener.add(VrfEntryListener.java:145)[334:org.opendaylight.netvirt.fibmanager-impl:0.4.1.SNAPSHOT]

at org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase$DataTreeChangeHandler.run(AsyncDataTreeChangeListenerBase.java:156)[291:org.opendaylight.genius.mdsalutil-api:0.2.1.SNAPSHOT]

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_121]

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_121]

at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]

Comment by Sridhar Gaddam [ 16/Jun/17 ]

Proposed the following fix: https://git.opendaylight.org/gerrit/#/c/59063/

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