Re: Exception during netvirt CSIT - Blocking Aluminium
Hi,
I have opened the below JIRA.
https://jira.opendaylight.org/browse/NETVIRT-1671
Thanks,
Srinivas
+91-9243478719
Sent: 08 June 2020 09:26
To: 'karthikeyan.k@...' <karthikeyan.k@...>; 'Nishchya Gupta' <nishchyag@...>; 'Somashekar Byrappa' <somashekar.b@...>
Cc: 'P S Ravikanth' <ravikanth.ps@...>; 'Chetan Arakere Gowdru' <chetan.arakere@...>; 'Dilliraj Kuppusamy' <dilliraj.k@...>; 'Dheenadayalan B' <dheenadayalan.b@...>
Subject: RE: Exception during netvirt CSIT - Blocking Aluminium
Hi Karthikeyan,
The jobs are still failing with below exceptions: (This is still blocking Aluminium)
Karaf logs:
| Job still failed on final retry: JobEntry{key='bc.group.update.376b8a1f-a6a4-4872-8dc1-5303b57267ed', jobId='J377', queueId='Q274', mainWorker=org.opendaylight.netvirt.elan.l2gw.jobs.BcGroupUpdateJob@62da31a7, rollbackWorker=null, retryCount=5/5, futures=[com.google.common.util.concurrent.ImmediateFuture$ImmediateFailedFuture@91b9f64[status=FAILURE, cause=[java.lang.IllegalArgumentException: Multiple entries with same key: BucketKey{_bucketId=BucketId{_value=1}}=Bucket{_action={ActionKey{_order=0}=Action{_action=NxActionRegLoadNodesNodeTableFlowApplyActionsCase{_nxRegLoad=NxRegLoad{_dst=Dst{_dstChoice=DstNxRegCase{_nxReg=interface org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6, augmentation=[]}, _end=31, _start=0, augmentation=[]}, _value=3328, augmentation=[]}, augmentation=[]}, _order=0, augmentation=[]}, ActionKey{_order=1}=Action{_action=NxActionResubmitRpcAddGroupCase{_nxResubmit=NxResubmit{_table=220, augmentation=[]}, augmentation=[]}, _order=1, augmentation=[]}}, _bucketId=BucketId{_value=1}, _watchGroup=4294967295, _watchPort=4294967295, _weight=0, augmentation=[]} and BucketKey{_bucketId=BucketId{_value=1}}=Bucket{_action={ActionKey{_order=0}=Action{getAction=NxActionRegLoadNodesNodeGroupBucketsBucketActionsCase{getNxRegLoad=NxRegLoad{getDst=Dst{getDstChoice=DstNxRegCase{getNxReg=interface org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6, augmentation=[]}, getEnd=31, getStart=0, augmentation=[]}, getValue=3328, augmentation=[]}, augmentation=[]}, getOrder=0, augmentation=[]}, ActionKey{_order=1}=Action{getAction=NxActionResubmitNodesNodeGroupBucketsBucketActionsCase{getNxResubmit=NxResubmit{getInPort=65528, getTable=220, augmentation=[]}, augmentation=[]}, getOrder=1, augmentation=[]}}, _bucketId=BucketId{_value=1}, _watchGroup=4294967295, _watchPort=4294967295, _weight=0, augmentation=[]}. To index multiple values under a key, use Multimaps.index.]]]}
java.lang.IllegalArgumentException: Multiple entries with same key: BucketKey{_bucketId=BucketId{_value=1}}=Bucket{_action={ActionKey{_order=0}=Action{_action=NxActionRegLoadNodesNodeTableFlowApplyActionsCase{_nxRegLoad=NxRegLoad{_dst=Dst{_dstChoice=DstNxRegCase{_nxReg=interface org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6, augmentation=[]}, _end=31, _start=0, augmentation=[]}, _value=3328, augmentation=[]}, augmentation=[]}, _order=0, augmentation=[]}, ActionKey{_order=1}=Action{_action=NxActionResubmitRpcAddGroupCase{_nxResubmit=NxResubmit{_table=220, augmentation=[]}, augmentation=[]}, _order=1, augmentation=[]}}, _bucketId=BucketId{_value=1}, _watchGroup=4294967295, _watchPort=4294967295, _weight=0, augmentation=[]} and BucketKey{_bucketId=BucketId{_value=1}}=Bucket{_action={ActionKey{_order=0}=Action{getAction=NxActionRegLoadNodesNodeGroupBucketsBucketActionsCase{getNxRegLoad=NxRegLoad{getDst=Dst{getDstChoice=DstNxRegCase{getNxReg=interface org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6, augmentation=[]}, getEnd=31, getStart=0, augmentation=[]}, getValue=3328, augmentation=[]}, augmentation=[]}, getOrder=0, augmentation=[]}, ActionKey{_order=1}=Action{getAction=NxActionResubmitNodesNodeGroupBucketsBucketActionsCase{getNxResubmit=NxResubmit{getInPort=65528, getTable=220, augmentation=[]}, augmentation=[]}, getOrder=1, augmentation=[]}}, _bucketId=BucketId{_value=1}, _watchGroup=4294967295, _watchPort=4294967295, _weight=0, augmentation=[]}. To index multiple values under a key, use Multimaps.index.
at com.google.common.collect.Maps.uniqueIndex(Maps.java:1338) ~[bundleFile:?]
at com.google.common.collect.Maps.uniqueIndex(Maps.java:1293) ~[bundleFile:?]
at org.opendaylight.yangtools.yang.binding.CodeHelpers.compatMap(CodeHelpers.java:296) ~[?:?]
at org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.BucketsBuilder.setBucket(BucketsBuilder.java:113) ~[?:?]
at org.opendaylight.genius.mdsalutil.MDSALUtil.buildBucketLists(MDSALUtil.java:293) ~[?:?]
at org.opendaylight.netvirt.elan.utils.ElanUtils.syncUpdateGroup(ElanUtils.java:1768) ~[?:?]
at org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayMulticastUtils.setupStandardElanBroadcastGroups(ElanL2GatewayMulticastUtils.java:303) ~[?:?]
at org.opendaylight.netvirt.elan.l2gw.utils.ElanL2GatewayMulticastUtils.updateRemoteBroadcastGroupForAllElanDpns(ElanL2GatewayMulticastUtils.java:265) ~[?:?]
at org.opendaylight.netvirt.elan.l2gw.jobs.BcGroupUpdateJob.lambda$call$0(BcGroupUpdateJob.java:59) ~[?:?]
at org.opendaylight.genius.infra.ManagedTransactionFactoryImpl.lambda$callWithNewTransactionAndSubmit$3(ManagedTransactionFactoryImpl.java:89) ~[?:?]
at org.opendaylight.genius.infra.ManagedTransactionFactoryImpl.applyWithNewTransactionAndSubmit(ManagedTransactionFactoryImpl.java:105) ~[?:?]
at org.opendaylight.genius.infra.ManagedTransactionFactoryImpl.callWithNewTransactionAndSubmit(ManagedTransactionFactoryImpl.java:88) ~[?:?]
at org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl.callWithNewWriteOnlyTransactionAndSubmit(ManagedNewTransactionRunnerImpl.java:63) ~[?:?]
at org.opendaylight.netvirt.elan.l2gw.jobs.BcGroupUpdateJob.call(BcGroupUpdateJob.java:58) ~[?:?]
at org.opendaylight.netvirt.elan.l2gw.jobs.BcGroupUpdateJob.call(BcGroupUpdateJob.java:27) ~[?:?]
at org.opendaylight.infrautils.jobcoordinator.internal.JobCoordinatorImpl$MainTask.run(JobCoordinatorImpl.java:416) [bundleFile:?]
at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426) [?:?]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) [?:?]
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020) [?:?]
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) [?:?]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) [?:?]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177) [?:?]
Thanks,
Srinivas
+91-9243478719
From: karthikeyan.k@... <karthikeyan.k@...>
Sent: 05 June 2020 17:16
To: 'Nishchya Gupta' <nishchyag@...>; 'Somashekar Byrappa' <somashekar.b@...>; srinivas.rachakonda@...
Cc: 'P S Ravikanth' <ravikanth.ps@...>; 'Chetan Arakere Gowdru' <chetan.arakere@...>
Subject: RE: Exception during netvirt CSIT
Thanks Nishchya for the code review.
@'srinivas.rachakonda@...', Fix got merged now.
Thanks & Regards,
Karthikeyan.
From: karthikeyan.k@... <karthikeyan.k@...>
Sent: Friday, June 5, 2020 11:53 AM
To: 'Nishchya Gupta' <nishchyag@...>; 'Somashekar Byrappa' <somashekar.b@...>
Cc: 'P S Ravikanth' <ravikanth.ps@...>; 'srinivas.rachakonda@...' <srinivas.rachakonda@...>; 'Chetan Arakere Gowdru' <chetan.arakere@...>
Subject: RE: Exception during netvirt CSIT
Hi Nishchya,
Raised below review to address the reported exception.
https://git.opendaylight.org/gerrit/c/netvirt/+/90296 (@Som/Nishchya, Please review and provide your comments if you have any better approach to address it)
Thanks & Regards,
Karthikeyan.
From: Nishchya Gupta <nishchyag@...>
Sent: Thursday, June 4, 2020 1:58 PM
To: karthikeyan.k@...; 'Somashekar Byrappa' <somashekar.b@...>
Cc: 'P S Ravikanth' <ravikanth.ps@...>; srinivas.rachakonda@...; 'Chetan Arakere Gowdru' <chetan.arakere@...>
Subject: Exception during netvirt CSIT
Hi Kartik/Som,
Below mentioned exception is seen, during netvirt CSIT multiple times.
This got introduced during MRI, List to Map changes.
Where same key is used, to add multiple entries, which was not a issue while using List.
Please look into it and suggest the way to overcome.
Regards,
Nishchya
2020-06-03T14:13:55,986 | INFO | jobcoordinator-main-task-139 | SubnetOpDpnManager | 364 - org.opendaylight.netvirt.vpnmanager-impl - 0.11.0.SNAPSHOT | addPortOpDataEntry: Created PortOpData entry for port 6e8a7302-66fb-43f7-a5ec-eab4497fe1df with DPNId 9628305181018 subnetId 1b022b1c-5c20-465c-90c6-dce2518a054f
2020-06-03T14:13:55,986 | ERROR | jobcoordinator-main-task-139 | VpnSubnetRouteHandler | 364 - org.opendaylight.netvirt.vpnmanager-impl - 0.11.0.SNAPSHOT | SUBNETROUTE: onInterfaceUp: Unable to handle interface up event for port 6e8a7302-66fb-43f7-a5ec-eab4497fe1df in subnet 1b022b1c-5c20-465c-90c6-dce2518a054f
java.lang.IllegalArgumentException: Multiple entries with same key: VpnInterfacesKey{_interfaceName=6e8a7302-66fb-43f7-a5ec-eab4497fe1df}=VpnInterfaces{_interfaceName=6e8a7302-66fb-43f7-a5ec-eab4497fe1df, augmentation=[]} and VpnInterfacesKey{_interfaceName=6e8a7302-66fb-43f7-a5ec-eab4497fe1df}=VpnInterfaces{getInterfaceName=6e8a7302-66fb-43f7-a5ec-eab4497fe1df, augmentation=[]}. To index multiple values under a key, use Multimaps.index.
at com.google.common.collect.Maps.uniqueIndex(Maps.java:1338) ~[bundleFile:?]
at com.google.common.collect.Maps.uniqueIndex(Maps.java:1293) ~[bundleFile:?]
at org.opendaylight.yangtools.yang.binding.CodeHelpers.compatMap(CodeHelpers.java:296) ~[bundleFile:?]
at org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.l3vpn.rev130911.subnet.op.data.subnet.op.data.entry.SubnetToDpnBuilder.setVpnInterfaces(SubnetToDpnBuilder.java:148) ~[bundleFile:?]
at org.opendaylight.netvirt.vpnmanager.SubnetOpDpnManager.addInterfaceToDpn(SubnetOpDpnManager.java:137) ~[bundleFile:?]
at org.opendaylight.netvirt.vpnmanager.VpnSubnetRouteHandler.onInterfaceUp(VpnSubnetRouteHandler.java:613) [bundleFile:?]
at org.opendaylight.netvirt.vpnmanager.SubnetRouteInterfaceStateChangeListener.lambda$update$2(SubnetRouteInterfaceStateChangeListener.java:254) [bundleFile:?]
at org.opendaylight.infrautils.jobcoordinator.internal.JobCoordinatorImpl$MainTask.run(JobCoordinatorImpl.java:416) [bundleFile:?]
at java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426) [?:?]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290) [?:?]
at java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020) [?:?]
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656) [?:?]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594) [?:?]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177) [?:?]
2020-06-03T14:13:55,993 | WARN | ElanOvsdbNodeListener-0 | SouthboundUtils | 405 - org.opendaylight.ovsdb.utils.southbound-utils - 1.11.0.SNAPSHOT | Ovsdb Node does not contain connection info: Node{getNodeId=Uri{_value=ovsdb://uuid/dbcd87b1-5ec5-4207-82b6-5b44fe90a41a}, augmentation=[OvsdbNodeAugmentation{getConnectionInfo=ConnectionInfo{getLocalIp=IpAddress{_ipv4Address=Ipv4Address{_value=10.30.170.9}}, getLocalPort=PortNumber{_value=6640}, getRemoteIp=IpAddress{_ipv4Address=Ipv4Address{_value=10.30.170.29}}, getRemotePort=PortNumber{_value=33446}, augmentation=[]}, getDatapathTypeEntry={DatapathTypeEntryKey{_datapathType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeSystem}=DatapathTypeEntry{getDatapathType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeSystem, augmentation=[]}, DatapathTypeEntryKey{_datapathType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeNetdev}=DatapathTypeEntry{getDatapathType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.DatapathTypeNetdev, augmentation=[]}}, getDbVersion=7.15.0, getInterfaceTypeEntry={InterfaceTypeEntryKey{_interfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeLisp}=InterfaceTypeEntry{getInterfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeLisp, augmentation=[]}, InterfaceTypeEntryKey{_interfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGre}=InterfaceTypeEntry{getInterfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGre, augmentation=[]}, InterfaceTypeEntryKey{_interfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGeneve}=InterfaceTypeEntry{getInterfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeGeneve, augmentation=[]}, InterfaceTypeEntryKey{_interfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeSystem}=InterfaceTypeEntry{getInterfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeSystem, augmentation=[]}, InterfaceTypeEntryKey{_interfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlan}=InterfaceTypeEntry{getInterfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeVxlan, augmentation=[]}, InterfaceTypeEntryKey{_interfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeStt}=InterfaceTypeEntry{getInterfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeStt, augmentation=[]}, InterfaceTypeEntryKey{_interfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeTap}=InterfaceTypeEntry{getInterfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeTap, augmentation=[]}, InterfaceTypeEntryKey{_interfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypePatch}=InterfaceTypeEntry{getInterfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypePatch, augmentation=[]}, InterfaceTypeEntryKey{_interfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeInternal}=InterfaceTypeEntry{getInterfaceType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.InterfaceTypeInternal, augmentation=[]}}, getManagedNodeEntry={ManagedNodeEntryKey{_bridgeRef=OvsdbBridgeRef{_value=KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node, path=[org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology[key=TopologyKey{_topologyId=Uri{_value=ovsdb:1}}], org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node[key=NodeKey{_nodeId=Uri{_value=ovsdb://uuid/dbcd87b1-5ec5-4207-82b6-5b44fe90a41a/bridge/br-physnet1}}]]}}}=ManagedNodeEntry{getBridgeRef=OvsdbBridgeRef{_value=KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node, path=[org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology[key=TopologyKey{_topologyId=Uri{_value=ovsdb:1}}], org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node[key=NodeKey{_nodeId=Uri{_value=ovsdb://uuid/dbcd87b1-5ec5-4207-82b6-5b44fe90a41a/bridge/br-physnet1}}]]}}, augmentation=[]}, ManagedNodeEntryKey{_bridgeRef=OvsdbBridgeRef{_value=KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node, path=[org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology[key=TopologyKey{_topologyId=Uri{_value=ovsdb:1}}], org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node[key=NodeKey{_nodeId=Uri{_value=ovsdb://uuid/dbcd87b1-5ec5-4207-82b6-5b44fe90a41a/bridge/br-int}}]]}}}=ManagedNodeEntry{getBridgeRef=OvsdbBridgeRef{_value=KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node, path=[org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology, org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology[key=TopologyKey{_topologyId=Uri{_value=ovsdb:1}}], org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node[key=NodeKey{_nodeId=Uri{_value=ovsdb://uuid/dbcd87b1-5ec5-4207-82b6-5b44fe90a41a/bridge/br-int}}]]}}, augmentation=[]}}, getManagerEntry={ManagerEntryKey{_target=Uri{_value=tcp:10.30.170.9:6640}}=ManagerEntry{getNumberOfConnections=1, getTarget=Uri{_value=tcp:10.30.170.9:6640}, isConnected=true, augmentation=[]}, ManagerEntryKey{_target=Uri{_value=ptcp:6641:127.0.0.1}}=ManagerEntry{getNumberOfConnections=1, getTarget=Uri{_value=ptcp:6641:127.0.0.1}, isConnected=true, augmentation=[]}}, getOpenvswitchExternalIds={OpenvswitchExternalIdsKey{_externalIdKey=system-id}=OpenvswitchExternalIds{getExternalIdKey=system-id, getExternalIdValue=744571f3-e968-41b7-9b3a-e41c17f54f3f, augmentation=[]}, OpenvswitchExternalIdsKey{_externalIdKey=odl_os_hostconfig_hostid}=OpenvswitchExternalIds{getExternalIdKey=odl_os_hostconfig_hostid, getExternalIdValue=releng-07016-60-1-devstack-queens-0.vexxhost.local, augmentation=[]}, OpenvswitchExternalIdsKey{_externalIdKey=rundir}=OpenvswitchExternalIds{getExternalIdKey=rundir, getExternalIdValue=/var/run/openvswitch, augmentation=[]}, OpenvswitchExternalIdsKey{_externalIdKey=odl_os_hostconfig_config_odl_l2}=OpenvswitchExternalIds{getExternalIdKey=odl_os_hostconfig_config_odl_l2, getExternalIdValue={"allowed_network_types": ["local", "flat", "vlan", "vxlan", "gre"], "bridge_mappings": {"physnet1": "br-physnet1"}, "datapath_type": "system", "supported_vnic_types": [{"vif_type": "ovs", "vnic_type": "normal", "vif_details": {"support_vhost_user": false, "has_datapath_type_netdev": false, "uuid": "dbcd87b1-5ec5-4207-82b6-5b44fe90a41a", "host_addresses": ["releng-07016-60-1-devstack-queens-0.vexxhost.local"]}}]}, augmentation=[]}, OpenvswitchExternalIdsKey{_externalIdKey=hostname}=OpenvswitchExternalIds{getExternalIdKey=hostname, getExternalIdValue=localhost, augmentation=[]}}, getOpenvswitchOtherConfigs={OpenvswitchOtherConfigsKey{_otherConfigKey=local_ip}=OpenvswitchOtherConfigs{getOtherConfigKey=local_ip, getOtherConfigValue=10.30.170.29, augmentation=[]}, OpenvswitchOtherConfigsKey{_otherConfigKey=provider_mappings}=OpenvswitchOtherConfigs{getOtherConfigKey=provider_mappings, getOtherConfigValue=physnet1:br-physnet1, augmentation=[]}}, getOvsVersion=2.8.2}]}