Bump version odlparent->6.0.0,mdsal->5.0.3 24/84924/13
authorxcheara <chetan.arakere@altencalsoftlabs.com>
Sun, 6 Oct 2019 05:09:23 +0000 (10:39 +0530)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 12 Oct 2019 11:17:05 +0000 (13:17 +0200)
This adopts new version of MRI projects and adjusts for the changes
therein. Most notably DPs/DPNs are identified by Uint64, not
BigInteger.

Some drive-by cleanups are performed, mostly to eliminate valid
Eclipse complaints.

Change-Id: Ib73c963d515f55f0865775584de3632e3731820c
Signed-off-by: xcheara <chetan.arakere@altencalsoftlabs.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
202 files changed:
alivenessmonitor/alivenessmonitor-impl-protocols/src/main/java/org/opendaylight/genius/alivenessmonitor/protocols/internal/AlivenessProtocolHandlerARP.java
alivenessmonitor/alivenessmonitor-impl-protocols/src/main/java/org/opendaylight/genius/alivenessmonitor/protocols/internal/AlivenessProtocolHandlerIPv6ND.java
alivenessmonitor/alivenessmonitor-impl-protocols/src/main/java/org/opendaylight/genius/alivenessmonitor/protocols/internal/AlivenessProtocolHandlerLLDP.java
alivenessmonitor/alivenessmonitor-impl-protocols/src/test/java/org/opendaylight/genius/alivenessmonitor/protocols/test/AlivenessMonitorTest.java
alivenessmonitor/alivenessmonitor-impl/src/main/java/org/opendaylight/genius/alivenessmonitor/internal/AlivenessMonitor.java
alivenessmonitor/alivenessmonitor-impl/src/main/java/org/opendaylight/genius/alivenessmonitor/internal/HwVtepTunnelsStateHandler.java
alivenessmonitor/alivenessmonitor-impl/src/main/java/org/opendaylight/genius/alivenessmonitor/utils/AlivenessMonitorUtil.java
alivenessmonitor/pom.xml
arputil/arputil-impl/src/main/java/org/opendaylight/genius/arputil/internal/ArpUtilImpl.java
arputil/pom.xml
artifacts/pom.xml
cloudscaler/api/pom.xml
cloudscaler/api/src/main/java/org/opendaylight/genius/cloudscaler/api/TombstonedNodeManager.java
cloudscaler/impl/pom.xml
cloudscaler/impl/src/main/java/org/opendaylight/genius/cloudscaler/rpcservice/CloudscalerRpcServiceImpl.java
cloudscaler/impl/src/main/java/org/opendaylight/genius/cloudscaler/rpcservice/ComputeNodeManager.java
cloudscaler/impl/src/main/java/org/opendaylight/genius/cloudscaler/rpcservice/TombstonedNodeManagerImpl.java
cloudscaler/impl/src/test/java/org/opendaylight/genius/cloudscaler/tests/CloudScalerServiceTest.java
cloudscaler/pom.xml
commons/binding-parent/pom.xml
commons/checkstyle/pom.xml
commons/pom.xml
commons/quality-parent/pom.xml
commons/testutils/src/main/java/org/opendaylight/genius/testutils/TestInterfaceManager.java
commons/testutils/src/main/java/org/opendaylight/genius/testutils/interfacemanager/InterfaceStateHelper.java
commons/testutils/src/main/java/org/opendaylight/genius/testutils/itm/ItmRpcTestImpl.java
fcapsapplication/pom.xml
fcapsmanager/alarmmanager/src/main/java/org/opendaylight/genius/fcapsmanager/alarmmanager/AlarmNotificationListeners.java
fcapsmanager/countermanager/src/main/java/org/opendaylight/genius/fcapsmanager/countermanager/Poller.java
fcapsmanager/pom.xml
features/genius-features/pom.xml
features/odl-genius-api/pom.xml
features/odl-genius-api/src/main/feature/feature.xml
features/odl-genius-fcaps-application/pom.xml
features/odl-genius-fcaps-framework/pom.xml
features/odl-genius-rest/pom.xml
features/odl-genius/pom.xml
features/pom.xml
idmanager/idmanager-impl/src/main/java/org/opendaylight/genius/idmanager/IdManager.java
idmanager/idmanager-impl/src/main/java/org/opendaylight/genius/idmanager/IdUtils.java
idmanager/idmanager-impl/src/main/java/org/opendaylight/genius/idmanager/jobs/UpdateIdEntryJob.java
idmanager/idmanager-impl/src/test/java/org/opendaylight/genius/idmanager/test/ExpectedAllocateIdFromReleasedId.xtend
idmanager/idmanager-impl/src/test/java/org/opendaylight/genius/idmanager/test/ExpectedAllocateIdMultipleRequestsFromAvailableIds.xtend
idmanager/idmanager-impl/src/test/java/org/opendaylight/genius/idmanager/test/ExpectedAllocateIdMultipleRequestsFromReleaseIds.xtend
idmanager/idmanager-impl/src/test/java/org/opendaylight/genius/idmanager/test/ExpectedAllocateIdObjects.xtend
idmanager/idmanager-impl/src/test/java/org/opendaylight/genius/idmanager/test/IdManagerTest.java
idmanager/pom.xml
interfacemanager/interfacemanager-api/src/main/java/org/opendaylight/genius/interfacemanager/globals/IfmConstants.java
interfacemanager/interfacemanager-api/src/main/java/org/opendaylight/genius/interfacemanager/globals/InterfaceInfo.java
interfacemanager/interfacemanager-api/src/main/java/org/opendaylight/genius/interfacemanager/globals/InterfaceServiceUtil.java
interfacemanager/interfacemanager-api/src/main/java/org/opendaylight/genius/interfacemanager/globals/LogicalGroupInterfaceInfo.java
interfacemanager/interfacemanager-api/src/main/java/org/opendaylight/genius/interfacemanager/globals/VlanInterfaceInfo.java
interfacemanager/interfacemanager-api/src/main/java/org/opendaylight/genius/interfacemanager/interfaces/IInterfaceManager.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/IfmConstants.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/IfmUtil.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/InterfacemgrProvider.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/commons/AlivenessMonitorUtils.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/commons/InterfaceManagerCommonUtils.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/commons/InterfaceMetaUtils.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/listeners/AlivenessMonitorListenerImpl.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/listeners/InterfaceInventoryStateListener.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/listeners/InterfaceTopologyStateListener.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/pmcounters/NodeConnectorStatsImpl.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/renderer/ovs/confighelpers/OvsInterfaceConfigAddHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/renderer/ovs/confighelpers/OvsInterfaceConfigRemoveHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/renderer/ovs/confighelpers/OvsVlanMemberConfigRemoveHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/renderer/ovs/statehelpers/OvsInterfaceStateAddHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/renderer/ovs/statehelpers/OvsInterfaceTopologyStateUpdateHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/renderer/ovs/utilities/SouthboundUtils.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/rpcservice/InterfaceManagerServiceImpl.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/config/helpers/FlowBasedEgressServicesConfigBindHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/config/helpers/FlowBasedEgressServicesConfigUnbindHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/config/helpers/FlowBasedIngressServicesConfigBindHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/config/helpers/FlowBasedIngressServicesConfigUnbindHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/listeners/FlowBasedServicesConfigListener.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/listeners/FlowBasedServicesNodeStateListener.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/state/factory/FlowBasedServicesStateAddable.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/state/factory/FlowBasedServicesStateRemovable.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/state/helpers/AbstractFlowBasedServicesStateBindHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/state/helpers/FlowBasedEgressServicesStateBindHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/state/helpers/FlowBasedIngressServicesStateBindHelper.java
interfacemanager/interfacemanager-impl/src/main/java/org/opendaylight/genius/interfacemanager/servicebindings/flowbased/utilities/FlowBasedServicesUtils.java
interfacemanager/interfacemanager-impl/src/test/java/org/opendaylight/genius/interfacemanager/test/IfmUtilTest.java
interfacemanager/interfacemanager-impl/src/test/java/org/opendaylight/genius/interfacemanager/test/InterfaceManagerConfigurationTest.java
interfacemanager/interfacemanager-impl/src/test/java/org/opendaylight/genius/interfacemanager/test/InterfaceManagerTestUtil.java
interfacemanager/interfacemanager-impl/src/test/java/org/opendaylight/genius/interfacemanager/test/xtend/ExpectedInterfaceInfo.xtend
interfacemanager/interfacemanager-impl/src/test/java/org/opendaylight/genius/interfacemanager/test/xtend/PortFromInterfaceOutput.xtend [moved from interfacemanager/interfacemanager-impl/src/test/java/org/opendaylight/genius/interfacemanager/test/xtend/ExpectedPortFromInterface.xtend with 91% similarity]
interfacemanager/interfacemanager-shell/src/main/java/org/opendaylight/genius/interfacemanager/shell/IfmCLIUtil.java
interfacemanager/interfacemanager-shell/src/main/java/org/opendaylight/genius/interfacemanager/shell/ShowOvsPorts.java
interfacemanager/pom.xml
ipv6util/api/src/main/java/org/opendaylight/genius/ipv6util/api/Ipv6Util.java
ipv6util/api/src/main/java/org/opendaylight/genius/ipv6util/api/decoders/Ipv6NaDecoder.java
ipv6util/impl/src/main/java/org/opendaylight/genius/ipv6util/nd/Ipv6NdUtilServiceImpl.java
ipv6util/impl/src/main/java/org/opendaylight/genius/ipv6util/nd/Ipv6NsHelper.java
ipv6util/impl/src/test/java/org/opendaylight/genius/ipv6util/nd/Ipv6NsHelperTest.java
ipv6util/pom.xml
itm/itm-api/src/main/java/org/opendaylight/genius/itm/api/IITMProvider.java
itm/itm-api/src/main/java/org/opendaylight/genius/itm/globals/ITMConstants.java
itm/itm-api/src/main/java/org/opendaylight/genius/itm/utils/DpnTepInterfaceInfo.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cache/DPNTEPsInfoCache.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cache/DpnTepStateCache.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cache/OfEndPointCache.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cache/OvsBridgeEntryCache.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cache/OvsBridgeRefEntryCache.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cli/ItmCliUtils.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cli/TepAdd.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cli/TepCommandHelper.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cli/TepDelete.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/cli/TepShowBridges.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmExternalTunnelAddWorker.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmExternalTunnelDeleteWorker.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmInternalTunnelAddWorker.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmInternalTunnelDeleteWorker.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmMonitorWorker.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepsNotHostedMoveWorker.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTepsNotHostedRemoveWorker.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/ItmTunnelAggregationHelper.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepAddConfigHelper.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/confighelpers/OvsdbTepRemoveConfigHelper.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmProvider.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/ItmUtils.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/impl/TunnelMonitoringConfig.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TerminationPointStateListener.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TunnelInventoryStateListener.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/listeners/TunnelTopologyStateListener.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/renderer/ovs/utilities/DirectTunnelUtils.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/itmdirecttunnels/workers/TunnelStateAddWorker.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/listeners/OvsdbNodeListener.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/listeners/TransportZoneListener.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/listeners/TunnelMonitorIntervalListener.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/monitoring/ItmTunnelEventListener.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/ItmTepInstanceRecoveryHandler.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/recovery/impl/ItmTzInstanceRecoveryHandler.java
itm/itm-impl/src/main/java/org/opendaylight/genius/itm/rpc/ItmManagerRpcService.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/cli/TepCommandHelperTest.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmExternalTunnelAddTest.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmExternalTunnelDeleteTest.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmInternalTunnelAddTest.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmInternalTunnelDeleteTest.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/impl/ItmManagerRpcServiceTest.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmManagerRpcServiceTest.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmTepAutoConfigTest.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmTepAutoConfigTestUtil.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/ItmTestConstants.java
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/xtend/ExpectedDefTransportZoneObjects.xtend
itm/itm-impl/src/test/java/org/opendaylight/genius/itm/tests/xtend/ExpectedTransportZoneObjects.xtend
itm/pom.xml
karaf/pom.xml
lockmanager/lockmanager-impl/src/main/java/org/opendaylight/genius/lockmanager/impl/LockManagerServiceImpl.java
lockmanager/pom.xml
mdsalutil/mdsalutil-api/pom.xml
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/AbstractSwitchEntity.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/FlowEntity.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/FlowInfoKey.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/GroupInfoKey.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/MDSALUtil.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/MetaDataUtil.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/NWUtil.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/NwConstants.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/actions/ActionLearn.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/actions/ActionLoadIpToSpa.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/actions/ActionLoadMacToSha.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/actions/ActionNxLoadInPort.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/actions/ActionNxLoadMetadata.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/actions/ActionRegLoad.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/actions/ActionSetArpOp.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/actions/ActionSetFieldMeta.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/actions/ActionSetFieldTunnelId.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/actions/ActionSetTunnelDestinationIp.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/actions/ActionSetTunnelSourceIp.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/instructions/InstructionWriteMetadata.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/interfaces/IMdsalApiManager.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/matches/MatchInPort.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/matches/MatchMetadata.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/mdsalutil/matches/MatchTunnelId.java
mdsalutil/mdsalutil-api/src/main/java/org/opendaylight/genius/utils/batching/ResourceBatchingManager.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/actions/ActionGroupTest.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/actions/ActionLearnTest.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/actions/ActionLoadIpToSpaTest.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/actions/ActionLoadMacToShaTest.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/actions/ActionNxLoadInPortTest.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/actions/ActionNxLoadMetadataTest.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/actions/ActionRegLoadTest.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/actions/ActionRegMoveTest.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/instructions/InstructionWriteMetadataTest.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/interfaces/testutils/TestIMdsalApiManager.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/interfaces/testutils/tests/TestIMdsalApiManagerTest.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/matches/MatchInPortTest.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/tests/ActionInfoBuilderTest.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/tests/ActionInfoImmutableTest.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/tests/FlowEntityAssertBeansTest.java
mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/tests/UintXtendBeanGenerator.java [new file with mode: 0644]
mdsalutil/mdsalutil-impl/MdSalUtilTest.java [moved from mdsalutil/mdsalutil-impl/src/test/java/org/opendaylight/genius/mdsalutil/internal/MdSalUtilTest.java with 96% similarity]
mdsalutil/mdsalutil-impl/src/main/java/org/opendaylight/genius/mdsalutil/internal/MDSALManager.java
mdsalutil/mdsalutil-testutils/src/main/java/org/opendaylight/genius/datastoreutils/testutils/DataBrokerFailuresImpl.java
mdsalutil/pom.xml
networkutils/networkutils/pom.xml
networkutils/networkutils/src/main/java/org/opendaylight/genius/networkutils/VniUtils.java
networkutils/networkutils/src/main/java/org/opendaylight/genius/networkutils/impl/RDUtilsImpl.java
networkutils/networkutils/src/main/java/org/opendaylight/genius/networkutils/impl/VniUtilsImpl.java
networkutils/pom.xml
pom.xml

index 4254604214257c65568f1841a48916162c02e809..708f251c797775713f56a826527298d263a027f4 100644 (file)
@@ -17,7 +17,6 @@ import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import java.math.BigInteger;
 import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.ExecutionException;
@@ -49,6 +48,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpc
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.OdlInterfaceRpcService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -79,7 +79,7 @@ public class AlivenessProtocolHandlerARP extends AbstractAlivenessProtocolHandle
     @Override
     @SuppressFBWarnings("NP_NONNULL_RETURN_VIOLATION")
     public String handlePacketIn(ARP packet, PacketReceived packetReceived) {
-        short tableId = packetReceived.getTableId().getValue();
+        short tableId = packetReceived.getTableId().getValue().toJava();
         int arpType = packet.getOpCode();
 
         if (LOG.isTraceEnabled()) {
@@ -91,7 +91,7 @@ public class AlivenessProtocolHandlerARP extends AbstractAlivenessProtocolHandle
                 LOG.trace("packet: {}", packetReceived);
             }
 
-            BigInteger metadata = packetReceived.getMatch().getMetadata().getMetadata();
+            Uint64 metadata = packetReceived.getMatch().getMetadata().getMetadata();
             int portTag = MetaDataUtil.getLportFromMetadata(metadata).intValue();
             String interfaceName = null;
 
index e9779b68f0e5287a84e3a72e86d3b8ee9db0b12a..aab1e604ad44e0ee7e701c918b32c4da3738b634 100644 (file)
@@ -5,7 +5,6 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.alivenessmonitor.protocols.internal;
 
 import static org.opendaylight.genius.alivenessmonitor.protocols.AlivenessMonitorAndProtocolsConstants.SEPERATOR;
@@ -16,7 +15,6 @@ import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import java.math.BigInteger;
 import java.net.UnknownHostException;
 import java.util.Collections;
 import java.util.List;
@@ -53,6 +51,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.ipv6.nd.util.rev1702
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.ipv6.nd.util.rev170210.interfaces.InterfaceAddressBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -99,10 +98,10 @@ public class AlivenessProtocolHandlerIPv6ND extends AbstractAlivenessProtocolHan
             LOG.warn("Failed to decode IPv6 NA packet={}", data, e);
             return null;
         }
-        short tableId = packetReceived.getTableId().getValue();
+        short tableId = packetReceived.getTableId().getValue().toJava();
         LOG.trace("packet: {}, tableId {}, ipv6Type {}", packetReceived, tableId, naPacket.getIcmp6Type());
 
-        BigInteger metadata = packetReceived.getMatch().getMetadata().getMetadata();
+        Uint64 metadata = packetReceived.getMatch().getMetadata().getMetadata();
         int portTag = MetaDataUtil.getLportFromMetadata(metadata).intValue();
         String interfaceName = null;
 
@@ -131,7 +130,6 @@ public class AlivenessProtocolHandlerIPv6ND extends AbstractAlivenessProtocolHan
         return null;
     }
 
-    @SuppressWarnings("deprecation")
     @Override
     public void startMonitoringTask(MonitoringInfo monitorInfo) {
         EndpointType source = monitorInfo.getSource().getEndpointType();
index f354153c1ccec9df6bc47b4a47b9eb139a7713f6..5b3992a87792388f1246a7c399fc481dfd0d2bfb 100644 (file)
@@ -12,7 +12,6 @@ import static org.opendaylight.infrautils.utils.concurrent.LoggingFutures.addErr
 import com.google.common.base.Optional;
 import com.google.common.base.Strings;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import java.math.BigInteger;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
@@ -49,6 +48,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeCon
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketReceived;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.TransmitPacketInput;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -159,7 +159,7 @@ public class AlivenessProtocolHandlerLLDP extends AbstractAlivenessProtocolHandl
                 return;
             }
             TransmitPacketInput transmitPacketInput = MDSALUtil.getPacketOut(actions, ethenetLLDPPacket.serialize(),
-                    nodeId, MDSALUtil.getNodeConnRef(BigInteger.valueOf(nodeId), "0xfffffffd"));
+                    nodeId, MDSALUtil.getNodeConnRef(Uint64.valueOf(nodeId), "0xfffffffd"));
             addErrorLogging(packetProcessingService.transmitPacket(transmitPacketInput),
                     LOG, "transmitPacket() failed: {}", transmitPacketInput);
         } catch (InterruptedException | ExecutionException | PacketException e) {
@@ -197,7 +197,7 @@ public class AlivenessProtocolHandlerLLDP extends AbstractAlivenessProtocolHandl
         List<ActionInfo> actionInfos = new ArrayList<>();
         // Set the LLDP service Id which is 0
         if (Tunnel.class.equals(intfType)) {
-            actionInfos.add(new ActionSetFieldTunnelId(BigInteger.ZERO));
+            actionInfos.add(new ActionSetFieldTunnelId(Uint64.ZERO));
         }
         actionInfos.add(new ActionOutput(new Uri(Long.toString(portNum))));
         return actionInfos;
index e34ddc3584d7e2d249dc34a0a0f684653e58a544..8d7e75ec3d2a81f63c6e4f5b83a7ee62ddc874a5 100644 (file)
@@ -105,6 +105,7 @@ import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.RpcError.ErrorType;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint32;
 
 public class AlivenessMonitorTest {
 
@@ -410,7 +411,7 @@ public class AlivenessMonitorTest {
         doReturn(CommitInfo.emptyFluentFuture()).when(readWriteTx).commit();
         RpcResult<MonitorProfileCreateOutput> output = alivenessMonitor
                 .monitorProfileCreate(input).get();
-        return output.getResult().getProfileId();
+        return output.getResult().getProfileId().toJava();
     }
 
     private MonitorProfile getTestMonitorProfile() {
@@ -422,7 +423,7 @@ public class AlivenessMonitorTest {
     private InterfaceMonitorEntry getInterfaceMonitorEntry() {
         return new InterfaceMonitorEntryBuilder()
                 .setInterfaceName("test-interface")
-                .setMonitorIds(Arrays.asList(1L, 2L)).build();
+                .setMonitorIds(Arrays.asList(Uint32.valueOf(1L), Uint32.valueOf(2L))).build();
     }
 
     private Interface getInterface(String ipAddress) {
index bd35f44ba435692b3029ddc9ffb516c5254dbc69..908985accc672d56267ed121d85522d7d01cb0d8 100644 (file)
@@ -26,6 +26,7 @@ import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.SettableFuture;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -122,6 +123,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcError.ErrorType;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint32;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -175,10 +177,10 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
     private final IdManagerService idManager;
     private final NotificationPublishService notificationPublishService;
     private final AlivenessProtocolHandlerRegistry alivenessProtocolHandlerRegistry;
-    private final ConcurrentMap<Long, ScheduledFuture<?>> monitoringTasks = new ConcurrentHashMap<>();
+    private final ConcurrentMap<Uint32, ScheduledFuture<?>> monitoringTasks = new ConcurrentHashMap<>();
     private final ScheduledExecutorService monitorService;
     private final ExecutorService callbackExecutorService;
-    private final LoadingCache<Long, String> monitorIdKeyCache;
+    private final LoadingCache<Uint32, String> monitorIdKeyCache;
     private final ConcurrentMap<String, Semaphore> lockMap = new ConcurrentHashMap<>();
 
     @Inject
@@ -197,13 +199,14 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         callbackExecutorService = Executors.newFixedThreadPool(THREAD_POOL_SIZE, "Aliveness Callback Handler", LOG);
 
         createIdPool();
-        monitorIdKeyCache = CacheBuilder.newBuilder().build(new CacheLoader<Long, String>() {
+        monitorIdKeyCache = CacheBuilder.newBuilder().build(new CacheLoader<Uint32, String>() {
             @Override
-            public String load(@NonNull Long monitorId) {
+            public String load(Uint32 monitorId) {
                 try {
                     return txRunner.<Operational, ExecutionException, Optional<MonitoridKeyEntry>>
                         applyInterruptiblyWithNewReadOnlyTransactionAndClose(OPERATIONAL,
-                            tx -> tx.read(getMonitorMapId(monitorId)).get()).map(MonitoridKeyEntry::getMonitorKey)
+                            tx -> tx.read(getMonitorMapId(monitorId)).get())
+                                        .map(MonitoridKeyEntry::getMonitorKey)
                         .orElse(null);
                 } catch (InterruptedException | ExecutionException e) {
                     LOG.error("Error reading monitor {}", monitorId, e);
@@ -450,7 +453,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
     public ListenableFuture<RpcResult<MonitorStartOutput>> monitorStart(MonitorStartInput input) {
         RpcResultBuilder<MonitorStartOutput> rpcResultBuilder;
         final Config in = input.getConfig();
-        Long profileId = in.getProfileId();
+        Uint32 profileId = in.getProfileId();
         LOG.debug("Monitor Start invoked with Config: {}, Profile Id: {}", in, profileId);
 
         try {
@@ -465,7 +468,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
                         tx -> tx.read(getMonitorProfileId(profileId)).get());
             final MonitorProfile profile;
             if (!optProfile.isPresent()) {
-                String errMsg = String.format("No monitoring profile associated with Id: %d", profileId);
+                String errMsg = "No monitoring profile associated with Id: " + profileId;
                 LOG.error("Monitor start failed. {}", errMsg);
                 throw new RuntimeException(errMsg);
             } else {
@@ -497,7 +500,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
                 destEndpointType = in.getDestination().getEndpointType();
             }
             String idKey = getUniqueKey(interfaceName, protocolType.toString(), srcEndpointType, destEndpointType);
-            final long monitorId = getUniqueId(idKey);
+            final Uint32 monitorId = Uint32.valueOf(getUniqueId(idKey));
             Optional<MonitoringInfo> optKey =
                 txRunner.<Operational, ExecutionException, Optional<MonitoringInfo>>
                     applyInterruptiblyWithNewReadOnlyTransactionAndClose(OPERATIONAL,
@@ -576,7 +579,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         return Futures.immediateFuture(rpcResultBuilder.build());
     }
 
-    private void associateMonitorIdWithInterface(final Long monitorId, final String interfaceName) {
+    private void associateMonitorIdWithInterface(final Uint32 monitorId, final String interfaceName) {
         LOG.debug("associate monitor Id {} with interface {}", monitorId, interfaceName);
         final ReadWriteTransaction tx = dataBroker.newReadWriteTransaction();
         FluentFuture<Optional<InterfaceMonitorEntry>> readFuture = tx.read(LogicalDatastoreType.OPERATIONAL,
@@ -584,7 +587,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         FluentFuture<? extends CommitInfo> updateFuture = readFuture.transformAsync(optEntry -> {
             if (optEntry.isPresent()) {
                 InterfaceMonitorEntry entry = optEntry.get();
-                List<Long> monitorIds1 =
+                List<Uint32> monitorIds1 =
                     entry.getMonitorIds() != null ? new ArrayList<>(entry.getMonitorIds()) : new ArrayList<>();
                 monitorIds1.add(monitorId);
                 InterfaceMonitorEntry newEntry1 = new InterfaceMonitorEntryBuilder()
@@ -594,7 +597,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
                     // Create new monitor entry
                 LOG.debug("Adding new interface-monitor association for interface {} with id {}", interfaceName,
                             monitorId);
-                List<Long> monitorIds2 = new ArrayList<>();
+                List<Uint32> monitorIds2 = new ArrayList<>();
                 monitorIds2.add(monitorId);
                 InterfaceMonitorEntry newEntry2 = new InterfaceMonitorEntryBuilder()
                             .setInterfaceName(interfaceName).setMonitorIds(monitorIds2).build();
@@ -605,14 +608,16 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         }, callbackExecutorService);
 
         Futures.addCallback(updateFuture, new FutureCallbackImpl(
-                String.format("Association of monitorId %d with Interface %s", monitorId, interfaceName)),
+                "Association of monitorId " + monitorId + " with Interface " + interfaceName),
                 MoreExecutors.directExecutor());
     }
 
-    private void scheduleMonitoringTask(MonitoringInfo monitoringInfo, long monitorInterval) {
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
+    private void scheduleMonitoringTask(MonitoringInfo monitoringInfo, Uint32 monitorInterval) {
         AlivenessMonitorTask monitorTask = new AlivenessMonitorTask(monitoringInfo);
         ScheduledFuture<?> scheduledFutureResult = monitorService.scheduleAtFixedRate(monitorTask, NO_DELAY,
-                monitorInterval, TimeUnit.MILLISECONDS);
+                monitorInterval.toJava(), TimeUnit.MILLISECONDS);
         monitoringTasks.put(monitoringInfo.getId(), scheduledFutureResult);
     }
 
@@ -620,7 +625,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
     public ListenableFuture<RpcResult<MonitorPauseOutput>> monitorPause(MonitorPauseInput input) {
         LOG.debug("Monitor Pause operation invoked for monitor id: {}", input.getMonitorId());
         SettableFuture<RpcResult<MonitorPauseOutput>> result = SettableFuture.create();
-        final Long monitorId = input.getMonitorId();
+        final Uint32 monitorId = input.getMonitorId();
 
         // Set the monitoring status to Paused
         updateMonitorStatusTo(monitorId, MonitorStatus.Paused, currentStatus -> currentStatus == MonitorStatus.Started);
@@ -628,8 +633,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         if (stopMonitoringTask(monitorId)) {
             result.set(RpcResultBuilder.<MonitorPauseOutput>success().build());
         } else {
-            String errorMsg = String.format("No Monitoring Task availble to pause for the given monitor id : %d",
-                    monitorId);
+            String errorMsg = "No Monitoring Task availble to pause for the given monitor id : " + monitorId;
             LOG.error("Monitor Pause operation failed- {}", errorMsg);
             result.set(RpcResultBuilder.<MonitorPauseOutput>failed()
                     .withError(ErrorType.APPLICATION, errorMsg).build());
@@ -643,7 +647,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         LOG.debug("Monitor Unpause operation invoked for monitor id: {}", input.getMonitorId());
         final SettableFuture<RpcResult<MonitorUnpauseOutput>> result = SettableFuture.create();
 
-        final Long monitorId = input.getMonitorId();
+        final Uint32 monitorId = input.getMonitorId();
         final ReadTransaction tx = dataBroker.newReadOnlyTransaction();
         FluentFuture<Optional<MonitoringInfo>> readInfoResult = tx.read(LogicalDatastoreType.OPERATIONAL,
                 getMonitoringInfoId(monitorId));
@@ -653,7 +657,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
             @Override
             public void onFailure(Throwable error) {
                 tx.close();
-                String msg = String.format("Unable to read monitoring info associated with monitor id %d", monitorId);
+                String msg = "Unable to read monitoring info associated with monitor id " + monitorId;
                 LOG.error("Monitor unpause Failed. {}", msg, error);
                 result.set(RpcResultBuilder.<MonitorUnpauseOutput>failed()
                         .withError(ErrorType.APPLICATION, msg, error).build());
@@ -670,8 +674,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
                         @Override
                         public void onFailure(Throwable error) {
                             tx.close();
-                            String msg = String.format("Unable to read Monitoring profile associated with id %d",
-                                    info.getProfileId());
+                            String msg = "Unable to read Monitoring profile associated with id " + info.getProfileId();
                             LOG.warn("Monitor unpause Failed. {}", msg, error);
                             result.set(RpcResultBuilder.<MonitorUnpauseOutput>failed()
                                     .withError(ErrorType.APPLICATION, msg, error).build());
@@ -696,7 +699,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
                                 }
                                 result.set(RpcResultBuilder.<MonitorUnpauseOutput>success().build());
                             } else {
-                                String msg = String.format("Monitoring profile associated with id %d is not present",
+                                String msg = String.format("Monitoring profile associated with id %s is not present",
                                         info.getProfileId());
                                 LOG.warn("Monitor unpause Failed. {}", msg);
                                 result.set(
@@ -707,7 +710,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
                     }, callbackExecutorService);
                 } else {
                     tx.close();
-                    String msg = String.format("Monitoring info associated with id %d is not present", monitorId);
+                    String msg = String.format("Monitoring info associated with id %s is not present", monitorId);
                     LOG.warn("Monitor unpause Failed. {}", msg);
                     result.set(RpcResultBuilder.<MonitorUnpauseOutput>failed()
                             .withError(ErrorType.APPLICATION, msg).build());
@@ -718,11 +721,11 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         return result;
     }
 
-    private boolean stopMonitoringTask(Long monitorId) {
+    private boolean stopMonitoringTask(Uint32 monitorId) {
         return stopMonitoringTask(monitorId, INTERRUPT_TASK);
     }
 
-    private boolean stopMonitoringTask(Long monitorId, boolean interruptTask) {
+    private boolean stopMonitoringTask(Uint32 monitorId, boolean interruptTask) {
         Optional<MonitoringInfo> optInfo;
         try {
             optInfo = txRunner.applyInterruptiblyWithNewReadOnlyTransactionAndClose(OPERATIONAL,
@@ -759,7 +762,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         return false;
     }
 
-    Optional<MonitorProfile> getMonitorProfile(Long profileId) {
+    Optional<MonitorProfile> getMonitorProfile(Uint32 profileId) {
         try {
             return txRunner.applyInterruptiblyWithNewReadOnlyTransactionAndClose(OPERATIONAL,
                 tx -> tx.read(getMonitorProfileId(profileId))).get();
@@ -801,9 +804,11 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         }
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private void sendMonitorPacket(final MonitoringInfo monitoringInfo) {
         // TODO: Handle interrupts
-        final Long monitorId = monitoringInfo.getId();
+        final Uint32 monitorId = monitoringInfo.getId();
         final String monitorKey = monitorIdKeyCache.getUnchecked(monitorId);
         if (monitorKey == null) {
             LOG.warn("No monitor Key associated with id {} to send the monitor packet", monitorId);
@@ -834,19 +839,19 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
                 MonitoringState state = optState.get();
 
                 // Increase the request count
-                Long requestCount = state.getRequestCount() + 1;
+                Long requestCount = state.getRequestCount().toJava() + 1;
 
                 // Check with the monitor window
                 LivenessState currentLivenessState = state.getState();
 
                 // Increase the pending response count
-                long responsePendingCount = state.getResponsePendingCount();
-                if (responsePendingCount < profile.getMonitorWindow()) {
+                long responsePendingCount = state.getResponsePendingCount().toJava();
+                if (responsePendingCount < profile.getMonitorWindow().toJava()) {
                     responsePendingCount = responsePendingCount + 1;
                 }
 
                 // Check with the failure threshold
-                if (responsePendingCount >= profile.getFailureThreshold()) {
+                if (responsePendingCount >= profile.getFailureThreshold().toJava()) {
                     // Change the state to down and notify
                     if (currentLivenessState != LivenessState.Down) {
                         LOG.debug("Response pending Count: {}, Failure threshold: {} for monitorId {}",
@@ -872,7 +877,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
                 // Close the transaction
                 tx.commit();
                 String errorMsg = String.format(
-                        "Monitoring State associated with id %d is not present to send packet out.", monitorId);
+                        "Monitoring State associated with id %s is not present to send packet out.", monitorId);
                 return Futures.immediateFailedFuture(new RuntimeException(errorMsg));
             }
         }, callbackExecutorService);
@@ -899,7 +904,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         }, callbackExecutorService);
     }
 
-    void publishNotification(final Long monitorId, final LivenessState state) {
+    void publishNotification(final Uint32 monitorId, final LivenessState state) {
         LOG.debug("Sending notification for id {}  - state {}", monitorId, state);
         EventData data = new EventDataBuilder().setMonitorId(monitorId).setMonitorState(state).build();
         MonitorEvent event = new MonitorEventBuilder().setEventData(data).build();
@@ -923,12 +928,12 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         LOG.debug("Monitor Profile Create operation - {}", input.getProfile());
         final SettableFuture<RpcResult<MonitorProfileCreateOutput>> returnFuture = SettableFuture.create();
         Profile profile = input.getProfile();
-        final Long failureThreshold = profile.getFailureThreshold();
-        final Long monitorInterval = profile.getMonitorInterval();
-        final Long monitorWindow = profile.getMonitorWindow();
+        final Uint32 failureThreshold = profile.getFailureThreshold();
+        final Uint32 monitorInterval = profile.getMonitorInterval();
+        final Uint32 monitorWindow = profile.getMonitorWindow();
         final MonitorProtocolType protocolType = profile.getProtocolType();
         String idKey = getUniqueProfileKey(failureThreshold, monitorInterval, monitorWindow, protocolType);
-        final Long profileId = (long) getUniqueId(idKey);
+        final Uint32 profileId = Uint32.valueOf(getUniqueId(idKey));
 
         final ReadWriteTransaction tx = dataBroker.newReadWriteTransaction();
         FluentFuture<Optional<MonitorProfile>> readFuture = tx.read(LogicalDatastoreType.OPERATIONAL,
@@ -1004,9 +1009,9 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         org.opendaylight.yang.gen.v1.urn.opendaylight.genius
             .alivenessmonitor.rev160411.monitor.profile.get.input.Profile profile = input
                 .getProfile();
-        final Long failureThreshold = profile.getFailureThreshold();
-        final Long monitorInterval = profile.getMonitorInterval();
-        final Long monitorWindow = profile.getMonitorWindow();
+        final Uint32 failureThreshold = profile.getFailureThreshold();
+        final Uint32 monitorInterval = profile.getMonitorInterval();
+        final Uint32 monitorWindow = profile.getMonitorWindow();
         final MonitorProtocolType protocolType = profile.getProtocolType();
         LOG.debug("getExistingProfileId for profile : {}", input.getProfile());
         String idKey = getUniqueProfileKey(failureThreshold, monitorInterval, monitorWindow, protocolType);
@@ -1014,7 +1019,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         return (long) getUniqueId(idKey);
     }
 
-    private String getUniqueProfileKey(Long failureThreshold, Long monitorInterval, Long monitorWindow,
+    private String getUniqueProfileKey(Uint32 failureThreshold, Uint32 monitorInterval, Uint32 monitorWindow,
             MonitorProtocolType protocolType) {
         return String.valueOf(failureThreshold) + AlivenessMonitorConstants.SEPERATOR + monitorInterval
                 + AlivenessMonitorConstants.SEPERATOR + monitorWindow + AlivenessMonitorConstants.SEPERATOR
@@ -1026,7 +1031,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
             final MonitorProfileDeleteInput input) {
         LOG.debug("Monitor Profile delete for Id: {}", input.getProfileId());
         final SettableFuture<RpcResult<MonitorProfileDeleteOutput>> result = SettableFuture.create();
-        final Long profileId = input.getProfileId();
+        final Uint32 profileId = input.getProfileId();
         final ReadWriteTransaction tx = dataBroker.newReadWriteTransaction();
         FluentFuture<Optional<MonitorProfile>> readFuture = tx.read(LogicalDatastoreType.OPERATIONAL,
                 getMonitorProfileId(profileId));
@@ -1037,7 +1042,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
                         tx.commit().addCallback(new FutureCallback<CommitInfo>() {
                             @Override
                             public void onFailure(Throwable error) {
-                                String msg = String.format("Error when removing monitor profile %d from datastore",
+                                String msg = String.format("Error when removing monitor profile %s from datastore",
                                         profileId);
                                 LOG.error("Error when removing monitor profile {} from datastore", profileId, error);
                                 result.set(RpcResultBuilder.<MonitorProfileDeleteOutput>failed()
@@ -1056,7 +1061,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
                             }
                         }, callbackExecutorService);
                     } else {
-                        String msg = String.format("Monitor profile with Id: %d does not exist", profileId);
+                        String msg = String.format("Monitor profile with Id: %s does not exist", profileId);
                         LOG.info(msg);
                         result.set(RpcResultBuilder.<MonitorProfileDeleteOutput>success()
                                 .withWarning(ErrorType.PROTOCOL, "invalid-value", msg).build());
@@ -1068,7 +1073,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
 
             @Override
             public void onFailure(Throwable error) {
-                String msg = String.format("Error when removing monitor profile %d from datastore", profileId);
+                String msg = String.format("Error when removing monitor profile %s from datastore", profileId);
                 LOG.error("Error when removing monitor profile {} from datastore", profileId, error);
                 result.set(RpcResultBuilder.<MonitorProfileDeleteOutput>failed()
                         .withError(ErrorType.APPLICATION, msg, error).build());
@@ -1087,7 +1092,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         LOG.debug("Monitor Stop operation for monitor id - {}", input.getMonitorId());
         SettableFuture<RpcResult<MonitorStopOutput>> result = SettableFuture.create();
 
-        final Long monitorId = input.getMonitorId();
+        final Uint32 monitorId = input.getMonitorId();
         Optional<MonitoringInfo> optInfo;
         try {
             optInfo = txRunner.applyInterruptiblyWithNewReadOnlyTransactionAndClose(OPERATIONAL,
@@ -1106,14 +1111,14 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
             txRunner.callWithNewWriteOnlyTransactionAndSubmit(OPERATIONAL, tx -> {
                 if (monitorKey != null) {
                     tx.delete(getMonitorStateId(monitorKey));
-                    monitorIdKeyCache.invalidate(monitorId);
+                    monitorIdKeyCache.invalidate(monitorId.toJava());
                 }
 
                 tx.delete(getMonitoringInfoId(monitorId));
 
                 //Remove monitorid-key-map
                 tx.delete(getMonitorMapId(monitorId));
-            }).addCallback(new FutureCallbackImpl(String.format("Delete monitor state with Id %d", monitorId)),
+            }).addCallback(new FutureCallbackImpl("Delete monitor state with Id " + monitorId),
                     MoreExecutors.directExecutor());
 
             MonitoringInfo info = optInfo.get();
@@ -1129,7 +1134,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
 
             result.set(RpcResultBuilder.<MonitorStopOutput>success().build());
         } else {
-            String errorMsg = String.format("Do not have monitoring information associated with key %d", monitorId);
+            String errorMsg = "Do not have monitoring information associated with key " + monitorId;
             LOG.error("Delete monitoring operation Failed - {}", errorMsg);
             result.set(RpcResultBuilder.<MonitorStopOutput>failed().withError(ErrorType.APPLICATION, errorMsg).build());
         }
@@ -1137,7 +1142,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         return result;
     }
 
-    private void removeMonitorIdFromInterfaceAssociation(final Long monitorId, final String interfaceName) {
+    private void removeMonitorIdFromInterfaceAssociation(final Uint32 monitorId, final String interfaceName) {
         LOG.debug("Remove monitorId {} from Interface association {}", monitorId, interfaceName);
         final ReadWriteTransaction tx = dataBroker.newReadWriteTransaction();
         FluentFuture<Optional<InterfaceMonitorEntry>> readFuture = tx.read(LogicalDatastoreType.OPERATIONAL,
@@ -1145,7 +1150,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         FluentFuture<? extends CommitInfo> updateFuture = readFuture.transformAsync(optEntry -> {
             if (optEntry.isPresent()) {
                 InterfaceMonitorEntry entry = optEntry.get();
-                List<Long> monitorIds =
+                List<Uint32> monitorIds =
                     entry.getMonitorIds() != null ? new ArrayList<>(entry.getMonitorIds()) : new ArrayList<>();
                 monitorIds.remove(monitorId);
                 if (monitorIds.isEmpty()) {
@@ -1165,12 +1170,12 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         }, MoreExecutors.directExecutor());
 
         updateFuture.addCallback(new FutureCallbackImpl(
-                String.format("Dis-association of monitorId %d with Interface %s", monitorId, interfaceName)),
+                String.format("Dis-association of monitorId %s with Interface %s", monitorId, interfaceName)),
                 MoreExecutors.directExecutor());
     }
 
     private void releaseIdForMonitoringInfo(MonitoringInfo info) {
-        Long monitorId = info.getId();
+        Uint32 monitorId = info.getId();
         EndpointType source = info.getSource().getEndpointType();
         String interfaceName = getInterfaceName(source);
         if (!Strings.isNullOrEmpty(interfaceName)) {
@@ -1202,7 +1207,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         return interfaceName;
     }
 
-    private void stopMonitoring(long monitorId) {
+    private void stopMonitoring(Uint32 monitorId) {
         updateMonitorStatusTo(monitorId, MonitorStatus.Stopped,
             currentStatus -> currentStatus != MonitorStatus.Stopped);
         if (!stopMonitoringTask(monitorId)) {
@@ -1210,7 +1215,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
         }
     }
 
-    private void updateMonitorStatusTo(final Long monitorId, final MonitorStatus newStatus,
+    private void updateMonitorStatusTo(final Uint32 monitorId, final MonitorStatus newStatus,
             final Predicate<MonitorStatus> isValidStatus) {
         final String monitorKey = monitorIdKeyCache.getUnchecked(monitorId);
         if (monitorKey == null) {
@@ -1240,12 +1245,11 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
             return tx.commit();
         }, MoreExecutors.directExecutor());
 
-        writeResult.addCallback(new FutureCallbackImpl(
-                String.format("Monitor status update for %d to %s", monitorId, newStatus.toString())),
+        writeResult.addCallback(new FutureCallbackImpl("Monitor status update for " + monitorId + " to " + newStatus),
                 MoreExecutors.directExecutor());
     }
 
-    private void resumeMonitoring(final long monitorId) {
+    private void resumeMonitoring(final Uint32 monitorId) {
         final ReadTransaction tx = dataBroker.newReadOnlyTransaction();
         FluentFuture<Optional<MonitoringInfo>> readInfoResult = tx.read(LogicalDatastoreType.OPERATIONAL,
                 getMonitoringInfoId(monitorId));
@@ -1254,7 +1258,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
 
             @Override
             public void onFailure(Throwable error) {
-                String msg = String.format("Unable to read monitoring info associated with monitor id %d", monitorId);
+                String msg = "Unable to read monitoring info associated with monitor id " + monitorId;
                 LOG.error("Monitor resume Failed. {}", msg, error);
                 tx.close();
             }
@@ -1269,8 +1273,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
 
                         @Override
                         public void onFailure(Throwable error) {
-                            String msg = String.format("Unable to read Monitoring profile associated with id %d",
-                                    info.getProfileId());
+                            String msg = "Unable to read Monitoring profile associated with id " + info.getProfileId();
                             LOG.warn("Monitor resume Failed. {}", msg, error);
                             tx.close();
                         }
@@ -1285,7 +1288,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
                                 LOG.debug("Monitor Resume - Scheduling monitoring task for Id: {}", monitorId);
                                 scheduleMonitoringTask(info, profile.getMonitorInterval());
                             } else {
-                                String msg = String.format("Monitoring profile associated with id %d is not present",
+                                String msg = String.format("Monitoring profile associated with id %s is not present",
                                         info.getProfileId());
                                 LOG.warn("Monitor resume Failed. {}", msg);
                             }
@@ -1293,7 +1296,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
                     }, MoreExecutors.directExecutor());
                 } else {
                     tx.close();
-                    String msg = String.format("Monitoring info associated with id %d is not present", monitorId);
+                    String msg = String.format("Monitoring info associated with id %s is not present", monitorId);
                     LOG.warn("Monitor resume Failed. {}", msg);
                 }
             }
@@ -1302,12 +1305,12 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
 
     @Override
     public void onInterfaceStateUp(String interfaceName) {
-        List<Long> monitorIds = getMonitorIds(interfaceName);
+        List<Uint32> monitorIds = getMonitorIds(interfaceName);
         if (monitorIds.isEmpty()) {
             LOG.warn("Could not get monitorId for interface: {}", interfaceName);
             return;
         }
-        for (Long monitorId : monitorIds) {
+        for (Uint32 monitorId : monitorIds) {
             LOG.debug("Resume monitoring on interface: {} with monitorId: {}", interfaceName, monitorId);
             resumeMonitoring(monitorId);
         }
@@ -1315,18 +1318,18 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
 
     @Override
     public void onInterfaceStateDown(String interfaceName) {
-        List<Long> monitorIds = getMonitorIds(interfaceName);
+        List<Uint32> monitorIds = getMonitorIds(interfaceName);
         if (monitorIds.isEmpty()) {
             LOG.warn("Could not get monitorIds for interface: {}", interfaceName);
             return;
         }
-        for (Long monitorId : monitorIds) {
+        for (Uint32 monitorId : monitorIds) {
             LOG.debug("Suspend monitoring on interface: {} with monitorId: {}", interfaceName, monitorId);
             stopMonitoring(monitorId);
         }
     }
 
-    private List<Long> getMonitorIds(String interfaceName) {
+    private List<Uint32> getMonitorIds(String interfaceName) {
         try {
             return txRunner.applyInterruptiblyWithNewReadOnlyTransactionAndClose(OPERATIONAL,
                 tx -> tx.read(getInterfaceMonitorMapId(interfaceName))).get().map(
@@ -1341,7 +1344,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
     @Override
     public void remove(@NonNull InstanceIdentifier<MonitoringState> instanceIdentifier,
                        @NonNull MonitoringState removedDataObject) {
-        final Long monitorId = removedDataObject.getMonitorId();
+        final Uint32 monitorId = removedDataObject.getMonitorId();
         LOG.debug("Monitor State remove listener invoked for monitor id: {}", monitorId);
 
         if (removedDataObject.getStatus() != MonitorStatus.Paused) {
@@ -1358,7 +1361,7 @@ public class AlivenessMonitor extends AbstractClusteredSyncDataTreeChangeListene
     public void update(@NonNull InstanceIdentifier<MonitoringState> instanceIdentifier,
                        @NonNull MonitoringState originalDataObject,
                        @NonNull MonitoringState updatedDataObject) {
-        final Long monitorId = updatedDataObject.getMonitorId();
+        final Uint32 monitorId = updatedDataObject.getMonitorId();
         LOG.debug("Monitor State update listener invoked for monitor id: {}", monitorId);
 
         if (updatedDataObject.getStatus() == MonitorStatus.Paused
index 8d7a7714b745e4f18da645022f80ede98fb318bc..1beacb7ae604ccbd37c42502f18867554f3c8447 100644 (file)
@@ -70,6 +70,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint32;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -256,7 +257,7 @@ public class HwVtepTunnelsStateHandler extends AbstractSyncDataTreeChangeListene
             return;
         }
         MonitorProfile profile;
-        long profileId = monitorInfo.getProfileId();
+        Uint32 profileId = monitorInfo.getProfileId();
         java.util.Optional<MonitorProfile> optProfile = alivenessMonitor.getMonitorProfile(profileId);
         if (optProfile.isPresent()) {
             profile = optProfile.get();
@@ -320,10 +321,12 @@ public class HwVtepTunnelsStateHandler extends AbstractSyncDataTreeChangeListene
 
     private void fillBfdParams(List<BfdParams> bfdParams, MonitorProfile profile) {
         setBfdParamForEnable(bfdParams, true);
-        bfdParams.add(getBfdParams(AlivenessMonitorConstants.BFD_PARAM_MIN_RX, Long.toString(profile.getMinRx())));
-        bfdParams.add(getBfdParams(AlivenessMonitorConstants.BFD_PARAM_MIN_TX, Long.toString(profile.getMinTx())));
-        bfdParams.add(
-                getBfdParams(AlivenessMonitorConstants.BFD_PARAM_DECAY_MIN_RX, Long.toString(profile.getDecayMinRx())));
+        bfdParams.add(getBfdParams(AlivenessMonitorConstants.BFD_PARAM_MIN_RX,
+                Long.toString(profile.getMinRx().toJava())));
+        bfdParams.add(getBfdParams(AlivenessMonitorConstants.BFD_PARAM_MIN_TX,
+                Long.toString(profile.getMinTx().toJava())));
+        bfdParams.add(getBfdParams(AlivenessMonitorConstants.BFD_PARAM_DECAY_MIN_RX,
+                Long.toString(profile.getDecayMinRx().toJava())));
         bfdParams.add(getBfdParams(AlivenessMonitorConstants.BFD_PARAM_FORWARDING_IF_RX, profile.getForwardingIfRx()));
         bfdParams.add(getBfdParams(AlivenessMonitorConstants.BFD_PARAM_CPATH_DOWN, profile.getCpathDown()));
         bfdParams.add(getBfdParams(AlivenessMonitorConstants.BFD_PARAM_CHECK_TNL_KEY, profile.getCheckTnlKey()));
index 6cbb213fbdb06fcf6714d93e04549e559e6e79ad..ec97ec541ded9ab29fca08ac061d31927f9d76d2 100644 (file)
@@ -31,6 +31,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.alivenessmonitor.rev
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.alivenessmonitor.rev160411.monitoring.states.MonitoringStateKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcError;
+import org.opendaylight.yangtools.yang.common.Uint32;
 
 public final class AlivenessMonitorUtil {
     private AlivenessMonitorUtil() {
@@ -42,17 +43,17 @@ public final class AlivenessMonitorUtil {
                 .child(MonitoringState.class, new MonitoringStateKey(keyId)).build();
     }
 
-    public static InstanceIdentifier<MonitoringInfo> getMonitoringInfoId(Long monitorId) {
+    public static InstanceIdentifier<MonitoringInfo> getMonitoringInfoId(Uint32 monitorId) {
         return InstanceIdentifier.builder(MonitorConfigs.class)
                 .child(MonitoringInfo.class, new MonitoringInfoKey(monitorId)).build();
     }
 
-    public static InstanceIdentifier<MonitorProfile> getMonitorProfileId(Long profileId) {
+    public static InstanceIdentifier<MonitorProfile> getMonitorProfileId(Uint32 profileId) {
         return InstanceIdentifier.builder(MonitorProfiles.class)
                 .child(MonitorProfile.class, new MonitorProfileKey(profileId)).build();
     }
 
-    public  static InstanceIdentifier<MonitoridKeyEntry> getMonitorMapId(Long keyId) {
+    public  static InstanceIdentifier<MonitoridKeyEntry> getMonitorMapId(Uint32 keyId) {
         return InstanceIdentifier.builder(MonitoridKeyMap.class)
                 .child(MonitoridKeyEntry.class, new MonitoridKeyEntryKey(keyId)).build();
     }
index b37d967893c85be10375376ea7792d29c22abb40..3d2bb87e39924a70cc7c95d934b22320298604a9 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index dab61e9b6f9d2afd2b657cc587a3010db3452dec..a3b31affee392cd60392b772298496470232ea32 100644 (file)
@@ -5,7 +5,6 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.arputil.internal;
 
 import static com.google.common.base.Preconditions.checkArgument;
@@ -17,10 +16,9 @@ import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.SettableFuture;
-import java.io.UnsupportedEncodingException;
-import java.math.BigInteger;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.ConcurrentHashMap;
@@ -30,7 +28,6 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.genius.arputil.api.ArpConstants;
 import org.opendaylight.genius.mdsalutil.MDSALUtil;
@@ -99,6 +96,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcError.ErrorType;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -216,7 +214,7 @@ public class ArpUtilImpl extends AbstractLifecycle implements OdlArputilService,
     @Override
     public ListenableFuture<RpcResult<SendArpRequestOutput>> sendArpRequest(SendArpRequestInput arpReqInput) {
         LOG.trace("rpc sendArpRequest invoked for ip {}", arpReqInput.getIpaddress());
-        BigInteger dpnId;
+        Uint64 dpnId;
         byte[] payload;
         String interfaceName = null;
         byte[] srcIpBytes;
@@ -243,8 +241,8 @@ public class ArpUtilImpl extends AbstractLifecycle implements OdlArputilService,
                 GetPortFromInterfaceOutput portResult = getPortFromInterface(interfaceName);
                 checkNotNull(portResult);
                 dpnId = portResult.getDpid();
-                Long portid = portResult.getPortno();
-                checkArgument(null != dpnId && !BigInteger.ZERO.equals(dpnId),
+                Long portid = portResult.getPortno().toJava();
+                checkArgument(null != dpnId && !Uint64.ZERO.equals(dpnId),
                     ArpConstants.DPN_NOT_FOUND_ERROR, interfaceName);
 
                 NodeConnectorRef ref = MDSALUtil.getNodeConnRef(dpnId, portid.toString());
@@ -292,7 +290,7 @@ public class ArpUtilImpl extends AbstractLifecycle implements OdlArputilService,
     }
 
     public ListenableFuture<RpcResult<TransmitPacketOutput>> sendPacketOut(
-            BigInteger dpnId, byte[] payload, NodeConnectorRef ref) {
+            Uint64 dpnId, byte[] payload, NodeConnectorRef ref) {
         NodeConnectorRef nodeConnectorRef = MDSALUtil.getNodeConnRef(dpnId, "0xfffffffd");
         return packetProcessingService.transmitPacket(new TransmitPacketInputBuilder().setPayload(payload)
                 .setNode(new NodeRef(InstanceIdentifier.builder(Nodes.class)
@@ -301,7 +299,7 @@ public class ArpUtilImpl extends AbstractLifecycle implements OdlArputilService,
     }
 
     private Future<RpcResult<TransmitPacketOutput>> sendPacketOutWithActions(
-            BigInteger dpnId, byte[] payload, NodeConnectorRef ref, List<Action> actions) {
+            Uint64 dpnId, byte[] payload, NodeConnectorRef ref, List<Action> actions) {
         NodeConnectorRef nodeConnectorRef = MDSALUtil.getNodeConnRef(dpnId, "0xfffffffd");
         TransmitPacketInput transmitPacketInput = new TransmitPacketInputBuilder().setPayload(payload)
                 .setNode(new NodeRef(InstanceIdentifier.builder(Nodes.class)
@@ -340,7 +338,7 @@ public class ArpUtilImpl extends AbstractLifecycle implements OdlArputilService,
     @Override
     public ListenableFuture<RpcResult<SendArpResponseOutput>> sendArpResponse(SendArpResponseInput input) {
         LOG.trace("sendArpResponse rpc invoked");
-        BigInteger dpnId;
+        Uint64 dpnId;
         byte[] payload;
         byte[] srcMac;
 
@@ -349,9 +347,9 @@ public class ArpUtilImpl extends AbstractLifecycle implements OdlArputilService,
             GetPortFromInterfaceOutput portResult = getPortFromInterface(interfaceName);
             checkNotNull(portResult);
             dpnId = portResult.getDpid();
-            Long portid = portResult.getPortno();
+            Long portid = portResult.getPortno().toJava();
             NodeConnectorRef ref = MDSALUtil.getNodeConnRef(dpnId, portid.toString());
-            checkArgument(null != dpnId && !BigInteger.ZERO.equals(dpnId),
+            checkArgument(null != dpnId && !Uint64.ZERO.equals(dpnId),
                 ArpConstants.DPN_NOT_FOUND_ERROR, interfaceName);
             checkNotNull(ref, ArpConstants.NODE_CONNECTOR_NOT_FOUND_ERROR, interfaceName);
 
@@ -360,7 +358,7 @@ public class ArpUtilImpl extends AbstractLifecycle implements OdlArputilService,
             byte[] srcIpBytes = getIpAddressBytes(input.getSrcIpaddress());
             byte[] dstIpBytes = getIpAddressBytes(input.getDstIpaddress());
             if (input.getSrcMacaddress() == null) {
-                srcMac = portResult.getPhyAddress().getBytes("UTF-8");
+                srcMac = portResult.getPhyAddress().getBytes(StandardCharsets.UTF_8);
             } else {
                 String macAddr = input.getSrcMacaddress().getValue();
                 srcMac = HexEncode.bytesFromHexString(macAddr);
@@ -375,8 +373,7 @@ public class ArpUtilImpl extends AbstractLifecycle implements OdlArputilService,
                     input.getSrcIpaddress().getIpv4Address().getValue(), HexEncode.bytesToHexStringFormat(srcMac),
                     HexEncode.bytesToHexStringFormat(dstMac), input.getDstIpaddress().getIpv4Address().getValue(),
                     dpnId);
-        } catch (UnknownHostException | PacketException | InterruptedException | UnsupportedEncodingException
-                | ExecutionException e) {
+        } catch (UnknownHostException | PacketException | InterruptedException | ExecutionException e) {
             LOG.error("failed to send arp response for {}: ", input.getSrcIpaddress(), e);
             return RpcResultBuilder.<SendArpResponseOutput>failed()
                     .withError(ErrorType.APPLICATION, e.getMessage(), e).buildFuture();
@@ -392,8 +389,8 @@ public class ArpUtilImpl extends AbstractLifecycle implements OdlArputilService,
 
         if (pktInReason == SendToController.class) {
             try {
-                BigInteger dpnId = extractDpnId(packetReceived);
-                int tableId = packetReceived.getTableId().getValue();
+                Uint64 dpnId = extractDpnId(packetReceived);
+                int tableId = packetReceived.getTableId().getValue().toJava();
 
                 byte[] data = packetReceived.getPayload();
                 Ethernet ethernet = new Ethernet();
@@ -452,7 +449,7 @@ public class ArpUtilImpl extends AbstractLifecycle implements OdlArputilService,
         LOG.debug("metadata received is {} ", metadata);
 
         GetInterfaceFromIfIndexInputBuilder ifIndexInputBuilder = new GetInterfaceFromIfIndexInputBuilder();
-        BigInteger lportTag = MetaDataUtil.getLportFromMetadata(metadata.getMetadata());
+        Uint64 lportTag = MetaDataUtil.getLportFromMetadata(metadata.getMetadata());
 
         ifIndexInputBuilder.setIfIndex(lportTag.intValue());
         GetInterfaceFromIfIndexInput input = ifIndexInputBuilder.build();
@@ -501,7 +498,7 @@ public class ArpUtilImpl extends AbstractLifecycle implements OdlArputilService,
     }
 
     private void fireArpRespRecvdNotification(String interfaceName, InetAddress srcInetAddr, byte[] srcMacAddressBytes,
-            BigInteger dpnId, int tableId, BigInteger metadata, InetAddress dstInetAddr, byte[] dstMacAddressBytes)
+            Uint64 dpnId, int tableId, Uint64 metadata, InetAddress dstInetAddr, byte[] dstMacAddressBytes)
                     throws InterruptedException {
         arpRespRecvd.mark();
 
@@ -530,7 +527,7 @@ public class ArpUtilImpl extends AbstractLifecycle implements OdlArputilService,
     }
 
     private void fireArpReqRecvdNotification(String interfaceName, InetAddress srcInetAddr, byte[] srcMac,
-            InetAddress dstInetAddr, BigInteger dpnId, int tableId, BigInteger metadata) throws InterruptedException {
+            InetAddress dstInetAddr, Uint64 dpnId, int tableId, Uint64 metadata) throws InterruptedException {
         arpReqRecvd.mark();
         String macAddress = NWUtil.toStringMacAddress(srcMac);
         ArpRequestReceivedBuilder builder = new ArpRequestReceivedBuilder();
@@ -568,7 +565,7 @@ public class ArpUtilImpl extends AbstractLifecycle implements OdlArputilService,
         }
     }
 
-    private BigInteger extractDpnId(PacketReceived packetReceived) {
+    private Uint64 extractDpnId(PacketReceived packetReceived) {
         NodeKey nodeKey = packetReceived.getIngress().getValue().firstKeyOf(Node.class);
         String nodeKeyString = nodeKey.getId().getValue();
 
@@ -577,6 +574,6 @@ public class ArpUtilImpl extends AbstractLifecycle implements OdlArputilService,
             return null;
         }
 
-        return new BigInteger(nodeKeyString.substring(OPENFLOW_PFX.length()));
+        return Uint64.valueOf(nodeKeyString.substring(OPENFLOW_PFX.length()));
     }
 }
index b0041aa2674eac2e7f8244a0f9c8c6f8658cd339..f417a930da2f2e2044bd01560285c23b787fa126 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index 790702877a19aa43d0e274e511c93622f43d5406..e91ac51853e0bb457fcc0763a1f89271892422e8 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index 05cfdb5281a5f05fe2e496896d735972e15bcb94..e793ac6e3799d0982bdb2c2e75376350df7da8b5 100644 (file)
@@ -45,7 +45,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
     <dependency>
       <groupId>org.opendaylight.openflowplugin.model</groupId>
       <artifactId>model-flow-service</artifactId>
-      <version>${openflowplugin.version}</version>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
index 3ac20088c8091df99ad997c57d1bf0dee977ae00..4ba466fb5e281b26957e336def0e71ffa2159781 100644 (file)
@@ -7,11 +7,10 @@
  */
 package org.opendaylight.genius.cloudscaler.api;
 
-import java.math.BigInteger;
 import java.util.List;
 import java.util.function.Function;
-
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public interface TombstonedNodeManager {
 
@@ -21,13 +20,13 @@ public interface TombstonedNodeManager {
      * @return true if the supllied dpn is getting scaled in
      * @throws ReadFailedException throws read failed exception
      */
-    boolean isDpnTombstoned(BigInteger dpnId) throws ReadFailedException;
+    boolean isDpnTombstoned(Uint64 dpnId) throws ReadFailedException;
 
     /**
      * Add the listener callback which will be invoked upon recovery of scaled in dpn.
      * @param callback callback to be invoked on recovery
      */
-    void addOnRecoveryCallback(Function<BigInteger, Void> callback);
+    void addOnRecoveryCallback(Function<Uint64, Void> callback);
 
     /**
      * Filters the list of dpns which are not scaled in.
@@ -35,5 +34,5 @@ public interface TombstonedNodeManager {
      * @return filtered list of dpns which are not scaled in
      * @throws ReadFailedException throws read failed exception
      */
-    List<BigInteger> filterTombStoned(List<BigInteger> dpns) throws ReadFailedException;
+    List<Uint64> filterTombStoned(List<Uint64> dpns) throws ReadFailedException;
 }
index de8fd53f863f5558b6ded2cbc39ac610804759af..ac95774c2538e06cbd24da3d3370c3b00c110ef6 100644 (file)
@@ -44,7 +44,6 @@
     <dependency>
       <groupId>org.opendaylight.openflowplugin.model</groupId>
       <artifactId>model-flow-service</artifactId>
-      <version>${openflowplugin.version}</version>
     </dependency>
     <dependency>
         <groupId>commons-net</groupId>
@@ -98,7 +97,6 @@
     <dependency>
       <groupId>org.opendaylight.infrautils</groupId>
       <artifactId>caches-api</artifactId>
-      <version>${genius.infrautils.version}</version>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.yangtools</groupId>
     <dependency>
       <groupId>org.opendaylight.openflowplugin</groupId>
       <artifactId>openflowplugin-extension-nicira</artifactId>
-      <version>${openflowplugin.version}</version>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.openflowplugin.model</groupId>
       <artifactId>model-flow-base</artifactId>
-      <version>${openflowplugin.version}</version>
     </dependency>
 
   </dependencies>
index 9c06b4c00b900cf72104fc9152a45943c738b376..9ba27528d9c20079c4f4b0c2d77a1e84d246aa66 100644 (file)
@@ -15,13 +15,10 @@ import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.SettableFuture;
-
-import java.math.BigInteger;
 import java.util.concurrent.TimeUnit;
 import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
@@ -59,6 +56,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -83,7 +81,7 @@ public class CloudscalerRpcServiceImpl implements CloudscalerRpcService {
     private static RpcResult<ScaleinComputesEndOutput> DONE_RPC_RESPONSE = RpcResultBuilder
             .<ScaleinComputesEndOutput>success().withResult(DONE).build();
 
-    private DataBroker dataBroker;
+    private final DataBroker dataBroker;
     private final ComputeNodeManager computeNodeManager;
     private final ManagedNewTransactionRunner txRunner;
     private final ItmTepClusteredListener itmTepClusteredListener;
@@ -91,15 +89,16 @@ public class CloudscalerRpcServiceImpl implements CloudscalerRpcService {
     //The following timestamp is not persisted across reboots
     //upon reboot the timestamp will have a default value of that system timestamp
     //this way scalein end that is triggered after cluster reboot will still honour the 2 min delay
-    private LoadingCache<BigInteger, Long> tepDeleteTimeStamp = CacheBuilder.newBuilder()
+    private final LoadingCache<Uint64, Long> tepDeleteTimeStamp = CacheBuilder.newBuilder()
             .expireAfterWrite(60, TimeUnit.MINUTES)
-            .build(new CacheLoader<BigInteger, Long>() {
-                public Long load(BigInteger dpnId) {
+            .build(new CacheLoader<Uint64, Long>() {
+                @Override
+                public Long load(Uint64 dpnId) {
                     return System.currentTimeMillis();
                 }
             });
 
-    public static final FutureCallback<Void> DEFAULT_CALLBACK = new FutureCallback<Void>() {
+    public static final FutureCallback<Void> DEFAULT_CALLBACK = new FutureCallback<>() {
         @Override
         public void onSuccess(Void result) {
             LOG.debug("Success in Datastore operation");
@@ -177,7 +176,7 @@ public class CloudscalerRpcServiceImpl implements CloudscalerRpcService {
                 }
                 Long tepDeletedTimeStamp = tepDeleteTimeStamp.get(computeNode.getDpnid());
                 Long currentTime = System.currentTimeMillis();
-                if ((currentTime - tepDeletedTimeStamp) > DELETE_DELAY * 1000L) {
+                if (currentTime - tepDeletedTimeStamp > DELETE_DELAY * 1000L) {
                     scaleinComputesEnd2(input);
                 } else {
                     return Futures.immediateFuture(IN_PROGRESS_RPC_RESPONSE);
index f7030de63ed282609fc8df447f27bbe7315cbaa1..bb5d7bfe84be2ab4bfe04f97767deeaa3c30ad14 100644 (file)
@@ -8,8 +8,6 @@
 package org.opendaylight.genius.cloudscaler.rpcservice;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-
-import java.math.BigInteger;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
@@ -17,7 +15,6 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ExecutorService;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
@@ -39,6 +36,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.TopologyKey;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -49,10 +47,11 @@ public class ComputeNodeManager {
 
     private final DataBroker dataBroker;
 
-    private InstanceIdDataObjectCache<ComputeNode> computeNodeCache;
-    private InstanceIdDataObjectCache<Node> ovsdbTopologyNodeCache;
-    private Map<BigInteger, ComputeNode> dpnIdVsComputeNode;
-    private ExecutorService executorService = Executors.newSingleThreadExecutor("compute-node-manager", LOG);
+    private final InstanceIdDataObjectCache<ComputeNode> computeNodeCache;
+    private final InstanceIdDataObjectCache<Node> ovsdbTopologyNodeCache;
+    private final Map<Uint64, ComputeNode> dpnIdVsComputeNode;
+    // FIXME: this service is never shut down
+    private final ExecutorService executorService = Executors.newSingleThreadExecutor("compute-node-manager", LOG);
 
     @Inject
     @SuppressFBWarnings({"URF_UNREAD_FIELD", "NP_LOAD_OF_KNOWN_NULL_VALUE"})
@@ -60,7 +59,7 @@ public class ComputeNodeManager {
                               CacheProvider cacheProvider) {
         this.dataBroker = dataBroker;
         this.dpnIdVsComputeNode = new ConcurrentHashMap<>();
-        this.computeNodeCache = new InstanceIdDataObjectCache<ComputeNode>(ComputeNode.class, dataBroker,
+        this.computeNodeCache = new InstanceIdDataObjectCache<>(ComputeNode.class, dataBroker,
                 LogicalDatastoreType.CONFIGURATION,
                 InstanceIdentifier.builder(ComputeNodes.class).child(ComputeNode.class).build(),
                 cacheProvider) {
@@ -76,7 +75,7 @@ public class ComputeNodeManager {
                 dpnIdVsComputeNode.remove(computeNode.getDpnid());
             }
         };
-        this.ovsdbTopologyNodeCache = new InstanceIdDataObjectCache<Node>(Node.class, dataBroker,
+        this.ovsdbTopologyNodeCache = new InstanceIdDataObjectCache<>(Node.class, dataBroker,
                 LogicalDatastoreType.OPERATIONAL,
                 getWildcardPath(),
                 cacheProvider) {
@@ -107,7 +106,7 @@ public class ComputeNodeManager {
     public void add(@NonNull Node node) throws TransactionCommitFailedException {
         OvsdbBridgeAugmentation bridgeAugmentation = node.augmentation(OvsdbBridgeAugmentation.class);
         if (bridgeAugmentation != null && bridgeAugmentation.getBridgeOtherConfigs() != null) {
-            BigInteger datapathid = getDpnIdFromBridge(bridgeAugmentation);
+            Uint64 datapathid = getDpnIdFromBridge(bridgeAugmentation);
             Optional<BridgeOtherConfigs> otherConfigOptional = bridgeAugmentation.getBridgeOtherConfigs()
                     .stream()
                     .filter(otherConfig -> otherConfig.getBridgeOtherConfigKey().equals("dp-desc"))
@@ -145,9 +144,9 @@ public class ComputeNodeManager {
                 .build();
     }
 
-    private BigInteger getDpnIdFromBridge(OvsdbBridgeAugmentation bridgeAugmentation) {
+    private Uint64 getDpnIdFromBridge(OvsdbBridgeAugmentation bridgeAugmentation) {
         String datapathIdStr = bridgeAugmentation.getDatapathId().getValue().replace(":", "");
-        return new BigInteger(datapathIdStr, 16);
+        return Uint64.valueOf(datapathIdStr, 16);
     }
 
     public void putComputeDetailsInConfigDatastore(InstanceIdentifier<ComputeNode> computeIid,
@@ -159,7 +158,7 @@ public class ComputeNodeManager {
         //LOG.info("Write comute node details {}", computeNode);
     }
 
-    private void logErrorIfComputeNodeIsAlreadyTaken(BigInteger datapathid, String nodeId,
+    private void logErrorIfComputeNodeIsAlreadyTaken(Uint64 datapathid, String nodeId,
                                                      com.google.common.base.Optional<ComputeNode> optional) {
         ComputeNode existingNode = optional.get();
         if (!Objects.equals(existingNode.getNodeid(), nodeId)) {
@@ -178,7 +177,7 @@ public class ComputeNodeManager {
                 .child(Node.class);
     }
 
-    public ComputeNode getComputeNode(BigInteger dpnId) {
+    public ComputeNode getComputeNode(Uint64 dpnId) {
         return dpnIdVsComputeNode.get(dpnId);
     }
 }
index 41c32e91d651947f9d74c730cc2993c9e440adf5..c3d7ac21425d06960c6211d1e126c60529e5c220 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.cloudscaler.rpcservice;
 
-import java.math.BigInteger;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
@@ -17,7 +16,6 @@ import java.util.stream.Collectors;
 import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
@@ -28,6 +26,7 @@ import org.opendaylight.infrautils.utils.concurrent.Executors;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.cloudscaler.rpcs.rev171220.ComputeNodes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.cloudscaler.rpcs.rev171220.compute.nodes.ComputeNode;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -38,11 +37,12 @@ public class TombstonedNodeManagerImpl implements TombstonedNodeManager {
 
     private final DataBroker dataBroker;
     private final CacheProvider cacheProvider;
-    private final Set<Function<BigInteger, Void>> callbacks = ConcurrentHashMap.newKeySet();
+    private final Set<Function<Uint64, Void>> callbacks = ConcurrentHashMap.newKeySet();
     private final ComputeNodeManager computeNodeManager;
 
     private InstanceIdDataObjectCache<ComputeNode> computeNodeCache;
-    private ExecutorService executorService = Executors.newSingleThreadExecutor("tombstone-node-manager", LOG);
+    // FIXME: this service is never shut down
+    private final ExecutorService executorService = Executors.newSingleThreadExecutor("tombstone-node-manager", LOG);
 
     @Inject
     public TombstonedNodeManagerImpl(DataBroker dataBroker,
@@ -55,7 +55,7 @@ public class TombstonedNodeManagerImpl implements TombstonedNodeManager {
     }
 
     void init() {
-        this.computeNodeCache = new InstanceIdDataObjectCache<ComputeNode>(ComputeNode.class, dataBroker,
+        this.computeNodeCache = new InstanceIdDataObjectCache<>(ComputeNode.class, dataBroker,
                 LogicalDatastoreType.CONFIGURATION,
                 InstanceIdentifier.builder(ComputeNodes.class).child(ComputeNode.class).build(),
                 cacheProvider) {
@@ -78,7 +78,7 @@ public class TombstonedNodeManagerImpl implements TombstonedNodeManager {
     }
 
     @Override
-    public boolean isDpnTombstoned(BigInteger dpnId) throws ReadFailedException {
+    public boolean isDpnTombstoned(Uint64 dpnId) throws ReadFailedException {
         if (dpnId == null) {
             return false;
         }
@@ -90,12 +90,12 @@ public class TombstonedNodeManagerImpl implements TombstonedNodeManager {
     }
 
     @Override
-    public void addOnRecoveryCallback(Function<BigInteger, Void> callback) {
+    public void addOnRecoveryCallback(Function<Uint64, Void> callback) {
         callbacks.add(callback);
     }
 
     @Override
-    public List<BigInteger> filterTombStoned(List<BigInteger> dpns) throws ReadFailedException {
+    public List<Uint64> filterTombStoned(List<Uint64> dpns) throws ReadFailedException {
         return dpns.stream().filter((dpn) -> {
             try {
                 return !isDpnTombstoned(dpn);
index 61c0f9c4218489f1ad1ba3c64f04002c9a7c2915..87797f6d71de60190176b78912df5120554e199e 100644 (file)
@@ -14,16 +14,13 @@ import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastor
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
 import com.google.common.util.concurrent.ListenableFuture;
-
 import java.math.BigInteger;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
-
 import javax.inject.Inject;
-
 import org.awaitility.Awaitility;
 import org.awaitility.core.ConditionFactory;
 import org.junit.Before;
@@ -68,6 +65,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -79,10 +77,10 @@ public class CloudScalerServiceTest {
     private static final String NODEID2  = "ovsdb://uuid/2de70a99-29a5-4f2a-b87e-96d6ed57e412/bridge/br-int";
     private static final String NODEID3  = "ovsdb://uuid/2de70a99-29a5-4f2a-b87e-96d6ed57e413/bridge/br-int";
 
-    private static final BigInteger DPN1 = new BigInteger("1");
-    private static final BigInteger DPN2 = new BigInteger("2");
-    private static final BigInteger DPN3 = new BigInteger("3");
-    private static final BigInteger DPN4 = new BigInteger("4");
+    private static final Uint64 DPN1 = Uint64.ONE;
+    private static final Uint64 DPN2 = Uint64.valueOf(2);
+    private static final Uint64 DPN3 = Uint64.valueOf(3);
+    private static final Uint64 DPN4 = Uint64.valueOf(4);
 
     private static final String DPN1_DATAPATHID = new String("00:00:00:00:00:00:00:01");
     private static final String DPN2_DATAPATHID = new String("00:00:00:00:00:00:00:02");
@@ -147,7 +145,7 @@ public class CloudScalerServiceTest {
     }
 
     private InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node>
-        buildOpenflowNodeIid(BigInteger dpnid) {
+        buildOpenflowNodeIid(Uint64 dpnid) {
         return InstanceIdentifier.builder(Nodes.class)
                 .child(org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node.class,
                         new org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey(
@@ -156,7 +154,7 @@ public class CloudScalerServiceTest {
     }
 
     private org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node buildOpenflowNode(
-            BigInteger dpnId) {
+            Uint64 dpnId) {
         org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder nodeBuilder
                 = new org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeBuilder();
         nodeBuilder.setId(new org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId(
@@ -237,7 +235,7 @@ public class CloudScalerServiceTest {
             throws ExecutionException, InterruptedException, ReadFailedException, TransactionCommitFailedException {
 
         testScaleinComputesStartRpc();
-        List<BigInteger> filtered = tombstonedNodeManager.filterTombStoned(Lists.newArrayList(DPN1, DPN2, DPN3, DPN4));
+        List<Uint64> filtered = tombstonedNodeManager.filterTombStoned(Lists.newArrayList(DPN1, DPN2, DPN3, DPN4));
         assertTrue("Dpn 1 and 2 should be filtered ",
                 Sets.difference(Sets.newHashSet(DPN3, DPN4), Sets.newHashSet(filtered)).isEmpty());
     }
@@ -245,7 +243,7 @@ public class CloudScalerServiceTest {
     @Test public void testRecoveryCallback()
             throws ExecutionException, InterruptedException, ReadFailedException, TransactionCommitFailedException {
 
-        Set<BigInteger> nodesRecoverd = new HashSet<>();
+        Set<Uint64> nodesRecoverd = new HashSet<>();
         tombstonedNodeManager.addOnRecoveryCallback((dpnId) -> {
             nodesRecoverd.add(dpnId);
             return null;
@@ -254,7 +252,7 @@ public class CloudScalerServiceTest {
         AWAITER.until(() -> nodesRecoverd.contains(DPN1));
     }
 
-    private BridgeRefEntry buildBridgeRefEntry(BigInteger dpnId, String nodeId) {
+    private BridgeRefEntry buildBridgeRefEntry(Uint64 dpnId, String nodeId) {
         return new BridgeRefEntryBuilder()
             .setDpid(dpnId)
             .setBridgeReference(new OvsdbBridgeRef(buildNodeIid(nodeId)))
index f64b9784f341dde0d5479029c7805a015668a31d..7917f357e35805b8380a9392d80b75dd86286c62 100644 (file)
@@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index cae76faf2e2ab7ef79283b098d0f6fa7fd404107..a49ccbc21f37790b90f2c262c802863deb7e2410 100644 (file)
@@ -10,7 +10,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>4.0.6</version>
+    <version>5.0.3</version>
     <relativePath/>
   </parent>
 
index d0e3de1943bba8e05bf57610294c91c5ac780d56..b3e1caa39ed3cd4be18cf7e43ff50d5f8f98c8fe 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent</artifactId>
-        <version>5.0.2</version>
+        <version>6.0.0</version>
         <relativePath/>
     </parent>
 
index 19f06b299421e42e5f659e3b5a24b769b59e566e..876b4552cd58394e025cdde79d34ee355e12f287 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index 9707aa46265ad81f5c0f78a179a3baec9d88263d..1d028a064dee74c7a1ea4e075497a6141360ec87 100644 (file)
@@ -29,7 +29,7 @@
       <dependency>
         <groupId>org.opendaylight.yangtools</groupId>
         <artifactId>yangtools-artifacts</artifactId>
-        <version>3.0.5</version>
+        <version>4.0.1</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
@@ -43,7 +43,7 @@
       <dependency>
         <groupId>org.opendaylight.mdsal</groupId>
         <artifactId>mdsal-artifacts</artifactId>
-        <version>4.0.6</version>
+        <version>5.0.3</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
index 60f7d3247e8cc530831f90d73faeb5baee37caa1..62b9957862ab59e4e913b1c83e9292ad34f4b4e4 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.genius.testutils;
 
 import static org.opendaylight.yangtools.testutils.mockito.MoreAnswers.realOrException;
 
-import java.math.BigInteger;
 import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.ConcurrentHashMap;
@@ -24,6 +23,7 @@ import org.opendaylight.genius.testutils.interfacemanager.InterfaceHelper;
 import org.opendaylight.genius.testutils.interfacemanager.InterfaceStateHelper;
 import org.opendaylight.genius.testutils.interfacemanager.TunnelInterfaceDetails;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * IInterfaceManager implementation for tests.
@@ -147,12 +147,12 @@ public abstract class TestInterfaceManager implements IInterfaceManager {
     }
 
     @Override
-    public BigInteger getDpnForInterface(String interfaceName) {
+    public Uint64 getDpnForInterface(String interfaceName) {
         return interfaceInfos.get(interfaceName).getDpId();
     }
 
     @Override
-    public BigInteger getDpnForInterface(Interface intrface) {
+    public Uint64 getDpnForInterface(Interface intrface) {
         return interfaceInfos.get(intrface.getName()).getDpId();
     }
 
index 6ae8a346d48b51f6e70772d37728fcde41cf318d..bc7faf5353445e9bf05da21ccba14461b08b0b27 100644 (file)
@@ -8,11 +8,8 @@
 package org.opendaylight.genius.testutils.interfacemanager;
 
 import com.google.common.collect.Lists;
-import java.math.BigInteger;
-
 import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
-
 import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.rev170119.Other;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.InterfacesState;
@@ -26,6 +23,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.PhysAddress;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public final class InterfaceStateHelper {
 
@@ -40,9 +38,9 @@ public final class InterfaceStateHelper {
     }
 
     public static Interface buildStateFromInterfaceInfo(InterfaceInfo interfaceInfo) {
-        BigInteger dpId = interfaceInfo.getDpId();
+        Uint64 dpId = interfaceInfo.getDpId();
         int portno = interfaceInfo.getPortNo();
-        NodeConnectorId nodeConnectorId = new NodeConnectorId("openflow:" + dpId.toString() + ":" + portno);
+        NodeConnectorId nodeConnectorId = new NodeConnectorId("openflow:" + dpId + ":" + portno);
         return new InterfaceBuilder()
                 .setType(Other.class)
                 .setIfIndex(interfaceInfo.getInterfaceTag())
index 42b7ca37e90a8b89526870562ce982d3735361c2..75cc7cbdcdd324af81478774844098e9b200e834 100644 (file)
@@ -9,10 +9,8 @@ package org.opendaylight.genius.testutils.itm;
 
 import com.google.common.collect.Lists;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
-
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.AddExternalTunnelEndpointInput;
@@ -64,28 +62,30 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.S
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.SetBfdParamOnTunnelOutput;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public final class ItmRpcTestImpl implements ItmRpcService {
 
-    private final Map<BigInteger, IpAddress> tepIps = new ConcurrentHashMap<>();
-    private final Map<BigInteger, Map<String, String>> interfaceNames = new ConcurrentHashMap<>();
-    private final Map<BigInteger, Map<String, String>> externalInterfaceNames = new ConcurrentHashMap<>();
+    // FIXME: access is complete synchronized, why are these ConcurrentHashMaps???
+    private final Map<Uint64, IpAddress> tepIps = new ConcurrentHashMap<>();
+    private final Map<Uint64, Map<String, String>> interfaceNames = new ConcurrentHashMap<>();
+    private final Map<Uint64, Map<String, String>> externalInterfaceNames = new ConcurrentHashMap<>();
 
-    public synchronized void addDpn(BigInteger dpnId, String tepIp) {
+    public synchronized void addDpn(Uint64 dpnId, String tepIp) {
         tepIps.put(dpnId, IpAddressBuilder.getDefaultInstance(tepIp));
     }
 
-    public synchronized void addInterface(BigInteger dpnId, String dstTep, String interfaceName) {
+    public synchronized void addInterface(Uint64 dpnId, String dstTep, String interfaceName) {
         interfaceNames.putIfAbsent(dpnId, new ConcurrentHashMap<>());
         interfaceNames.get(dpnId).put(dstTep, interfaceName);
     }
 
-    public synchronized void addL2GwInterface(BigInteger dpnId, String nodeId, String interfaceName) {
+    public synchronized void addL2GwInterface(Uint64 dpnId, String nodeId, String interfaceName) {
         externalInterfaceNames.putIfAbsent(dpnId, new ConcurrentHashMap<>());
         externalInterfaceNames.get(dpnId).put(nodeId, interfaceName);
     }
 
-    public synchronized void addExternalInterface(BigInteger dpnId, String dstTep, String interfaceName) {
+    public synchronized void addExternalInterface(Uint64 dpnId, String dstTep, String interfaceName) {
         //dstTep = IpAddressBuilder.getDefaultInstance(dstTep).toString();
         externalInterfaceNames.putIfAbsent(dpnId, new ConcurrentHashMap<>());
         externalInterfaceNames.get(dpnId).put(dstTep, interfaceName);
@@ -162,7 +162,7 @@ public final class ItmRpcTestImpl implements ItmRpcService {
     @Override
     public synchronized ListenableFuture<RpcResult<GetExternalTunnelInterfaceNameOutput>>
             getExternalTunnelInterfaceName(GetExternalTunnelInterfaceNameInput input) {
-        String interfaceName = externalInterfaceNames.get(new BigInteger(input.getSourceNode(), 10))
+        String interfaceName = externalInterfaceNames.get(Uint64.valueOf(input.getSourceNode()))
                 .get(input.getDestinationNode());
         GetExternalTunnelInterfaceNameOutput output = new GetExternalTunnelInterfaceNameOutputBuilder()
                 .setInterfaceName(interfaceName)
index 00c213d724e45029b516aabc14b90f6a1f0ddbfe..f8c5a03e5d6ed1474a8fdfce9ab89b74e928c894 100644 (file)
@@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>5.0.2</version>
+        <version>6.0.0</version>
         <relativePath/>
     </parent>
 
index 79a64cde18d08ff94c035e31fb3e591e9e364a05..ca845ec05500a9bd4d9a8a51048ec755c20ac8ec 100644 (file)
@@ -7,6 +7,7 @@
  */
 package org.opendaylight.genius.fcapsmanager.alarmmanager;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.lang.management.ManagementFactory;
 import java.util.Set;
 import java.util.TreeSet;
@@ -46,6 +47,8 @@ public class AlarmNotificationListeners implements Runnable {
      * Platform dependent bundle injects its handle and it is retrieved in the
      * method.
      */
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private AlarmServiceFacade getAlarmServiceSPI() {
         AlarmServiceFacade service = null;
         if (context != null) {
index bafaf9da6ace682bf88e09bd2f96010c1605b5e3..a4588a17b5d002663fc9be0a809ae5650cab17fa 100644 (file)
@@ -7,6 +7,7 @@
  */
 package org.opendaylight.genius.fcapsmanager.countermanager;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.lang.management.ManagementFactory;
 import java.util.Map;
 import java.util.concurrent.ScheduledExecutorService;
@@ -46,6 +47,8 @@ public class Poller {
     /**
      * Platform dependent bundle injects its handle and it is retrieved in the method.
      */
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private PMServiceFacade getPMServiceSPI() {
         PMServiceFacade service = null;
         if (bundleContext != null) {
index c677438b6d72e17456a1e16831f4c10ee2b6e55f..2639c03eaa6917473dd2451e8cb42a7bed0e047b 100644 (file)
@@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>5.0.2</version>
+        <version>6.0.0</version>
         <relativePath/>
     </parent>
 
index 13c3a9743021ec4047ab71f9f71d8c3a458d3f14..0107f4bd5f9e91b58da9d0d0a8ef17028ac61767 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>feature-repo-parent</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index d3d5577165a302bf82b488ea8fe82a9fb61437e8..8811dd80a15e47ce4c441ab5af657845d5e5a824 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
@@ -27,7 +27,7 @@
       <dependency>
         <groupId>org.opendaylight.mdsal</groupId>
         <artifactId>mdsal-artifacts</artifactId>
-        <version>4.0.6</version>
+        <version>5.0.3</version>
         <scope>import</scope>
         <type>pom</type>
       </dependency>
index d1d06be237006dde797e15002f81b8427bc0d083..68914ceb46ef2a748ea3a584b0e4c354c6185e6d 100644 (file)
@@ -8,6 +8,6 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-genius-api">
     <feature name="odl-genius-api">
-        <feature version="[5,6)">odl-apache-commons-net</feature>
+        <feature version="[6,7)">odl-apache-commons-net</feature>
     </feature>
 </features>
index a16f6334d675de1eaa72dcb60f63c59565350fef..42036898329aa122b7d46da21907465b28488d40 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index 9822fff16a693230648605986272bad8551bcf54..16e1bef8a6917556b45cf13a88cbd2a0914e262f 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index b594dc69510d21516508852367e9582ef8b9b31a..be2ba05d01c3297c05f2b9c30351d629974f5add 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index 5e43f0753af47b99e54abd5e433145ab451f734b..bef7502b00bf1df9617d1364efc9e7afa88bf33c 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>single-feature-parent</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index 69e0ca2ded47d9a0a6d8e041231fe5c22dd0dc06..e5197b04f3dddef83ce982551cd04f2bf08188ae 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>5.0.2</version>
+        <version>6.0.0</version>
         <relativePath/>
     </parent>
 
index 8debd034b5b394c9e93a17efaf2a1071f8b34d54..f0c0322484efa246ffc93c39c7beeaa94309e767 100644 (file)
@@ -87,6 +87,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.lockmanager.rev16041
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.OperationFailedException;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.Uint32;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -177,16 +178,17 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
 
     public boolean updateLocalIdPoolCache(IdPool idPool, String parentPoolName) {
         AvailableIdsHolder availableIdsHolder = idPool.getAvailableIdsHolder();
-        AvailableIdHolder availableIdHolder = new AvailableIdHolder(idUtils, availableIdsHolder.getStart(),
-                availableIdsHolder.getEnd());
+        AvailableIdHolder availableIdHolder = new AvailableIdHolder(idUtils, availableIdsHolder.getStart().toJava(),
+                availableIdsHolder.getEnd().toJava());
         availableIdHolder.setCur(availableIdsHolder.getCursor());
         ReleasedIdsHolder releasedIdsHolder = idPool.getReleasedIdsHolder();
-        ReleasedIdHolder releasedIdHolder = new ReleasedIdHolder(idUtils, releasedIdsHolder.getDelayedTimeSec());
-        releasedIdHolder.setAvailableIdCount(releasedIdsHolder.getAvailableIdCount());
+        ReleasedIdHolder releasedIdHolder = new ReleasedIdHolder(idUtils,
+                                                        releasedIdsHolder.getDelayedTimeSec().toJava());
+        releasedIdHolder.setAvailableIdCount(releasedIdsHolder.getAvailableIdCount().toJava());
         List<DelayedIdEntry> delayedIdEntryInCache = releasedIdsHolder.nonnullDelayedIdEntries()
                 .stream()
                 .map(delayedIdEntry -> new DelayedIdEntry(delayedIdEntry
-                        .getId(), delayedIdEntry.getReadyTimeSec()))
+                        .getId().toJava(), delayedIdEntry.getReadyTimeSec().toJava()))
                 .sorted(comparing(DelayedIdEntry::getReadyTimeSec))
                 .collect(toCollection(ArrayList::new));
 
@@ -205,8 +207,8 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
     @Override
     public ListenableFuture<RpcResult<CreateIdPoolOutput>> createIdPool(CreateIdPoolInput input) {
         LOG.info("createIdPool called with input {}", input);
-        long low = input.getLow();
-        long high = input.getHigh();
+        long low = input.getLow().toJava();
+        long high = input.getHigh().toJava();
         long blockSize = idUtils.computeBlockSize(low, high);
         return FutureRpcResults.fromListenableFuture(LOG, "createIdPool", input, () -> {
             String poolName = input.getPoolName().intern();
@@ -234,13 +236,13 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
         return FutureRpcResults.fromBuilder(LOG, "allocateId", input, () -> {
             String localPoolName = idUtils.getLocalPoolName(poolName);
             // allocateIdFromLocalPool method returns a list of IDs with one element. This element is obtained by get(0)
-            long newIdValue = allocateIdFromLocalPool(poolName, localPoolName, idKey, 1).get(0);
+            long newIdValue = allocateIdFromLocalPool(poolName, localPoolName, idKey, 1).get(0).toJava();
             return new AllocateIdOutputBuilder().setIdValue(newIdValue);
         }).onFailure(e -> completeExceptionallyIfPresent(poolName, idKey, e)).build();
     }
 
     private void completeExceptionallyIfPresent(String poolName, String idKey, Throwable exception) {
-        CompletableFuture<List<Long>> completableFuture =
+        CompletableFuture<List<Uint32>> completableFuture =
                 idUtils.removeAllocatedIds(idUtils.getUniqueKey(poolName, idKey));
         if (completableFuture != null) {
             completableFuture.completeExceptionally(exception);
@@ -251,11 +253,11 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
     public ListenableFuture<RpcResult<AllocateIdRangeOutput>> allocateIdRange(AllocateIdRangeInput input) {
         String idKey = input.getIdKey();
         String poolName = input.getPoolName();
-        long size = input.getSize();
+        long size = input.getSize().toJava();
         String localPoolName = idUtils.getLocalPoolName(poolName);
         AllocateIdRangeOutputBuilder output = new AllocateIdRangeOutputBuilder();
         return FutureRpcResults.fromBuilder(LOG, "allocateIdRange", input, () -> {
-            List<Long> newIdValuesList = allocateIdFromLocalPool(poolName, localPoolName, idKey, size);
+            List<Uint32> newIdValuesList = allocateIdFromLocalPool(poolName, localPoolName, idKey, size);
             Collections.sort(newIdValuesList);
             output.setIdValues(newIdValuesList);
             return output;
@@ -301,12 +303,12 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
                 }).build();
     }
 
-    private List<Long> allocateIdFromLocalPool(String parentPoolName, String localPoolName,
+    private List<Uint32> allocateIdFromLocalPool(String parentPoolName, String localPoolName,
             String idKey, long size) throws OperationFailedException, IdManagerException {
         LOG.debug("Allocating id from local pool {}. Parent pool {}. Idkey {}", localPoolName, parentPoolName, idKey);
         String uniqueIdKey = idUtils.getUniqueKey(parentPoolName, idKey);
-        CompletableFuture<List<Long>> futureIdValues = new CompletableFuture<>();
-        CompletableFuture<List<Long>> existingFutureIdValue =
+        CompletableFuture<List<Uint32>> futureIdValues = new CompletableFuture<>();
+        CompletableFuture<List<Uint32>> existingFutureIdValue =
                 idUtils.putAllocatedIdsIfAbsent(uniqueIdKey, futureIdValues);
         if (existingFutureIdValue != null) {
             try {
@@ -318,7 +320,7 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
             }
         }
         try {
-            List<Long> newIdValuesList = checkForIdInIdEntries(parentPoolName, idKey, uniqueIdKey, futureIdValues,
+            List<Uint32> newIdValuesList = checkForIdInIdEntries(parentPoolName, idKey, uniqueIdKey, futureIdValues,
                     false);
             if (!newIdValuesList.isEmpty()) {
                 return newIdValuesList;
@@ -330,7 +332,7 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
             localPoolName = localPoolName.intern();
             if (size == 1) {
                 newIdValue = getIdFromLocalPoolCache(localIdPool, parentPoolName);
-                newIdValuesList.add(newIdValue);
+                newIdValuesList.add(Uint32.valueOf(newIdValue));
             } else {
                 getRangeOfIds(parentPoolName, localPoolName, size, newIdValuesList, localIdPool, newIdValue);
             }
@@ -418,13 +420,19 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
     private long allocateIdBlockFromParentPool(IdLocalPool localPoolCache, IdPool parentIdPool,
             TypedWriteTransaction<Configuration> confTx)
             throws OperationFailedException, IdManagerException {
-        long idCount;
+
+        long idCount = allocateIdBlockFromAvailableIdsHolder(localPoolCache, parentIdPool, confTx);
+        if (idCount > 0) {
+            return idCount;
+        }
+
         ReleasedIdsHolderBuilder releasedIdsBuilderParent = IdUtils.getReleaseIdsHolderBuilder(parentIdPool);
+        final List<DelayedIdEntries> delayedEntries = releasedIdsBuilderParent.getDelayedIdEntries();
+        if (delayedEntries != null) {
+            releasedIdsBuilderParent.setDelayedIdEntries(new ArrayList<>(delayedEntries));
+        }
+
         while (true) {
-            idCount = allocateIdBlockFromAvailableIdsHolder(localPoolCache, parentIdPool, confTx);
-            if (idCount > 0) {
-                return idCount;
-            }
             idCount = allocateIdBlockFromReleasedIdsHolder(localPoolCache, releasedIdsBuilderParent, parentIdPool,
                     confTx);
             if (idCount > 0) {
@@ -437,6 +445,11 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
                 }
                 throw new IdManagerException(String.format("Ids exhausted for pool : %s", parentIdPool.getPoolName()));
             }
+
+            idCount = allocateIdBlockFromAvailableIdsHolder(localPoolCache, parentIdPool, confTx);
+            if (idCount > 0) {
+                return idCount;
+            }
         }
     }
 
@@ -448,7 +461,7 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
         childPoolsList.sort(comparing(ChildPools::getLastAccessTime));
         long currentTime = System.currentTimeMillis() / 1000;
         for (ChildPools childPools : childPoolsList) {
-            if (childPools.getLastAccessTime() + DEFAULT_IDLE_TIME > currentTime) {
+            if (childPools.getLastAccessTime().toJava() + DEFAULT_IDLE_TIME > currentTime) {
                 break;
             }
             if (!Objects.equals(childPools.getChildPoolName(), idUtils.getLocalPoolName(parentIdPool.getPoolName()))) {
@@ -475,7 +488,7 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
 
                 long totalAvailableIdCount = releasedIds.getDelayedIdEntries().size()
                         + idUtils.getAvailableIdsCount(availableIds);
-                long count = releasedIdsBuilderParent.getAvailableIdCount() + totalAvailableIdCount;
+                long count = releasedIdsBuilderParent.getAvailableIdCount().toJava() + totalAvailableIdCount;
                 releasedIdsBuilderParent.setDelayedIdEntries(delayedIdEntriesParent).setAvailableIdCount(count);
                 singleTxDB.syncUpdate(LogicalDatastoreType.CONFIGURATION, idPoolInstanceIdentifier,
                         new IdPoolBuilder().withKey(new IdPoolKey(otherChildPool.getPoolName()))
@@ -490,19 +503,19 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
     private long allocateIdBlockFromReleasedIdsHolder(IdLocalPool localIdPool,
             ReleasedIdsHolderBuilder releasedIdsBuilderParent, IdPool parentIdPool,
             TypedWriteTransaction<Configuration> confTx) {
-        if (releasedIdsBuilderParent.getAvailableIdCount() == 0) {
+        if (releasedIdsBuilderParent.getAvailableIdCount().toJava() == 0) {
             LOG.debug("Ids unavailable in releasedIds of parent pool {}", parentIdPool);
             return 0;
         }
         List<DelayedIdEntries> delayedIdEntriesParent = releasedIdsBuilderParent.getDelayedIdEntries();
-        int idCount = Math.min(delayedIdEntriesParent.size(), parentIdPool.getBlockSize());
+        int idCount = Math.min(delayedIdEntriesParent.size(), parentIdPool.getBlockSize().toJava());
         List<DelayedIdEntries> idEntriesToBeRemoved = delayedIdEntriesParent.subList(0, idCount);
         ReleasedIdHolder releasedIds = (ReleasedIdHolder) localIdPool.getReleasedIds();
         List<DelayedIdEntry> delayedIdEntriesLocalCache = releasedIds.getDelayedEntries();
         List<DelayedIdEntry> delayedIdEntriesFromParentPool = idEntriesToBeRemoved
                 .stream()
                 .map(delayedIdEntry -> new DelayedIdEntry(delayedIdEntry
-                        .getId(), delayedIdEntry.getReadyTimeSec()))
+                        .getId().toJava(), delayedIdEntry.getReadyTimeSec().toJava()))
                 .sorted(comparing(DelayedIdEntry::getReadyTimeSec))
                 .collect(toCollection(ArrayList::new));
         delayedIdEntriesFromParentPool.addAll(delayedIdEntriesLocalCache);
@@ -514,7 +527,7 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
         InstanceIdentifier<ReleasedIdsHolder> releasedIdsHolderInstanceIdentifier = InstanceIdentifier
                 .builder(IdPools.class).child(IdPool.class,
                         new IdPoolKey(parentIdPool.getPoolName())).child(ReleasedIdsHolder.class).build();
-        releasedIdsBuilderParent.setAvailableIdCount(releasedIdsBuilderParent.getAvailableIdCount() - idCount);
+        releasedIdsBuilderParent.setAvailableIdCount(releasedIdsBuilderParent.getAvailableIdCount().toJava() - idCount);
         LOG.debug("Allocated {} ids from releasedIds of parent pool {}", idCount, parentIdPool);
         confTx.merge(releasedIdsHolderInstanceIdentifier, releasedIdsBuilderParent.build(), CREATE_MISSING_PARENTS);
         return idCount;
@@ -524,7 +537,7 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
             TypedWriteTransaction<Configuration> confTx) {
         long idCount = 0;
         AvailableIdsHolderBuilder availableIdsBuilderParent = idUtils.getAvailableIdsHolderBuilder(parentIdPool);
-        long end = availableIdsBuilderParent.getEnd();
+        long end = availableIdsBuilderParent.getEnd().toJava();
         long cur = availableIdsBuilderParent.getCursor();
         if (!idUtils.isIdAvailable(availableIdsBuilderParent)) {
             if (LOG.isDebugEnabled()) {
@@ -533,7 +546,7 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
             return idCount;
         }
         // Update availableIdsHolder of Local Pool
-        idCount = Math.min(end - cur, parentIdPool.getBlockSize());
+        idCount = Math.min(end - cur, parentIdPool.getBlockSize().toJava());
         AvailableIdHolder availableIds = new AvailableIdHolder(idUtils, cur + 1, cur + idCount);
         localIdPool.setAvailableIds(availableIds);
         // Update availableIdsHolder of Global Pool
@@ -581,15 +594,15 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
                     idKey, parentPoolName));
         }
         IdEntries existingIdEntry = existingIdEntryObject.get();
-        List<Long> idValuesList = nonnull(existingIdEntry.getIdValue());
+        List<Uint32> idValuesList = nonnull(existingIdEntry.getIdValue());
         IdLocalPool localIdPoolCache = localPool.get(parentPoolName);
-        boolean isRemoved = idEntries.remove(existingIdEntry);
+        boolean isRemoved = idEntries.contains(existingIdEntry);
         LOG.debug("The entry {} is removed {}", existingIdEntry, isRemoved);
         updateDelayedEntriesInLocalCache(idValuesList, parentPoolName, localIdPoolCache);
         IdHolderSyncJob poolSyncJob = new IdHolderSyncJob(localPoolName, localIdPoolCache.getReleasedIds(), txRunner,
                 idUtils);
         jobCoordinator.enqueueJob(localPoolName, poolSyncJob, IdUtils.RETRY_COUNT);
-        scheduleCleanUpTask(localIdPoolCache, parentPoolName, parentIdPool.getBlockSize());
+        scheduleCleanUpTask(localIdPoolCache, parentPoolName, parentIdPool.getBlockSize().toJava());
         LOG.debug("Released id ({}, {}) from pool {}", idKey, idValuesList, localPoolName);
         // Updating id entries in the parent pool. This will be used for restart scenario
         UpdateIdEntryJob job = new UpdateIdEntryJob(parentPoolName, localPoolName, idKey, null, txRunner, idUtils,
@@ -645,7 +658,7 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
         String parentPool = idPool.getPoolName();
         localPool.put(parentPool, idLocalPool);
         LocalPoolCreateJob job = new LocalPoolCreateJob(idLocalPool, txRunner, idPool.getPoolName(),
-                idPool.getBlockSize(), idUtils);
+                idPool.getBlockSize().toJava(), idUtils);
         jobCoordinator.enqueueJob(localPoolName, job, IdUtils.RETRY_COUNT);
         return idLocalPool;
     }
@@ -664,21 +677,21 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
         }
     }
 
-    private void updateDelayedEntriesInLocalCache(List<Long> idsList, String parentPoolName,
+    private void updateDelayedEntriesInLocalCache(List<Uint32> idsList, String parentPoolName,
             IdLocalPool localPoolCache) {
-        for (long idValue : idsList) {
-            localPoolCache.getReleasedIds().addId(idValue);
+        for (Uint32 idValue : idsList) {
+            localPoolCache.getReleasedIds().addId(idValue.toJava());
         }
         localPool.put(parentPoolName, localPoolCache);
     }
 
-    private List<Long> checkForIdInIdEntries(String parentPoolName, String idKey, String uniqueIdKey,
-            CompletableFuture<List<Long>> futureIdValues, boolean hasExistingFutureIdValues)
+    private List<Uint32> checkForIdInIdEntries(String parentPoolName, String idKey, String uniqueIdKey,
+            CompletableFuture<List<Uint32>> futureIdValues, boolean hasExistingFutureIdValues)
             throws IdManagerException, ReadFailedException {
         InstanceIdentifier<IdPool> parentIdPoolInstanceIdentifier = idUtils.getIdPoolInstance(parentPoolName);
         InstanceIdentifier<IdEntries> existingId = idUtils.getIdEntry(parentIdPoolInstanceIdentifier, idKey);
         idUtils.lock(lockManager, uniqueIdKey);
-        List<Long> newIdValuesList = new ArrayList<>();
+        List<Uint32> newIdValuesList = new ArrayList<>();
         Optional<IdEntries> existingIdEntry =
                 singleTxDB.syncReadOptional(LogicalDatastoreType.CONFIGURATION, existingId);
         if (existingIdEntry.isPresent()) {
@@ -744,7 +757,7 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
         return localIdPool;
     }
 
-    private void getRangeOfIds(String parentPoolName, String localPoolName, long size, List<Long> newIdValuesList,
+    private void getRangeOfIds(String parentPoolName, String localPoolName, long size, List<Uint32> newIdValuesList,
             IdLocalPool localIdPool, long newIdValue) throws ReadFailedException, IdManagerException {
         InstanceIdentifier<IdPool> parentIdPoolInstanceIdentifier1 = idUtils.getIdPoolInstance(parentPoolName);
         IdPool parentIdPool = singleTxDB.syncRead(LogicalDatastoreType.CONFIGURATION, parentIdPoolInstanceIdentifier1);
@@ -752,7 +765,7 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
                 + localIdPool.getReleasedIds().getAvailableIdCount();
         AvailableIdsHolderBuilder availableParentIds = idUtils.getAvailableIdsHolderBuilder(parentIdPool);
         ReleasedIdsHolderBuilder releasedParentIds = IdUtils.getReleaseIdsHolderBuilder(parentIdPool);
-        totalAvailableIdCount = totalAvailableIdCount + releasedParentIds.getAvailableIdCount()
+        totalAvailableIdCount = totalAvailableIdCount + releasedParentIds.getAvailableIdCount().toJava()
                 + idUtils.getAvailableIdsCount(availableParentIds);
         if (totalAvailableIdCount > size) {
             while (size > 0) {
@@ -768,7 +781,7 @@ public class IdManager implements IdManagerService, IdManagerMonitor {
                     // available IDs.
                     updateDelayedEntriesInLocalCache(newIdValuesList, parentPoolName, localIdPool);
                 }
-                newIdValuesList.add(newIdValue);
+                newIdValuesList.add(Uint32.valueOf(newIdValue));
                 size--;
             }
         } else {
index 3bf4eda00daa1b1230faef4604e794257fa22dbc..c733d64282b8ed73f332677c8cd2058d65546c83 100644 (file)
@@ -52,6 +52,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.lockmanager.rev16041
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.lockmanager.rev160413.UnlockOutput;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.Uint32;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -65,7 +66,7 @@ public class IdUtils {
     private static final int DEFAULT_BLOCK_SIZE_DIFF = 10;
     public static final int RETRY_COUNT = 6;
 
-    private final ConcurrentHashMap<String, CompletableFuture<List<Long>>> allocatedIdMap = new ConcurrentHashMap<>();
+    private final ConcurrentHashMap<String, CompletableFuture<List<Uint32>>> allocatedIdMap = new ConcurrentHashMap<>();
     private final ConcurrentHashMap<String, CountDownLatch> releaseIdLatchMap = new ConcurrentHashMap<>();
     private final ConcurrentHashMap<String, AtomicInteger> poolUpdatedMap = new ConcurrentHashMap<>();
 
@@ -75,12 +76,12 @@ public class IdUtils {
         bladeId = InetAddresses.coerceToInteger(InetAddress.getLocalHost());
     }
 
-    public CompletableFuture<List<Long>> removeAllocatedIds(String uniqueIdKey) {
+    public CompletableFuture<List<Uint32>> removeAllocatedIds(String uniqueIdKey) {
         return allocatedIdMap.remove(uniqueIdKey);
     }
 
-    public CompletableFuture<List<Long>> putAllocatedIdsIfAbsent(String uniqueIdKey,
-            CompletableFuture<List<Long>> futureIdValues) {
+    public CompletableFuture<List<Uint32>> putAllocatedIdsIfAbsent(String uniqueIdKey,
+            CompletableFuture<List<Uint32>> futureIdValues) {
         return allocatedIdMap.putIfAbsent(uniqueIdKey, futureIdValues);
     }
 
@@ -102,7 +103,7 @@ public class IdUtils {
         return idEntriesBuilder.build();
     }
 
-    public IdEntries createIdEntries(String idKey, List<Long> newIdVals) {
+    public IdEntries createIdEntries(String idKey, List<Uint32> newIdVals) {
         return new IdEntriesBuilder().withKey(new IdEntriesKey(idKey))
                 .setIdKey(idKey).setIdValue(newIdVals).build();
     }
@@ -150,7 +151,7 @@ public class IdUtils {
 
     protected boolean isIdAvailable(AvailableIdsHolderBuilder availableIds) {
         if (availableIds.getCursor() != null && availableIds.getEnd() != null) {
-            return availableIds.getCursor() < availableIds.getEnd();
+            return availableIds.getCursor() < availableIds.getEnd().toJava();
         }
         return false;
     }
@@ -203,7 +204,7 @@ public class IdUtils {
                     .setReadyTimeSec(System.currentTimeMillis() / 1000).build();
             existingDelayedIdEntriesInParent.add(delayedIdEntries);
         }
-        long availableIdCountParent = releasedIdsParent.getAvailableIdCount();
+        long availableIdCountParent = releasedIdsParent.getAvailableIdCount().toJava();
         releasedIdsParent.setDelayedIdEntries(existingDelayedIdEntriesInParent)
                 .setAvailableIdCount(availableIdCountParent + idCountToBeFreed);
     }
@@ -235,7 +236,7 @@ public class IdUtils {
 
     public long getAvailableIdsCount(AvailableIdsHolderBuilder availableIds) {
         if (availableIds != null && isIdAvailable(availableIds)) {
-            return availableIds.getEnd() - availableIds.getCursor();
+            return availableIds.getEnd().toJava() - availableIds.getCursor();
         }
         return 0;
     }
index 9d4664a77d8355ea1c6c51a5ad170fc83ec60643..d60dd7712ab0f0de0c64abb3ccd7d097982fae4e 100644 (file)
@@ -13,6 +13,7 @@ import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 import com.google.common.util.concurrent.FluentFuture;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.ListenableFuture;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -25,6 +26,7 @@ import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
 import org.opendaylight.infrautils.utils.concurrent.Executors;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.id.pools.id.pool.IdEntries;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.lockmanager.rev160413.LockManagerService;
+import org.opendaylight.yangtools.yang.common.Uint32;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -38,13 +40,13 @@ public class UpdateIdEntryJob implements Callable<List<ListenableFuture<Void>>>
     private final String parentPoolName;
     private final String localPoolName;
     private final String idKey;
-    private final List<Long> newIdValues = new ArrayList<>();
+    private final List<Uint32> newIdValues = new ArrayList<>();
     private final ManagedNewTransactionRunner txRunner;
     private final IdUtils idUtils;
     private final LockManagerService lockManager;
 
     public UpdateIdEntryJob(String parentPoolName, String localPoolName, String idKey,
-            List<Long> newIdValues, ManagedNewTransactionRunner txRunner, IdUtils idUtils,
+            List<Uint32> newIdValues, ManagedNewTransactionRunner txRunner, IdUtils idUtils,
             LockManagerService lockManager) {
         this.parentPoolName = parentPoolName;
         this.localPoolName = localPoolName;
@@ -82,6 +84,8 @@ public class UpdateIdEntryJob implements Callable<List<ListenableFuture<Void>>>
         return Collections.singletonList(future);
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private void cleanUp() {
         String uniqueIdKey = idUtils.getUniqueKey(parentPoolName, idKey);
         CountDownLatch latch = idUtils.getReleaseIdLatch(uniqueIdKey);
index 6dc2898911699776f616e8770e67d0fc45292a26..3cb8abb81358f271013714fd21fb9e89be883c84 100644 (file)
@@ -14,6 +14,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.id.pools.id.pool.IdEntriesBuilder
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.id.pools.id.pool.ReleasedIdsHolderBuilder
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.released.ids.DelayedIdEntriesBuilder
+import org.opendaylight.yangtools.yang.common.Uint32;
 
 import static extension org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions.operator_doubleGreaterThan
 
@@ -40,13 +41,13 @@ class ExpectedAllocateIdFromReleasedId {
                 new IdEntriesBuilder >> [
                     idKey = "test-key1"
                     idValue = #[
-                        1L
+                        Uint32.valueOf(1L)
                     ]
                 ],
                 new IdEntriesBuilder >> [
                     idKey = "test-key2"
                     idValue = #[
-                        0L
+                        Uint32.valueOf(0L)
                     ]
                 ]
             ]
index 02e9949a25a27c82f39d9fb8ee3ae7216ad04a7b..00416e5e82e9572bac116b770ba8b70a34ca1d53 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.id.pools.id.pool.ChildPoolsBuilder
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.id.pools.id.pool.IdEntriesBuilder
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.id.pools.id.pool.ReleasedIdsHolderBuilder
+import org.opendaylight.yangtools.yang.common.Uint32;
 
 import static extension org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions.operator_doubleGreaterThan
 
@@ -39,19 +40,19 @@ class ExpectedAllocateIdMultipleRequestsFromAvailableIds {
                 new IdEntriesBuilder >> [
                     idKey = "test-key10"
                     idValue = #[
-                        1L
+                        Uint32.valueOf(1L)
                     ]
                 ],
                 new IdEntriesBuilder >> [
                     idKey = "test-key12"
                     idValue = #[
-                        0L
+                        Uint32.valueOf(0L)
                     ]
                 ],
                 new IdEntriesBuilder >> [
                     idKey = "test-key11"
                     idValue = #[
-                        2L
+                        Uint32.valueOf(2L)
                     ]
                 ]
             ]
@@ -81,4 +82,4 @@ class ExpectedAllocateIdMultipleRequestsFromAvailableIds {
             ]
         ]
     }
-}
\ No newline at end of file
+}
index 813f7f39c7ce115c6eb943196066ef3f7af7366a..0827d5a9dadd03a3c9edbf236181cb7584ecad73 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.id.pools.id.pool.ChildPoolsBuilder
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.id.pools.id.pool.IdEntriesBuilder
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.id.pools.id.pool.ReleasedIdsHolderBuilder
+import org.opendaylight.yangtools.yang.common.Uint32;
 
 import static extension org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions.operator_doubleGreaterThan
 
@@ -39,25 +40,25 @@ class ExpectedAllocateIdMultipleRequestsFromReleaseIds {
                 new IdEntriesBuilder >> [
                     idKey = "test-key1"
                     idValue = #[
-                        0L
+                        Uint32.valueOf(0L)
                     ]
                 ],
                 new IdEntriesBuilder >> [
                     idKey = "test-key12"
                     idValue = #[
-                        3L
+                        Uint32.valueOf(3L)
                     ]
                 ],
                 new IdEntriesBuilder >> [
                     idKey = "test-key11"
                     idValue = #[
-                        2L
+                        Uint32.valueOf(2L)
                     ]
                 ],
                 new IdEntriesBuilder >> [
                     idKey = "test-key10"
                     idValue = #[
-                        1L
+                        Uint32.valueOf(1L)
                     ]
                 ]
             ]
index 8590d6b5e8fa4a3daf0cd76e76aeaaeb9b6c90fb..33f60570596de08512bd1942d73d881bd830e4ac 100644 (file)
@@ -13,6 +13,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.id.pools.id.pool.ChildPoolsBuilder
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.id.pools.id.pool.IdEntriesBuilder
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.id.pools.id.pool.ReleasedIdsHolderBuilder
+import org.opendaylight.yangtools.yang.common.Uint32;
 
 import static extension org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions.operator_doubleGreaterThan
 
@@ -44,7 +45,7 @@ class ExpectedAllocateIdObjects {
                 new IdEntriesBuilder >> [
                     idKey = "test-key1"
                     idValue = #[
-                        0L
+                        Uint32.valueOf(0L)
                     ]
                 ]
             ]
@@ -69,4 +70,4 @@ class ExpectedAllocateIdObjects {
             ]
         ]
     }
-}
\ No newline at end of file
+}
index 473eb23429911319b8d5533641a08d52ded92608..559558367b653df1dab44df7a1a119ccfb55ac5c 100644 (file)
@@ -326,7 +326,7 @@ public class IdManagerTest {
                         new AllocateIdInputBuilder().setPoolName(ID_POOL_NAME).setIdKey(idKey).build());
                 try {
                     if (result.get().isSuccessful()) {
-                        Long idValue = result.get().getResult().getIdValue();
+                        Long idValue = result.get().getResult().getIdValue().toJava();
                         idSet.add(idValue);
                         if (idValue > ID_LOW + BLOCK_SIZE) {
                             exceptionInExecutorAtomic.set(new AssertionFailedError("idValue <= ID_LOW + BLOCK_SIZE"));
index cbe7695fa5e2fcb76dfaca9f5abe911bda6e5783..c5598263934635eb3465ee9e262556e1a9aa0da6 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index 8c73712b02635294acb18320f5e6ca3b15bc3cc5..44604a9b5f9e06f40f26e0ebdbdbac8f8141525c 100644 (file)
@@ -7,9 +7,9 @@
  */
 package org.opendaylight.genius.interfacemanager.globals;
 
-import java.math.BigInteger;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Uri;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 
 public final class  IfmConstants {
@@ -25,7 +25,6 @@ public final class  IfmConstants {
     public static final int FLOW_TABLE_MISS_PRIORITY = 0;
     public static final int DEFAULT_ARP_FLOW_PRIORITY = 100;
     public static final int INVALID_PORT_NO = -1;
-    public static final BigInteger INVALID_DPID = new BigInteger("-1");
 
     // Id pool
     public static final String IFM_IDPOOL_NAME = "interfaces";
@@ -40,8 +39,8 @@ public final class  IfmConstants {
     // Table
     public static final long DELAY_TIME_IN_MILLISECOND = 10000;
     // Cookies
-    public static final BigInteger COOKIE_L3_BASE = new BigInteger("8000000", 16);
-    public static final BigInteger COOKIE_EGRESS_DISPATCHER_TABLE = new BigInteger("1300000", 16);
+    public static final Uint64 COOKIE_L3_BASE = Uint64.valueOf("8000000", 16).intern();
+    public static final Uint64 COOKIE_EGRESS_DISPATCHER_TABLE = Uint64.valueOf("1300000", 16).intern();
     // Tunnel Monitoring
     public static final int DEFAULT_MONITOR_INTERVAL = 10000;
 
index f973a785e463142ac15de9df37170bfa2cafc6af..209e689b93055d6630652b7228cbf42477b5d0f4 100644 (file)
@@ -9,8 +9,9 @@ package org.opendaylight.genius.interfacemanager.globals;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.Serializable;
-import java.math.BigInteger;
+import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public class InterfaceInfo implements Serializable {
 
@@ -48,7 +49,7 @@ public class InterfaceInfo implements Serializable {
 
     protected InterfaceType interfaceType;
     protected int interfaceTag;
-    protected BigInteger dpId = IfmConstants.INVALID_DPID;
+    protected Uint64 dpId;
     protected InterfaceAdminState adminState = InterfaceAdminState.ENABLED;
     protected InterfaceOpState opState;
     protected long groupId;
@@ -59,7 +60,7 @@ public class InterfaceInfo implements Serializable {
     protected boolean isUntaggedVlan;
     protected String macAddress;
 
-    public InterfaceInfo(BigInteger dpId, String portName) {
+    public InterfaceInfo(Uint64 dpId, String portName) {
         this.dpId = dpId;
         this.portName = portName;
     }
@@ -104,14 +105,14 @@ public class InterfaceInfo implements Serializable {
         return isUntaggedVlan;
     }
 
-    // "Confusing to have methods getDpId() and BridgeEntryBuilder.getDpid" - BridgeEntryBuilder is generated so can't
-    // change it.
-    @SuppressFBWarnings("NM_CONFUSING")
-    public BigInteger getDpId() {
+    @SuppressFBWarnings(value = "NM_CONFUSING",
+            justification = "'Confusing to have methods getDpId() and BridgeEntryBuilder.getDpid'"
+                    + " - BridgeEntryBuilder is generated so cannot change it.")
+    public @Nullable Uint64 getDpId() {
         return dpId;
     }
 
-    public void setDpId(BigInteger dpId) {
+    public void setDpId(Uint64 dpId) {
         this.dpId = dpId;
     }
 
index 4b63752690096c51432af77a5575aa1cbf714d5d..f5e8befb96cb90b1354a907d4849e9faf28a991d 100644 (file)
@@ -5,11 +5,9 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.interfacemanager.globals;
 
 import com.google.common.base.Optional;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -42,6 +40,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.ser
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServicesBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServicesKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public final class InterfaceServiceUtil {
 
@@ -55,7 +54,7 @@ public final class InterfaceServiceUtil {
      */
     @Deprecated
     public static ServicesInfo buildServiceInfo(String serviceName, short serviceIndex, int servicePriority,
-            BigInteger cookie, List<Instruction> instructions) {
+            Uint64 cookie, List<Instruction> instructions) {
         return buildServiceInfo(serviceName, servicePriority);
     }
 
@@ -66,7 +65,7 @@ public final class InterfaceServiceUtil {
      */
     @Deprecated
     public static ServicesInfo buildServiceInfo(String serviceName, short serviceIndex, int servicePriority,
-            BigInteger cookie) {
+            Uint64 cookie) {
         return buildServiceInfo(serviceName, servicePriority);
     }
 
@@ -79,7 +78,7 @@ public final class InterfaceServiceUtil {
     }
 
     public static BoundServices getBoundServices(String serviceName, short servicePriority, int flowPriority,
-            BigInteger cookie, List<Instruction> instructions) {
+            Uint64 cookie, List<Instruction> instructions) {
         StypeOpenflowBuilder augBuilder = new StypeOpenflowBuilder().setFlowCookie(cookie).setFlowPriority(flowPriority)
                 .setInstruction(instructions);
         return new BoundServicesBuilder().withKey(new BoundServicesKey(servicePriority)).setServiceName(serviceName)
@@ -87,7 +86,7 @@ public final class InterfaceServiceUtil {
                 .addAugmentation(StypeOpenflow.class, augBuilder.build()).build();
     }
 
-    public static List<MatchInfo> getMatchInfoForVlanLPort(BigInteger dpId, long portNo, long vlanId,
+    public static List<MatchInfo> getMatchInfoForVlanLPort(Uint64 dpId, long portNo, long vlanId,
             boolean isVlanTransparent) {
         List<MatchInfo> matches = new ArrayList<>();
         matches.add(new MatchInPort(dpId, portNo));
@@ -112,9 +111,9 @@ public final class InterfaceServiceUtil {
             if (match2 instanceof MatchMetadata) {
                 if (match instanceof MatchMetadata) {
                     MatchMetadata metadataMatch = (MatchMetadata) match;
-                    BigInteger value = MetaDataUtil.mergeMetadataValues(((MatchMetadata) match2).getMetadata(),
+                    Uint64 value = MetaDataUtil.mergeMetadataValues(((MatchMetadata) match2).getMetadata(),
                             metadataMatch.getMetadata());
-                    BigInteger mask = MetaDataUtil.mergeMetadataMask(((MatchMetadata) match2).getMask(),
+                    Uint64 mask = MetaDataUtil.mergeMetadataMask(((MatchMetadata) match2).getMask(),
                             metadataMatch.getMask());
                     match = new MatchMetadata(value, mask);
                     iter.remove();
@@ -136,7 +135,7 @@ public final class InterfaceServiceUtil {
         return -1;
     }
 
-    public static Set<Object> getStatRequestKeys(BigInteger dpId, short tableId, List<MatchInfo> matches, String flowId,
+    public static Set<Object> getStatRequestKeys(Uint64 dpId, short tableId, List<MatchInfo> matches, String flowId,
             long groupId) {
         Set<Object> statRequestKeys = new HashSet<>();
         statRequestKeys.add(getFlowStatisticsKey(dpId, tableId, matches, flowId));
@@ -144,11 +143,11 @@ public final class InterfaceServiceUtil {
         return statRequestKeys;
     }
 
-    public static GroupInfoKey getGroupStatisticsKey(BigInteger dpId, long groupId) {
+    public static GroupInfoKey getGroupStatisticsKey(Uint64 dpId, long groupId) {
         return new GroupInfoKey(dpId, groupId);
     }
 
-    public static FlowInfoKey getFlowStatisticsKey(BigInteger dpId, short tableId, List<MatchInfo> matches,
+    public static FlowInfoKey getFlowStatisticsKey(Uint64 dpId, short tableId, List<MatchInfo> matches,
             String flowId) {
         return new FlowInfoKey(dpId, tableId, MDSALUtil.buildMatches(matches), flowId);
     }
index 9fed2d2aa86595e9ebe49baca6ac8139027b4d03..f767c26e4d3696e1b0782242351f7a45563dfefb 100644 (file)
@@ -7,8 +7,8 @@
  */
 package org.opendaylight.genius.interfacemanager.globals;
 
-import java.math.BigInteger;
 import java.util.List;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public class LogicalGroupInterfaceInfo extends InterfaceInfo {
     private static final long serialVersionUID = 1L;
@@ -16,7 +16,7 @@ public class LogicalGroupInterfaceInfo extends InterfaceInfo {
     // interface between a pair of DPNs
     private final List<String> parentInterfaceNames;
 
-    public LogicalGroupInterfaceInfo(String portName, BigInteger srcDpId, List<String> parentInterfaces) {
+    public LogicalGroupInterfaceInfo(String portName, Uint64 srcDpId, List<String> parentInterfaces) {
         super(srcDpId, portName);
         this.parentInterfaceNames = parentInterfaces;
     }
index f862cbfc33ac687a6027ce6ecb1c8fb52a5692e4..78e2e4e5a33622853e196a2735daa1ec4a7c32e4 100644 (file)
@@ -7,15 +7,17 @@
  */
 package org.opendaylight.genius.interfacemanager.globals;
 
-import java.math.BigInteger;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
+// FIXME: This class should follow builder pattern to support proper lifecycle
 public class VlanInterfaceInfo extends InterfaceInfo {
-
     private static final long serialVersionUID = 1L;
+
     private short vlanId;
+
     private boolean isVlanTransparent;
 
-    public VlanInterfaceInfo(BigInteger dpId, String portName, short vlanId) {
+    public VlanInterfaceInfo(Uint64 dpId, String portName, short vlanId) {
         super(dpId, portName);
         this.vlanId = vlanId;
     }
index d08acde4113c1c6422305ff386003c4ee57501ad..70d205fcbcb3475f509435aabd0a8bf93ba430d2 100644 (file)
@@ -5,14 +5,11 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.interfacemanager.interfaces;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.List;
 import java.util.Map;
-
 import org.opendaylight.controller.md.sal.binding.api.ReadTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.genius.infra.Datastore.Configuration;
@@ -30,6 +27,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public interface IInterfaceManager {
 
@@ -37,11 +35,11 @@ public interface IInterfaceManager {
 
     Long getPortForInterface(Interface intf);
 
-    BigInteger getDpnForInterface(String ifName);
+    Uint64 getDpnForInterface(String ifName);
 
-    BigInteger getDpnForInterface(Interface intrf);
+    Uint64 getDpnForInterface(Interface intrf);
 
-    String getEndpointIpForDpn(BigInteger dpnId);
+    String getEndpointIpForDpn(Uint64 dpnId);
 
     List<ActionInfo> getInterfaceEgressActions(String ifName);
 
@@ -84,7 +82,7 @@ public interface IInterfaceManager {
      * @deprecated Use {@link #createVLANInterface(String, String, Integer, String, IfL2vlan.L2vlanMode)}.
      */
     @Deprecated
-    void createVLANInterface(String interfaceName, String portName, BigInteger dpId, Integer vlanId, String description,
+    void createVLANInterface(String interfaceName, String portName, Uint64 dpId, Integer vlanId, String description,
             IfL2vlan.L2vlanMode l2vlanMode) throws InterfaceAlreadyExistsException;
 
     ListenableFuture<Void> createVLANInterface(String interfaceName, String portName, Integer vlanId,
@@ -97,7 +95,7 @@ public interface IInterfaceManager {
      * @deprecated Use {@link #createVLANInterface(String, String, Integer, String, IfL2vlan.L2vlanMode, boolean)}.
      */
     @Deprecated
-    void createVLANInterface(String interfaceName, String portName, BigInteger dpId, Integer vlanId, String description,
+    void createVLANInterface(String interfaceName, String portName, Uint64 dpId, Integer vlanId, String description,
             IfL2vlan.L2vlanMode l2vlanMode, boolean isExternal) throws InterfaceAlreadyExistsException;
 
     ListenableFuture<Void> createVLANInterface(String interfaceName, String portName, Integer vlanId,
@@ -176,12 +174,12 @@ public interface IInterfaceManager {
 
     OvsdbBridgeAugmentation getOvsdbBridgeForNodeIid(InstanceIdentifier<Node> nodeIid);
 
-    List<OvsdbTerminationPointAugmentation> getPortsOnBridge(BigInteger dpnId);
+    List<OvsdbTerminationPointAugmentation> getPortsOnBridge(Uint64 dpnId);
 
-    List<OvsdbTerminationPointAugmentation> getTunnelPortsOnBridge(BigInteger dpnId);
+    List<OvsdbTerminationPointAugmentation> getTunnelPortsOnBridge(Uint64 dpnId);
 
     Map<Class<? extends InterfaceTypeBase>, List<OvsdbTerminationPointAugmentation>>
-        getPortsOnBridgeByType(BigInteger dpnId);
+        getPortsOnBridgeByType(Uint64 dpnId);
 
     void updateInterfaceParentRef(String interfaceName, String parentInterface);
 
index dd73ca5b9de4dfe96def8f150818ce2d8a579be3..f2c77dc11bec171051d7312d346d7737460289a1 100644 (file)
@@ -5,11 +5,12 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.interfacemanager;
 
-import java.math.BigInteger;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
+// FIXME: rename this to IfmImplConstants
+// FIXME: this should be a final utility class
 public interface IfmConstants {
     String IFM_IDPOOL_NAME = "interfaces";
     long IFM_ID_POOL_START = 1L;
@@ -25,9 +26,9 @@ public interface IfmConstants {
     long VLAN_GROUP_START = 1000;
     long TRUNK_GROUP_START = 20000;
     long LOGICAL_GROUP_START = 100000;
-    BigInteger COOKIE_VM_LFIB_TABLE = new BigInteger("8000002", 16);
+    Uint64 COOKIE_VM_LFIB_TABLE = Uint64.valueOf("8000002", 16).intern();
     String TUNNEL_TABLE_FLOWID_PREFIX = "TUNNEL.";
-    BigInteger TUNNEL_TABLE_COOKIE = new BigInteger("9000000", 16);
+    Uint64 TUNNEL_TABLE_COOKIE = Uint64.valueOf("9000000", 16).intern();
     int FLOW_HIGH_PRIORITY = 10;
     int FLOW_PRIORITY_FOR_UNTAGGED_VLAN = 4;
 
@@ -37,10 +38,10 @@ public interface IfmConstants {
     int JOB_MAX_RETRIES = 6;
     long DELAY_TIME_IN_MILLISECOND = 10000;
 
-    String DEAD_BEEF_MAC_PREFIX = "DEADBEEF";
+    Uint64 DEAD_BEEF_MAC_PREFIX = Uint64.valueOf("DEADBEEF", 16).intern();
     String INVALID_MAC = "00:00:00:00:00:00";
     String MAC_SEPARATOR = ":";
-    Integer MAC_STRING_LENGTH = 17;
+    int MAC_STRING_LENGTH = INVALID_MAC.length();
 
     long INVALID_PORT_NO = -1;
 
index a90ea6413d8c2c5814e9c900c0a1a85ee0f5215c..1970ad782d184e4b14f7553b01105b06e82cb70d 100755 (executable)
@@ -19,12 +19,12 @@ import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.util.concurrent.ListenableFuture;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
+import java.util.regex.Pattern;
 import org.apache.commons.lang3.BooleanUtils;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
@@ -98,12 +98,13 @@ import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public final class IfmUtil {
-
     private static final Logger LOG = LoggerFactory.getLogger(IfmUtil.class);
+    private static final Pattern GENERATE_MAC_PATTERN = Pattern.compile("(.{2})");
     private static final int INVALID_ID = 0;
 
     private IfmUtil() {
@@ -117,8 +118,8 @@ public final class IfmUtil {
             .put(TunnelTypeLogicalGroup.class, LOGICAL_GROUP_INTERFACE)
             .build();
 
-    public static BigInteger getDpnFromNodeConnectorId(NodeConnectorId portId) {
-        return new BigInteger(getDpnStringFromNodeConnectorId(portId));
+    public static Uint64 getDpnFromNodeConnectorId(NodeConnectorId portId) {
+        return Uint64.valueOf(getDpnStringFromNodeConnectorId(portId));
     }
 
     public static String getDpnStringFromNodeConnectorId(NodeConnectorId portId) {
@@ -128,7 +129,7 @@ public final class IfmUtil {
         return portId.getValue().split(IfmConstants.OF_URI_SEPARATOR)[1];
     }
 
-    public static BigInteger getDpnFromInterface(
+    public static Uint64 getDpnFromInterface(
             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
                 .ietf.interfaces.rev140508.interfaces.state.Interface ifState) {
         NodeConnectorId ncId = getNodeConnectorIdFromInterface(ifState);
@@ -156,7 +157,7 @@ public final class IfmUtil {
         return IfmConstants.INVALID_PORT_NO;
     }
 
-    public static NodeId buildDpnNodeId(BigInteger dpnId) {
+    public static NodeId buildDpnNodeId(Uint64 dpnId) {
         return new NodeId(IfmConstants.OF_URI_PREFIX + dpnId);
     }
 
@@ -328,7 +329,7 @@ public final class IfmUtil {
             case VXLAN_TRUNK_INTERFACE:
                 if (!isDefaultEgress) {
                     if (tunnelKey != null) {
-                        result.add(new ActionSetFieldTunnelId(actionKeyStart++, BigInteger.valueOf(tunnelKey)));
+                        result.add(new ActionSetFieldTunnelId(actionKeyStart++, Uint64.valueOf(tunnelKey)));
                     }
                 } else {
                     // For OF Tunnels default egress actions need to set tunnelIps
@@ -350,7 +351,7 @@ public final class IfmUtil {
                     boolean isVlanTransparent = false;
                     int vlanVid = 0;
                     if (vlanIface != null) {
-                        vlanVid = vlanIface.getVlanId() == null ? 0 : vlanIface.getVlanId().getValue();
+                        vlanVid = vlanIface.getVlanId() == null ? 0 : vlanIface.getVlanId().getValue().toJava();
                         isVlanTransparent = vlanIface.getL2vlanMode() == IfL2vlan.L2vlanMode.Transparent;
                     }
                     if (vlanVid != 0 && !isVlanTransparent) {
@@ -388,9 +389,9 @@ public final class IfmUtil {
         return new NodeId(ncId.getValue().substring(0, ncId.getValue().lastIndexOf(':')));
     }
 
-    public static BigInteger[] mergeOpenflowMetadataWriteInstructions(List<Instruction> instructions) {
-        BigInteger metadata = new BigInteger("0", 16);
-        BigInteger metadataMask = new BigInteger("0", 16);
+    public static Uint64[] mergeOpenflowMetadataWriteInstructions(List<Instruction> instructions) {
+        Uint64 metadata = Uint64.ZERO;
+        Uint64 metadataMask = Uint64.ZERO;
         if (instructions != null && !instructions.isEmpty()) {
             // check if metadata write instruction is present
             for (Instruction instruction : instructions) {
@@ -400,12 +401,13 @@ public final class IfmUtil {
                 if (actualInstruction instanceof WriteMetadataCase) {
                     WriteMetadataCase writeMetaDataInstruction = (WriteMetadataCase) actualInstruction;
                     WriteMetadata availableMetaData = writeMetaDataInstruction.getWriteMetadata();
-                    metadata = metadata.or(availableMetaData.getMetadata());
-                    metadataMask = metadataMask.or(availableMetaData.getMetadataMask());
+                    metadata = Uint64.fromLongBits(metadata.longValue() | availableMetaData.getMetadata().longValue());
+                    metadataMask = Uint64.fromLongBits(metadataMask.longValue()
+                        | availableMetaData.getMetadataMask().longValue());
                 }
             }
         }
-        return new BigInteger[] { metadata, metadataMask };
+        return new Uint64[] { metadata, metadataMask };
     }
 
     public static Integer allocateId(IdManagerService idManager, String poolName, String idKey) {
@@ -437,12 +439,12 @@ public final class IfmUtil {
         }
     }
 
-    public static BigInteger getDpnId(DatapathId datapathId) {
+    public static Uint64 getDpnId(DatapathId datapathId) {
         if (datapathId != null) {
             // Adding logs for a random issue spotted during datapath id
             // conversion
             String dpIdStr = datapathId.getValue().replace(":", "");
-            return new BigInteger(dpIdStr, 16);
+            return Uint64.valueOf(dpIdStr, 16);
         }
         return null;
     }
@@ -477,7 +479,7 @@ public final class IfmUtil {
         return interfaceType;
     }
 
-    public static VlanInterfaceInfo getVlanInterfaceInfo(Interface iface, BigInteger dpId) {
+    public static VlanInterfaceInfo getVlanInterfaceInfo(Interface iface, Uint64 dpId) {
         short vlanId = 0;
         String portName = null;
         IfL2vlan vlanIface = iface.augmentation(IfL2vlan.class);
@@ -505,18 +507,20 @@ public final class IfmUtil {
         return vlanInterfaceInfo;
     }
 
-    public static BigInteger getDeadBeefBytesForMac() {
-        return new BigInteger("FFFFFFFF", 16).and(new BigInteger(IfmConstants.DEAD_BEEF_MAC_PREFIX, 16)).shiftLeft(16);
+    public static Uint64 getDeadBeefBytesForMac() {
+        final long raw = IfmConstants.DEAD_BEEF_MAC_PREFIX.longValue() & 0xFFFFFFFFL;
+        return Uint64.fromLongBits(raw << 16);
     }
 
-    public static BigInteger fillPortNumberToMac(long portNumber) {
-        return new BigInteger("FFFF", 16).and(BigInteger.valueOf(portNumber));
+    public static Uint64 fillPortNumberToMac(long portNumber) {
+        return Uint64.fromLongBits(portNumber & 0xFFFF);
     }
 
     public static String generateMacAddress(long portNo) {
-        String unformattedMAC = getDeadBeefBytesForMac().or(fillPortNumberToMac(portNo)).toString(16);
-        return unformattedMAC.replaceAll("(.{2})", "$1" + IfmConstants.MAC_SEPARATOR).substring(0,
-                IfmConstants.MAC_STRING_LENGTH);
+        final long raw = getDeadBeefBytesForMac().longValue() | fillPortNumberToMac(portNo).longValue();
+        return GENERATE_MAC_PATTERN.matcher(Long.toUnsignedString(raw))
+                .replaceAll("$1" + IfmConstants.MAC_SEPARATOR)
+                .substring(0, IfmConstants.MAC_STRING_LENGTH);
     }
 
     public static PhysAddress getPhyAddress(long portNo, FlowCapableNodeConnector flowCapableNodeConnector) {
@@ -552,7 +556,7 @@ public final class IfmUtil {
         BoundServices serviceInfo, Class<? extends ServiceModeBase> serviceMode) {
         LOG.info("Binding Service {} for : {}", serviceInfo.getServiceName(), interfaceName);
         InstanceIdentifier<BoundServices> boundServicesInstanceIdentifier = buildBoundServicesIId(
-            serviceInfo.getServicePriority(), interfaceName, serviceMode);
+            serviceInfo.getServicePriority().toJava(), interfaceName, serviceMode);
         tx.put(boundServicesInstanceIdentifier, serviceInfo, CREATE_MISSING_PARENTS);
     }
 
index 2cd19dcc247f34bdf3a67fa1caa345306e6c97b5..0900c2e220679e83fe125318ca60d615ebe10749 100644 (file)
@@ -11,7 +11,6 @@ import static org.opendaylight.controller.md.sal.binding.api.WriteTransaction.CR
 import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -23,7 +22,6 @@ import java.util.concurrent.Future;
 import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
@@ -97,6 +95,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -204,7 +203,7 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
         try {
             RpcResult<GetPortFromInterfaceOutput> port = output.get();
             if (port.isSuccessful()) {
-                return port.getResult().getPortno();
+                return port.getResult().getPortno().toJava();
             }
         } catch (NullPointerException | InterruptedException | ExecutionException e) {
             LOG.warn("Exception when getting port for interface", e);
@@ -219,7 +218,7 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
         try {
             RpcResult<GetPortFromInterfaceOutput> port = output.get();
             if (port.isSuccessful()) {
-                return port.getResult().getPortno();
+                return port.getResult().getPortno().toJava();
             }
         } catch (NullPointerException | InterruptedException | ExecutionException e) {
             LOG.warn("Exception when getting port for interface", e);
@@ -249,11 +248,13 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
                 interfaceManagerCommonUtils);
         InterfaceInfo.InterfaceType interfaceType = IfmUtil.getInterfaceType(intf);
         InterfaceInfo interfaceInfo = new InterfaceInfo(interfaceName);
-        BigInteger dpId = org.opendaylight.genius.interfacemanager.globals.IfmConstants.INVALID_DPID;
         Integer portNo = org.opendaylight.genius.interfacemanager.globals.IfmConstants.INVALID_PORT_NO;
+        final Uint64 dpId;
         if (ncId != null) {
             dpId = IfmUtil.getDpnFromNodeConnectorId(ncId);
             portNo = Integer.parseInt(IfmUtil.getPortNoFromNodeConnectorId(ncId));
+        } else {
+            dpId = null;
         }
         if (interfaceType == InterfaceInfo.InterfaceType.VLAN_INTERFACE) {
             interfaceInfo = IfmUtil.getVlanInterfaceInfo(intf, dpId);
@@ -380,7 +381,7 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
     }
 
     @Override
-    public void createVLANInterface(String interfaceName, String portName, BigInteger dpId, Integer vlanId,
+    public void createVLANInterface(String interfaceName, String portName, Uint64 dpId, Integer vlanId,
             String description, IfL2vlan.L2vlanMode l2vlanMode) throws InterfaceAlreadyExistsException {
         createVLANInterface(interfaceName, portName, vlanId, description, l2vlanMode);
     }
@@ -392,7 +393,7 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
     }
 
     @Override
-    public void createVLANInterface(String interfaceName, String portName, BigInteger dpId, Integer vlanId,
+    public void createVLANInterface(String interfaceName, String portName, Uint64 dpId, Integer vlanId,
             String description, IfL2vlan.L2vlanMode l2vlanMode, boolean isExternal)
             throws InterfaceAlreadyExistsException {
         createVLANInterface(interfaceName, portName, vlanId, description, l2vlanMode, isExternal);
@@ -422,7 +423,7 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
         if (isExternal) {
             interfaceBuilder.addAugmentation(IfExternal.class, new IfExternalBuilder().setExternal(true).build());
         }
-        InstanceIdentifier<Interface> interfaceIId = interfaceManagerCommonUtils
+        InstanceIdentifier<Interface> interfaceIId = InterfaceManagerCommonUtils
                 .getInterfaceIdentifier(new InterfaceKey(interfaceName));
         ListenableFuture<Void> future = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION,
             tx -> tx.put(interfaceIId, interfaceBuilder.build(), CREATE_MISSING_PARENTS));
@@ -475,16 +476,17 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
     public void unbindService(String interfaceName, Class<? extends ServiceModeBase> serviceMode,
             BoundServices serviceInfo) {
         IfmUtil.unbindService(txRunner, coordinator, interfaceName,
-                FlowBasedServicesUtils.buildServiceId(interfaceName, serviceInfo.getServicePriority(), serviceMode));
+                FlowBasedServicesUtils.buildServiceId(interfaceName,
+                    serviceInfo.getServicePriority().toJava(), serviceMode));
     }
 
     @Override
-    public BigInteger getDpnForInterface(Interface intrf) {
+    public Uint64 getDpnForInterface(Interface intrf) {
         return getDpnForInterface(intrf.getName());
     }
 
     @Override
-    public BigInteger getDpnForInterface(String ifName) {
+    public Uint64 getDpnForInterface(String ifName) {
         GetDpidFromInterfaceInput input = new GetDpidFromInterfaceInputBuilder().setIntfName(ifName).build();
         Future<RpcResult<GetDpidFromInterfaceOutput>> output = interfaceManagerRpcService.getDpidFromInterface(input);
         try {
@@ -499,7 +501,7 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
     }
 
     @Override
-    public String getEndpointIpForDpn(BigInteger dpnId) {
+    public String getEndpointIpForDpn(Uint64 dpnId) {
         GetEndpointIpForDpnInput input = new GetEndpointIpForDpnInputBuilder().setDpid(dpnId).build();
         Future<RpcResult<GetEndpointIpForDpnOutput>> output = interfaceManagerRpcService.getEndpointIpForDpn(input);
         try {
@@ -665,7 +667,7 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
     public String getDpidForInterface(String interfaceName, InstanceIdentifier<Node> nodeInstanceId) {
         OvsdbBridgeAugmentation bridge = getBridgeForInterface(interfaceName, nodeInstanceId);
         if (bridge != null) {
-            BigInteger dpid = IfmUtil.getDpnId(bridge.getDatapathId());
+            Uint64 dpid = IfmUtil.getDpnId(bridge.getDatapathId());
             if (dpid != null && dpid.longValue() != 0) {
                 return String.valueOf(dpid);
             }
@@ -811,7 +813,7 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
      * @return If the data at the supplied path exists, returns a list of all termination point
      *         Augmentations
      */
-    public List<OvsdbTerminationPointAugmentation> getPortsOnBridge(BigInteger dpnId) {
+    public List<OvsdbTerminationPointAugmentation> getPortsOnBridge(Uint64 dpnId) {
         List<OvsdbTerminationPointAugmentation> ports = new ArrayList<>();
         List<TerminationPoint> portList = interfaceMetaUtils.getTerminationPointsOnBridge(dpnId);
         for (TerminationPoint ovsPort : portList) {
@@ -833,7 +835,7 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
      *         Augmentations of type tunnel
      */
     @Override
-    public List<OvsdbTerminationPointAugmentation> getTunnelPortsOnBridge(BigInteger dpnId) {
+    public List<OvsdbTerminationPointAugmentation> getTunnelPortsOnBridge(Uint64 dpnId) {
         List<OvsdbTerminationPointAugmentation> tunnelPorts = new ArrayList<>();
         List<TerminationPoint> portList = interfaceMetaUtils.getTerminationPointsOnBridge(dpnId);
         for (TerminationPoint ovsPort : portList) {
@@ -859,7 +861,7 @@ public class InterfacemgrProvider implements AutoCloseable, IInterfaceManager {
      */
     @Override
     public Map<Class<? extends InterfaceTypeBase>, List<OvsdbTerminationPointAugmentation>>
-        getPortsOnBridgeByType(BigInteger dpnId) {
+        getPortsOnBridgeByType(Uint64 dpnId) {
 
         Map<Class<? extends InterfaceTypeBase>, List<OvsdbTerminationPointAugmentation>> portMap;
         portMap = new ConcurrentHashMap<>();
index b9d24bba7e9124efeda28de872f0e4872c28d162..56cb1cd4e06e3ec985e6c999265b939a1fb637a0 100644 (file)
@@ -63,6 +63,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelMonitoringTypeLldp;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.Uint32;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -93,14 +95,15 @@ public final class AlivenessMonitorUtils {
                                     .build())
                             .setMode(MonitoringMode.OneOne)
                             .setProfileId(allocateProfile(FAILURE_THRESHOLD,
-                                    ifTunnel.getMonitorInterval(), MONITORING_WINDOW, MonitorProtocolType.Lldp))
+                                    ifTunnel.getMonitorInterval().toJava(), MONITORING_WINDOW,
+                                    MonitorProtocolType.Lldp))
                             .build())
                     .build();
             try {
                 Future<RpcResult<MonitorStartOutput>> result = alivenessMonitorService.monitorStart(lldpMonitorInput);
                 RpcResult<MonitorStartOutput> rpcResult = result.get();
                 if (rpcResult.isSuccessful()) {
-                    long monitorId = rpcResult.getResult().getMonitorId();
+                    long monitorId = rpcResult.getResult().getMonitorId().toJava();
                     ListenableFutures.addErrorLogging(
                         txRunner.callWithNewReadWriteTransactionAndSubmit(OPERATIONAL, tx -> {
                             createOrUpdateInterfaceMonitorIdMap(tx, trunkInterfaceName, monitorId);
@@ -122,12 +125,12 @@ public final class AlivenessMonitorUtils {
         }
         LOG.debug("stop LLDP monitoring for {}", trunkInterface);
         ListenableFutures.addErrorLogging(txRunner.callWithNewReadWriteTransactionAndSubmit(OPERATIONAL, tx -> {
-            List<Long> monitorIds = getMonitorIdForInterface(tx, trunkInterface);
+            List<Uint32> monitorIds = getMonitorIdForInterface(tx, trunkInterface);
             if (monitorIds == null) {
                 LOG.error("Monitor Id doesn't exist for Interface {}", trunkInterface);
                 return;
             }
-            for (Long monitorId : monitorIds) {
+            for (Uint32 monitorId : monitorIds) {
                 String interfaceName = getInterfaceFromMonitorId(tx, monitorId);
                 if (interfaceName != null) {
                     MonitorStopInput input = new MonitorStopInputBuilder().setMonitorId(monitorId).build();
@@ -143,14 +146,14 @@ public final class AlivenessMonitorUtils {
         }), LOG, "Error stopping LLDP monitoring for {}", trunkInterface);
     }
 
-    public static String getInterfaceFromMonitorId(TypedReadTransaction<Operational> tx, Long monitorId)
+    public static String getInterfaceFromMonitorId(TypedReadTransaction<Operational> tx, Uint32 monitorId)
         throws ExecutionException, InterruptedException {
         InstanceIdentifier<MonitorIdInterface> id = InstanceIdentifier.builder(MonitorIdInterfaceMap.class)
                 .child(MonitorIdInterface.class, new MonitorIdInterfaceKey(monitorId)).build();
         return tx.read(id).get().toJavaUtil().map(MonitorIdInterface::getInterfaceName).orElse(null);
     }
 
-    private void removeMonitorIdInterfaceMap(TypedReadWriteTransaction<Operational> tx, long monitorId)
+    private void removeMonitorIdInterfaceMap(TypedReadWriteTransaction<Operational> tx, Uint32 monitorId)
         throws ExecutionException, InterruptedException {
         InstanceIdentifier<MonitorIdInterface> id = InstanceIdentifier.builder(MonitorIdInterfaceMap.class)
                 .child(MonitorIdInterface.class, new MonitorIdInterfaceKey(monitorId)).build();
@@ -160,13 +163,13 @@ public final class AlivenessMonitorUtils {
     }
 
     private void removeMonitorIdFromInterfaceMonitorIdMap(TypedReadWriteTransaction<Operational> tx, String infName,
-        long monitorId) throws ExecutionException, InterruptedException {
+        Uint32 monitorId) throws ExecutionException, InterruptedException {
         InstanceIdentifier<InterfaceMonitorId> id = InstanceIdentifier.builder(InterfaceMonitorIdMap.class)
                 .child(InterfaceMonitorId.class, new InterfaceMonitorIdKey(infName)).build();
         Optional<InterfaceMonitorId> interfaceMonitorIdMap = tx.read(id).get();
         if (interfaceMonitorIdMap.isPresent()) {
             InterfaceMonitorId interfaceMonitorIdInstance = interfaceMonitorIdMap.get();
-            List<Long> existingMonitorIds = interfaceMonitorIdInstance.getMonitorId();
+            List<Uint32> existingMonitorIds = interfaceMonitorIdInstance.getMonitorId();
             if (existingMonitorIds != null && existingMonitorIds.contains(monitorId)) {
                 existingMonitorIds.remove(monitorId);
                 InterfaceMonitorIdBuilder interfaceMonitorIdBuilder = new InterfaceMonitorIdBuilder();
@@ -203,8 +206,8 @@ public final class AlivenessMonitorUtils {
             IfTunnel ifTunnelOld = interfaceOld.augmentation(IfTunnel.class);
             if (!Objects.equals(ifTunnelNew.getMonitorInterval(), ifTunnelOld.getMonitorInterval())) {
                 LOG.debug("deleting older monitor profile for interface {}", interfaceName);
-                long profileId = allocateProfile(FAILURE_THRESHOLD, ifTunnelOld.getMonitorInterval(), MONITORING_WINDOW,
-                        MonitorProtocolType.Lldp);
+                Uint32 profileId = allocateProfile(FAILURE_THRESHOLD, ifTunnelOld.getMonitorInterval().toJava(),
+                        MONITORING_WINDOW, MonitorProtocolType.Lldp);
                 MonitorProfileDeleteInput profileDeleteInput = new MonitorProfileDeleteInputBuilder()
                         .setProfileId(profileId).build();
 
@@ -218,7 +221,7 @@ public final class AlivenessMonitorUtils {
     private static void createOrUpdateInterfaceMonitorIdMap(TypedReadWriteTransaction<Operational> tx, String infName,
         long monitorId) throws ExecutionException, InterruptedException {
         InterfaceMonitorId interfaceMonitorIdInstance;
-        List<Long> existingMonitorIds;
+        List<Uint32> existingMonitorIds;
         InterfaceMonitorIdBuilder interfaceMonitorIdBuilder = new InterfaceMonitorIdBuilder();
         InstanceIdentifier<InterfaceMonitorId> id = InstanceIdentifier.builder(InterfaceMonitorIdMap.class)
                 .child(InterfaceMonitorId.class, new InterfaceMonitorIdKey(infName)).build();
@@ -229,15 +232,15 @@ public final class AlivenessMonitorUtils {
             if (existingMonitorIds == null) {
                 existingMonitorIds = new ArrayList<>();
             }
-            if (!existingMonitorIds.contains(monitorId)) {
-                existingMonitorIds.add(monitorId);
+            if (!existingMonitorIds.contains(Uint32.valueOf(monitorId))) {
+                existingMonitorIds.add(Uint32.valueOf(monitorId));
                 interfaceMonitorIdInstance = interfaceMonitorIdBuilder.withKey(new InterfaceMonitorIdKey(infName))
                         .setMonitorId(existingMonitorIds).build();
                 tx.merge(id, interfaceMonitorIdInstance, CREATE_MISSING_PARENTS);
             }
         } else {
             existingMonitorIds = new ArrayList<>();
-            existingMonitorIds.add(monitorId);
+            existingMonitorIds.add(Uint32.valueOf(monitorId));
             interfaceMonitorIdInstance = interfaceMonitorIdBuilder.setMonitorId(existingMonitorIds)
                     .withKey(new InterfaceMonitorIdKey(infName)).setInterfaceName(infName).build();
             tx.merge(id, interfaceMonitorIdInstance, CREATE_MISSING_PARENTS);
@@ -267,14 +270,14 @@ public final class AlivenessMonitorUtils {
         }
     }
 
-    private static List<Long> getMonitorIdForInterface(TypedReadTransaction<Operational> tx, String infName)
+    private static List<Uint32> getMonitorIdForInterface(TypedReadTransaction<Operational> tx, String infName)
         throws ExecutionException, InterruptedException {
         InstanceIdentifier<InterfaceMonitorId> id = InstanceIdentifier.builder(InterfaceMonitorIdMap.class)
                 .child(InterfaceMonitorId.class, new InterfaceMonitorIdKey(infName)).build();
         return tx.read(id).get().toJavaUtil().map(InterfaceMonitorId::getMonitorId).orElse(null);
     }
 
-    public long createMonitorProfile(MonitorProfileCreateInput monitorProfileCreateInput) {
+    public Uint32 createMonitorProfile(MonitorProfileCreateInput monitorProfileCreateInput) {
         try {
             Future<RpcResult<MonitorProfileCreateOutput>> result = alivenessMonitorService
                     .monitorProfileCreate(monitorProfileCreateInput);
@@ -286,8 +289,9 @@ public final class AlivenessMonitorUtils {
                         rpcResult.getErrors());
                 Profile createProfile = monitorProfileCreateInput.getProfile();
                 Future<RpcResult<MonitorProfileGetOutput>> existingProfile = alivenessMonitorService.monitorProfileGet(
-                        buildMonitorGetProfile(createProfile.getMonitorInterval(), createProfile.getMonitorWindow(),
-                                createProfile.getFailureThreshold(), createProfile.getProtocolType()));
+                        buildMonitorGetProfile(createProfile.getMonitorInterval().toJava(),
+                                createProfile.getMonitorWindow().toJava(),
+                                createProfile.getFailureThreshold().toJava(), createProfile.getProtocolType()));
                 RpcResult<MonitorProfileGetOutput> rpcGetResult = existingProfile.get();
                 if (rpcGetResult.isSuccessful()) {
                     return rpcGetResult.getResult().getProfileId();
@@ -298,7 +302,7 @@ public final class AlivenessMonitorUtils {
         } catch (InterruptedException | ExecutionException e) {
             LOG.warn("Exception when allocating profile Id", e);
         }
-        return 0;
+        return Uint32.valueOf(0);
     }
 
     private static MonitorProfileGetInput buildMonitorGetProfile(long monitorInterval, long monitorWindow,
@@ -317,7 +321,7 @@ public final class AlivenessMonitorUtils {
         return buildGetProfile.build();
     }
 
-    public long allocateProfile(long failureThreshold, long monitoringInterval, long monitoringWindow,
+    public Uint32 allocateProfile(long failureThreshold, long monitoringInterval, long monitoringWindow,
             MonitorProtocolType protoType) {
         MonitorProfileCreateInput input = new MonitorProfileCreateInputBuilder().setProfile(
                 new ProfileBuilder().setFailureThreshold(failureThreshold).setMonitorInterval(monitoringInterval)
index d1da0fbda6b8da1a899121134c05e7551896f8b8..b7a8abb6ab3ce521cbb7b6686472da9f6dfbf095 100644 (file)
@@ -5,7 +5,6 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.interfacemanager.commons;
 
 import static org.opendaylight.controller.md.sal.binding.api.WriteTransaction.CREATE_MISSING_PARENTS;
@@ -13,7 +12,6 @@ import static org.opendaylight.genius.infra.Datastore.OPERATIONAL;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
@@ -98,6 +96,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.No
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -280,7 +279,7 @@ public final class InterfaceManagerCommonUtils {
         return IfmUtil.read(LogicalDatastoreType.OPERATIONAL, ifStateId, dataBroker).orNull();
     }
 
-    public void addTunnelIngressFlow(TypedWriteTransaction<Configuration> tx, IfTunnel tunnel, BigInteger dpnId,
+    public void addTunnelIngressFlow(TypedWriteTransaction<Configuration> tx, IfTunnel tunnel, Uint64 dpnId,
         long portNo, String interfaceName, int ifIndex) {
         if (isTunnelWithoutIngressFlow(tunnel)) {
             return;
@@ -298,7 +297,8 @@ public final class InterfaceManagerCommonUtils {
 
         List<InstructionInfo> mkInstructions = new ArrayList<>();
         mkInstructions.add(
-                new InstructionWriteMetadata(MetaDataUtil.getLportTagMetaData(ifIndex).or(BigInteger.ONE),
+                new InstructionWriteMetadata(
+                    Uint64.fromLongBits(MetaDataUtil.getLportTagMetaData(ifIndex).longValue() | 1L),
                         MetaDataUtil.METADATA_MASK_LPORT_TAG_SH_FLAG));
         short tableId = tunnel.getTunnelInterfaceType().isAssignableFrom(TunnelTypeMplsOverGre.class)
                 ? NwConstants.L3_LFIB_TABLE
@@ -308,7 +308,7 @@ public final class InterfaceManagerCommonUtils {
         mdsalApiManager.addFlow(tx, buildTunnelIngressFlowEntity(dpnId, interfaceName, matches, mkInstructions));
     }
 
-    public void removeTunnelIngressFlow(TypedReadWriteTransaction<Configuration> tx, IfTunnel tunnel, BigInteger dpnId,
+    public void removeTunnelIngressFlow(TypedReadWriteTransaction<Configuration> tx, IfTunnel tunnel, Uint64 dpnId,
         String interfaceName) throws ExecutionException, InterruptedException {
         if (isTunnelWithoutIngressFlow(tunnel)) {
             return;
@@ -324,7 +324,7 @@ public final class InterfaceManagerCommonUtils {
     }
 
     @NonNull
-    private static FlowEntity buildTunnelIngressFlowEntity(BigInteger dpnId, String interfaceName,
+    private static FlowEntity buildTunnelIngressFlowEntity(Uint64 dpnId, String interfaceName,
             List<MatchInfoBase> matches, List<InstructionInfo> mkInstructions) {
         String flowRef = InterfaceManagerCommonUtils.getTunnelInterfaceFlowRef(dpnId,
                 NwConstants.VLAN_INTERFACE_INGRESS_TABLE, interfaceName);
@@ -333,7 +333,7 @@ public final class InterfaceManagerCommonUtils {
                 mkInstructions);
     }
 
-    public static String getTunnelInterfaceFlowRef(BigInteger dpnId, short tableId, String ifName) {
+    public static String getTunnelInterfaceFlowRef(Uint64 dpnId, short tableId, String ifName) {
         return String.valueOf(dpnId) + tableId + ifName;
     }
 
@@ -480,7 +480,7 @@ public final class InterfaceManagerCommonUtils {
         tx.put(ifStateId, ifaceBuilder.build(), CREATE_MISSING_PARENTS);
 
         // install ingress flow
-        BigInteger dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
+        Uint64 dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
         long portNo = IfmUtil.getPortNumberFromNodeConnectorId(nodeConnectorId);
         if (interfaceInfo != null && interfaceInfo.isEnabled() && ifState
                 .getOperStatus() == org.opendaylight.yang.gen.v1.urn
@@ -524,7 +524,7 @@ public final class InterfaceManagerCommonUtils {
             //logical tunnel group doesn't have OF port
             ParentRefs parentRefs = interfaceInfo.augmentation(ParentRefs.class);
             if (parentRefs != null) {
-                BigInteger dpId = parentRefs.getDatapathNodeIdentifier();
+                Uint64 dpId = parentRefs.getDatapathNodeIdentifier();
                 String lowref = MDSALUtil.NODE_PREFIX + MDSALUtil.SEPARATOR + dpId + MDSALUtil.SEPARATOR + 0;
                 childLowerLayerIfList.add(0, lowref);
             }
@@ -547,7 +547,7 @@ public final class InterfaceManagerCommonUtils {
             tx.put(ifStateId, ifState, CREATE_MISSING_PARENTS);
         }
         if (nodeConnectorId != null) {
-            BigInteger dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
+            Uint64 dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
             // Update the DpnToInterfaceList OpDS
             createOrUpdateDpnToInterface(dpId, interfaceName, interfaceType);
         }
@@ -711,7 +711,7 @@ public final class InterfaceManagerCommonUtils {
         return matcher.matches();
     }
 
-    public void createOrUpdateDpnToInterface(BigInteger dpId, String infName,
+    public void createOrUpdateDpnToInterface(Uint64 dpId, String infName,
                                              Class<? extends InterfaceType> interfaceType) {
         DpnToInterfaceKey dpnToInterfaceKey = new DpnToInterfaceKey(dpId);
         InterfaceNameEntryKey interfaceNameEntryKey = new InterfaceNameEntryKey(infName);
@@ -727,7 +727,7 @@ public final class InterfaceManagerCommonUtils {
         batchingUtils.write(intfid, entryBuilder.build(), BatchingUtils.EntityType.DEFAULT_OPERATIONAL);
     }
 
-    public List<InterfaceNameEntry> getAllInterfaces(BigInteger dpnId) {
+    public List<InterfaceNameEntry> getAllInterfaces(Uint64 dpnId) {
         DpnToInterfaceKey dpnToInterfaceKey = new DpnToInterfaceKey(dpnId);
         InstanceIdentifier<DpnToInterface> dpninterfaceListId =
             InstanceIdentifier.builder(DpnToInterfaceList.class).child(DpnToInterface.class, dpnToInterfaceKey).build();
@@ -739,8 +739,8 @@ public final class InterfaceManagerCommonUtils {
         return null;
     }
 
-    public static void deleteDpnToInterface(BigInteger dpId, String infName, TypedReadWriteTransaction<Operational> tx)
-        throws ExecutionException, InterruptedException {
+    public static void deleteDpnToInterface(Uint64 dpId, String infName, TypedReadWriteTransaction<Operational> tx)
+            throws ExecutionException, InterruptedException {
         DpnToInterfaceKey dpnToInterfaceKey = new DpnToInterfaceKey(dpId);
         InstanceIdentifier<DpnToInterface> dpnToInterfaceId = InstanceIdentifier.builder(DpnToInterfaceList.class)
                 .child(DpnToInterface.class, dpnToInterfaceKey).build();
index c833089937f6ee411e0be2d8bcec1b8407984c4b..207ee1dc1f3ac595c478a263d592eba870ac7f9b 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.genius.interfacemanager.commons;
 
 import static org.opendaylight.controller.md.sal.binding.api.WriteTransaction.CREATE_MISSING_PARENTS;
 
-import java.math.BigInteger;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -18,7 +17,6 @@ import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ExecutionException;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.ReadTransaction;
@@ -66,6 +64,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -76,8 +75,8 @@ public final class InterfaceMetaUtils {
     private final DataBroker dataBroker;
     private final IdManagerService idManager;
     private final BatchingUtils batchingUtils;
-    private final ConcurrentMap<BigInteger, BridgeEntry> bridgeEntryMap = new ConcurrentHashMap<>();
-    private final ConcurrentMap<BigInteger, BridgeRefEntry> bridgeRefEntryMap = new ConcurrentHashMap<>();
+    private final ConcurrentMap<Uint64, BridgeEntry> bridgeEntryMap = new ConcurrentHashMap<>();
+    private final ConcurrentMap<Uint64, BridgeRefEntry> bridgeRefEntryMap = new ConcurrentHashMap<>();
 
     @Inject
     public InterfaceMetaUtils(@Reference DataBroker dataBroker,
@@ -95,7 +94,7 @@ public final class InterfaceMetaUtils {
         return bridgeRefEntryInstanceIdentifierBuilder.build();
     }
 
-    public BridgeRefEntry getBridgeRefEntryFromOperationalDS(BigInteger dpId) {
+    public BridgeRefEntry getBridgeRefEntryFromOperationalDS(Uint64 dpId) {
         BridgeRefEntryKey bridgeRefEntryKey = new BridgeRefEntryKey(dpId);
         InstanceIdentifier<BridgeRefEntry> bridgeRefEntryIid = InterfaceMetaUtils
                 .getBridgeRefEntryIdentifier(bridgeRefEntryKey);
@@ -107,7 +106,7 @@ public final class InterfaceMetaUtils {
         return bridgeRefEntry;
     }
 
-    public BridgeRefEntry getBridgeRefEntryFromOperDS(BigInteger dpId) {
+    public BridgeRefEntry getBridgeRefEntryFromOperDS(Uint64 dpId) {
         BridgeRefEntry bridgeRefEntry = getBridgeRefEntryFromCache(dpId);
         if (bridgeRefEntry != null) {
             return bridgeRefEntry;
@@ -122,7 +121,7 @@ public final class InterfaceMetaUtils {
         return bridgeRefEntry;
     }
 
-    public OvsdbBridgeRef getOvsdbBridgeRef(BigInteger dpId) {
+    public OvsdbBridgeRef getOvsdbBridgeRef(Uint64 dpId) {
 
         BridgeRefEntry bridgeRefEntry = getBridgeRefEntryFromOperDS(dpId);
 
@@ -140,7 +139,7 @@ public final class InterfaceMetaUtils {
 
     public BridgeRefEntry getBridgeReferenceForInterface(Interface interfaceInfo) {
         ParentRefs parentRefs = interfaceInfo.augmentation(ParentRefs.class);
-        BigInteger dpn = parentRefs.getDatapathNodeIdentifier();
+        Uint64 dpn = parentRefs.getDatapathNodeIdentifier();
         return getBridgeRefEntryFromOperDS(dpn);
     }
 
@@ -159,7 +158,7 @@ public final class InterfaceMetaUtils {
         return bridgeEntryIdBuilder.build();
     }
 
-    public BridgeEntry getBridgeEntryFromConfigDS(BigInteger dpnId) {
+    public BridgeEntry getBridgeEntryFromConfigDS(Uint64 dpnId) {
         BridgeEntry bridgeEntry = getBridgeEntryFromCache(dpnId);
         if (bridgeEntry != null) {
             return bridgeEntry;
@@ -176,7 +175,7 @@ public final class InterfaceMetaUtils {
     }
 
     public BridgeEntry getBridgeEntryFromConfigDS(InstanceIdentifier<BridgeEntry> bridgeEntryInstanceIdentifier) {
-        BigInteger dpnId = bridgeEntryInstanceIdentifier.firstKeyOf(BridgeEntry.class).getDpid();
+        Uint64 dpnId = bridgeEntryInstanceIdentifier.firstKeyOf(BridgeEntry.class).getDpid();
         return getBridgeEntryFromConfigDS(dpnId);
     }
 
@@ -193,7 +192,7 @@ public final class InterfaceMetaUtils {
 
     }
 
-    public void createBridgeInterfaceEntryInConfigDS(BigInteger dpId, String childInterface) {
+    public void createBridgeInterfaceEntryInConfigDS(Uint64 dpId, String childInterface) {
         BridgeEntryKey bridgeEntryKey = new BridgeEntryKey(dpId);
         BridgeInterfaceEntryKey bridgeInterfaceEntryKey = new BridgeInterfaceEntryKey(childInterface);
         InstanceIdentifier<BridgeInterfaceEntry> bridgeInterfaceEntryIid =
@@ -303,7 +302,7 @@ public final class InterfaceMetaUtils {
         return ifIndex;
     }
 
-    public static void addBridgeRefToBridgeInterfaceEntry(BigInteger dpId, OvsdbBridgeRef ovsdbBridgeRef,
+    public static void addBridgeRefToBridgeInterfaceEntry(Uint64 dpId, OvsdbBridgeRef ovsdbBridgeRef,
             TypedWriteTransaction<Configuration> tx) {
         BridgeEntryKey bridgeEntryKey = new BridgeEntryKey(dpId);
         InstanceIdentifier<BridgeEntry> bridgeEntryInstanceIdentifier = getBridgeEntryIdentifier(bridgeEntryKey);
@@ -313,7 +312,7 @@ public final class InterfaceMetaUtils {
         tx.merge(bridgeEntryInstanceIdentifier, bridgeEntryBuilder.build(), CREATE_MISSING_PARENTS);
     }
 
-    public static void createBridgeRefEntry(BigInteger dpnId, InstanceIdentifier<?> bridgeIid,
+    public static void createBridgeRefEntry(Uint64 dpnId, InstanceIdentifier<?> bridgeIid,
                                             TypedWriteTransaction<Operational> tx) {
         LOG.debug("Creating bridge ref entry for dpn: {} bridge: {}",
                 dpnId, bridgeIid);
@@ -326,7 +325,7 @@ public final class InterfaceMetaUtils {
         tx.put(bridgeEntryId, tunnelDpnBridgeEntryBuilder.build(), CREATE_MISSING_PARENTS);
     }
 
-    public static void deleteBridgeRefEntry(BigInteger dpnId, TypedWriteTransaction<Operational> tx) {
+    public static void deleteBridgeRefEntry(Uint64 dpnId, TypedWriteTransaction<Operational> tx) {
         LOG.debug("Deleting bridge ref entry for dpn: {}", dpnId);
         tx.delete(InterfaceMetaUtils.getBridgeRefEntryIdentifier(new BridgeRefEntryKey(dpnId)));
     }
@@ -390,7 +389,7 @@ public final class InterfaceMetaUtils {
         }
     }
 
-    public List<TerminationPoint> getTerminationPointsOnBridge(BigInteger dpnId) {
+    public List<TerminationPoint> getTerminationPointsOnBridge(Uint64 dpnId) {
         BridgeRefEntry bridgeRefEntry = getBridgeRefEntryFromOperDS(dpnId);
         if (bridgeRefEntry == null || bridgeRefEntry.getBridgeReference() == null) {
             LOG.debug("BridgeRefEntry for DPNID {} not found", dpnId);
@@ -409,7 +408,7 @@ public final class InterfaceMetaUtils {
     // Cache Util methods
 
     // Start: BridgeEntryCache
-    public void addBridgeEntryToCache(BigInteger dpnId, BridgeEntry bridgeEntry) {
+    public void addBridgeEntryToCache(Uint64 dpnId, BridgeEntry bridgeEntry) {
         bridgeEntryMap.put(dpnId, bridgeEntry);
     }
 
@@ -417,7 +416,7 @@ public final class InterfaceMetaUtils {
         addBridgeEntryToCache(bridgeEntry.key().getDpid(), bridgeEntry);
     }
 
-    public void removeFromBridgeEntryCache(BigInteger dpnId) {
+    public void removeFromBridgeEntryCache(Uint64 dpnId) {
         bridgeEntryMap.remove(dpnId);
     }
 
@@ -425,13 +424,13 @@ public final class InterfaceMetaUtils {
         removeFromBridgeEntryCache(bridgeEntry.key().getDpid());
     }
 
-    public BridgeEntry getBridgeEntryFromCache(BigInteger dpnId) {
+    public BridgeEntry getBridgeEntryFromCache(Uint64 dpnId) {
         return bridgeEntryMap.get(dpnId);
     }
     // End: Bridge Entry Cache
 
     //Start: BridgeRefEntry Cache
-    public void addBridgeRefEntryToCache(BigInteger dpnId, BridgeRefEntry bridgeRefEntry) {
+    public void addBridgeRefEntryToCache(Uint64 dpnId, BridgeRefEntry bridgeRefEntry) {
         bridgeRefEntryMap.put(dpnId, bridgeRefEntry);
     }
 
@@ -439,7 +438,7 @@ public final class InterfaceMetaUtils {
         addBridgeRefEntryToCache(bridgeRefEntry.key().getDpid(), bridgeRefEntry);
     }
 
-    public void removeFromBridgeRefEntryCache(BigInteger dpnId) {
+    public void removeFromBridgeRefEntryCache(Uint64 dpnId) {
         bridgeRefEntryMap.remove(dpnId);
     }
 
@@ -447,7 +446,7 @@ public final class InterfaceMetaUtils {
         removeFromBridgeRefEntryCache(bridgeRefEntry.key().getDpid());
     }
 
-    public BridgeRefEntry getBridgeRefEntryFromCache(BigInteger dpnId) {
+    public BridgeRefEntry getBridgeRefEntryFromCache(Uint64 dpnId) {
         return bridgeRefEntryMap.get(dpnId);
     }
 
index fb863ac6150e053cbe03482dc9b197fa21f0269b..0948f146d9d6fab30a244c04c1ee448d3310e61d 100644 (file)
@@ -27,6 +27,8 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.alivenessmonitor.rev160411.AlivenessMonitorListener;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.alivenessmonitor.rev160411.LivenessState;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.alivenessmonitor.rev160411.MonitorEvent;
+import org.opendaylight.yangtools.yang.common.Uint32;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -60,7 +62,7 @@ public class AlivenessMonitorListenerImpl implements AlivenessMonitorListener {
     @Override
     public void onMonitorEvent(MonitorEvent notification) {
         ListenableFutures.addErrorLogging(txRunner.callWithNewReadWriteTransactionAndSubmit(OPERATIONAL, tx -> {
-            Long monitorId = notification.getEventData().getMonitorId();
+            Uint32 monitorId = notification.getEventData().getMonitorId();
             String tunnelInterface = AlivenessMonitorUtils.getInterfaceFromMonitorId(tx, monitorId);
             if (tunnelInterface == null) {
                 LOG.debug("Either monitoring for interface not started by Interfacemgr or it is not LLDP monitoring");
index d132368f7e7c195c5a90dc6f7e593dd04237d85d..b5dde272cfddea5f5c8065dc2f6662ecbb64d2ac 100644 (file)
@@ -10,11 +10,8 @@ package org.opendaylight.genius.interfacemanager.listeners;
 import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 import static org.opendaylight.genius.infra.Datastore.OPERATIONAL;
 
-import com.google.common.base.Function;
 import com.google.common.util.concurrent.ListenableFuture;
-
 import com.google.common.util.concurrent.MoreExecutors;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -24,7 +21,6 @@ import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutionException;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.checkerframework.checker.nullness.qual.Nullable;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
@@ -61,6 +57,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -254,12 +251,12 @@ public class InterfaceInventoryStateListener
                 nodeConnectorIdOld = new NodeConnectorId(ofportIds.get(0));
             }
             if (nodeConnectorIdOld != null && !nodeConnectorId.equals(nodeConnectorIdOld)) {
-                BigInteger dpnIdOld = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorIdOld);
-                BigInteger dpnIdNew = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
+                Uint64 dpnIdOld = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorIdOld);
+                Uint64 dpnIdNew = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
                 if (!Objects.equals(dpnIdOld, dpnIdNew)) {
-                    if ((fcNodeConnectorNew.getReason() != PortReason.Add)
-                            && (interfaceState.getOperStatus()
-                            != Interface.OperStatus.Unknown)) {
+                    if (fcNodeConnectorNew.getReason() != PortReason.Add
+                            && interfaceState.getOperStatus()
+                            != Interface.OperStatus.Unknown) {
                         LOG.error("Dropping Port update event for {}, as DPN id is changed from {} to {}",
                             fcNodeConnectorNew.getName(), dpnIdOld, dpnIdNew);
                         return;
@@ -418,7 +415,7 @@ public class InterfaceInventoryStateListener
             NodeConnectorId nodeConnectorId = nodeConnectorIdOld != null
                     && !nodeConnectorIdNew.equals(nodeConnectorIdOld) ? nodeConnectorIdOld : nodeConnectorIdNew;
             // delete the port entry from interface operational DS
-            BigInteger dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
+            Uint64 dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
 
             futures.add(txRunner.applyWithNewTransactionChainAndClose(txChain ->
                 txChain.applyWithNewReadWriteTransactionAndSubmit(OPERATIONAL, operTx -> {
@@ -463,22 +460,18 @@ public class InterfaceInventoryStateListener
                         InterfaceManagerCommonUtils.deleteDpnToInterface(dpId, interfaceName, operTx);
                     }
                     return Optional.empty();
-                }).transform(new Function<Optional<?>, Void>() {
-                    @Nullable
-                    @Override
-                    public Void apply(@Nullable Optional<?> optionalJob) {
-                        if (optionalJob != null && optionalJob.isPresent()) {
-                            txChain.callWithNewReadWriteTransactionAndSubmit(CONFIGURATION,
-                                (InterruptibleCheckedConsumer<TypedReadWriteTransaction<Configuration>, ?
-                                    extends Exception>) optionalJob.get());
-                        }
-                        return null;
+                }).transform((@Nullable Optional<?> optionalJob) -> {
+                    if (optionalJob != null && optionalJob.isPresent()) {
+                        txChain.callWithNewReadWriteTransactionAndSubmit(CONFIGURATION,
+                            (InterruptibleCheckedConsumer<TypedReadWriteTransaction<Configuration>, ?
+                                extends Exception>) optionalJob.get());
                     }
+                    return null;
                 }, MoreExecutors.directExecutor())));
             return futures;
         }
 
-        private void handleTunnelMonitoringRemoval(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId,
+        private void handleTunnelMonitoringRemoval(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId,
             String removedInterfaceName, IfTunnel ifTunnel) throws ExecutionException, InterruptedException {
             interfaceManagerCommonUtils.removeTunnelIngressFlow(tx, ifTunnel, dpId, removedInterfaceName);
 
index a251dd1e7ec97049cbef33f42e95cc41984bc8ac..6e03467bb6cdceabe93f2c5b0d524360890664a0 100644 (file)
@@ -11,15 +11,12 @@ import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 import static org.opendaylight.genius.infra.Datastore.OPERATIONAL;
 
 import com.google.common.util.concurrent.ListenableFuture;
-
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.Callable;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -46,6 +43,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -188,7 +186,7 @@ public class InterfaceTopologyStateListener
                 LOG.info("DataPathId found as null for Bridge Augmentation: {}... returning...", bridgeNew);
                 return Collections.emptyList();
             }
-            BigInteger dpnId = IfmUtil.getDpnId(bridgeNew.getDatapathId());
+            Uint64 dpnId = IfmUtil.getDpnId(bridgeNew.getDatapathId());
             LOG.debug("adding bridge references for bridge: {}, dpn: {}", bridgeNew, dpnId);
             // create bridge reference entry in interface meta operational DS
             return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(OPERATIONAL, tx -> {
@@ -218,7 +216,7 @@ public class InterfaceTopologyStateListener
 
         @Override
         public List<ListenableFuture<Void>> call() {
-            BigInteger dpnId = IfmUtil.getDpnId(bridgeNew.getDatapathId());
+            Uint64 dpnId = IfmUtil.getDpnId(bridgeNew.getDatapathId());
 
             if (dpnId == null) {
                 LOG.warn("Got Null DPID for Bridge: {}", bridgeNew);
index a6ce775cc52f275359d517a79f8bd979c95113be..ce2fde359ba43d7a8badb03e56e3708bd978e6fc 100644 (file)
@@ -13,6 +13,7 @@ import com.google.common.base.Optional;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -26,7 +27,6 @@ import javax.annotation.PreDestroy;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 import org.apache.aries.blueprint.annotation.service.Reference;
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.genius.datastoreutils.AsyncClusteredDataTreeChangeListenerBase;
@@ -127,7 +127,8 @@ public class NodeConnectorStatsImpl extends AsyncClusteredDataTreeChangeListener
         LOG.info("Scheduling port statistics request");
         PortStatRequestTask portStatRequestTask = new PortStatRequestTask();
         scheduledResult = portStatExecutorService.scheduleWithFixedDelay(portStatRequestTask,
-                ifmConfig.getIfmStatsDefPollInterval(), ifmConfig.getIfmStatsDefPollInterval(), TimeUnit.MINUTES);
+                ifmConfig.getIfmStatsDefPollInterval().toJava(), ifmConfig.getIfmStatsDefPollInterval().toJava(),
+                TimeUnit.MINUTES);
     }
 
     /*
@@ -162,7 +163,7 @@ public class NodeConnectorStatsImpl extends AsyncClusteredDataTreeChangeListener
                 Futures.addCallback(ncStatsFuture, new FutureCallback<RpcResult<GetNodeConnectorStatisticsOutput>>() {
 
                     @Override
-                    public void onFailure(@NonNull Throwable error) {
+                    public void onFailure(Throwable error) {
                         LOG.error("getNodeConnectorStatistics RPC failed for node: {} ", node, error);
                     }
 
@@ -188,7 +189,7 @@ public class NodeConnectorStatsImpl extends AsyncClusteredDataTreeChangeListener
                 Futures.addCallback(flowStatsFuture, new FutureCallback<RpcResult<GetFlowStatisticsOutput>>() {
 
                     @Override
-                    public void onFailure(@NonNull Throwable error) {
+                    public void onFailure(Throwable error) {
                         LOG.error("getFlowStatistics RPC failed for node: {} ", node, error);
                     }
 
@@ -252,6 +253,8 @@ public class NodeConnectorStatsImpl extends AsyncClusteredDataTreeChangeListener
      * - creates/updates new OF Port counters using Infrautils metrics API
      * - set counter with values fetched from NodeConnectorStatistics
      */
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private void processNodeConnectorStatistics(GetNodeConnectorStatisticsOutput nodeConnectorStatisticsOutput,
                                                 String dpid) {
         String port = "";
@@ -289,7 +292,7 @@ public class NodeConnectorStatsImpl extends AsyncClusteredDataTreeChangeListener
             }
 
             Counter counter = getCounter(CounterConstants.IFM_PORT_COUNTER_OFPORT_DURATION, dpid, port, portUuid,null);
-            long ofPortDuration = ncStatsAndPortMap.getDuration().getSecond().getValue();
+            long ofPortDuration = ncStatsAndPortMap.getDuration().getSecond().getValue().toJava();
             updateCounter(counter, ofPortDuration);
 
             counter = getCounter(CounterConstants.IFM_PORT_COUNTER_OFPORT_PKT_RECVDROP, dpid, port, portUuid, null);
@@ -326,13 +329,15 @@ public class NodeConnectorStatsImpl extends AsyncClusteredDataTreeChangeListener
      * - creates/updates Flow table counters using Infrautils metrics API
      * - set counter with values fetched from FlowStatistics
      */
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private void processFlowStatistics(GetFlowStatisticsOutput flowStatsOutput, String dpid) {
         Map<Short, AtomicInteger> flowTableMap = new HashMap<>();
         // Get all flows for node from RPC result
         List<FlowAndStatisticsMapList> flowTableAndStatisticsMapList =
             flowStatsOutput.nonnullFlowAndStatisticsMapList();
         for (FlowAndStatisticsMapList flowAndStatisticsMap : flowTableAndStatisticsMapList) {
-            short tableId = flowAndStatisticsMap.getTableId();
+            short tableId = flowAndStatisticsMap.getTableId().toJava();
             // populate map to maintain flow count per table
             flowTableMap.computeIfAbsent(tableId, key -> new AtomicInteger(0)).incrementAndGet();
         }
@@ -422,7 +427,7 @@ public class NodeConnectorStatsImpl extends AsyncClusteredDataTreeChangeListener
             }
         }
         if (nodes.size() > 0) {
-            delayStatsQuery = ifmConfig.getIfmStatsDefPollInterval() / nodes.size();
+            delayStatsQuery = ifmConfig.getIfmStatsDefPollInterval().toJava() / nodes.size();
         } else {
             stopPortStatRequestTask();
             delayStatsQuery = 0;
@@ -444,7 +449,7 @@ public class NodeConnectorStatsImpl extends AsyncClusteredDataTreeChangeListener
                 return;
             }
             nodes.add(dpId);
-            delayStatsQuery = ifmConfig.getIfmStatsDefPollInterval() / nodes.size();
+            delayStatsQuery = ifmConfig.getIfmStatsDefPollInterval().toJava() / nodes.size();
             if (nodes.size() == 1) {
                 schedulePortStatRequestTask();
             }
index 62bf6034e2e4743538049f5bc1ec70a46158b46f..63e3cc3794a0d846f0e8f7bfa93e370d95a28e10 100644 (file)
@@ -15,7 +15,6 @@ import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
-import java.math.BigInteger;
 import java.time.Duration;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -23,7 +22,6 @@ import java.util.List;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 import org.apache.aries.blueprint.annotation.service.Reference;
-import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -58,6 +56,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -143,7 +142,7 @@ public final class OvsInterfaceConfigAddHelper {
             return;
         }
 
-        BigInteger dpId = parentRefs.getDatapathNodeIdentifier();
+        Uint64 dpId = parentRefs.getDatapathNodeIdentifier();
         if (dpId == null) {
             LOG.warn("dpid for interface: {} Not Found. No DPID provided. " + "Creation of OF-Port not supported.",
                     interfaceNew.getName());
@@ -215,7 +214,7 @@ public final class OvsInterfaceConfigAddHelper {
     }
 
     private long createLogicalTunnelSelectGroup(TypedWriteTransaction<Configuration> tx,
-        BigInteger srcDpnId, String interfaceName, int lportTag) {
+            Uint64 srcDpnId, String interfaceName, int lportTag) {
         long groupId = IfmUtil.getLogicalTunnelSelectGroupId(lportTag);
         Group group = MDSALUtil.buildGroup(groupId, interfaceName, GroupTypes.GroupSelect,
                                            MDSALUtil.buildBucketLists(Collections.emptyList()));
@@ -243,7 +242,7 @@ public final class OvsInterfaceConfigAddHelper {
     }
 
     private void setupTunnelFlowsAndMonitoring(Interface interfaceNew, TypedWriteTransaction<Configuration> confTx,
-                                               IfTunnel ifTunnel, BigInteger dpId,
+                                               IfTunnel ifTunnel, Uint64 dpId,
                                                List<ListenableFuture<Void>> futures) {
         // if TEP is already configured on switch, start LLDP monitoring and
         // program tunnel ingress flow
@@ -268,7 +267,7 @@ public final class OvsInterfaceConfigAddHelper {
                     }
 
                     @Override
-                    public void onFailure(@NonNull Throwable throwable) {
+                    public void onFailure(Throwable throwable) {
                         LOG.error("Unable to add tunnel monitoring", throwable);
                     }
                 }, MoreExecutors.directExecutor());
index 8fd08281ec4271331b1bbd6bb4b88a6242c5fd3a..9d195a93b8e358791553ee086a811a7940cd05dc 100644 (file)
@@ -11,14 +11,12 @@ import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 import static org.opendaylight.genius.infra.Datastore.OPERATIONAL;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ExecutionException;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.genius.infra.Datastore.Configuration;
@@ -50,6 +48,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeRef;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -120,7 +119,7 @@ public final class OvsInterfaceConfigRemoveHelper {
         }
 
         cleanUpInterfaceWithUnknownState(interfaceName, parentRefs, null, tx);
-        BigInteger dpId = IfmUtil.getDpnFromInterface(ifState);
+        Uint64 dpId = IfmUtil.getDpnFromInterface(ifState);
         EVENT_LOGGER.debug("IFM-OvsInterfaceConfig,REMOVE {}", interfaceName);
         FlowBasedServicesUtils.removeIngressFlow(interfaceName, dpId, txRunner, futures);
 
@@ -145,7 +144,7 @@ public final class OvsInterfaceConfigRemoveHelper {
             TypedWriteTransaction<Operational> operTx, TypedReadWriteTransaction<Configuration> confTx)
             throws ExecutionException, InterruptedException {
         LOG.info("removing tunnel configuration for interface {}", interfaceName);
-        BigInteger dpId = null;
+        Uint64 dpId = null;
         if (parentRefs != null) {
             dpId = parentRefs.getDatapathNodeIdentifier();
         }
@@ -206,7 +205,7 @@ public final class OvsInterfaceConfigRemoveHelper {
     }
 
     public void removeTunnelIngressFlow(TypedReadWriteTransaction<Configuration> confTx,
-        String interfaceName, IfTunnel ifTunnel, BigInteger dpId) throws ExecutionException, InterruptedException {
+        String interfaceName, IfTunnel ifTunnel, Uint64 dpId) throws ExecutionException, InterruptedException {
         NodeConnectorId ncId = FlowBasedServicesUtils.getNodeConnectorIdFromInterface(interfaceName,
                 interfaceManagerCommonUtils);
         if (ncId == null) {
@@ -240,13 +239,13 @@ public final class OvsInterfaceConfigRemoveHelper {
     private static class VlanMemberStateRemoveWorker implements Callable<List<ListenableFuture<Void>>> {
         private final ManagedNewTransactionRunner txRunner;
         private final InterfaceManagerCommonUtils interfaceManagerCommonUtils;
-        private final BigInteger dpId;
+        private final Uint64 dpId;
         private final String interfaceName;
         private final InterfaceParentEntry interfaceParentEntry;
 
         VlanMemberStateRemoveWorker(ManagedNewTransactionRunner txRunner,
                 InterfaceManagerCommonUtils interfaceManagerCommonUtils,
-                BigInteger dpId, String interfaceName, InterfaceParentEntry interfaceParentEntry) {
+                Uint64 dpId, String interfaceName, InterfaceParentEntry interfaceParentEntry) {
             this.txRunner = txRunner;
             this.interfaceManagerCommonUtils = interfaceManagerCommonUtils;
             this.dpId = dpId;
@@ -280,14 +279,14 @@ public final class OvsInterfaceConfigRemoveHelper {
     }
 
     private void removeLogicalTunnelSelectGroup(TypedReadWriteTransaction<Configuration> tx,
-        BigInteger srcDpnId, String interfaceName, int lportTag) throws ExecutionException, InterruptedException {
+            Uint64 srcDpnId, String interfaceName, int lportTag) throws ExecutionException, InterruptedException {
         long groupId = IfmUtil.getLogicalTunnelSelectGroupId(lportTag);
         LOG.debug("MULTIPLE_VxLAN_TUNNELS: group id {} removed for {} srcDpnId {}",
                 groupId, interfaceName, srcDpnId);
         mdsalApiManager.removeGroup(tx, srcDpnId, groupId);
     }
 
-    private void removeLogicalTunnelGroup(BigInteger dpnId, String ifaceName, int lportTag,
+    private void removeLogicalTunnelGroup(Uint64 dpnId, String ifaceName, int lportTag,
             TypedWriteTransaction<Operational> operTx, TypedReadWriteTransaction<Configuration> confTx)
             throws ExecutionException, InterruptedException {
         LOG.debug("MULTIPLE_VxLAN_TUNNELS: unbind & delete Interface State for logic tunnel group {}", ifaceName);
index 6154cb3a6995b503b08930e86e4003472391417c..ae4eaa11e762a16ec2b7eadfa9d039475395d9e6 100644 (file)
@@ -11,13 +11,11 @@ import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 import static org.opendaylight.genius.infra.Datastore.OPERATIONAL;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
@@ -33,6 +31,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.met
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.meta.rev160406._interface.child.info._interface.parent.entry.InterfaceChildEntryKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.ParentRefs;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -89,7 +88,7 @@ public class OvsVlanMemberConfigRemoveHelper {
                     .getInterfaceState(tx, parentRefs.getParentInterface());
                 if (ifState != null) {
                     LOG.debug("delete vlan member interface state {}", interfaceOld.getName());
-                    BigInteger dpId = IfmUtil.getDpnFromInterface(ifState);
+                    Uint64 dpId = IfmUtil.getDpnFromInterface(ifState);
                     interfaceManagerCommonUtils.deleteInterfaceStateInformation(interfaceOld.getName(), tx);
                     // TODO skitt The following is another configuration transaction, we'll deal with it later
                     FlowBasedServicesUtils.removeIngressFlow(interfaceOld.getName(), dpId, txRunner, futures);
index 1a3e3e854edb7bb0187398902b0aa942deed0d5e..d81560254b5552e63658bfdb4de2bbf833e86ba2 100644 (file)
@@ -14,13 +14,11 @@ import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 import org.apache.aries.blueprint.annotation.service.Reference;
-import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
@@ -37,6 +35,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.Fl
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfTunnel;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.ParentRefs;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -125,7 +124,7 @@ public final class OvsInterfaceStateAddHelper {
             if (InterfaceManagerCommonUtils.isVlanInterface(iface) && iface.isEnabled() && ifState
                     .getOperStatus() == org.opendaylight.yang.gen.v1.urn
                     .ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface.OperStatus.Up) {
-                BigInteger dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
+                Uint64 dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
                 FlowBasedServicesUtils.installLportIngressFlow(dpId, portNo, iface, futures, txRunner,
                         ifState.getIfIndex());
                 futures.add(FlowBasedServicesUtils.bindDefaultEgressDispatcherService(txRunner, iface,
@@ -142,7 +141,7 @@ public final class OvsInterfaceStateAddHelper {
             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
                     .ietf.interfaces.rev140508.interfaces.Interface interfaceInfo, String interfaceName, long portNo) {
         EVENT_LOGGER.debug("IFM-OvsInterfaceState,ADD,TunnelIngressFlow {}", interfaceName);
-        BigInteger dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
+        Uint64 dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
         ListenableFuture<Void> future = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> {
             interfaceManagerCommonUtils.addTunnelIngressFlow(
                 tx, interfaceInfo.augmentation(IfTunnel.class), dpId, portNo, interfaceName, ifIndex);
@@ -157,7 +156,7 @@ public final class OvsInterfaceStateAddHelper {
             }
 
             @Override
-            public void onFailure(@NonNull Throwable throwable) {
+            public void onFailure(Throwable throwable) {
                 LOG.error("Unable to add tunnel monitoring", throwable);
             }
         }, MoreExecutors.directExecutor());
@@ -166,7 +165,7 @@ public final class OvsInterfaceStateAddHelper {
     public static boolean validateTunnelPortAttributes(NodeConnectorId nodeConnectorId,
             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
                 .ietf.interfaces.rev140508.interfaces.Interface iface) {
-        BigInteger currentDpnId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
+        Uint64 currentDpnId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
         if (iface != null) {
             ParentRefs parentRefs = iface.augmentation(ParentRefs.class);
             if (!currentDpnId.equals(parentRefs.getDatapathNodeIdentifier())) {
index ca6defa3b324c0a2597e59b678990d116f3b4f00..8aa4f8fe4893fca6492a2dd3e2b84e963783f727 100644 (file)
@@ -10,12 +10,10 @@ package org.opendaylight.genius.interfacemanager.renderer.ovs.statehelpers;
 import static org.opendaylight.genius.infra.Datastore.OPERATIONAL;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.Collections;
 import java.util.List;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
@@ -33,6 +31,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.InterfaceBfdStatus;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -71,8 +70,8 @@ public class OvsInterfaceTopologyStateUpdateHelper {
                                                              OvsdbBridgeAugmentation bridgeNew,
                                                              OvsdbBridgeAugmentation bridgeOld) {
         return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(OPERATIONAL, tx -> {
-            BigInteger dpnIdNew = IfmUtil.getDpnId(bridgeNew.getDatapathId());
-            BigInteger dpnIdOld = IfmUtil.getDpnId(bridgeOld.getDatapathId());
+            Uint64 dpnIdNew = IfmUtil.getDpnId(bridgeNew.getDatapathId());
+            Uint64 dpnIdOld = IfmUtil.getDpnId(bridgeOld.getDatapathId());
 
             LOG.debug("updating bridge references for bridge: {}, dpnNew: {}, dpnOld: {}", bridgeNew,
                     dpnIdNew, dpnIdOld);
index e8047503851c256c1b847b3e56721ed575f5255f..44e7e6eb8cb6d7370296f80e7604b96e36aebea9 100644 (file)
@@ -11,7 +11,6 @@ import static org.opendaylight.controller.md.sal.binding.api.WriteTransaction.CR
 
 import com.google.common.collect.Maps;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -20,7 +19,6 @@ import java.util.Map;
 import java.util.UUID;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.apache.commons.lang3.BooleanUtils;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
@@ -76,6 +74,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -125,7 +124,7 @@ public class SouthboundUtils {
 
     // To keep the mapping between Tunnel Types and Tunnel Interfaces
     private static final Map<Class<? extends TunnelTypeBase>, Class<? extends InterfaceTypeBase>>
-        TUNNEL_TYPE_MAP = new HashMap<Class<? extends TunnelTypeBase>, Class<? extends InterfaceTypeBase>>() {
+        TUNNEL_TYPE_MAP = new HashMap<>() {
             {
                 put(TunnelTypeGre.class, InterfaceTypeGre.class);
                 put(TunnelTypeMplsOverGre.class, InterfaceTypeGre.class);
@@ -215,7 +214,7 @@ public class SouthboundUtils {
         int vlanId = 0;
         IfL2vlan ifL2vlan = iface.augmentation(IfL2vlan.class);
         if (ifL2vlan != null && ifL2vlan.getVlanId() != null) {
-            vlanId = ifL2vlan.getVlanId().getValue();
+            vlanId = ifL2vlan.getVlanId().getValue().toJava();
         }
 
         Map<String, String> options = Maps.newHashMap();
@@ -389,8 +388,8 @@ public class SouthboundUtils {
 
     public static boolean ifBfdStatusNotEqual(OvsdbTerminationPointAugmentation tpOld,
                                            OvsdbTerminationPointAugmentation tpNew) {
-        return (tpNew.getInterfaceBfdStatus() != null
-                && (tpOld == null || !tpNew.getInterfaceBfdStatus().equals(tpOld.getInterfaceBfdStatus())));
+        return tpNew.getInterfaceBfdStatus() != null
+                && (tpOld == null || !tpNew.getInterfaceBfdStatus().equals(tpOld.getInterfaceBfdStatus()));
     }
 
     public static boolean changeInBfdMonitoringDetected(OvsdbTerminationPointAugmentation tpOld,
@@ -426,7 +425,7 @@ public class SouthboundUtils {
     }
 
     @SuppressFBWarnings("DM_DEFAULT_ENCODING")
-    public static String generateOfTunnelName(BigInteger dpId, IfTunnel ifTunnel) {
+    public static String generateOfTunnelName(Uint64 dpId, IfTunnel ifTunnel) {
         String sourceKey = ifTunnel.getTunnelSource().stringValue();
         String remoteKey = ifTunnel.getTunnelDestination().stringValue();
         if (ifTunnel.isTunnelSourceIpFlow() != null) {
index 0be59112fb47c4af18856e11d24e03a1dc524a4a..b4898a7fde5bd718b5c7ea1d748880ab509b3e12 100644 (file)
@@ -5,19 +5,16 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.interfacemanager.rpcservice;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -77,6 +74,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpc
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.get.dpn._interface.list.output.InterfacesBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -103,7 +101,7 @@ public class InterfaceManagerServiceImpl implements InterfaceManagerService {
     @Override
     public ListenableFuture<GetDpidFromInterfaceOutput> getDpidFromInterface(GetDpidFromInterfaceInput input) {
         String interfaceName = input.getIntfName();
-        BigInteger dpId;
+        Uint64 dpId;
         InterfaceKey interfaceKey = new InterfaceKey(interfaceName);
         Interface interfaceInfo = interfaceManagerCommonUtils.getInterfaceFromConfigDS(interfaceKey);
         if (interfaceInfo == null) {
@@ -154,7 +152,7 @@ public class InterfaceManagerServiceImpl implements InterfaceManagerService {
     public ListenableFuture<GetEgressInstructionsForInterfaceOutput> getEgressInstructionsForInterface(
             GetEgressInstructionsForInterfaceInput input) {
         List<Instruction> instructions = IfmUtil.getEgressInstructionsForInterface(input.getIntfName(),
-                input.getTunnelKey(), interfaceManagerCommonUtils, false);
+                input.getTunnelKey().toJava(), interfaceManagerCommonUtils, false);
         return Futures.immediateFuture(
                 new GetEgressInstructionsForInterfaceOutputBuilder().setInstruction(instructions).build());
     }
@@ -194,8 +192,8 @@ public class InterfaceManagerServiceImpl implements InterfaceManagerService {
     @Override
     public ListenableFuture<GetEgressActionsForInterfaceOutput> getEgressActionsForInterface(
             GetEgressActionsForInterfaceInput input) {
-        List<Action> actionsList = IfmUtil.getEgressActionsForInterface(input.getIntfName(), input.getTunnelKey(),
-                input.getActionKey(), interfaceManagerCommonUtils, false);
+        List<Action> actionsList = IfmUtil.getEgressActionsForInterface(input.getIntfName(),
+                input.getTunnelKey().toJava(), input.getActionKey(), interfaceManagerCommonUtils, false);
         // TODO as above, simplify the success case later, as we have the failure case below
         return Futures
                 .immediateFuture(new GetEgressActionsForInterfaceOutputBuilder().setAction(actionsList).build());
@@ -204,7 +202,7 @@ public class InterfaceManagerServiceImpl implements InterfaceManagerService {
     @Override
     public ListenableFuture<GetPortFromInterfaceOutput> getPortFromInterface(GetPortFromInterfaceInput input) {
         String interfaceName = input.getIntfName();
-        BigInteger dpId = null;
+        Uint64 dpId = null;
         long portNo = 0;
         org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
             .ietf.interfaces.rev140508.interfaces.state.Interface ifState = interfaceManagerCommonUtils
@@ -262,7 +260,7 @@ public class InterfaceManagerServiceImpl implements InterfaceManagerService {
 
     @Override
     public ListenableFuture<GetDpnInterfaceListOutput> getDpnInterfaceList(GetDpnInterfaceListInput input) {
-        BigInteger dpnid = input.getDpid();
+        Uint64 dpnid = input.getDpid();
         InstanceIdentifier<DpnToInterface> id = InstanceIdentifier.builder(DpnToInterfaceList.class)
                 .child(DpnToInterface.class, new DpnToInterfaceKey(dpnid)).build();
         Optional<DpnToInterface> entry = IfmUtil.read(LogicalDatastoreType.OPERATIONAL, id, dataBroker);
index 0f3e6468e2a60346aea23eb446e246bf3ae1597c..9b5b9aba670a1f8eee1cb2f3b31cd0621bf115cb 100644 (file)
@@ -10,11 +10,9 @@ package org.opendaylight.genius.interfacemanager.servicebindings.flowbased.confi
 import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.List;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
@@ -26,6 +24,7 @@ import org.opendaylight.genius.utils.ServiceIndex;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.bound.services.state.list.BoundServicesState;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -47,7 +46,7 @@ public class FlowBasedEgressServicesConfigBindHelper extends AbstractFlowBasedSe
     @Override
     protected void bindServiceOnInterface(List<ListenableFuture<Void>> futures, BoundServices boundServiceNew,
                                           List<BoundServices> allServices, BoundServicesState boundServiceState) {
-        BigInteger dpId = boundServiceState.getDpid();
+        Uint64 dpId = boundServiceState.getDpid();
         futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> {
             Interface iface =
                     interfaceManagerCommonUtils.getInterfaceFromConfigDS(boundServiceState.getInterfaceName());
@@ -59,7 +58,8 @@ public class FlowBasedEgressServicesConfigBindHelper extends AbstractFlowBasedSe
                 // some value since this is the only service bound.
                 FlowBasedServicesUtils.installEgressDispatcherFlows(dpId, boundServiceNew,
                         boundServiceState.getInterfaceName(), tx, boundServiceState.getIfIndex(),
-                        NwConstants.DEFAULT_SERVICE_INDEX, (short) (boundServiceNew.getServicePriority() + 1), iface);
+                        NwConstants.DEFAULT_SERVICE_INDEX, (short) (boundServiceNew.getServicePriority().toJava() + 1),
+                        iface);
                 return;
             }
             allServices.remove(boundServiceNew);
@@ -73,24 +73,25 @@ public class FlowBasedEgressServicesConfigBindHelper extends AbstractFlowBasedSe
                     NwConstants.DEFAULT_EGRESS_SERVICE_INDEX); // dummy service
             // index
             if (low != null) {
-                nextServiceIndex = low.getServicePriority();
+                nextServiceIndex = low.getServicePriority().toJava();
                 if (low.equals(highest)) {
                     // In this case the match criteria of existing service should be
                     // changed.
                     BoundServices lower = FlowBasedServicesUtils.getHighAndLowPriorityService(allServices, low)[0];
-                    short lowerServiceIndex = (short) (lower != null ? lower.getServicePriority()
-                            : low.getServicePriority() + 1);
+                    short lowerServiceIndex = (short) (lower != null ? lower.getServicePriority().toJava()
+                            : low.getServicePriority().toJava() + 1);
                     LOG.trace("Installing egress dispatcher table entry for existing service {} service match on "
                                     + "service index {} update with service index {}",
                             low, low.getServicePriority(), lowerServiceIndex);
                     FlowBasedServicesUtils.installEgressDispatcherFlows(dpId, low, boundServiceState.getInterfaceName(),
-                            tx, boundServiceState.getIfIndex(), low.getServicePriority(), lowerServiceIndex, iface);
+                            tx, boundServiceState.getIfIndex(), low.getServicePriority().toJava(),
+                            lowerServiceIndex, iface);
                 } else {
-                    currentServiceIndex = boundServiceNew.getServicePriority();
+                    currentServiceIndex = boundServiceNew.getServicePriority().toJava();
                 }
             }
             if (high != null) {
-                currentServiceIndex = boundServiceNew.getServicePriority();
+                currentServiceIndex = boundServiceNew.getServicePriority().toJava();
                 if (high.equals(highest)) {
                     LOG.trace("Installing egress dispatcher table entry for existing service {} service match on "
                                     + "service index {} update with service index {}",
@@ -104,7 +105,7 @@ public class FlowBasedEgressServicesConfigBindHelper extends AbstractFlowBasedSe
                             high, high.getServicePriority(), currentServiceIndex);
                     FlowBasedServicesUtils.installEgressDispatcherFlows(dpId, high,
                             boundServiceState.getInterfaceName(), tx, boundServiceState.getIfIndex(),
-                            high.getServicePriority(), currentServiceIndex, iface);
+                            high.getServicePriority().toJava(), currentServiceIndex, iface);
                 }
             }
             LOG.trace("Installing egress dispatcher table entry "
index 4b3cb99d6906728a4649325400bca8a5a08ad992..66d317b4029b3ac37de5abe46f5299295224f9f8 100644 (file)
@@ -10,11 +10,9 @@ package org.opendaylight.genius.interfacemanager.servicebindings.flowbased.confi
 import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.List;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
@@ -25,6 +23,7 @@ import org.opendaylight.genius.mdsalutil.NwConstants;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.bound.services.state.list.BoundServicesState;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -51,7 +50,7 @@ public class FlowBasedEgressServicesConfigUnbindHelper extends AbstractFlowBased
         futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> {
             Interface iface =
                     interfaceManagerCommonUtils.getInterfaceFromConfigDS(boundServicesState.getInterfaceName());
-            BigInteger dpId = boundServicesState.getDpid();
+            Uint64 dpId = boundServicesState.getDpid();
             if (boundServices.isEmpty()) {
                 // Remove default entry from Lport Dispatcher Table.
                 FlowBasedServicesUtils.removeEgressDispatcherFlows(dpId, boundServicesState.getInterfaceName(),
@@ -73,10 +72,10 @@ public class FlowBasedEgressServicesConfigUnbindHelper extends AbstractFlowBased
                     LOG.trace("Deleting egress dispatcher table entry for lower service {}, match service index {}",
                             low, low.getServicePriority());
                     FlowBasedServicesUtils.removeEgressDispatcherFlows(dpId, boundServicesState.getInterfaceName(),
-                            tx, low.getServicePriority());
+                            tx, low.getServicePriority().toJava());
                     BoundServices lower = FlowBasedServicesUtils.getHighAndLowPriorityService(boundServices, low)[0];
-                    short lowerServiceIndex = (short) (lower != null ? lower.getServicePriority()
-                            : low.getServicePriority() + 1);
+                    short lowerServiceIndex = (short) (lower != null ? lower.getServicePriority().toJava()
+                            : low.getServicePriority().toJava() + 1);
                     LOG.trace("Installing new egress dispatcher table entry for lower service {}, match service index "
                                     + "{}, update service index {}",
                             low, NwConstants.DEFAULT_SERVICE_INDEX, lowerServiceIndex);
@@ -86,11 +85,11 @@ public class FlowBasedEgressServicesConfigUnbindHelper extends AbstractFlowBased
                 }
             } else {
                 LOG.trace("Deleting egress dispatcher table entry for service {}, match service index {}",
-                        boundServiceOld, boundServiceOld.getServicePriority());
+                        boundServiceOld, boundServiceOld.getServicePriority().toJava());
                 FlowBasedServicesUtils.removeEgressDispatcherFlows(dpId, boundServicesState.getInterfaceName(),
-                        tx, boundServiceOld.getServicePriority());
-                short lowerServiceIndex = (short) (low != null ? low.getServicePriority()
-                        : boundServiceOld.getServicePriority() + 1);
+                        tx, boundServiceOld.getServicePriority().toJava());
+                short lowerServiceIndex = (short) (low != null ? low.getServicePriority().toJava()
+                        : boundServiceOld.getServicePriority().toJava() + 1);
                 BoundServices highest = FlowBasedServicesUtils.getHighestPriorityService(boundServices);
                 if (high.equals(highest)) {
                     LOG.trace("Update the existing higher service {}, match service index {}, update service index {}",
@@ -100,10 +99,10 @@ public class FlowBasedEgressServicesConfigUnbindHelper extends AbstractFlowBased
                             NwConstants.DEFAULT_SERVICE_INDEX, lowerServiceIndex, iface);
                 } else {
                     LOG.trace("Update the existing higher service {}, match service index {}, update service index {}",
-                            high, high.getServicePriority(), lowerServiceIndex);
+                            high, high.getServicePriority().toJava(), lowerServiceIndex);
                     FlowBasedServicesUtils.installEgressDispatcherFlows(dpId, high,
                             boundServicesState.getInterfaceName(), tx, boundServicesState.getIfIndex(),
-                            high.getServicePriority(), lowerServiceIndex, iface);
+                            high.getServicePriority().toJava(), lowerServiceIndex, iface);
                 }
             }
         }));
index 33ec175166966cfe9392c318b6fd19e978b9154d..e7bffff4b47edcbec704c1ee3c844694d9eaf1b1 100644 (file)
@@ -10,13 +10,11 @@ package org.opendaylight.genius.interfacemanager.servicebindings.flowbased.confi
 import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
@@ -30,6 +28,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.re
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.bound.services.state.list.BoundServicesState;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -65,8 +64,8 @@ public class FlowBasedIngressServicesConfigBindHelper extends AbstractFlowBasedS
 
     private void bindServiceOnTunnel(List<ListenableFuture<Void>> futures, BoundServices boundServiceNew,
                                      List<BoundServices> allServices, BoundServicesState boundServiceState) {
-        long portNo = boundServiceState.getPortNo();
-        BigInteger dpId = boundServiceState.getDpid();
+        long portNo = boundServiceState.getPortNo().toJava();
+        Uint64 dpId = boundServiceState.getDpid();
         LOG.info("binding ingress service {} for tunnel port: {}", boundServiceNew.getServiceName(),
                 boundServiceState.getInterfaceName());
         futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> {
@@ -84,14 +83,14 @@ public class FlowBasedIngressServicesConfigBindHelper extends AbstractFlowBasedS
             Map<Short, BoundServices> tmpServicesMap = new ConcurrentHashMap<>();
             short highestPriority = 0xFF;
             for (BoundServices boundService : allServices) {
-                if (boundService.getServicePriority() < boundServiceNew.getServicePriority()) {
+                if (boundService.getServicePriority().toJava() < boundServiceNew.getServicePriority().toJava()) {
                     isCurrentServiceHighestPriority = false;
                     break;
                 }
                 if (!boundService.equals(boundServiceNew)) {
-                    tmpServicesMap.put(boundService.getServicePriority(), boundService);
-                    if (boundService.getServicePriority() < highestPriority) {
-                        highestPriority = boundService.getServicePriority();
+                    tmpServicesMap.put(boundService.getServicePriority().toJava(), boundService);
+                    if (boundService.getServicePriority().toJava() < highestPriority) {
+                        highestPriority = boundService.getServicePriority().toJava();
                     }
                 }
             }
@@ -99,12 +98,14 @@ public class FlowBasedIngressServicesConfigBindHelper extends AbstractFlowBasedS
             if (!isCurrentServiceHighestPriority) {
                 FlowBasedServicesUtils.installLPortDispatcherFlow(dpId, boundServiceNew,
                         boundServiceState.getInterfaceName(), tx, boundServiceState.getIfIndex(),
-                        boundServiceNew.getServicePriority(), (short) (boundServiceNew.getServicePriority() + 1));
+                        boundServiceNew.getServicePriority().toJava(),
+                        (short) (boundServiceNew.getServicePriority().toJava() + 1));
             } else {
                 BoundServices serviceToReplace = tmpServicesMap.get(highestPriority);
                 FlowBasedServicesUtils.installLPortDispatcherFlow(dpId, serviceToReplace,
                         boundServiceState.getInterfaceName(), tx, boundServiceState.getIfIndex(),
-                        serviceToReplace.getServicePriority(), (short) (serviceToReplace.getServicePriority() + 1));
+                        serviceToReplace.getServicePriority().toJava(),
+                        (short) (serviceToReplace.getServicePriority().toJava() + 1));
                 List<MatchInfo> matches = FlowBasedServicesUtils.getMatchInfoForTunnelPortAtIngressTable(dpId, portNo);
 
                 // Separate transactions to remove and install flows
@@ -122,7 +123,7 @@ public class FlowBasedIngressServicesConfigBindHelper extends AbstractFlowBasedS
 
     private void bindServiceOnVlan(List<ListenableFuture<Void>> futures, BoundServices boundServiceNew,
                                    List<BoundServices> allServices, BoundServicesState boundServiceState) {
-        BigInteger dpId = boundServiceState.getDpid();
+        Uint64 dpId = boundServiceState.getDpid();
         futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> {
             LOG.info("binding ingress service {} for vlan port: {}", boundServiceNew.getServiceName(), boundServiceState
                     .getInterfaceName());
@@ -132,7 +133,7 @@ public class FlowBasedIngressServicesConfigBindHelper extends AbstractFlowBasedS
                 // service bound.
                 FlowBasedServicesUtils.installLPortDispatcherFlow(dpId, boundServiceNew,
                         boundServiceState.getInterfaceName(), tx, boundServiceState.getIfIndex(),
-                        NwConstants.DEFAULT_SERVICE_INDEX, (short) (boundServiceNew.getServicePriority() + 1));
+                        NwConstants.DEFAULT_SERVICE_INDEX, (short) (boundServiceNew.getServicePriority().toJava() + 1));
                 return;
             }
             allServices.remove(boundServiceNew);
@@ -142,28 +143,28 @@ public class FlowBasedIngressServicesConfigBindHelper extends AbstractFlowBasedS
             BoundServices high = highLowPriorityService[1];
             BoundServices highest = FlowBasedServicesUtils.getHighestPriorityService(allServices);
             short currentServiceIndex = NwConstants.DEFAULT_SERVICE_INDEX;
-            short nextServiceIndex = (short) (boundServiceNew.getServicePriority() + 1); // dummy
+            short nextServiceIndex = (short) (boundServiceNew.getServicePriority().toJava() + 1); // dummy
             // service
             // index
             if (low != null) {
-                nextServiceIndex = low.getServicePriority();
+                nextServiceIndex = low.getServicePriority().toJava();
                 if (low.equals(highest)) {
                     // In this case the match criteria of existing service should be
                     // changed.
                     BoundServices lower = FlowBasedServicesUtils.getHighAndLowPriorityService(allServices, low)[0];
-                    short lowerServiceIndex = (short) (lower != null ? lower.getServicePriority()
-                            : low.getServicePriority() + 1);
+                    short lowerServiceIndex = (short) (lower != null ? lower.getServicePriority().toJava()
+                            : low.getServicePriority().toJava() + 1);
                     LOG.trace("Installing ingress dispatcher table entry for existing service {} service match on "
                                     + "service index {} update with service index {}",
                             low, low.getServicePriority(), lowerServiceIndex);
                     FlowBasedServicesUtils.installLPortDispatcherFlow(dpId, low, boundServiceState.getInterfaceName(),
-                            tx, boundServiceState.getIfIndex(), low.getServicePriority(), lowerServiceIndex);
+                            tx, boundServiceState.getIfIndex(), low.getServicePriority().toJava(), lowerServiceIndex);
                 } else {
-                    currentServiceIndex = boundServiceNew.getServicePriority();
+                    currentServiceIndex = boundServiceNew.getServicePriority().toJava();
                 }
             }
             if (high != null) {
-                currentServiceIndex = boundServiceNew.getServicePriority();
+                currentServiceIndex = boundServiceNew.getServicePriority().toJava();
                 if (high.equals(highest)) {
                     LOG.trace("Installing ingress dispatcher table entry for existing service {} service match on "
                                     + "service index {} update with service index {}",
@@ -174,9 +175,10 @@ public class FlowBasedIngressServicesConfigBindHelper extends AbstractFlowBasedS
                 } else {
                     LOG.trace("Installing ingress dispatcher table entry for existing service {} service match on "
                                     + "service index {} update with service index {}",
-                            high, high.getServicePriority(), currentServiceIndex);
+                            high, high.getServicePriority().toJava(), currentServiceIndex);
                     FlowBasedServicesUtils.installLPortDispatcherFlow(dpId, high, boundServiceState.getInterfaceName(),
-                            tx, boundServiceState.getIfIndex(), high.getServicePriority(), currentServiceIndex);
+                            tx, boundServiceState.getIfIndex(), high.getServicePriority().toJava(),
+                            currentServiceIndex);
                 }
             }
             LOG.trace("Installing ingress dispatcher table entry for new service match on service index {} update with "
index 05b834eff7c96a57bf4a207a8793c7b9d158c895..9fbd83b6853fd1008113d786448a256cfd03f277 100644 (file)
@@ -10,13 +10,11 @@ package org.opendaylight.genius.interfacemanager.servicebindings.flowbased.confi
 import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
@@ -30,6 +28,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.re
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.bound.services.state.list.BoundServicesState;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -64,7 +63,7 @@ public class FlowBasedIngressServicesConfigUnbindHelper extends AbstractFlowBase
         LOG.info("unbinding ingress service {} for vlan port: {}", boundServiceOld.getServiceName(),
                 boundServicesState.getInterfaceName());
         futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> {
-            BigInteger dpId = boundServicesState.getDpid();
+            Uint64 dpId = boundServicesState.getDpid();
             if (boundServices == null || boundServices.isEmpty()) {
                 // Remove default entry from Lport Dispatcher Table.
                 FlowBasedServicesUtils.removeLPortDispatcherFlow(dpId, boundServicesState.getInterfaceName(),
@@ -84,12 +83,12 @@ public class FlowBasedIngressServicesConfigUnbindHelper extends AbstractFlowBase
                 if (low != null) {
                     // delete the lower services flow entry.
                     LOG.trace("Deleting ingress dispatcher table entry for lower service {}, match service index {}",
-                            low, low.getServicePriority());
+                            low, low.getServicePriority().toJava());
                     FlowBasedServicesUtils.removeLPortDispatcherFlow(dpId, boundServicesState.getInterfaceName(), low,
-                            tx, low.getServicePriority());
+                            tx, low.getServicePriority().toJava());
                     BoundServices lower = FlowBasedServicesUtils.getHighAndLowPriorityService(boundServices, low)[0];
-                    short lowerServiceIndex = (short) (lower != null ? lower.getServicePriority()
-                            : low.getServicePriority() + 1);
+                    short lowerServiceIndex = (short) (lower != null ? lower.getServicePriority().toJava()
+                            : low.getServicePriority().toJava() + 1);
                     LOG.trace("Installing new ingress dispatcher table entry for lower service {}, match service index "
                                     + "{}, update service index {}",
                             low, NwConstants.DEFAULT_SERVICE_INDEX, lowerServiceIndex);
@@ -100,9 +99,9 @@ public class FlowBasedIngressServicesConfigUnbindHelper extends AbstractFlowBase
                 LOG.trace("Deleting ingress dispatcher table entry for service {}, match service index {}",
                         boundServiceOld, boundServiceOld.getServicePriority());
                 FlowBasedServicesUtils.removeLPortDispatcherFlow(dpId, boundServicesState.getInterfaceName(),
-                        boundServiceOld, tx, boundServiceOld.getServicePriority());
-                short lowerServiceIndex = (short) (low != null ? low.getServicePriority()
-                        : boundServiceOld.getServicePriority() + 1);
+                        boundServiceOld, tx, boundServiceOld.getServicePriority().toJava());
+                short lowerServiceIndex = (short) (low != null ? low.getServicePriority().toJava()
+                        : boundServiceOld.getServicePriority().toJava() + 1);
                 BoundServices highest = FlowBasedServicesUtils.getHighestPriorityService(boundServices);
                 if (high.equals(highest)) {
                     LOG.trace("Update the existing higher service {}, match service index {}, update service index {}",
@@ -113,7 +112,7 @@ public class FlowBasedIngressServicesConfigUnbindHelper extends AbstractFlowBase
                     LOG.trace("Update the existing higher service {}, match service index {}, update service index {}",
                             high, high.getServicePriority(), lowerServiceIndex);
                     FlowBasedServicesUtils.installLPortDispatcherFlow(dpId, high, boundServicesState.getInterfaceName(),
-                            tx, boundServicesState.getIfIndex(), high.getServicePriority(), lowerServiceIndex);
+                            tx, boundServicesState.getIfIndex(), high.getServicePriority().toJava(), lowerServiceIndex);
                 }
             }
         }));
@@ -122,7 +121,7 @@ public class FlowBasedIngressServicesConfigUnbindHelper extends AbstractFlowBase
     private void unbindServiceOnTunnel(List<ListenableFuture<Void>> futures, BoundServices boundServiceOld,
                                        List<BoundServices> boundServices, BoundServicesState boundServicesState) {
         futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> {
-            BigInteger dpId = boundServicesState.getDpid();
+            Uint64 dpId = boundServicesState.getDpid();
 
             LOG.info("unbinding ingress service {} for tunnel port: {}", boundServiceOld.getServiceName(),
                     boundServicesState.getInterfaceName());
@@ -137,20 +136,20 @@ public class FlowBasedIngressServicesConfigUnbindHelper extends AbstractFlowBase
             Map<Short, BoundServices> tmpServicesMap = new ConcurrentHashMap<>();
             short highestPriority = 0xFF;
             for (BoundServices boundService : boundServices) {
-                tmpServicesMap.put(boundService.getServicePriority(), boundService);
-                if (boundService.getServicePriority() < highestPriority) {
-                    highestPriority = boundService.getServicePriority();
+                tmpServicesMap.put(boundService.getServicePriority().toJava(), boundService);
+                if (boundService.getServicePriority().toJava() < highestPriority) {
+                    highestPriority = boundService.getServicePriority().toJava();
                 }
             }
 
-            if (highestPriority < boundServiceOld.getServicePriority()) {
+            if (highestPriority < boundServiceOld.getServicePriority().toJava()) {
                 FlowBasedServicesUtils.removeLPortDispatcherFlow(dpId, boundServicesState.getInterfaceName(),
-                        boundServiceOld, tx, boundServiceOld.getServicePriority());
+                        boundServiceOld, tx, boundServiceOld.getServicePriority().toJava());
                 return;
             }
 
             List<MatchInfo> matches;
-            long portNo = boundServicesState.getPortNo();
+            long portNo = boundServicesState.getPortNo().toJava();
             matches = FlowBasedServicesUtils.getMatchInfoForTunnelPortAtIngressTable(dpId, portNo);
 
             BoundServices toBeMoved = tmpServicesMap.get(highestPriority);
@@ -160,7 +159,7 @@ public class FlowBasedIngressServicesConfigUnbindHelper extends AbstractFlowBase
             FlowBasedServicesUtils.installInterfaceIngressFlow(dpId, iface, toBeMoved, tx, matches,
                     boundServicesState.getIfIndex(), NwConstants.VLAN_INTERFACE_INGRESS_TABLE);
             FlowBasedServicesUtils.removeLPortDispatcherFlow(dpId, iface.getName(), toBeMoved, tx,
-                    toBeMoved.getServicePriority());
+                    toBeMoved.getServicePriority().toJava());
         }));
     }
 
index 86e39139fbf5e6e82f58954edf8a9f6ec779f099..4bf82eb034f2499811b2fc13797b91ea5c8a8a63 100644 (file)
@@ -204,8 +204,8 @@ public class FlowBasedServicesConfigListener implements ClusteredDataTreeChangeL
              * and the functionality will remain same for all other applications as it was earlier.
              */
             if (boundServiceNew.getServicePriority() != null && (
-                boundServiceNew.getServicePriority() == NwConstants.ACL_SERVICE_INDEX
-                    || boundServiceNew.getServicePriority() == NwConstants.EGRESS_ACL_SERVICE_INDEX)
+                boundServiceNew.getServicePriority().toJava() == NwConstants.ACL_SERVICE_INDEX
+                    || boundServiceNew.getServicePriority().toJava() == NwConstants.EGRESS_ACL_SERVICE_INDEX)
                     && !Objects.equals(boundServiceOld, boundServiceNew)) {
                 LOG.info("Bound services flow update for service {}", boundServiceNew.getServiceName());
                 add(serviceKey, boundServiceNew, boundServicesList);
index 017fb9bf4fb6b558b0563351cbc23032d564eda6..c9dcb3f06bf86a3690e542728b74374f7bb2e2c5 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.genius.interfacemanager.servicebindings.flowbased.listeners;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.Callable;
@@ -27,6 +26,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.ser
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -61,14 +61,14 @@ public class FlowBasedServicesNodeStateListener extends AbstractSyncDataTreeChan
 
     @Override
     public void add(@NonNull InstanceIdentifier<Node> instanceIdentifier, @NonNull Node node) {
-        final BigInteger dpId = getDpnID(node);
+        final Uint64 dpId = getDpnID(node);
         if (dpId == null) {
             return;
         }
         bindServicesOnTunnelType(dpId);
     }
 
-    private void bindServicesOnTunnelType(final BigInteger dpId) {
+    private void bindServicesOnTunnelType(final Uint64 dpId) {
         LOG.debug("Received node add event for {}", dpId);
         for (final Class<?extends ServiceModeBase> serviceMode : FlowBasedServicesUtils.SERVICE_MODE_MAP.values()) {
             for (final String interfaceName : FlowBasedServicesUtils.INTERFACE_TYPE_BASED_SERVICE_BINDING_KEYWORDS) {
@@ -84,11 +84,11 @@ public class FlowBasedServicesNodeStateListener extends AbstractSyncDataTreeChan
 
     private static class RendererStateInterfaceBindWorker implements Callable<List<ListenableFuture<Void>>> {
         private final String iface;
-        final BigInteger dpnId;
+        final Uint64 dpnId;
         final FlowBasedServicesStateAddable flowBasedServicesStateAddable;
 
         RendererStateInterfaceBindWorker(final FlowBasedServicesStateAddable flowBasedServicesStateAddable,
-                                         final BigInteger dpnId,
+                                         final Uint64 dpnId,
                                          final String iface) {
             this.flowBasedServicesStateAddable = flowBasedServicesStateAddable;
             this.dpnId = dpnId;
@@ -103,12 +103,12 @@ public class FlowBasedServicesNodeStateListener extends AbstractSyncDataTreeChan
         }
     }
 
-    private BigInteger getDpnID(final Node id) {
+    private static Uint64 getDpnID(final Node id) {
         final String[] node =  id.getId().getValue().split(":");
         if (node.length < 2) {
             LOG.warn("Unexpected nodeId {}", id.getId().getValue());
             return null;
         }
-        return new BigInteger(node[1]);
+        return Uint64.valueOf(node[1]);
     }
 }
index bb38d8ecbabeaa930af066bec9fa2cdc0566175e..7ae542bac96b3bb761fe0d18e33e8800cf3daa56 100644 (file)
@@ -8,16 +8,16 @@
 package org.opendaylight.genius.interfacemanager.servicebindings.flowbased.state.factory;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.List;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public interface FlowBasedServicesStateAddable {
 
     void bindServices(List<ListenableFuture<Void>> futures, Interface ifaceState, List<BoundServices> allServices,
                       Class<? extends ServiceModeBase> serviceMode);
 
-    void bindServicesOnInterfaceType(List<ListenableFuture<Void>> futures, BigInteger dpnId, String ifaceName);
+    void bindServicesOnInterfaceType(List<ListenableFuture<Void>> futures, Uint64 dpnId, String ifaceName);
 }
index 12af4dac3551097bceb4222779bbcd1aefb6bc8d..6b0e5bb8b3efada76f74a57b411a6431dcef2b3f 100644 (file)
@@ -8,14 +8,14 @@
 package org.opendaylight.genius.interfacemanager.servicebindings.flowbased.state.factory;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.List;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public interface FlowBasedServicesStateRemovable {
     void unbindServices(List<ListenableFuture<Void>> futures, Interface ifaceState,
                         Class<? extends ServiceModeBase> serviceMode);
 
-    void unbindServicesOnInterfaceType(List<ListenableFuture<Void>> futures, BigInteger dpnId, String ifaceName);
+    void unbindServicesOnInterfaceType(List<ListenableFuture<Void>> futures, Uint64 dpnId, String ifaceName);
 }
index 00de8c5e4cf29f713c6949d2be4beceb4c644584..11f8d3565e8f6f3248d811c11172ab9d80dfc81c 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.genius.interfacemanager.servicebindings.flowbased.state
 import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.List;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.genius.infra.Datastore.Configuration;
@@ -23,6 +22,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.re
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.ServiceModeBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -69,7 +69,7 @@ public abstract class AbstractFlowBasedServicesStateBindHelper implements FlowBa
                                                     List<BoundServices> allServices, Interface ifState);
 
     @Override
-    public abstract void bindServicesOnInterfaceType(List<ListenableFuture<Void>> futures, BigInteger dpnId,
+    public abstract void bindServicesOnInterfaceType(List<ListenableFuture<Void>> futures, Uint64 dpnId,
                                                      String ifaceName);
 }
 
index 39a007810be1c53beda77852b07c50d69a77f659..565ff9dea3db2e2d596c69563c319c39b6ff5478 100644 (file)
@@ -8,12 +8,10 @@
 package org.opendaylight.genius.interfacemanager.servicebindings.flowbased.state.helpers;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.Comparator;
 import java.util.List;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.genius.infra.Datastore.Configuration;
@@ -25,6 +23,7 @@ import org.opendaylight.genius.mdsalutil.NwConstants;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -47,11 +46,11 @@ public class FlowBasedEgressServicesStateBindHelper extends AbstractFlowBasedSer
                                         Interface ifState) {
         LOG.info("bind all egress services for interface: {}", ifState.getName());
         NodeConnectorId nodeConnectorId = FlowBasedServicesUtils.getNodeConnectorIdFromInterface(ifState);
-        BigInteger dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
+        Uint64 dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
         allServices.sort(Comparator.comparing(BoundServices::getServicePriority));
         BoundServices highestPriority = allServices.remove(0);
-        short nextServiceIndex = (short) (allServices.size() > 0 ? allServices.get(0).getServicePriority()
-                : highestPriority.getServicePriority() + 1);
+        short nextServiceIndex = (short) (allServices.size() > 0 ? allServices.get(0).getServicePriority().toJava()
+                : highestPriority.getServicePriority().toJava() + 1);
         org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
                 .ietf.interfaces.rev140508.interfaces.Interface iface = interfaceManagerCommonUtils
                 .getInterfaceFromConfigDS(ifState.getName());
@@ -61,18 +60,20 @@ public class FlowBasedEgressServicesStateBindHelper extends AbstractFlowBasedSer
         for (BoundServices boundService : allServices) {
             if (prev != null) {
                 FlowBasedServicesUtils.installEgressDispatcherFlows(dpId, prev, ifState.getName(), tx,
-                        ifState.getIfIndex(), prev.getServicePriority(), boundService.getServicePriority(), iface);
+                        ifState.getIfIndex(), prev.getServicePriority().toJava(),
+                        boundService.getServicePriority().toJava(), iface);
             }
             prev = boundService;
         }
         if (prev != null) {
             FlowBasedServicesUtils.installEgressDispatcherFlows(dpId, prev, ifState.getName(), tx,
-                    ifState.getIfIndex(), prev.getServicePriority(), (short) (prev.getServicePriority() + 1),
-                    iface);
+                    ifState.getIfIndex(), prev.getServicePriority().toJava(),
+                    (short) (prev.getServicePriority().toJava() + 1), iface);
         }
     }
 
     @Override
-    public void bindServicesOnInterfaceType(List<ListenableFuture<Void>> futures, BigInteger dpnId, String ifaceName) {
+    public void bindServicesOnInterfaceType(List<ListenableFuture<Void>> futures, Uint64 dpnId, String ifaceName) {
+        // TODO: No-op?
     }
 }
index 9960a9561d65ffa6cb7662e62b99ead1d70569fd..68b8cb90f37a3bdeaba0c276b3cf36fb73648fb9 100644 (file)
@@ -8,12 +8,10 @@
 package org.opendaylight.genius.interfacemanager.servicebindings.flowbased.state.helpers;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.Comparator;
 import java.util.List;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.genius.infra.Datastore.Configuration;
@@ -28,6 +26,7 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.iana._if.type.re
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.servicebinding.rev160406.service.bindings.services.info.BoundServices;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -63,7 +62,7 @@ public class FlowBasedIngressServicesStateBindHelper extends AbstractFlowBasedSe
                 .getInterfaceFromConfigDS(ifState.getName());
         NodeConnectorId nodeConnectorId = FlowBasedServicesUtils.getNodeConnectorIdFromInterface(ifState);
         long portNo = IfmUtil.getPortNumberFromNodeConnectorId(nodeConnectorId);
-        BigInteger dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
+        Uint64 dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
         List<MatchInfo> matches = FlowBasedServicesUtils.getMatchInfoForTunnelPortAtIngressTable(dpId, portNo);
         BoundServices highestPriorityBoundService = FlowBasedServicesUtils.getHighestPriorityService(allServices);
         FlowBasedServicesUtils.installInterfaceIngressFlow(dpId, iface, highestPriorityBoundService,
@@ -72,8 +71,8 @@ public class FlowBasedIngressServicesStateBindHelper extends AbstractFlowBasedSe
         for (BoundServices boundService : allServices) {
             if (!boundService.equals(highestPriorityBoundService)) {
                 FlowBasedServicesUtils.installLPortDispatcherFlow(dpId, boundService, ifState.getName(),
-                        tx, ifState.getIfIndex(), boundService.getServicePriority(),
-                        (short) (boundService.getServicePriority() + 1));
+                        tx, ifState.getIfIndex(), boundService.getServicePriority().toJava(),
+                        (short) (boundService.getServicePriority().toJava() + 1));
             }
         }
     }
@@ -82,29 +81,32 @@ public class FlowBasedIngressServicesStateBindHelper extends AbstractFlowBasedSe
             Interface ifState) {
         LOG.info("bind all ingress services for vlan port: {}", ifState.getName());
         NodeConnectorId nodeConnectorId = FlowBasedServicesUtils.getNodeConnectorIdFromInterface(ifState);
-        BigInteger dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
+        Uint64 dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
         allServices.sort(Comparator.comparing(BoundServices::getServicePriority));
         BoundServices highestPriority = allServices.remove(0);
-        short nextServiceIndex = (short) (allServices.size() > 0 ? allServices.get(0).getServicePriority()
-                : highestPriority.getServicePriority() + 1);
+        short nextServiceIndex = (short) (allServices.size() > 0 ? allServices.get(0).getServicePriority().toJava()
+                : highestPriority.getServicePriority().toJava() + 1);
         FlowBasedServicesUtils.installLPortDispatcherFlow(dpId, highestPriority, ifState.getName(), tx,
                 ifState.getIfIndex(), NwConstants.DEFAULT_SERVICE_INDEX, nextServiceIndex);
         BoundServices prev = null;
         for (BoundServices boundService : allServices) {
             if (prev != null) {
                 FlowBasedServicesUtils.installLPortDispatcherFlow(dpId, prev, ifState.getName(), tx,
-                        ifState.getIfIndex(), prev.getServicePriority(), boundService.getServicePriority());
+                        ifState.getIfIndex(), prev.getServicePriority().toJava(),
+                        boundService.getServicePriority().toJava());
             }
             prev = boundService;
         }
         if (prev != null) {
             FlowBasedServicesUtils.installLPortDispatcherFlow(dpId, prev, ifState.getName(), tx,
-                    ifState.getIfIndex(), prev.getServicePriority(), (short) (prev.getServicePriority() + 1));
+                    ifState.getIfIndex(), prev.getServicePriority().toJava(),
+                    (short) (prev.getServicePriority().toJava() + 1));
         }
     }
 
     @Override
-    public void bindServicesOnInterfaceType(List<ListenableFuture<Void>> futures, BigInteger dpnId, String ifaceName) {
+    public void bindServicesOnInterfaceType(List<ListenableFuture<Void>> futures, Uint64 dpnId, String ifaceName) {
+        // FIXME: does this mean this is not finished?
         LOG.info("bindServicesOnInterfaceType Ingress - WIP");
     }
 }
index 91b6416d0ddf3064044119cd851111ef7503f8c2..a2d46475c4edd8afd05416dd70d8fe38d9dc6b93 100644 (file)
@@ -13,7 +13,6 @@ import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 import com.google.common.collect.ImmutableBiMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -87,6 +86,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.N
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev140421.NxmNxReg6;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -144,7 +144,7 @@ public final class FlowBasedServicesUtils {
     }
 
     @Nullable
-    public static BigInteger getDpnIdFromInterface(
+    public static Uint64 getDpnIdFromInterface(
             org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang
                 .ietf.interfaces.rev140508.interfaces.state.Interface ifState) {
         if (ifState != null) {
@@ -155,13 +155,13 @@ public final class FlowBasedServicesUtils {
         return null;
     }
 
-    public static List<MatchInfo> getMatchInfoForVlanPortAtIngressTable(BigInteger dpId, long portNo, Interface iface) {
+    public static List<MatchInfo> getMatchInfoForVlanPortAtIngressTable(Uint64 dpId, long portNo, Interface iface) {
         List<MatchInfo> matches = new ArrayList<>();
         matches.add(new MatchInPort(dpId, portNo));
         int vlanId = 0;
         IfL2vlan l2vlan = iface.augmentation(IfL2vlan.class);
         if (l2vlan != null) {
-            vlanId = l2vlan.getVlanId() == null ? 0 : l2vlan.getVlanId().getValue();
+            vlanId = l2vlan.getVlanId() == null ? 0 : l2vlan.getVlanId().getValue().toJava();
         }
         if (vlanId >= 0  && l2vlan.getL2vlanMode() != IfL2vlan.L2vlanMode.Transparent) {
             matches.add(new MatchVlanVid(vlanId));
@@ -170,7 +170,7 @@ public final class FlowBasedServicesUtils {
     }
 
     @NonNull
-    public static List<MatchInfo> getMatchInfoForTunnelPortAtIngressTable(BigInteger dpId, long portNo) {
+    public static List<MatchInfo> getMatchInfoForTunnelPortAtIngressTable(Uint64 dpId, long portNo) {
         List<MatchInfo> matches = new ArrayList<>();
         matches.add(new MatchInPort(dpId, portNo));
         return matches;
@@ -190,7 +190,7 @@ public final class FlowBasedServicesUtils {
         return matches;
     }
 
-    public static void installInterfaceIngressFlow(BigInteger dpId, Interface iface, BoundServices boundServiceNew,
+    public static void installInterfaceIngressFlow(Uint64 dpId, Interface iface, BoundServices boundServiceNew,
             TypedWriteTransaction<Configuration> tx, List<MatchInfo> matches, int lportTag, short tableId) {
         List<Instruction> instructions = boundServiceNew.augmentation(StypeOpenflow.class).getInstruction();
 
@@ -199,7 +199,7 @@ public final class FlowBasedServicesUtils {
         int vlanId = 0;
         IfL2vlan l2vlan = iface.augmentation(IfL2vlan.class);
         if (l2vlan != null && l2vlan.getVlanId() != null) {
-            vlanId = l2vlan.getVlanId().getValue();
+            vlanId = l2vlan.getVlanId().getValue().toJava();
         }
         if (vlanId != 0) {
             // incrementing instructionSize and using it as actionKey. Because
@@ -209,11 +209,11 @@ public final class FlowBasedServicesUtils {
         }
 
         if (lportTag != 0L) {
-            BigInteger[] metadataValues = IfmUtil.mergeOpenflowMetadataWriteInstructions(instructions);
-            short index = boundServiceNew.getServicePriority();
-            BigInteger metadata = MetaDataUtil.getMetaDataForLPortDispatcher(lportTag, ++index, metadataValues[0],
+            Uint64[] metadataValues = IfmUtil.mergeOpenflowMetadataWriteInstructions(instructions);
+            short index = boundServiceNew.getServicePriority().toJava();
+            Uint64 metadata = MetaDataUtil.getMetaDataForLPortDispatcher(lportTag, ++index, metadataValues[0],
                     isExternal(iface));
-            BigInteger metadataMask = MetaDataUtil.getMetaDataMaskForLPortDispatcher(
+            Uint64 metadataMask = MetaDataUtil.getMetaDataMaskForLPortDispatcher(
                     MetaDataUtil.METADATA_MASK_SERVICE_INDEX, MetaDataUtil.METADATA_MASK_LPORT_TAG_SH_FLAG,
                     metadataValues[1]);
             instructionSet.add(
@@ -238,14 +238,14 @@ public final class FlowBasedServicesUtils {
 
         String serviceRef = boundServiceNew.getServiceName();
         String flowRef = getFlowRef(dpId, NwConstants.VLAN_INTERFACE_INGRESS_TABLE, iface.getName(),
-                boundServiceNew.getServicePriority());
+                boundServiceNew.getServicePriority().toJava());
         StypeOpenflow stypeOpenflow = boundServiceNew.augmentation(StypeOpenflow.class);
-        Flow ingressFlow = MDSALUtil.buildFlowNew(tableId, flowRef, stypeOpenflow.getFlowPriority(), serviceRef, 0, 0,
-                stypeOpenflow.getFlowCookie(), matches, instructionSet);
+        Flow ingressFlow = MDSALUtil.buildFlowNew(tableId, flowRef, stypeOpenflow.getFlowPriority().toJava(),
+                serviceRef, 0, 0, stypeOpenflow.getFlowCookie(), matches, instructionSet);
         installFlow(dpId, ingressFlow, tx);
     }
 
-    public static void installFlow(BigInteger dpId, Flow flow, TypedWriteTransaction<Configuration> writeTransaction) {
+    public static void installFlow(Uint64 dpId, Flow flow, TypedWriteTransaction<Configuration> writeTransaction) {
         FlowKey flowKey = new FlowKey(new FlowId(flow.getId()));
         Node nodeDpn = buildInventoryDpnNode(dpId);
         InstanceIdentifier<Flow> flowInstanceId = InstanceIdentifier.builder(Nodes.class)
@@ -256,12 +256,12 @@ public final class FlowBasedServicesUtils {
         EVENT_LOGGER.debug("IFM,InstallFlow {}", flow.getId());
     }
 
-    private static Node buildInventoryDpnNode(BigInteger dpnId) {
+    private static Node buildInventoryDpnNode(Uint64 dpnId) {
         NodeId nodeId = new NodeId("openflow:" + dpnId);
         return new NodeBuilder().setId(nodeId).withKey(new NodeKey(nodeId)).build();
     }
 
-    public static void installLPortDispatcherFlow(BigInteger dpId, BoundServices boundService, String interfaceName,
+    public static void installLPortDispatcherFlow(Uint64 dpId, BoundServices boundService, String interfaceName,
             TypedWriteTransaction<Configuration> tx, int interfaceTag, short currentServiceIndex,
             short nextServiceIndex) {
         String serviceRef = boundService.getServiceName();
@@ -273,10 +273,10 @@ public final class FlowBasedServicesUtils {
         StypeOpenflow stypeOpenFlow = boundService.augmentation(StypeOpenflow.class);
         List<Instruction> serviceInstructions = stypeOpenFlow.getInstruction();
         int instructionSize = serviceInstructions != null ? serviceInstructions.size() : 0;
-        BigInteger[] metadataValues = IfmUtil.mergeOpenflowMetadataWriteInstructions(serviceInstructions);
-        BigInteger metadata = MetaDataUtil.getMetaDataForLPortDispatcher(interfaceTag, nextServiceIndex,
+        Uint64[] metadataValues = IfmUtil.mergeOpenflowMetadataWriteInstructions(serviceInstructions);
+        Uint64 metadata = MetaDataUtil.getMetaDataForLPortDispatcher(interfaceTag, nextServiceIndex,
                 metadataValues[0]);
-        BigInteger metadataMask = MetaDataUtil.getWriteMetaDataMaskForDispatcherTable();
+        Uint64 metadataMask = MetaDataUtil.getWriteMetaDataMaskForDispatcherTable();
 
         // build the final instruction for LPort Dispatcher table flow entry
         List<Instruction> instructions = new ArrayList<>();
@@ -301,14 +301,13 @@ public final class FlowBasedServicesUtils {
         String flowRef = getFlowRef(dpId, NwConstants.LPORT_DISPATCHER_TABLE, interfaceName,
                 currentServiceIndex);
         Flow ingressFlow = MDSALUtil.buildFlowNew(NwConstants.LPORT_DISPATCHER_TABLE, flowRef,
-                DEFAULT_DISPATCHER_PRIORITY, serviceRef, 0, 0, stypeOpenFlow.getFlowCookie(), matches,
-                instructions);
+                DEFAULT_DISPATCHER_PRIORITY, serviceRef, 0, 0, stypeOpenFlow.getFlowCookie(), matches, instructions);
         LOG.debug("Installing LPort Dispatcher Flow on DPN {}, for interface {}, with flowRef {}", dpId,
             interfaceName, flowRef);
         installFlow(dpId, ingressFlow, tx);
     }
 
-    public static void installEgressDispatcherFlows(BigInteger dpId, BoundServices boundService, String interfaceName,
+    public static void installEgressDispatcherFlows(Uint64 dpId, BoundServices boundService, String interfaceName,
             TypedWriteTransaction<Configuration> tx, int interfaceTag, short currentServiceIndex,
             short nextServiceIndex, Interface iface) {
         LOG.debug("Installing Egress Dispatcher Flows on dpn : {}, for interface : {}", dpId, interfaceName);
@@ -319,14 +318,14 @@ public final class FlowBasedServicesUtils {
         // this flow drops traffic targeted to external interfaces if they
         // arrived
         // from an external interface (marked with the SH bit)
-        if (boundService.getServicePriority() == ServiceIndex.getIndex(NwConstants.DEFAULT_EGRESS_SERVICE_NAME,
+        if (boundService.getServicePriority().toJava() == ServiceIndex.getIndex(NwConstants.DEFAULT_EGRESS_SERVICE_NAME,
                 NwConstants.DEFAULT_EGRESS_SERVICE_INDEX)) {
             installEgressDispatcherSplitHorizonFlow(dpId, boundService, interfaceName, tx, interfaceTag,
                     currentServiceIndex, iface);
         }
     }
 
-    private static void installEgressDispatcherFlow(BigInteger dpId, BoundServices boundService, String interfaceName,
+    private static void installEgressDispatcherFlow(Uint64 dpId, BoundServices boundService, String interfaceName,
             TypedWriteTransaction<Configuration> tx, int interfaceTag, short currentServiceIndex,
             short nextServiceIndex) {
 
@@ -343,10 +342,10 @@ public final class FlowBasedServicesUtils {
         // build the final instruction for LPort Dispatcher table flow entry
         List<Action> finalApplyActions = new ArrayList<>();
         List<Instruction> instructions = new ArrayList<>();
-        if (boundService.getServicePriority() != ServiceIndex.getIndex(NwConstants.DEFAULT_EGRESS_SERVICE_NAME,
+        if (boundService.getServicePriority().toJava() != ServiceIndex.getIndex(NwConstants.DEFAULT_EGRESS_SERVICE_NAME,
                 NwConstants.DEFAULT_EGRESS_SERVICE_INDEX)) {
-            BigInteger[] metadataValues = IfmUtil.mergeOpenflowMetadataWriteInstructions(serviceInstructions);
-            BigInteger metadataMask = MetaDataUtil.getWriteMetaDataMaskForEgressDispatcherTable();
+            Uint64[] metadataValues = IfmUtil.mergeOpenflowMetadataWriteInstructions(serviceInstructions);
+            Uint64 metadataMask = MetaDataUtil.getWriteMetaDataMaskForEgressDispatcherTable();
             instructions.add(MDSALUtil.buildAndGetWriteMetadaInstruction(metadataValues[0], metadataMask,
                     instructions.size()));
             finalApplyActions.add(MDSALUtil.createSetReg6Action(finalApplyActions.size(), 0, 31,
@@ -380,13 +379,13 @@ public final class FlowBasedServicesUtils {
         String flowRef = getFlowRef(dpId, NwConstants.EGRESS_LPORT_DISPATCHER_TABLE, interfaceName,
                 currentServiceIndex);
         Flow egressFlow = MDSALUtil.buildFlowNew(NwConstants.EGRESS_LPORT_DISPATCHER_TABLE, flowRef,
-                boundService.getServicePriority(), serviceRef, 0, 0, stypeOpenflow.getFlowCookie(), matches,
-                instructions);
+                boundService.getServicePriority().toJava(), serviceRef, 0, 0, stypeOpenflow.getFlowCookie(),
+                matches, instructions);
         LOG.debug("Installing Egress Dispatcher Flow for interface : {}, with flow-ref : {}", interfaceName, flowRef);
         installFlow(dpId, egressFlow, tx);
     }
 
-    public static void installEgressDispatcherSplitHorizonFlow(BigInteger dpId, BoundServices boundService,
+    public static void installEgressDispatcherSplitHorizonFlow(Uint64 dpId, BoundServices boundService,
             String interfaceName, TypedWriteTransaction<Configuration> tx, int interfaceTag, short currentServiceIndex,
             Interface iface) {
         // only install split horizon drop flows for external interfaces
@@ -398,9 +397,8 @@ public final class FlowBasedServicesUtils {
             LOG.debug("Installing split horizon drop flow for external interface {} on dpId {}", interfaceName, dpId);
         }
 
-        BigInteger shFlagSet = BigInteger.ONE; // BigInteger.ONE is used for
-                                                // checking the Split-Horizon
-                                                // flag
+        // Uint64.ONE is used for checking the Split-Horizon flag
+        Uint64 shFlagSet = Uint64.ONE;
         List<MatchInfoBase> shMatches = FlowBasedServicesUtils.getMatchInfoForEgressDispatcherTable(interfaceTag,
                 currentServiceIndex);
         shMatches.add(new MatchMetadata(shFlagSet, MetaDataUtil.METADATA_MASK_SH_FLAG));
@@ -413,16 +411,17 @@ public final class FlowBasedServicesUtils {
                 shFlagSet);
         String serviceRef = boundService.getServiceName();
         // This must be higher priority than the egress flow
-        int splitHorizonFlowPriority = boundService.getServicePriority() + 1;
+        int splitHorizonFlowPriority = boundService.getServicePriority().toJava() + 1;
         StypeOpenflow stypeOpenFlow = boundService.augmentation(StypeOpenflow.class);
         Flow egressSplitHorizonFlow = MDSALUtil.buildFlow(NwConstants.EGRESS_LPORT_DISPATCHER_TABLE, flowRef,
-                splitHorizonFlowPriority, serviceRef, 0, 0, stypeOpenFlow.getFlowCookie(), shMatches, shInstructions);
+                splitHorizonFlowPriority, serviceRef, 0, 0, stypeOpenFlow.getFlowCookie(),
+                shMatches, shInstructions);
 
         installFlow(dpId, egressSplitHorizonFlow, tx);
     }
 
     public static BoundServices getBoundServices(String serviceName, short servicePriority, int flowPriority,
-            BigInteger cookie, List<Instruction> instructions) {
+            Uint64 cookie, List<Instruction> instructions) {
         StypeOpenflowBuilder augBuilder = new StypeOpenflowBuilder().setFlowCookie(cookie).setFlowPriority(flowPriority)
                 .setInstruction(instructions);
         return new BoundServicesBuilder().withKey(new BoundServicesKey(servicePriority)).setServiceName(serviceName)
@@ -497,7 +496,7 @@ public final class FlowBasedServicesUtils {
         IfmUtil.bindService(tx, interfaceName, serviceInfo, ServiceModeEgress.class);
     }
 
-    public static void removeIngressFlow(String interfaceName, BigInteger dpId, ManagedNewTransactionRunner txRunner,
+    public static void removeIngressFlow(String interfaceName, Uint64 dpId, ManagedNewTransactionRunner txRunner,
             List<ListenableFuture<Void>> futures) {
         if (dpId == null) {
             return;
@@ -517,10 +516,10 @@ public final class FlowBasedServicesUtils {
         }));
     }
 
-    public static void removeIngressFlow(String name, BoundServices serviceOld, BigInteger dpId,
+    public static void removeIngressFlow(String name, BoundServices serviceOld, Uint64 dpId,
             TypedWriteTransaction<Configuration> writeTransaction) {
         String flowKeyStr = getFlowRef(dpId, NwConstants.VLAN_INTERFACE_INGRESS_TABLE, name,
-                serviceOld.getServicePriority());
+                serviceOld.getServicePriority().toJava());
         LOG.debug("Removing Ingress Flow {}", flowKeyStr);
         FlowKey flowKey = new FlowKey(new FlowId(flowKeyStr));
         Node nodeDpn = buildInventoryDpnNode(dpId);
@@ -532,7 +531,7 @@ public final class FlowBasedServicesUtils {
         writeTransaction.delete(flowInstanceId);
     }
 
-    public static void removeLPortDispatcherFlow(BigInteger dpId, String iface, BoundServices boundServicesOld,
+    public static void removeLPortDispatcherFlow(Uint64 dpId, String iface, BoundServices boundServicesOld,
             TypedWriteTransaction<Configuration> writeTransaction, short currentServiceIndex) {
         LOG.debug("Removing LPort Dispatcher Flows {}, {}", dpId, iface);
 
@@ -551,14 +550,14 @@ public final class FlowBasedServicesUtils {
         EVENT_LOGGER.debug("IFM,removeFlow {}", flowRef);
     }
 
-    public static void removeEgressDispatcherFlows(BigInteger dpId, String iface,
+    public static void removeEgressDispatcherFlows(Uint64 dpId, String iface,
             TypedWriteTransaction<Configuration> writeTransaction, short currentServiceIndex) {
         LOG.debug("Removing Egress Dispatcher Flows {}, {}", dpId, iface);
         removeEgressDispatcherFlow(dpId, iface, writeTransaction, currentServiceIndex);
         removeEgressSplitHorizonDispatcherFlow(dpId, iface, writeTransaction);
     }
 
-    private static void removeEgressDispatcherFlow(BigInteger dpId, String iface,
+    private static void removeEgressDispatcherFlow(Uint64 dpId, String iface,
             TypedWriteTransaction<Configuration> writeTransaction, short currentServiceIndex) {
         // build the flow and install it
         String flowRef = getFlowRef(dpId, NwConstants.EGRESS_LPORT_DISPATCHER_TABLE, iface,
@@ -574,10 +573,10 @@ public final class FlowBasedServicesUtils {
         EVENT_LOGGER.debug("IFM,removeFlow {}", flowRef);
     }
 
-    public static void removeEgressSplitHorizonDispatcherFlow(BigInteger dpId, String iface,
+    public static void removeEgressSplitHorizonDispatcherFlow(Uint64 dpId, String iface,
             TypedWriteTransaction<Configuration> writeTransaction) {
-        // BigInteger.ONE is used for checking the Split-Horizon flag
-        BigInteger shFlagSet = BigInteger.ONE;
+        // Uint64.ONE is used for checking the Split-Horizon flag
+        Uint64 shFlagSet = Uint64.ONE;
         String shFlowRef = getSplitHorizonFlowRef(dpId, NwConstants.EGRESS_LPORT_DISPATCHER_TABLE, iface,
                 shFlagSet);
         FlowKey shFlowKey = new FlowKey(new FlowId(shFlowRef));
@@ -590,16 +589,16 @@ public final class FlowBasedServicesUtils {
         writeTransaction.delete(shFlowInstanceId);
     }
 
-    public static String getFlowRef(short tableId, BigInteger dpnId, String infName) {
+    public static String getFlowRef(short tableId, Uint64 dpnId, String infName) {
         return String.format("%d:%s:%s", tableId, dpnId, infName);
     }
 
-    private static String getFlowRef(BigInteger dpnId, short tableId, String iface, short currentServiceIndex) {
+    private static String getFlowRef(Uint64 dpnId, short tableId, String iface, short currentServiceIndex) {
         return String.valueOf(dpnId) + NwConstants.FLOWID_SEPARATOR + tableId + NwConstants.FLOWID_SEPARATOR + iface
                 + NwConstants.FLOWID_SEPARATOR + currentServiceIndex;
     }
 
-    private static String getSplitHorizonFlowRef(BigInteger dpnId, short tableId, String iface, BigInteger shFlag) {
+    private static String getSplitHorizonFlowRef(Uint64 dpnId, short tableId, String iface, Uint64 shFlag) {
         return String.valueOf(dpnId) + NwConstants.FLOWID_SEPARATOR + tableId + NwConstants.FLOWID_SEPARATOR + iface
                 + NwConstants.FLOWID_SEPARATOR + shFlag.toString();
     }
@@ -630,7 +629,7 @@ public final class FlowBasedServicesUtils {
         List<BoundServices> availableServiceInfos = new ArrayList<>(serviceInfos);
         availableServiceInfos.sort(Comparator.comparing(BoundServices::getServicePriority));
         for (BoundServices availableServiceInfo : availableServiceInfos) {
-            if (currentServiceInfo.getServicePriority() < availableServiceInfo.getServicePriority()) {
+            if (currentServiceInfo.getServicePriority().toJava() < availableServiceInfo.getServicePriority().toJava()) {
                 lower = availableServiceInfo;
                 break;
             } else {
@@ -648,21 +647,22 @@ public final class FlowBasedServicesUtils {
         BoundServices highPriorityService = availableServiceInfos.get(0);
         availableServiceInfos.remove(0);
         for (BoundServices availableServiceInfo : availableServiceInfos) {
-            if (availableServiceInfo.getServicePriority() < highPriorityService.getServicePriority()) {
+            if (availableServiceInfo.getServicePriority().toJava()
+                    < highPriorityService.getServicePriority().toJava()) {
                 highPriorityService = availableServiceInfo;
             }
         }
         return highPriorityService;
     }
 
-    public static void installLportIngressFlow(BigInteger dpId, long portNo, Interface iface,
+    public static void installLportIngressFlow(Uint64 dpId, long portNo, Interface iface,
             List<ListenableFuture<Void>> futures, ManagedNewTransactionRunner txRunner, int lportTag) {
         int vlanId = 0;
         boolean isVlanTransparent = false;
 
         IfL2vlan l2vlan = iface.augmentation(IfL2vlan.class);
         if (l2vlan != null) {
-            vlanId = l2vlan.getVlanId() == null ? 0 : l2vlan.getVlanId().getValue();
+            vlanId = l2vlan.getVlanId() == null ? 0 : l2vlan.getVlanId().getValue().toJava();
             isVlanTransparent = l2vlan.getL2vlanMode() == IfL2vlan.L2vlanMode.Transparent;
         }
         int instructionKey = 0;
@@ -683,9 +683,9 @@ public final class FlowBasedServicesUtils {
         if (!actions.isEmpty()) {
             instructions.add(MDSALUtil.buildApplyActionsInstruction(actions, instructionKey++));
         }
-        BigInteger metadata = MetaDataUtil.getMetaDataForLPortDispatcher(lportTag, (short) 0, BigInteger.ZERO,
+        Uint64 metadata = MetaDataUtil.getMetaDataForLPortDispatcher(lportTag, (short) 0, Uint64.ZERO,
                 isExternal(iface));
-        BigInteger metadataMask = MetaDataUtil
+        Uint64 metadataMask = MetaDataUtil
                 .getMetaDataMaskForLPortDispatcher(MetaDataUtil.METADATA_MASK_LPORT_TAG_SH_FLAG);
         instructions.add(MDSALUtil.buildAndGetWriteMetadaInstruction(metadata, metadataMask, instructionKey++));
         instructions
@@ -705,7 +705,7 @@ public final class FlowBasedServicesUtils {
         org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.state.Interface
             interfaceState, Class<? extends ServiceModeBase> serviceMode) {
         NodeConnectorId nodeConnectorId = IfmUtil.getNodeConnectorIdFromInterface(interfaceState);
-        BigInteger dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
+        Uint64 dpId = IfmUtil.getDpnFromNodeConnectorId(nodeConnectorId);
         long portNo = IfmUtil.getPortNumberFromNodeConnectorId(nodeConnectorId);
         BoundServicesStateKey boundServicesStateKey = new BoundServicesStateKey(interfaceState.getName(), serviceMode);
         return new BoundServicesStateBuilder().setDpid(dpId).setIfIndex(interfaceState.getIfIndex())
index 2d48e3d524170c0c1a42be974877a6e610e5ebb5..4e2283a9b80ffc7204db2163b74e31a977f8f969 100644 (file)
@@ -5,19 +5,18 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.interfacemanager.test;
 
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.when;
 
-import java.math.BigInteger;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.opendaylight.genius.interfacemanager.IfmUtil;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public class IfmUtilTest {
 
@@ -31,9 +30,9 @@ public class IfmUtilTest {
 
     @Test
     public void testDpnConversions() {
-        String nodeId = IfmUtil.buildDpnNodeId(BigInteger.valueOf(101)).getValue();
+        String nodeId = IfmUtil.buildDpnNodeId(Uint64.valueOf(101)).getValue();
         assertEquals("openflow:101", nodeId);
         when(ncId.getValue()).thenReturn("openflow:101:11");
-        assertEquals(new BigInteger("101"), IfmUtil.getDpnFromNodeConnectorId(ncId));
+        assertEquals(Uint64.valueOf(101), IfmUtil.getDpnFromNodeConnectorId(ncId));
     }
 }
index 1bc1b96b1484f940359e32f6b5a4cf1c8ba3c15a..38eac9da15bad4ddcc84442e9e563a23ca9479d8 100644 (file)
@@ -28,13 +28,11 @@ import static org.opendaylight.genius.mdsalutil.NwConstants.VLAN_INTERFACE_INGRE
 import static org.opendaylight.mdsal.binding.testutils.AssertDataObjects.assertEqualBeans;
 
 import com.google.common.base.Optional;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
 import java.util.concurrent.Future;
 import javax.inject.Inject;
-
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
@@ -158,6 +156,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPointBuilder;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Component tests for interface manager.
@@ -281,7 +280,7 @@ public class InterfaceManagerConfigurationTest {
 
         // c) check expected flow entries were created in Interface Ingress
         // Table
-        BigInteger dpnId = BigInteger.valueOf(1);
+        Uint64 dpnId = Uint64.ONE;
         String ingressFlowRef = FlowBasedServicesUtils.getFlowRef(VLAN_INTERFACE_INGRESS_TABLE, dpnId, INTERFACE_NAME);
         FlowKey ingressFlowKey = new FlowKey(new FlowId(ingressFlowRef));
         Node nodeDpn = InterfaceManagerTestUtil.buildInventoryDpnNode(dpnId);
@@ -578,7 +577,7 @@ public class InterfaceManagerConfigurationTest {
         assertEqualBeans(PARENT_INTERFACE, interfaceInfo.augmentation(ParentRefs.class).getParentInterface());
 
         // 3. fetch dpn-id corresponding to an interface
-        BigInteger dpnId = interfaceManager.getDpnForInterface(INTERFACE_NAME);
+        Uint64 dpnId = interfaceManager.getDpnForInterface(INTERFACE_NAME);
         Assert.assertEquals(DPN_ID_1, dpnId);
 
         // 4. fetch parent-interface corresponding to an interface
@@ -926,7 +925,7 @@ public class InterfaceManagerConfigurationTest {
         assertEqualBeans(ExpectedInterfaceListFromDpn.checkDpnToInterfaceList(), actualDpnInterfaceList.get(0));
     }
 
-    private void createDpnToInterface(BigInteger dpId, String infName,
+    private void createDpnToInterface(Uint64 dpId, String infName,
                                       Class<? extends InterfaceType> interfaceType) throws  Exception {
         WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
         DpnToInterfaceKey dpnToInterfaceKey = new DpnToInterfaceKey(dpId);
index 8b048372255f28753f0ce1ad876ac7de5b57e8d0..f28b0e6832aefbd02b93823fae5d39a7e57e008e 100644 (file)
@@ -14,7 +14,6 @@ import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-
 import org.awaitility.core.ConditionTimeoutException;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
@@ -76,6 +75,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.l2.types.rev130827.VlanId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -91,8 +91,8 @@ public final class InterfaceManagerTestUtil {
     public static final String TUNNEL_INTERFACE_NAME = "tun414a856a7a4";
     public static final String TRUNK_INTERFACE_NAME = "23701c04-7e58-4c65-9425-78a80d49a219";
 
-    public static final BigInteger DPN_ID_1 = BigInteger.valueOf(1);
-    public static final BigInteger DPN_ID_2 = BigInteger.valueOf(2);
+    public static final Uint64 DPN_ID_1 = Uint64.ONE;
+    public static final Uint64 DPN_ID_2 = Uint64.valueOf(2);
     public static final long PORT_NO_1 = 2;
 
     public static final TopologyId OVSDB_TOPOLOGY_ID = new TopologyId(new Uri("ovsdb:1"));
@@ -126,7 +126,7 @@ public final class InterfaceManagerTestUtil {
         return ifaceBuilder.build();
     }
 
-    static Node buildInventoryDpnNode(BigInteger dpnId) {
+    static Node buildInventoryDpnNode(Uint64 dpnId) {
         NodeId nodeId = new NodeId("openflow:" + dpnId);
         Node nodeDpn = new NodeBuilder().setId(nodeId).withKey(new NodeKey(nodeId)).build();
 
@@ -154,16 +154,16 @@ public final class InterfaceManagerTestUtil {
         return fcNodeConnector.build();
     }
 
-    static NodeConnectorId buildNodeConnectorId(BigInteger dpn, long portNo) {
+    static NodeConnectorId buildNodeConnectorId(Uint64 dpn, long portNo) {
         return new NodeConnectorId(buildNodeConnectorString(dpn, portNo));
     }
 
-    static String buildNodeConnectorString(BigInteger dpn, long portNo) {
+    static String buildNodeConnectorString(Uint64 dpn, long portNo) {
         return IfmConstants.OF_URI_PREFIX + dpn + IfmConstants.OF_URI_SEPARATOR + portNo;
     }
 
     static InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector>
-        buildNodeConnectorInstanceIdentifier(BigInteger dpn, long portNo) {
+        buildNodeConnectorInstanceIdentifier(Uint64 dpn, long portNo) {
         NodeConnectorId nodeConnectorId = buildNodeConnectorId(dpn, portNo);
         NodeId nodeId = IfmUtil.getNodeIdFromNodeConnectorId(nodeConnectorId);
         InstanceIdentifier<org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector>
@@ -259,7 +259,7 @@ public final class InterfaceManagerTestUtil {
             interfaceInfo = InterfaceManagerTestUtil.buildInterface(ifaceName, ifaceName, true, ifType,
                     parentRefs.getParentInterface(), IfL2vlan.L2vlanMode.Trunk);
         } else {
-            interfaceInfo = buildTunnelInterface(parentRefs.getDatapathNodeIdentifier(),ifaceName, ifaceName,
+            interfaceInfo = buildTunnelInterface(parentRefs.getDatapathNodeIdentifier().toJava(),ifaceName, ifaceName,
                     true, TunnelTypeVxlan.class, "1.1.1.1", "2.2.2.2");
         }
         InstanceIdentifier<Interface> interfaceInstanceIdentifier = IfmUtil.buildId(ifaceName);
@@ -282,7 +282,7 @@ public final class InterfaceManagerTestUtil {
                                                Class<? extends InterfaceType> ifType)
             throws TransactionCommitFailedException {
         WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-        BigInteger dpnId = Tunnel.class.equals(ifType) ? DPN_ID_2 : DPN_ID_1;
+        Uint64 dpnId = Tunnel.class.equals(ifType) ? DPN_ID_2 : DPN_ID_1;
         long portNo = Tunnel.class.equals(ifType) ? PORT_NO_1 : PORT_NO_1;
         NodeConnector nodeConnector = InterfaceManagerTestUtil
                 .buildFlowCapableNodeConnector(buildNodeConnectorId(dpnId, portNo), interfaceName, true);
@@ -293,7 +293,7 @@ public final class InterfaceManagerTestUtil {
     static void updateFlowCapableNodeConnectorState(DataBroker dataBroker, String interfaceName,
             Class<? extends InterfaceType> ifType, boolean isLive) throws TransactionCommitFailedException {
         WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-        BigInteger dpnId = Tunnel.class.equals(ifType) ? DPN_ID_2 : DPN_ID_1;
+        Uint64 dpnId = Tunnel.class.equals(ifType) ? DPN_ID_2 : DPN_ID_1;
         long portNo = Tunnel.class.equals(ifType) ? PORT_NO_1 : PORT_NO_1;
         NodeConnector nodeConnector = InterfaceManagerTestUtil
             .buildFlowCapableNodeConnector(buildNodeConnectorId(dpnId, portNo), interfaceName, isLive);
@@ -304,7 +304,7 @@ public final class InterfaceManagerTestUtil {
     static void removeFlowCapableNodeConnectorState(DataBroker dataBroker, Class<? extends InterfaceType> ifType)
             throws TransactionCommitFailedException {
         WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
-        BigInteger dpnId = Tunnel.class.equals(ifType) ? DPN_ID_2 : DPN_ID_1;
+        Uint64 dpnId = Tunnel.class.equals(ifType) ? DPN_ID_2 : DPN_ID_1;
         long portNo = Tunnel.class.equals(ifType) ? PORT_NO_1 : PORT_NO_1;
         tx.delete(OPERATIONAL,buildNodeConnectorInstanceIdentifier(dpnId, portNo));
         tx.submit().checkedGet();
@@ -355,7 +355,7 @@ public final class InterfaceManagerTestUtil {
     }
 
     static BoundServices getBoundServices(String serviceName, short servicePriority, int flowPriority,
-                                                 BigInteger cookie, List<Instruction> instructions) {
+                                          Uint64 cookie, List<Instruction> instructions) {
         StypeOpenflowBuilder augBuilder = new StypeOpenflowBuilder().setFlowCookie(cookie).setFlowPriority(flowPriority)
             .setInstruction(instructions);
         return new BoundServicesBuilder().withKey(new BoundServicesKey(servicePriority)).setServiceName(serviceName)
index 428ef111768114eebb52615d6d3c843c82fc74e7..dadd1a8b0ce4c9069f5eb7ba6d185846fc80aa38 100644 (file)
@@ -12,11 +12,12 @@ import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo.InterfaceA
 import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo.InterfaceOpState
 import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo.InterfaceType
 import org.opendaylight.genius.interfacemanager.globals.VlanInterfaceInfo
+import org.opendaylight.yangtools.yang.common.Uint64
 
 class ExpectedInterfaceInfo {
     static def newInterfaceInfo(Integer lportTag, String ifaceName, String parentInterface,
     InterfaceInfo.InterfaceType ifaceType) {
-        new InterfaceInfo(1bi, parentInterface) => [
+        new InterfaceInfo(Uint64.ONE, parentInterface) => [
             adminState = InterfaceAdminState.ENABLED
             interfaceName = ifaceName
             interfaceTag = 1
@@ -29,7 +30,7 @@ class ExpectedInterfaceInfo {
     }
 
     static def newVlanInterfaceInfo() {
-        new VlanInterfaceInfo(1bi, "tap23701c04-7e", 0 as short) => [
+        new VlanInterfaceInfo(Uint64.ONE, "tap23701c04-7e", 0 as short) => [
             adminState = InterfaceAdminState.ENABLED
             interfaceName = "23701c04-7e58-4c65-9425-78a80d49a218"
             interfaceTag = 1
@@ -8,6 +8,7 @@
 package org.opendaylight.genius.interfacemanager.test.xtend
 
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rpcs.rev160406.GetPortFromInterfaceOutputBuilder
+import org.opendaylight.yangtools.yang.common.Uint64
 
 import static extension org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions.operator_doubleGreaterThan
 
@@ -15,7 +16,7 @@ class PortFromInterfaceOutput {
 
     static def newPortFromInterfaceOutput() {
         new GetPortFromInterfaceOutputBuilder >> [
-            dpid = 1bi
+            dpid = Uint64.ONE
             phyAddress = "AA:AA:AA:AA:AA:AA"
             portname = "23701c04-7e58-4c65-9425-78a80d49a218"
             portno = 2L
index 17e52bd1b9fcc56c296c39af1a3d1f657cede38f..297c11244365394e6813a3853b2ea7e13d7a9ebc 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.interfacemanager.shell;
 
-import java.math.BigInteger;
 import java.util.Formatter;
 import org.apache.felix.service.command.CommandSession;
 import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo;
@@ -19,6 +18,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.ParentRefs;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.port._interface.attributes.Options;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public final class IfmCLIUtil {
     private static final String VLAN_OUTPUT_FORMAT_LINE1 = "%-55s";
@@ -60,7 +60,7 @@ public final class IfmCLIUtil {
         StringBuilder sb = new StringBuilder();
         Formatter fmt = new Formatter(sb);
         IfL2vlan l2vlan = iface.augmentation(IfL2vlan.class);
-        int vlanId = l2vlan != null ? l2vlan.getVlanId() != null ? l2vlan.getVlanId().getValue() : 0 : 0;
+        int vlanId = l2vlan != null ? l2vlan.getVlanId() != null ? l2vlan.getVlanId().getValue().toJava() : 0 : 0;
         session.getConsole().println(fmt.format(VLAN_OUTPUT_FORMAT_LINE1,
                 iface.getName()));
         sb.setLength(0);
@@ -166,7 +166,7 @@ public final class IfmCLIUtil {
         fmt.close();
     }
 
-    static void showBridgePortsHeader(CommandSession session, BigInteger dpnId) {
+    static void showBridgePortsHeader(CommandSession session, Uint64 dpnId) {
         StringBuilder sb = new StringBuilder();
         Formatter fmt = new Formatter(sb);
         session.getConsole().println(fmt
index 0ec7915e829bd2c83788563e17805aa7a906eedf..1f904b2602d2cc479ea0d67829f90ed4e9e31255 100644 (file)
@@ -15,6 +15,7 @@ import org.apache.karaf.shell.console.OsgiCommandSupport;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -38,10 +39,11 @@ public class ShowOvsPorts extends OsgiCommandSupport {
     @Override
     protected Object doExecute() {
         LOG.debug("Executing show ovs-ports command");
-        List<OvsdbTerminationPointAugmentation> ports = interfaceManager.getPortsOnBridge(dpnId);
+        final Uint64 id = Uint64.valueOf(dpnId);
+        List<OvsdbTerminationPointAugmentation> ports = interfaceManager.getPortsOnBridge(id);
 
         if (!ports.isEmpty()) {
-            IfmCLIUtil.showBridgePortsHeader(session, dpnId);
+            IfmCLIUtil.showBridgePortsHeader(session, id);
         }
         for (OvsdbTerminationPointAugmentation port: ports) {
             IfmCLIUtil.showBridgePortsOutput(session, port);
index 52dcb7a4763f42cfbd83c7aa15f799c6addc3b2f..999e9904cb63f3ff7bb2100b17629d83a0c55037 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index d0c9077ef3bea43543cb324ced03f49bf6aa69c3..a314b5c9d8a067e9d8cb15b3ecd712988db7269d 100644 (file)
@@ -69,8 +69,8 @@ public final class Ipv6Util {
         checksum += getSummation(ip6Hdr.getDestinationIpv6());
         checksum = normalizeChecksum(checksum);
 
-        checksum += ip6Hdr.getIpv6Length();
-        checksum += ip6Hdr.getNextHeader();
+        checksum += ip6Hdr.getIpv6Length().toJava();
+        checksum += ip6Hdr.getNextHeader().toJava();
 
         int icmp6Offset = Ipv6Constants.ICMPV6_OFFSET;
         long value = (packet[icmp6Offset] & 0xff) << 8 | packet[icmp6Offset + 1] & 0xff;
@@ -147,7 +147,8 @@ public final class Ipv6Util {
         Arrays.fill(data, (byte) 0);
 
         ByteBuffer buf = ByteBuffer.wrap(data);
-        long flowLabel = (long) (ip6Pdu.getVersion() & 0x0f) << 28 | ip6Pdu.getFlowLabel() & 0x0fffffff;
+        long flowLabel = (long) (ip6Pdu.getVersion().toJava() & 0x0f) << 28
+                                    | ip6Pdu.getFlowLabel().toJava() & 0x0fffffff;
         buf.putInt((int) flowLabel);
         buf.putShort((short) ip6Pdu.getIpv6Length().intValue());
         buf.put((byte) ip6Pdu.getNextHeader().shortValue());
index 8398908853968ffeb66936735198a27e47f3d78d..7145bb9cebf907a16c4fd374328350c3acf41dcf 100644 (file)
@@ -69,13 +69,13 @@ public class Ipv6NaDecoder {
         naPdu.setTargetAddress(Ipv6Address.getDefaultInstance(
                 InetAddress.getByAddress(BitBufferHelper.getBits(data, bitOffset, 128)).getHostAddress()));
 
-        if (naPdu.getIpv6Length() > Ipv6Constants.ICMPV6_NA_LENGTH_WO_OPTIONS) {
+        if (naPdu.getIpv6Length().toJava() > Ipv6Constants.ICMPV6_NA_LENGTH_WO_OPTIONS) {
             bitOffset = bitOffset + 128;
             naPdu.setOptionType(BitBufferHelper.getShort(BitBufferHelper.getBits(data, bitOffset, 8)));
             bitOffset = bitOffset + 8;
             naPdu.setTargetAddrLength(BitBufferHelper.getShort(BitBufferHelper.getBits(data, bitOffset, 8)));
             bitOffset = bitOffset + 8;
-            if (naPdu.getOptionType() == Ipv6Constants.ICMP_V6_OPTION_TARGET_LLA) {
+            if (naPdu.getOptionType().toJava() == Ipv6Constants.ICMP_V6_OPTION_TARGET_LLA) {
                 naPdu.setTargetLlAddress(new MacAddress(
                         Ipv6Util.bytesToHexString(BitBufferHelper.getBits(data, bitOffset, 48))));
             }
index 395559c7fcb6f139142b0b00adcfdb8761d66a41..3f510a0461e15172da88731479e07dedcdfe6533 100644 (file)
@@ -11,7 +11,6 @@ import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 import javax.inject.Inject;
@@ -32,6 +31,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeCon
 import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -63,7 +63,7 @@ public class Ipv6NdUtilServiceImpl implements Ipv6NdUtilService {
         Ipv6Address srcIpv6Address;
         String interfaceName = null;
         String macAddr = null;
-        BigInteger dpnId;
+        Uint64 dpnId;
         int localErrorCount = 0;
 
         targetIpv6Address = ndInput.getTargetIpAddress();
@@ -75,8 +75,8 @@ public class Ipv6NdUtilServiceImpl implements Ipv6NdUtilService {
                 GetPortFromInterfaceOutput portResult = getPortFromInterface(interfaceName);
                 checkNotNull(portResult);
                 dpnId = portResult.getDpid();
-                Long portid = portResult.getPortno();
-                checkArgument(null != dpnId && BigInteger.ZERO != dpnId, DPN_NOT_FOUND_ERROR, interfaceName);
+                Long portid = portResult.getPortno().toJava();
+                checkArgument(null != dpnId && Uint64.ZERO != dpnId, DPN_NOT_FOUND_ERROR, interfaceName);
 
                 NodeConnectorRef nodeRef = MDSALUtil.getNodeConnRef(dpnId, portid.toString());
                 checkNotNull(nodeRef, NODE_CONNECTOR_NOT_FOUND_ERROR, interfaceName);
@@ -127,7 +127,7 @@ public class Ipv6NdUtilServiceImpl implements Ipv6NdUtilService {
             SendNeighborSolicitationToOfGroupInput ndInput) {
         RpcResultBuilder<SendNeighborSolicitationToOfGroupOutput> successBuilder = RpcResultBuilder.success();
         ipv6NsHelper.transmitNeighborSolicitationToOfGroup(ndInput.getDpId(), ndInput.getSourceLlAddress(),
-                ndInput.getSourceIpv6(), ndInput.getTargetIpAddress(), ndInput.getOfGroupId());
+                ndInput.getSourceIpv6(), ndInput.getTargetIpAddress(), ndInput.getOfGroupId().toJava());
 
         return  successBuilder.buildFuture();
     }
index 04d921ca0b52429ac78a3a7d6e7bfad76917215a..d863946f9346adb8837acff052fb621343bd7f35 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.genius.ipv6util.nd;
 
-import java.math.BigInteger;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.nio.ByteBuffer;
@@ -40,6 +39,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.Pa
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.TransmitPacketInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.TransmitPacketInputBuilder;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -110,17 +110,17 @@ public class Ipv6NsHelper {
     }
 
     private byte[] fillNeighborSolicitationPacket(NeighborSolicitationPacket pdu) {
-        ByteBuffer buf = ByteBuffer.allocate(Ipv6Constants.ICMPV6_OFFSET + pdu.getIpv6Length());
+        ByteBuffer buf = ByteBuffer.allocate(Ipv6Constants.ICMPV6_OFFSET + pdu.getIpv6Length().toJava());
 
         buf.put(Ipv6Util.convertEthernetHeaderToByte(pdu), 0, 14);
         buf.put(Ipv6Util.convertIpv6HeaderToByte(pdu), 0, 40);
-        buf.put(icmp6NsPayloadtoByte(pdu), 0, pdu.getIpv6Length());
+        buf.put(icmp6NsPayloadtoByte(pdu), 0, pdu.getIpv6Length().toJava());
         int checksum = Ipv6Util.calculateIcmpv6Checksum(buf.array(), pdu);
         buf.putShort(Ipv6Constants.ICMPV6_OFFSET + 2, (short) checksum);
         return buf.array();
     }
 
-    public boolean transmitNeighborSolicitation(BigInteger dpnId, NodeConnectorRef nodeRef, MacAddress srcMacAddress,
+    public boolean transmitNeighborSolicitation(Uint64 dpnId, NodeConnectorRef nodeRef, MacAddress srcMacAddress,
             Ipv6Address srcIpv6Address, Ipv6Address targetIpv6Address) {
         byte[] txPayload = frameNeighborSolicitationRequest(srcMacAddress, srcIpv6Address, targetIpv6Address);
         NodeConnectorRef nodeConnectorRef = MDSALUtil.getNodeConnRef(dpnId, "0xfffffffd");
@@ -135,7 +135,7 @@ public class Ipv6NsHelper {
         return true;
     }
 
-    public void transmitNeighborSolicitationToOfGroup(BigInteger dpId, MacAddress srcMacAddress,
+    public void transmitNeighborSolicitationToOfGroup(Uint64 dpId, MacAddress srcMacAddress,
             Ipv6Address srcIpv6Address, Ipv6Address targetIpv6Address, long ofGroupId) {
         byte[] txPayload = frameNeighborSolicitationRequest(srcMacAddress, srcIpv6Address, targetIpv6Address);
         List<ActionInfo> lstActionInfo = new ArrayList<>();
index 904de6f0d08f67e1d188cc05061ce558eb5ee317..200160eddf522c65aa69d94efdd8836f078627f6 100644 (file)
@@ -9,12 +9,11 @@
 package org.opendaylight.genius.ipv6util.nd;
 
 import static org.junit.Assert.assertEquals;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 import org.junit.Before;
@@ -37,6 +36,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.Tr
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.TransmitPacketInputBuilder;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public class Ipv6NsHelperTest {
     private Ipv6NsHelper instance;
@@ -56,7 +56,7 @@ public class Ipv6NsHelperTest {
         doReturn(RpcResultBuilder.status(true).buildFuture()).when(pktProcessService)
             .transmitPacket(any(TransmitPacketInput.class));
 
-        BigInteger dpnId = BigInteger.valueOf(1);
+        Uint64 dpnId = Uint64.ONE;
         String macAddr = "08:00:27:FE:8F:95";
         boolean retValue;
         Ipv6Address srcIpv6Address = new Ipv6Address("2001:db8::1");
@@ -98,7 +98,7 @@ public class Ipv6NsHelperTest {
         doReturn(RpcResultBuilder.status(true).buildFuture()).when(pktProcessService)
             .transmitPacket(any(TransmitPacketInput.class));
 
-        BigInteger dpnId = BigInteger.valueOf(1);
+        Uint64 dpnId = Uint64.ONE;
         String macAddr = "08:00:27:FE:8F:95";
         boolean retValue;
         Ipv6Address srcIpv6Address = new Ipv6Address("2001:db8::1");
@@ -164,7 +164,7 @@ public class Ipv6NsHelperTest {
         doReturn(RpcResultBuilder.status(true).buildFuture()).when(pktProcessService)
                 .transmitPacket(any(TransmitPacketInput.class));
 
-        BigInteger dpnId = BigInteger.valueOf(1);
+        Uint64 dpnId = Uint64.ONE;
         MacAddress srcMacAddress = new MacAddress("08:00:27:FE:8F:95");
         Ipv6Address srcIpv6Address = new Ipv6Address("2001:db8::1");
         Ipv6Address targetIpv6Address = new Ipv6Address("2001:db8::2");
@@ -180,7 +180,7 @@ public class Ipv6NsHelperTest {
         doReturn(RpcResultBuilder.status(true).buildFuture()).when(pktProcessService)
                 .transmitPacket(any(TransmitPacketInput.class));
 
-        BigInteger dpnId = BigInteger.valueOf(1);
+        Uint64 dpnId = Uint64.ONE;
         MacAddress srcMacAddress = new MacAddress("08:00:27:FE:8F:95");
         Ipv6Address srcIpv6Address = new Ipv6Address("2001:db8::1");
         Ipv6Address targetIpv6Address = new Ipv6Address("2001:db8::2");
index 3097216eec24025e9518eead6f1ea6c5b15d6984..0eedd3e5a006bd2361e0b60929454eff5a93c1e9 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index d9667dcfdcffabf4294eeae857ec4d010bd43a06..72818855ed4d7035258760dba1bd5dc6c8e701e3 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.genius.itm.api;
 
 import com.google.common.base.Optional;
-import java.math.BigInteger;
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;
@@ -18,10 +17,11 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelList;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public interface IITMProvider {
     // APIs used by i
-    void createLocalCache(BigInteger dpnId, String portName, Integer vlanId, String ipAddress, String subnetMask,
+    void createLocalCache(Uint64 dpnId, String portName, Integer vlanId, String ipAddress, String subnetMask,
             String gatewayIp, String transportZone);
 
     void commitTeps();
@@ -36,7 +36,7 @@ public interface IITMProvider {
 
     void showCache(String cacheName);
 
-    void deleteVtep(BigInteger dpnId, String portName, Integer vlanId, String ipAddress, String subnetMask,
+    void deleteVtep(Uint64 dpnId, String portName, Integer vlanId, String ipAddress, String subnetMask,
             String gatewayIp, String transportZone);
 
     void configureTunnelType(String transportZone, String tunnelType);
index 8ce11d84911e5c5e3674cfb787a868e63cecde92..0dcc66d4b75409d2afe2e5cab3400e3464ef03d1 100644 (file)
@@ -7,15 +7,14 @@
  */
 package org.opendaylight.genius.itm.globals;
 
-import java.math.BigInteger;
-
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelMonitoringTypeBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelMonitoringTypeBfd;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public interface ITMConstants {
     String ITM_SERVICE_NAME = "ITM";
-    BigInteger COOKIE_ITM = new BigInteger("9000000", 16);
-    BigInteger COOKIE_ITM_EXTERNAL = new BigInteger("9050000", 16);
+    Uint64 COOKIE_ITM = Uint64.valueOf("9000000", 16).intern();
+    Uint64 COOKIE_ITM_EXTERNAL = Uint64.valueOf("9050000", 16).intern();
 
     String ITM_IDPOOL_NAME = "Itmservices";
     long ITM_IDPOOL_START = 1L;
index 7bc1a1412d390a5c8fe93250c5d3e0b4b45d6cb6..a09eb2b56beb99fb829697f37e6e7eb55752714a 100644 (file)
@@ -7,10 +7,10 @@
  */
 package org.opendaylight.genius.itm.utils;
 
-import java.math.BigInteger;
 import org.immutables.value.Value;
 import org.opendaylight.genius.infra.OpenDaylightImmutableStyle;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 @Value.Immutable
 @OpenDaylightImmutableStyle
@@ -24,5 +24,5 @@ public interface DpnTepInterfaceInfo {
 
     boolean isInternal();
 
-    BigInteger getRemoteDPN();
+    Uint64 getRemoteDPN();
 }
index 07aeac110ec6adf7aeab0cffd94bea2c47b6801b..8602c0de039d97a8f183b16bdc03b095c74a7d0b 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.itm.cache;
 
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -32,6 +31,7 @@ import org.opendaylight.infrautils.utils.concurrent.NamedSimpleReentrantLock.Acq
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.DpnEndpoints;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.endpoints.DPNTEPsInfo;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -88,7 +88,7 @@ public class DPNTEPsInfoCache extends InstanceIdDataObjectCache<DPNTEPsInfo> {
                         // Check if the destination End Point has come
                         try (Acquired lock = directTunnelUtils.lockTunnel(tunnelEndPointInfo.getDstEndPointInfo())) {
                             Optional<DPNTEPsInfo> dstInfoOpt = getDPNTepFromDPNId(
-                                    new BigInteger(tunnelEndPointInfo.getDstEndPointInfo()));
+                                    Uint64.valueOf(tunnelEndPointInfo.getDstEndPointInfo()));
                             if (dstInfoOpt.isPresent()) {
                                 dstDpnTepsInfo = dstInfoOpt.get();
                             } else {
@@ -111,7 +111,7 @@ public class DPNTEPsInfoCache extends InstanceIdDataObjectCache<DPNTEPsInfo> {
                     if (srcDpnTepsInfo == null) {
                         try (Acquired lock = directTunnelUtils.lockTunnel(tunnelEndPointInfo.getSrcEndPointInfo())) {
                             Optional<DPNTEPsInfo> srcInfoOpt = getDPNTepFromDPNId(
-                                    new BigInteger(tunnelEndPointInfo.getSrcEndPointInfo()));
+                                    Uint64.valueOf(tunnelEndPointInfo.getSrcEndPointInfo()));
                             if (srcInfoOpt.isPresent()) {
                                 srcDpnTepsInfo = srcInfoOpt.get();
                             } else {
@@ -146,10 +146,10 @@ public class DPNTEPsInfoCache extends InstanceIdDataObjectCache<DPNTEPsInfo> {
         }
     }
 
-    public List<DPNTEPsInfo> getDPNTepListFromDPNId(List<BigInteger> dpnIds) {
+    public List<DPNTEPsInfo> getDPNTepListFromDPNId(List<Uint64> dpnIds) {
         Collection<DPNTEPsInfo> meshedDpnList = this.getAllPresent() ;
         List<DPNTEPsInfo> cfgDpnList = new ArrayList<>();
-        for (BigInteger dpnId : dpnIds) {
+        for (Uint64 dpnId : dpnIds) {
             for (DPNTEPsInfo teps : meshedDpnList) {
                 if (dpnId.equals(teps.getDPNID())) {
                     cfgDpnList.add(teps);
@@ -159,7 +159,7 @@ public class DPNTEPsInfoCache extends InstanceIdDataObjectCache<DPNTEPsInfo> {
         return cfgDpnList;
     }
 
-    public Optional<DPNTEPsInfo> getDPNTepFromDPNId(BigInteger dpnId) {
+    public Optional<DPNTEPsInfo> getDPNTepFromDPNId(Uint64 dpnId) {
         Collection<DPNTEPsInfo> meshedDpnList = this.getAllPresent() ;
         return meshedDpnList.stream().filter(info -> dpnId.equals(info.getDPNID())).findFirst();
     }
index a6752f68f91da2e96453a0d9526618655786fb87..9f1ae7a5bcd0a91b8e021a3060e77c8ff66761f8 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.itm.cache;
 
-import java.math.BigInteger;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -47,11 +46,12 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.teps.state.dpns.teps.RemoteDpns;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.teps.state.dpns.teps.RemoteDpnsKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @Singleton
-public class DpnTepStateCache extends DataObjectCache<BigInteger, DpnsTeps> {
+public class DpnTepStateCache extends DataObjectCache<Uint64, DpnsTeps> {
 
     private static final Logger LOG = LoggerFactory.getLogger(DpnTepStateCache.class);
     private static final Logger EVENT_LOGGER = LoggerFactory.getLogger("GeniusEventLogger");
@@ -171,10 +171,10 @@ public class DpnTepStateCache extends DataObjectCache<BigInteger, DpnsTeps> {
     }
 
     private DpnTepInterfaceInfo getDpnTepInterface(String srcDpnId, String dstDpnId) {
-        return getDpnTepInterface(new BigInteger(srcDpnId), new BigInteger(dstDpnId));
+        return getDpnTepInterface(Uint64.valueOf(srcDpnId), Uint64.valueOf(dstDpnId));
     }
 
-    public DpnTepInterfaceInfo getDpnTepInterface(BigInteger srcDpnId, BigInteger dstDpnId) {
+    public DpnTepInterfaceInfo getDpnTepInterface(Uint64 srcDpnId, Uint64 dstDpnId) {
         DpnTepInterfaceInfo  dpnTepInterfaceInfo = dpnTepInterfaceMap.get(getDpnId(srcDpnId, dstDpnId));
         if (dpnTepInterfaceInfo == null) {
             try {
@@ -201,7 +201,7 @@ public class DpnTepStateCache extends DataObjectCache<BigInteger, DpnsTeps> {
         return dpnTepInterfaceMap.get(getDpnId(srcDpnId, dstDpnId));
     }
 
-    public void removeTepFromDpnTepInterfaceConfigDS(BigInteger srcDpnId) throws TransactionCommitFailedException {
+    public void removeTepFromDpnTepInterfaceConfigDS(Uint64 srcDpnId) throws TransactionCommitFailedException {
         Collection<DpnsTeps> dpnsTeps = this.getAllPresent();
         for (DpnsTeps dpnTep : dpnsTeps) {
             if (!Objects.equals(dpnTep.getSourceDpnId(), srcDpnId)) {
@@ -220,17 +220,18 @@ public class DpnTepStateCache extends DataObjectCache<BigInteger, DpnsTeps> {
                 }
             } else {
                 // The source DPn id is the one to be removed
-                InstanceIdentifier<DpnsTeps> dpnsTepsII = buildDpnsTepsInstanceIdentifier(dpnTep.getSourceDpnId());
+                InstanceIdentifier<DpnsTeps> dpnsTepsII
+                    = buildDpnsTepsInstanceIdentifier(dpnTep.getSourceDpnId());
                 SingleTransactionDataBroker.syncDelete(dataBroker, LogicalDatastoreType.CONFIGURATION, dpnsTepsII);
             }
         }
     }
 
-    private InstanceIdentifier<DpnsTeps> buildDpnsTepsInstanceIdentifier(BigInteger srcDpnId) {
+    private static InstanceIdentifier<DpnsTeps> buildDpnsTepsInstanceIdentifier(Uint64 srcDpnId) {
         return InstanceIdentifier.builder(DpnTepsState.class).child(DpnsTeps.class, new DpnsTepsKey(srcDpnId)).build();
     }
 
-    private InstanceIdentifier<RemoteDpns> buildRemoteDpnsInstanceIdentifier(BigInteger srcDpnId, BigInteger dstDpnId) {
+    private static InstanceIdentifier<RemoteDpns> buildRemoteDpnsInstanceIdentifier(Uint64 srcDpnId, Uint64 dstDpnId) {
         DpnsTepsKey dpnsTepsKey = new DpnsTepsKey(srcDpnId);
         RemoteDpnsKey remoteDpnsKey = new RemoteDpnsKey(dstDpnId);
         return InstanceIdentifier.builder(DpnTepsState.class).child(DpnsTeps.class, dpnsTepsKey)
@@ -263,14 +264,15 @@ public class DpnTepStateCache extends DataObjectCache<BigInteger, DpnsTeps> {
         return getDpnTepInterface(endPointInfo.getSrcEndPointInfo(), endPointInfo.getDstEndPointInfo());
     }
 
-    private String getDpnId(BigInteger src, BigInteger dst) {
+    // FIXME: this seems to be a cache key -- it should use a composite structure rather than string concat
+    private String getDpnId(Uint64 src, Uint64 dst) {
         return src + ":" + dst;
     }
 
     public Interface getInterfaceFromCache(String tunnelName) {
         TunnelEndPointInfo endPointInfo = getTunnelEndPointInfoFromCache(tunnelName);
-        BigInteger srcDpnId = new BigInteger(endPointInfo.getSrcEndPointInfo());
-        BigInteger dstDpnId = new BigInteger(endPointInfo.getDstEndPointInfo());
+        Uint64 srcDpnId = Uint64.valueOf(endPointInfo.getSrcEndPointInfo());
+        Uint64 dstDpnId = Uint64.valueOf(endPointInfo.getDstEndPointInfo());
         Interface iface = null ;
         int monitoringInt = 1000;
         DpnTepInterfaceInfo dpnTepInfo = getDpnTepInterface(srcDpnId, dstDpnId);
index 685b6dae3bd86b6c3db9c5dfcdf727471b795969..56142d68cf51d881e6e3526dbba0c1b7218ff56c 100644 (file)
@@ -7,35 +7,33 @@
  */
 package org.opendaylight.genius.itm.cache;
 
-import java.math.BigInteger;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import javax.inject.Singleton;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @Singleton
 public class OfEndPointCache {
-
     private static final Logger LOG = LoggerFactory.getLogger(OfEndPointCache.class);
 
-    private final ConcurrentMap<BigInteger, String> ofEndPtMap =
-            new ConcurrentHashMap<>();
+    private final ConcurrentMap<Uint64, String> ofEndPtMap = new ConcurrentHashMap<>();
 
-    public void add(BigInteger dpnId, String ofTunnelName) {
+    public void add(Uint64 dpnId, String ofTunnelName) {
         ofEndPtMap.put(dpnId, ofTunnelName);
     }
 
-    public String get(BigInteger dpnId) {
+    public String get(Uint64 dpnId) {
         return ofEndPtMap.get(dpnId);
     }
 
-    public String remove(BigInteger dpnId) {
+    public String remove(Uint64 dpnId) {
         return ofEndPtMap.remove(dpnId);
     }
 
-    public Set<BigInteger> getAll() {
+    public Set<Uint64> getAll() {
         return ofEndPtMap.keySet();
     }
 }
\ No newline at end of file
index 3a900f922c52985bfd455a60140db5a533450fca..1058681ec1f12886377f5b9efe26420253f3eb1e 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.itm.cache;
 
-import java.math.BigInteger;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
@@ -18,9 +17,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.meta.rev171210.B
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.meta.rev171210.bridge.tunnel.info.OvsBridgeEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.meta.rev171210.bridge.tunnel.info.OvsBridgeEntryKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 @Singleton
-public class OvsBridgeEntryCache extends DataObjectCache<BigInteger, OvsBridgeEntry> {
+public class OvsBridgeEntryCache extends DataObjectCache<Uint64, OvsBridgeEntry> {
 
     @Inject
     public OvsBridgeEntryCache(DataBroker dataBroker, CacheProvider cacheProvider) {
index 17e6b4e69760c7750bd59c5473657bea1c242d4d..fa04f33ea86d306016d0f48308e89ad15549bd28 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.itm.cache;
 
-import java.math.BigInteger;
 import javax.inject.Inject;
 import javax.inject.Singleton;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
@@ -18,9 +17,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.meta.rev171210.O
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.meta.rev171210.ovs.bridge.ref.info.OvsBridgeRefEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.meta.rev171210.ovs.bridge.ref.info.OvsBridgeRefEntryKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 @Singleton
-public class OvsBridgeRefEntryCache extends DataObjectCache<BigInteger, OvsBridgeRefEntry> {
+public class OvsBridgeRefEntryCache extends DataObjectCache<Uint64, OvsBridgeRefEntry> {
 
     @Inject
     public OvsBridgeRefEntryCache(DataBroker dataBroker, CacheProvider cacheProvider) {
index 2c05ef9b86ddb0ab3d07fcb273d55e00eef5be2c..55793078207f020bb75be0fab64e9bd96661c8b6 100644 (file)
@@ -29,6 +29,7 @@ public final class ItmCliUtils {
      *            the dpn ids
      * @return the list
      */
+    // FIXME: this seems to be completely unused
     public static List<BigInteger> constructDpnIdList(final String dpnIds) {
         final List<BigInteger> lstDpnIds = new ArrayList<>();
         if (StringUtils.isNotBlank(dpnIds)) {
index b78c9c2cc220ff0147efc71a0360459bf82869d3..10e4dbd6349f879230a424ab26dde9a3bf1a18c4 100644 (file)
@@ -12,6 +12,7 @@ import org.apache.karaf.shell.commands.Argument;
 import org.apache.karaf.shell.commands.Command;
 import org.apache.karaf.shell.console.OsgiCommandSupport;
 import org.opendaylight.genius.itm.api.IITMProvider;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -53,7 +54,7 @@ public class TepAdd extends OsgiCommandSupport {
             LOG.debug("Executing create TEP command dpnId={}, portName={}, vlanId={}, ipAddress={},"
                             + " subnetMask={}, gatewayIp={}, transportZone={}", dpnId, portName, vlanId, ipAddress,
                     subnetMask, gatewayIp, transportZone);
-            itmProvider.createLocalCache(dpnId, portName, vlanId, ipAddress, subnetMask, gatewayIp,
+            itmProvider.createLocalCache(Uint64.valueOf(dpnId), portName, vlanId, ipAddress, subnetMask, gatewayIp,
                     transportZone);
         } catch (Exception e) {
             LOG.error("Exception occurred during execution of command \"tep-add\"", e);
index 9a741c9a53d13feec4fd60a346dbbac2a31089ba..9c7f21b734ebb5d5080e055701d36dbb25d0e39f 100644 (file)
@@ -12,7 +12,6 @@ import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.MoreExecutors;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -66,6 +65,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.re
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -111,7 +111,7 @@ public class TepCommandHelper {
     }
 
     @SuppressWarnings("checkstyle:IllegalCatch")
-    public void createLocalCache(BigInteger dpnId, String ipAddress,
+    public void createLocalCache(Uint64 dpnId, String ipAddress,
                                  String transportZone) throws TepException {
 
         CHECK.incrementAndGet();
@@ -165,7 +165,7 @@ public class TepCommandHelper {
     }
 
 
-    public boolean checkTepPerTzPerDpn(String tzone, BigInteger dpnId) {
+    public boolean checkTepPerTzPerDpn(String tzone, Uint64 dpnId) {
         // check in local cache
         if (transportZonesHashMap.containsKey(tzone)) {
             List<Vteps> vtepList = transportZonesHashMap.get(tzone);
@@ -328,7 +328,7 @@ public class TepCommandHelper {
     }
 
     @SuppressWarnings("checkstyle:IllegalCatch")
-    public void deleteVtep(BigInteger dpnId, String ipAddress,
+    public void deleteVtep(Uint64 dpnId, String ipAddress,
                            String transportZone) throws TepException {
 
         final VtepsKey vtepkey = new VtepsKey(dpnId);
@@ -446,7 +446,7 @@ public class TepCommandHelper {
     }
 
     // Show DPN-ID and Bridge mapping
-    public void showBridges(Map<BigInteger, OvsdbBridgeRef> dpnIdBridgeRefMap) {
+    public void showBridges(Map<Uint64, OvsdbBridgeRef> dpnIdBridgeRefMap) {
         System.out.println(String.format("%-16s  %-16s  %-36s%n", "DPN-ID", "Bridge-Name", "Bridge-UUID")
                 + "------------------------------------------------------------------------");
         dpnIdBridgeRefMap.forEach((dpnId, ovsdbBridgeRef) -> {
@@ -458,7 +458,7 @@ public class TepCommandHelper {
     }
 
     // deletes from ADD-cache if it exists.
-    public boolean isInCache(BigInteger dpnId, String ipAddress,
+    public boolean isInCache(Uint64 dpnId, String ipAddress,
                              String transportZone) throws TepException {
         boolean exists = false;
         final VtepsKey vtepkey = new VtepsKey(dpnId);
@@ -508,19 +508,18 @@ public class TepCommandHelper {
         tunnelType = StringUtils.upperCase(tunnelType);
         tunType = ItmUtils.TUNNEL_TYPE_MAP.get(tunnelType);
 
-        List<TransportZone> tzList = null;
+
         InstanceIdentifier<TransportZones> path = InstanceIdentifier.builder(TransportZones.class).build();
         Optional<TransportZones> tzones = ItmUtils.read(LogicalDatastoreType.CONFIGURATION, path, dataBroker);
 
         TransportZone tzone = new TransportZoneBuilder().withKey(new TransportZoneKey(transportZoneName))
                 .setTunnelType(tunType).build();
+        List<TransportZone> tzList = new ArrayList<>();
         if (tzones.isPresent()) {
-            tzList = tzones.get().getTransportZone();
-            if (tzList == null || tzList.isEmpty()) {
-                tzList = new ArrayList<>();
+            final List<TransportZone> lst = tzones.get().getTransportZone();
+            if (lst != null) {
+                tzList.addAll(lst);
             }
-        } else {
-            tzList = new ArrayList<>();
         }
         tzList.add(tzone);
         TransportZones transportZones = new TransportZonesBuilder().setTransportZone(tzList).build();
@@ -557,7 +556,7 @@ public class TepCommandHelper {
                 InstanceIdentifier.builder(TunnelMonitorInterval.class).build();
         Optional<TunnelMonitorInterval> storedTunnelMonitor = ItmUtils.read(LogicalDatastoreType.CONFIGURATION, path,
                 dataBroker);
-        if (!storedTunnelMonitor.isPresent() || storedTunnelMonitor.get().getInterval() != interval) {
+        if (!storedTunnelMonitor.isPresent() || storedTunnelMonitor.get().getInterval().toJava() != interval) {
             TunnelMonitorInterval tunnelMonitor = new TunnelMonitorIntervalBuilder().setInterval(interval).build();
             Futures.addCallback(txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION,
                 tx -> tx.merge(path, tunnelMonitor, true)), ItmUtils.DEFAULT_WRITE_CALLBACK,
index 2058383fd7d68f048e918de18026cfa8e58a0a63..fe68fffb70c07f6ada21d94a2be2eaaa33a7cbdb 100644 (file)
@@ -12,6 +12,7 @@ import org.apache.karaf.shell.commands.Argument;
 import org.apache.karaf.shell.commands.Command;
 import org.apache.karaf.shell.console.OsgiCommandSupport;
 import org.opendaylight.genius.itm.api.IITMProvider;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -50,7 +51,8 @@ public class TepDelete extends OsgiCommandSupport {
                     + "gatewayIp transportZone");
             return null;
         }
-        itmProvider.deleteVtep(dpnId, portName, vlanId, ipAddress, subnetMask, gatewayIp, transportZone);
+        itmProvider.deleteVtep(Uint64.valueOf(dpnId), portName, vlanId, ipAddress, subnetMask, gatewayIp,
+            transportZone);
         LOG.trace("Executing delete TEP command");
 
         return null;
index 781802fa9aa61303320086f31f2ece781b58a953..6dfac20960017c45a159944d6edcd8b71e0b7806 100644 (file)
@@ -19,6 +19,7 @@ import org.opendaylight.genius.itm.api.IITMProvider;
 import org.opendaylight.genius.itm.cache.OvsBridgeRefEntryCache;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.meta.rev160406.bridge.ref.info.BridgeRefEntry;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.meta.rev171210.ovs.bridge.ref.info.OvsBridgeRefEntry;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -48,20 +49,22 @@ public class TepShowBridges extends OsgiCommandSupport {
 
     @Override
     protected Object doExecute() {
+        final Uint64 id = dpnId == null ? null : Uint64.valueOf(dpnId);
+
         if (interfaceManager.isItmDirectTunnelsEnabled()) {
             Collection<OvsBridgeRefEntry> ovsBridgeRefEntries = ovsBridgeRefEntryCache.getAllPresent();
             itmProvider.showBridges(ovsBridgeRefEntries.stream()
-                    .filter(dpnId == null
+                    .filter(id == null
                             ? ovsBridgeRefEntry -> true
-                            : ovsBridgeRefEntry -> ovsBridgeRefEntry.getDpid().equals(dpnId))
+                            : ovsBridgeRefEntry -> id.equals(ovsBridgeRefEntry.getDpid()))
                     .collect(Collectors.toMap(ovsBridgeRefEntry -> ovsBridgeRefEntry.getDpid(),
                         ovsBridgeRefEntry -> ovsBridgeRefEntry.getOvsBridgeReference())));
         } else {
-            Map<BigInteger, BridgeRefEntry> bridgeRefEntryMap = interfaceManager.getBridgeRefEntryMap();
+            Map<Uint64, BridgeRefEntry> bridgeRefEntryMap = interfaceManager.getBridgeRefEntryMap();
             itmProvider.showBridges(bridgeRefEntryMap.keySet().stream()
-                    .filter(dpnId == null
+                    .filter(id == null
                             ? key -> true
-                            : key -> key.equals(dpnId))
+                            : key -> id.equals(key))
                     .collect(Collectors.toMap(key -> key,
                         key -> bridgeRefEntryMap.get(key).getBridgeReference())));
         }
index f9af7901dcfc9a7a60cbdf43d39bff715dc4f98f..0e4a0d9aa3b5170f816201471ba8e96a06a89cde 100644 (file)
@@ -7,15 +7,13 @@
  */
 package org.opendaylight.genius.itm.confighelpers;
 
-import static org.opendaylight.genius.infra.Datastore.Configuration;
-
 import com.google.common.base.Optional;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import java.math.BigInteger;
 import java.util.Collection;
 import java.util.List;
 import java.util.Objects;
 import java.util.concurrent.ExecutionException;
+import org.opendaylight.genius.infra.Datastore.Configuration;
 import org.opendaylight.genius.infra.TypedReadWriteTransaction;
 import org.opendaylight.genius.infra.TypedWriteTransaction;
 import org.opendaylight.genius.itm.cache.DPNTEPsInfoCache;
@@ -43,6 +41,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transp
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.DeviceVteps;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.Vteps;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -96,7 +95,7 @@ public class ItmExternalTunnelAddWorker {
         }
     }
 
-    public void buildTunnelsFromDpnToExternalEndPoint(List<BigInteger> dpnId, IpAddress extIp,
+    public void buildTunnelsFromDpnToExternalEndPoint(List<Uint64> dpnId, IpAddress extIp,
                                                       Class<? extends TunnelTypeBase> tunType,
                                                       TypedWriteTransaction<Configuration> tx) {
         Collection<DPNTEPsInfo> cfgDpnList = dpnId == null ? dpnTEPsInfoCache.getAllPresent()
@@ -155,8 +154,9 @@ public class ItmExternalTunnelAddWorker {
             TransportZone transportZone = transportZoneOptional.get();
             //do we need to check tunnel type?
             if (transportZone.getDeviceVteps() != null && !transportZone.getDeviceVteps().isEmpty()) {
-                String portName = (itmConfig.getPortname() == null) ? ITMConstants.DUMMY_PORT : itmConfig.getPortname();
-                int vlanId = (itmConfig.getVlanId() != null) ? itmConfig.getVlanId() : ITMConstants.DUMMY_VLANID;
+                String portName = itmConfig.getPortname() == null ? ITMConstants.DUMMY_PORT : itmConfig.getPortname();
+                int vlanId = itmConfig.getVlanId() != null ? itmConfig.getVlanId().toJava()
+                                                             : ITMConstants.DUMMY_VLANID;
                 for (DeviceVteps hwVtepDS : transportZone.getDeviceVteps()) {
                     //dont mesh if hwVteps and OVS-tep have same ip-address
                     if (Objects.equals(hwVtepDS.getIpAddress(), tep.getIpAddress())) {
@@ -195,8 +195,8 @@ public class ItmExternalTunnelAddWorker {
         Class<? extends TunnelTypeBase> tunType = TunnelTypeVxlan.class;
         if (transportZoneOptional.isPresent()) {
             TransportZone tzone = transportZoneOptional.get();
-            String portName = (itmConfig.getPortname() == null) ? ITMConstants.DUMMY_PORT : itmConfig.getPortname();
-            int vlanId = (itmConfig.getVlanId() != null) ? itmConfig.getVlanId() : ITMConstants.DUMMY_VLANID;
+            String portName = itmConfig.getPortname() == null ? ITMConstants.DUMMY_PORT : itmConfig.getPortname();
+            int vlanId = itmConfig.getVlanId() != null ? itmConfig.getVlanId().toJava() : ITMConstants.DUMMY_VLANID;
             //do we need to check tunnel type?
             if (tzone.getDeviceVteps() != null && !tzone.getDeviceVteps().isEmpty()) {
                 for (DeviceVteps hwVtepDS : tzone.getDeviceVteps()) {
@@ -284,7 +284,7 @@ public class ItmExternalTunnelAddWorker {
     }
 
     //for tunnels from OVS
-    private boolean wireUp(BigInteger dpnId, String portname, Integer vlanId, IpAddress srcIp, Boolean remoteIpFlow,
+    private boolean wireUp(Uint64 dpnId, String portname, Integer vlanId, IpAddress srcIp, Boolean remoteIpFlow,
                            String dstNodeId, IpAddress dstIp,
                            Class<? extends TunnelTypeBase> tunType, Boolean monitorEnabled, Integer monitorInterval,
                            Class<? extends TunnelMonitoringTypeBase> monitorProtocol,
index 88a8d6a3541260f0ac4e7fd88a0c54780e10bc3a..42951a89e9b011efd123ae46ca730c714b4d124f 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.genius.itm.confighelpers;
 
 import com.google.common.base.Optional;
-import java.math.BigInteger;
 import java.util.Collection;
 import java.util.List;
 import java.util.Objects;
@@ -34,6 +33,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transp
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.DeviceVteps;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.Vteps;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -56,8 +56,8 @@ public final class ItmExternalTunnelDeleteWorker {
             TunnelEndPoints firstEndPt = teps.getTunnelEndPoints().get(0);
             // The membership in the listener will always be 1, to get the actual membership
             // read from the DS
-            List<TzMembership> originalTzMembership = ItmUtils.getOriginalTzMembership(firstEndPt, teps.getDPNID(),
-                    meshedDpnList);
+            List<TzMembership> originalTzMembership = ItmUtils.getOriginalTzMembership(firstEndPt,
+                    teps.getDPNID(), meshedDpnList);
             if (originalTzMembership.size() == 1) {
                 String interfaceName = firstEndPt.getInterfaceName();
                 String trunkInterfaceName = ItmUtils.getTrunkInterfaceName(interfaceName,
@@ -159,9 +159,10 @@ public final class ItmExternalTunnelDeleteWorker {
                 }
                 if (originalTZone.getVteps() != null) {
 
-                    String portName = (itmConfig.getPortname() == null) ? ITMConstants.DUMMY_PORT
+                    String portName = itmConfig.getPortname() == null ? ITMConstants.DUMMY_PORT
                             : itmConfig.getPortname();
-                    int vlanId = (itmConfig.getVlanId() != null) ? itmConfig.getVlanId() : ITMConstants.DUMMY_VLANID;
+                    int vlanId = itmConfig.getVlanId() != null ? itmConfig.getVlanId().toJava()
+                                                                 : ITMConstants.DUMMY_VLANID;
 
                     for (Vteps vtep : originalTZone.getVteps()) {
                         // TOR-OVS
@@ -177,8 +178,8 @@ public final class ItmExternalTunnelDeleteWorker {
     }
 
     private static void deleteTunnelsInTransportZone(String zoneName, DPNTEPsInfo dpn, TunnelEndPoints srcTep,
-                                                  List<HwVtep> cfgdhwVteps, TypedReadWriteTransaction<Configuration> tx)
-            throws InterruptedException, ExecutionException {
+            List<HwVtep> cfgdhwVteps, TypedReadWriteTransaction<Configuration> tx)
+                    throws InterruptedException, ExecutionException {
         InstanceIdentifier<TransportZone> tzonePath = InstanceIdentifier.builder(TransportZones.class)
                 .child(TransportZone.class, new TransportZoneKey(zoneName)).build();
         Optional<TransportZone> tz = tx.read(tzonePath).get();
@@ -204,7 +205,7 @@ public final class ItmExternalTunnelDeleteWorker {
         }
     }
 
-    private static void deleteTrunksOvsTor(BigInteger dpnid, String interfaceName, IpAddress cssIpAddress,
+    private static void deleteTrunksOvsTor(Uint64 dpnid, String interfaceName, IpAddress cssIpAddress,
                       String topologyId, String nodeId, IpAddress hwIpAddress, Class<? extends TunnelTypeBase> tunType,
                       TypedReadWriteTransaction<Configuration> tx) throws ExecutionException, InterruptedException {
         // OVS-TOR
index 542ae3f5f99e2606b75db95f53c27e4099246e02..772610e68244fcfc2ca2dd736e208b723f90d924 100644 (file)
@@ -13,7 +13,6 @@ import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.time.Duration;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -75,6 +74,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tun
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.OperationFailedException;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -180,8 +180,7 @@ public final class ItmInternalTunnelAddWorker {
                     if (!ItmUtils.getIntersection(srcte.nonnullTzMembership(),
                             dstte.nonnullTzMembership()).isEmpty()) {
                         // wire them up
-                        wireUpBidirectionalTunnel(tx, srcte, dstte, srcDpn.getDPNID(), dstDpn.getDPNID(),
-                                mdsalManager);
+                        wireUpBidirectionalTunnel(tx, srcte, dstte, srcDpn.getDPNID(), dstDpn.getDPNID(), mdsalManager);
                         if (!ItmTunnelAggregationHelper.isTunnelAggregationEnabled()) {
                             // CHECK THIS -- Assumption -- One end point per Dpn per transport zone
                             break;
@@ -193,8 +192,8 @@ public final class ItmInternalTunnelAddWorker {
     }
 
     private void wireUpBidirectionalTunnel(TypedReadWriteTransaction<Configuration> tx, TunnelEndPoints srcte,
-        TunnelEndPoints dstte, BigInteger srcDpnId, BigInteger dstDpnId, IMdsalApiManager mdsalManager)
-        throws ExecutionException, InterruptedException, OperationFailedException {
+            TunnelEndPoints dstte, Uint64 srcDpnId, Uint64 dstDpnId, IMdsalApiManager mdsalManager)
+                    throws ExecutionException, InterruptedException, OperationFailedException {
         // Setup the flow for LLDP monitoring -- PUNT TO CONTROLLER
 
         if (monitorProtocol.isAssignableFrom(TunnelMonitoringTypeLldp.class)) {
@@ -214,8 +213,8 @@ public final class ItmInternalTunnelAddWorker {
     }
 
     private boolean wireUp(TypedWriteTransaction<Configuration> tx, TunnelEndPoints srcte, TunnelEndPoints dstte,
-        BigInteger srcDpnId, BigInteger dstDpnId)
-        throws ExecutionException, InterruptedException, OperationFailedException {
+            Uint64 srcDpnId, Uint64 dstDpnId)
+                    throws ExecutionException, InterruptedException, OperationFailedException {
         // Wire Up logic
         LOG.trace("Wiring between source tunnel end points {}, destination tunnel end points {}", srcte, dstte);
         String interfaceName = srcte.getInterfaceName();
@@ -241,7 +240,7 @@ public final class ItmInternalTunnelAddWorker {
         return true;
     }
 
-    private void createTunnelInterface(TunnelEndPoints srcte, TunnelEndPoints dstte, BigInteger srcDpnId,
+    private void createTunnelInterface(TunnelEndPoints srcte, TunnelEndPoints dstte, Uint64 srcDpnId,
             Class<? extends TunnelTypeBase> tunType, String trunkInterfaceName, String parentInterfaceName) {
         String gateway = srcte.getIpAddress().getIpv4Address() != null ? "0.0.0.0" : "::";
         IpAddress gatewayIpObj = IpAddressBuilder.getDefaultInstance(gateway);
@@ -265,17 +264,8 @@ public final class ItmInternalTunnelAddWorker {
         ItmUtils.ITM_CACHE.addInterface(iface);
     }
 
-    private static void createLogicalTunnelInterface(BigInteger srcDpnId,
-            Class<? extends TunnelTypeBase> tunType, String interfaceName) {
-        Interface iface = ItmUtils.buildLogicalTunnelInterface(srcDpnId, interfaceName,
-                String.format("%s %s",ItmUtils.convertTunnelTypetoString(tunType), "Interface"), true);
-        InstanceIdentifier<Interface> trunkIdentifier = ItmUtils.buildId(interfaceName);
-        ITMBatchingUtils.update(trunkIdentifier, iface, ITMBatchingUtils.EntityType.DEFAULT_CONFIG);
-        ItmUtils.ITM_CACHE.addInterface(iface);
-    }
-
-    private static void createInternalTunnel(TypedWriteTransaction<Configuration> tx, BigInteger srcDpnId,
-        BigInteger dstDpnId, Class<? extends TunnelTypeBase> tunType, String trunkInterfaceName) {
+    private static void createInternalTunnel(TypedWriteTransaction<Configuration> tx, Uint64 srcDpnId,
+            Uint64 dstDpnId, Class<? extends TunnelTypeBase> tunType, String trunkInterfaceName) {
         InstanceIdentifier<InternalTunnel> path = InstanceIdentifier.create(TunnelList.class)
                 .child(InternalTunnel.class, new InternalTunnelKey(dstDpnId, srcDpnId, tunType));
         InternalTunnel tnl = ItmUtils.buildInternalTunnel(srcDpnId, dstDpnId, tunType, trunkInterfaceName);
@@ -286,7 +276,7 @@ public final class ItmInternalTunnelAddWorker {
         ItmUtils.ITM_CACHE.addInternalTunnel(tnl);
     }
 
-    private String createLogicalGroupTunnel(BigInteger srcDpnId, BigInteger dstDpnId) {
+    private String createLogicalGroupTunnel(Uint64 srcDpnId, Uint64 dstDpnId) {
         boolean tunnelAggregationEnabled = ItmTunnelAggregationHelper.isTunnelAggregationEnabled();
         if (!tunnelAggregationEnabled) {
             return null;
@@ -301,11 +291,11 @@ public final class ItmInternalTunnelAddWorker {
     private static class ItmTunnelAggregationWorker implements Callable<List<ListenableFuture<Void>>> {
 
         private final String logicTunnelGroupName;
-        private final BigInteger srcDpnId;
-        private final BigInteger dstDpnId;
+        private final Uint64 srcDpnId;
+        private final Uint64 dstDpnId;
         private final ManagedNewTransactionRunner txRunner;
 
-        ItmTunnelAggregationWorker(String logicGroupName, BigInteger srcDpnId, BigInteger dstDpnId, DataBroker broker) {
+        ItmTunnelAggregationWorker(String logicGroupName, Uint64 srcDpnId, Uint64 dstDpnId, DataBroker broker) {
             this.logicTunnelGroupName = logicGroupName;
             this.srcDpnId = srcDpnId;
             this.dstDpnId = dstDpnId;
@@ -328,11 +318,20 @@ public final class ItmInternalTunnelAddWorker {
                 }
             }));
         }
+
+        private static void createLogicalTunnelInterface(Uint64 srcDpnId,
+                Class<? extends TunnelTypeBase> tunType, String interfaceName) {
+            Interface iface = ItmUtils.buildLogicalTunnelInterface(srcDpnId, interfaceName,
+                    String.format("%s %s",ItmUtils.convertTunnelTypetoString(tunType), "Interface"), true);
+            InstanceIdentifier<Interface> trunkIdentifier = ItmUtils.buildId(interfaceName);
+            ITMBatchingUtils.update(trunkIdentifier, iface, ITMBatchingUtils.EntityType.DEFAULT_CONFIG);
+            ItmUtils.ITM_CACHE.addInterface(iface);
+        }
     }
 
-    private void createInternalDirectTunnels(TunnelEndPoints srcte, TunnelEndPoints dstte, BigInteger srcDpnId,
-        BigInteger dstDpnId, Class<? extends TunnelTypeBase> tunType, String trunkInterfaceName,
-        String parentInterfaceName) throws OperationFailedException {
+    private void createInternalDirectTunnels(TunnelEndPoints srcte, TunnelEndPoints dstte, Uint64 srcDpnId,
+            Uint64 dstDpnId, Class<? extends TunnelTypeBase> tunType, String trunkInterfaceName,
+            String parentInterfaceName) throws OperationFailedException {
         IpAddress gatewayIpObj = IpAddressBuilder.getDefaultInstance("0.0.0.0");
         IpAddress gwyIpAddress = gatewayIpObj;
         LOG.debug("Creating Trunk Interface with parameters trunk I/f Name - {}, parent I/f name - {}, source IP - {},"
@@ -359,7 +358,7 @@ public final class ItmInternalTunnelAddWorker {
         dpnsTepsBuilder.setSourceDpnId(srcDpnId);
         if (useOfTunnel) {
             String tunnelType = ItmUtils.convertTunnelTypetoString(srcte.getTunnelType());
-            ofTunnelPortName = directTunnelUtils.generateOfPortName(srcDpnId, tunnelType);
+            ofTunnelPortName = DirectTunnelUtils.generateOfPortName(srcDpnId, tunnelType);
             dpnsTepsBuilder.setOfTunnel(ofTunnelPortName);
         }
         RemoteDpnsBuilder remoteDpn = new RemoteDpnsBuilder();
@@ -393,7 +392,7 @@ public final class ItmInternalTunnelAddWorker {
             return;
         }
 
-        BigInteger dpId = parentRefs.getDatapathNodeIdentifier();
+        Uint64 dpId = parentRefs.getDatapathNodeIdentifier();
         if (dpId == null) {
             LOG.warn("dpid for interface: {} Not Found. No DPID provided. Creation of OF-Port not supported.",
                     iface.getName());
@@ -448,11 +447,11 @@ public final class ItmInternalTunnelAddWorker {
         }
     }
 
-    private boolean createTunnelPort(BigInteger dpId) {
+    private boolean createTunnelPort(Uint64 dpId) {
         if (!itmCfg.isUseOfTunnels()) {
             return true;
         }
-        return (ofEndPointCache.get(dpId) == null);
+        return ofEndPointCache.get(dpId) == null;
     }
 
     private void addPortToBridgeOnCallback(Interface iface, String portName, OvsBridgeRefEntry bridgeRefEntry) {
index ca1a5ea8a6fbb4cfd889b05b8ed9fdf585c85354..273f3696a18e7eefcb407fca40621132c5633daf 100644 (file)
@@ -12,7 +12,6 @@ import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -70,6 +69,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.node.TerminationPoint;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.OperationFailedException;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -165,7 +165,7 @@ public class ItmInternalTunnelDeleteWorker {
 
                                         } else {
                                             if (checkIfTrunkExists(dstDpn.getDPNID(), srcDpn.getDPNID(),
-                                                    srcTep.getTunnelType(), dataBroker)) {
+                                                srcTep.getTunnelType(), dataBroker)) {
                                                 // remove all trunk interfaces
                                                 LOG.trace("Invoking removeTrunkInterface between source TEP {} , "
                                                         + "Destination TEP {} ", srcTep, dstTep);
@@ -260,7 +260,7 @@ public class ItmInternalTunnelDeleteWorker {
     }
 
     private void removeTrunkInterface(TypedWriteTransaction<Configuration> tx, TunnelEndPoints srcTep,
-        TunnelEndPoints dstTep, BigInteger srcDpnId, BigInteger dstDpnId) {
+            TunnelEndPoints dstTep, Uint64 srcDpnId, Uint64 dstDpnId) {
         String trunkfwdIfName = ItmUtils.getTrunkInterfaceName(srcTep.getInterfaceName(),
                 srcTep.getIpAddress().stringValue(),
                 dstTep.getIpAddress().stringValue(),
@@ -306,14 +306,14 @@ public class ItmInternalTunnelDeleteWorker {
         removeLogicalGroupTunnel(dstDpnId, srcDpnId);
     }
 
-    private static boolean checkIfTrunkExists(BigInteger srcDpnId, BigInteger dstDpnId,
+    private static boolean checkIfTrunkExists(Uint64 srcDpnId, Uint64 dstDpnId,
                                               Class<? extends TunnelTypeBase> tunType, DataBroker dataBroker) {
         InstanceIdentifier<InternalTunnel> path = InstanceIdentifier.create(TunnelList.class)
                 .child(InternalTunnel.class, new InternalTunnelKey(dstDpnId, srcDpnId, tunType));
         return ItmUtils.read(LogicalDatastoreType.CONFIGURATION,path, dataBroker).isPresent();
     }
 
-    private void removeLogicalGroupTunnel(BigInteger srcDpnId, BigInteger dstDpnId) {
+    private void removeLogicalGroupTunnel(Uint64 srcDpnId, Uint64 dstDpnId) {
         boolean tunnelAggregationEnabled = ItmTunnelAggregationHelper.isTunnelAggregationEnabled();
         if (!tunnelAggregationEnabled) {
             return;
@@ -327,11 +327,11 @@ public class ItmInternalTunnelDeleteWorker {
     private static class ItmTunnelAggregationDeleteWorker implements Callable<List<ListenableFuture<Void>>> {
 
         private final String logicTunnelName;
-        private final BigInteger srcDpnId;
-        private final BigInteger dstDpnId;
+        private final Uint64 srcDpnId;
+        private final Uint64 dstDpnId;
         private final ManagedNewTransactionRunner txRunner;
 
-        ItmTunnelAggregationDeleteWorker(String groupName, BigInteger srcDpnId, BigInteger dstDpnId, DataBroker db) {
+        ItmTunnelAggregationDeleteWorker(String groupName, Uint64 srcDpnId, Uint64 dstDpnId, DataBroker db) {
             this.logicTunnelName = groupName;
             this.srcDpnId = srcDpnId;
             this.dstDpnId = dstDpnId;
@@ -380,7 +380,7 @@ public class ItmInternalTunnelDeleteWorker {
     }
 
     private void removeTunnelInterfaceFromOvsdb(TypedReadWriteTransaction<Configuration> tx, TunnelEndPoints srcTep,
-        TunnelEndPoints dstTep, BigInteger srcDpnId, BigInteger dstDpnId) {
+        TunnelEndPoints dstTep, Uint64 srcDpnId, Uint64 dstDpnId) {
         String trunkfwdIfName = ItmUtils.getTrunkInterfaceName(srcTep.getInterfaceName(),
                 srcTep.getIpAddress().getIpv4Address().getValue(),
                 dstTep.getIpAddress().getIpv4Address().getValue(),
@@ -413,8 +413,8 @@ public class ItmInternalTunnelDeleteWorker {
         }
     }
 
-    private boolean checkIfTepInterfaceExists(BigInteger srcDpnId, BigInteger dstDpnId) {
-        DpnTepInterfaceInfo dpnTepInterfaceInfo = dpnTepStateCache.getDpnTepInterface(srcDpnId,dstDpnId);
+    private boolean checkIfTepInterfaceExists(Uint64 srcDpnId, Uint64 dstDpnId) {
+        DpnTepInterfaceInfo dpnTepInterfaceInfo = dpnTepStateCache.getDpnTepInterface(srcDpnId, dstDpnId);
         if (dpnTepInterfaceInfo != null) {
             return dpnTepInterfaceInfo.getTunnelName() != null;
         }
@@ -422,7 +422,7 @@ public class ItmInternalTunnelDeleteWorker {
     }
 
     private void removeConfiguration(TypedReadWriteTransaction<Configuration> tx, Interface interfaceOld,
-        ParentRefs parentRefs) throws ExecutionException, InterruptedException, OperationFailedException {
+            ParentRefs parentRefs) throws ExecutionException, InterruptedException, OperationFailedException {
         IfTunnel ifTunnel = interfaceOld.augmentation(IfTunnel.class);
         if (ifTunnel != null) {
             // Check if the same transaction can be used across Config and operational shards
@@ -435,7 +435,7 @@ public class ItmInternalTunnelDeleteWorker {
             throws ExecutionException, InterruptedException, OperationFailedException {
 
         LOG.info("removing tunnel configuration for {}", interfaceName);
-        BigInteger dpId = null;
+        Uint64 dpId = null;
         if (parentRefs != null) {
             dpId = parentRefs.getDatapathNodeIdentifier();
         }
@@ -477,7 +477,7 @@ public class ItmInternalTunnelDeleteWorker {
         directTunnelUtils.removeLportTagInterfaceMap(interfaceName);
     }
 
-    private OvsdbBridgeRef getOvsdbBridgeRef(BigInteger dpId) throws ReadFailedException {
+    private OvsdbBridgeRef getOvsdbBridgeRef(Uint64 dpId) throws ReadFailedException {
         Optional<OvsBridgeRefEntry> ovsBridgeRefEntryOptional = ovsBridgeRefEntryCache.get(dpId);
         Optional<OvsBridgeEntry> ovsBridgeEntryOptional;
         OvsdbBridgeRef ovsdbBridgeRef = null;
@@ -500,7 +500,7 @@ public class ItmInternalTunnelDeleteWorker {
     }
 
     private void removeTunnelIngressFlow(TypedReadWriteTransaction<Configuration> tx, String interfaceName,
-        BigInteger dpId) throws ExecutionException, InterruptedException {
+            Uint64 dpId) throws ExecutionException, InterruptedException {
         directTunnelUtils.removeTunnelIngressFlow(tx, dpId, interfaceName);
     }
 
index f40f16f2fe84f7ff0e2152f5d4548cc2cce7c49d..095c1c953a0a6514b7319f2831a74ab992fc89e8 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.genius.itm.confighelpers;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -36,6 +35,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.teps.state.dpns.teps.RemoteDpns;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.dpn.teps.state.dpns.teps.RemoteDpnsBuilder;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -137,12 +137,13 @@ public class ItmMonitorWorker implements Callable<List<ListenableFuture<Void>>>
             }
             remoteDpnTepNewList.add(remoteDpnNew);
             LOG.debug("toggleMonitoring: RemoteDpnNew {}", remoteDpnNew);
-            directTunnelUtils.updateBfdConfiguration(dpnTeps.getSourceDpnId(), remoteDpnNew, ovsBridgeRefEntry);
+            directTunnelUtils.updateBfdConfiguration(dpnTeps.getSourceDpnId(),
+                                                        remoteDpnNew, ovsBridgeRefEntry);
         }
         updateMonitoringDS(dpnTeps.getSourceDpnId(), remoteDpnTepNewList, tx);
     }
 
-    public void updateMonitoringDS(BigInteger sourceDpnId,List<RemoteDpns> remoteDpnTepNewList,
+    public void updateMonitoringDS(Uint64 sourceDpnId, List<RemoteDpns> remoteDpnTepNewList,
                                    TypedWriteTransaction<Datastore.Configuration> tx) {
         InstanceIdentifier<DpnsTeps> iid = DirectTunnelUtils.createDpnTepsInstanceIdentifier(sourceDpnId);
         DpnsTepsBuilder builder = new DpnsTepsBuilder().withKey(new DpnsTepsKey(sourceDpnId))
index d3e3a061441188b85751f334e5f1c6eb601f61ec..20a19e0143aa4f0c705fda179565b393c92607d1 100644 (file)
@@ -8,13 +8,13 @@
 package org.opendaylight.genius.itm.confighelpers;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.Callable;
 import org.opendaylight.genius.infra.Datastore;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.Vteps;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -40,7 +40,7 @@ public class ItmTepsNotHostedMoveWorker implements Callable<List<ListenableFutur
         // Move TEP from TepsNotHosted list to NBI configured TZ.
         return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore
             .CONFIGURATION, tx -> OvsdbTepAddConfigHelper.addVtepInITMConfigDS(
-            vtepsList, null /*tepIpAddress*/, tzName, BigInteger.ZERO,
+            vtepsList, null /*tepIpAddress*/, tzName, Uint64.ZERO,
             false, tx)));
     }
 }
index f97268a5cd47a732c09579d47016b27091e8cd85..abf5d72d85bf80edb713e704a2f626b25f6c6304 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.genius.itm.confighelpers;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.Callable;
@@ -16,6 +15,7 @@ import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.genius.infra.Datastore;
 import org.opendaylight.genius.infra.ManagedNewTransactionRunner;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -25,11 +25,11 @@ public class ItmTepsNotHostedRemoveWorker implements Callable<List<ListenableFut
 
     private final IpAddress tepIpAddress;
     private final String tzName;
-    private final BigInteger dpnId;
+    private final Uint64 dpnId;
     private final DataBroker dataBroker;
     private final ManagedNewTransactionRunner txRunner;
 
-    public ItmTepsNotHostedRemoveWorker(String tzName, IpAddress tepIpAddress, BigInteger dpnId, DataBroker broker,
+    public ItmTepsNotHostedRemoveWorker(String tzName, IpAddress tepIpAddress, Uint64 dpnId, DataBroker broker,
                                         ManagedNewTransactionRunner txRunner) {
         this.tepIpAddress = tepIpAddress;
         this.tzName = tzName;
index c668d32a5f72a352cd944e4d502b0fd760da2691..d005effa682aae57a863f7f69d4b2e1c6366fcfe 100644 (file)
@@ -14,7 +14,7 @@ import static org.opendaylight.genius.infra.Datastore.OPERATIONAL;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -64,6 +64,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.Group
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -100,7 +101,7 @@ public class ItmTunnelAggregationHelper {
     }
 
     public void createLogicalTunnelSelectGroup(TypedWriteTransaction<Configuration> tx,
-        BigInteger srcDpnId, String interfaceName, int lportTag) {
+            Uint64 srcDpnId, String interfaceName, int lportTag) {
         Group group = prepareLogicalTunnelSelectGroup(interfaceName, lportTag);
         LOG.debug("MULTIPLE_VxLAN_TUNNELS: group id {} installed for {} srcDpnId {}",
                 group.getGroupId().getValue(), interfaceName, srcDpnId);
@@ -191,14 +192,15 @@ public class ItmTunnelAggregationHelper {
         if (listActionInfo.isEmpty()) {
             LOG.warn("MULTIPLE_VxLAN_TUNNELS: could not build Egress bucket for {}", interfaceName);
         }
-        Integer portWeight = ifTunnel.getWeight() != null ? ifTunnel.getWeight() : DEFAULT_WEIGHT;
+        Integer portWeight = ifTunnel.getWeight() != null ? ifTunnel.getWeight().toJava() : DEFAULT_WEIGHT;
         return MDSALUtil.buildBucket(MDSALUtil.buildActions(listActionInfo), portWeight, bucketId,
                                      portNumber, MDSALUtil.WATCH_GROUP);
     }
 
-    private void updateTunnelAggregationGroup(
-        TypedWriteTransaction<Configuration> tx,
-        InterfaceParentEntry parentEntry) {
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
+    private void updateTunnelAggregationGroup(TypedWriteTransaction<Configuration> tx,
+            InterfaceParentEntry parentEntry) {
         String logicTunnelName = parentEntry.getParentInterface();
         InternalTunnel logicInternalTunnel = ItmUtils.ITM_CACHE.getInternalTunnel(logicTunnelName);
         if (logicInternalTunnel == null) {
@@ -208,7 +210,7 @@ public class ItmTunnelAggregationHelper {
         InterfaceInfo ifLogicTunnel = interfaceManager.getInterfaceInfoFromOperationalDataStore(logicTunnelName);
         long groupId = ifLogicTunnel != null
                 ? interfaceManager.getLogicalTunnelSelectGroupId(ifLogicTunnel.getInterfaceTag()) : INVALID_ID;
-        BigInteger srcDpnId = logicInternalTunnel.getSourceDPN();
+        Uint64 srcDpnId = logicInternalTunnel.getSourceDPN();
         List<Bucket> listBuckets = new ArrayList<>();
         List<InterfaceChildEntry> interfaceChildEntries = parentEntry.getInterfaceChildEntry();
         if (interfaceChildEntries == null || interfaceChildEntries.isEmpty()) {
@@ -249,6 +251,8 @@ public class ItmTunnelAggregationHelper {
         }
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private void updateTunnelAggregationGroupBucket(Interface ifaceState, IfTunnel ifTunnel,
                                                     ParentRefs parentRefs, InterfaceParentEntry groupParentEntry,
                                                     int action, TypedReadWriteTransaction<Configuration> tx)
@@ -277,7 +281,7 @@ public class ItmTunnelAggregationHelper {
         }
         String lowerLayerIf = ifaceState.getLowerLayerIf().get(0); // openflow:dpnid:portnum
         String[] split = lowerLayerIf.split(IfmConstants.OF_URI_SEPARATOR);
-        BigInteger srcDpnId = new BigInteger(split[1]);
+        Uint64 srcDpnId = Uint64.valueOf(split[1]);
         int portNumber = Integer.parseInt(split[2]);
         if (action == ADD_TUNNEL) {
             if (!mdsalManager.groupExists(srcDpnId, groupId)) {
@@ -292,6 +296,8 @@ public class ItmTunnelAggregationHelper {
         }
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private void updateLogicalTunnelGroupOperStatus(String logicalTunnelIfaceName, Interface ifaceState,
             InterfaceParentEntry parentEntry, TypedReadWriteTransaction<Operational> tx)
         throws ExecutionException, InterruptedException {
@@ -357,6 +363,8 @@ public class ItmTunnelAggregationHelper {
         tx.merge(idLogicGroup, ifaceBuilderChild.build(), CREATE_MISSING_PARENTS);
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private void updateLogicalTunnelAdminStatus(String logicalTunnelName, Interface ifOrigin,
             Interface ifUpdated, InterfaceParentEntry parentEntry, TypedWriteTransaction<Operational> tx) {
 
@@ -374,6 +382,8 @@ public class ItmTunnelAggregationHelper {
         }
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private void updateInterfaceAdminStatus(String logicalTunnelName, Interface ifState,
         TypedWriteTransaction<Operational> tx) {
         InterfaceInfo ifLogicTunnelInfo = interfaceManager.getInterfaceInfoFromOperationalDataStore(logicalTunnelName);
index 68604e983b5fbaec5446690b57b3bc5cd84de905..965d1ef8d25745c51624f474264266115589259e 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.genius.itm.confighelpers;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -37,6 +36,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transp
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.VtepsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.VtepsKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -66,7 +66,7 @@ public final class OvsdbTepAddConfigHelper {
                                                                        boolean ofTunnel, DataBroker dataBroker,
                                                                        ManagedNewTransactionRunner txRunner) {
         List<ListenableFuture<Void>> futures = new ArrayList<>();
-        BigInteger dpnId = BigInteger.valueOf(0);
+        Uint64 dpnId = Uint64.ZERO;
 
         if (strDpnId != null && !strDpnId.isEmpty()) {
             dpnId = MDSALUtil.getDpnId(strDpnId);
@@ -102,7 +102,7 @@ public final class OvsdbTepAddConfigHelper {
         }
 
 
-        final BigInteger id = dpnId;
+        final Uint64 id = dpnId;
         final String name = tzName;
         futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION,
             tx -> addConfig(name, id, tepIpAddress, ofTunnel, tx)));
@@ -116,12 +116,12 @@ public final class OvsdbTepAddConfigHelper {
      * @param updatedVtepList updated Vteps list object which will have new TEP for addition
      * @param tepIpAddress TEP IP address in IpAddress object
      * @param tzName transport zone name in string
-     * @param dpid bridge datapath ID in BigInteger
+     * @param dpid bridge datapath ID
      * @param ofTunnel boolean flag for TEP to enable/disable of-tunnel feature on it
      * @param tx TypedWriteTransaction object
      */
     public static void addVtepInITMConfigDS(List<Vteps> updatedVtepList, IpAddress tepIpAddress, String tzName,
-                                            BigInteger dpid, boolean ofTunnel,
+                                            Uint64 dpid, boolean ofTunnel,
                                             TypedWriteTransaction<Datastore.Configuration> tx) {
         //Create TZ node path
         InstanceIdentifier<TransportZone> tranzportZonePath =
@@ -130,7 +130,7 @@ public final class OvsdbTepAddConfigHelper {
 
         // this check is needed to reuse same function from TransportZoneListener
         // when VTEP is moved from TepsNotHosted list to TZ configured from Northbound.
-        if (dpid.compareTo(BigInteger.ZERO) > 0) {
+        if (dpid.compareTo(Uint64.ZERO) > 0) {
             // create vtep
             VtepsKey vtepkey = new VtepsKey(dpid);
             Vteps vtepObj =
@@ -167,13 +167,13 @@ public final class OvsdbTepAddConfigHelper {
      *
      * @param tzName transport zone name in string
      * @param tepIpAddress TEP IP address in IpAddress object
-     * @param dpid bridge datapath ID in BigInteger
+     * @param dpid bridge datapath ID
      * @param ofTunnel boolean flag for TEP to enable/disable of-tunnel feature on it
      * @param dataBroker data broker handle to perform operations on operational datastore
      * @param tx TypedWriteTransaction object
      */
     protected static void addUnknownTzTepIntoTepsNotHosted(String tzName, IpAddress tepIpAddress,
-                                                           BigInteger dpid, boolean ofTunnel, DataBroker dataBroker,
+                                                           Uint64 dpid, boolean ofTunnel, DataBroker dataBroker,
                                                            TypedWriteTransaction<Datastore.Operational> tx) {
         List<UnknownVteps> vtepList;
         TepsInNotHostedTransportZone tepsInNotHostedTransportZone =
@@ -243,7 +243,7 @@ public final class OvsdbTepAddConfigHelper {
         tx.merge(tepsInNotHostedTransportZoneIid, updatedTzone, true);
     }
 
-    private static void addConfig(String tzName, BigInteger dpnId, IpAddress ipAdd,
+    private static void addConfig(String tzName, Uint64 dpnId, IpAddress ipAdd,
                                   boolean ofTunnel, TypedWriteTransaction<Datastore.Configuration> tx) {
         List<Vteps> vtepList = new ArrayList<>();
 
@@ -252,14 +252,14 @@ public final class OvsdbTepAddConfigHelper {
     }
 
     private static List<ListenableFuture<Void>> addUnknownTzTepIntoTepsNotHostedAndReturnFutures(String tzName,
-                                                         IpAddress tepIpAddress, BigInteger id, boolean ofTunnel,
+                                                         IpAddress tepIpAddress, Uint64 id, boolean ofTunnel,
                                                          DataBroker dataBroker, ManagedNewTransactionRunner txRunner) {
         return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.OPERATIONAL,
             tx -> addUnknownTzTepIntoTepsNotHosted(tzName, tepIpAddress, id, ofTunnel, dataBroker, tx)));
     }
 
     private static List<UnknownVteps> addVtepToUnknownVtepsList(List<UnknownVteps> updatedVtepList,
-                                                                IpAddress tepIpAddress, BigInteger dpid,
+                                                                IpAddress tepIpAddress, Uint64 dpid,
                                                                 boolean ofTunnel) {
         // create vtep
         UnknownVtepsKey vtepkey = new UnknownVtepsKey(dpid);
index 2a078f88707c2677a35af65012be4a2b7d874f40..f0d0515a43fd91362e042e264a2bdaf42672586d 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.genius.itm.confighelpers;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
@@ -32,6 +31,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transp
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.Vteps;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.VtepsKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -61,7 +61,7 @@ public final class OvsdbTepRemoveConfigHelper {
                                                                           DataBroker dataBroker,
                                                                           ManagedNewTransactionRunner txRunner) {
         List<ListenableFuture<Void>> futures = new ArrayList<>();
-        BigInteger dpnId = BigInteger.ZERO;
+        Uint64 dpnId = Uint64.ZERO;
         LOG.trace("Remove TEP: TEP-IP: {}, TZ name: {}, DPID: {}", tepIp, tzName, strDpnId);
 
         if (strDpnId != null && !strDpnId.isEmpty()) {
@@ -85,7 +85,7 @@ public final class OvsdbTepRemoveConfigHelper {
             // Case: Add TEP into corresponding TZ created from Northbound.
             transportZone = ItmUtils.getTransportZoneFromConfigDS(tzName, dataBroker);
             String name = tzName;
-            BigInteger id = dpnId;
+            Uint64 id = dpnId;
             if (transportZone == null) {
                 // Case: TZ is not configured from Northbound, then add TEP into
                 // "teps-in-not-hosted-transport-zone"
@@ -121,7 +121,7 @@ public final class OvsdbTepRemoveConfigHelper {
                 LOG.trace("Remove TEP from vtep list in subnet list of transport-zone.");
                 dpnId = oldVtep.getDpnId();
                 String name = tzName;
-                BigInteger id = dpnId;
+                Uint64 id = dpnId;
                 futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION,
                     tx -> removeVtepFromTZConfig(name, id, tx)));
             } else {
@@ -136,11 +136,11 @@ public final class OvsdbTepRemoveConfigHelper {
      * Removes the TEP from subnet list in the transport zone list
      * from ITM configuration Datastore by delete operation with write transaction.
      *
-     * @param dpnId bridge datapath ID in BigInteger
+     * @param dpnId bridge datapath ID
      * @param tzName transport zone name in string
      * @param tx TypedWriteTransaction object
      */
-    private static void removeVtepFromTZConfig(String tzName, BigInteger dpnId,
+    private static void removeVtepFromTZConfig(String tzName, Uint64 dpnId,
                                                TypedWriteTransaction<Datastore.Configuration> tx) {
 
         VtepsKey vtepkey = new VtepsKey(dpnId);
@@ -161,12 +161,12 @@ public final class OvsdbTepRemoveConfigHelper {
      *
      * @param tzName transport zone name in string
      * @param tepIpAddress TEP IP address in IpAddress object
-     * @param dpnId bridge datapath ID in BigInteger
+     * @param dpnId bridge datapath ID
      * @param dataBroker data broker handle to perform operations on operational datastore
      * @param tx TypedWriteTransaction object
      */
     public static void removeUnknownTzTepFromTepsNotHosted(String tzName, IpAddress tepIpAddress,
-                                                           BigInteger dpnId, DataBroker dataBroker,
+                                                           Uint64 dpnId, DataBroker dataBroker,
                                                            TypedWriteTransaction<Datastore.Operational> tx) {
         List<UnknownVteps> vtepList;
         TepsInNotHostedTransportZone tepsInNotHostedTransportZone =
@@ -182,12 +182,10 @@ public final class OvsdbTepRemoveConfigHelper {
             } else {
                 //  case: vtep list has elements
                 boolean vtepFound = false;
-                UnknownVteps foundVtep = null;
 
                 for (UnknownVteps vtep : vtepList) {
                     if (Objects.equals(vtep.getDpnId(), dpnId)) {
                         vtepFound = true;
-                        foundVtep = vtep;
                         break;
                     }
                 }
@@ -201,7 +199,6 @@ public final class OvsdbTepRemoveConfigHelper {
                     } else {
                         removeVtepFromTepsNotHosted(tzName, dpnId, tx);
                     }
-                    vtepList.remove(foundVtep);
                 }
             }
         }
@@ -212,10 +209,10 @@ public final class OvsdbTepRemoveConfigHelper {
      * from ITM operational Datastore by delete operation with write transaction.
      *
      * @param tzName transport zone name in string
-     * @param dpnId bridge datapath ID in BigInteger
+     * @param dpnId bridge datapath ID
      * @param tx TypedWriteTransaction object
      */
-    private static void removeVtepFromTepsNotHosted(String tzName, BigInteger dpnId,
+    private static void removeVtepFromTepsNotHosted(String tzName, Uint64 dpnId,
                                                     TypedWriteTransaction<Datastore.Operational> tx) {
         InstanceIdentifier<UnknownVteps> vtepPath = InstanceIdentifier.builder(NotHostedTransportZones.class)
                 .child(TepsInNotHostedTransportZone.class, new TepsInNotHostedTransportZoneKey(tzName))
index 68a3558b3eac30bc0f3135bfe1c654a868c5c613..b798ad394a12ad4120c3378b993cf96934fa9a0f 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.genius.itm.impl;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
@@ -63,6 +62,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.A
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.RemoveExternalTunnelEndpointInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.RemoveExternalTunnelEndpointInputBuilder;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -156,11 +157,11 @@ public class ItmProvider implements AutoCloseable, IITMProvider /*,ItmStateServi
         batchSize = ITMConstants.BATCH_SIZE;
         LOG.info("entered initialse");
         if (itmConfig.getBatchSize() != null) {
-            batchSize = itmConfig.getBatchSize();
+            batchSize = itmConfig.getBatchSize().toJava();
         }
         batchInterval = ITMConstants.PERIODICITY;
         if (itmConfig.getBatchInterval() != null) {
-            batchInterval = itmConfig.getBatchInterval();
+            batchInterval = itmConfig.getBatchInterval().toJava();
         }
         ITMBatchingUtils.registerWithBatchManager(this.dataBroker,this.batchSize,this.batchInterval);
     }
@@ -222,7 +223,7 @@ public class ItmProvider implements AutoCloseable, IITMProvider /*,ItmStateServi
         CreateIdPoolInput createPool = new CreateIdPoolInputBuilder()
                 .setPoolName(ITMConstants.ITM_IDPOOL_NAME)
                 .setLow(ITMConstants.ITM_IDPOOL_START)
-                .setHigh(new BigInteger(ITMConstants.ITM_IDPOOL_SIZE).longValue())
+                .setHigh(Uint32.valueOf(ITMConstants.ITM_IDPOOL_SIZE))
                 .build();
         try {
             ListenableFuture<RpcResult<CreateIdPoolOutput>> result = idManager.createIdPool(createPool);
@@ -258,8 +259,8 @@ public class ItmProvider implements AutoCloseable, IITMProvider /*,ItmStateServi
     }
 
     @Override
-    public void createLocalCache(BigInteger dpnId, String portName, Integer vlanId, String ipAddress, String subnetMask,
-        String gatewayIp, String transportZone) {
+    public void createLocalCache(Uint64 dpnId, String portName, Integer vlanId, String ipAddress, String subnetMask,
+            String gatewayIp, String transportZone) {
         if (tepCommandHelper != null) {
             try {
                 tepCommandHelper.createLocalCache(dpnId, ipAddress, transportZone);
@@ -316,8 +317,8 @@ public class ItmProvider implements AutoCloseable, IITMProvider /*,ItmStateServi
     }
 
     @Override
-    public void deleteVtep(BigInteger dpnId, String portName, Integer vlanId, String ipAddress, String subnetMask,
-        String gatewayIp, String transportZone) {
+    public void deleteVtep(Uint64 dpnId, String portName, Integer vlanId, String ipAddress, String subnetMask,
+            String gatewayIp, String transportZone) {
         try {
             tepCommandHelper.deleteVtep(dpnId, ipAddress, transportZone);
         } catch (TepException e) {
index 09606d65142c324c4e7c0d15caab7021ecd2f315..67947b56be5976d3917c3af636cd5b0fd4ba1b77 100644 (file)
@@ -18,7 +18,6 @@ import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.MoreExecutors;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import java.math.BigInteger;
 import java.net.InetAddress;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
@@ -127,7 +126,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.NodeKey;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
-
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -150,18 +149,20 @@ public final class ItmUtils {
 
     private static final BiMap<String,Class<? extends TunnelTypeBase>> STRING_CLASS_IMMUTABLE_BI_MAP =
             ImmutableBiMap.copyOf(TUNNEL_TYPE_MAP);
+    private static final Uint64 COOKIE_ITM_LLD = Uint64.fromLongBits(
+        ITMConstants.COOKIE_ITM.longValue() + ITMConstants.LLDP_SERVICE_ID).intern();
 
     private ItmUtils() {
     }
 
-    public static final FutureCallback<Void> DEFAULT_WRITE_CALLBACK = new FutureCallback<Void>() {
+    public static final FutureCallback<Void> DEFAULT_WRITE_CALLBACK = new FutureCallback<>() {
         @Override
         public void onSuccess(Void result) {
             LOG.debug("Success in Datastore write operation");
         }
 
         @Override
-        public void onFailure(@NonNull Throwable error) {
+        public void onFailure(Throwable error) {
             LOG.error("Error in Datastore write operation", error);
         }
     };
@@ -248,7 +249,7 @@ public final class ItmUtils {
 
     //ITM cleanup:portname and vlanId are removed, causes change in generated
     //interface name: This has upgrade impact
-    public static String getInterfaceName(final BigInteger datapathid, final String portName, final Integer vlanId) {
+    public static String getInterfaceName(final Uint64 datapathid, final String portName, final Integer vlanId) {
         return String.format("%s:%s:%s", datapathid, portName, vlanId);
     }
 
@@ -282,7 +283,7 @@ public final class ItmUtils {
         LOG.trace("Releasing Id for trunkInterface - {}", trunkInterfaceName);
     }
 
-    public static String getLogicalTunnelGroupName(BigInteger srcDpnId, BigInteger destDpnId) {
+    public static String getLogicalTunnelGroupName(Uint64 srcDpnId, Uint64 destDpnId) {
         String tunnelTypeStr = ITMConstants.TUNNEL_TYPE_LOGICAL_GROUP_VXLAN;
         String groupName = String.format("%s:%s:%s", srcDpnId.toString(), destDpnId.toString(), tunnelTypeStr);
         LOG.trace("logical tunnel group name is {}", groupName);
@@ -294,16 +295,16 @@ public final class ItmUtils {
         return IetfInetUtil.INSTANCE.inetAddressFor(ip);
     }
 
-    public static InstanceIdentifier<DPNTEPsInfo> getDpnTepInstance(BigInteger dpIdKey) {
+    public static InstanceIdentifier<DPNTEPsInfo> getDpnTepInstance(Uint64 dpIdKey) {
         return InstanceIdentifier.builder(DpnEndpoints.class).child(DPNTEPsInfo.class, new DPNTEPsInfoKey(dpIdKey))
                 .build();
     }
 
-    public static DPNTEPsInfo createDPNTepInfo(BigInteger dpId, List<TunnelEndPoints> endpoints) {
+    public static DPNTEPsInfo createDPNTepInfo(Uint64 dpId, List<TunnelEndPoints> endpoints) {
         return new DPNTEPsInfoBuilder().withKey(new DPNTEPsInfoKey(dpId)).setTunnelEndPoints(endpoints).build();
     }
 
-    public static TunnelEndPoints createTunnelEndPoints(BigInteger dpnId, IpAddress ipAddress, String portName,
+    public static TunnelEndPoints createTunnelEndPoints(Uint64 dpnId, IpAddress ipAddress, String portName,
                                                         boolean isOfTunnel, int vlanId, List<TzMembership> zones,
                                                         Class<? extends TunnelTypeBase>  tunnelType,
                                                         String tos) {
@@ -316,7 +317,7 @@ public final class ItmUtils {
                 .build();
     }
 
-    public static TunnelEndPoints createDummyTunnelEndPoints(BigInteger dpnID, IpAddress ipAddress, boolean ofTunnel,
+    public static TunnelEndPoints createDummyTunnelEndPoints(Uint64 dpnID, IpAddress ipAddress, boolean ofTunnel,
                                                              String tos, List<TzMembership> zones,
                                                              Class<? extends TunnelTypeBase>  tunnelType,
                                                              String port, int vlanID) {
@@ -335,7 +336,7 @@ public final class ItmUtils {
                 .child(Interface.class, new InterfaceKey(ifName)).augmentation(IfTunnel.class).build();
     }
 
-    public static Interface buildLogicalTunnelInterface(BigInteger dpn, String ifName, String desc, boolean enabled) {
+    public static Interface buildLogicalTunnelInterface(Uint64 dpn, String ifName, String desc, boolean enabled) {
         InterfaceBuilder builder = new InterfaceBuilder().withKey(new InterfaceKey(ifName)).setName(ifName)
                 .setDescription(desc).setEnabled(enabled).setType(Tunnel.class);
         ParentRefs parentRefs = new ParentRefsBuilder().setDatapathNodeIdentifier(dpn).build();
@@ -350,7 +351,7 @@ public final class ItmUtils {
         return builder.build();
     }
 
-    public static Interface buildTunnelInterface(BigInteger dpn, String ifName, String desc, boolean enabled,
+    public static Interface buildTunnelInterface(Uint64 dpn, String ifName, String desc, boolean enabled,
                                                  Class<? extends TunnelTypeBase> tunType, IpAddress localIp,
                                                  IpAddress remoteIp, boolean internal,
                                                  Boolean monitorEnabled,
@@ -363,7 +364,7 @@ public final class ItmUtils {
                 tunOptions);
     }
 
-    public static Interface buildTunnelInterface(BigInteger dpn, String ifName, String desc, boolean enabled,
+    public static Interface buildTunnelInterface(Uint64 dpn, String ifName, String desc, boolean enabled,
                                                  Class<? extends TunnelTypeBase> tunType, IpAddress localIp,
                                                  IpAddress remoteIp, boolean internal,
                                                  Boolean monitorEnabled,
@@ -417,7 +418,7 @@ public final class ItmUtils {
         return builder.build();
     }
 
-    public static InternalTunnel buildInternalTunnel(BigInteger srcDpnId, BigInteger dstDpnId,
+    public static InternalTunnel buildInternalTunnel(Uint64 srcDpnId, Uint64 dstDpnId,
                                                      Class<? extends TunnelTypeBase> tunType,
                                                      String trunkInterfaceName) {
         return new InternalTunnelBuilder().withKey(new InternalTunnelKey(dstDpnId, srcDpnId, tunType))
@@ -441,10 +442,10 @@ public final class ItmUtils {
                 .replace("-", "");
     }
 
-    public static List<DPNTEPsInfo> getDpnTepListFromDpnId(DPNTEPsInfoCache dpnTEPsInfoCache, List<BigInteger> dpnIds) {
+    public static List<DPNTEPsInfo> getDpnTepListFromDpnId(DPNTEPsInfoCache dpnTEPsInfoCache, List<Uint64> dpnIds) {
         Collection<DPNTEPsInfo> meshedDpnList = dpnTEPsInfoCache.getAllPresent();
         List<DPNTEPsInfo> cfgDpnList = new ArrayList<>();
-        for (BigInteger dpnId : dpnIds) {
+        for (Uint64 dpnId : dpnIds) {
             for (DPNTEPsInfo teps : meshedDpnList) {
                 if (dpnId.equals(teps.getDPNID())) {
                     cfgDpnList.add(teps);
@@ -457,7 +458,7 @@ public final class ItmUtils {
 
     @SuppressWarnings("checkstyle:IllegalCatch")
     public static void addTerminatingServiceTable(TypedReadWriteTransaction<Configuration> tx,
-                                                  BigInteger dpnId, IMdsalApiManager mdsalManager) {
+                                                  Uint64 dpnId, IMdsalApiManager mdsalManager) {
         LOG.trace("Installing PUNT to Controller flow in DPN {} ", dpnId);
         List<ActionInfo> listActionInfo = new ArrayList<>();
         listActionInfo.add(new ActionPuntToController());
@@ -465,7 +466,7 @@ public final class ItmUtils {
         try {
             List<MatchInfo> mkMatches = new ArrayList<>();
 
-            mkMatches.add(new MatchTunnelId(BigInteger.valueOf(ITMConstants.LLDP_SERVICE_ID)));
+            mkMatches.add(new MatchTunnelId(Uint64.valueOf(ITMConstants.LLDP_SERVICE_ID)));
 
             List<InstructionInfo> mkInstructions = new ArrayList<>();
             mkInstructions.add(new InstructionApplyActions(listActionInfo));
@@ -473,9 +474,8 @@ public final class ItmUtils {
             FlowEntity terminatingServiceTableFlowEntity = MDSALUtil
                     .buildFlowEntity(dpnId, NwConstants.INTERNAL_TUNNEL_TABLE,
                             getFlowRef(NwConstants.INTERNAL_TUNNEL_TABLE, ITMConstants.LLDP_SERVICE_ID),
-                            5, String.format("%s:%d","ITM Flow Entry ", ITMConstants.LLDP_SERVICE_ID), 0, 0,
-                            ITMConstants.COOKIE_ITM.add(BigInteger.valueOf(ITMConstants.LLDP_SERVICE_ID)),
-                            mkMatches, mkInstructions);
+                            5, String.format("%s:%d","ITM Flow Entry :", ITMConstants.LLDP_SERVICE_ID), 0, 0,
+                            COOKIE_ITM_LLD, mkMatches, mkInstructions);
             mdsalManager.addFlow(tx, terminatingServiceTableFlowEntity);
         } catch (Exception e) {
             LOG.error("Error while setting up Table 36 for {}", dpnId, e);
@@ -484,7 +484,7 @@ public final class ItmUtils {
 
     @SuppressWarnings("checkstyle:IllegalCatch")
     public static void removeTerminatingServiceTable(TypedReadWriteTransaction<Configuration> tx,
-                                                     BigInteger dpnId, IMdsalApiManager mdsalManager) {
+                                                     Uint64 dpnId, IMdsalApiManager mdsalManager) {
         LOG.trace("Removing PUNT to Controller flow in DPN {} ", dpnId);
 
         try {
@@ -596,7 +596,7 @@ public final class ItmUtils {
         return new ExternalTunnelKey(dst, src, tunType);
     }
 
-    public static List<TunnelEndPoints> getTEPsForDpn(BigInteger srcDpn, Collection<DPNTEPsInfo> dpnList) {
+    public static List<TunnelEndPoints> getTEPsForDpn(Uint64 srcDpn, Collection<DPNTEPsInfo> dpnList) {
         for (DPNTEPsInfo dpn : dpnList) {
             if (Objects.equals(dpn.getDPNID(), srcDpn)) {
                 return new ArrayList<>(dpn.nonnullTunnelEndPoints());
@@ -650,7 +650,7 @@ public final class ItmUtils {
         if (externalTunnels !=  null) {
             for (ExternalTunnel tunnel : externalTunnels) {
                 String tunnelInterfaceName = tunnel.getTunnelInterfaceName();
-                if (tunnelInterfaceName != null && (tunnelInterfaceName.equalsIgnoreCase(interfaceName))) {
+                if (tunnelInterfaceName != null && tunnelInterfaceName.equalsIgnoreCase(interfaceName)) {
                     LOG.trace("getExternalTunnelFromDS tunnelInterfaceName: {} ", tunnelInterfaceName);
                     return tunnel;
                 }
@@ -918,7 +918,7 @@ public final class ItmUtils {
     }
 
     @NonNull
-    public static List<TzMembership> getOriginalTzMembership(TunnelEndPoints srcTep, BigInteger dpnId,
+    public static List<TzMembership> getOriginalTzMembership(TunnelEndPoints srcTep, Uint64 dpnId,
                                                              Collection<DPNTEPsInfo> meshedDpnList) {
         LOG.trace("Original Membership for source DPN {}, source TEP {}", dpnId, srcTep);
         for (DPNTEPsInfo dstDpn : meshedDpnList) {
@@ -994,7 +994,7 @@ public final class ItmUtils {
     }
 
     @NonNull
-    public static  Optional<InternalTunnel> getInternalTunnelFromDS(BigInteger srcDpn, BigInteger destDpn,
+    public static  Optional<InternalTunnel> getInternalTunnelFromDS(Uint64 srcDpn, Uint64 destDpn,
                                                                     Class<? extends TunnelTypeBase> type,
                                                                     DataBroker dataBroker) {
         InstanceIdentifier<InternalTunnel> pathLogicTunnel = InstanceIdentifier.create(TunnelList.class)
@@ -1108,8 +1108,8 @@ public final class ItmUtils {
         return tunType ;
     }
 
-    public static List<BigInteger> getDpIdFromTransportzone(DataBroker dataBroker, String tzone) {
-        List<BigInteger> listOfDpId = new ArrayList<>();
+    public static List<Uint64> getDpIdFromTransportzone(DataBroker dataBroker, String tzone) {
+        List<Uint64> listOfDpId = new ArrayList<>();
         InstanceIdentifier<TransportZone> path = InstanceIdentifier.builder(TransportZones.class)
                 .child(TransportZone.class, new TransportZoneKey(tzone)).build();
         Optional<TransportZone> transportZoneOptional = ItmUtils.read(LogicalDatastoreType.CONFIGURATION,
index fc80cdddb0bc8e932fb29433d886aa9fdb817880..ec9c300ef857456a1f53bd3f0dd9e46aa80b7bf2 100644 (file)
@@ -76,7 +76,7 @@ public class TunnelMonitoringConfig implements AutoCloseable {
         try {
             Optional<TunnelMonitorInterval> maybeTunnelInterval =
                     tunnelMonitorIntervalCache.get(TUNNEL_MONITOR_INTERVAL_PATH);
-            return maybeTunnelInterval.isPresent() ? maybeTunnelInterval.get().getInterval()
+            return maybeTunnelInterval.isPresent() ? maybeTunnelInterval.get().getInterval().toJava()
                     : ITMConstants.BFD_DEFAULT_MONITOR_INTERVAL;
         } catch (ReadFailedException e) {
             LOG.warn("Read of {} failed", TUNNEL_MONITOR_INTERVAL_PATH, e);
index e60b41aec3b067ba09cf42f92ec56103fd4ba4f9..25d13ae516e117484d6a19ff08cc3aa4899f3a3a 100644 (file)
@@ -9,6 +9,7 @@ package org.opendaylight.genius.itm.itmdirecttunnels.listeners;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.ListenableFuture;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.Callable;
@@ -118,6 +119,8 @@ public class TerminationPointStateListener
         }
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private List<ListenableFuture<Void>> updateTunnelState(OvsdbTerminationPointAugmentation terminationPointNew) {
         final String interfaceName = terminationPointNew.getName();
         final Interface.OperStatus interfaceBfdStatus = getTunnelOpState(terminationPointNew);
index fb6d3864144d65192647500827528705f90aa826..0d4efde69f23d3b5cb8f9faa1202ed570035e41b 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.genius.itm.itmdirecttunnels.listeners;
 import static org.opendaylight.genius.infra.Datastore.OPERATIONAL;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -19,7 +19,6 @@ import java.util.Objects;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
-
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -59,6 +58,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -196,8 +196,8 @@ public class TunnelInventoryStateListener extends
                 return;
             } else {
                 for (Map.Entry<String, NodeConnectorInfo> entry : meshedMap.entrySet()) {
-                    DpnTepInterfaceInfo infInfoForward = dpnTepStateCache.getDpnTepInterface(new BigInteger(srcDpn),
-                            new BigInteger(entry.getKey()));
+                    DpnTepInterfaceInfo infInfoForward = dpnTepStateCache.getDpnTepInterface(Uint64.valueOf(srcDpn),
+                        Uint64.valueOf(entry.getKey()));
                     if (infInfoForward == null) {
                         unprocessedNCCache.add(srcDpn + ":" + entry.getKey(),
                                 new TunnelStateInfoBuilder().setNodeConnectorInfo(nodeConnectorInfo).build());
@@ -206,7 +206,7 @@ public class TunnelInventoryStateListener extends
                     }
 
                     DpnTepInterfaceInfo infInfoReverse = dpnTepStateCache.getDpnTepInterface(
-                            new BigInteger(entry.getKey()), new BigInteger(srcDpn));
+                        Uint64.valueOf(entry.getKey()), Uint64.valueOf(srcDpn));
 
                     if (infInfoReverse == null) {
                         unprocessedNCCache.add(entry.getKey() + ":" + srcDpn,
@@ -244,9 +244,9 @@ public class TunnelInventoryStateListener extends
         if (DirectTunnelUtils.TUNNEL_PORT_PREDICATE.test(portName) && dpnTepStateCache.isInternal(portName)) {
             tunnelEndPtInfo = dpnTepStateCache.getTunnelEndPointInfoFromCache(portName);
             TunnelStateInfoBuilder builder = new TunnelStateInfoBuilder().setNodeConnectorInfo(nodeConnectorInfo);
-            dpntePsInfoCache.getDPNTepFromDPNId(new BigInteger(tunnelEndPtInfo.getSrcEndPointInfo()))
+            dpntePsInfoCache.getDPNTepFromDPNId(Uint64.valueOf(tunnelEndPtInfo.getSrcEndPointInfo()))
                 .ifPresent(builder::setSrcDpnTepsInfo);
-            dpntePsInfoCache.getDPNTepFromDPNId(new BigInteger(tunnelEndPtInfo.getDstEndPointInfo()))
+            dpntePsInfoCache.getDPNTepFromDPNId(Uint64.valueOf(tunnelEndPtInfo.getDstEndPointInfo()))
                 .ifPresent(builder::setDstDpnTepsInfo);
             tunnelStateInfo = builder.setTunnelEndPointInfo(tunnelEndPtInfo)
                 .setDpnTepInterfaceInfo(dpnTepStateCache.getTunnelFromCache(portName)).build();
@@ -276,6 +276,8 @@ public class TunnelInventoryStateListener extends
         }
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private List<ListenableFuture<Void>> updateState(String interfaceName,
         FlowCapableNodeConnector flowCapableNodeConnectorNew,
         FlowCapableNodeConnector flowCapableNodeConnectorOld) {
@@ -376,6 +378,8 @@ public class TunnelInventoryStateListener extends
         return !dpnTepInterfaceInfo.isMonitoringEnabled() && modifyOpState(dpnTepInterfaceInfo, opStateModified);
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private List<ListenableFuture<Void>> removeInterfaceStateConfiguration(NodeConnectorId nodeConnectorId,
                                                                            String interfaceName,
                                                                            FlowCapableNodeConnector
@@ -383,7 +387,7 @@ public class TunnelInventoryStateListener extends
 
 
         List<ListenableFuture<Void>> futures = new ArrayList<>();
-        BigInteger dpId = DirectTunnelUtils.getDpnFromNodeConnectorId(nodeConnectorId);
+        Uint64 dpId = DirectTunnelUtils.getDpnFromNodeConnectorId(nodeConnectorId);
         // In a genuine port delete scenario, the reason will be there in the incoming event, for all remaining
         // cases treat the event as DPN disconnect, if old and new ports are same. Else, this is a VM migration
         // scenario, and should be treated as port removal.
@@ -395,12 +399,12 @@ public class TunnelInventoryStateListener extends
                 LOG.debug("Received remove state for dpid {}", dpId.intValue());
                 for (Map.Entry<String, NodeConnectorInfo> entry : meshedMap.entrySet()) {
                     if (!dpId.toString().equals(entry.getKey())) {
-                        String fwdTunnel = dpnTepStateCache.getDpnTepInterface(dpId, new BigInteger(entry.getKey()))
+                        String fwdTunnel = dpnTepStateCache.getDpnTepInterface(dpId, Uint64.valueOf(entry.getKey()))
                                 .getTunnelName();
                         LOG.debug("Fwd Tunnel name for {} : {} is {}", dpId.intValue(), entry.getKey(), fwdTunnel);
                         futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(OPERATIONAL,
                             tx -> updateInterfaceStateOnNodeRemove(tx, fwdTunnel, flowCapableNodeConnector)));
-                        String bwdTunnel = dpnTepStateCache.getDpnTepInterface(new BigInteger(entry.getKey()), dpId)
+                        String bwdTunnel = dpnTepStateCache.getDpnTepInterface(Uint64.valueOf(entry.getKey()), dpId)
                                 .getTunnelName();
                         LOG.debug("Bwd Tunnel name for {} : {} is {}", entry.getKey(), dpId.intValue(), bwdTunnel);
                         futures.add(txRunner.callWithNewWriteOnlyTransactionAndSubmit(OPERATIONAL,
@@ -421,7 +425,7 @@ public class TunnelInventoryStateListener extends
         return futures;
     }
 
-    private class TunnelInterfaceStateUpdateWorker implements Callable {
+    private class TunnelInterfaceStateUpdateWorker implements Callable<List<ListenableFuture<Void>>> {
         private final InstanceIdentifier<FlowCapableNodeConnector> key;
         private final FlowCapableNodeConnector fcNodeConnectorOld;
         private final FlowCapableNodeConnector fcNodeConnectorNew;
@@ -437,7 +441,7 @@ public class TunnelInventoryStateListener extends
         }
 
         @Override
-        public Object call() {
+        public List<ListenableFuture<Void>> call() {
             // If another renderer(for eg : OVS) needs to be supported, check can be performed here
             // to call the respective helpers.
             return updateState(interfaceName, fcNodeConnectorNew, fcNodeConnectorOld);
@@ -450,7 +454,7 @@ public class TunnelInventoryStateListener extends
         }
     }
 
-    private class TunnelInterfaceStateRemoveWorker implements Callable {
+    private class TunnelInterfaceStateRemoveWorker implements Callable<List<ListenableFuture<Void>>> {
         private final NodeConnectorId nodeConnectorId;
         private final FlowCapableNodeConnector flowCapableNodeConnector;
         private final String interfaceName;
@@ -464,7 +468,7 @@ public class TunnelInventoryStateListener extends
         }
 
         @Override
-        public Object call() {
+        public List<ListenableFuture<Void>> call() {
             // If another renderer(for eg : OVS) needs to be supported, check can be performed here
             // to call the respective helpers.
             return removeInterfaceStateConfiguration(nodeConnectorId, interfaceName, flowCapableNodeConnector);
index 2b3e5f36c598996ccfb91db0720967563eb547ab..14b5d9f302410d489b0168d2c9c1cd9cdf819d54 100644 (file)
@@ -9,7 +9,7 @@ package org.opendaylight.genius.itm.itmdirecttunnels.listeners;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.Callable;
@@ -40,6 +40,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -128,13 +129,15 @@ public class TunnelTopologyStateListener extends AbstractClusteredSyncDataTreeCh
      * This code is used to handle only a dpnId change scenario for a particular change,
      * which is not expected to happen in usual cases.
      */
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private List<ListenableFuture<Void>> updateOvsBridgeRefEntry(InstanceIdentifier<OvsdbBridgeAugmentation> bridgeIid,
-                                                                OvsdbBridgeAugmentation bridgeNew,
-                                                                OvsdbBridgeAugmentation bridgeOld) {
+                                                                 OvsdbBridgeAugmentation bridgeNew,
+                                                                 OvsdbBridgeAugmentation bridgeOld) {
 
         return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(tx -> {
-            BigInteger dpnIdNew = directTunnelUtils.getDpnId(bridgeNew.getDatapathId());
-            BigInteger dpnIdOld = directTunnelUtils.getDpnId(bridgeOld.getDatapathId());
+            Uint64 dpnIdNew = directTunnelUtils.getDpnId(bridgeNew.getDatapathId());
+            Uint64 dpnIdOld = directTunnelUtils.getDpnId(bridgeOld.getDatapathId());
 
             LOG.debug("updating bridge references for bridge: {}, dpnNew: {}, dpnOld: {}", bridgeNew,
                     dpnIdNew, dpnIdOld);
@@ -153,10 +156,9 @@ public class TunnelTopologyStateListener extends AbstractClusteredSyncDataTreeCh
         }));
     }
 
-    public List<ListenableFuture<Void>> removePortFromBridge(InstanceIdentifier<OvsdbBridgeAugmentation>
-                                                                            bridgeIid,
-                                                                    OvsdbBridgeAugmentation bridgeOld) {
-        BigInteger dpnId = directTunnelUtils.getDpnId(bridgeOld.getDatapathId());
+    public List<ListenableFuture<Void>> removePortFromBridge(InstanceIdentifier<OvsdbBridgeAugmentation> bridgeIid,
+                                                             OvsdbBridgeAugmentation bridgeOld) {
+        Uint64 dpnId = directTunnelUtils.getDpnId(bridgeOld.getDatapathId());
         if (dpnId == null) {
             LOG.warn("Got Null DPID for Bridge: {}", bridgeOld);
             return Collections.emptyList();
@@ -173,8 +175,7 @@ public class TunnelTopologyStateListener extends AbstractClusteredSyncDataTreeCh
         }));
     }
 
-    private void createOvsBridgeRefEntry(BigInteger dpnId, InstanceIdentifier<?> bridgeIid,
-                                               WriteTransaction tx) {
+    private void createOvsBridgeRefEntry(Uint64 dpnId, InstanceIdentifier<?> bridgeIid, WriteTransaction tx) {
         LOG.debug("Creating bridge ref entry for dpn: {} bridge: {}",
                 dpnId, bridgeIid);
         OvsBridgeRefEntryKey bridgeRefEntryKey = new OvsBridgeRefEntryKey(dpnId);
@@ -186,8 +187,7 @@ public class TunnelTopologyStateListener extends AbstractClusteredSyncDataTreeCh
         tx.put(LogicalDatastoreType.OPERATIONAL, bridgeEntryId, tunnelDpnBridgeEntryBuilder.build(), true);
     }
 
-    private void deleteOvsBridgeRefEntry(BigInteger dpnId,
-                                               WriteTransaction tx) {
+    private void deleteOvsBridgeRefEntry(Uint64 dpnId, WriteTransaction tx) {
         LOG.debug("Deleting bridge ref entry for dpn: {}",
                 dpnId);
         OvsBridgeRefEntryKey bridgeRefEntryKey = new OvsBridgeRefEntryKey(dpnId);
@@ -196,7 +196,7 @@ public class TunnelTopologyStateListener extends AbstractClusteredSyncDataTreeCh
         tx.delete(LogicalDatastoreType.OPERATIONAL, bridgeEntryId);
     }
 
-    private void addBridgeRefToBridgeTunnelEntry(BigInteger dpId, OvsdbBridgeRef ovsdbBridgeRef, WriteTransaction tx) {
+    private void addBridgeRefToBridgeTunnelEntry(Uint64 dpId, OvsdbBridgeRef ovsdbBridgeRef, WriteTransaction tx) {
         OvsBridgeEntryKey bridgeEntryKey = new OvsBridgeEntryKey(dpId);
         InstanceIdentifier<OvsBridgeEntry> bridgeEntryInstanceIdentifier =
                 DirectTunnelUtils.getOvsBridgeEntryIdentifier(bridgeEntryKey);
@@ -253,7 +253,7 @@ public class TunnelTopologyStateListener extends AbstractClusteredSyncDataTreeCh
                 return Collections.emptyList();
             }
 
-            BigInteger dpnId = directTunnelUtils.getDpnId(bridgeNew.getDatapathId());
+            Uint64 dpnId = directTunnelUtils.getDpnId(bridgeNew.getDatapathId());
             LOG.debug("adding bridge references for bridge: {}, dpn: {}", bridgeNew, dpnId);
             EVENT_LOGGER.debug("TunnelTopologyState, ADD bridge {} for {}", bridgeNew.getBridgeName(), dpnId);
 
index 43c1a331d7969cba29419b3b616169ecee494796..c927ed18845b716bbbea755c2a5c9098395fa927 100644 (file)
@@ -11,7 +11,6 @@ import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableMap.Builder;
 import com.google.common.util.concurrent.ListenableFuture;
 import edu.umd.cs.findbugs.annotations.CheckReturnValue;
-import java.math.BigInteger;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -118,6 +117,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.OperationFailedException;
 import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -206,19 +206,19 @@ public final class DirectTunnelUtils {
         return tunnelLocks.acquire(tunnelName);
     }
 
-    public BigInteger getDpnId(DatapathId datapathId) {
+    public Uint64 getDpnId(DatapathId datapathId) {
         if (datapathId != null) {
             String dpIdStr = datapathId.getValue().replace(":", "");
-            return new BigInteger(dpIdStr, 16);
+            return Uint64.valueOf(dpIdStr, 16);
         }
         return null;
     }
 
-    public static BigInteger getDpnFromNodeConnectorId(NodeConnectorId portId) {
+    public static Uint64 getDpnFromNodeConnectorId(NodeConnectorId portId) {
         /*
          * NodeConnectorId is of form 'openflow:dpnid:portnum'
          */
-        return new BigInteger(portId.getValue().split(ITMConstants.OF_URI_SEPARATOR)[1]);
+        return Uint64.valueOf(portId.getValue().split(ITMConstants.OF_URI_SEPARATOR)[1]);
     }
 
     public static long getPortNumberFromNodeConnectorId(NodeConnectorId portId) {
@@ -262,7 +262,7 @@ public final class DirectTunnelUtils {
                 .child(OvsBridgeRefEntry.class, bridgeRefEntryKey).build();
     }
 
-    public static InstanceIdentifier<DpnsTeps> createDpnTepsInstanceIdentifier(BigInteger sourceDpnId) {
+    public static InstanceIdentifier<DpnsTeps> createDpnTepsInstanceIdentifier(Uint64 sourceDpnId) {
         return InstanceIdentifier.builder(DpnTepsState.class).child(DpnsTeps.class,
             new DpnsTepsKey(sourceDpnId)).build();
     }
@@ -360,7 +360,7 @@ public final class DirectTunnelUtils {
         }
     }
 
-    public static void createBridgeTunnelEntryInConfigDS(BigInteger dpId, String childInterface) {
+    public static void createBridgeTunnelEntryInConfigDS(Uint64 dpId, String childInterface) {
         OvsBridgeEntryKey bridgeEntryKey = new OvsBridgeEntryKey(dpId);
         OvsBridgeTunnelEntryKey bridgeTunnelEntryKey = new OvsBridgeTunnelEntryKey(childInterface);
         InstanceIdentifier<OvsBridgeTunnelEntry> bridgeTunnelEntryIid =
@@ -370,7 +370,7 @@ public final class DirectTunnelUtils {
         ITMBatchingUtils.write(bridgeTunnelEntryIid, entryBuilder.build(), ITMBatchingUtils.EntityType.DEFAULT_CONFIG);
     }
 
-    public void addTunnelIngressFlow(TypedWriteTransaction<Configuration> tx, BigInteger dpnId, long portNo,
+    public void addTunnelIngressFlow(TypedWriteTransaction<Configuration> tx, Uint64 dpnId, long portNo,
                                      String interfaceName, int ifIndex, Ipv4Address ipAddress) {
         LOG.debug("Adding tunnel ingress flow for {}", interfaceName);
         List<MatchInfoBase> matches = new ArrayList<>();
@@ -380,8 +380,9 @@ public final class DirectTunnelUtils {
         if (itmConfig.isUseOfTunnels()) {
             matches.add(new NxMatchTunnelSourceIp(ipAddress));
         }
-        mkInstructions.add(new InstructionWriteMetadata(MetaDataUtil.getLportTagMetaData(ifIndex)
-            .or(BigInteger.ONE), MetaDataUtil.METADATA_MASK_LPORT_TAG_SH_FLAG));
+        mkInstructions.add(new InstructionWriteMetadata(
+            Uint64.fromLongBits(MetaDataUtil.getLportTagMetaData(ifIndex).longValue() | 1L),
+            MetaDataUtil.METADATA_MASK_LPORT_TAG_SH_FLAG));
         short tableId = NwConstants.INTERNAL_TUNNEL_TABLE;
         mkInstructions.add(new InstructionGotoTable(tableId));
 
@@ -394,7 +395,7 @@ public final class DirectTunnelUtils {
         mdsalApiManager.addFlow(tx, flowEntity);
     }
 
-    public void removeTunnelIngressFlow(TypedReadWriteTransaction<Configuration> tx, BigInteger dpnId,
+    public void removeTunnelIngressFlow(TypedReadWriteTransaction<Configuration> tx, Uint64 dpnId,
         String interfaceName) throws ExecutionException, InterruptedException {
         LOG.debug("Removing tunnel ingress flow for {}", interfaceName);
         String flowRef =
@@ -403,7 +404,7 @@ public final class DirectTunnelUtils {
         mdsalApiManager.removeFlow(tx, dpnId, flowRef, NwConstants.VLAN_INTERFACE_INGRESS_TABLE);
     }
 
-    public void addTunnelEgressFlow(TypedWriteTransaction<Configuration> tx, BigInteger dpnId, String portNo,
+    public void addTunnelEgressFlow(TypedWriteTransaction<Configuration> tx, Uint64 dpnId, String portNo,
                                     int dstId, String interfaceName, IpAddress dstIp) {
         LOG.debug("add tunnel egress flow for {}", interfaceName);
         List<MatchInfoBase> matches = new ArrayList<>();
@@ -422,7 +423,7 @@ public final class DirectTunnelUtils {
         mdsalApiManager.addFlow(tx, dpnId, egressFlow);
     }
 
-    public void removeTunnelEgressFlow(TypedReadWriteTransaction<Configuration> tx, BigInteger dpnId,
+    public void removeTunnelEgressFlow(TypedReadWriteTransaction<Configuration> tx, Uint64 dpnId,
                                        String interfaceName) throws ExecutionException, InterruptedException {
         LOG.debug("remove tunnel egress flow for {}", interfaceName);
         String flowRef =
@@ -430,7 +431,7 @@ public final class DirectTunnelUtils {
         mdsalApiManager.removeFlow(tx, dpnId, flowRef, NwConstants.EGRESS_TUNNEL_TABLE);
     }
 
-    private String getTunnelInterfaceFlowRef(BigInteger dpnId, short tableId, String ifName) {
+    private String getTunnelInterfaceFlowRef(Uint64 dpnId, short tableId, String ifName) {
         return String.valueOf(dpnId) + tableId + ifName;
     }
 
@@ -449,7 +450,7 @@ public final class DirectTunnelUtils {
         int vlanId = 0;
         IfL2vlan ifL2vlan = iface.augmentation(IfL2vlan.class);
         if (ifL2vlan != null && ifL2vlan.getVlanId() != null) {
-            vlanId = ifL2vlan.getVlanId().getValue();
+            vlanId = ifL2vlan.getVlanId().getValue().toJava();
         }
 
         Builder<String, String> options = new ImmutableMap.Builder<>();
@@ -567,7 +568,7 @@ public final class DirectTunnelUtils {
         ITMBatchingUtils.delete(stateTnlId, ITMBatchingUtils.EntityType.DEFAULT_OPERATIONAL);
     }
 
-    public void updateBfdConfiguration(BigInteger srcDpnId, RemoteDpns remoteDpn,
+    public void updateBfdConfiguration(Uint64 srcDpnId, RemoteDpns remoteDpn,
                                        com.google.common.base.@NonNull Optional<OvsBridgeRefEntry> ovsBridgeRefEntry) {
         if (ovsBridgeRefEntry.isPresent()) {
             LOG.debug("creating bridge interface on dpn {}", srcDpnId);
@@ -597,7 +598,7 @@ public final class DirectTunnelUtils {
         return entityOwnershipUtils.isEntityOwner(ITMConstants.ITM_CONFIG_ENTITY, ITMConstants.ITM_CONFIG_ENTITY);
     }
 
-    public static String generateOfPortName(BigInteger dpId, String tunnelType) {
+    public static String generateOfPortName(Uint64 dpId, String tunnelType) {
         String trunkInterfaceName = String.format("%s:%s", dpId.toString(), tunnelType);
         String uuidStr = UUID.nameUUIDFromBytes(trunkInterfaceName.getBytes(StandardCharsets.UTF_8)).toString()
                 .substring(0, 12).replace("-", "");
index a6da293f7193e4c5de7476aa39c769a6a9338361..5807db58c1c857940dae2e2c7e6c871ed3161b8a 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.genius.itm.itmdirecttunnels.workers;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.ExecutionException;
@@ -40,6 +39,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeCon
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.OperationFailedException;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -93,8 +93,9 @@ public final class TunnelStateAddWorker {
         if (stateTnl != null) {
             return Collections.singletonList(txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION,
                 tx -> {
-                    BigInteger dpId = DirectTunnelUtils.getDpnFromNodeConnectorId(nodeConnectorId);
-                    directTunnelUtils.addTunnelIngressFlow(tx, dpId, portNo, interfaceName, stateTnl.getIfIndex(),
+                    Uint64 dpId = DirectTunnelUtils.getDpnFromNodeConnectorId(nodeConnectorId);
+                    directTunnelUtils.addTunnelIngressFlow(tx, dpId, portNo, interfaceName,
+                        stateTnl.getIfIndex().toJava(),
                         tunnelStateInfo.getDstDpnTepsInfo().getTunnelEndPoints().get(0).getIpAddress()
                             .getIpv4Address());
                     directTunnelUtils.addTunnelEgressFlow(tx, dpId, String.valueOf(portNo),
index 4fbbc285412fbbc949d219a264f24c7f6f37e4fb..b045c9b11cc5804c71d9bfc01d4d93bae8ea08f2 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.genius.itm.listeners;
 
-import java.math.BigInteger;
 import java.time.Duration;
 import java.util.List;
 import javax.inject.Inject;
@@ -43,6 +42,7 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.Topology;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -222,13 +222,14 @@ public class OvsdbNodeListener extends AbstractSyncDataTreeChangeListener<Node>
              */
             if (isTzChanged) {
                 IpAddress tepIpAddress = IpAddressBuilder.getDefaultInstance(newLocalIp);
-                BigInteger dpnId = MDSALUtil.getDpnId(strNewDpnId);
+                Uint64 dpnId = MDSALUtil.getDpnId(strNewDpnId);
                 String tos = itmConfig.getDefaultTunnelTos();
                 Class<? extends TunnelTypeBase> tunnelType  = TunnelTypeVxlan.class;
                 List<TzMembership> zones = ItmUtils.createTransportZoneMembership(oldTzName);
 
-                String portName = (itmConfig.getPortname() == null) ? ITMConstants.DUMMY_PORT : itmConfig.getPortname();
-                int vlanId = (itmConfig.getVlanId() != null) ? itmConfig.getVlanId() : ITMConstants.DUMMY_VLANID;
+                String portName = itmConfig.getPortname() == null ? ITMConstants.DUMMY_PORT : itmConfig.getPortname();
+                int vlanId = itmConfig.getVlanId() != null ? itmConfig.getVlanId().toJava()
+                                                             : ITMConstants.DUMMY_VLANID;
 
                 TunnelEndPoints tunnelEndPoints = ItmUtils.createDummyTunnelEndPoints(dpnId, tepIpAddress, newOfTunnel,
                         tos, zones, tunnelType, portName, vlanId);
index 93623c06dd405763e0b26f0d68e2fcf00878890b..2bdb70d9fde578101f15c4884a38ff88c51b9d55 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.genius.itm.listeners;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.FluentFuture;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -73,6 +72,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transp
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.VtepsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.VtepsKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -313,7 +313,7 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
     }
 
     private List<DPNTEPsInfo> createDPNTepInfoFromNotHosted(TransportZone tzNew, List<DPNTEPsInfo> opDpnList) {
-        Map<BigInteger, List<TunnelEndPoints>> mapNotHostedDPNToTunnelEndpt = new ConcurrentHashMap<>();
+        Map<Uint64, List<TunnelEndPoints>> mapNotHostedDPNToTunnelEndpt = new ConcurrentHashMap<>();
         List<DPNTEPsInfo> notHostedDpnTepInfo = new ArrayList<>();
         String newZoneName = tzNew.getZoneName();
         List<TzMembership> zones = ItmUtils.createTransportZoneMembership(newZoneName);
@@ -327,10 +327,11 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
         List<Vteps> vtepsList = new ArrayList<>();
         if (unVtepsLst != null && !unVtepsLst.isEmpty()) {
             for (UnknownVteps vteps : unVtepsLst) {
-                BigInteger dpnID = vteps.getDpnId();
+                Uint64 dpnID = vteps.getDpnId();
                 IpAddress ipAddress = vteps.getIpAddress();
-                String portName = (itmConfig.getPortname() == null) ? ITMConstants.DUMMY_PORT : itmConfig.getPortname();
-                int vlanId = (itmConfig.getVlanId() != null) ? itmConfig.getVlanId() : ITMConstants.DUMMY_VLANID;
+                String portName = itmConfig.getPortname() == null ? ITMConstants.DUMMY_PORT : itmConfig.getPortname();
+                int vlanId = itmConfig.getVlanId() != null ? itmConfig.getVlanId().toJava()
+                                                             : ITMConstants.DUMMY_VLANID;
                 boolean useOfTunnel = ItmUtils.falseIfNull(vteps.isOfTunnel());
                 String tos = vteps.getOptionTunnelTos();
                 if (tos == null) {
@@ -374,7 +375,7 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
         jobCoordinator.enqueueJob(newZoneName, new ItmTepsNotHostedMoveWorker(vtepsList, newZoneName, txRunner));
 
         if (mapNotHostedDPNToTunnelEndpt.size() > 0) {
-            for (Entry<BigInteger, List<TunnelEndPoints>> entry: mapNotHostedDPNToTunnelEndpt.entrySet()) {
+            for (Entry<Uint64, List<TunnelEndPoints>> entry: mapNotHostedDPNToTunnelEndpt.entrySet()) {
                 DPNTEPsInfo newDpnTepsInfo = ItmUtils.createDPNTepInfo(entry.getKey(), entry.getValue());
                 notHostedDpnTepInfo.add(newDpnTepsInfo);
             }
@@ -383,7 +384,7 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
 
     }
 
-    private Vteps createVtepFromUnKnownVteps(BigInteger dpnID, IpAddress ipAddress) {
+    private Vteps createVtepFromUnKnownVteps(Uint64 dpnID, IpAddress ipAddress) {
         VtepsKey vtepkey = new VtepsKey(dpnID);
         Vteps vtepObj = new VtepsBuilder().setDpnId(dpnID).setIpAddress(ipAddress).withKey(vtepkey)
                 .build();
@@ -421,19 +422,19 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
 
     private List<DPNTEPsInfo> createDPNTepInfo(TransportZone transportZone) {
 
-        Map<BigInteger, List<TunnelEndPoints>> mapDPNToTunnelEndpt = new ConcurrentHashMap<>();
+        Map<Uint64, List<TunnelEndPoints>> mapDPNToTunnelEndpt = new ConcurrentHashMap<>();
         List<DPNTEPsInfo> dpnTepInfo = new ArrayList<>();
         List<TzMembership> zones = ItmUtils.createTransportZoneMembership(transportZone.getZoneName());
         Class<? extends TunnelTypeBase> tunnelType = transportZone.getTunnelType();
         LOG.trace("Transport Zone_name: {}", transportZone.getZoneName());
         List<Vteps> vtepsList = transportZone.getVteps();
 
-        String portName = (itmConfig.getPortname() == null) ? ITMConstants.DUMMY_PORT : itmConfig.getPortname();
-        int vlanId = (itmConfig.getVlanId() != null) ? itmConfig.getVlanId() : ITMConstants.DUMMY_VLANID;
+        String portName = itmConfig.getPortname() == null ? ITMConstants.DUMMY_PORT : itmConfig.getPortname();
+        int vlanId = itmConfig.getVlanId() != null ? itmConfig.getVlanId().toJava() : ITMConstants.DUMMY_VLANID;
 
         if (vtepsList != null && !vtepsList.isEmpty()) {
             for (Vteps vteps : vtepsList) {
-                BigInteger dpnID = vteps.getDpnId();
+                Uint64 dpnID = vteps.getDpnId();
                 IpAddress ipAddress = vteps.getIpAddress();
                 boolean useOfTunnel = itmConfig.isUseOfTunnels();
                 String tos = vteps.getOptionTunnelTos();
@@ -460,7 +461,7 @@ public class TransportZoneListener extends AbstractSyncDataTreeChangeListener<Tr
 
         if (!mapDPNToTunnelEndpt.isEmpty()) {
             LOG.trace("List of dpns in the Map: {} ", mapDPNToTunnelEndpt.keySet());
-            for (Entry<BigInteger, List<TunnelEndPoints>> entry : mapDPNToTunnelEndpt.entrySet()) {
+            for (Entry<Uint64, List<TunnelEndPoints>> entry : mapDPNToTunnelEndpt.entrySet()) {
                 DPNTEPsInfo newDpnTepsInfo = ItmUtils.createDPNTepInfo(entry.getKey(), entry.getValue());
                 dpnTepInfo.add(newDpnTepsInfo);
             }
index 5564a1e4d0f4279cf6d81b710f6f4d02fbab15de..73eab175c6af0ed02cf5bf3d9ccba5f371ef4da8 100644 (file)
@@ -78,7 +78,7 @@ public class TunnelMonitorIntervalListener extends AbstractSyncDataTreeChangeLis
                         ovsBridgeRefEntryCache));
                 } else {
                     ItmMonitorIntervalWorker toggleWorker = new ItmMonitorIntervalWorker(tzone.getZoneName(),
-                        dataObjectModification.getInterval(), broker);
+                        dataObjectModification.getInterval().toJava(), broker);
                     jobCoordinator.enqueueJob(tzone.getZoneName(), toggleWorker);
                 }
             }
@@ -104,7 +104,7 @@ public class TunnelMonitorIntervalListener extends AbstractSyncDataTreeChangeLis
                     jobCoordinator.enqueueJob(tzone.getZoneName(), monitorWorker);
                 } else {
                     ItmMonitorIntervalWorker intervalWorker = new ItmMonitorIntervalWorker(tzone.getZoneName(),
-                        dataObjectModificationAfter.getInterval(), broker);
+                        dataObjectModificationAfter.getInterval().toJava(), broker);
                     jobCoordinator.enqueueJob(tzone.getZoneName(), intervalWorker);
                 }
             }
@@ -129,7 +129,7 @@ public class TunnelMonitorIntervalListener extends AbstractSyncDataTreeChangeLis
                     jobCoordinator.enqueueJob(tzone.getZoneName(), toggleWorker);
                 } else {
                     ItmMonitorIntervalWorker intervalWorker = new ItmMonitorIntervalWorker(tzone.getZoneName(),
-                        dataObjectModification.getInterval(), broker);
+                        dataObjectModification.getInterval().toJava(), broker);
                     //conversion to milliseconds done while writing to i/f-mgr config DS
                     jobCoordinator.enqueueJob(tzone.getZoneName(), intervalWorker);
                 }
index 1eb5523d7680970d1e4bee31036093af2a85c409..1417b84bc744252f05dbe882fae1ffcab6dfdc4b 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.genius.itm.monitoring;
 
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
@@ -35,6 +35,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tun
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelList;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelListBuilder;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -47,7 +48,7 @@ public class ItmTunnelEventListener extends AbstractSyncDataTreeChangeListener<S
     private final JobCoordinator jobCoordinator;
     private final ManagedNewTransactionRunner txRunner;
     private JMXAlarmAgent alarmAgent;
-    private UnprocessedTunnelsStateCache unprocessedTunnelsStateCache;
+    private final UnprocessedTunnelsStateCache unprocessedTunnelsStateCache;
 
     @Inject
     public ItmTunnelEventListener(DataBroker dataBroker, JobCoordinator jobCoordinator,
@@ -125,6 +126,8 @@ public class ItmTunnelEventListener extends AbstractSyncDataTreeChangeListener<S
         }
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private void raiseInternalDataPathAlarm(String srcDpnId, String dstDpnId, String tunnelType, String alarmText) {
         StringBuilder source = new StringBuilder();
         source.append("srcDpn=openflow:").append(srcDpnId).append("-dstDpn=openflow:").append(dstDpnId)
@@ -137,6 +140,8 @@ public class ItmTunnelEventListener extends AbstractSyncDataTreeChangeListener<S
         }
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private void clearInternalDataPathAlarm(String srcDpnId, String dstDpnId, String tunnelType, String alarmText) {
         StringBuilder source = new StringBuilder();
 
@@ -149,6 +154,8 @@ public class ItmTunnelEventListener extends AbstractSyncDataTreeChangeListener<S
         }
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private void raiseExternalDataPathAlarm(String srcDevice, String dstDevice, String tunnelType, String alarmText) {
 
         StringBuilder source = new StringBuilder();
@@ -162,6 +169,8 @@ public class ItmTunnelEventListener extends AbstractSyncDataTreeChangeListener<S
         }
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private void clearExternalDataPathAlarm(String srcDevice, String dstDevice, String tunnelType, String alarmText) {
         StringBuilder source = new StringBuilder();
         source.append("srcDevice=").append(srcDevice).append("-dstDevice=").append(dstDevice).append("-tunnelType")
@@ -173,18 +182,24 @@ public class ItmTunnelEventListener extends AbstractSyncDataTreeChangeListener<S
         }
     }
 
-    private boolean isTunnelInterfaceUp(StateTunnelList intf) {
-        return (intf.getOperState() == TunnelOperStatus.Up);
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
+    private static boolean isTunnelInterfaceUp(StateTunnelList intf) {
+        return intf.getOperState() == TunnelOperStatus.Up;
     }
 
-    private String getInternalAlarmText(String srcDpId, String dstDpId, String tunnelType) {
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
+    private static String getInternalAlarmText(String srcDpId, String dstDpId, String tunnelType) {
         StringBuilder alarmText = new StringBuilder();
         alarmText.append("Data Path Connectivity is lost between ").append("openflow:").append(srcDpId)
                 .append(" and openflow:").append(dstDpId).append(" for tunnelType:").append(tunnelType);
         return alarmText.toString();
     }
 
-    private String getExternalAlarmText(String srcNode, String dstNode, String tunnelType) {
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
+    private static String getExternalAlarmText(String srcNode, String dstNode, String tunnelType) {
         StringBuilder alarmText = new StringBuilder();
         alarmText.append("Data Path Connectivity is lost between ").append(srcNode).append(" and ").append(dstNode)
                 .append(" for tunnelType:").append(tunnelType);
@@ -203,8 +218,8 @@ public class ItmTunnelEventListener extends AbstractSyncDataTreeChangeListener<S
             String ifName = add.getTunnelInterfaceName();
             InternalTunnel internalTunnel = ItmUtils.getInternalTunnel(ifName, broker);
             if (internalTunnel != null) {
-                BigInteger srcDpId = internalTunnel.getSourceDPN();
-                BigInteger dstDpId = internalTunnel.getDestinationDPN();
+                Uint64 srcDpId = internalTunnel.getSourceDPN();
+                Uint64 dstDpId = internalTunnel.getDestinationDPN();
                 String tunnelType = ItmUtils.convertTunnelTypetoString(internalTunnel.getTransportType());
                 if (!isTunnelInterfaceUp(add)) {
                     LOG.trace("ITM Tunnel State during tep add is DOWN b/w srcDpn: {} and dstDpn: {} for tunnelType: "
@@ -248,8 +263,8 @@ public class ItmTunnelEventListener extends AbstractSyncDataTreeChangeListener<S
             String ifName = del.getTunnelInterfaceName();
             InternalTunnel internalTunnel = ItmUtils.getInternalTunnel(ifName, broker);
             if (internalTunnel != null) {
-                BigInteger srcDpId = internalTunnel.getSourceDPN();
-                BigInteger dstDpId = internalTunnel.getDestinationDPN();
+                Uint64 srcDpId = internalTunnel.getSourceDPN();
+                Uint64 dstDpId = internalTunnel.getDestinationDPN();
                 String tunnelType = ItmUtils.convertTunnelTypetoString(internalTunnel.getTransportType());
                 LOG.trace("ITM Tunnel removed b/w srcDpn: {} and dstDpn: {} for tunnelType: {}", srcDpId, dstDpId,
                           tunnelType);
@@ -285,8 +300,8 @@ public class ItmTunnelEventListener extends AbstractSyncDataTreeChangeListener<S
             String ifName = update.getTunnelInterfaceName();
             InternalTunnel internalTunnel = ItmUtils.getInternalTunnel(ifName, broker);
             if (internalTunnel != null) {
-                BigInteger srcDpId = internalTunnel.getSourceDPN();
-                BigInteger dstDpId = internalTunnel.getDestinationDPN();
+                Uint64 srcDpId = internalTunnel.getSourceDPN();
+                Uint64 dstDpId = internalTunnel.getDestinationDPN();
                 String tunnelType = ItmUtils.convertTunnelTypetoString(internalTunnel.getTransportType());
                 if (LOG.isTraceEnabled()) {
                     LOG.trace("ITM Tunnel state event changed from :{} to :{} for Tunnel Interface - {}",
@@ -343,10 +358,10 @@ public class ItmTunnelEventListener extends AbstractSyncDataTreeChangeListener<S
     }
 
     private static class ItmTunnelStatusOutOfOrderEventWorker implements Callable<List<ListenableFuture<Void>>> {
-        private InstanceIdentifier<StateTunnelList> identifier;
-        private StateTunnelList add;
-        private TunnelOperStatus operStatus;
-        private ManagedNewTransactionRunner txRunner;
+        private final InstanceIdentifier<StateTunnelList> identifier;
+        private final StateTunnelList add;
+        private final TunnelOperStatus operStatus;
+        private final ManagedNewTransactionRunner txRunner;
 
         ItmTunnelStatusOutOfOrderEventWorker(InstanceIdentifier<StateTunnelList> identifier, StateTunnelList add,
                                              TunnelOperStatus operStatus,
index 8b1a0ace220fed7957c3569e620e74eb7c661210..8a9cdf236c3dc1ce021c419389644f68ae8104f9 100644 (file)
@@ -220,8 +220,8 @@ public class ItmTepInstanceRecoveryHandler implements ServiceRecoveryInterface {
             return null;
         }
 
-        String portName = (itmConfig.getPortname() == null) ? ITMConstants.DUMMY_PORT : itmConfig.getPortname();
-        int vlanId = (itmConfig.getVlanId() != null) ? itmConfig.getVlanId() : ITMConstants.DUMMY_VLANID;
+        String portName = itmConfig.getPortname() == null ? ITMConstants.DUMMY_PORT : itmConfig.getPortname();
+        int vlanId = itmConfig.getVlanId() != null ? itmConfig.getVlanId().toJava() : ITMConstants.DUMMY_VLANID;
 
         for (Vteps vtep : transportZone.getVteps()) {
             if (ipAddress.equals(vtep.getIpAddress().stringValue())) {
index dc952c4c5425aa0ae63f1e76de22c9f6af9b8b87..340ff734744ec7ef11c57d56e8a4396d17d8226d 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.itm.recovery.impl;
 
-import java.math.BigInteger;
 import java.time.Duration;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -39,6 +38,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tun
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZone;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.serviceutils.srm.types.rev180626.GeniusItmTz;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -102,7 +102,7 @@ public class ItmTzInstanceRecoveryHandler extends
         List<String> tunnelList = new ArrayList<>();
         if (interfaceManager.isItmDirectTunnelsEnabled()) {
             Collection<DpnsTeps> dpnsTeps = dpnTepStateCache.getAllPresent();
-            List<BigInteger> listOfDpnIds = ItmUtils.getDpIdFromTransportzone(dataBroker, entityId);
+            List<Uint64> listOfDpnIds = ItmUtils.getDpIdFromTransportzone(dataBroker, entityId);
             for (DpnsTeps dpnTep : dpnsTeps) {
                 List<RemoteDpns> rmtdpns = dpnTep.getRemoteDpns();
                 for (RemoteDpns remoteDpn : rmtdpns) {
index 1b7d8e411e2ceced8209019cced8393118492961..d7e34614047c97d852fd58119a7e439101827c31 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.genius.itm.rpc;
 
 import static org.opendaylight.genius.infra.Datastore.CONFIGURATION;
-import static org.opendaylight.serviceutils.tools.rpc.FutureRpcResults.LogLevel.ERROR;
 import static org.opendaylight.serviceutils.tools.rpc.FutureRpcResults.fromListenableFuture;
 import static org.opendaylight.yangtools.yang.common.RpcResultBuilder.failed;
 
@@ -20,7 +19,6 @@ import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.SettableFuture;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -67,6 +65,7 @@ import org.opendaylight.genius.mdsalutil.actions.ActionSetFieldTunnelId;
 import org.opendaylight.genius.mdsalutil.interfaces.IMdsalApiManager;
 import org.opendaylight.genius.mdsalutil.matches.MatchTunnelId;
 import org.opendaylight.serviceutils.tools.rpc.FutureRpcResults;
+import org.opendaylight.serviceutils.tools.rpc.FutureRpcResults.LogLevel;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
@@ -165,6 +164,8 @@ import org.opendaylight.yangtools.yang.common.OperationFailedException;
 import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -226,8 +227,8 @@ public class ItmManagerRpcService implements ItmRpcService {
     public ListenableFuture<RpcResult<GetTunnelInterfaceNameOutput>> getTunnelInterfaceName(
             GetTunnelInterfaceNameInput input) {
         RpcResultBuilder<GetTunnelInterfaceNameOutput> resultBld = null;
-        BigInteger sourceDpn = input.getSourceDpid();
-        BigInteger destinationDpn = input.getDestinationDpid();
+        Uint64 sourceDpn = input.getSourceDpid();
+        Uint64 destinationDpn = input.getDestinationDpid();
         Optional<InternalTunnel> optTunnel = Optional.absent();
 
         if (interfaceManager.isItmDirectTunnelsEnabled()) {
@@ -307,7 +308,7 @@ public class ItmManagerRpcService implements ItmRpcService {
             return  settableFuture;
         } else {
             return fromListenableFuture(LOG, input, () -> getEgressActionsForInternalTunnels(input.getIntfName(),
-                    input.getTunnelKey(), input.getActionKey())).onFailureLogLevel(ERROR).build();
+                    input.getTunnelKey().toJava(), input.getActionKey())).onFailureLogLevel(LogLevel.ERROR).build();
         }
     }
 
@@ -360,13 +361,13 @@ public class ItmManagerRpcService implements ItmRpcService {
     @Override
     public ListenableFuture<RpcResult<SetBfdParamOnTunnelOutput>> setBfdParamOnTunnel(
             SetBfdParamOnTunnelInput input) {
-        final BigInteger srcDpnId = new BigInteger(input.getSourceNode());
-        final BigInteger destDpnId = new BigInteger(input.getDestinationNode());
+        final Uint64 srcDpnId = Uint64.valueOf(input.getSourceNode());
+        final Uint64 destDpnId = Uint64.valueOf(input.getDestinationNode());
         LOG.debug("setBfdParamOnTunnel srcDpnId: {}, destDpnId: {}", srcDpnId, destDpnId);
         final SettableFuture<RpcResult<SetBfdParamOnTunnelOutput>> result = SettableFuture.create();
         FluentFuture<Void> future = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION, tx -> {
-            enableBFD(tx, srcDpnId, destDpnId, input.isMonitoringEnabled(), input.getMonitoringInterval());
-            enableBFD(tx, destDpnId, srcDpnId, input.isMonitoringEnabled(), input.getMonitoringInterval());
+            enableBFD(tx, srcDpnId, destDpnId, input.isMonitoringEnabled(), input.getMonitoringInterval().toJava());
+            enableBFD(tx, destDpnId, srcDpnId, input.isMonitoringEnabled(), input.getMonitoringInterval().toJava());
         });
 
         future.addCallback(new FutureCallback<Void>() {
@@ -386,7 +387,7 @@ public class ItmManagerRpcService implements ItmRpcService {
         return result;
     }
 
-    private void enableBFD(TypedWriteTransaction<Datastore.Configuration> tx, BigInteger srcDpnId, BigInteger destDpnId,
+    private void enableBFD(TypedWriteTransaction<Datastore.Configuration> tx, Uint64 srcDpnId, Uint64 destDpnId,
                            final Boolean enabled, final Integer interval) throws ReadFailedException {
         DpnTepInterfaceInfo dpnTepInterfaceInfo = dpnTepStateCache.getDpnTepInterface(srcDpnId, destDpnId);
         RemoteDpnsBuilder remoteDpnsBuilder = new RemoteDpnsBuilder();
@@ -566,13 +567,14 @@ public class ItmManagerRpcService implements ItmRpcService {
         LOG.info("create terminatingServiceAction on DpnId = {} for service id {} and instructions {}",
                 input.getDpnId() , input.getServiceId(), input.getInstruction());
         final SettableFuture<RpcResult<CreateTerminatingServiceActionsOutput>> result = SettableFuture.create();
-        int serviceId = input.getServiceId() ;
+        Uint16 serviceId = input.getServiceId();
         final List<MatchInfo> mkMatches = getTunnelMatchesForServiceId(serviceId);
 
         Flow terminatingServiceTableFlow = MDSALUtil.buildFlowNew(NwConstants.INTERNAL_TUNNEL_TABLE,
-                getFlowRef(NwConstants.INTERNAL_TUNNEL_TABLE,serviceId), 5,
-                String.format("%s:%d","ITM Flow Entry ",serviceId), 0, 0,
-                ITMConstants.COOKIE_ITM.add(BigInteger.valueOf(serviceId)),mkMatches, input.getInstruction());
+                getFlowRef(NwConstants.INTERNAL_TUNNEL_TABLE, serviceId), 5,
+                String.format("%s:%d", "ITM Flow Entry ", serviceId), 0, 0,
+                Uint64.fromLongBits(ITMConstants.COOKIE_ITM.longValue() + serviceId.toJava()), mkMatches,
+                input.getInstruction());
 
         ListenableFuture<Void> installFlowResult = txRunner.callWithNewWriteOnlyTransactionAndSubmit(CONFIGURATION,
             tx -> mdsalManager.addFlow(tx, input.getDpnId(), terminatingServiceTableFlow));
@@ -628,17 +630,16 @@ public class ItmManagerRpcService implements ItmRpcService {
         return result ;
     }
 
-
-    public List<MatchInfo> getTunnelMatchesForServiceId(int serviceId) {
+    public List<MatchInfo> getTunnelMatchesForServiceId(Uint16 serviceId) {
         final List<MatchInfo> mkMatches = new ArrayList<>();
 
         // Matching metadata
-        mkMatches.add(new MatchTunnelId(BigInteger.valueOf(serviceId)));
+        mkMatches.add(new MatchTunnelId(Uint64.valueOf(serviceId)));
 
         return mkMatches;
     }
 
-    private String getFlowRef(long termSvcTable, int svcId) {
+    private String getFlowRef(long termSvcTable, Uint16 svcId) {
         return String.valueOf(termSvcTable) + svcId;
     }
 
@@ -646,7 +647,7 @@ public class ItmManagerRpcService implements ItmRpcService {
     public ListenableFuture<RpcResult<GetInternalOrExternalInterfaceNameOutput>> getInternalOrExternalInterfaceName(
             GetInternalOrExternalInterfaceNameInput input) {
         RpcResultBuilder<GetInternalOrExternalInterfaceNameOutput> resultBld = failed();
-        BigInteger srcDpn = input.getSourceDpid() ;
+        Uint64 srcDpn = input.getSourceDpid();
         IpAddress dstIp = input.getDestinationIp() ;
         InstanceIdentifier<ExternalTunnel> path1 = InstanceIdentifier.create(ExternalTunnelList.class)
                 .child(ExternalTunnel.class,
@@ -1048,7 +1049,7 @@ public class ItmManagerRpcService implements ItmRpcService {
 
     @Override
     public ListenableFuture<RpcResult<GetDpnEndpointIpsOutput>> getDpnEndpointIps(GetDpnEndpointIpsInput input) {
-        BigInteger srcDpn = input.getSourceDpid() ;
+        Uint64 srcDpn = input.getSourceDpid();
         RpcResultBuilder<GetDpnEndpointIpsOutput> resultBld = failed();
         InstanceIdentifier<DPNTEPsInfo> tunnelInfoId =
                 InstanceIdentifier.builder(DpnEndpoints.class).child(DPNTEPsInfo.class,
@@ -1081,9 +1082,9 @@ public class ItmManagerRpcService implements ItmRpcService {
     }
 
     private GetDpnInfoOutput getDpnInfoInternal(GetDpnInfoInput input) throws ReadFailedException {
-        Map<String, BigInteger> computeNamesVsDpnIds
+        Map<String, Uint64> computeNamesVsDpnIds
                 = getDpnIdByComputeNodeNameFromOpInventoryNodes(input.getComputeNames());
-        Map<BigInteger, ComputesBuilder> dpnIdVsVtepsComputes
+        Map<Uint64, ComputesBuilder> dpnIdVsVtepsComputes
                 = getTunnelEndPointByDpnIdFromTranPortZone(computeNamesVsDpnIds.values());
         List<Computes> computes = computeNamesVsDpnIds.entrySet().stream()
                 .map(entry -> dpnIdVsVtepsComputes.get(entry.getValue()).setComputeName(entry.getKey()).build())
@@ -1091,14 +1092,14 @@ public class ItmManagerRpcService implements ItmRpcService {
         return new GetDpnInfoOutputBuilder().setComputes(computes).build();
     }
 
-    private Map<BigInteger, ComputesBuilder> getTunnelEndPointByDpnIdFromTranPortZone(Collection<BigInteger> dpnIds)
+    private Map<Uint64, ComputesBuilder> getTunnelEndPointByDpnIdFromTranPortZone(Collection<Uint64> dpnIds)
             throws ReadFailedException {
         TransportZones transportZones = singleTransactionDataBroker.syncRead(
                 LogicalDatastoreType.CONFIGURATION, InstanceIdentifier.builder(TransportZones.class).build());
         if (transportZones.getTransportZone() == null || transportZones.getTransportZone().isEmpty()) {
             throw new IllegalStateException("Failed to find transport zones in config datastore");
         }
-        Map<BigInteger, ComputesBuilder> result = new HashMap<>();
+        Map<Uint64, ComputesBuilder> result = new HashMap<>();
         for (TransportZone transportZone : transportZones.getTransportZone()) {
             for (Vteps vtep : transportZone.getVteps()) {
                 if (dpnIds.contains(vtep.getDpnId())) {
@@ -1111,7 +1112,7 @@ public class ItmManagerRpcService implements ItmRpcService {
                 }
             }
         }
-        for (BigInteger dpnId : dpnIds) {
+        for (Uint64 dpnId : dpnIds) {
             if (!result.containsKey(dpnId)) {
                 throw new IllegalStateException("Failed to find dpn id " + dpnId + " in transport zone");
             }
@@ -1119,19 +1120,19 @@ public class ItmManagerRpcService implements ItmRpcService {
         return result;
     }
 
-    private Map<String, BigInteger> getDpnIdByComputeNodeNameFromOpInventoryNodes(List<String> nodeNames)
+    private Map<String, Uint64> getDpnIdByComputeNodeNameFromOpInventoryNodes(List<String> nodeNames)
             throws ReadFailedException {
         Nodes operInventoryNodes = singleTransactionDataBroker.syncRead(
                 LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.builder(Nodes.class).build());
         if (operInventoryNodes.getNode() == null || operInventoryNodes.getNode().isEmpty()) {
             throw new IllegalStateException("Failed to find operational inventory nodes datastore");
         }
-        Map<String, BigInteger> result = new HashMap<>();
+        Map<String, Uint64> result = new HashMap<>();
         for (Node node : operInventoryNodes.getNode()) {
             String name = node.augmentation(FlowCapableNode.class).getDescription();
             if (nodeNames.contains(name)) {
                 String[] nodeId = node.getId().getValue().split(":");
-                result.put(name, new BigInteger(nodeId[1]));
+                result.put(name, Uint64.valueOf(nodeId[1]));
             }
         }
         for (String nodeName : nodeNames) {
@@ -1143,7 +1144,7 @@ public class ItmManagerRpcService implements ItmRpcService {
         return result;
     }
 
-    private String getNodeId(BigInteger dpnId) throws ReadFailedException {
+    private String getNodeId(Uint64 dpnId) throws ReadFailedException {
         InstanceIdentifier<BridgeRefEntry> path = InstanceIdentifier
                 .builder(BridgeRefInfo.class)
                 .child(BridgeRefEntry.class, new BridgeRefEntryKey(dpnId)).build();
@@ -1169,8 +1170,11 @@ public class ItmManagerRpcService implements ItmRpcService {
         }
 
         Optional<DPNTEPsInfo> dpntePsInfoOptional = dpnTEPsInfoCache.get(InstanceIdentifier.builder(DpnEndpoints.class)
-                .child(DPNTEPsInfo.class, new DPNTEPsInfoKey(new BigInteger(dpnTepStateCache
-                        .getTunnelEndPointInfoFromCache(interfaceInfo.getTunnelName()).getDstEndPointInfo()))).build());
+                .child(DPNTEPsInfo.class, new DPNTEPsInfoKey(
+                    // FIXME: the cache should be caching this value, not just as a String
+                    Uint64.valueOf(dpnTepStateCache.getTunnelEndPointInfoFromCache(interfaceInfo.getTunnelName())
+                        .getDstEndPointInfo())))
+                .build());
         Integer dstId;
         if (dpntePsInfoOptional.isPresent()) {
             dstId = dpntePsInfoOptional.get().getDstId();
@@ -1182,7 +1186,7 @@ public class ItmManagerRpcService implements ItmRpcService {
         long regValue = MetaDataUtil.getRemoteDpnMetadatForEgressTunnelTable(dstId);
         int actionKeyStart = actionKey == null ? 0 : actionKey;
         result.add(new ActionSetFieldTunnelId(actionKeyStart++,
-                BigInteger.valueOf(tunnelKey != null ? tunnelKey : 0L)));
+                Uint64.valueOf(tunnelKey != null ? tunnelKey : 0L)));
         result.add(new ActionRegLoad(actionKeyStart++, NxmNxReg6.class, MetaDataUtil.REG6_START_INDEX,
                 MetaDataUtil.REG6_END_INDEX, regValue));
         result.add(new ActionNxResubmit(actionKeyStart, NwConstants.EGRESS_TUNNEL_TABLE));
@@ -1198,8 +1202,9 @@ public class ItmManagerRpcService implements ItmRpcService {
                 tx.read(InstanceIdentifier.builder(DcGatewayIpList.class).build());
         future.addCallback(new FutureCallback<Optional<DcGatewayIpList>>() {
             @Override
-            public void onSuccess(@NonNull  Optional<DcGatewayIpList> optional) {
+            public void onSuccess(Optional<DcGatewayIpList> optional) {
                 try {
+                    // FIXME: why not just use the provided optional?
                     Optional<DcGatewayIpList> opt = future.get();
                     if (opt.isPresent()) {
                         DcGatewayIpList list = opt.get();
index eaa16309ba7e4e9150487873c7a13485b2cf1580..04feddf2cdaaf7e479e41e2783479d5eba747d0e 100644 (file)
@@ -19,7 +19,6 @@ import com.google.common.util.concurrent.FluentFuture;
 import com.google.common.util.concurrent.Futures;
 import java.io.ByteArrayOutputStream;
 import java.io.PrintStream;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -70,6 +69,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transp
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.VtepsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.VtepsKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -91,8 +91,8 @@ public class TepCommandHelperTest {
     private final String sourceDevice = "hwvtep://192.168.101.30:6640/physicalswitch/s3";
     private final String destinationDevice = "hwvtep:1";
     private final String transportZone1 = "TZA" ;
-    private final BigInteger dpId1 = BigInteger.valueOf(1);
-    private final BigInteger dpId2 = BigInteger.valueOf(2);
+    private final Uint64 dpId1 = Uint64.ONE;
+    private final Uint64 dpId2 = Uint64.valueOf(2);
     private final IpAddress ipAddress1 = IpAddressBuilder.getDefaultInstance(tepIp1);
     private final IpAddress ipAddress2 = IpAddressBuilder.getDefaultInstance(tepIp2);
     private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
@@ -312,10 +312,16 @@ public class TepCommandHelperTest {
         doReturn(Futures.immediateCheckedFuture(Optional.absent())).when(mockReadTx).read(LogicalDatastoreType
                 .CONFIGURATION,transportZoneIdentifier);
 
-        tepCommandHelper.configureTunnelType(transportZone1,"VXLAN");
+        tepCommandHelper.configureTunnelType(transportZone1, "VXLAN");
 
-        verify(mockReadTx).read(LogicalDatastoreType.CONFIGURATION,transportZoneIdentifier);
-        verify(mockWriteTx).put(LogicalDatastoreType.CONFIGURATION,transportZonesIdentifier,transportZones,true);
+        verify(mockReadTx).read(LogicalDatastoreType.CONFIGURATION, transportZoneIdentifier);
+
+        final List<TransportZone> newList = new ArrayList<>(transportZoneList);
+        newList.add(new TransportZoneBuilder().withKey(new TransportZoneKey(transportZone1))
+            .setTunnelType(TunnelTypeVxlan.class).build());
+
+        verify(mockWriteTx).put(LogicalDatastoreType.CONFIGURATION, transportZonesIdentifier,
+            new TransportZonesBuilder().setTransportZone(newList).build(),true);
     }
 
     @Test
@@ -484,8 +490,8 @@ public class TepCommandHelperTest {
     public void testIsInCache() {
 
         try {
-            tepCommandHelper.createLocalCache(dpId1,tepIp1,transportZone1);
-            tepCommandHelper.isInCache(dpId1,tepIp1,transportZone1);
+            tepCommandHelper.createLocalCache(dpId1, tepIp1, transportZone1);
+            tepCommandHelper.isInCache(dpId1, tepIp1 ,transportZone1);
         } catch (TepException e) {
             LOG.error(e.getMessage());
         }
index 1811a088778448a461ef608bac3c1a22d7e97b00..87f846dc4143b6b5a11d67801b7f4c7741be3ed7 100644 (file)
@@ -5,7 +5,6 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.itm.impl;
 
 import static org.mockito.Mockito.doReturn;
@@ -15,7 +14,6 @@ import static org.mockito.Mockito.verify;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.Futures;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.Future;
@@ -86,11 +84,13 @@ import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 @RunWith(MockitoJUnitRunner.class)
 public class ItmExternalTunnelAddTest {
 
-    BigInteger dpId1 = BigInteger.valueOf(1);
+    Uint64 dpId1 = Uint64.ONE;
     int vlanId = 100 ;
     int interval = 1000;
     String portName1 = "phy0";
@@ -132,7 +132,7 @@ public class ItmExternalTunnelAddTest {
     Interface iface = null;
     List<DPNTEPsInfo> cfgdDpnListVxlan = new ArrayList<>() ;
     List<TunnelEndPoints> tunnelEndPointsListVxlan = new ArrayList<>();
-    List<BigInteger> bigIntegerList = new ArrayList<>();
+    List<Uint64> bigIntegerList = new ArrayList<>();
     List<HwVtep> cfgdHwVtepsList = new ArrayList<>();
     List<DeviceVteps> deviceVtepsList = new ArrayList<>();
     List<Vteps> vtepsList = new ArrayList<>();
@@ -286,7 +286,7 @@ public class ItmExternalTunnelAddTest {
         lenient().doReturn(mockWriteTx).when(dataBroker).newWriteOnlyTransaction();
         lenient().doReturn(Futures.immediateCheckedFuture(null)).when(mockWriteTx).submit();
         doReturn("phy0").when(itmConfig).getPortname();
-        doReturn(100).when(itmConfig).getVlanId();
+        doReturn(Uint16.valueOf(100)).when(itmConfig).getVlanId();
     }
 
     @Test
index b7b34030ab762e379b63b719eb05ca382658e596..a0603b1cfee0c238c97021121ca94d456f244dd2 100644 (file)
@@ -16,7 +16,6 @@ import static org.mockito.Mockito.verify;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.Futures;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.ExecutionException;
@@ -75,6 +74,8 @@ import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 @RunWith(MockitoJUnitRunner.class)
 public class ItmExternalTunnelDeleteTest {
@@ -96,7 +97,7 @@ public class ItmExternalTunnelDeleteTest {
     IpAddress gtwyIp1 = null;
     IpAddress gtwyIp2 = null;
     IpPrefix ipPrefixTest = null;
-    BigInteger dpId2 = BigInteger.valueOf(1);
+    Uint64 dpId2 = Uint64.ONE;
     DPNTEPsInfo dpntePsInfoVxlan = null;
     TunnelEndPoints tunnelEndPointsVxlan = null;
     HwVtep hwVtep1  = null;
@@ -258,7 +259,7 @@ public class ItmExternalTunnelDeleteTest {
         lenient().doReturn(mockWriteTx).when(dataBroker).newWriteOnlyTransaction();
         lenient().doReturn(Futures.immediateCheckedFuture(null)).when(mockWriteTx).submit();
         doReturn("phy0").when(itmConfig).getPortname();
-        doReturn(100).when(itmConfig).getVlanId();
+        doReturn(Uint16.valueOf(100)).when(itmConfig).getVlanId();
     }
 
     @Test
index c862daaa6350285cc9d26d8eca192f3d2d1ce902..a7d4983e015d65958a002a26533a2ac7539017b6 100644 (file)
@@ -5,7 +5,6 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.itm.impl;
 
 import static org.mockito.Mockito.doReturn;
@@ -13,7 +12,6 @@ import static org.mockito.Mockito.verify;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.Futures;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.ExecutionException;
@@ -72,6 +70,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.OperationFailedException;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.powermock.api.mockito.PowerMockito;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
@@ -81,8 +80,8 @@ import org.powermock.modules.junit4.PowerMockRunner;
 @PrepareForTest(ITMBatchingUtils.class)
 public class ItmInternalTunnelAddTest {
 
-    BigInteger dpId1 = BigInteger.valueOf(1);
-    BigInteger dpId2 = BigInteger.valueOf(2);
+    Uint64 dpId1 = Uint64.ONE;
+    Uint64 dpId2 = Uint64.valueOf(2);
     String portName1 = "phy0";
     String portName2 = "phy1" ;
     int vlanId = 100 ;
index ad518e997479796f1048478105f22a6d70081369..9c965339f2a6c2d1496cb6d28dcba1d2a9044baf 100644 (file)
@@ -5,7 +5,6 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.itm.impl;
 
 import static org.mockito.Mockito.doReturn;
@@ -14,7 +13,6 @@ import static org.mockito.Mockito.verify;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.Futures;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 import org.junit.After;
@@ -69,12 +67,13 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tun
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnel.list.InternalTunnelBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnel.list.InternalTunnelKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 @RunWith(MockitoJUnitRunner.class)
 public class ItmInternalTunnelDeleteTest {
 
-    BigInteger dpId1 = BigInteger.valueOf(1);
-    BigInteger dpId2 = BigInteger.valueOf(2);
+    Uint64 dpId1 = Uint64.ONE;
+    Uint64 dpId2 = Uint64.valueOf(2);
     int vlanId = 100 ;
     int interval = 1000;
     String portName1 = "phy0";
@@ -110,8 +109,8 @@ public class ItmInternalTunnelDeleteTest {
             InstanceIdentifier.create(TunnelMonitorInterval.class);
     Class<? extends TunnelMonitoringTypeBase> monitorProtocol = TunnelMonitoringTypeBfd.class;
     InstanceIdentifier<InternalTunnel> internalTunnelIdentifier = InstanceIdentifier.builder(TunnelList.class)
-            .child(InternalTunnel.class, new InternalTunnelKey(new BigInteger("1"),
-                    new BigInteger("2"), tunnelType1)).build();
+            .child(InternalTunnel.class, new InternalTunnelKey(Uint64.ONE, Uint64.valueOf(2), tunnelType1))
+            .build();
 
     @Mock DataBroker dataBroker;
     @Mock ReadOnlyTransaction mockReadTx;
index a6961f910896eacf2b848dcb99ac376663559c7b..480aea4771e6f76381b3abf7aa91aea7f240b78a 100644 (file)
@@ -13,7 +13,6 @@ import static org.mockito.Mockito.verify;
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.Futures;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -104,6 +103,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.R
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.RemoveTerminatingServiceActionsInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.RemoveTerminatingServiceActionsInputBuilder;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 @RunWith(MockitoJUnitRunner.class)
 public class ItmManagerRpcServiceTest {
@@ -121,8 +121,8 @@ public class ItmManagerRpcServiceTest {
     IpAddress ipAddress1 = IpAddressBuilder.getDefaultInstance(tepIp1);
     IpAddress gtwyIp1 = IpAddressBuilder.getDefaultInstance(gwyIp1);
     IpPrefix ipPrefixTest = IpPrefixBuilder.getDefaultInstance(subnetIp + "/24");
-    BigInteger dpId1 = BigInteger.valueOf(1);
-    BigInteger dpId2 = BigInteger.valueOf(2);
+    Uint64 dpId1 = Uint64.ONE;
+    Uint64 dpId2 = Uint64.valueOf(2);
     ExternalTunnel externalTunnel = null;
     ExternalTunnel externalTunnelNew = null;
     InternalTunnel internalTunnel = null;
@@ -138,7 +138,7 @@ public class ItmManagerRpcServiceTest {
     List<TransportZone> transportZoneList = new ArrayList<>() ;
     List<DeviceVteps> deviceVtepsList = new ArrayList<>();
     List<String> stringList = new ArrayList<>();
-    List<BigInteger> dpId1List = new ArrayList<>();
+    List<Uint64> dpId1List = new ArrayList<>();
     DeviceVtepsKey deviceVtepKey = new DeviceVtepsKey(ipAddress1, sourceDevice);
     AddExternalTunnelEndpointInput addExternalTunnelEndpointInput = null;
     GetInternalOrExternalInterfaceNameInput getInternalOrExternalInterfaceNameInput = null;
index b04824b63b30ff8e0fccc5f59ec929b0804d1a69..8762eb2b95b9f331cd78f06a716cbd8674ed684e 100644 (file)
@@ -5,7 +5,6 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.itm.tests;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -13,7 +12,6 @@ import static org.opendaylight.mdsal.binding.testutils.AssertDataObjects.assertE
 
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -103,6 +101,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rpcs.rev160406.R
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public class ItmManagerRpcServiceTest {
 
@@ -128,7 +127,7 @@ public class ItmManagerRpcServiceTest {
     List<TransportZone> transportZoneList = new ArrayList<>();
     List<DeviceVteps> deviceVtepsList = new ArrayList<>();
     List<String> stringList = new ArrayList<>();
-    List<BigInteger> dpId1List = new ArrayList<>();
+    List<Uint64> dpId1List = new ArrayList<>();
     DeviceVtepsKey deviceVtepKey = new DeviceVtepsKey(ItmTestConstants.IP_ADDRESS_3, ItmTestConstants.SOURCE_DEVICE);
     DeviceVtepsKey deviceVtep2Key = new DeviceVtepsKey(ItmTestConstants.IP_ADDRESS_3, ItmTestConstants.SOURCE_DEVICE_2);
     AddExternalTunnelEndpointInput addExternalTunnelEndpointInput;
index 93f9161dbec242f7b50ba3757371206378e54675..1c0fd09a13ab6040615b9babbd29f96f644ce7f8 100644 (file)
@@ -13,7 +13,6 @@ import static org.opendaylight.mdsal.binding.testutils.AssertDataObjects.assertE
 import com.google.common.base.Optional;
 import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 import javax.inject.Inject;
@@ -54,6 +53,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transp
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.VtepsKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.ovsdb.node.attributes.ConnectionInfo;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Component tests for ITM TEP Auto Config feature.
@@ -942,9 +942,9 @@ public class ItmTepAutoConfigTest {
                 .read(LogicalDatastoreType.OPERATIONAL, notHostedPath).checkedGet().get().getUnknownVteps();
         //modifing the dpnid and keeping the ip same.
         for (UnknownVteps unknownVtep:unknownVtepsList) {
-            Vteps vteps = new VtepsBuilder().setDpnId(new BigInteger("10"))
+            Vteps vteps = new VtepsBuilder().setDpnId(Uint64.valueOf(10))
                     .setIpAddress(unknownVtep.getIpAddress())
-                    .withKey(new VtepsKey(new BigInteger("10"))).build();
+                    .withKey(new VtepsKey(Uint64.valueOf(10))).build();
             vtepsList.add(vteps);
         }
 
index 2f2686fa86ea1a3b2ceb1ce71687a2a2296bc3fa..3c940cc55d8e0c8616281f0f4efe86d0dd2dce1f 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.genius.itm.tests;
 
 import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -28,6 +27,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transp
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.Vteps;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.VtepsKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public final class ItmTepAutoConfigTestUtil {
     private ItmTepAutoConfigTestUtil() {
@@ -64,7 +64,7 @@ public final class ItmTepAutoConfigTestUtil {
     }
 
     public static InstanceIdentifier<Vteps> getTepIid(IpPrefix subnetMaskObj, String tzName,
-        BigInteger dpnId, String portName) {
+            Uint64 dpnId, String portName) {
         VtepsKey vtepkey = new VtepsKey(dpnId);
 
         InstanceIdentifier<Vteps> vtepIid = InstanceIdentifier.builder(TransportZones.class)
index 6036de78c24df6f2e191eb875e2db76cd84eb4c7..22b9d9b9b231ae1cefda67864cb1a2c3d84f1439 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.itm.tests;
 
-import java.math.BigInteger;
 import org.opendaylight.genius.itm.globals.ITMConstants;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
@@ -17,12 +16,13 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeBase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeMplsOverGre;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeVxlan;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public interface ItmTestConstants {
 
     String EXT_TUNNEL_INTERFACE_NAME = "tunfdeecc7cb4d";
-    BigInteger DP_ID_1 = BigInteger.valueOf(1);
-    BigInteger DP_ID_2 = BigInteger.valueOf(2);
+    Uint64 DP_ID_1 = Uint64.ONE;
+    Uint64 DP_ID_2 = Uint64.valueOf(2);
     int VLAN_ID = 100 ;
     String PORT_NAME_1 = "phy0";
     String PARENT_INTERFACE_NAME = "1:phy0:100";
@@ -52,16 +52,16 @@ public interface ItmTestConstants {
 
     String DEF_BR_NAME = "br-int";
     String DEF_BR_DPID = "00:00:00:00:00:00:00:01";
-    BigInteger INT_DEF_BR_DPID = BigInteger.valueOf(1);
+    Uint64 INT_DEF_BR_DPID = Uint64.ONE;
 
     String BR2_NAME = "br2";
     String BR2_DPID = "00:00:00:00:00:00:00:02";
-    BigInteger INT_BR2_DPID = BigInteger.valueOf(2);
+    Uint64 INT_BR2_DPID = Uint64.valueOf(2);
 
     //not hosted tz constants
     String NOT_HOSTED_TZ_TEP_IP = "192.168.10.20";
     String NOT_HOSTED_TZ_TEPDPN_ID = "0";
-    BigInteger NOT_HOSTED_INT_TZ_TEPDPN_ID = BigInteger.valueOf(0);
+    Uint64 NOT_HOSTED_INT_TZ_TEPDPN_ID = Uint64.ZERO;
     String NOT_HOSTED_TZ_NAME = "NotHostedTZ";
     Boolean OF_TUNNEL = false;
     String NOT_HOSTED_DEF_BR_DPID = "00:00:00:00:00:00:00:00";
index 9d5be2ee7ba43ed20eecfddea267b252ec645437..934538e67fff76040d7aab4a4a55b21196e198a6 100644 (file)
@@ -5,7 +5,6 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.itm.tests.xtend;
 
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZoneBuilder;
@@ -14,7 +13,6 @@ import org.opendaylight.genius.itm.globals.ITMConstants;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeVxlan;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeGre;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefixBuilder;
 import org.opendaylight.genius.itm.tests.ItmTestConstants;
 
 import static extension org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions.operator_doubleGreaterThan
index c505eaddb1276b2be7f8a87861687ef039c82550..ffa8125847eaec44e84e2c8e26dfbe9af6fe4534 100644 (file)
@@ -5,16 +5,13 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.itm.tests.xtend;
 
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.TransportZoneBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.rev160406.transport.zones.transport.zone.VtepsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.TunnelTypeVxlan;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressBuilder;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpPrefixBuilder;
 import org.opendaylight.genius.itm.tests.ItmTestConstants;
-import org.opendaylight.genius.itm.globals.ITMConstants;
 
 import static extension org.opendaylight.mdsal.binding.testutils.XtendBuilderExtensions.operator_doubleGreaterThan
 
index 6cdb1a9e279cbdaec5c70ee9a1ec3d00441891f5..10733dd2380e4a5426650ed7186c2a30a7a2349a 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index 2632353bbaf0c8ec1029c5b2cbe09e767e737219..0d6fda7ebbc7f6f29ecfb1d7b15951cb4b50cf1a 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>karaf4-parent</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index 29dc777299ab8e3c64f6f1b69333e0ff3850640d..e210b423024efc99f5b20a980ecbe2246501b29f 100644 (file)
@@ -94,7 +94,8 @@ public class LockManagerServiceImpl implements LockManagerService {
         String lockName = input.getLockName();
         String owner = lockManagerUtils.getUniqueID();
         LOG.debug("Locking {}, owner {}" , lockName, owner);
-        long waitTime = input.getTime() == null ? DEFAULT_WAIT_TIME_IN_MILLIS * DEFAULT_RETRY_COUNT : input.getTime();
+        long waitTime = input.getTime() == null ? DEFAULT_WAIT_TIME_IN_MILLIS * DEFAULT_RETRY_COUNT
+                                                : input.getTime().toJava();
         TimeUnit timeUnit = input.getTimeUnit() == null ? TimeUnit.MILLISECONDS
                 : lockManagerUtils.convertToTimeUnit(input.getTimeUnit());
         waitTime = timeUnit.toMillis(waitTime);
index 68d03389a5d17da505f493f0eae7f61c693f90c7..ce98ca4ff0876a75bbeb4ec33a9840fee6ce4dc9 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index 1009ed9e992ebec77c54e77b4499a2663d4e896c..ef8c47ced519100df25fdbf2fc29fa3fc4c78238 100644 (file)
@@ -25,6 +25,11 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
        build failure. Please do not modify this unless you have a good reason. -->
   <name>ODL :: genius :: ${project.artifactId}</name>
 
+  <properties>
+    <!-- FIXME: Workaround for https://issues.apache.org/jira/browse/ARIES-1923 -->
+    <maven.compiler.release>10</maven.compiler.release>
+  </properties>
+
   <dependencies>
     <dependency>
       <groupId>org.opendaylight.yangtools</groupId>
index f81f60cb5c68c668960bfd1aca88ccef123e554a..d476df8953ac13f8f57044ff6bd875c17a5a1df5 100644 (file)
@@ -7,11 +7,11 @@
  */
 package org.opendaylight.genius.mdsalutil;
 
-import java.math.BigInteger;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public abstract class AbstractSwitchEntity {
 
-    public abstract BigInteger getDpnId();
+    public abstract Uint64 getDpnId();
 
     // Force subclasses to implement hashCode() & equals() WITH m_dpnId!
     @Override
index 4a9b5510f3faadaadeeb81909487d3bd8f5b24bf..853e608ca40849c200c050245a8982a992974547 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.genius.mdsalutil;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import java.math.BigInteger;
 import java.util.List;
 import org.eclipse.jdt.annotation.Nullable;
 import org.immutables.value.Value.Default;
@@ -19,10 +18,12 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.ta
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowCookie;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowModFlags;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 @Immutable
 @OpenDaylightImmutableStyle
 public abstract class FlowEntity extends AbstractSwitchEntity {
+    protected static final Uint64 DEFAULT_COOKIE = Uint64.valueOf("0110000", 16).intern();
 
     // This is required as it will cause the code generation by @Immutable.org to implement Builder,
     // which is required Xtend sources can use the XtendBuilderExtensions.operator_doubleGreaterThan
@@ -32,8 +33,8 @@ public abstract class FlowEntity extends AbstractSwitchEntity {
 
     // This was done because MDSALManager has this hard-coded like this, upon MDSALManager.installFlow()
     @Default
-    public BigInteger getCookie() {
-        return new BigInteger("0110000", 16);
+    public Uint64 getCookie() {
+        return DEFAULT_COOKIE;
     }
 
     public abstract String getFlowId();
index 2ba6b833d236feb81e2ad19ffe466add471bda94..33b49dea673a1eb51bbf176fd929696e747337d5 100644 (file)
@@ -7,17 +7,17 @@
  */
 package org.opendaylight.genius.mdsalutil;
 
-import java.math.BigInteger;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public final class FlowInfoKey {
 
-    private final BigInteger dpId;
+    private final Uint64 dpId;
     private final short tableId;
     private final Match matches;
     private final String flowId;
 
-    public FlowInfoKey(BigInteger dpId, short tableId, Match matches, String flowId) {
+    public FlowInfoKey(Uint64 dpId, short tableId, Match matches, String flowId) {
         this.dpId = dpId;
         this.tableId = tableId;
         this.matches = matches;
@@ -32,7 +32,7 @@ public final class FlowInfoKey {
         return matches;
     }
 
-    public BigInteger getDpId() {
+    public Uint64 getDpId() {
         return dpId;
     }
 
index e1c3e31dbc7d7de9796d62131cb27b8082c1ad5c..ad3928db76ebcbbb1d912facff0316db2a5dba25 100644 (file)
@@ -7,14 +7,14 @@
  */
 package org.opendaylight.genius.mdsalutil;
 
-import java.math.BigInteger;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public final class GroupInfoKey {
 
-    private final BigInteger dpId;
+    private final Uint64 dpId;
     private final long groupId;
 
-    public GroupInfoKey(BigInteger dpId, long groupId) {
+    public GroupInfoKey(Uint64 dpId, long groupId) {
         this.dpId = dpId;
         this.groupId = groupId;
     }
@@ -23,7 +23,7 @@ public final class GroupInfoKey {
         return groupId;
     }
 
-    public BigInteger getDpId() {
+    public Uint64 getDpId() {
         return dpId;
     }
 
index f34b29369d017d8aedc8e390161da62fd90ae106..c6d964f2120439556edecea4e2a663c8ae3cc3d7 100644 (file)
@@ -5,12 +5,10 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.mdsalutil;
 
 import com.google.common.base.Optional;
 import com.google.common.net.InetAddresses;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -90,6 +88,8 @@ import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier.InstanceIdentifierBuilder;
 import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -115,8 +115,8 @@ public class MDSALUtil {
 
     }
 
-    public static FlowEntity buildFlowEntity(BigInteger dpnId, short tableId, String flowId, int priority,
-            String flowName, int idleTimeOut, int hardTimeOut, BigInteger cookie,
+    public static FlowEntity buildFlowEntity(Uint64 dpnId, short tableId, String flowId, int priority,
+            String flowName, int idleTimeOut, int hardTimeOut, Uint64 cookie,
             List<? extends MatchInfoBase> listMatchInfoBase, List<InstructionInfo> listInstructionInfo) {
 
         FlowEntityBuilder builder = new FlowEntityBuilder()
@@ -139,14 +139,18 @@ public class MDSALUtil {
 
     // TODO: CHECK IF THIS IS USED
     public static Flow buildFlow(short tableId, String flowId, int priority, String flowName, int idleTimeOut,
-            int hardTimeOut, BigInteger cookie, List<? extends MatchInfoBase> listMatchInfoBase,
+            int hardTimeOut, Uint64 cookie, List<? extends MatchInfoBase> listMatchInfoBase,
             List<InstructionInfo> listInstructionInfo) {
-        return MDSALUtil.buildFlow(tableId, flowId, priority, flowName, idleTimeOut, hardTimeOut, cookie,
+        return buildFlow(tableId, flowId, priority, flowName, idleTimeOut, hardTimeOut, cookie,
                 listMatchInfoBase, listInstructionInfo, true);
     }
 
+    // FIXME: priority -> Uint16
+    // FIXME: tableId -> Uint8
+    // FIXME: idleHardOut -> Uint16
+    // FIXME: idleTiemOut -> Uint16
     public static Flow buildFlow(short tableId, String flowId, int priority, String flowName, int idleTimeOut,
-            int hardTimeOut, BigInteger cookie, List<? extends MatchInfoBase>  listMatchInfoBase,
+            int hardTimeOut, Uint64 cookie, List<? extends MatchInfoBase>  listMatchInfoBase,
             List<InstructionInfo> listInstructionInfo, boolean isStrict) {
         FlowKey key = new FlowKey(new FlowId(flowId));
         return new FlowBuilder().setMatch(buildMatches(listMatchInfoBase)).withKey(key)
@@ -161,14 +165,14 @@ public class MDSALUtil {
     }
 
     public static Flow buildFlowNew(short tableId, String flowId, int priority, String flowName, int idleTimeOut,
-            int hardTimeOut, BigInteger cookie, List<? extends MatchInfoBase> listMatchInfoBase,
+            int hardTimeOut, Uint64 cookie, List<? extends MatchInfoBase> listMatchInfoBase,
             List<Instruction> listInstructionInfo) {
         return MDSALUtil.buildFlowNew(tableId, flowId, priority, flowName, idleTimeOut, hardTimeOut, cookie,
                 listMatchInfoBase, listInstructionInfo, true);
     }
 
     private static Flow buildFlowNew(short tableId, String flowId, int priority, String flowName, int idleTimeOut,
-                                  int hardTimeOut, BigInteger cookie, List<? extends MatchInfoBase>  listMatchInfoBase,
+                                  int hardTimeOut, Uint64 cookie, List<? extends MatchInfoBase>  listMatchInfoBase,
                                   List<Instruction> listInstructionInfo, boolean isStrict) {
         FlowKey key = new FlowKey(new FlowId(flowId));
         return new FlowBuilder().setMatch(buildMatches(listMatchInfoBase)).withKey(key)
@@ -179,7 +183,7 @@ public class MDSALUtil {
                 .setCookie(new FlowCookie(cookie)).build();
     }
 
-    public static GroupEntity buildGroupEntity(BigInteger dpnId, long groupId, String groupName, GroupTypes groupType,
+    public static GroupEntity buildGroupEntity(Uint64 dpnId, long groupId, String groupName, GroupTypes groupType,
             List<BucketInfo> listBucketInfo) {
 
         GroupEntityBuilder groupEntity = new GroupEntityBuilder();
@@ -198,7 +202,7 @@ public class MDSALUtil {
     }
 
     public static TransmitPacketInput getPacketOutDefault(List<ActionInfo> actionInfos, byte[] payload,
-            BigInteger dpnId) {
+            Uint64 dpnId) {
         return new TransmitPacketInputBuilder()
                 .setAction(buildActions(actionInfos))
                 .setPayload(payload)
@@ -230,13 +234,13 @@ public class MDSALUtil {
                 .setIngress(ingress).setEgress(ingress).build();
     }
 
-    public static TransmitPacketInput getPacketOut(List<ActionInfo> actionInfos, byte[] payload, BigInteger dpnId,
+    public static TransmitPacketInput getPacketOut(List<ActionInfo> actionInfos, byte[] payload, Uint64 dpnId,
             NodeConnectorRef nodeConnRef) {
         // TODO Auto-generated method stub
         return null;
     }
 
-    public static TransmitPacketInput getPacketOut(List<Action> actions, byte[] payload, BigInteger dpnId) {
+    public static TransmitPacketInput getPacketOut(List<Action> actions, byte[] payload, Uint64 dpnId) {
         NodeConnectorRef ncRef = getDefaultNodeConnRef(dpnId);
         return new TransmitPacketInputBuilder()
                 .setAction(actions)
@@ -247,7 +251,7 @@ public class MDSALUtil {
                 .setIngress(ncRef).setEgress(ncRef).build();
     }
 
-    public static Action retrieveSetTunnelIdAction(BigInteger tunnelId, int actionKey) {
+    public static Action retrieveSetTunnelIdAction(Uint64 tunnelId, int actionKey) {
         return new ActionBuilder().setAction(
                 new SetFieldCaseBuilder().setSetField(new SetFieldBuilder().setTunnel(new TunnelBuilder()
                 .setTunnelId(tunnelId).build()).build())
@@ -270,10 +274,10 @@ public class MDSALUtil {
                + (mask == 0 ? "" : "/" + mask);
     }
 
-    public static BigInteger getBigIntIpFromIpAddress(IpAddress ipAddr) {
+    public static Uint64 getBigIntIpFromIpAddress(IpAddress ipAddr) {
         String ipString = ipAddr.getIpv4Address().getValue();
         int ipInt = InetAddresses.coerceToInteger(InetAddresses.forString(ipString));
-        return BigInteger.valueOf(ipInt & 0xffffffffL);
+        return Uint64.valueOf(ipInt & 0xffffffffL);
     }
 
 
@@ -347,11 +351,11 @@ public class MDSALUtil {
     }
 
     // TODO: Check the port const
-    public static NodeConnectorRef getDefaultNodeConnRef(BigInteger dpId) {
+    public static NodeConnectorRef getDefaultNodeConnRef(Uint64 dpId) {
         return getNodeConnRef(NODE_PREFIX + SEPARATOR + dpId, "0xfffffffd");
     }
 
-    public static NodeConnectorRef getNodeConnRef(BigInteger dpId, String port) {
+    public static NodeConnectorRef getNodeConnRef(Uint64 dpId, String port) {
         return getNodeConnRef(NODE_PREFIX + SEPARATOR + dpId, port);
     }
 
@@ -375,13 +379,13 @@ public class MDSALUtil {
         return nodeConnectorRef;
     }
 
-    public static BigInteger getDpnIdFromNodeName(NodeId nodeId) {
+    public static Uint64 getDpnIdFromNodeName(NodeId nodeId) {
         return getDpnIdFromNodeName(nodeId.getValue());
     }
 
-    public static BigInteger getDpnIdFromNodeName(String mdsalNodeName) {
+    public static Uint64 getDpnIdFromNodeName(String mdsalNodeName) {
         String dpId = mdsalNodeName.substring(mdsalNodeName.lastIndexOf(':') + 1);
-        return new BigInteger(dpId);
+        return Uint64.valueOf(dpId);
     }
 
     public static long getOfPortNumberFromPortName(NodeConnectorId nodeConnectorId) {
@@ -407,13 +411,8 @@ public class MDSALUtil {
         }
     }
 
-    public static BigInteger getDpnId(String datapathId) {
-        if (datapathId != null) {
-            String dpIdStr = datapathId.replace(":", "");
-            BigInteger dpnId =  new BigInteger(dpIdStr, 16);
-            return dpnId;
-        }
-        return null;
+    public static Uint64 getDpnId(String datapathId) {
+        return datapathId == null ? null : Uint64.valueOf(datapathId.replace(":", ""), 16);
     }
 
     public static Instruction buildAndGetPopVlanActionInstruction(int actionKey, int instructionKey) {
@@ -443,7 +442,7 @@ public class MDSALUtil {
                 .setEnd(endOffSet)
                 .build();
         nxRegLoadBuilder.setDst(dst);
-        nxRegLoadBuilder.setValue(new BigInteger(Long.toString(value)));
+        nxRegLoadBuilder.setValue(Uint64.valueOf(value));
         ActionBuilder ab = new ActionBuilder();
         ab.setAction(new NxActionRegLoadNodesNodeTableFlowApplyActionsCaseBuilder()
                 .setNxRegLoad(nxRegLoadBuilder.build()).build());
@@ -522,13 +521,15 @@ public class MDSALUtil {
         return buildWriteActionsInstruction(listAction, instructionKey);
     }
 
-    public static Instruction buildAndGetWriteMetadaInstruction(BigInteger metadata,
-                                                                BigInteger mask, int instructionKey) {
+    public static Instruction buildAndGetWriteMetadaInstruction(Uint64 metadata, Uint64 mask, int instructionKey) {
         return new InstructionBuilder()
-                .setInstruction(
-                        new WriteMetadataCaseBuilder().setWriteMetadata(
-                                new WriteMetadataBuilder().setMetadata(metadata).setMetadataMask(mask).build())
-                                .build()).withKey(new InstructionKey(instructionKey)).build();
+                .setInstruction(new WriteMetadataCaseBuilder()
+                    .setWriteMetadata(new WriteMetadataBuilder()
+                        .setMetadata(metadata)
+                        .setMetadataMask(mask)
+                        .build())
+                    .build())
+                .withKey(new InstructionKey(instructionKey)).build();
     }
 
     public static Instruction buildAndGetGotoTableInstruction(short tableId, int instructionKey) {
@@ -649,8 +650,8 @@ public class MDSALUtil {
         NxRegLoad regLoad = new NxRegLoadBuilder()
                 .setDst(new DstBuilder().setDstChoice(new DstNxOfInPortCaseBuilder()
                         .setOfInPort(Empty.getInstance()).build())
-                        .setStart(0).setEnd(15).build())
-                .setValue(BigInteger.valueOf(inPortVal)).build();
+                        .setStart(Uint16.ZERO).setEnd(15).build())
+                .setValue(Uint64.valueOf(inPortVal)).build();
         ActionBuilder abExt = new ActionBuilder();
         abExt.withKey(new ActionKey(actionKey));
         abExt.setOrder(actionKey);
index d5e5d57963e0223de22784ed474d995236f8b91c..918eaa6656859406f920f3febf3b0cdae6e361b5 100644 (file)
@@ -7,27 +7,28 @@
  */
 package org.opendaylight.genius.mdsalutil;
 
-import java.math.BigInteger;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public final class MetaDataUtil {
-    public static final BigInteger METADATA_MASK_LPORT_TAG =     new BigInteger("0FFFFF0000000000", 16);
-    public static final BigInteger METADATA_MASK_SERVICE =       new BigInteger("000000FFFF000000", 16);
-    public static final BigInteger METADATA_MASK_SERVICE_INDEX = new BigInteger("F000000000000000", 16);
-    public static final BigInteger METADATA_MASK_VRFID =         new BigInteger("0000000000FFFFFE", 16);
-    public static final BigInteger METADATA_MASK_REMOTE_ACL_TAG = new BigInteger("0000000000FFFFF0", 16);
-    public static final BigInteger METADATA_MASK_POLICY_CLASSIFER_ID = new BigInteger("0000000000FFFFFE", 16);
-    public static final BigInteger METADA_MASK_VALID_TUNNEL_ID_BIT_AND_TUNNEL_ID
-        = new BigInteger("08000000FFFFFF00", 16);
-    public static final BigInteger METADATA_MASK_LABEL_ITM =     new BigInteger("40FFFFFF000000FF", 16);
-    public static final BigInteger METADA_MASK_TUNNEL_ID =       new BigInteger("00000000FFFFFF00", 16);
-    public static final BigInteger METADATA_MASK_SERVICE_SH_FLAG = new BigInteger("000000FFFF000001", 16);
-    public static final BigInteger METADATA_MASK_LPORT_TAG_SH_FLAG =     new BigInteger("0FFFFF0000000001", 16);
-    public static final BigInteger METADATA_MASK_SH_FLAG = new BigInteger("0000000000000001", 16);
-    public static final BigInteger METADATA_MASK_ELAN_SUBNET_ROUTE =    new BigInteger("000000FFFF000000", 16);
-    public static final BigInteger METADATA_MASK_SUBNET_ROUTE =         new BigInteger("000000FFFFFFFFFE", 16);
-    public static final BigInteger METADATA_MASK_ACL_CONNTRACK_CLASSIFIER_TYPE = new BigInteger("0000000000000002", 16);
-    public static final BigInteger METADATA_MASK_ACL_DROP = new BigInteger("0000000000000004", 16);
-    public static final BigInteger REG6_MASK_REMOTE_DPN =     new BigInteger("0FFFFF0000000000", 16);
+    public static final Uint64 METADATA_MASK_LPORT_TAG = Uint64.valueOf("0FFFFF0000000000", 16).intern();
+    public static final Uint64 METADATA_MASK_SERVICE = Uint64.valueOf("000000FFFF000000", 16).intern();
+    public static final Uint64 METADATA_MASK_SERVICE_INDEX = Uint64.valueOf("F000000000000000", 16).intern();
+    public static final Uint64 METADATA_MASK_VRFID = Uint64.valueOf("0000000000FFFFFE", 16).intern();
+    public static final Uint64 METADATA_MASK_REMOTE_ACL_TAG = Uint64.valueOf("0000000000FFFFF0", 16).intern();
+    public static final Uint64 METADATA_MASK_POLICY_CLASSIFER_ID = Uint64.valueOf("0000000000FFFFFE", 16).intern();
+    public static final Uint64 METADA_MASK_VALID_TUNNEL_ID_BIT_AND_TUNNEL_ID = Uint64.valueOf("08000000FFFFFF00", 16)
+            .intern();
+    public static final Uint64 METADATA_MASK_LABEL_ITM = Uint64.valueOf("40FFFFFF000000FF", 16).intern();
+    public static final Uint64 METADA_MASK_TUNNEL_ID = Uint64.valueOf("00000000FFFFFF00", 16).intern();
+    public static final Uint64 METADATA_MASK_SERVICE_SH_FLAG = Uint64.valueOf("000000FFFF000001", 16).intern();
+    public static final Uint64 METADATA_MASK_LPORT_TAG_SH_FLAG = Uint64.valueOf("0FFFFF0000000001", 16).intern();
+    public static final Uint64 METADATA_MASK_SH_FLAG = Uint64.valueOf("0000000000000001", 16).intern();
+    public static final Uint64 METADATA_MASK_ELAN_SUBNET_ROUTE = Uint64.valueOf("000000FFFF000000", 16).intern();
+    public static final Uint64 METADATA_MASK_SUBNET_ROUTE = Uint64.valueOf("000000FFFFFFFFFE", 16).intern();
+    public static final Uint64 METADATA_MASK_ACL_CONNTRACK_CLASSIFIER_TYPE = Uint64.valueOf("0000000000000002", 16)
+            .intern();
+    public static final Uint64 METADATA_MASK_ACL_DROP = Uint64.valueOf("0000000000000004", 16).intern();
+    public static final Uint64 REG6_MASK_REMOTE_DPN = Uint64.valueOf("0FFFFF0000000000", 16).intern();
 
     public static final int METADATA_LPORT_TAG_OFFSET = 40;
     public static final int METADATA_LPORT_TAG_BITLEN = 20;
@@ -39,73 +40,83 @@ public final class MetaDataUtil {
     public static final int REG6_START_INDEX = 0;
     public static final int REG6_END_INDEX = 31;
 
+    private static final Uint64 MASK_FOR_DISPATCHER = Uint64.valueOf("FFFFFFFFFFFFFFFE", 16).intern();
+
     private MetaDataUtil() {
 
     }
 
-    public static BigInteger getMetaDataForLPortDispatcher(int lportTag, short serviceIndex) {
-        return getServiceIndexMetaData(serviceIndex).or(getLportTagMetaData(lportTag));
+    public static Uint64 getMetaDataForLPortDispatcher(int lportTag, short serviceIndex) {
+        // FIXME: this can be done more efficiently
+        return Uint64.valueOf(getServiceIndexMetaData(serviceIndex).toJava().or(
+            getLportTagMetaData(lportTag).toJava()));
     }
 
-    public static BigInteger getMetaDataForLPortDispatcher(int lportTag, short serviceIndex,
-            BigInteger serviceMetaData) {
+    public static Uint64 getMetaDataForLPortDispatcher(int lportTag, short serviceIndex, Uint64 serviceMetaData) {
         return getMetaDataForLPortDispatcher(lportTag, serviceIndex, serviceMetaData, false);
     }
 
-    public static BigInteger getMetaDataForLPortDispatcher(int lportTag, short serviceIndex,
-                                                           BigInteger serviceMetaData, boolean isSHFlagSet) {
-        int shBit = isSHFlagSet ? 1 : 0;
-        return getServiceIndexMetaData(serviceIndex).or(getLportTagMetaData(lportTag)).or(serviceMetaData)
-                .or(BigInteger.valueOf(shBit));
+    public static Uint64 getMetaDataForLPortDispatcher(int lportTag, short serviceIndex,
+                                                       Uint64 serviceMetaData, boolean isSHFlagSet) {
+        return Uint64.fromLongBits(getServiceIndexMetaData(serviceIndex).longValue()
+            | getLportTagMetaData(lportTag).longValue()
+            | serviceMetaData.longValue()
+            | (isSHFlagSet ? 1 : 0));
     }
 
-    public static BigInteger getPolicyClassifierMetaData(long classifier) {
-        return METADATA_MASK_POLICY_CLASSIFER_ID.and(BigInteger.valueOf(classifier).shiftLeft(1));
+    public static Uint64 getPolicyClassifierMetaData(long classifier) {
+        return Uint64.valueOf((METADATA_MASK_POLICY_CLASSIFER_ID.longValue() & classifier) << 1);
     }
 
-    public static BigInteger getServiceIndexMetaData(int serviceIndex) {
-        return new BigInteger("F", 16).and(BigInteger.valueOf(serviceIndex)).shiftLeft(60);
+    public static Uint64 getServiceIndexMetaData(int serviceIndex) {
+        return Uint64.fromLongBits((serviceIndex & 0xFL) << 60);
     }
 
-    public static BigInteger getLportTagMetaData(int lportTag) {
-        return new BigInteger("FFFFF", 16).and(BigInteger.valueOf(lportTag)).shiftLeft(METADATA_LPORT_TAG_OFFSET);
+    public static Uint64 getLportTagMetaData(int lportTag) {
+        return Uint64.fromLongBits((lportTag & 0xFFFFFL) << METADATA_LPORT_TAG_OFFSET);
     }
 
-    public static BigInteger getMetaDataMaskForLPortDispatcher() {
+    public static Uint64 getMetaDataMaskForLPortDispatcher() {
         return getMetaDataMaskForLPortDispatcher(METADATA_MASK_LPORT_TAG);
     }
 
-    public static BigInteger getMetaDataMaskForLPortDispatcher(BigInteger metadataMaskForLPortTag) {
-        return METADATA_MASK_SERVICE_INDEX.or(metadataMaskForLPortTag);
+    public static Uint64 getMetaDataMaskForLPortDispatcher(Uint64 metadataMaskForLPortTag) {
+        return Uint64.fromLongBits(METADATA_MASK_SERVICE_INDEX.longValue() | metadataMaskForLPortTag.longValue());
     }
 
-    public static BigInteger getMetaDataMaskForLPortDispatcher(BigInteger metadataMaskForServiceIndex,
-            BigInteger metadataMaskForLPortTag, BigInteger metadataMaskForService) {
-        return metadataMaskForServiceIndex.or(metadataMaskForLPortTag).or(metadataMaskForService);
+    public static Uint64 getMetaDataMaskForLPortDispatcher(Uint64 metadataMaskForServiceIndex,
+            Uint64 metadataMaskForLPortTag, Uint64 metadataMaskForService) {
+        return Uint64.fromLongBits(metadataMaskForServiceIndex.longValue() | metadataMaskForLPortTag.longValue()
+            | metadataMaskForService.longValue());
     }
 
-    public static BigInteger getMetadataLPort(int portTag) {
-        return new BigInteger("FFFF", 16).and(BigInteger.valueOf(portTag)).shiftLeft(METADATA_LPORT_TAG_OFFSET);
+    public static Uint64 getMetadataLPort(int portTag) {
+        return Uint64.valueOf((portTag & 0xFFFFL) << METADATA_LPORT_TAG_OFFSET);
     }
 
-    public static BigInteger getLportFromMetadata(BigInteger metadata) {
-        return metadata.and(METADATA_MASK_LPORT_TAG).shiftRight(METADATA_LPORT_TAG_OFFSET);
+    public static Uint64 getLportFromMetadata(Uint64 metadata) {
+        // FIXME: this can be done more efficiently
+        return Uint64.valueOf(metadata.toJava().and(METADATA_MASK_LPORT_TAG.toJava())
+            .shiftRight(METADATA_LPORT_TAG_OFFSET));
     }
 
-    public static int getElanTagFromMetadata(BigInteger metadata) {
-        return metadata.and(MetaDataUtil.METADATA_MASK_SERVICE).shiftRight(24).intValue();
+    public static int getElanTagFromMetadata(Uint64 metadata) {
+        // FIXME: this can be done more efficiently
+        return metadata.toJava().and(MetaDataUtil.METADATA_MASK_SERVICE.toJava()).shiftRight(24).intValue();
     }
 
-    public static long getPolicyClassifierFromMetadata(BigInteger metadata) {
-        return metadata.and(METADATA_MASK_POLICY_CLASSIFER_ID).shiftRight(1).longValue();
+    public static long getPolicyClassifierFromMetadata(Uint64 metadata) {
+        // FIXME: this can be done more efficiently
+        return metadata.toJava().and(METADATA_MASK_POLICY_CLASSIFER_ID.toJava()).shiftRight(1).longValue();
     }
 
-    public static BigInteger getElanTagMetadata(long elanTag) {
-        return BigInteger.valueOf(elanTag).shiftLeft(24);
+    public static Uint64 getElanTagMetadata(long elanTag) {
+        return Uint64.fromLongBits(elanTag << 24);
     }
 
-    public static int getServiceTagFromMetadata(BigInteger metadata) {
-        return metadata.and(MetaDataUtil.METADATA_MASK_SERVICE_INDEX)
+    public static int getServiceTagFromMetadata(Uint64 metadata) {
+        // FIXME: this can be done more efficiently
+        return metadata.toJava().and(MetaDataUtil.METADATA_MASK_SERVICE_INDEX.toJava())
                 .shiftRight(60).intValue();
     }
 
@@ -114,11 +125,11 @@ public final class MetaDataUtil {
      * should have 08. So, shifting 08 to 7 bytes (56 bits) and the result is OR-ed with
      * VNI being shifted to 1 byte.
      */
-    public static BigInteger getTunnelIdWithValidVniBitAndVniSet(int vni) {
-        return BigInteger.valueOf(0X08).shiftLeft(56).or(BigInteger.valueOf(vni).shiftLeft(8));
+    public static Uint64 getTunnelIdWithValidVniBitAndVniSet(int vni) {
+        return Uint64.valueOf(8L << 56 | vni << 8);
     }
 
-    public static long getNatRouterIdFromMetadata(BigInteger metadata) {
+    public static long getNatRouterIdFromMetadata(Uint64 metadata) {
         return getVpnIdFromMetadata(metadata);
     }
 
@@ -135,44 +146,50 @@ public final class MetaDataUtil {
      * @param conntrackClassifierType the conntrack classifier flag
      * @return the acl conntrack classifier flag from meta data
      */
-    public static BigInteger getAclConntrackClassifierTypeFromMetaData(BigInteger conntrackClassifierType) {
-        return METADATA_MASK_ACL_CONNTRACK_CLASSIFIER_TYPE.and(conntrackClassifierType.shiftLeft(1));
+    public static Uint64 getAclConntrackClassifierTypeFromMetaData(Uint64 conntrackClassifierType) {
+        // FIXME: this can be done more efficiently
+        return Uint64.valueOf(METADATA_MASK_ACL_CONNTRACK_CLASSIFIER_TYPE.toJava().and(conntrackClassifierType.toJava()
+            .shiftLeft(1)));
     }
 
-    public static BigInteger getAclDropMetaData(BigInteger dropFlag) {
-        return METADATA_MASK_ACL_DROP.and(dropFlag.shiftLeft(2));
+    public static Uint64 getAclDropMetaData(Uint64 dropFlag) {
+        // FIXME: this can be done more efficiently
+        return Uint64.valueOf(METADATA_MASK_ACL_DROP.toJava().and(dropFlag.toJava().shiftLeft(2)));
     }
 
-    public static BigInteger getVpnIdMetadata(long vrfId) {
-        return METADATA_MASK_VRFID.and(BigInteger.valueOf(vrfId).shiftLeft(1));
+    public static Uint64 getVpnIdMetadata(long vrfId) {
+        return Uint64.valueOf(METADATA_MASK_VRFID.longValue() & vrfId << 1);
     }
 
-    public static long getVpnIdFromMetadata(BigInteger metadata) {
-        return metadata.and(METADATA_MASK_VRFID).shiftRight(1).longValue();
+    public static long getVpnIdFromMetadata(Uint64 metadata) {
+        // FIXME: this can be done more efficiently
+        return metadata.toJava().and(METADATA_MASK_VRFID.toJava()).shiftRight(1).longValue();
     }
 
-    public static BigInteger getWriteMetaDataMaskForDispatcherTable() {
-        return new BigInteger("FFFFFFFFFFFFFFFE", 16);
+    public static Uint64 getWriteMetaDataMaskForDispatcherTable() {
+        return MASK_FOR_DISPATCHER;
     }
 
-    public static BigInteger getWriteMetaDataMaskForEgressDispatcherTable() {
-        return new BigInteger("000000FFFFFFFFFE", 16);
+    public static Uint64 getWriteMetaDataMaskForEgressDispatcherTable() {
+        // FIXME: make this an interned constant
+        return Uint64.valueOf("000000FFFFFFFFFE", 16);
     }
 
-    public static BigInteger getLportTagForReg6(int lportTag) {
-        return new BigInteger("FFFFF", 16).and(BigInteger.valueOf(lportTag)).shiftLeft(8);
+    public static Uint64 getLportTagForReg6(int lportTag) {
+        return Uint64.valueOf((lportTag & 0xFFFFF) << 8);
     }
 
-    public static BigInteger getServiceIndexForReg6(int serviceIndex) {
-        return new BigInteger("F", 16).and(BigInteger.valueOf(serviceIndex)).shiftLeft(28);
+    public static Uint64 getServiceIndexForReg6(int serviceIndex) {
+        return Uint64.valueOf((0xFL & serviceIndex) << 28);
     }
 
-    public static BigInteger getInterfaceTypeForReg6(int tunnelType) {
-        return new BigInteger("F", 16).and(BigInteger.valueOf(tunnelType)).shiftLeft(4);
+    public static Uint64 getInterfaceTypeForReg6(int tunnelType) {
+        return Uint64.valueOf((0xF & tunnelType) << 4);
     }
 
     public static long getReg6ValueForLPortDispatcher(int lportTag, short serviceIndex) {
-        return getServiceIndexForReg6(serviceIndex).or(getLportTagForReg6(lportTag)).longValue();
+        // FIXME: this can be done more efficiently
+        return getServiceIndexForReg6(serviceIndex).toJava().or(getLportTagForReg6(lportTag).toJava()).longValue();
     }
 
     /** Utility to fetch the register value for lport dispatcher table.
@@ -180,35 +197,42 @@ public final class MetaDataUtil {
      * and next 4 bits for interface-type
      */
     public static long getReg6ValueForLPortDispatcher(int lportTag, short serviceIndex, short interfaceType) {
-        return getServiceIndexForReg6(serviceIndex).or(getLportTagForReg6(lportTag)
-                .or(getInterfaceTypeForReg6(interfaceType))).longValue();
+        // FIXME: this can be done more efficiently
+        return getServiceIndexForReg6(serviceIndex).toJava().or(getLportTagForReg6(lportTag).toJava()
+            .or(getInterfaceTypeForReg6(interfaceType).toJava())).longValue();
     }
 
     public static long getRemoteDpnMetadatForEgressTunnelTable(long remoteDpnId) {
-        return new BigInteger("FFFFF", 16).and(BigInteger.valueOf(remoteDpnId)).shiftLeft(8).longValue();
+        return (remoteDpnId & 0xFFFFFF) << 8;
     }
 
     public static long getRemoteDpnMaskForEgressTunnelTable() {
-        return REG6_MASK_REMOTE_DPN.shiftRight(32).longValue();
+        // FIXME: this can be done more efficiently
+        return REG6_MASK_REMOTE_DPN.toJava().shiftRight(32).longValue();
     }
 
     public static long getLportTagMaskForReg6() {
-        return METADATA_MASK_LPORT_TAG.shiftRight(32).longValue();
+        // FIXME: this can be done more efficiently
+        return METADATA_MASK_LPORT_TAG.toJava().shiftRight(32).longValue();
     }
 
     public static long getElanMaskForReg() {
-        return METADATA_MASK_SERVICE.shiftRight(24).longValue();
+        // FIXME: this can be done more efficiently
+        return METADATA_MASK_SERVICE.toJava().shiftRight(24).longValue();
     }
 
     public static long getVpnIdMaskForReg() {
-        return METADATA_MASK_VRFID.shiftRight(1).longValue();
+        // FIXME: this can be done more efficiently
+        return METADATA_MASK_VRFID.toJava().shiftRight(1).longValue();
     }
 
-    public static BigInteger mergeMetadataValues(BigInteger metadata, BigInteger metadata2) {
-        return metadata.or(metadata2);
+    public static Uint64 mergeMetadataValues(Uint64 metadata, Uint64 metadata2) {
+        // FIXME: this can be done more efficiently
+        return Uint64.valueOf(metadata.toJava().or(metadata2.toJava()));
     }
 
-    public static BigInteger mergeMetadataMask(BigInteger mask, BigInteger mask2) {
-        return mask.or(mask2);
+    public static Uint64 mergeMetadataMask(Uint64 mask, Uint64 mask2) {
+        // FIXME: this can be done more efficiently
+        return Uint64.valueOf(mask.toJava().or(mask2.toJava()));
     }
 }
index bbddc0438a201884c685a287f29a2331b0f557a9..7482d1e6fbf9d7ee80da0fabe2c3a0260c33e748 100644 (file)
@@ -31,15 +31,15 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public final class NWUtil {
-
     private static final Logger LOG = LoggerFactory.getLogger(NWUtil.class);
-
-    private static byte[] HIGH_128_BITS = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1};
-    private static BigInteger HIGH_128_INT = new BigInteger(HIGH_128_BITS);
+    private static final BigInteger HIGH_128_INT = new BigInteger(new byte[] {
+        -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
+    });
 
     private NWUtil() {
 
@@ -161,8 +161,8 @@ public final class NWUtil {
     /**
      * Returns the ids of the currently operative DPNs.
      */
-    public static List<BigInteger> getOperativeDPNs(DataBroker dataBroker) {
-        List<BigInteger> result = new LinkedList<>();
+    public static List<Uint64> getOperativeDPNs(DataBroker dataBroker) {
+        List<Uint64> result = new LinkedList<>();
         InstanceIdentifier<Nodes> nodesInstanceIdentifier = InstanceIdentifier.builder(Nodes.class).build();
         Optional<Nodes> nodesOptional = MDSALUtil.read(dataBroker, LogicalDatastoreType.OPERATIONAL,
                                                        nodesInstanceIdentifier);
@@ -172,7 +172,7 @@ public final class NWUtil {
         for (Node node : nodesOptional.get().nonnullNode()) {
             NodeId nodeId = node.getId();
             if (nodeId != null) {
-                BigInteger dpnId = MDSALUtil.getDpnIdFromNodeName(nodeId);
+                Uint64 dpnId = MDSALUtil.getDpnIdFromNodeName(nodeId);
                 result.add(dpnId);
             }
         }
index 9827c25aeb3ace38fded869c6e8cadace1f645c4..0bdefd45ea25d3fff73dbdbc633d922b6c057dcf 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.genius.mdsalutil;
 
-import java.math.BigInteger;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public interface NwConstants {
 
@@ -94,28 +94,29 @@ public interface NwConstants {
     String INGRESS_COUNTERS_SERVICE_NAME = "INGRESS_COUNTERS_SERVICE";
     String EGRESS_COUNTERS_SERVICE_NAME = "EGRESS_COUNTERS_SERVICE";
 
-    BigInteger COOKIE_IPV6_TABLE = new BigInteger("4000000", 16);
-    BigInteger COOKIE_QOS_TABLE = new BigInteger("4000001", 16);
-    BigInteger VLAN_TABLE_COOKIE = new BigInteger("8000000", 16);
-    BigInteger COOKIE_VM_INGRESS_TABLE = new BigInteger("8000001", 16);
-    BigInteger COOKIE_VM_LFIB_TABLE = new BigInteger("8000002", 16);
-    BigInteger COOKIE_VM_FIB_TABLE =  new BigInteger("8000003", 16);
-    BigInteger COOKIE_DNAT_TABLE = new BigInteger("8000004", 16);
-    BigInteger COOKIE_TS_TABLE = new BigInteger("8000005", 16);
-    BigInteger COOKIE_SNAT_TABLE = new BigInteger("8000006", 16);
-    BigInteger EGRESS_DISPATCHER_TABLE_COOKIE = new BigInteger("8000007", 16);
-    BigInteger COOKIE_OUTBOUND_NAPT_TABLE = new BigInteger("8000008", 16);
-    BigInteger COOKIE_L3_GW_MAC_TABLE = new BigInteger("8000009", 16);
-    BigInteger COOKIE_SUBNET_ROUTE_TABLE_MISS = new BigInteger("8000010", 16);
-    BigInteger EGRESS_POLICY_CLASSIFIER_COOKIE = new BigInteger("8000230", 16);
-    BigInteger EGRESS_POLICY_ROUTING_COOKIE = new BigInteger("8000231", 16);
-    BigInteger COOKIE_VXLAN_TRUNK_L2_TABLE = new BigInteger("1200000", 16);
-    BigInteger COOKIE_GRE_TRUNK_L2_TABLE = new BigInteger("1400000", 16);
-    BigInteger COOKIE_ELAN_INGRESS_TABLE = new BigInteger("8040000", 16);
-    BigInteger TUNNEL_TABLE_COOKIE = new BigInteger("9000000", 16);
-    BigInteger COOKIE_ARP_RESPONDER = new BigInteger("8220000", 16);
-    BigInteger COOKIE_COE_KUBE_PROXY_TABLE = new BigInteger("8230000", 16);
-    BigInteger COOKIE_ITM_EGRESS_TUNNEL_TABLE = new BigInteger("8000000", 16);
+    // FIXME: There are more efficient ways to express these constants
+    Uint64 COOKIE_IPV6_TABLE = Uint64.valueOf("4000000", 16).intern();
+    Uint64 COOKIE_QOS_TABLE = Uint64.valueOf("4000001", 16).intern();
+    Uint64 VLAN_TABLE_COOKIE = Uint64.valueOf("8000000", 16).intern();
+    Uint64 COOKIE_VM_INGRESS_TABLE = Uint64.valueOf("8000001", 16).intern();
+    Uint64 COOKIE_VM_LFIB_TABLE = Uint64.valueOf("8000002", 16).intern();
+    Uint64 COOKIE_VM_FIB_TABLE = Uint64.valueOf("8000003", 16).intern();
+    Uint64 COOKIE_DNAT_TABLE = Uint64.valueOf("8000004", 16).intern();
+    Uint64 COOKIE_TS_TABLE = Uint64.valueOf("8000005", 16).intern();
+    Uint64 COOKIE_SNAT_TABLE = Uint64.valueOf("8000006", 16).intern();
+    Uint64 EGRESS_DISPATCHER_TABLE_COOKIE = Uint64.valueOf("8000007", 16).intern();
+    Uint64 COOKIE_OUTBOUND_NAPT_TABLE = Uint64.valueOf("8000008", 16).intern();
+    Uint64 COOKIE_L3_GW_MAC_TABLE = Uint64.valueOf("8000009", 16).intern();
+    Uint64 COOKIE_SUBNET_ROUTE_TABLE_MISS = Uint64.valueOf("8000010", 16).intern();
+    Uint64 EGRESS_POLICY_CLASSIFIER_COOKIE = Uint64.valueOf("8000230", 16).intern();
+    Uint64 EGRESS_POLICY_ROUTING_COOKIE = Uint64.valueOf("8000231", 16).intern();
+    Uint64 COOKIE_VXLAN_TRUNK_L2_TABLE = Uint64.valueOf("1200000", 16).intern();
+    Uint64 COOKIE_GRE_TRUNK_L2_TABLE = Uint64.valueOf("1400000", 16).intern();
+    Uint64 COOKIE_ELAN_INGRESS_TABLE = Uint64.valueOf("8040000", 16).intern();
+    Uint64 TUNNEL_TABLE_COOKIE = Uint64.valueOf("9000000", 16).intern();
+    Uint64 COOKIE_ARP_RESPONDER = Uint64.valueOf("8220000", 16).intern();
+    Uint64 COOKIE_COE_KUBE_PROXY_TABLE = Uint64.valueOf("8230000", 16).intern();
+    Uint64 COOKIE_ITM_EGRESS_TUNNEL_TABLE = Uint64.valueOf("8000000", 16).intern();
 
     //Table IDs
     short VLAN_INTERFACE_INGRESS_TABLE = 0;
index 467883a0eb32d39013d90b93a6e8ab9c6b8b4284..a39e72eab72ae98b36f2fa2b9593715342426a9c 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.mdsalutil.actions;
 
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -29,6 +28,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.ni
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.NxLearnBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.nx.learn.FlowMods;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.nx.learn.FlowModsBuilder;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Learn action.
@@ -38,19 +38,19 @@ public class ActionLearn extends ActionInfo {
     private final int idleTimeout;
     private final int hardTimeout;
     private final int priority;
-    private final BigInteger cookie;
+    private final Uint64 cookie;
     private final int flags;
     private final short tableId;
     private final int finIdleTimeout;
     private final int finHardTimeout;
     private final List<FlowMod> flowMods = new ArrayList<>();
 
-    public ActionLearn(int idleTimeout, int hardTimeout, int priority, BigInteger cookie, int flags, short tableId,
+    public ActionLearn(int idleTimeout, int hardTimeout, int priority, Uint64 cookie, int flags, short tableId,
         int finIdleTimeout, int finHardTimeout, List<FlowMod> flowMods) {
         this(0, idleTimeout, hardTimeout, priority, cookie, flags, tableId, finIdleTimeout, finHardTimeout, flowMods);
     }
 
-    public ActionLearn(int actionKey, int idleTimeout, int hardTimeout, int priority, BigInteger cookie, int flags,
+    public ActionLearn(int actionKey, int idleTimeout, int hardTimeout, int priority, Uint64 cookie, int flags,
         short tableId, int finIdleTimeout, int finHardTimeout, List<FlowMod> flowMods) {
         super(actionKey);
         this.idleTimeout = idleTimeout;
@@ -103,7 +103,7 @@ public class ActionLearn extends ActionInfo {
         return priority;
     }
 
-    public BigInteger getCookie() {
+    public Uint64 getCookie() {
         return cookie;
     }
 
index 47353e25918c54645f03d144d3f236870abd0f1b..bb1d772ab5c6350238b014ed23204e52e2cc727d 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.genius.mdsalutil.actions;
 
 import com.google.common.net.InetAddresses;
-import java.math.BigInteger;
 import org.opendaylight.genius.mdsalutil.ActionInfo;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
@@ -18,6 +17,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.ni
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoadBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.nx.reg.load.DstBuilder;
 import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Load IP Address to SPA (Sender Protocol Address).
@@ -52,10 +53,10 @@ public class ActionLoadIpToSpa extends ActionInfo {
                 .setNxRegLoad(new NxRegLoadBuilder()
                     .setDst(new DstBuilder()
                         .setDstChoice(new DstOfArpSpaCaseBuilder().setOfArpSpa(Empty.getInstance()).build())
-                        .setStart(0)
+                        .setStart(Uint16.ZERO)
                         .setEnd(31)
                         .build())
-                    .setValue(BigInteger.valueOf(
+                    .setValue(Uint64.valueOf(
                         InetAddresses.coerceToInteger(InetAddresses.forString(address)) & 0xffffffffL))
                     .build())
                 .build())
index ae0ee9b92e42905ac6a07f42135ca3b52b85bf19..d74c029667db5c6adbac351121b3c6ea1532aba0 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.mdsalutil.actions;
 
-import java.math.BigInteger;
 import org.opendaylight.genius.mdsalutil.ActionInfo;
 import org.opendaylight.genius.mdsalutil.NWUtil;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
@@ -19,6 +18,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.ni
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoadBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.nx.reg.load.DstBuilder;
 import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Load MAC address to SHA (Sender Hardware Address).
@@ -53,10 +54,10 @@ public class ActionLoadMacToSha extends ActionInfo {
                 .setNxRegLoad(new NxRegLoadBuilder()
                     .setDst(new DstBuilder()
                         .setDstChoice(new DstNxArpShaCaseBuilder().setNxArpSha(Empty.getInstance()).build())
-                        .setStart(0)
+                        .setStart(Uint16.ZERO)
                         .setEnd(47)
                         .build())
-                    .setValue(BigInteger.valueOf(NWUtil.macToLong(address)))
+                    .setValue(Uint64.valueOf(NWUtil.macToLong(address)))
                     .build())
                 .build())
             .withKey(new ActionKey(newActionKey))
index a6672c4b71fd280418965bbd6dc6f4d109e0c366..d3637982744a0890ed1510a3faa33a26fd868b57 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.mdsalutil.actions;
 
-import java.math.BigInteger;
 import org.opendaylight.genius.mdsalutil.ActionInfo;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
@@ -17,19 +16,21 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.ni
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoadBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.nx.reg.load.DstBuilder;
 import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * NX load in port action.
  */
 public class ActionNxLoadInPort extends ActionInfo {
 
-    private final BigInteger value;
+    private final Uint64 value;
 
-    public ActionNxLoadInPort(BigInteger value) {
+    public ActionNxLoadInPort(Uint64 value) {
         this(0, value);
     }
 
-    public ActionNxLoadInPort(int actionKey, BigInteger value) {
+    public ActionNxLoadInPort(int actionKey, Uint64 value) {
         super(actionKey);
         this.value = value;
     }
@@ -46,7 +47,7 @@ public class ActionNxLoadInPort extends ActionInfo {
                 .setNxRegLoad(new NxRegLoadBuilder()
                     .setDst(new DstBuilder()
                         .setDstChoice(new DstNxOfInPortCaseBuilder().setOfInPort(Empty.getInstance()).build())
-                        .setStart(0)
+                        .setStart(Uint16.ZERO)
                         .setEnd(15)
                         .build())
                     .setValue(value)
@@ -56,7 +57,7 @@ public class ActionNxLoadInPort extends ActionInfo {
             .build();
     }
 
-    public BigInteger getValue() {
+    public Uint64 getValue() {
         return value;
     }
 
index d99b6a71b0819a46587410b5ea52d3aa077ab363..069f43d663771f49b9cf1c65a1217a6c68ba7b2c 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.mdsalutil.actions;
 
-import java.math.BigInteger;
 import org.opendaylight.genius.mdsalutil.ActionInfo;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
@@ -17,21 +16,22 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.ni
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoadBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.nx.reg.load.DstBuilder;
 import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * NX load metadata action.
  */
 public class ActionNxLoadMetadata extends ActionInfo {
 
-    private final BigInteger value;
+    private final Uint64 value;
     private final Integer startBit;
     private final Integer endBit;
 
-    public ActionNxLoadMetadata(BigInteger value, Integer startBit, Integer endBit) {
+    public ActionNxLoadMetadata(Uint64 value, Integer startBit, Integer endBit) {
         this(0, value, startBit, endBit);
     }
 
-    public ActionNxLoadMetadata(int actionKey, BigInteger value, Integer startBit, Integer endBit) {
+    public ActionNxLoadMetadata(int actionKey, Uint64 value, Integer startBit, Integer endBit) {
         super(actionKey);
         this.value = value;
         this.startBit = startBit;
@@ -60,7 +60,7 @@ public class ActionNxLoadMetadata extends ActionInfo {
             .build();
     }
 
-    public BigInteger getValue() {
+    public Uint64 getValue() {
         return value;
     }
 
index 4eae67eb674d6477da5584a9198c7e918697267c..b8d51431103b397dcb935cc3548f1d7365a4bef3 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.mdsalutil.actions;
 
-import java.math.BigInteger;
 import org.opendaylight.genius.mdsalutil.ActionInfo;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
@@ -18,6 +17,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.ni
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoadBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.nx.reg.load.Dst;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.nx.reg.load.DstBuilder;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Action to load an NXM register.
@@ -52,7 +52,7 @@ public class ActionRegLoad extends ActionInfo {
                 .setStart(start)
                 .setEnd(end)
                 .build();
-        NxRegLoadBuilder nxRegLoadBuilder = new NxRegLoadBuilder().setDst(dst).setValue(BigInteger.valueOf(load));
+        NxRegLoadBuilder nxRegLoadBuilder = new NxRegLoadBuilder().setDst(dst).setValue(Uint64.valueOf(load));
 
         return new ActionBuilder()
                 .setAction(new NxActionRegLoadNodesNodeTableFlowApplyActionsCaseBuilder().setNxRegLoad(
index 8f76387eebc94ecd43fc23907522ed623bcb396a..128a0534ee70769f87cd6c24c5a8e986a626d658 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.mdsalutil.actions;
 
-import java.math.BigInteger;
 import org.opendaylight.genius.mdsalutil.ActionInfo;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
@@ -17,6 +16,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.ni
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoadBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.nx.reg.load.DstBuilder;
 import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Set ARP Operation Type that is Request or Replay.
@@ -54,7 +54,7 @@ public class ActionSetArpOp extends ActionInfo {
                         .setStart(0)
                         .setEnd(15)
                         .build())
-                    .setValue(BigInteger.valueOf(value))
+                    .setValue(Uint64.valueOf(value))
                     .build())
                 .build())
             .withKey(new ActionKey(newActionKey))
index 0e3ebc2da728eba8d82732ae101dab5e30c729c2..1a0154244f606edd0586ab8475f403b0dc7ecdf7 100644 (file)
@@ -5,11 +5,8 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.mdsalutil.actions;
 
-import java.math.BigInteger;
-
 import org.opendaylight.genius.mdsalutil.ActionInfo;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetFieldCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.field._case.SetFieldBuilder;
@@ -17,21 +14,22 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.acti
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.MetadataBuilder;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public class ActionSetFieldMeta extends ActionInfo {
 
-    private final BigInteger metadataValue;
+    private final Uint64 metadataValue;
 
-    public ActionSetFieldMeta(BigInteger metadataValue) {
+    public ActionSetFieldMeta(Uint64 metadataValue) {
         this(0, metadataValue);
     }
 
-    public ActionSetFieldMeta(int actionKey, BigInteger metadataValue) {
+    public ActionSetFieldMeta(int actionKey, Uint64 metadataValue) {
         super(actionKey);
         this.metadataValue = metadataValue;
     }
 
-    public BigInteger getMetadataValue() {
+    public Uint64 getMetadataValue() {
         return metadataValue;
     }
 
index f8b3d5761db89b75974553c018cd9de87ad9ca89..99268c122705151a4830c5206e6fd06a594ec524 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.mdsalutil.actions;
 
-import java.math.BigInteger;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.genius.mdsalutil.ActionInfo;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetFieldCaseBuilder;
@@ -16,28 +15,29 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.acti
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.ActionKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.TunnelBuilder;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Set tunnel id field action.
  */
 public class ActionSetFieldTunnelId extends ActionInfo {
 
-    private final BigInteger tunnelId;
-    @Nullable private final BigInteger tunnelMask;
+    private final Uint64 tunnelId;
+    private final @Nullable Uint64 tunnelMask;
 
-    public ActionSetFieldTunnelId(BigInteger tunnelId) {
+    public ActionSetFieldTunnelId(Uint64 tunnelId) {
         this(0, tunnelId);
     }
 
-    public ActionSetFieldTunnelId(int actionKey, BigInteger tunnelId) {
+    public ActionSetFieldTunnelId(int actionKey, Uint64 tunnelId) {
         this(actionKey, tunnelId, null);
     }
 
-    public ActionSetFieldTunnelId(BigInteger tunnelId, BigInteger tunnelMask) {
+    public ActionSetFieldTunnelId(Uint64 tunnelId, Uint64 tunnelMask) {
         this(0, tunnelId, tunnelMask);
     }
 
-    public ActionSetFieldTunnelId(int actionKey, BigInteger tunnelId, BigInteger tunnelMask) {
+    public ActionSetFieldTunnelId(int actionKey, Uint64 tunnelId, Uint64 tunnelMask) {
         super(actionKey);
         this.tunnelId = tunnelId;
         this.tunnelMask = tunnelMask;
@@ -67,12 +67,11 @@ public class ActionSetFieldTunnelId extends ActionInfo {
             .build();
     }
 
-    public BigInteger getTunnelId() {
+    public Uint64 getTunnelId() {
         return tunnelId;
     }
 
-    @Nullable
-    public BigInteger getTunnelMask() {
+    public @Nullable Uint64 getTunnelMask() {
         return tunnelMask;
     }
 
@@ -109,5 +108,4 @@ public class ActionSetFieldTunnelId extends ActionInfo {
         return "ActionSetFieldTunnelId [tunnelId=" + tunnelId + ", tunnelMask=" + tunnelMask + ", getActionKey()="
                 + getActionKey() + "]";
     }
-
 }
index 9c320264484c925c5b4e2b74b29d72a5a20fc4b4..e48f1bb489e1879c5bd3bf316ce1e90d67acb5e6 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.mdsalutil.actions;
 
-import java.math.BigInteger;
 import org.opendaylight.genius.mdsalutil.ActionInfo;
 import org.opendaylight.genius.mdsalutil.MDSALUtil;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
@@ -17,20 +16,29 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.acti
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstNxTunIpv4DstCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.group.buckets.bucket.action.action.NxActionRegLoadNodesNodeGroupBucketsBucketActionsCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegLoadNodesNodeTableFlowApplyActionsCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoad;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoadBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.nx.reg.load.Dst;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.nx.reg.load.DstBuilder;
 import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Set tunnel destination IP action.
  */
 public class ActionSetTunnelDestinationIp extends ActionInfo {
+    private static final Dst NX_REGEX_LOAD_DST = new DstBuilder()
+            .setDstChoice(new DstNxTunIpv4DstCaseBuilder().setNxTunIpv4Dst(Empty.getInstance()).build())
+            .setStart(Uint16.ZERO)
+            .setEnd(Uint16.valueOf(31).intern())
+            .build();
+
 
-    private final BigInteger destIp;
+    private final Uint64 destIp;
     private final boolean groupBucket;
 
-    public ActionSetTunnelDestinationIp(BigInteger destIp) {
+    public ActionSetTunnelDestinationIp(Uint64 destIp) {
         this(0, destIp);
     }
 
@@ -38,7 +46,7 @@ public class ActionSetTunnelDestinationIp extends ActionInfo {
         this(0, destIp);
     }
 
-    public ActionSetTunnelDestinationIp(int actionKey, BigInteger destIp) {
+    public ActionSetTunnelDestinationIp(int actionKey, Uint64 destIp) {
         super(actionKey);
         this.destIp = destIp;
         this.groupBucket = false;
@@ -48,7 +56,7 @@ public class ActionSetTunnelDestinationIp extends ActionInfo {
         this(actionKey, MDSALUtil.getBigIntIpFromIpAddress(destIp));
     }
 
-    public BigInteger getDestIp() {
+    public Uint64 getDestIp() {
         return destIp;
     }
 
@@ -63,24 +71,19 @@ public class ActionSetTunnelDestinationIp extends ActionInfo {
 
     @Override
     public Action buildAction(int newActionKey) {
-        NxRegLoadBuilder nxRegLoadBuilder = new NxRegLoadBuilder();
-        Dst dst = new DstBuilder()
-            .setDstChoice(new DstNxTunIpv4DstCaseBuilder().setNxTunIpv4Dst(Empty.getInstance()).build())
-            .setStart(0)
-            .setEnd(31)
-            .build();
-        nxRegLoadBuilder.setDst(dst);
-        nxRegLoadBuilder.setValue(destIp);
-        ActionBuilder ab = new ActionBuilder();
+        NxRegLoad nxRegLoad = new NxRegLoadBuilder()
+                .setDst(NX_REGEX_LOAD_DST)
+                .setValue(destIp)
+                .build();
 
+        ActionBuilder ab = new ActionBuilder().withKey(new ActionKey(newActionKey));
         if (groupBucket) {
             ab.setAction(new NxActionRegLoadNodesNodeGroupBucketsBucketActionsCaseBuilder()
-                .setNxRegLoad(nxRegLoadBuilder.build()).build());
+                .setNxRegLoad(nxRegLoad).build());
         } else {
             ab.setAction(new NxActionRegLoadNodesNodeTableFlowApplyActionsCaseBuilder()
-                .setNxRegLoad(nxRegLoadBuilder.build()).build());
+                .setNxRegLoad(nxRegLoad).build());
         }
-        ab.withKey(new ActionKey(newActionKey));
         return ab.build();
     }
 
index fbe6706f95a23fe81b9acb9ad7fb7ab5eeacf5d3..e5d8e526102ee67d84be760d35c1c73a77f764e2 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.genius.mdsalutil.actions;
 
-import java.math.BigInteger;
 import org.opendaylight.genius.mdsalutil.ActionInfo;
 import org.opendaylight.genius.mdsalutil.MDSALUtil;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress;
@@ -17,20 +16,28 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.acti
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstNxTunIpv4SrcCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.group.buckets.bucket.action.action.NxActionRegLoadNodesNodeGroupBucketsBucketActionsCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegLoadNodesNodeTableFlowApplyActionsCaseBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoad;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoadBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.nx.reg.load.Dst;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.nx.reg.load.DstBuilder;
 import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Set tunnel source IP action.
  */
 public class ActionSetTunnelSourceIp extends ActionInfo {
+    private static final Dst NX_REGEX_LOAD_SRC = new DstBuilder()
+            .setDstChoice(new DstNxTunIpv4SrcCaseBuilder().setNxTunIpv4Src(Empty.getInstance()).build())
+            .setStart(Uint16.ZERO)
+            .setEnd(Uint16.valueOf(31).intern())
+            .build();
 
-    private final BigInteger sourceIp;
+    private final Uint64 sourceIp;
     private final boolean groupBucket;
 
-    public ActionSetTunnelSourceIp(BigInteger sourceIp) {
+    public ActionSetTunnelSourceIp(Uint64 sourceIp) {
         this(0, sourceIp);
     }
 
@@ -38,7 +45,7 @@ public class ActionSetTunnelSourceIp extends ActionInfo {
         this(0, sourceIp);
     }
 
-    public ActionSetTunnelSourceIp(int actionKey, BigInteger sourceIp) {
+    public ActionSetTunnelSourceIp(int actionKey, Uint64 sourceIp) {
         super(actionKey);
         this.sourceIp = sourceIp;
         this.groupBucket = false;
@@ -48,7 +55,7 @@ public class ActionSetTunnelSourceIp extends ActionInfo {
         this(actionKey, MDSALUtil.getBigIntIpFromIpAddress(sourceIp));
     }
 
-    public BigInteger getSourceIp() {
+    public Uint64 getSourceIp() {
         return sourceIp;
     }
 
@@ -63,24 +70,19 @@ public class ActionSetTunnelSourceIp extends ActionInfo {
 
     @Override
     public Action buildAction(int newActionKey) {
-        NxRegLoadBuilder nxRegLoadBuilder = new NxRegLoadBuilder();
-        Dst dst = new DstBuilder()
-            .setDstChoice(new DstNxTunIpv4SrcCaseBuilder().setNxTunIpv4Src(Empty.getInstance()).build())
-            .setStart(0)
-            .setEnd(31)
-            .build();
-        nxRegLoadBuilder.setDst(dst);
-        nxRegLoadBuilder.setValue(sourceIp);
-        ActionBuilder ab = new ActionBuilder();
+        final NxRegLoad nxRegLoad = new NxRegLoadBuilder()
+                .setDst(NX_REGEX_LOAD_SRC)
+                .setValue(sourceIp)
+                .build();
 
+        ActionBuilder ab = new ActionBuilder().withKey(new ActionKey(newActionKey));
         if (groupBucket) {
             ab.setAction(new NxActionRegLoadNodesNodeGroupBucketsBucketActionsCaseBuilder()
-                .setNxRegLoad(nxRegLoadBuilder.build()).build());
+                .setNxRegLoad(nxRegLoad).build());
         } else {
             ab.setAction(new NxActionRegLoadNodesNodeTableFlowApplyActionsCaseBuilder()
-                .setNxRegLoad(nxRegLoadBuilder.build()).build());
+                .setNxRegLoad(nxRegLoad).build());
         }
-        ab.withKey(new ActionKey(newActionKey));
         return ab.build();
     }
 
index 1f317230ea86ece754be1c98fb302ecc9650c77f..1583ae59cebf919452791b19484b6305a6e5f725 100644 (file)
@@ -7,22 +7,22 @@
  */
 package org.opendaylight.genius.mdsalutil.instructions;
 
-import java.math.BigInteger;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteMetadataCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.write.metadata._case.WriteMetadataBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.InstructionBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.InstructionKey;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Write metadata instruction.
  */
 public class InstructionWriteMetadata extends AbstractInstructionInfoImpl {
+    private final Uint64 metadata;
+    private final Uint64 mask;
 
-    private final BigInteger metadata;
-    private final BigInteger mask;
-
-    public InstructionWriteMetadata(BigInteger metadata, BigInteger mask) {
+    // FIXME: this should take and WriteMetadata instance
+    public InstructionWriteMetadata(Uint64 metadata, Uint64 mask) {
         this.metadata = metadata;
         this.mask = mask;
     }
@@ -42,11 +42,11 @@ public class InstructionWriteMetadata extends AbstractInstructionInfoImpl {
                 .build();
     }
 
-    public BigInteger getMetadata() {
+    public Uint64 getMetadata() {
         return metadata;
     }
 
-    public BigInteger getMask() {
+    public Uint64 getMask() {
         return mask;
     }
 
index 42ba7aa8070bd2afdd5e252bcd4ac4979045365e..98674c80a9b9481cd454f068f9f550ec40648321 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.genius.mdsalutil.interfaces;
 
 import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.math.BigInteger;
 import java.util.concurrent.ExecutionException;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
 import org.opendaylight.genius.infra.Datastore.Configuration;
@@ -22,6 +21,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.ta
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public interface IMdsalApiManager {
 
@@ -36,10 +36,10 @@ public interface IMdsalApiManager {
     /**
      * Adds a flow.
      *
-     * @deprecated Use {@link #addFlow(TypedWriteTransaction, BigInteger, Flow)}.
+     * @deprecated Use {@link #addFlow(TypedWriteTransaction, Uint64, Flow)}.
      */
     @Deprecated
-    CheckedFuture<Void,TransactionCommitFailedException> installFlow(BigInteger dpId, Flow flowEntity);
+    CheckedFuture<Void,TransactionCommitFailedException> installFlow(Uint64 dpId, Flow flowEntity);
 
     /**
      * Adds a flow.
@@ -47,7 +47,7 @@ public interface IMdsalApiManager {
      * @deprecated Use {@link #addFlow(TypedWriteTransaction, FlowEntity)}.
      */
     @Deprecated
-    CheckedFuture<Void,TransactionCommitFailedException> installFlow(BigInteger dpId, FlowEntity flowEntity);
+    CheckedFuture<Void,TransactionCommitFailedException> installFlow(Uint64 dpId, FlowEntity flowEntity);
 
     /**
      * Adds the given flow.
@@ -64,15 +64,15 @@ public interface IMdsalApiManager {
      * @param dpId The DPN identifier.
      * @param flow The flow.
      */
-    void addFlow(TypedWriteTransaction<Configuration> tx, BigInteger dpId, Flow flow);
+    void addFlow(TypedWriteTransaction<Configuration> tx, Uint64 dpId, Flow flow);
 
     /**
      * Removes a flow.
      *
-     * @deprecated Use {@link #removeFlow(TypedReadWriteTransaction, BigInteger, String, short)}.
+     * @deprecated Use {@link #removeFlow(TypedReadWriteTransaction, Uint64, String, short)}.
      */
     @Deprecated
-    ListenableFuture<Void> removeFlow(BigInteger dpId, short tableId, FlowId flowId);
+    ListenableFuture<Void> removeFlow(Uint64 dpId, short tableId, FlowId flowId);
 
     /**
      * Removes a flow.
@@ -85,10 +85,10 @@ public interface IMdsalApiManager {
     /**
      * Removes a flow.
      *
-     * @deprecated Use {@link #removeFlow(TypedReadWriteTransaction, BigInteger, Flow)}.
+     * @deprecated Use {@link #removeFlow(TypedReadWriteTransaction, Uint64, Flow)}.
      */
     @Deprecated
-    CheckedFuture<Void,TransactionCommitFailedException> removeFlow(BigInteger dpId, Flow flowEntity);
+    CheckedFuture<Void,TransactionCommitFailedException> removeFlow(Uint64 dpId, Flow flowEntity);
 
     /**
      * Removes the given flow.
@@ -97,7 +97,7 @@ public interface IMdsalApiManager {
      * @param dpId The DPN identifier.
      * @param flow The flow.
      */
-    void removeFlow(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, Flow flow)
+    void removeFlow(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, Flow flow)
         throws ExecutionException, InterruptedException;
 
     /**
@@ -117,7 +117,7 @@ public interface IMdsalApiManager {
      * @param flowKey The flow key.
      * @param tableId The table identifier.
      */
-    void removeFlow(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, FlowKey flowKey, short tableId)
+    void removeFlow(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, FlowKey flowKey, short tableId)
         throws ExecutionException, InterruptedException;
 
     /**
@@ -128,7 +128,7 @@ public interface IMdsalApiManager {
      * @param flowId The flow identifier.
      * @param tableId The table identifier.
      */
-    void removeFlow(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, String flowId, short tableId)
+    void removeFlow(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, String flowId, short tableId)
         throws ExecutionException, InterruptedException;
 
     /**
@@ -146,7 +146,7 @@ public interface IMdsalApiManager {
      * @param dpId The DPN identifier.
      * @param group The group to add.
      */
-    void addGroup(TypedWriteTransaction<Configuration> tx, BigInteger dpId, Group group);
+    void addGroup(TypedWriteTransaction<Configuration> tx, Uint64 dpId, Group group);
 
     /**
      * Remove a group.
@@ -172,7 +172,7 @@ public interface IMdsalApiManager {
      * @param dpId The DPN identifier.
      * @param group The group to remove.
      */
-    void removeGroup(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, Group group)
+    void removeGroup(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, Group group)
         throws ExecutionException, InterruptedException;
 
     /**
@@ -182,7 +182,7 @@ public interface IMdsalApiManager {
      * @param dpId The DPN identifier.
      * @param groupId The group identifier of the group to remove.
      */
-    void removeGroup(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, long groupId)
+    void removeGroup(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, long groupId)
         throws ExecutionException, InterruptedException;
 
     /**
@@ -195,7 +195,7 @@ public interface IMdsalApiManager {
      * @return true if group exists and false otherwise
      */
     @Deprecated
-    boolean groupExists(BigInteger dpId, long groupId);
+    boolean groupExists(Uint64 dpId, long groupId);
 
     /**
      * API to remove the flow on Data Plane Node synchronously. It internally waits for
@@ -246,9 +246,9 @@ public interface IMdsalApiManager {
     @Deprecated
     void syncRemoveGroup(GroupEntity groupEntity);
 
-    void addBucket(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, long groupId, Bucket bucket)
+    void addBucket(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, long groupId, Bucket bucket)
             throws ExecutionException, InterruptedException;
 
-    void removeBucket(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, long groupId, long bucketId)
+    void removeBucket(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, long groupId, long bucketId)
         throws ExecutionException, InterruptedException;
 }
index 2b3f078713b48fa005f2027c919f7329847137f1..c0bff04b17628e3877aef99534d4bcdd881055b8 100644 (file)
@@ -7,21 +7,21 @@
  */
 package org.opendaylight.genius.mdsalutil.matches;
 
-import java.math.BigInteger;
 import java.util.Map;
 import org.opendaylight.genius.mdsalutil.MatchInfo;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * In port match.
  */
 public class MatchInPort extends MatchInfo {
 
-    private final BigInteger dpId;
+    private final Uint64 dpId;
     private final long portNumber;
 
-    public MatchInPort(BigInteger dpId, long portNumber) {
+    public MatchInPort(Uint64 dpId, long portNumber) {
         this.dpId = dpId;
         this.portNumber = portNumber;
     }
@@ -37,7 +37,7 @@ public class MatchInPort extends MatchInfo {
         matchBuilder.setInPort(new NodeConnectorId(nodeConnectorId));
     }
 
-    public BigInteger getDpId() {
+    public Uint64 getDpId() {
         return dpId;
     }
 
index a2f7d441bdba69dfd77ea0a3cb833691445eebde..4b76c49082b03473c3e8432021db55a59f465dcc 100644 (file)
@@ -7,20 +7,20 @@
  */
 package org.opendaylight.genius.mdsalutil.matches;
 
-import java.math.BigInteger;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Metadata;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.MetadataBuilder;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Metadata match.
  */
 public class MatchMetadata extends MatchInfoHelper<Metadata, MetadataBuilder> {
+    // FIXME: just use WriteMetadata
+    private final Uint64 metadata;
+    private final Uint64 mask;
 
-    private final BigInteger metadata;
-    private final BigInteger mask;
-
-    public MatchMetadata(BigInteger metadata, BigInteger mask) {
+    public MatchMetadata(Uint64 metadata, Uint64 mask) {
         this.metadata = metadata;
         this.mask = mask;
     }
@@ -35,11 +35,11 @@ public class MatchMetadata extends MatchInfoHelper<Metadata, MetadataBuilder> {
         builder.setMetadata(metadata).setMetadataMask(mask);
     }
 
-    public BigInteger getMetadata() {
+    public Uint64 getMetadata() {
         return metadata;
     }
 
-    public BigInteger getMask() {
+    public Uint64 getMask() {
         return mask;
     }
 
index d67427f2639f24707ddfe646718ec92097bd61ba..d5c536f61484a0dfc1430bffc8609e0e27aabe54 100644 (file)
@@ -7,25 +7,25 @@
  */
 package org.opendaylight.genius.mdsalutil.matches;
 
-import java.math.BigInteger;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.Tunnel;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.TunnelBuilder;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Tunnel identifier match.
  */
 public class MatchTunnelId extends MatchInfoHelper<Tunnel, TunnelBuilder> {
 
-    private final BigInteger tunnelId;
-    private final BigInteger tunnelMask;
+    private final Uint64 tunnelId;
+    private final Uint64 tunnelMask;
 
-    public MatchTunnelId(BigInteger tunnelId) {
+    public MatchTunnelId(Uint64 tunnelId) {
         this.tunnelId = tunnelId;
         this.tunnelMask = null;
     }
 
-    public MatchTunnelId(BigInteger tunnelId, BigInteger tunnelMask) {
+    public MatchTunnelId(Uint64 tunnelId, Uint64 tunnelMask) {
         this.tunnelId = tunnelId;
         this.tunnelMask = tunnelMask;
     }
@@ -43,11 +43,11 @@ public class MatchTunnelId extends MatchInfoHelper<Tunnel, TunnelBuilder> {
         }
     }
 
-    public BigInteger getTunnelId() {
+    public Uint64 getTunnelId() {
         return tunnelId;
     }
 
-    public BigInteger getTunnelMask() {
+    public Uint64 getTunnelMask() {
         return tunnelMask;
     }
 
index 24d1d0621ba7e4c2fd808b600ff6c476f7765ba7..3f38161025751bfb26bf2abf1e1c7ddd0c014f9f 100644 (file)
@@ -15,6 +15,7 @@ import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.SettableFuture;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -139,6 +140,8 @@ public class ResourceBatchingManager implements AutoCloseable {
         pendingModificationByResourceType.get(resoureType).add(iid);
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+        justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private void afterModification(String resoureType, InstanceIdentifier<?> iid) {
         pendingModificationByResourceType.get(resoureType).remove(iid);
     }
index 83de581391c166c4621986930e8592155957faaf..39814271a30f05fce2daa3f5e5b8fe524684c3b8 100644 (file)
@@ -28,7 +28,7 @@ public class ActionGroupTest {
         Action action = actionInfo.buildAction();
         assertTrue(action.getAction() instanceof GroupActionCase);
         GroupActionCase actionCase = (GroupActionCase) action.getAction();
-        assertEquals(123L, (long) actionCase.getGroupAction().getGroupId());
+        assertEquals(123L, actionCase.getGroupAction().getGroupId().toJava());
     }
 
     @Test
index 088d286de3992423d658cd7c75d83e5e52cd78e3..3fa030ae08bf6f077947c46e076c2226059f1bff 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.genius.mdsalutil.actions;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import java.math.BigInteger;
 import java.util.Arrays;
 import org.junit.Test;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.Action;
@@ -27,6 +26,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.ni
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionLearnNodesNodeTableFlowApplyActionsCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.NxLearn;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.learn.grouping.nx.learn.FlowMods;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Test class for {@link ActionRegLoad}.
@@ -35,7 +35,7 @@ public class ActionLearnTest {
     private static final int IDLE_TIMEOUT = 2;
     private static final int HARD_TIMEOUT = 3;
     private static final int PRIORITY = 4;
-    private static final BigInteger COOKIE = BigInteger.valueOf(5);
+    private static final Uint64 COOKIE = Uint64.valueOf(5);
     private static final int FLAGS = 6;
     private static final short TABLE_ID = (short) 7;
     private static final int FIN_IDLE_TIMEOUT = 8;
index a2db6928c4bf0e3bf04a07a46968a3cc36089aa5..d08b62684e280a694241fcdbc636dffab5bb0889 100644 (file)
@@ -13,7 +13,6 @@ import static org.junit.Assert.assertTrue;
 
 import ch.vorburger.xtendbeans.XtendBeanGenerator;
 import com.google.common.net.InetAddresses;
-import java.math.BigInteger;
 import org.junit.Test;
 import org.opendaylight.genius.mdsalutil.ActionInfo;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.Action;
@@ -21,7 +20,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.ni
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegLoadNodesNodeTableFlowApplyActionsCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoad;
 import org.opendaylight.yangtools.yang.common.Empty;
-
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Test for {@link ActionLoadIpToSpa}.
@@ -48,7 +47,7 @@ public class ActionLoadIpToSpaTest {
         assertEquals(0, nxRegLoad.getDst().getStart().intValue());
         assertEquals(31, nxRegLoad.getDst().getEnd().intValue());
         assertEquals(
-            BigInteger.valueOf(InetAddresses.coerceToInteger(InetAddresses.forString(IP_ADDRESS)) & 0xffffffffL),
+            Uint64.valueOf(InetAddresses.coerceToInteger(InetAddresses.forString(IP_ADDRESS)) & 0xffffffffL),
             nxRegLoad.getValue());
     }
 
index 17f6935f21ccc0c35b658287a511f0ae79e7a025..ffcb8b6db3c4d7eb6944ea93c799827acfb97479 100644 (file)
@@ -12,7 +12,6 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import ch.vorburger.xtendbeans.XtendBeanGenerator;
-import java.math.BigInteger;
 import org.junit.Test;
 import org.opendaylight.genius.mdsalutil.ActionInfo;
 import org.opendaylight.genius.mdsalutil.NWUtil;
@@ -22,6 +21,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.ni
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegLoadNodesNodeTableFlowApplyActionsCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoad;
 import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Test for {@link ActionLoadMacToSha}.
@@ -47,7 +47,8 @@ public class ActionLoadMacToShaTest {
         assertEquals(Empty.getInstance(),dstNxArpShaCase.getNxArpSha());
         assertEquals(0, nxRegLoad.getDst().getStart().intValue());
         assertEquals(47, nxRegLoad.getDst().getEnd().intValue());
-        assertEquals(BigInteger.valueOf(NWUtil.macToLong(new MacAddress(MAC_ADDRESS))), nxRegLoad.getValue());
+        assertEquals(Uint64.valueOf(NWUtil.macToLong(new MacAddress(MAC_ADDRESS))),
+            nxRegLoad.getValue());
     }
 
     @Test
index 1959db19cd76cca7e1f171ee43d45209a24c64eb..b4b1049c57b5ba2fad9cbe35f02132609097e492 100644 (file)
@@ -12,22 +12,23 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import ch.vorburger.xtendbeans.XtendBeanGenerator;
-import java.math.BigInteger;
 import org.junit.Test;
 import org.opendaylight.genius.mdsalutil.ActionInfo;
+import org.opendaylight.genius.mdsalutil.tests.UintXtendBeanGenerator;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.Action;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstNxOfInPortCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegLoadNodesNodeTableFlowApplyActionsCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoad;
 import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Test for {@link ActionNxLoadInPort}.
  */
 public class ActionNxLoadInPortTest {
-    private static final BigInteger VALUE = BigInteger.TEN;
+    private static final Uint64 VALUE = Uint64.valueOf(10).intern();
 
-    private XtendBeanGenerator generator = new XtendBeanGenerator();
+    private final XtendBeanGenerator generator = new UintXtendBeanGenerator();
 
     @Test
     public void actionInfoTest() {
@@ -52,6 +53,6 @@ public class ActionNxLoadInPortTest {
     public void generateAction() {
         ActionInfo actionInfo = new ActionNxLoadInPort(VALUE);
         assertEquals(
-            "new ActionNxLoadInPort(0, " + VALUE + "bi)", generator.getExpression(actionInfo));
+            "new ActionNxLoadInPort(0, (u64)" + VALUE + ")", generator.getExpression(actionInfo));
     }
 }
index a835f69112e968ec1bcdf25d34177668f3421ec9..7a62dd09630b39e734053c56b8b38fa74af40d23 100644 (file)
@@ -12,24 +12,26 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
 import ch.vorburger.xtendbeans.XtendBeanGenerator;
-import java.math.BigInteger;
 import org.junit.Test;
 import org.opendaylight.genius.mdsalutil.ActionInfo;
+import org.opendaylight.genius.mdsalutil.tests.UintXtendBeanGenerator;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.Action;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstOfMetadataCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegLoadNodesNodeTableFlowApplyActionsCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoad;
 import org.opendaylight.yangtools.yang.common.Empty;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Test for {@link ActionNxLoadMetadata}.
  */
 public class ActionNxLoadMetadataTest {
-    private static final BigInteger VALUE = BigInteger.TEN;
+    private static final Uint64 VALUE = Uint64.valueOf(10);
     private static final Integer START = 0;
     private static final Integer END = 23;
 
-    private XtendBeanGenerator generator = new XtendBeanGenerator();
+    private final XtendBeanGenerator generator = new UintXtendBeanGenerator();
 
     @Test
     public void actionInfoTest() {
@@ -44,17 +46,16 @@ public class ActionNxLoadMetadataTest {
         NxRegLoad nxRegLoad = actionCase.getNxRegLoad();
         assertTrue(nxRegLoad.getDst().getDstChoice() instanceof DstOfMetadataCase);
         DstOfMetadataCase dstOfMetadataCase = (DstOfMetadataCase) nxRegLoad.getDst().getDstChoice();
-        assertEquals(Empty.getInstance(),dstOfMetadataCase.getOfMetadata());
-        assertEquals(START, nxRegLoad.getDst().getStart());
-        assertEquals(END, nxRegLoad.getDst().getEnd());
+        assertEquals(Empty.getInstance(), dstOfMetadataCase.getOfMetadata());
+        assertEquals(Uint16.valueOf(START), nxRegLoad.getDst().getStart());
+        assertEquals(Uint16.valueOf(END), nxRegLoad.getDst().getEnd());
         assertEquals(VALUE, nxRegLoad.getValue());
     }
 
     @Test
     public void generateAction() {
         ActionInfo actionInfo = new ActionNxLoadMetadata(VALUE, START, END);
-        assertEquals(
-            "new ActionNxLoadMetadata(0, " + VALUE + "bi" + ", " + START +  ", " + END + ")", generator
-            .getExpression(actionInfo));
+        assertEquals("new ActionNxLoadMetadata(0, (u64)" + VALUE + ", " + START +  ", " + END + ")",
+            generator.getExpression(actionInfo));
     }
 }
index f1f1086de1a2a4a1eaaefd5c4e40dde3fe3f0b2e..ef0aa35ead7d4d1d6a134da5384f58774eb082e0 100644 (file)
@@ -19,6 +19,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev14
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstNxRegCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegLoadNodesNodeTableFlowApplyActionsCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.load.grouping.NxRegLoad;
+import org.opendaylight.yangtools.yang.common.Uint16;
 
 /**
  * Test class for {@link ActionRegLoad}.
@@ -37,8 +38,8 @@ public class ActionRegLoadTest {
         assertTrue(nxRegLoad.getDst().getDstChoice() instanceof DstNxRegCase);
         DstNxRegCase dstNxRegCase = (DstNxRegCase) nxRegLoad.getDst().getDstChoice();
         assertEquals(NxmNxReg6.class, dstNxRegCase.getNxReg());
-        assertEquals((Integer) 0, nxRegLoad.getDst().getStart());
-        assertEquals((Integer) 31, nxRegLoad.getDst().getEnd());
+        assertEquals(Uint16.valueOf(0), nxRegLoad.getDst().getStart());
+        assertEquals(Uint16.valueOf(31), nxRegLoad.getDst().getEnd());
         assertEquals(100, nxRegLoad.getValue().longValue());
     }
 
index 9690db970cba8b16a3296cdcf9f3007bc1c88600..26def67dfacb92d432c5156e2f88a675bb7a9e14 100644 (file)
@@ -18,6 +18,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.match.rev14
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.dst.choice.grouping.dst.choice.DstOfMplsLabelCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegMoveNodesNodeTableFlowApplyActionsCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nx.action.reg.move.grouping.NxRegMove;
+import org.opendaylight.yangtools.yang.common.Uint16;
 
 /**
  * Test for {@link ActionRegMove}.
@@ -35,8 +36,8 @@ public class ActionRegMoveTest {
             = (NxActionRegMoveNodesNodeTableFlowApplyActionsCase) action.getAction();
         NxRegMove nxRegMove = actionsCase.getNxRegMove();
         assertTrue(nxRegMove.getDst().getDstChoice() instanceof DstOfMplsLabelCase);
-        assertEquals((Integer) 0, nxRegMove.getDst().getStart());
-        assertEquals((Integer) 31, nxRegMove.getDst().getEnd());
+        assertEquals(Uint16.valueOf(0), nxRegMove.getDst().getStart());
+        assertEquals(Uint16.valueOf(31), nxRegMove.getDst().getEnd());
     }
 
     @Test
index 367f02708cf29b598d2697c6f67bccad24d6af22..300fd17e0467b3a1fe61689191443eb21b7643c4 100644 (file)
@@ -11,12 +11,13 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 import ch.vorburger.xtendbeans.XtendBeanGenerator;
-import java.math.BigInteger;
 import org.junit.Test;
 import org.opendaylight.genius.mdsalutil.InstructionInfo;
+import org.opendaylight.genius.mdsalutil.tests.UintXtendBeanGenerator;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteMetadataCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.write.metadata._case.WriteMetadata;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list.Instruction;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Test for {@link InstructionWriteMetadata}.
@@ -24,26 +25,26 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instru
 public class InstructionWriteMetadataTest {
 
     private static final InstructionWriteMetadata INSTRUCTION_INFO
-        = new InstructionWriteMetadata(BigInteger.ONE, BigInteger.TEN);
+        = new InstructionWriteMetadata(Uint64.ONE, Uint64.valueOf(10));
 
     @Test
     public void newInstruction() {
         verifyInstructionInfo(INSTRUCTION_INFO);
     }
 
-    private void verifyInstructionInfo(InstructionInfo instructionInfo) {
+    private static void verifyInstructionInfo(InstructionInfo instructionInfo) {
         Instruction instruction = instructionInfo.buildInstruction(2);
         assertEquals(2, instruction.key().getOrder().intValue());
         assertTrue(instruction.getInstruction() instanceof WriteMetadataCase);
         WriteMetadataCase writeMetadataCase = (WriteMetadataCase) instruction.getInstruction();
         WriteMetadata writeMetadata = writeMetadataCase.getWriteMetadata();
-        assertEquals(BigInteger.ONE, writeMetadata.getMetadata());
-        assertEquals(BigInteger.TEN, writeMetadata.getMetadataMask());
+        assertEquals(Uint64.ONE, writeMetadata.getMetadata());
+        assertEquals(Uint64.valueOf(10), writeMetadata.getMetadataMask());
     }
 
     @Test
     public void xtendBeanGenerator() {
-        XtendBeanGenerator generator = new XtendBeanGenerator();
-        assertEquals("new InstructionWriteMetadata(1bi, 10bi)", generator.getExpression(INSTRUCTION_INFO));
+        XtendBeanGenerator generator = new UintXtendBeanGenerator();
+        assertEquals("new InstructionWriteMetadata((u64)1, (u64)10)", generator.getExpression(INSTRUCTION_INFO));
     }
 }
index ef571cccecfce724a00ca4d887af67cf43e35f37..9f14f2a272922577080089512c4c93719a68161b 100644 (file)
@@ -20,7 +20,6 @@ import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.Futures;
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
@@ -40,6 +39,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.ta
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.FlowKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.groups.Group;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -190,23 +190,23 @@ public abstract class TestIMdsalApiManager implements IMdsalApiManager {
         return ImmutableList.copyOf(flows.values());
     }
 
-    private synchronized void deleteFlow(BigInteger dpId, String flowId, short tableId) {
+    private synchronized void deleteFlow(Uint64 dpId, String flowId, short tableId) {
         flows.remove(new InternalFlowKey(dpId, flowId, tableId));
     }
 
-    private synchronized void storeGroup(BigInteger dpnId, Group group) {
-        groups.put(new InternalGroupKey(dpnId, group.key().getGroupId().getValue()), group);
+    private synchronized void storeGroup(Uint64 dpnId, Group group) {
+        groups.put(new InternalGroupKey(dpnId, group.key().getGroupId().getValue().toJava()), group);
     }
 
-    private synchronized void deleteGroup(BigInteger dpnId, long groupId) {
+    private synchronized void deleteGroup(Uint64 dpnId, long groupId) {
         groups.remove(new InternalGroupKey(dpnId, groupId));
     }
 
-    private synchronized void storeBucket(BigInteger dpnId, long groupId, Bucket bucket) {
-        buckets.put(new InternalBucketKey(dpnId, groupId, bucket.getBucketId().getValue()), bucket);
+    private synchronized void storeBucket(Uint64 dpnId, long groupId, Bucket bucket) {
+        buckets.put(new InternalBucketKey(dpnId, groupId, bucket.getBucketId().getValue().toJava()), bucket);
     }
 
-    private synchronized void deleteBucket(BigInteger dpnId, long groupId, long bucketId) {
+    private synchronized void deleteBucket(Uint64 dpnId, long groupId, long bucketId) {
         buckets.remove(new InternalBucketKey(dpnId, groupId, bucketId));
     }
 
@@ -216,13 +216,13 @@ public abstract class TestIMdsalApiManager implements IMdsalApiManager {
     }
 
     @Override
-    public void addFlow(TypedWriteTransaction<Configuration> tx, BigInteger dpId, Flow flow) {
+    public void addFlow(TypedWriteTransaction<Configuration> tx, Uint64 dpId, Flow flow) {
         throw new UnsupportedOperationException("addFlow(..., BigInteger, Flow) isn't supported yet");
     }
 
     @Override
-    public void removeFlow(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, Flow flow) {
-        removeFlow(tx, dpId, flow.key(), flow.getTableId());
+    public void removeFlow(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, Flow flow) {
+        removeFlow(tx, dpId, flow.key(), flow.getTableId().toJava());
     }
 
     @Override
@@ -231,13 +231,13 @@ public abstract class TestIMdsalApiManager implements IMdsalApiManager {
     }
 
     @Override
-    public void removeFlow(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, FlowKey flowKey,
+    public void removeFlow(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, FlowKey flowKey,
             short tableId) {
         deleteFlow(dpId, flowKey.getId().getValue(), tableId);
     }
 
     @Override
-    public void removeFlow(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, String flowId,
+    public void removeFlow(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, String flowId,
             short tableId) {
         deleteFlow(dpId, flowId, tableId);
     }
@@ -248,28 +248,28 @@ public abstract class TestIMdsalApiManager implements IMdsalApiManager {
     }
 
     @Override
-    public void addGroup(TypedWriteTransaction<Configuration> tx, BigInteger dpId, Group group) {
+    public void addGroup(TypedWriteTransaction<Configuration> tx, Uint64 dpId, Group group) {
         storeGroup(dpId, group);
     }
 
     @Override
-    public void removeGroup(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, Group group) {
-        deleteGroup(dpId, group.getGroupId().getValue());
+    public void removeGroup(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, Group group) {
+        deleteGroup(dpId, group.getGroupId().getValue().toJava());
     }
 
     @Override
-    public void removeGroup(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, long groupId) {
+    public void removeGroup(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, long groupId) {
         deleteGroup(dpId, groupId);
     }
 
     @Override
-    public void addBucket(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, long groupId,
+    public void addBucket(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, long groupId,
             Bucket bucket) {
         storeBucket(dpId, groupId, bucket);
     }
 
     @Override
-    public void removeBucket(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, long groupId,
+    public void removeBucket(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, long groupId,
             long bucketId) {
         deleteBucket(dpId, groupId, bucketId);
     }
@@ -281,18 +281,18 @@ public abstract class TestIMdsalApiManager implements IMdsalApiManager {
     }
 
     @Override
-    public CheckedFuture<Void, TransactionCommitFailedException> installFlow(BigInteger dpId,
+    public CheckedFuture<Void, TransactionCommitFailedException> installFlow(Uint64 dpId,
             FlowEntity flowEntity) {
         // TODO should dpId be considered here? how? Copy clone FlowEntity and change its dpId?
         return installFlow(flowEntity);
     }
 
     private static final class InternalFlowKey {
-        private final BigInteger dpnId;
+        private final Uint64 dpnId;
         private final String flowId;
         private final short tableId;
 
-        private InternalFlowKey(BigInteger dpnId, String flowId, short tableId) {
+        private InternalFlowKey(Uint64 dpnId, String flowId, short tableId) {
             this.dpnId = dpnId;
             this.flowId = flowId;
             this.tableId = tableId;
@@ -317,10 +317,10 @@ public abstract class TestIMdsalApiManager implements IMdsalApiManager {
     }
 
     private static final class InternalGroupKey {
-        private final BigInteger dpnId;
+        private final Uint64 dpnId;
         private final long groupId;
 
-        private InternalGroupKey(BigInteger dpnId, long groupId) {
+        private InternalGroupKey(Uint64 dpnId, long groupId) {
             this.dpnId = dpnId;
             this.groupId = groupId;
         }
@@ -344,11 +344,11 @@ public abstract class TestIMdsalApiManager implements IMdsalApiManager {
     }
 
     private static final class InternalBucketKey {
-        private final BigInteger dpnId;
+        private final Uint64 dpnId;
         private final long groupId;
         private final long bucketId;
 
-        private InternalBucketKey(BigInteger dpnId, long groupId, long bucketId) {
+        private InternalBucketKey(Uint64 dpnId, long groupId, long bucketId) {
             this.dpnId = dpnId;
             this.groupId = groupId;
             this.bucketId = bucketId;
index 9d42b2b3b6b8b5f02347a6ac2c9c5d0e6f6f3d5a..18ee51a96d2da329ad9bf7b41e571d4c9993845e 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.genius.mdsalutil.interfaces.testutils.tests;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.testing.EqualsTester;
-import java.math.BigInteger;
 import org.junit.Test;
 import org.opendaylight.genius.mdsalutil.FlowEntity;
 import org.opendaylight.genius.mdsalutil.FlowEntityBuilder;
@@ -17,6 +16,7 @@ import org.opendaylight.genius.mdsalutil.instructions.InstructionClearActions;
 import org.opendaylight.genius.mdsalutil.instructions.InstructionGotoTable;
 import org.opendaylight.genius.mdsalutil.interfaces.testutils.TestIMdsalApiManager;
 import org.opendaylight.genius.mdsalutil.matches.MatchArpSpa;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Unit test for {@link TestIMdsalApiManager}.
@@ -42,11 +42,11 @@ public class TestIMdsalApiManagerTest {
         mdsalApiManager.assertFlowsInAnyOrder(ImmutableList.of(getNewFlow2(), getNewFlow1()));
     }
 
-    private FlowEntity getNewFlow1() {
+    private static FlowEntity getNewFlow1() {
         return new FlowEntityBuilder()
-            .setDpnId(BigInteger.valueOf(123))
+            .setDpnId(Uint64.valueOf(123))
             .setTableId((short) 1)
-            .setCookie(BigInteger.valueOf(456789))
+            .setCookie(Uint64.valueOf(456789))
             .setFlowId("ThisIsFlow1")
             .setHardTimeOut(456)
             .setIdleTimeOut(789)
@@ -59,11 +59,11 @@ public class TestIMdsalApiManagerTest {
         .build();
     }
 
-    private FlowEntity getNewFlow2() {
+    private static FlowEntity getNewFlow2() {
         return new FlowEntityBuilder()
-                .setDpnId(BigInteger.valueOf(321))
+                .setDpnId(Uint64.valueOf(321))
                 .setTableId((short) 2)
-                .setCookie(BigInteger.valueOf(987654))
+                .setCookie(Uint64.valueOf(987654))
                 .setFlowId("ThisIsFlow2")
                 .setHardTimeOut(654)
                 .setIdleTimeOut(987)
index ee657e5a1f8f158f65f0923efa587de5a84f4e47..e59b9ae38c1e891cd8cae66de750215dd9160bf6 100644 (file)
@@ -8,8 +8,8 @@
 package org.opendaylight.genius.mdsalutil.matches;
 
 import com.google.common.testing.EqualsTester;
-import java.math.BigInteger;
 import org.junit.Test;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public class MatchInPortTest {
 
@@ -22,11 +22,11 @@ public class MatchInPortTest {
     }
 
     private MatchInPort newMatchInPort1() {
-        return new MatchInPort(BigInteger.ONE, 123);
+        return new MatchInPort(Uint64.ONE, 123);
     }
 
     private MatchInPort newMatchInPort2() {
-        return new MatchInPort(BigInteger.TEN, 456);
+        return new MatchInPort(Uint64.valueOf(10), 456);
     }
 
 }
index d0073d1375e750da4becc6db083cb504d5e3c2a4..d10cf7980e83baccdf1bdc82c090ff6bd694edd7 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.genius.mdsalutil.tests;
 import static org.junit.Assert.assertEquals;
 
 import ch.vorburger.xtendbeans.XtendBeanGenerator;
-import java.math.BigInteger;
 import java.util.Arrays;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -19,6 +18,7 @@ import org.opendaylight.genius.mdsalutil.actions.ActionDrop;
 import org.opendaylight.genius.mdsalutil.actions.ActionGroup;
 import org.opendaylight.genius.mdsalutil.actions.ActionLearn;
 import org.opendaylight.genius.mdsalutil.actions.ActionSetFieldTunnelId;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Test to check that we no longer need a builder for
@@ -32,7 +32,7 @@ import org.opendaylight.genius.mdsalutil.actions.ActionSetFieldTunnelId;
  */
 public class ActionInfoBuilderTest {
 
-    XtendBeanGenerator generator = new XtendBeanGenerator();
+    XtendBeanGenerator generator = new UintXtendBeanGenerator();
 
     @Test
     public void noActionValues() {
@@ -58,20 +58,20 @@ public class ActionInfoBuilderTest {
 
     @Test
     public void set_field_tunnel_idActionWithBigActionValues() {
-        ActionInfo actionInfo = new ActionSetFieldTunnelId(BigInteger.valueOf(123));
-        assertEquals("new ActionSetFieldTunnelId(0, 123bi)", generator.getExpression(actionInfo));
+        ActionInfo actionInfo = new ActionSetFieldTunnelId(Uint64.valueOf(123));
+        assertEquals("new ActionSetFieldTunnelId(0, (u64)123)", generator.getExpression(actionInfo));
     }
 
     @Test
     public void set_field_tunnel_idActionWithBigActionValuesWithActionKey() {
-        ActionInfo actionInfo = new ActionSetFieldTunnelId(69, BigInteger.valueOf(123));
-        assertEquals("new ActionSetFieldTunnelId(69, 123bi)", generator.getExpression(actionInfo));
+        ActionInfo actionInfo = new ActionSetFieldTunnelId(69, Uint64.valueOf(123));
+        assertEquals("new ActionSetFieldTunnelId(69, (u64)123)", generator.getExpression(actionInfo));
     }
 
     @Test
     @Ignore("Needs to be rewritten")
     public void learnActionValuesMatrix() {
-        ActionInfo actionInfo = new ActionLearn(1, 2, 3, BigInteger.valueOf(4), 5, (short) 6, 7, 8,
+        ActionInfo actionInfo = new ActionLearn(1, 2, 3, Uint64.valueOf(4), 5, (short) 6, 7, 8,
                 Arrays.asList(
                         new ActionLearn.CopyFromValue(2, 3, 4),
                         new ActionLearn.OutputToPort(4, 5)));
index 635384d1b9da86a6ce46ce382b9463f8616917f1..a1e10dfe1355f01cafec20c5dcf694211b4efc3b 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.genius.mdsalutil.tests;
 
 import static org.junit.Assert.assertEquals;
 
-import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.List;
 import org.junit.Test;
@@ -18,18 +17,19 @@ import org.opendaylight.genius.mdsalutil.FlowEntity;
 import org.opendaylight.genius.mdsalutil.FlowEntityBuilder;
 import org.opendaylight.genius.mdsalutil.actions.ActionNxConntrack;
 import org.opendaylight.genius.mdsalutil.instructions.InstructionApplyActions;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public class ActionInfoImmutableTest {
 
     @Test
     public void actionInfoActionKeyDoesNotMagicallyChangeOnFlowEntityGetFlowBuilder() {
         FlowEntityBuilder flowEntityBuilder = new FlowEntityBuilder()
-            .setDpnId(BigInteger.valueOf(123L))
+            .setDpnId(Uint64.valueOf(123L))
             .setTableId((short) 1)
             .setPriority(2)
             .setFlowName("TEST-NAME")
             .setFlowId("TEST-ID")
-            .setCookie(BigInteger.valueOf(110100480L));
+            .setCookie(Uint64.valueOf(110100480L));
         ActionInfo actionInfo = new ActionNxConntrack(27, 1, 0, 0, (short) 255);
         List<ActionInfo> actionInfos = new ArrayList<>();
         actionInfos.add(actionInfo);
@@ -49,8 +49,8 @@ public class ActionInfoImmutableTest {
 
     @Test
     public void testDefaultCookie() {
-        assertEquals(new BigInteger("0110000", 16), new FlowEntityBuilder()
-                .setDpnId(BigInteger.valueOf(123L))
+        assertEquals(Uint64.valueOf("0110000", 16), new FlowEntityBuilder()
+                .setDpnId(Uint64.valueOf(123L))
                 .setTableId((short) 1)
                 .setPriority(2)
                 .setFlowName("TEST-NAME")
index 5d11d99b4dae59bd1dd8cfa86f58b1055d5dcb2a..e06981853b00b1ccee04392b011bb55c73128103 100644 (file)
@@ -11,12 +11,12 @@ import static com.google.common.truth.Truth.assertThat;
 import static org.opendaylight.mdsal.binding.testutils.AssertDataObjects.assertEqualBeans;
 
 import ch.vorburger.xtendbeans.XtendBeanGenerator;
-import java.math.BigInteger;
 import org.junit.ComparisonFailure;
 import org.junit.Test;
 import org.opendaylight.genius.mdsalutil.FlowEntity;
 import org.opendaylight.genius.mdsalutil.FlowEntityBuilder;
 import org.opendaylight.genius.mdsalutil.matches.MatchIpv4Source;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 /**
  * Tests non-regression of FlowEntity related assertions.
@@ -28,10 +28,10 @@ public class FlowEntityAssertBeansTest {
     // FLOW1 & FLOW2 differ by a minor variance in their MatchIpv4Source (NB .1 vs .2)
     private static final FlowEntity FLOW1 = new FlowEntityBuilder()
             .addMatchInfoList(new MatchIpv4Source("10.0.0.1", "32")).setFlowId("A").setTableId((short) 1)
-            .setDpnId(BigInteger.ONE).build();
+            .setDpnId(Uint64.ONE).build();
     private static final FlowEntity FLOW2 = new FlowEntityBuilder()
             .addMatchInfoList(new MatchIpv4Source("10.0.0.2", "32")).setFlowId("A").setTableId((short) 1)
-            .setDpnId(BigInteger.ONE).build();
+            .setDpnId(Uint64.ONE).build();
 
     @Test(expected = ComparisonFailure.class)
     public void testFlowEntityAssertEqualBeans() {
@@ -40,10 +40,10 @@ public class FlowEntityAssertBeansTest {
 
     @Test
     public void testXtendBeanGenerator() {
-        XtendBeanGenerator generator = new XtendBeanGenerator();
+        XtendBeanGenerator generator = new UintXtendBeanGenerator();
         assertThat(generator.getExpression(FLOW1)).isEqualTo("(new FlowEntityBuilder => [\n"
-                + "    cookie = 1114112bi\n"
-                + "    dpnId = 1bi\n"
+                + "    cookie = (u64)1114112\n"
+                + "    dpnId = (u64)1\n"
                 + "    flowId = \"A\"\n"
                 + "    hardTimeOut = 0\n"
                 + "    idleTimeOut = 0\n"
diff --git a/mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/tests/UintXtendBeanGenerator.java b/mdsalutil/mdsalutil-api/src/test/java/org/opendaylight/genius/mdsalutil/tests/UintXtendBeanGenerator.java
new file mode 100644 (file)
index 0000000..33e0f87
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2019 PANTHEON.tech, s.r.o. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.genius.mdsalutil.tests;
+
+import ch.vorburger.xtendbeans.XtendBeanGenerator;
+import org.opendaylight.yangtools.yang.common.Uint16;
+import org.opendaylight.yangtools.yang.common.Uint32;
+import org.opendaylight.yangtools.yang.common.Uint64;
+import org.opendaylight.yangtools.yang.common.Uint8;
+
+public class UintXtendBeanGenerator extends XtendBeanGenerator {
+    @Override
+    protected CharSequence stringify(Object object) {
+        if (object instanceof Uint8) {
+            return "(u8)" + object;
+        } else if (object instanceof Uint16) {
+            return "(u16)" + object;
+        } else if (object instanceof Uint32) {
+            return "(u32)" + object;
+        } else if (object instanceof Uint64) {
+            return "(u64)" + object;
+        } else {
+            return super.stringify(object);
+        }
+    }
+}
similarity index 96%
rename from mdsalutil/mdsalutil-impl/src/test/java/org/opendaylight/genius/mdsalutil/internal/MdSalUtilTest.java
rename to mdsalutil/mdsalutil-impl/MdSalUtilTest.java
index a6f1119810e15bbf6ae635cd8fd4f6a84fd1cc47..17384b4ff3d28a4684ecefb2ef2a679ea255452d 100644 (file)
@@ -46,6 +46,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.N
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 @RunWith(MockitoJUnitRunner.class)
 public class MdSalUtilTest extends AbstractConcurrentDataBrokerTest {
@@ -149,27 +150,27 @@ public class MdSalUtilTest extends AbstractConcurrentDataBrokerTest {
 
     // Methods to test the install Flow and Group
     public FlowEntity createFlowEntity(String dpnId, String tableId) {
-        BigInteger dpId;
+        Uint64 dpId;
         final int serviceId = 0;
 
         List<ActionInfo> listActionInfo = new ArrayList<>();
         listActionInfo.add(new ActionPuntToController());
 
-        dpId = new BigInteger(dpnId.split(":")[1]);
+        dpId = Uint64.valueOf(dpnId.split(":")[1]);
 
         List<MatchInfo> mkMatches = new ArrayList<>();
         final BigInteger cookie = new BigInteger("9000000", 16);
 
         short shortTableId = Short.parseShort(tableId);
 
-        mkMatches.add(new MatchTunnelId(new BigInteger("0000000000000000", 16)));
+        mkMatches.add(new MatchTunnelId(Uint64.ZERO));
 
         List<InstructionInfo> mkInstructions = new ArrayList<>();
         mkInstructions.add(new InstructionWriteActions(listActionInfo));
 
         FlowEntity terminatingServiceTableFlowEntity = MDSALUtil.buildFlowEntity(dpId, shortTableId,
                 getFlowRef(shortTableId, serviceId), 5, "Terminating Service Flow Entry: " + serviceId, 0, 0,
-                cookie.add(BigInteger.valueOf(serviceId)), null, null);
+                Uint64.valueOf(cookie.add(BigInteger.valueOf(serviceId))), null, null);
 
         return terminatingServiceTableFlowEntity;
     }
@@ -189,7 +190,7 @@ public class MdSalUtilTest extends AbstractConcurrentDataBrokerTest {
         listBucketInfo.add(new BucketInfo(listActionInfo));
 
         String groupName = "Test Group";
-        BigInteger dpnId = new BigInteger(nodeid.split(":")[1]);
+        Uint64 dpnId = Uint64.valueOf(nodeid.split(":")[1]);
 
         long id = getUniqueValue(nodeid, inport);
         return MDSALUtil.buildGroupEntity(dpnId, id, groupName, GroupTypes.GroupIndirect, listBucketInfo);
index a29a387c373894ebccee3a4723e988ae07c0e624..9f1110529cc7a4f2dcb432e66a1e9f389098333c 100644 (file)
@@ -19,7 +19,7 @@ import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import com.google.common.util.concurrent.MoreExecutors;
-import java.math.BigInteger;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ExecutionException;
@@ -68,6 +68,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.N
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.packet.service.rev130709.PacketProcessingService;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -142,7 +143,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
                 tx -> writeFlowEntityInternal(flowEntity, tx)));
     }
 
-    private FluentFuture<Void> installFlowInternal(BigInteger dpId, Flow flow) {
+    private FluentFuture<Void> installFlowInternal(Uint64 dpId, Flow flow) {
         return txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION,
             tx -> writeFlowInternal(dpId, flow, tx));
     }
@@ -156,10 +157,11 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
         tx.put(flowInstanceId, flowbld.build(), true);
     }
 
-    private static void writeFlowInternal(BigInteger dpId, Flow flow,
+    private static void writeFlowInternal(Uint64 dpId, Flow flow,
             TypedWriteTransaction<Datastore.Configuration> tx) {
         FlowKey flowKey = new FlowKey(new FlowId(flow.getId()));
-        InstanceIdentifier<Flow> flowInstanceId = buildFlowInstanceIdentifier(dpId, flow.getTableId(), flowKey);
+        InstanceIdentifier<Flow> flowInstanceId = buildFlowInstanceIdentifier(dpId,
+                                                            flow.getTableId().toJava(), flowKey);
         tx.put(flowInstanceId, flow, true);
     }
 
@@ -186,13 +188,13 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
     }
 
     private void deleteFlowEntityInternal(FlowEntity flowEntity, TypedWriteTransaction<Datastore.Configuration> tx) {
-        BigInteger dpId = flowEntity.getDpnId();
+        Uint64 dpId = flowEntity.getDpnId();
         short tableId = flowEntity.getTableId();
         FlowKey flowKey = new FlowKey(new FlowId(flowEntity.getFlowId()));
         deleteFlow(dpId, tableId, flowKey, tx);
     }
 
-    private void deleteFlow(BigInteger dpId, short tableId, FlowKey flowKey, WriteTransaction tx) {
+    private void deleteFlow(Uint64 dpId, short tableId, FlowKey flowKey, WriteTransaction tx) {
         if (flowExists(dpId, tableId, flowKey)) {
             InstanceIdentifier<Flow> flowInstanceId = buildFlowInstanceIdentifier(dpId, tableId, flowKey);
             tx.delete(LogicalDatastoreType.CONFIGURATION, flowInstanceId);
@@ -201,7 +203,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
         }
     }
 
-    private void deleteFlow(BigInteger dpId, short tableId, FlowKey flowKey,
+    private void deleteFlow(Uint64 dpId, short tableId, FlowKey flowKey,
                             TypedWriteTransaction<Datastore.Configuration> tx) {
         if (flowExists(dpId, tableId, flowKey)) {
             InstanceIdentifier<Flow> flowInstanceId = buildFlowInstanceIdentifier(dpId, tableId, flowKey);
@@ -211,24 +213,24 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
         }
     }
 
-    private FluentFuture<Void> removeFlowNewInternal(BigInteger dpnId, Flow flowEntity) {
+    private FluentFuture<Void> removeFlowNewInternal(Uint64 dpnId, Flow flowEntity) {
         LOG.debug("Remove flow {}", flowEntity);
         return txRunner.callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION,
             tx -> {
                 FlowKey flowKey = new FlowKey(flowEntity.getId());
-                short tableId = flowEntity.getTableId();
+                short tableId = flowEntity.getTableId().toJava();
                 deleteFlow(dpnId, tableId, flowKey, tx);
             });
     }
 
     @VisibleForTesting
-    FluentFuture<Void> removeGroupInternal(BigInteger dpnId, long groupId) {
+    FluentFuture<Void> removeGroupInternal(Uint64 dpnId, long groupId) {
         return addCallBackForInstallGroupAndReturn(txRunner
             .callWithNewWriteOnlyTransactionAndSubmit(Datastore.CONFIGURATION,
                 tx -> removeGroupInternal(dpnId, groupId, tx)));
     }
 
-    private void removeGroupInternal(BigInteger dpnId, long groupId,
+    private void removeGroupInternal(Uint64 dpnId, long groupId,
                                      TypedWriteTransaction<Datastore.Configuration> tx) {
         Node nodeDpn = buildDpnNode(dpnId);
         if (groupExists(nodeDpn, groupId)) {
@@ -239,19 +241,19 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
         }
     }
 
-    private static Node buildDpnNode(BigInteger dpnId) {
+    private static Node buildDpnNode(Uint64 dpnId) {
         NodeId nodeId = new NodeId("openflow:" + dpnId);
         Node nodeDpn = new NodeBuilder().setId(nodeId).withKey(new NodeKey(nodeId)).build();
 
         return nodeDpn;
     }
 
-    private static String getGroupKey(long groupId, BigInteger dpId) {
+    private static String getGroupKey(long groupId, Uint64 dpId) {
         String synchronizingKey = "group-key-" + groupId + dpId;
         return synchronizingKey.intern();
     }
 
-    private static String getFlowKey(BigInteger dpId, short tableId, FlowKey flowKey) {
+    private static String getFlowKey(Uint64 dpId, short tableId, FlowKey flowKey) {
         String synchronizingKey = "flow-key-" + dpId + tableId + flowKey;
         return synchronizingKey.intern();
     }
@@ -263,7 +265,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
         Flow flow = flowEntity.getFlowBuilder().build();
         String flowId = flowEntity.getFlowId();
         short tableId = flowEntity.getTableId();
-        BigInteger dpId = flowEntity.getDpnId();
+        Uint64 dpId = flowEntity.getDpnId();
         FlowKey flowKey = new FlowKey(new FlowId(flowId));
         InstanceIdentifier<Flow> flowInstanceId = buildFlowInstanceIdentifier(dpId, tableId, flowKey);
 
@@ -285,7 +287,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
             LOG.trace("syncSetUpGroup for groupEntity {} ", groupEntity);
         }
         Group group = groupEntity.getGroupBuilder().build();
-        BigInteger dpId = groupEntity.getDpnId();
+        Uint64 dpId = groupEntity.getDpnId();
         long groupId = groupEntity.getGroupId();
         InstanceIdentifier<Group> groupInstanceId = buildGroupInstanceIdentifier(groupId, buildDpnNode(dpId));
 
@@ -310,12 +312,12 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
 
         @Override
         protected void remove(InstanceIdentifier<Group> identifier, Group del) {
-            BigInteger dpId = getDpnFromString(identifier.firstKeyOf(Node.class).getId().getValue());
+            Uint64 dpId = getDpnFromString(identifier.firstKeyOf(Node.class).getId().getValue());
             executeNotifyTaskIfRequired(dpId, del);
         }
 
-        private void executeNotifyTaskIfRequired(BigInteger dpId, Group group) {
-            GroupInfoKey groupKey = new GroupInfoKey(dpId, group.getGroupId().getValue());
+        private void executeNotifyTaskIfRequired(Uint64 dpId, Group group) {
+            GroupInfoKey groupKey = new GroupInfoKey(dpId, group.getGroupId().getValue().toJava());
             Runnable notifyTask = groupMap.remove(groupKey);
             if (notifyTask == null) {
                 return;
@@ -325,13 +327,13 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
 
         @Override
         protected void update(InstanceIdentifier<Group> identifier, Group original, Group update) {
-            BigInteger dpId = getDpnFromString(identifier.firstKeyOf(Node.class).getId().getValue());
+            Uint64 dpId = getDpnFromString(identifier.firstKeyOf(Node.class).getId().getValue());
             executeNotifyTaskIfRequired(dpId, update);
         }
 
         @Override
         protected void add(InstanceIdentifier<Group> identifier, Group add) {
-            BigInteger dpId = getDpnFromString(identifier.firstKeyOf(Node.class).getId().getValue());
+            Uint64 dpId = getDpnFromString(identifier.firstKeyOf(Node.class).getId().getValue());
             executeNotifyTaskIfRequired(dpId, add);
         }
 
@@ -355,12 +357,13 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
 
         @Override
         protected void remove(InstanceIdentifier<Flow> identifier, Flow del) {
-            BigInteger dpId = getDpnFromString(identifier.firstKeyOf(Node.class).getId().getValue());
+            Uint64 dpId = getDpnFromString(identifier.firstKeyOf(Node.class).getId().getValue());
             notifyTaskIfRequired(dpId, del);
         }
 
-        private void notifyTaskIfRequired(BigInteger dpId, Flow flow) {
-            FlowInfoKey flowKey = new FlowInfoKey(dpId, flow.getTableId(), flow.getMatch(), flow.getId().getValue());
+        private void notifyTaskIfRequired(Uint64 dpId, Flow flow) {
+            FlowInfoKey flowKey = new FlowInfoKey(dpId, flow.getTableId().toJava(),
+                                                  flow.getMatch(), flow.getId().getValue());
             Runnable notifyTask = flowMap.remove(flowKey);
             if (notifyTask == null) {
                 return;
@@ -374,7 +377,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
 
         @Override
         protected void add(InstanceIdentifier<Flow> identifier, Flow add) {
-            BigInteger dpId = getDpnFromString(identifier.firstKeyOf(Node.class).getId().getValue());
+            Uint64 dpId = getDpnFromString(identifier.firstKeyOf(Node.class).getId().getValue());
             notifyTaskIfRequired(dpId, add);
         }
 
@@ -399,7 +402,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
 
         @Override
         protected void remove(InstanceIdentifier<Flow> identifier, Flow del) {
-            BigInteger dpId = getDpnFromString(identifier.firstKeyOf(Node.class).getId().getValue());
+            Uint64 dpId = getDpnFromString(identifier.firstKeyOf(Node.class).getId().getValue());
             flowLog.trace("FlowId {} deleted from Table {} on DPN {}",
                 del.getId().getValue(), del.getTableId(), dpId);
         }
@@ -410,7 +413,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
 
         @Override
         protected void add(InstanceIdentifier<Flow> identifier, Flow add) {
-            BigInteger dpId = getDpnFromString(identifier.firstKeyOf(Node.class).getId().getValue());
+            Uint64 dpId = getDpnFromString(identifier.firstKeyOf(Node.class).getId().getValue());
             flowLog.debug("FlowId {} added to Table {} on DPN {}",
                 add.getId().getValue(), add.getTableId(), dpId);
         }
@@ -427,9 +430,11 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
         }
     }
 
-    private static BigInteger getDpnFromString(String dpnString) {
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
+    private static Uint64 getDpnFromString(String dpnString) {
         String[] split = dpnString.split(":");
-        return new BigInteger(split[1]);
+        return Uint64.valueOf(split[1]);
     }
 
     @Override
@@ -439,19 +444,19 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
     }
 
     @Override
-    public CheckedFuture<Void, TransactionCommitFailedException> installFlow(BigInteger dpId, Flow flowEntity) {
+    public CheckedFuture<Void, TransactionCommitFailedException> installFlow(Uint64 dpId, Flow flowEntity) {
         return Futures.makeChecked(installFlowInternal(dpId, flowEntity),
             t -> new TransactionCommitFailedException("installFlow failed", t));
     }
 
     @Override
-    public CheckedFuture<Void, TransactionCommitFailedException> installFlow(BigInteger dpId, FlowEntity flowEntity) {
+    public CheckedFuture<Void, TransactionCommitFailedException> installFlow(Uint64 dpId, FlowEntity flowEntity) {
         return Futures.makeChecked(installFlowInternal(dpId, flowEntity.getFlowBuilder().build()),
             t -> new TransactionCommitFailedException("installFlow failed", t));
     }
 
     @Override
-    public ListenableFuture<Void> removeFlow(BigInteger dpId, short tableId, FlowId flowId) {
+    public ListenableFuture<Void> removeFlow(Uint64 dpId, short tableId, FlowId flowId) {
         ListenableFuture<Void> future = txRunner.callWithNewWriteOnlyTransactionAndSubmit(
             tx -> deleteFlow(dpId, tableId, new FlowKey(flowId), tx));
 
@@ -481,7 +486,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
     }
 
     @Override
-    public CheckedFuture<Void, TransactionCommitFailedException> removeFlow(BigInteger dpId, Flow flowEntity) {
+    public CheckedFuture<Void, TransactionCommitFailedException> removeFlow(Uint64 dpId, Flow flowEntity) {
         return Futures.makeChecked(removeFlowNewInternal(dpId, flowEntity),
             t -> new TransactionCommitFailedException("removeFlow failed", t));
     }
@@ -499,19 +504,19 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
     }
 
     @Override
-    public void removeFlow(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, Flow flow)
+    public void removeFlow(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, Flow flow)
             throws ExecutionException, InterruptedException {
-        removeFlow(tx, dpId, flow.key(), flow.getTableId());
+        removeFlow(tx, dpId, flow.key(), flow.getTableId().toJava());
     }
 
     @Override
-    public void removeFlow(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, String flowId, short tableId)
+    public void removeFlow(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, String flowId, short tableId)
             throws ExecutionException, InterruptedException {
         removeFlow(tx, dpId, new FlowKey(new FlowId(flowId)), tableId);
     }
 
     @Override
-    public void removeFlow(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, FlowKey flowKey,
+    public void removeFlow(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, FlowKey flowKey,
             short tableId) throws ExecutionException, InterruptedException {
         InstanceIdentifier<Flow> flowInstanceIdentifier = buildFlowInstanceIdentifier(dpId, tableId, flowKey);
         if (tx.read(flowInstanceIdentifier).get().isPresent()) {
@@ -531,13 +536,13 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
     }
 
     @Override
-    public void removeGroup(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, Group group)
+    public void removeGroup(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, Group group)
             throws ExecutionException, InterruptedException {
-        removeGroup(tx, dpId, group.getGroupId().getValue());
+        removeGroup(tx, dpId, group.getGroupId().getValue().toJava());
     }
 
     @Override
-    public void removeGroup(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, long groupId)
+    public void removeGroup(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, long groupId)
             throws ExecutionException, InterruptedException {
         Node nodeDpn = buildDpnNode(dpId);
         InstanceIdentifier<Group> groupInstanceId = buildGroupInstanceIdentifier(groupId, nodeDpn);
@@ -584,8 +589,9 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
     }
 
     @Override
-    public void addFlow(TypedWriteTransaction<Configuration> tx, BigInteger dpId, Flow flow) {
-        InstanceIdentifier<Flow> flowInstanceId = buildFlowInstanceIdentifier(dpId, flow.getTableId(), flow.key());
+    public void addFlow(TypedWriteTransaction<Configuration> tx, Uint64 dpId, Flow flow) {
+        InstanceIdentifier<Flow> flowInstanceId = buildFlowInstanceIdentifier(dpId,
+                                                            flow.getTableId().toJava(), flow.key());
         tx.put(flowInstanceId, flow, CREATE_MISSING_PARENTS);
     }
 
@@ -595,26 +601,26 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
     }
 
     @Override
-    public void addGroup(TypedWriteTransaction<Configuration> tx, BigInteger dpId, Group group) {
+    public void addGroup(TypedWriteTransaction<Configuration> tx, Uint64 dpId, Group group) {
         Node nodeDpn = buildDpnNode(dpId);
-        long groupId = group.getGroupId().getValue();
+        long groupId = group.getGroupId().getValue().toJava();
         InstanceIdentifier<Group> groupInstanceId = buildGroupInstanceIdentifier(groupId, nodeDpn);
         tx.put(groupInstanceId, group, CREATE_MISSING_PARENTS);
     }
 
     @Override
-    public void addBucket(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, long groupId, Bucket bucket)
+    public void addBucket(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, long groupId, Bucket bucket)
             throws ExecutionException, InterruptedException {
         Node nodeDpn = buildDpnNode(dpId);
         if (groupExists(tx, nodeDpn, groupId)) {
             InstanceIdentifier<Bucket> bucketInstanceId = buildBucketInstanceIdentifier(groupId,
-                bucket.getBucketId().getValue(), nodeDpn);
+                bucket.getBucketId().getValue().toJava(), nodeDpn);
             tx.put(bucketInstanceId, bucket);
         }
     }
 
     @Override
-    public void removeBucket(TypedReadWriteTransaction<Configuration> tx, BigInteger dpId, long groupId, long bucketId)
+    public void removeBucket(TypedReadWriteTransaction<Configuration> tx, Uint64 dpId, long groupId, long bucketId)
             throws ExecutionException, InterruptedException {
         Node nodeDpn = buildDpnNode(dpId);
         if (groupExists(tx, nodeDpn, groupId)) {
@@ -626,7 +632,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
     }
 
     @Override
-    public boolean groupExists(BigInteger dpId, long groupId) {
+    public boolean groupExists(Uint64 dpId, long groupId) {
         return groupExists(buildDpnNode(dpId), groupId);
     }
 
@@ -652,7 +658,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
         return groupInstanceId;
     }
 
-    private boolean flowExists(BigInteger dpId, short tableId, FlowKey flowKey) {
+    private boolean flowExists(Uint64 dpId, short tableId, FlowKey flowKey) {
         InstanceIdentifier<Flow> flowInstanceId = buildFlowInstanceIdentifier(dpId, tableId, flowKey);
         try {
             Optional<Flow> flowOptional = singleTxDb.syncReadOptional(LogicalDatastoreType.CONFIGURATION,
@@ -664,7 +670,7 @@ public class MDSALManager extends AbstractLifecycle implements IMdsalApiManager
         return false;
     }
 
-    private static InstanceIdentifier<Flow> buildFlowInstanceIdentifier(BigInteger dpnId, short tableId,
+    private static InstanceIdentifier<Flow> buildFlowInstanceIdentifier(Uint64 dpnId, short tableId,
             FlowKey flowKey) {
         InstanceIdentifier<Flow> flowInstanceId = InstanceIdentifier.builder(Nodes.class)
                 .child(Node.class, buildDpnNode(dpnId).key()).augmentation(FlowCapableNode.class)
index e6022c3058ebce3ae95feeb57e95141b115183b1..bccf7a74568464db49aea7ae84b40927466a129a 100644 (file)
@@ -11,6 +11,7 @@ import com.google.common.base.Optional;
 import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.FluentFuture;
 import com.google.common.util.concurrent.Futures;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.Objects;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -105,6 +106,8 @@ public class DataBrokerFailuresImpl extends ForwardingDataBroker implements Data
         this.submitAndThrowException = true;
     }
 
+    @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+            justification = "https://github.com/spotbugs/spotbugs/issues/811")
     private FluentFuture<? extends CommitInfo> handleCommit(Supplier<FluentFuture<? extends CommitInfo>> commitMethod) {
         if (howManyFailingSubmits.decrementAndGet() == -1) {
             submitException = null;
index a487efdbc874fc4ddcca941e5ec4848db27ee559..bb338318e64966fe214cf59c8b63970a286d1135 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
index 34d94d3b2601ab85ff3e22d55d7742fa6a90e780..1ea4b3756d9639aef56dd8b16dbe32412ad93427 100644 (file)
@@ -24,6 +24,16 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
        build failure. Please do not modify this unless you have a good reason. -->
   <name>ODL :: genius :: ${project.artifactId}</name>
 
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>com.google.inject</groupId>
+        <artifactId>guice</artifactId>
+        <version>4.2.2</version>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
   <dependencies>
     <dependency>
       <groupId>org.apache.aries.blueprint</groupId>
index 6562f35becec727936088f48ba403fdb640d07b3..307207c70789af6f87b23b1249f6c3591e85235a 100644 (file)
@@ -5,18 +5,18 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.genius.networkutils;
 
 import com.google.common.base.Optional;
-import java.math.BigInteger;
 import java.util.concurrent.ExecutionException;
+import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.id.pools.IdPool;
+import org.opendaylight.yangtools.yang.common.Uint64;
 
 public interface VniUtils {
 
-    BigInteger getVNI(String vniKey) throws ExecutionException, InterruptedException;
+    @Nullable Uint64 getVNI(String vniKey) throws ExecutionException, InterruptedException;
 
     void releaseVNI(String vniKey) throws ExecutionException, InterruptedException;
 
index 9c53ae367d619114b5e9b2ac307b62d4a858128e..3554e4130d50e56fde060811ebcedb8636de6a60 100644 (file)
@@ -13,7 +13,6 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.apache.aries.blueprint.annotation.service.Service;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
@@ -41,6 +40,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.networkutils.config.rev181129.NetworkConfig;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.Uint32;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -79,7 +79,7 @@ public class RDUtilsImpl implements RDUtils {
         }
         long baseAsNum = Long.parseLong(configureRDSplit[0]);
         long baseValue = Long.parseLong(configureRDSplit[1]);
-        baseAsNum = baseAsNum + ((baseValue + idValue) / NwConstants.RD_MAX_VALUE_FIELD) ;
+        baseAsNum = baseAsNum + (baseValue + idValue) / NwConstants.RD_MAX_VALUE_FIELD ;
         baseValue = (baseValue + idValue) % NwConstants.RD_MAX_VALUE_FIELD ;
 
         return String.valueOf(baseAsNum) + ":" + String.valueOf(baseValue);
@@ -92,7 +92,7 @@ public class RDUtilsImpl implements RDUtils {
         Future<RpcResult<AllocateIdOutput>> result = idManagerService.allocateId(getIdInput);
         RpcResult<AllocateIdOutput> rpcResult = result.get();
         if (rpcResult.isSuccessful()) {
-            String rd = convertIdValuetoRD(rpcResult.getResult().getIdValue());
+            String rd = convertIdValuetoRD(rpcResult.getResult().getIdValue().toJava());
             return rd;
         }
         return null;
@@ -109,6 +109,7 @@ public class RDUtilsImpl implements RDUtils {
         }
     }
 
+    @Override
     public Optional<IdPool> getRDPool() throws ReadFailedException {
         return SingleTransactionDataBroker.syncReadOptional(dataBroker,
                 LogicalDatastoreType.CONFIGURATION, buildIdPoolInstanceIdentifier(NwConstants.ODL_RD_POOL_NAME));
@@ -116,7 +117,8 @@ public class RDUtilsImpl implements RDUtils {
 
     private void validateAndCreateRDPool() throws ReadFailedException {
         long lowLimit = 0L;
-        long highLimit = networkConfig.getOpendaylightRdCount();
+        Uint32 highConfig = networkConfig.getOpendaylightRdCount();
+        long highLimit = highConfig == null ? 0 : highConfig.toJava();
         if (highLimit == 0L) {
             highLimit = NwConstants.RD_DEFAULT_COUNT;
         }
@@ -125,8 +127,8 @@ public class RDUtilsImpl implements RDUtils {
                 buildIdPoolInstanceIdentifier(NwConstants.ODL_RD_POOL_NAME));
         if (existingIdPool.isPresent()) {
             IdPool odlRDPool = existingIdPool.get();
-            long currentStartLimit = odlRDPool.getAvailableIdsHolder().getStart();
-            long currentEndLimit = odlRDPool.getAvailableIdsHolder().getEnd();
+            long currentStartLimit = odlRDPool.getAvailableIdsHolder().getStart().toJava();
+            long currentEndLimit = odlRDPool.getAvailableIdsHolder().getEnd().toJava();
 
             if (lowLimit == currentStartLimit && highLimit == currentEndLimit) {
                 LOG.debug("validateAndCreateRDPool : OpenDaylight RD pool already exists "
@@ -190,4 +192,4 @@ public class RDUtilsImpl implements RDUtils {
                 InstanceIdentifier.builder(IdPools.class).child(IdPool.class, new IdPoolKey(poolName));
         return idPoolBuilder.build();
     }
-}
\ No newline at end of file
+}
index 7a4229eb6d1263a8f2490d44892397a4b1450cb6..e460d85a84e11e3a344980f7910091dd26df6098 100644 (file)
@@ -9,12 +9,10 @@ package org.opendaylight.genius.networkutils.impl;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.base.Optional;
-import java.math.BigInteger;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
 import javax.inject.Inject;
 import javax.inject.Singleton;
-
 import org.apache.aries.blueprint.annotation.service.Reference;
 import org.apache.aries.blueprint.annotation.service.Service;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
@@ -42,6 +40,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.networkutils.config.rev181129.NetworkConfig;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -65,15 +64,13 @@ public class VniUtilsImpl implements VniUtils {
     }
 
     @Override
-    public BigInteger getVNI(String vniKey) throws ExecutionException, InterruptedException {
+    public Uint64 getVNI(String vniKey) throws ExecutionException, InterruptedException {
         AllocateIdInput getIdInput = new AllocateIdInputBuilder().setPoolName(NwConstants.ODL_VNI_POOL_NAME)
                 .setIdKey(vniKey).build();
         Future<RpcResult<AllocateIdOutput>> result = idManagerService.allocateId(getIdInput);
         RpcResult<AllocateIdOutput> rpcResult = result.get();
-        if (rpcResult.isSuccessful()) {
-            return BigInteger.valueOf(rpcResult.getResult().getIdValue());
-        }
-        return BigInteger.valueOf(-1);
+
+        return rpcResult.isSuccessful() ? Uint64.valueOf(rpcResult.getResult().getIdValue()) : null;
     }
 
     @Override
@@ -87,6 +84,7 @@ public class VniUtilsImpl implements VniUtils {
         }
     }
 
+    @Override
     public Optional<IdPool> getVxlanVniPool() throws ReadFailedException {
         return SingleTransactionDataBroker.syncReadOptional(dataBroker,
                 LogicalDatastoreType.CONFIGURATION, buildIdPoolInstanceIdentifier(NwConstants.ODL_VNI_POOL_NAME));
@@ -115,8 +113,8 @@ public class VniUtilsImpl implements VniUtils {
                 buildIdPoolInstanceIdentifier(NwConstants.ODL_VNI_POOL_NAME));
         if (existingIdPool.isPresent()) {
             IdPool odlVniIdPool = existingIdPool.get();
-            long currentStartLimit = odlVniIdPool.getAvailableIdsHolder().getStart();
-            long currentEndLimit = odlVniIdPool.getAvailableIdsHolder().getEnd();
+            long currentStartLimit = odlVniIdPool.getAvailableIdsHolder().getStart().toJava();
+            long currentEndLimit = odlVniIdPool.getAvailableIdsHolder().getEnd().toJava();
 
             if (lowLimit == currentStartLimit && highLimit == currentEndLimit) {
                 LOG.debug("validateAndCreateVxlanVniPool : OpenDaylight VXLAN VNI range pool already exists "
@@ -180,4 +178,4 @@ public class VniUtilsImpl implements VniUtils {
                 InstanceIdentifier.builder(IdPools.class).child(IdPool.class, new IdPoolKey(poolName));
         return idPoolBuilder.build();
     }
-}
\ No newline at end of file
+}
index 0aa6419124540f7b30f545858616c7040a3657a0..9872a49282e5dce560ec29604c2107fc2c69bd98 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>
 
diff --git a/pom.xml b/pom.xml
index b28380ce079f3858486d7a1bfaa6010e01321e83..e11d6b8f625d143777b03d2ff55e1ad47b878b48 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL -->
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>5.0.2</version>
+    <version>6.0.0</version>
     <relativePath/>
   </parent>