├── .github
├── dependabot.yml
└── workflows
│ ├── gerrit-verify.yaml
│ └── github2gerrit.yaml
├── .gitignore
├── .gitreview
├── .readthedocs.yml
├── INFO.yaml
├── applications
├── arbitratorreconciliation
│ ├── api
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ └── yang
│ │ │ └── arbitrator-reconcile.yang
│ ├── impl
│ │ ├── pom.xml
│ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ └── org
│ │ │ │ └── opendaylight
│ │ │ │ └── openflowplugin
│ │ │ │ └── applications
│ │ │ │ └── arbitratorreconciliation
│ │ │ │ └── impl
│ │ │ │ ├── ArbitratorReconciliationManagerImpl.java
│ │ │ │ ├── DefaultUpgradeState.java
│ │ │ │ └── UpgradeState.java
│ │ │ └── yang
│ │ │ └── upgrade-config.yang
│ └── pom.xml
├── bulk-o-matic
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── opendaylight
│ │ │ │ └── openflowplugin
│ │ │ │ └── applications
│ │ │ │ └── bulk
│ │ │ │ └── o
│ │ │ │ └── matic
│ │ │ │ ├── BulkOMaticUtils.java
│ │ │ │ ├── FlowCounter.java
│ │ │ │ ├── FlowCounterMBean.java
│ │ │ │ ├── FlowReader.java
│ │ │ │ ├── FlowWriterConcurrent.java
│ │ │ │ ├── FlowWriterDirectOFRpc.java
│ │ │ │ ├── FlowWriterSequential.java
│ │ │ │ ├── FlowWriterTxChain.java
│ │ │ │ ├── SalBulkFlowRpcs.java
│ │ │ │ └── TableWriter.java
│ │ └── yang
│ │ │ └── sal-bulk-flow.yang
│ │ ├── site
│ │ └── asciidoc
│ │ │ └── bulk-o-matic.adoc
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── applications
│ │ └── bulk
│ │ └── o
│ │ └── matic
│ │ ├── BulkOMaticUtilsTest.java
│ │ ├── FlowReaderTest.java
│ │ ├── FlowWriterConcurrentTest.java
│ │ ├── FlowWriterDirectOFRpcTest.java
│ │ ├── FlowWriterSequentialTest.java
│ │ ├── FlowWriterTxChainTest.java
│ │ ├── SalBulkFlowRpcsTest.java
│ │ └── TableWriterTest.java
├── device-ownership-service
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── applications
│ │ └── deviceownershipservice
│ │ ├── DeviceOwnershipService.java
│ │ └── impl
│ │ └── DeviceOwnershipServiceImpl.java
├── forwardingrules-manager
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── opendaylight
│ │ │ │ └── openflowplugin
│ │ │ │ └── applications
│ │ │ │ └── frm
│ │ │ │ ├── ActionType.java
│ │ │ │ ├── BundleMessagesCommiter.java
│ │ │ │ ├── FlowCapableNodeConnectorCommitter.java
│ │ │ │ ├── FlowNodeConnectorInventoryTranslator.java
│ │ │ │ ├── FlowNodeReconciliation.java
│ │ │ │ ├── ForwardingRulesCommiter.java
│ │ │ │ ├── ForwardingRulesManager.java
│ │ │ │ ├── ForwardingRulesProperty.java
│ │ │ │ ├── NodeConfigurator.java
│ │ │ │ ├── ReconciliationJMXAgent.java
│ │ │ │ ├── ReconciliationJMXService.java
│ │ │ │ ├── ReconciliationJMXServiceMBean.java
│ │ │ │ ├── impl
│ │ │ │ ├── AbstractListeningCommiter.java
│ │ │ │ ├── AbstractNodeConnectorCommitter.java
│ │ │ │ ├── BundleFlowForwarder.java
│ │ │ │ ├── BundleGroupForwarder.java
│ │ │ │ ├── DeviceMastership.java
│ │ │ │ ├── DeviceMastershipManager.java
│ │ │ │ ├── DevicesGroupRegistry.java
│ │ │ │ ├── FlowForwarder.java
│ │ │ │ ├── FlowNodeConnectorInventoryTranslatorImpl.java
│ │ │ │ ├── FlowNodeReconciliationImpl.java
│ │ │ │ ├── ForwardingRulesManagerImpl.java
│ │ │ │ ├── GroupForwarder.java
│ │ │ │ ├── MeterForwarder.java
│ │ │ │ └── TableForwarder.java
│ │ │ │ ├── nodeconfigurator
│ │ │ │ ├── JobEntry.java
│ │ │ │ ├── JobQueue.java
│ │ │ │ └── NodeConfiguratorImpl.java
│ │ │ │ ├── recovery
│ │ │ │ ├── OpenflowServiceRecoveryHandler.java
│ │ │ │ └── impl
│ │ │ │ │ └── OpenflowServiceRecoveryHandlerImpl.java
│ │ │ │ └── util
│ │ │ │ └── FrmUtil.java
│ │ ├── resources
│ │ │ └── OSGI-INF
│ │ │ │ └── blueprint
│ │ │ │ └── forwardingrules-manager.xml
│ │ └── yang
│ │ │ ├── forwardingrules-manager-config.yang
│ │ │ └── frm-reconciliation.yang
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── applications
│ │ └── frm
│ │ └── impl
│ │ ├── AbstractFRMTest.java
│ │ ├── CapturingAddBundleMessages.java
│ │ ├── CapturingAddFlow.java
│ │ ├── CapturingAddGroup.java
│ │ ├── CapturingAddMeter.java
│ │ ├── CapturingControlBundle.java
│ │ ├── CapturingGetActiveBundle.java
│ │ ├── CapturingRemoveFlow.java
│ │ ├── CapturingRemoveGroup.java
│ │ ├── CapturingRemoveMeter.java
│ │ ├── CapturingUpdateFlow.java
│ │ ├── CapturingUpdateGroup.java
│ │ ├── CapturingUpdateMeter.java
│ │ ├── CapturingUpdateTable.java
│ │ ├── DeviceMastershipManagerTest.java
│ │ ├── DeviceMastershipTest.java
│ │ ├── FlowListenerTest.java
│ │ ├── GroupListenerTest.java
│ │ ├── MeterListenerTest.java
│ │ ├── NodeListenerTest.java
│ │ └── TableFeaturesListenerTest.java
├── forwardingrules-sync
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ └── java
│ │ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowplugin
│ │ │ └── applications
│ │ │ └── frsync
│ │ │ ├── ForwardingRulesAddCommitter.java
│ │ │ ├── ForwardingRulesCommitter.java
│ │ │ ├── ForwardingRulesRemoveCommitter.java
│ │ │ ├── ForwardingRulesUpdateCommitter.java
│ │ │ ├── NodeListener.java
│ │ │ ├── SemaphoreKeeper.java
│ │ │ ├── SyncPlanPushStrategy.java
│ │ │ ├── SyncReactor.java
│ │ │ ├── dao
│ │ │ ├── FlowCapableNodeCachedDao.java
│ │ │ ├── FlowCapableNodeDao.java
│ │ │ ├── FlowCapableNodeOdlDao.java
│ │ │ └── FlowCapableNodeSnapshotDao.java
│ │ │ ├── impl
│ │ │ ├── AbstractFrmSyncListener.java
│ │ │ ├── ForwardingRulesSyncProvider.java
│ │ │ ├── SimplifiedConfigListener.java
│ │ │ ├── SimplifiedOperationalListener.java
│ │ │ ├── SyncReactorClusterDecorator.java
│ │ │ ├── SyncReactorFutureDecorator.java
│ │ │ ├── SyncReactorFutureZipDecorator.java
│ │ │ ├── SyncReactorGuardDecorator.java
│ │ │ ├── SyncReactorImpl.java
│ │ │ ├── SyncReactorRetryDecorator.java
│ │ │ ├── clustering
│ │ │ │ ├── DeviceMastership.java
│ │ │ │ └── DeviceMastershipManager.java
│ │ │ └── strategy
│ │ │ │ ├── FlowForwarder.java
│ │ │ │ ├── GroupForwarder.java
│ │ │ │ ├── MeterForwarder.java
│ │ │ │ ├── SyncPlanPushStrategyFlatBatchImpl.java
│ │ │ │ ├── SyncPlanPushStrategyIncrementalImpl.java
│ │ │ │ ├── SynchronizationDiffInput.java
│ │ │ │ └── TableForwarder.java
│ │ │ └── util
│ │ │ ├── CrudCounts.java
│ │ │ ├── FlowCapableNodeLookups.java
│ │ │ ├── FlowDescriptor.java
│ │ │ ├── FxChainUtil.java
│ │ │ ├── ItemSyncBox.java
│ │ │ ├── ModificationUtil.java
│ │ │ ├── PathUtil.java
│ │ │ ├── ReconcileUtil.java
│ │ │ ├── ReconciliationRegistry.java
│ │ │ ├── SemaphoreKeeperGuavaImpl.java
│ │ │ ├── SyncCrudCounters.java
│ │ │ └── SyncupEntry.java
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowplugin
│ │ │ └── applications
│ │ │ └── frsync
│ │ │ ├── impl
│ │ │ ├── DSInputFactory.java
│ │ │ ├── ForwardingRulesSyncProviderTest.java
│ │ │ ├── SimplifiedConfigListenerTest.java
│ │ │ ├── SimplifiedOperationalListenerTest.java
│ │ │ ├── SyncReactorClusterDecoratorTest.java
│ │ │ ├── SyncReactorFutureZipDecoratorTest.java
│ │ │ ├── SyncReactorGuardDecoratorTest.java
│ │ │ ├── SyncReactorImplTest.java
│ │ │ ├── SyncReactorRetryDecoratorTest.java
│ │ │ ├── clustering
│ │ │ │ ├── DeviceMastershipManagerTest.java
│ │ │ │ └── DeviceMastershipTest.java
│ │ │ └── strategy
│ │ │ │ ├── DiffInputFactory.java
│ │ │ │ ├── FlowForwarderTest.java
│ │ │ │ ├── GroupForwarderTest.java
│ │ │ │ ├── MeterForwarderTest.java
│ │ │ │ ├── SyncPlanPushStrategyFlatBatchImplTest.java
│ │ │ │ ├── SyncPlanPushStrategyIncrementalImplTest.java
│ │ │ │ └── TableForwarderTest.java
│ │ │ └── util
│ │ │ ├── ReconcileUtilTest.java
│ │ │ ├── ReconciliationRegistryTest.java
│ │ │ └── SemaphoreKeeperGuavaImplTest.java
│ │ └── resources
│ │ └── log4j.xml
├── lldp-speaker
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── opendaylight
│ │ │ │ └── openflowplugin
│ │ │ │ └── applications
│ │ │ │ └── lldpspeaker
│ │ │ │ ├── LLDPSpeaker.java
│ │ │ │ ├── LLDPUtil.java
│ │ │ │ ├── NodeConnectorEventsObserver.java
│ │ │ │ └── NodeConnectorInventoryEventTranslator.java
│ │ ├── resources
│ │ │ └── OSGI-INF
│ │ │ │ └── blueprint
│ │ │ │ └── lldp-speaker.xml
│ │ └── yang
│ │ │ ├── lldp-speaker-config.yang
│ │ │ └── lldp-speaker.yang
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── applications
│ │ └── lldpspeaker
│ │ ├── LLDPSpeakerTest.java
│ │ ├── NodeConnectorInventoryEventTranslatorTest.java
│ │ └── TestUtils.java
├── of-switch-config-pusher
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ └── java
│ │ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowplugin
│ │ │ └── openflow
│ │ │ └── ofswitch
│ │ │ └── config
│ │ │ └── DefaultConfigPusher.java
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── openflow
│ │ └── ofswitch
│ │ └── config
│ │ └── DefaultConfigPusherTest.java
├── pom.xml
├── reconciliation-framework
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── applications
│ │ └── reconciliation
│ │ ├── NotificationRegistration.java
│ │ ├── ReconciliationManager.java
│ │ ├── ReconciliationNotificationListener.java
│ │ ├── cli
│ │ └── GetRegisteredServices.java
│ │ └── impl
│ │ ├── ReconciliationManagerImpl.java
│ │ └── ReconciliationServiceDelegate.java
├── southbound-cli
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowplugin
│ │ │ └── applications
│ │ │ └── southboundcli
│ │ │ ├── DefaultDpnTracker.java
│ │ │ ├── DefaultReconcileService.java
│ │ │ ├── DpnTracker.java
│ │ │ ├── ReconcileService.java
│ │ │ ├── alarm
│ │ │ ├── NodeReconciliationAlarm.java
│ │ │ └── NodeReconciliationAlarmMBean.java
│ │ │ ├── cli
│ │ │ ├── GetAllNodesCommand.java
│ │ │ ├── GetFlowGroupCacheCommand.java
│ │ │ ├── GetReconciliationStateCommand.java
│ │ │ ├── ReconcileCommand.java
│ │ │ ├── ReconciliationCountCommand.java
│ │ │ └── ShowNodeCommand.java
│ │ │ └── util
│ │ │ ├── OFNode.java
│ │ │ └── ShellUtil.java
│ │ └── yang
│ │ └── reconciliation.yang
├── table-miss-enforcer
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ └── java
│ │ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowplugin
│ │ │ └── applications
│ │ │ └── tablemissenforcer
│ │ │ └── LLDPPacketPuntEnforcer.java
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── applications
│ │ └── tablemissenforcer
│ │ └── LLDPDataTreeChangeListenerTest.java
├── topology-lldp-discovery
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── opendaylight
│ │ │ │ └── openflowplugin
│ │ │ │ └── applications
│ │ │ │ └── topology
│ │ │ │ └── lldp
│ │ │ │ ├── LLDPActivator.java
│ │ │ │ ├── LLDPDiscoveryListener.java
│ │ │ │ ├── LLDPLinkAger.java
│ │ │ │ ├── TopologyLLDPDiscoveryProperty.java
│ │ │ │ └── utils
│ │ │ │ └── LLDPDiscoveryUtils.java
│ │ ├── resources
│ │ │ └── OSGI-INF
│ │ │ │ └── blueprint
│ │ │ │ └── topology-lldp-discovery.xml
│ │ └── yang
│ │ │ └── topology-lldp-discovery-config.yang
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── applications
│ │ └── topology
│ │ └── lldp
│ │ ├── LLDPLinkAgerTest.java
│ │ └── utils
│ │ └── LLDPDiscoveryUtilsTest.java
└── topology-manager
│ ├── pom.xml
│ └── src
│ ├── main
│ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── applications
│ │ └── topology
│ │ └── manager
│ │ ├── DataTreeChangeListenerImpl.java
│ │ ├── FlowCapableNodeMapping.java
│ │ ├── FlowCapableTopologyExporter.java
│ │ ├── FlowCapableTopologyProvider.java
│ │ ├── NodeChangeListenerImpl.java
│ │ ├── OperationProcessor.java
│ │ ├── TerminationPointChangeListenerImpl.java
│ │ ├── TopologyManagerUtil.java
│ │ └── TopologyOperation.java
│ └── test
│ ├── java
│ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── applications
│ │ └── topology
│ │ └── manager
│ │ ├── DataTreeChangeListenerBase.java
│ │ ├── FlowCapableTopologyExporterTest.java
│ │ ├── NodeChangeListenerImplTest.java
│ │ ├── TerminationPointChangeListenerImplTest.java
│ │ └── TestUtils.java
│ └── resources
│ └── log4j.xml
├── artifacts
└── pom.xml
├── distribution
└── karaf
│ └── pom.xml
├── docs
├── _static
│ └── logo.png
├── conf.py
├── conf.yaml
├── devs
│ ├── index.rst
│ ├── library.rst
│ └── plugin.rst
├── favicon.ico
├── images
│ ├── 500px-UdpChannelPipeline.png
│ ├── 800px-Extensibility.png
│ ├── 800px-Extensibility2.png
│ ├── Library_lifecycle.png
│ ├── odl-ofp-add-flow.png
│ ├── odl-ofp-feature-tree.png
│ ├── odl-ofp-handshake.png
│ ├── odl-ofp-ofplugin-debug-stats.png
│ ├── odl-ofp-session-establishment.jpg
│ └── plugin_arch.png
├── index.rst
├── requirements.txt
├── specs
│ ├── arbitrator-reconciliation.rst
│ ├── bundle-reconciliation.rst
│ ├── device-connection-rate-limiter.rst
│ ├── group-add-mod.rst
│ ├── index.rst
│ ├── openflowplugin-event-logger.rst
│ ├── reconciliation-cli.rst
│ ├── reconciliation-framework.rst
│ └── southbound-cli.rst
├── testplans
│ ├── Bundles-Resync.rst
│ ├── index.rst
│ ├── testplan-template.rst
│ └── topologies
│ │ ├── default-topology.txt
│ │ └── dummy-topology.txt
└── users
│ ├── architecture.rst
│ ├── flow-examples.rst
│ ├── index.rst
│ ├── installation.rst
│ └── operation.rst
├── drop-test-karaf
├── pom.xml
└── src
│ └── main
│ └── java
│ └── org
│ └── opendaylight
│ └── openflowplugin
│ └── droptestkaraf
│ ├── ClearDropStatsCommandProvider.java
│ ├── DropAllPacketsCommandProvider.java
│ ├── DropAllPacketsCompleter.java
│ ├── DropAllPacketsRpcCommandProvider.java
│ └── ShowDropStatsCommandProvider.java
├── extension
├── openflowjava-extension-eric
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── opendaylight
│ │ │ │ └── openflowjava
│ │ │ │ └── eric
│ │ │ │ ├── EricExtensionCodecRegistratorImpl.java
│ │ │ │ ├── EricExtensionsRegistrator.java
│ │ │ │ ├── api
│ │ │ │ ├── EricConstants.java
│ │ │ │ └── EricExtensionCodecRegistrator.java
│ │ │ │ └── codec
│ │ │ │ └── match
│ │ │ │ ├── AbstractMatchCodec.java
│ │ │ │ ├── EricHeader.java
│ │ │ │ ├── Icmpv6NDOptionsTypeCodec.java
│ │ │ │ └── Icmpv6NDReservedCodec.java
│ │ ├── resources
│ │ │ └── org
│ │ │ │ └── opendaylight
│ │ │ │ └── blueprint
│ │ │ │ └── openflowjava-extension-eric.xml
│ │ └── yang
│ │ │ └── eric-match.yang
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowjava
│ │ └── eric
│ │ ├── EricExtensionCodecRegistratorImplTest.java
│ │ ├── EricExtensionsRegistratorTest.java
│ │ └── codec
│ │ └── match
│ │ ├── EricHeaderTest.java
│ │ ├── Icmpv6NDOptionsTypeCodecTest.java
│ │ └── Icmpv6NDReservedCodecTest.java
├── openflowjava-extension-nicira-api
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ └── java
│ │ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowjava
│ │ │ └── nx
│ │ │ └── api
│ │ │ ├── NiciraActionDeserializerKey.java
│ │ │ ├── NiciraActionSerializerKey.java
│ │ │ ├── NiciraConstants.java
│ │ │ ├── NiciraExtensionCodecRegistrator.java
│ │ │ └── NiciraUtil.java
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowjava
│ │ └── nx
│ │ └── api
│ │ ├── NiciraActionDeserializerKeyTest.java
│ │ └── NiciraActionSerializerKeyTest.java
├── openflowjava-extension-nicira
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── opendaylight
│ │ │ │ └── openflowjava
│ │ │ │ └── nx
│ │ │ │ ├── NiciraExtensionCodecRegistratorImpl.java
│ │ │ │ ├── NiciraExtensionsRegistrator.java
│ │ │ │ └── codec
│ │ │ │ ├── action
│ │ │ │ ├── AbstractActionCodec.java
│ │ │ │ ├── ActionDeserializer.java
│ │ │ │ ├── ConntrackCodec.java
│ │ │ │ ├── CtClearCodec.java
│ │ │ │ ├── DecNshTtlCodec.java
│ │ │ │ ├── DecapCodec.java
│ │ │ │ ├── EncapCodec.java
│ │ │ │ ├── FinTimeoutCodec.java
│ │ │ │ ├── LearnCodec.java
│ │ │ │ ├── LearnCodecUtil.java
│ │ │ │ ├── MultipathCodec.java
│ │ │ │ ├── NiciraActionCodecs.java
│ │ │ │ ├── OutputReg2Codec.java
│ │ │ │ ├── OutputRegCodec.java
│ │ │ │ ├── RegLoad2Codec.java
│ │ │ │ ├── RegLoadCodec.java
│ │ │ │ ├── RegMoveCodec.java
│ │ │ │ └── ResubmitCodec.java
│ │ │ │ └── match
│ │ │ │ ├── AbstractExperimenterMatchCodec.java
│ │ │ │ ├── AbstractMatchCodec.java
│ │ │ │ ├── AbstractNshcCodec.java
│ │ │ │ ├── AbstractRegCodec.java
│ │ │ │ ├── ArpOpCodec.java
│ │ │ │ ├── ArpShaCodec.java
│ │ │ │ ├── ArpSpaCodec.java
│ │ │ │ ├── ArpThaCodec.java
│ │ │ │ ├── ArpTpaCodec.java
│ │ │ │ ├── CtMarkCodec.java
│ │ │ │ ├── CtStateCodec.java
│ │ │ │ ├── CtTpDstCodec.java
│ │ │ │ ├── CtTpSrcCodec.java
│ │ │ │ ├── CtZoneCodec.java
│ │ │ │ ├── EthDstCodec.java
│ │ │ │ ├── EthSrcCodec.java
│ │ │ │ ├── EthTypeCodec.java
│ │ │ │ ├── IcmpTypeCodec.java
│ │ │ │ ├── InPortCodec.java
│ │ │ │ ├── IpDstCodec.java
│ │ │ │ ├── IpSrcCodec.java
│ │ │ │ ├── Ipv6DstCodec.java
│ │ │ │ ├── Ipv6SrcCodec.java
│ │ │ │ ├── MetadataCodec.java
│ │ │ │ ├── MplsLabelCodec.java
│ │ │ │ ├── NiciraMatchCodecs.java
│ │ │ │ ├── NshFlagsCodec.java
│ │ │ │ ├── NshMdtypeCodec.java
│ │ │ │ ├── NshNpCodec.java
│ │ │ │ ├── NshTtlCodec.java
│ │ │ │ ├── Nshc1Codec.java
│ │ │ │ ├── Nshc2Codec.java
│ │ │ │ ├── Nshc3Codec.java
│ │ │ │ ├── Nshc4Codec.java
│ │ │ │ ├── NsiCodec.java
│ │ │ │ ├── NspCodec.java
│ │ │ │ ├── NxmHeader.java
│ │ │ │ ├── PktMarkCodec.java
│ │ │ │ ├── Reg0Codec.java
│ │ │ │ ├── Reg1Codec.java
│ │ │ │ ├── Reg2Codec.java
│ │ │ │ ├── Reg3Codec.java
│ │ │ │ ├── Reg4Codec.java
│ │ │ │ ├── Reg5Codec.java
│ │ │ │ ├── Reg6Codec.java
│ │ │ │ ├── Reg7Codec.java
│ │ │ │ ├── TcpDstCodec.java
│ │ │ │ ├── TcpSrcCodec.java
│ │ │ │ ├── TunIdCodec.java
│ │ │ │ ├── TunIpv4DstCodec.java
│ │ │ │ ├── TunIpv4SrcCodec.java
│ │ │ │ ├── UdpDstCodec.java
│ │ │ │ └── UdpSrcCodec.java
│ │ └── yang
│ │ │ ├── nicira-action.yang
│ │ │ └── nicira-match.yang
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowjava
│ │ └── nx
│ │ ├── NiciraExtensionCodecRegistratorImplTest.java
│ │ ├── NiciraExtensionsRegistratorTest.java
│ │ └── codec
│ │ ├── action
│ │ ├── AbstractActionCodecTest.java
│ │ ├── ActionDeserializerTest.java
│ │ ├── ConntrackCodecTest.java
│ │ ├── CtClearCodecTest.java
│ │ ├── DecNshTtlCodecTest.java
│ │ ├── DecapCodecTest.java
│ │ ├── EncapCodecTest.java
│ │ ├── FinTimeoutCodecTest.java
│ │ ├── LearnCodecTest.java
│ │ ├── MultipathCodecTest.java
│ │ ├── OutputReg2CodecTest.java
│ │ ├── OutputRegCodecTest.java
│ │ ├── RegLoad2CodecTest.java
│ │ ├── RegLoadCodecTest.java
│ │ ├── RegMoveCodecTest.java
│ │ ├── ResubmitCodecTest.java
│ │ └── TestsCodecStub.java
│ │ └── match
│ │ ├── AbstractExperimenterMatchCodecTest.java
│ │ ├── AbstractNshcCodecTest.java
│ │ ├── ArpOpCodecTest.java
│ │ ├── ArpShaCodecTest.java
│ │ ├── ArpSpaCodecTest.java
│ │ ├── ArpThaCodecTest.java
│ │ ├── ArpTpaCodecTest.java
│ │ ├── CtStateCodecTest.java
│ │ ├── CtTpDstCodecTest.java
│ │ ├── CtTpSrcCodecTest.java
│ │ ├── CtZoneCodecTest.java
│ │ ├── EthDstCodecTest.java
│ │ ├── EthSrcCodecTest.java
│ │ ├── EthTypeCodecTest.java
│ │ ├── IcmpTypeCodecTest.java
│ │ ├── IpDstCodecTest.java
│ │ ├── IpSrcCodecTest.java
│ │ ├── Ipv6DstCodecTest.java
│ │ ├── Ipv6SrcCodecTest.java
│ │ ├── MetadataCodecTest.java
│ │ ├── NshFlagsCodecTest.java
│ │ ├── NshMdtypeCodecTest.java
│ │ ├── NshNpCodecTest.java
│ │ ├── NshTtlCodecTest.java
│ │ ├── NsiCodecTest.java
│ │ ├── NspCodecTest.java
│ │ ├── NxmHeaderTest.java
│ │ ├── PktMarkCodecTest.java
│ │ ├── Reg0CodecTest.java
│ │ ├── Reg1CodecTest.java
│ │ ├── Reg2CodecTest.java
│ │ ├── Reg3CodecTest.java
│ │ ├── Reg4CodecTest.java
│ │ ├── Reg5CodecTest.java
│ │ ├── Reg6CodecTest.java
│ │ ├── Reg7CodecTest.java
│ │ ├── TcpDstCodecTest.java
│ │ ├── TcpSrcCodecTest.java
│ │ ├── TunIdCodecTest.java
│ │ ├── TunIpv4DstCodecTest.java
│ │ ├── TunIpv4SrcCodecTest.java
│ │ ├── UdpDstCodecTest.java
│ │ └── UdpSrcCodecTest.java
├── openflowplugin-extension-api
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── opendaylight
│ │ │ │ └── openflowplugin
│ │ │ │ └── extension
│ │ │ │ └── api
│ │ │ │ ├── AugmentTuple.java
│ │ │ │ ├── AugmentationGroupingResolver.java
│ │ │ │ ├── ConverterExtensionKey.java
│ │ │ │ ├── ConverterMessageToOFJava.java
│ │ │ │ ├── ConvertorActionFromOFJava.java
│ │ │ │ ├── ConvertorActionToOFJava.java
│ │ │ │ ├── ConvertorData.java
│ │ │ │ ├── ConvertorFromOFJava.java
│ │ │ │ ├── ConvertorMessageFromOFJava.java
│ │ │ │ ├── ConvertorToOFJava.java
│ │ │ │ ├── ExtensionAugment.java
│ │ │ │ ├── ExtensionConverterProviderKeeper.java
│ │ │ │ ├── ExtensionConverterRegistrator.java
│ │ │ │ ├── ExtensionConvertorData.java
│ │ │ │ ├── GroupingLooseResolver.java
│ │ │ │ ├── GroupingResolver.java
│ │ │ │ ├── OpenFlowPluginExtensionRegistratorProvider.java
│ │ │ │ ├── TypeVersionKey.java
│ │ │ │ ├── core
│ │ │ │ ├── extension
│ │ │ │ │ ├── ExtensionConverterManager.java
│ │ │ │ │ └── ExtensionConverterProvider.java
│ │ │ │ └── session
│ │ │ │ │ └── ExtensionSessionManager.java
│ │ │ │ ├── exception
│ │ │ │ ├── ConversionException.java
│ │ │ │ ├── ConverterNotFoundException.java
│ │ │ │ └── ExperimenterConversionException.java
│ │ │ │ └── path
│ │ │ │ ├── ActionPath.java
│ │ │ │ ├── AugmentationPath.java
│ │ │ │ ├── MatchPath.java
│ │ │ │ └── MessagePath.java
│ │ └── yang
│ │ │ ├── onf-extensions.yang
│ │ │ ├── openflowplugin-experimenter-types.yang
│ │ │ ├── openflowplugin-extension-general.yang
│ │ │ ├── sal-bundle.yang
│ │ │ ├── sal-experimenter-message.yang
│ │ │ └── sal-experimenter-mp-message.yang
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── extension
│ │ └── api
│ │ ├── ConverterExtensionActionKeyTest.java
│ │ ├── ConverterExtensionMatchKeyTest.java
│ │ ├── GroupingLooseResolverTest.java
│ │ ├── GroupingResolverTest.java
│ │ ├── SetFieldExtensionTest.java
│ │ └── TypeVersionKeyTest.java
├── openflowplugin-extension-eric
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── opendaylight
│ │ │ │ └── openflowplugin
│ │ │ │ └── extension
│ │ │ │ └── vendor
│ │ │ │ └── eric
│ │ │ │ ├── EricExtensionProvider.java
│ │ │ │ └── convertor
│ │ │ │ ├── CodecPreconditionException.java
│ │ │ │ └── match
│ │ │ │ ├── Icmpv6NDOptionsTypeConvertor.java
│ │ │ │ ├── Icmpv6NDReservedConvertor.java
│ │ │ │ └── MatchUtil.java
│ │ ├── resources
│ │ │ └── org
│ │ │ │ └── opendaylight
│ │ │ │ └── blueprint
│ │ │ │ └── openflowplugin-extension-eric.xml
│ │ └── yang
│ │ │ └── openflowplugin-extension-eric-match.yang
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── extension
│ │ └── vendor
│ │ └── eric
│ │ └── convertor
│ │ └── match
│ │ ├── Icmpv6NDOptionsTypeConvertorTest.java
│ │ └── Icmpv6NDReservedConvertorTest.java
├── openflowplugin-extension-nicira
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── opendaylight
│ │ │ │ └── openflowplugin
│ │ │ │ └── extension
│ │ │ │ └── vendor
│ │ │ │ └── nicira
│ │ │ │ ├── NiciraExtensionProvider.java
│ │ │ │ └── convertor
│ │ │ │ ├── CodecPreconditionException.java
│ │ │ │ ├── IpConverter.java
│ │ │ │ ├── action
│ │ │ │ ├── ActionUtil.java
│ │ │ │ ├── ConntrackConvertor.java
│ │ │ │ ├── CtClearConvertor.java
│ │ │ │ ├── DecNshTtlConvertor.java
│ │ │ │ ├── DecapConvertor.java
│ │ │ │ ├── EncapConvertor.java
│ │ │ │ ├── FieldChoiceResolver.java
│ │ │ │ ├── FinTimeoutConvertor.java
│ │ │ │ ├── LearnConvertor.java
│ │ │ │ ├── LearnConvertorUtil.java
│ │ │ │ ├── MultipathConvertor.java
│ │ │ │ ├── OutputReg2Convertor.java
│ │ │ │ ├── OutputRegConvertor.java
│ │ │ │ ├── OutputRegConvertorProxy.java
│ │ │ │ ├── RegLoad2Convertor.java
│ │ │ │ ├── RegLoadConvertor.java
│ │ │ │ ├── RegLoadConvertorProxy.java
│ │ │ │ ├── RegMoveConvertor.java
│ │ │ │ └── ResubmitConvertor.java
│ │ │ │ └── match
│ │ │ │ ├── ArpOpConvertor.java
│ │ │ │ ├── ArpShaConvertor.java
│ │ │ │ ├── ArpSpaConvertor.java
│ │ │ │ ├── ArpThaConvertor.java
│ │ │ │ ├── ArpTpaConvertor.java
│ │ │ │ ├── CtMarkConvertor.java
│ │ │ │ ├── CtStateConvertor.java
│ │ │ │ ├── CtTpDstConvertor.java
│ │ │ │ ├── CtTpSrcConvertor.java
│ │ │ │ ├── CtZoneConvertor.java
│ │ │ │ ├── EthDstConvertor.java
│ │ │ │ ├── EthSrcConvertor.java
│ │ │ │ ├── EthTypeConvertor.java
│ │ │ │ ├── MatchUtil.java
│ │ │ │ ├── NshFlagsConvertor.java
│ │ │ │ ├── NshMdtypeConvertor.java
│ │ │ │ ├── NshNpConvertor.java
│ │ │ │ ├── NshTtlConvertor.java
│ │ │ │ ├── Nshc1Convertor.java
│ │ │ │ ├── Nshc2Convertor.java
│ │ │ │ ├── Nshc3Convertor.java
│ │ │ │ ├── Nshc4Convertor.java
│ │ │ │ ├── NsiConvertor.java
│ │ │ │ ├── NspConvertor.java
│ │ │ │ ├── NxmInPortConvertor.java
│ │ │ │ ├── PktMarkConvertor.java
│ │ │ │ ├── RegConvertor.java
│ │ │ │ ├── TcpDstConvertor.java
│ │ │ │ ├── TcpSrcConvertor.java
│ │ │ │ ├── TunIPv4DstConvertor.java
│ │ │ │ ├── TunIPv4SrcConvertor.java
│ │ │ │ ├── TunIdConvertor.java
│ │ │ │ ├── UdpDstConvertor.java
│ │ │ │ └── UdpSrcConvertor.java
│ │ └── yang
│ │ │ ├── openflowplugin-extension-nicira-action.yang
│ │ │ └── openflowplugin-extension-nicira-match.yang
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowplugin
│ │ │ └── extension
│ │ │ └── vendor
│ │ │ └── nicira
│ │ │ ├── NiciraExtensionProviderTest.java
│ │ │ └── convertor
│ │ │ ├── IpConverterTest.java
│ │ │ ├── MatchUtilTest.java
│ │ │ ├── action
│ │ │ ├── ConntrackConvertorTest.java
│ │ │ ├── CtClearConvertorTest.java
│ │ │ ├── DecNshTtlConvertorTest.java
│ │ │ ├── DecapConvertorTest.java
│ │ │ ├── EncapConvertorTest.java
│ │ │ ├── FieldChoiceResolverTest.java
│ │ │ ├── FinTimeoutConvertorTest.java
│ │ │ ├── MultipathConvertorTest.java
│ │ │ ├── OutputReg2ConvertorTest.java
│ │ │ ├── OutputRegConvertorTest.java
│ │ │ ├── RegLoad2ConvertorTest.java
│ │ │ ├── RegLoadConvertorTest.java
│ │ │ ├── RegMoveConvertorTest.java
│ │ │ └── ResubmitConvertorTest.java
│ │ │ └── match
│ │ │ ├── ArpOpConvertorTest.java
│ │ │ ├── ArpShaConvertorTest.java
│ │ │ ├── ArpSpaConvertorTest.java
│ │ │ ├── ArpThaConvertorTest.java
│ │ │ ├── ArpTpaConvertorTest.java
│ │ │ ├── CtStateConvertorTest.java
│ │ │ ├── CtZoneConvertorTest.java
│ │ │ ├── EthDstConvertorTest.java
│ │ │ ├── EthSrcConvertorTest.java
│ │ │ ├── EthTypeConvertorTest.java
│ │ │ ├── NshFlagsConvertorTest.java
│ │ │ ├── NshMdtypeConvertorTest.java
│ │ │ ├── NshNpConvertorTest.java
│ │ │ ├── NshTtlConvertorTest.java
│ │ │ ├── Nshc1ConvertorTest.java
│ │ │ ├── Nshc2ConvertorTest.java
│ │ │ ├── Nshc3ConvertorTest.java
│ │ │ ├── Nshc4ConvertorTest.java
│ │ │ ├── NsiConvertorTest.java
│ │ │ ├── NspConvertorTest.java
│ │ │ ├── TcpDstConvertorTest.java
│ │ │ ├── TcpSrcConvertorTest.java
│ │ │ ├── TunIPv4DstConvertorTest.java
│ │ │ ├── TunIPv4SrcConvertorTest.java
│ │ │ ├── TunIdConvertorTest.java
│ │ │ ├── UdpDstConvertorTest.java
│ │ │ └── UdpSrcConvertorTest.java
│ │ └── resources
│ │ └── log4j.xml
├── openflowplugin-extension-onf
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ └── java
│ │ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowplugin
│ │ │ └── extension
│ │ │ └── onf
│ │ │ ├── OnfConstants.java
│ │ │ ├── OnfExtensionProvider.java
│ │ │ ├── converter
│ │ │ ├── BundleAddMessageConverter.java
│ │ │ └── BundleControlConverter.java
│ │ │ ├── deserializer
│ │ │ ├── BundleControlFactory.java
│ │ │ └── OnfExperimenterErrorFactory.java
│ │ │ └── serializer
│ │ │ ├── AbstractBundleMessageFactory.java
│ │ │ ├── BundleAddMessageFactory.java
│ │ │ └── BundleControlFactory.java
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── extension
│ │ └── onf
│ │ ├── BundleTestUtils.java
│ │ ├── ByteBufUtils.java
│ │ ├── OnfExtensionProviderTest.java
│ │ ├── converter
│ │ ├── BundleAddMessageConverterTest.java
│ │ └── BundleControlConverterTest.java
│ │ ├── deserializer
│ │ ├── BundleControlFactoryTest.java
│ │ └── OnfExperimenterErrorFactoryTest.java
│ │ └── serializer
│ │ ├── AbstractBundleMessageFactoryTest.java
│ │ ├── BundleAddMessageFactoryTest.java
│ │ └── BundleControlFactoryTest.java
├── pom.xml
└── test-extension
│ ├── pom.xml
│ └── src
│ └── main
│ ├── java
│ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── extension
│ │ └── test
│ │ └── Test.java
│ └── yang
│ └── test.yang
├── features
├── features-openflowplugin
│ └── pom.xml
├── odl-openflowjava-protocol
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── feature
│ │ └── feature.xml
├── odl-openflowplugin-app-arbitratorreconciliation
│ └── pom.xml
├── odl-openflowplugin-app-bulk-o-matic
│ └── pom.xml
├── odl-openflowplugin-app-config-pusher
│ └── pom.xml
├── odl-openflowplugin-app-forwardingrules-manager
│ └── pom.xml
├── odl-openflowplugin-app-forwardingrules-sync
│ └── pom.xml
├── odl-openflowplugin-app-lldp-speaker
│ └── pom.xml
├── odl-openflowplugin-app-reconciliation-framework
│ └── pom.xml
├── odl-openflowplugin-app-southbound-cli
│ └── pom.xml
├── odl-openflowplugin-app-table-miss-enforcer
│ └── pom.xml
├── odl-openflowplugin-app-topology-lldp-discovery
│ └── pom.xml
├── odl-openflowplugin-app-topology-manager
│ └── pom.xml
├── odl-openflowplugin-app-topology
│ └── pom.xml
├── odl-openflowplugin-drop-test
│ └── pom.xml
├── odl-openflowplugin-eric-extensions
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── features
│ │ └── features.xml
├── odl-openflowplugin-flow-services-rest
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── feature
│ │ └── feature.xml
├── odl-openflowplugin-flow-services
│ └── pom.xml
├── odl-openflowplugin-libraries
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── feature
│ │ └── feature.xml
├── odl-openflowplugin-nsf-model
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── feature
│ │ └── feature.xml
├── odl-openflowplugin-nxm-extensions
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── features
│ │ └── features.xml
├── odl-openflowplugin-onf-extensions
│ └── pom.xml
├── odl-openflowplugin-southbound
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── feature
│ │ └── feature.xml
└── pom.xml
├── libraries
├── liblldp
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ └── java
│ │ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowplugin
│ │ │ └── libraries
│ │ │ └── liblldp
│ │ │ ├── BitBufferHelper.java
│ │ │ ├── BufferException.java
│ │ │ ├── CustomTLVKey.java
│ │ │ ├── DataLinkAddress.java
│ │ │ ├── EtherTypes.java
│ │ │ ├── Ethernet.java
│ │ │ ├── EthernetAddress.java
│ │ │ ├── HexEncode.java
│ │ │ ├── LLDP.java
│ │ │ ├── LLDPTLV.java
│ │ │ ├── NetUtils.java
│ │ │ ├── Packet.java
│ │ │ └── PacketException.java
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowplugin
│ │ │ └── libraries
│ │ │ ├── liblldp
│ │ │ ├── BitBufferHelperTest.java
│ │ │ ├── HexEncodeTest.java
│ │ │ ├── LLDPTLVTest.java
│ │ │ └── LLDPTest.java
│ │ │ └── sal
│ │ │ └── packet
│ │ │ └── address
│ │ │ └── EthernetAddressTest.java
│ │ └── resources
│ │ └── log4j.xml
└── pom.xml
├── model
├── model-flow-base
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── opendaylight
│ │ │ └── yang
│ │ │ └── gen
│ │ │ └── v1
│ │ │ └── urn
│ │ │ └── opendaylight
│ │ │ └── flow
│ │ │ └── types
│ │ │ └── port
│ │ │ └── rev130925
│ │ │ └── PortNumberUniBuilder.java
│ │ └── yang
│ │ ├── opendaylight-action-types.yang
│ │ ├── opendaylight-arbitrary-bitmask-fields.yang
│ │ ├── opendaylight-flow-types.yang
│ │ ├── opendaylight-group-types.yang
│ │ ├── opendaylight-ipv6-arbitrary-bitmask-fields.yang
│ │ ├── opendaylight-match-types.yang
│ │ ├── opendaylight-meter-types.yang
│ │ ├── opendaylight-multipart-types.yang
│ │ ├── opendaylight-port-types.yang
│ │ ├── opendaylight-queue-types.yang
│ │ └── opendaylight-table-types.yang
├── model-flow-service
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── yang
│ │ ├── barrier-common.yang
│ │ ├── batch-common.yang
│ │ ├── flow-capable-transaction.yang
│ │ ├── flow-errors.yang
│ │ ├── flow-node-inventory.yang
│ │ ├── flow-topology-discovery.yang
│ │ ├── node-config.yang
│ │ ├── node-ssl-connection-errors.yang
│ │ ├── packet-processing.yang
│ │ ├── sal-async-config.yang
│ │ ├── sal-echo.yang
│ │ ├── sal-flat-batch.yang
│ │ ├── sal-flow.yang
│ │ ├── sal-flows-batch.yang
│ │ ├── sal-group.yang
│ │ ├── sal-groups-batch.yang
│ │ ├── sal-meter.yang
│ │ ├── sal-meters-batch.yang
│ │ ├── sal-port.yang
│ │ ├── sal-queue.yang
│ │ ├── sal-role.yang
│ │ └── sal-table.yang
├── model-flow-statistics
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── yang
│ │ ├── opendaylight-direct-statistics.yang
│ │ ├── opendaylight-flow-statistics.yang
│ │ ├── opendaylight-flow-table-statistics.yang
│ │ ├── opendaylight-group-statistics.yang
│ │ ├── opendaylight-meter-statistics.yang
│ │ ├── opendaylight-port-statistics.yang
│ │ ├── opendaylight-queue-statistics.yang
│ │ └── opendaylight-statistics-types.yang
├── model-inventory
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── yang
│ │ └── opendaylight-inventory.yang
├── model-topology
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── yang
│ │ └── opendaylight-topology-inventory.yang
└── pom.xml
├── openflowjava
├── openflow-protocol-api
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── opendaylight
│ │ │ │ └── openflowjava
│ │ │ │ └── protocol
│ │ │ │ └── api
│ │ │ │ ├── connection
│ │ │ │ ├── ConnectionAdapter.java
│ │ │ │ ├── ConnectionConfiguration.java
│ │ │ │ ├── ConnectionReadyListener.java
│ │ │ │ ├── DeviceRequestFailedException.java
│ │ │ │ ├── ListeningStatusProvider.java
│ │ │ │ ├── OutboundQueue.java
│ │ │ │ ├── OutboundQueueException.java
│ │ │ │ ├── OutboundQueueHandler.java
│ │ │ │ ├── OutboundQueueHandlerRegistration.java
│ │ │ │ ├── StatisticsConfiguration.java
│ │ │ │ ├── SwitchConnectionHandler.java
│ │ │ │ ├── ThreadConfiguration.java
│ │ │ │ ├── TlsConfiguration.java
│ │ │ │ └── TlsConfigurationImpl.java
│ │ │ │ ├── extensibility
│ │ │ │ ├── AlienMessageListener.java
│ │ │ │ ├── DeserializerExtensionProvider.java
│ │ │ │ ├── DeserializerRegistry.java
│ │ │ │ ├── DeserializerRegistryInjector.java
│ │ │ │ ├── EnhancedMessageCodeKey.java
│ │ │ │ ├── EnhancedMessageTypeKey.java
│ │ │ │ ├── HeaderDeserializer.java
│ │ │ │ ├── HeaderSerializer.java
│ │ │ │ ├── OFDeserializer.java
│ │ │ │ ├── OFGeneralDeserializer.java
│ │ │ │ ├── OFGeneralSerializer.java
│ │ │ │ ├── OFSerializer.java
│ │ │ │ ├── SerializerExtensionProvider.java
│ │ │ │ ├── SerializerRegistry.java
│ │ │ │ └── SerializerRegistryInjector.java
│ │ │ │ ├── keys
│ │ │ │ ├── ActionDeserializerKey.java
│ │ │ │ ├── ActionSerializerKey.java
│ │ │ │ ├── ExperimenterActionDeserializerKey.java
│ │ │ │ ├── ExperimenterActionSerializerKey.java
│ │ │ │ ├── ExperimenterDeserializerKey.java
│ │ │ │ ├── ExperimenterIdDeserializerKey.java
│ │ │ │ ├── ExperimenterIdMeterSubTypeSerializerKey.java
│ │ │ │ ├── ExperimenterIdSerializerKey.java
│ │ │ │ ├── ExperimenterIdTypeDeserializerKey.java
│ │ │ │ ├── ExperimenterIdTypeSerializerKey.java
│ │ │ │ ├── ExperimenterInstructionDeserializerKey.java
│ │ │ │ ├── ExperimenterInstructionSerializerKey.java
│ │ │ │ ├── ExperimenterSerializerKey.java
│ │ │ │ ├── InstructionDeserializerKey.java
│ │ │ │ ├── InstructionSerializerKey.java
│ │ │ │ ├── MatchEntryDeserializerKey.java
│ │ │ │ ├── MatchEntrySerializerKey.java
│ │ │ │ ├── MessageCodeKey.java
│ │ │ │ ├── MessageTypeKey.java
│ │ │ │ └── TypeToClassKey.java
│ │ │ │ └── util
│ │ │ │ ├── BinContent.java
│ │ │ │ ├── EncodeConstants.java
│ │ │ │ └── OxmMatchConstants.java
│ │ └── yang
│ │ │ ├── openflow-action.yang
│ │ │ ├── openflow-approved-extensions.yang
│ │ │ ├── openflow-augments.yang
│ │ │ ├── openflow-configuration.yang
│ │ │ ├── openflow-extensible-match.yang
│ │ │ ├── openflow-instruction.yang
│ │ │ ├── openflow-protocol.yang
│ │ │ ├── openflow-types.yang
│ │ │ └── system-notifications.yang
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowjava
│ │ └── protocol
│ │ └── api
│ │ ├── connection
│ │ └── TlsConfigurationImplTest.java
│ │ ├── extensibility
│ │ ├── EnhancedMessageCodeKeyTest.java
│ │ ├── EnhancedMessageTypeKeyTest.java
│ │ ├── MessageCodeKeyTest.java
│ │ └── MessageTypeKeyTest.java
│ │ ├── keys
│ │ ├── ActionDeserializerKeyTest.java
│ │ ├── ActionSerializerKeyTest.java
│ │ ├── InstructionDeserializerKeyTest.java
│ │ ├── InstructionSerializerKeyTest.java
│ │ ├── KeysTest.java
│ │ ├── MatchEntryDeserializerKeyTest.java
│ │ ├── MatchEntrySerializerKeyTest.java
│ │ ├── TypeToClassKeyTest.java
│ │ └── experimenter
│ │ │ ├── ExperimenterActionDeserializerKeyTest.java
│ │ │ ├── ExperimenterActionSerializerKeyTest.java
│ │ │ ├── ExperimenterIdDeserializerKeyTest.java
│ │ │ ├── ExperimenterIdSerializerKeyTest.java
│ │ │ ├── ExperimenterIdTypeDeserializerKeyTest.java
│ │ │ ├── ExperimenterIdTypeSerializerKeyTest.java
│ │ │ ├── ExperimenterInstructionDeserializerKeyTest.java
│ │ │ └── ExperimenterInstructionSerializerKeyTest.java
│ │ └── util
│ │ └── BinContentTest.java
├── openflow-protocol-impl
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ ├── java
│ │ │ └── org
│ │ │ │ └── opendaylight
│ │ │ │ └── openflowjava
│ │ │ │ ├── protocol
│ │ │ │ └── impl
│ │ │ │ │ ├── core
│ │ │ │ │ ├── ChannelInitializerFactory.java
│ │ │ │ │ ├── ConnectionConfigurationImpl.java
│ │ │ │ │ ├── ConnectionInitializer.java
│ │ │ │ │ ├── DelegatingInboundHandler.java
│ │ │ │ │ ├── IdleHandler.java
│ │ │ │ │ ├── OFDatagramPacketDecoder.java
│ │ │ │ │ ├── OFDatagramPacketEncoder.java
│ │ │ │ │ ├── OFDatagramPacketHandler.java
│ │ │ │ │ ├── OFDecoder.java
│ │ │ │ │ ├── OFEncoder.java
│ │ │ │ │ ├── OFFrameDecoder.java
│ │ │ │ │ ├── OFVersionDetector.java
│ │ │ │ │ ├── PipelineHandlers.java
│ │ │ │ │ ├── ProtocolChannelInitializer.java
│ │ │ │ │ ├── ServerFacade.java
│ │ │ │ │ ├── SslContextFactory.java
│ │ │ │ │ ├── SslKeyStore.java
│ │ │ │ │ ├── SwitchConnectionProviderFactoryImpl.java
│ │ │ │ │ ├── SwitchConnectionProviderImpl.java
│ │ │ │ │ ├── TcpChannelInitializer.java
│ │ │ │ │ ├── TcpServerFacade.java
│ │ │ │ │ ├── UdpChannelInitializer.java
│ │ │ │ │ ├── UdpConnectionMap.java
│ │ │ │ │ ├── UdpServerFacade.java
│ │ │ │ │ ├── VersionMessageUdpWrapper.java
│ │ │ │ │ ├── VersionMessageWrapper.java
│ │ │ │ │ └── connection
│ │ │ │ │ │ ├── AbstractConnectionAdapter.java
│ │ │ │ │ │ ├── AbstractConnectionAdapterStatistics.java
│ │ │ │ │ │ ├── AbstractOutboundQueueManager.java
│ │ │ │ │ │ ├── AbstractRpcListener.java
│ │ │ │ │ │ ├── AbstractStackedOutboundQueue.java
│ │ │ │ │ │ ├── ChannelOutboundQueue.java
│ │ │ │ │ │ ├── ConnectionAdapterFactory.java
│ │ │ │ │ │ ├── ConnectionAdapterFactoryImpl.java
│ │ │ │ │ │ ├── ConnectionAdapterImpl.java
│ │ │ │ │ │ ├── ConnectionFacade.java
│ │ │ │ │ │ ├── MessageConsumer.java
│ │ │ │ │ │ ├── MessageListenerWrapper.java
│ │ │ │ │ │ ├── OutboundQueueEntry.java
│ │ │ │ │ │ ├── OutboundQueueHandlerRegistrationImpl.java
│ │ │ │ │ │ ├── OutboundQueueManager.java
│ │ │ │ │ │ ├── OutboundQueueManagerNoBarrier.java
│ │ │ │ │ │ ├── ResponseExpectedRpcListener.java
│ │ │ │ │ │ ├── RpcResponseKey.java
│ │ │ │ │ │ ├── SimpleRpcListener.java
│ │ │ │ │ │ ├── StackedOutboundQueue.java
│ │ │ │ │ │ ├── StackedOutboundQueueNoBarrier.java
│ │ │ │ │ │ ├── StackedSegment.java
│ │ │ │ │ │ └── UdpMessageListenerWrapper.java
│ │ │ │ │ ├── deserialization
│ │ │ │ │ ├── ActionDeserializerInitializer.java
│ │ │ │ │ ├── AdditionalMessageDeserializerInitializer.java
│ │ │ │ │ ├── DeserializationFactory.java
│ │ │ │ │ ├── DeserializerRegistryImpl.java
│ │ │ │ │ ├── InstructionDeserializerInitializer.java
│ │ │ │ │ ├── MatchEntryDeserializerInitializer.java
│ │ │ │ │ ├── MessageDeserializerInitializer.java
│ │ │ │ │ ├── MessageTypeCodeKey.java
│ │ │ │ │ ├── TypeToClassMapInitializer.java
│ │ │ │ │ ├── action
│ │ │ │ │ │ ├── AbstractActionCaseDeserializer.java
│ │ │ │ │ │ ├── AbstractActionDeserializer.java
│ │ │ │ │ │ ├── AbstractEtherTypeActionDeserializer.java
│ │ │ │ │ │ ├── AbstractOF10SetDlActionDeserializer.java
│ │ │ │ │ │ ├── AbstractOF10SetNwActionDeserializer.java
│ │ │ │ │ │ ├── AbstractOF10SetTpActionDeserializer.java
│ │ │ │ │ │ ├── EmptyActionDeserializer.java
│ │ │ │ │ │ ├── OF10EnqueueActionDeserializer.java
│ │ │ │ │ │ ├── OF10OutputActionDeserializer.java
│ │ │ │ │ │ ├── OF10SetDlDstActionDeserializer.java
│ │ │ │ │ │ ├── OF10SetDlSrcActionDeserializer.java
│ │ │ │ │ │ ├── OF10SetNwDstActionDeserializer.java
│ │ │ │ │ │ ├── OF10SetNwSrcActionDeserializer.java
│ │ │ │ │ │ ├── OF10SetNwTosActionDeserializer.java
│ │ │ │ │ │ ├── OF10SetTpDstActionDeserializer.java
│ │ │ │ │ │ ├── OF10SetTpSrcActionDeserializer.java
│ │ │ │ │ │ ├── OF10SetVlanPcpActionDeserializer.java
│ │ │ │ │ │ ├── OF10SetVlanVidActionDeserializer.java
│ │ │ │ │ │ ├── OF13GroupActionDeserializer.java
│ │ │ │ │ │ ├── OF13OutputActionDeserializer.java
│ │ │ │ │ │ ├── OF13PopMplsActionDeserializer.java
│ │ │ │ │ │ ├── OF13PushMplsActionDeserializer.java
│ │ │ │ │ │ ├── OF13PushPbbActionDeserializer.java
│ │ │ │ │ │ ├── OF13PushVlanActionDeserializer.java
│ │ │ │ │ │ ├── OF13SetFieldActionDeserializer.java
│ │ │ │ │ │ ├── OF13SetMplsTtlActionDeserializer.java
│ │ │ │ │ │ ├── OF13SetNwTtlActionDeserializer.java
│ │ │ │ │ │ └── OF13SetQueueActionDeserializer.java
│ │ │ │ │ ├── factories
│ │ │ │ │ │ ├── BarrierInputMessageFactory.java
│ │ │ │ │ │ ├── BarrierReplyMessageFactory.java
│ │ │ │ │ │ ├── EchoReplyMessageFactory.java
│ │ │ │ │ │ ├── EchoRequestMessageFactory.java
│ │ │ │ │ │ ├── ErrorMessageFactory.java
│ │ │ │ │ │ ├── ExperimenterMessageFactory.java
│ │ │ │ │ │ ├── FeaturesReplyMessageFactory.java
│ │ │ │ │ │ ├── FlowModInputMessageFactory.java
│ │ │ │ │ │ ├── FlowRemovedMessageFactory.java
│ │ │ │ │ │ ├── GetAsyncReplyMessageFactory.java
│ │ │ │ │ │ ├── GetAsyncRequestMessageFactory.java
│ │ │ │ │ │ ├── GetConfigInputMessageFactory.java
│ │ │ │ │ │ ├── GetConfigReplyMessageFactory.java
│ │ │ │ │ │ ├── GetFeaturesInputMessageFactory.java
│ │ │ │ │ │ ├── GetQueueConfigInputMessageFactory.java
│ │ │ │ │ │ ├── GroupModInputMessageFactory.java
│ │ │ │ │ │ ├── HelloMessageFactory.java
│ │ │ │ │ │ ├── MeterModInputMessageFactory.java
│ │ │ │ │ │ ├── MultipartReplyMessageFactory.java
│ │ │ │ │ │ ├── MultipartRequestInputMessageFactory.java
│ │ │ │ │ │ ├── OF10ErrorMessageFactory.java
│ │ │ │ │ │ ├── OF10FeaturesReplyMessageFactory.java
│ │ │ │ │ │ ├── OF10FeaturesRequestMessageFactory.java
│ │ │ │ │ │ ├── OF10FlowModInputMessageFactory.java
│ │ │ │ │ │ ├── OF10FlowRemovedMessageFactory.java
│ │ │ │ │ │ ├── OF10GetQueueConfigInputMessageFactory.java
│ │ │ │ │ │ ├── OF10HelloMessageFactory.java
│ │ │ │ │ │ ├── OF10PacketInMessageFactory.java
│ │ │ │ │ │ ├── OF10PacketOutInputMessageFactory.java
│ │ │ │ │ │ ├── OF10PortModInputMessageFactory.java
│ │ │ │ │ │ ├── OF10PortStatusMessageFactory.java
│ │ │ │ │ │ ├── OF10QueueGetConfigReplyMessageFactory.java
│ │ │ │ │ │ ├── OF10StatsReplyMessageFactory.java
│ │ │ │ │ │ ├── OF10StatsRequestInputFactory.java
│ │ │ │ │ │ ├── PacketInMessageFactory.java
│ │ │ │ │ │ ├── PacketOutInputMessageFactory.java
│ │ │ │ │ │ ├── PortModInputMessageFactory.java
│ │ │ │ │ │ ├── PortStatusMessageFactory.java
│ │ │ │ │ │ ├── QueueGetConfigReplyMessageFactory.java
│ │ │ │ │ │ ├── RoleReplyMessageFactory.java
│ │ │ │ │ │ ├── RoleRequestInputMessageFactory.java
│ │ │ │ │ │ ├── SetAsyncInputMessageFactory.java
│ │ │ │ │ │ ├── SetConfigInputMessageFactory.java
│ │ │ │ │ │ ├── TableModInputMessageFactory.java
│ │ │ │ │ │ └── VendorMessageFactory.java
│ │ │ │ │ ├── instruction
│ │ │ │ │ │ ├── AbstractActionInstructionDeserializer.java
│ │ │ │ │ │ ├── ApplyActionsInstructionDeserializer.java
│ │ │ │ │ │ ├── ClearActionsInstructionDeserializer.java
│ │ │ │ │ │ ├── GoToTableInstructionDeserializer.java
│ │ │ │ │ │ ├── MeterInstructionDeserializer.java
│ │ │ │ │ │ ├── WriteActionsInstructionDeserializer.java
│ │ │ │ │ │ └── WriteMetadataInstructionDeserializer.java
│ │ │ │ │ └── match
│ │ │ │ │ │ ├── AbstractOxmMatchEntryDeserializer.java
│ │ │ │ │ │ ├── OxmArpOpDeserializer.java
│ │ │ │ │ │ ├── OxmArpShaDeserializer.java
│ │ │ │ │ │ ├── OxmArpSpaDeserializer.java
│ │ │ │ │ │ ├── OxmArpThaDeserializer.java
│ │ │ │ │ │ ├── OxmArpTpaDeserializer.java
│ │ │ │ │ │ ├── OxmDeserializerHelper.java
│ │ │ │ │ │ ├── OxmEthDstDeserializer.java
│ │ │ │ │ │ ├── OxmEthSrcDeserializer.java
│ │ │ │ │ │ ├── OxmEthTypeDeserializer.java
│ │ │ │ │ │ ├── OxmIcmpv4CodeDeserializer.java
│ │ │ │ │ │ ├── OxmIcmpv4TypeDeserializer.java
│ │ │ │ │ │ ├── OxmIcmpv6CodeDeserializer.java
│ │ │ │ │ │ ├── OxmIcmpv6TypeDeserializer.java
│ │ │ │ │ │ ├── OxmInPhyPortDeserializer.java
│ │ │ │ │ │ ├── OxmInPortDeserializer.java
│ │ │ │ │ │ ├── OxmIpDscpDeserializer.java
│ │ │ │ │ │ ├── OxmIpEcnDeserializer.java
│ │ │ │ │ │ ├── OxmIpProtoDeserializer.java
│ │ │ │ │ │ ├── OxmIpv4DstDeserializer.java
│ │ │ │ │ │ ├── OxmIpv4SrcDeserializer.java
│ │ │ │ │ │ ├── OxmIpv6DstDeserializer.java
│ │ │ │ │ │ ├── OxmIpv6ExtHdrDeserializer.java
│ │ │ │ │ │ ├── OxmIpv6FlabelDeserializer.java
│ │ │ │ │ │ ├── OxmIpv6NdSllDeserializer.java
│ │ │ │ │ │ ├── OxmIpv6NdTargetDeserializer.java
│ │ │ │ │ │ ├── OxmIpv6NdTllDeserializer.java
│ │ │ │ │ │ ├── OxmIpv6SrcDeserializer.java
│ │ │ │ │ │ ├── OxmMetadataDeserializer.java
│ │ │ │ │ │ ├── OxmMplsBosDeserializer.java
│ │ │ │ │ │ ├── OxmMplsLabelDeserializer.java
│ │ │ │ │ │ ├── OxmMplsTcDeserializer.java
│ │ │ │ │ │ ├── OxmPacketTypeDeserializer.java
│ │ │ │ │ │ ├── OxmPbbIsidDeserializer.java
│ │ │ │ │ │ ├── OxmSctpDstDeserializer.java
│ │ │ │ │ │ ├── OxmSctpSrcDeserializer.java
│ │ │ │ │ │ ├── OxmTcpDstDeserializer.java
│ │ │ │ │ │ ├── OxmTcpSrcDeserializer.java
│ │ │ │ │ │ ├── OxmTunnelIdDeserializer.java
│ │ │ │ │ │ ├── OxmUdpDstDeserializer.java
│ │ │ │ │ │ ├── OxmUdpSrcDeserializer.java
│ │ │ │ │ │ ├── OxmVlanPcpDeserializer.java
│ │ │ │ │ │ ├── OxmVlanVidDeserializer.java
│ │ │ │ │ │ └── ext
│ │ │ │ │ │ ├── AbstractOxmExperimenterMatchEntryDeserializer.java
│ │ │ │ │ │ └── OnfOxmTcpFlagsDeserializer.java
│ │ │ │ │ ├── serialization
│ │ │ │ │ ├── ActionsInitializer.java
│ │ │ │ │ ├── AdditionalMessageFactoryInitializer.java
│ │ │ │ │ ├── InstructionsInitializer.java
│ │ │ │ │ ├── MatchEntriesInitializer.java
│ │ │ │ │ ├── MessageFactoryInitializer.java
│ │ │ │ │ ├── SerializationFactory.java
│ │ │ │ │ ├── SerializerRegistryImpl.java
│ │ │ │ │ ├── action
│ │ │ │ │ │ ├── AbstractActionSerializer.java
│ │ │ │ │ │ ├── EmptyActionSerializer.java
│ │ │ │ │ │ ├── OF10EnqueueActionSerializer.java
│ │ │ │ │ │ ├── OF10OutputActionSerializer.java
│ │ │ │ │ │ ├── OF10SetDlDstActionSerializer.java
│ │ │ │ │ │ ├── OF10SetDlSrcActionSerializer.java
│ │ │ │ │ │ ├── OF10SetNwDstActionSerializer.java
│ │ │ │ │ │ ├── OF10SetNwSrcActionSerializer.java
│ │ │ │ │ │ ├── OF10SetNwTosActionSerializer.java
│ │ │ │ │ │ ├── OF10SetTpDstActionSerializer.java
│ │ │ │ │ │ ├── OF10SetTpSrcActionSerializer.java
│ │ │ │ │ │ ├── OF10SetVlanPcpActionSerializer.java
│ │ │ │ │ │ ├── OF10SetVlanVidActionSerializer.java
│ │ │ │ │ │ ├── OF13GroupActionSerializer.java
│ │ │ │ │ │ ├── OF13OutputActionSerializer.java
│ │ │ │ │ │ ├── OF13PopMplsActionSerializer.java
│ │ │ │ │ │ ├── OF13PushMplsActionSerializer.java
│ │ │ │ │ │ ├── OF13PushPbbActionSerializer.java
│ │ │ │ │ │ ├── OF13PushVlanActionSerializer.java
│ │ │ │ │ │ ├── OF13SetFieldActionSerializer.java
│ │ │ │ │ │ ├── OF13SetMplsTtlActionSerializer.java
│ │ │ │ │ │ ├── OF13SetNwTtlActionSerializer.java
│ │ │ │ │ │ └── OF13SetQueueActionSerializer.java
│ │ │ │ │ ├── factories
│ │ │ │ │ │ ├── BarrierInputMessageFactory.java
│ │ │ │ │ │ ├── BarrierReplyMessageFactory.java
│ │ │ │ │ │ ├── EchoInputMessageFactory.java
│ │ │ │ │ │ ├── EchoOutputMessageFactory.java
│ │ │ │ │ │ ├── EchoReplyInputMessageFactory.java
│ │ │ │ │ │ ├── EchoRequestMessageFactory.java
│ │ │ │ │ │ ├── ErrorMessageFactory.java
│ │ │ │ │ │ ├── ExperimenterInputMessageFactory.java
│ │ │ │ │ │ ├── ExperimenterMessageFactory.java
│ │ │ │ │ │ ├── FlowModInputMessageFactory.java
│ │ │ │ │ │ ├── FlowRemovedMessageFactory.java
│ │ │ │ │ │ ├── GetAsyncReplyMessageFactory.java
│ │ │ │ │ │ ├── GetAsyncRequestMessageFactory.java
│ │ │ │ │ │ ├── GetConfigInputMessageFactory.java
│ │ │ │ │ │ ├── GetConfigReplyMessageFactory.java
│ │ │ │ │ │ ├── GetFeaturesInputMessageFactory.java
│ │ │ │ │ │ ├── GetFeaturesOutputFactory.java
│ │ │ │ │ │ ├── GetQueueConfigInputMessageFactory.java
│ │ │ │ │ │ ├── GroupModInputMessageFactory.java
│ │ │ │ │ │ ├── HelloInputMessageFactory.java
│ │ │ │ │ │ ├── HelloMessageFactory.java
│ │ │ │ │ │ ├── MeterModInputMessageFactory.java
│ │ │ │ │ │ ├── MultipartReplyMessageFactory.java
│ │ │ │ │ │ ├── MultipartRequestInputFactory.java
│ │ │ │ │ │ ├── OF10BarrierInputMessageFactory.java
│ │ │ │ │ │ ├── OF10BarrierReplyMessageFactory.java
│ │ │ │ │ │ ├── OF10FeaturesReplyMessageFactory.java
│ │ │ │ │ │ ├── OF10FlowModInputMessageFactory.java
│ │ │ │ │ │ ├── OF10FlowRemovedMessageFactory.java
│ │ │ │ │ │ ├── OF10HelloInputMessageFactory.java
│ │ │ │ │ │ ├── OF10PacketInMessageFactory.java
│ │ │ │ │ │ ├── OF10PacketOutInputMessageFactory.java
│ │ │ │ │ │ ├── OF10PortModInputMessageFactory.java
│ │ │ │ │ │ ├── OF10PortStatusMessageFactory.java
│ │ │ │ │ │ ├── OF10QueueGetConfigInputMessageFactory.java
│ │ │ │ │ │ ├── OF10QueueGetConfigReplyMessageFactory.java
│ │ │ │ │ │ ├── OF10StatsReplyMessageFactory.java
│ │ │ │ │ │ ├── OF10StatsRequestInputFactory.java
│ │ │ │ │ │ ├── PacketInMessageFactory.java
│ │ │ │ │ │ ├── PacketOutInputMessageFactory.java
│ │ │ │ │ │ ├── PortModInputMessageFactory.java
│ │ │ │ │ │ ├── PortStatusMessageFactory.java
│ │ │ │ │ │ ├── QueueGetConfigReplyMessageFactory.java
│ │ │ │ │ │ ├── RoleReplyMessageFactory.java
│ │ │ │ │ │ ├── RoleRequestInputMessageFactory.java
│ │ │ │ │ │ ├── SetAsyncInputMessageFactory.java
│ │ │ │ │ │ ├── SetConfigMessageFactory.java
│ │ │ │ │ │ ├── TableModInputMessageFactory.java
│ │ │ │ │ │ └── VendorInputMessageFactory.java
│ │ │ │ │ ├── instruction
│ │ │ │ │ │ ├── AbstractActionInstructionSerializer.java
│ │ │ │ │ │ ├── AbstractInstructionSerializer.java
│ │ │ │ │ │ ├── ApplyActionsInstructionSerializer.java
│ │ │ │ │ │ ├── ClearActionsInstructionSerializer.java
│ │ │ │ │ │ ├── GoToTableInstructionSerializer.java
│ │ │ │ │ │ ├── MeterInstructionSerializer.java
│ │ │ │ │ │ ├── WriteActionsInstructionSerializer.java
│ │ │ │ │ │ └── WriteMetadataInstructionSerializer.java
│ │ │ │ │ └── match
│ │ │ │ │ │ ├── AbstractOxmIpv4AddressSerializer.java
│ │ │ │ │ │ ├── AbstractOxmIpv6AddressSerializer.java
│ │ │ │ │ │ ├── AbstractOxmMacAddressSerializer.java
│ │ │ │ │ │ ├── AbstractOxmMatchEntrySerializer.java
│ │ │ │ │ │ ├── OxmArpOpSerializer.java
│ │ │ │ │ │ ├── OxmArpShaSerializer.java
│ │ │ │ │ │ ├── OxmArpSpaSerializer.java
│ │ │ │ │ │ ├── OxmArpThaSerializer.java
│ │ │ │ │ │ ├── OxmArpTpaSerializer.java
│ │ │ │ │ │ ├── OxmEthDstSerializer.java
│ │ │ │ │ │ ├── OxmEthSrcSerializer.java
│ │ │ │ │ │ ├── OxmEthTypeSerializer.java
│ │ │ │ │ │ ├── OxmIcmpv4CodeSerializer.java
│ │ │ │ │ │ ├── OxmIcmpv4TypeSerializer.java
│ │ │ │ │ │ ├── OxmIcmpv6CodeSerializer.java
│ │ │ │ │ │ ├── OxmIcmpv6TypeSerializer.java
│ │ │ │ │ │ ├── OxmInPhyPortSerializer.java
│ │ │ │ │ │ ├── OxmInPortSerializer.java
│ │ │ │ │ │ ├── OxmIpDscpSerializer.java
│ │ │ │ │ │ ├── OxmIpEcnSerializer.java
│ │ │ │ │ │ ├── OxmIpProtoSerializer.java
│ │ │ │ │ │ ├── OxmIpv4DstSerializer.java
│ │ │ │ │ │ ├── OxmIpv4SrcSerializer.java
│ │ │ │ │ │ ├── OxmIpv6DstSerializer.java
│ │ │ │ │ │ ├── OxmIpv6ExtHdrSerializer.java
│ │ │ │ │ │ ├── OxmIpv6FlabelSerializer.java
│ │ │ │ │ │ ├── OxmIpv6NdSllSerializer.java
│ │ │ │ │ │ ├── OxmIpv6NdTargetSerializer.java
│ │ │ │ │ │ ├── OxmIpv6NdTllSerializer.java
│ │ │ │ │ │ ├── OxmIpv6SrcSerializer.java
│ │ │ │ │ │ ├── OxmMetadataSerializer.java
│ │ │ │ │ │ ├── OxmMplsBosSerializer.java
│ │ │ │ │ │ ├── OxmMplsLabelSerializer.java
│ │ │ │ │ │ ├── OxmMplsTcSerializer.java
│ │ │ │ │ │ ├── OxmPacketTypeSerializer.java
│ │ │ │ │ │ ├── OxmPbbIsidSerializer.java
│ │ │ │ │ │ ├── OxmSctpDstSerializer.java
│ │ │ │ │ │ ├── OxmSctpSrcSerializer.java
│ │ │ │ │ │ ├── OxmTcpDstSerializer.java
│ │ │ │ │ │ ├── OxmTcpSrcSerializer.java
│ │ │ │ │ │ ├── OxmTunnelIdSerializer.java
│ │ │ │ │ │ ├── OxmUdpDstSerializer.java
│ │ │ │ │ │ ├── OxmUdpSrcSerializer.java
│ │ │ │ │ │ ├── OxmVlanPcpSerializer.java
│ │ │ │ │ │ ├── OxmVlanVidSerializer.java
│ │ │ │ │ │ └── ext
│ │ │ │ │ │ ├── AbstractOxmExperimenterMatchEntrySerializer.java
│ │ │ │ │ │ └── OnfOxmTcpFlagsSerializer.java
│ │ │ │ │ └── util
│ │ │ │ │ ├── AbstractCodeKeyMaker.java
│ │ │ │ │ ├── AbstractTypeKeyMaker.java
│ │ │ │ │ ├── ActionConstants.java
│ │ │ │ │ ├── ActionDeserializerRegistryHelper.java
│ │ │ │ │ ├── ActionSerializerRegistryHelper.java
│ │ │ │ │ ├── CodeKeyMaker.java
│ │ │ │ │ ├── CodeKeyMakerFactory.java
│ │ │ │ │ ├── CommonMessageRegistryHelper.java
│ │ │ │ │ ├── InstructionConstants.java
│ │ │ │ │ ├── InstructionDeserializerRegistryHelper.java
│ │ │ │ │ ├── InstructionSerializerRegistryHelper.java
│ │ │ │ │ ├── ListDeserializer.java
│ │ │ │ │ ├── ListSerializer.java
│ │ │ │ │ ├── MatchDeserializer.java
│ │ │ │ │ ├── MatchEntryDeserializerRegistryHelper.java
│ │ │ │ │ ├── MatchEntrySerializerRegistryHelper.java
│ │ │ │ │ ├── OF10MatchDeserializer.java
│ │ │ │ │ ├── OF10MatchSerializer.java
│ │ │ │ │ ├── OF13MatchSerializer.java
│ │ │ │ │ ├── OpenflowUtils.java
│ │ │ │ │ ├── SimpleDeserializerRegistryHelper.java
│ │ │ │ │ ├── TypeKeyMaker.java
│ │ │ │ │ ├── TypeKeyMakerFactory.java
│ │ │ │ │ ├── TypeToClassInitHelper.java
│ │ │ │ │ └── VersionAssignableFactory.java
│ │ │ │ └── statistics
│ │ │ │ ├── Counter.java
│ │ │ │ ├── CounterEventTypes.java
│ │ │ │ └── StatisticsCounters.java
│ │ └── resources
│ │ │ ├── exemplary-cacert.pem
│ │ │ ├── exemplary-ctlKeystore
│ │ │ ├── exemplary-ctlTrustStore
│ │ │ ├── exemplary-switch-cert.pem
│ │ │ └── exemplary-switch-privkey.pem
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowjava
│ │ │ ├── protocol
│ │ │ └── impl
│ │ │ │ ├── core
│ │ │ │ ├── DelegatingInboundHandlerTest.java
│ │ │ │ ├── DummyDecoder.java
│ │ │ │ ├── IdleHandlerTest.java
│ │ │ │ ├── OFDatagramPacketDecoderTest.java
│ │ │ │ ├── OFDatagramPacketEncoderTest.java
│ │ │ │ ├── OFDatagramPacketHandlerTest.java
│ │ │ │ ├── OFDecoderStatisticsTest.java
│ │ │ │ ├── OFDecoderTest.java
│ │ │ │ ├── OFEncoderStatisticsTest.java
│ │ │ │ ├── OFEncoderTest.java
│ │ │ │ ├── OFFrameDecoderTest.java
│ │ │ │ ├── OFVersionDetectorTest.java
│ │ │ │ ├── PublishingChannelInitializerFactoryTest.java
│ │ │ │ ├── PublishingChannelInitializerTest.java
│ │ │ │ ├── SslContextFactoryTest.java
│ │ │ │ ├── SslKeyStoreTest.java
│ │ │ │ ├── TcpServerFacadeTest.java
│ │ │ │ ├── UdpConnectionMapTest.java
│ │ │ │ ├── UdpServerFacadeTest.java
│ │ │ │ ├── VersionMessageUdpWrapperTest.java
│ │ │ │ └── connection
│ │ │ │ │ ├── ChannelOutboundQueue02Test.java
│ │ │ │ │ ├── ChannelOutboundQueueTest.java
│ │ │ │ │ ├── ConnectionAdapterFactoryImplTest.java
│ │ │ │ │ ├── ConnectionAdapterImp02lTest.java
│ │ │ │ │ ├── ConnectionAdapterImpl02Test.java
│ │ │ │ │ ├── ConnectionAdapterImplStatisticsTest.java
│ │ │ │ │ ├── ConnectionAdapterImplTest.java
│ │ │ │ │ ├── ConnectionConfigurationImpl.java
│ │ │ │ │ ├── MessageListenerWrapperTest.java
│ │ │ │ │ ├── OutboundQueueEntryTest.java
│ │ │ │ │ ├── ResponseExpectedRpcListenerTest.java
│ │ │ │ │ ├── RpcResponseKeyTest.java
│ │ │ │ │ ├── SimpleRpcListenerTest.java
│ │ │ │ │ ├── SwitchConnectionProviderImpl02Test.java
│ │ │ │ │ ├── SwitchConnectionProviderImplTest.java
│ │ │ │ │ └── UdpMessageListenerWrapperTest.java
│ │ │ │ ├── deserialization
│ │ │ │ ├── DeserializationFactoryTest.java
│ │ │ │ ├── DeserializerRegistryImplTest.java
│ │ │ │ ├── MessageTypeCodeKeyTest.java
│ │ │ │ ├── TypeToClassMapInitializerTest.java
│ │ │ │ ├── factories
│ │ │ │ │ ├── BarrierInputMessageFactoryTest.java
│ │ │ │ │ ├── BarrierReplyMessageFactoryTest.java
│ │ │ │ │ ├── EchoReplyMessageFactoryTest.java
│ │ │ │ │ ├── EchoRequestMessageFactoryTest.java
│ │ │ │ │ ├── ErrorMessageFactoryTest.java
│ │ │ │ │ ├── ExperimenterMessageFactoryTest.java
│ │ │ │ │ ├── FeaturesReplyMessageFactoryTest.java
│ │ │ │ │ ├── FlowModInputMessageFactoryTest.java
│ │ │ │ │ ├── FlowRemovedMessageFactoryTest.java
│ │ │ │ │ ├── GetAsyncReplyMessageFactoryTest.java
│ │ │ │ │ ├── GetAsyncRequestMessageFactoryTest.java
│ │ │ │ │ ├── GetConfigInputMessageFactoryTest.java
│ │ │ │ │ ├── GetConfigReplyMessageFactoryTest.java
│ │ │ │ │ ├── GetFeaturesInputFactoryTest.java
│ │ │ │ │ ├── GetQueueConfigInputMessageFactoryTest.java
│ │ │ │ │ ├── GroupModInputMessageFactoryTest.java
│ │ │ │ │ ├── HelloMessageFactoryTest.java
│ │ │ │ │ ├── MeterModInputMessageFactoryTest.java
│ │ │ │ │ ├── MultipartReplyMessageFactoryTest.java
│ │ │ │ │ ├── MultipartRequestAggregateInputMessageFactoryTest.java
│ │ │ │ │ ├── MultipartRequestDescInputMessageFactoryTest.java
│ │ │ │ │ ├── MultipartRequestFlowInputMessageFactoryTest.java
│ │ │ │ │ ├── MultipartRequestGroupInputMessageFactoryTest.java
│ │ │ │ │ ├── MultipartRequestMeterConfigInputMessageFactoryTest.java
│ │ │ │ │ ├── MultipartRequestMeterInputMessageFactoryTest.java
│ │ │ │ │ ├── MultipartRequestPortStatsInputMessageFactoryTest.java
│ │ │ │ │ ├── MultipartRequestQueueInputMessageFactoryTest.java
│ │ │ │ │ ├── MultipartRequestTableFeaturesInputMessageFactoryTest.java
│ │ │ │ │ ├── MultipartRequestTableInputMessageFactoryTest.java
│ │ │ │ │ ├── OF10ErrorMessageFactoryTest.java
│ │ │ │ │ ├── OF10FeaturesReplyMessageFactoryTest.java
│ │ │ │ │ ├── OF10FeaturesRequestMessageFactoryTest.java
│ │ │ │ │ ├── OF10FlowModInputMessageFactoryTest.java
│ │ │ │ │ ├── OF10FlowRemovedMessageFactoryTest.java
│ │ │ │ │ ├── OF10GetQueueConfigInputMessageFactoryTest.java
│ │ │ │ │ ├── OF10HelloMessageFactoryTest.java
│ │ │ │ │ ├── OF10PacketInMessageFactoryTest.java
│ │ │ │ │ ├── OF10PacketOutInputMessageFactoryTest.java
│ │ │ │ │ ├── OF10PortModInputMessageFactoryTest.java
│ │ │ │ │ ├── OF10PortStatusMessageFactoryTest.java
│ │ │ │ │ ├── OF10QueueGetConfigReplyMessageFactoryTest.java
│ │ │ │ │ ├── OF10StatsReplyMessageFactoryTest.java
│ │ │ │ │ ├── OF10StatsRequestInputAggregateFactoryTest.java
│ │ │ │ │ ├── OF10StatsRequestInputDescFactoryTest.java
│ │ │ │ │ ├── OF10StatsRequestInputFlowFactoryTest.java
│ │ │ │ │ ├── OF10StatsRequestInputPortStatsFactoryTest.java
│ │ │ │ │ ├── OF10StatsRequestInputQueueFactoryTest.java
│ │ │ │ │ ├── OF10StatsRequestInputTableFactoryTest.java
│ │ │ │ │ ├── PacketInMessageFactoryTest.java
│ │ │ │ │ ├── PacketOutInputMessageFactoryTest.java
│ │ │ │ │ ├── PortModInputMessageFactoryTest.java
│ │ │ │ │ ├── PortStatusMessageFactoryTest.java
│ │ │ │ │ ├── QueueGetConfigReplyMessageFactoryMultiTest.java
│ │ │ │ │ ├── QueueGetConfigReplyMessageFactoryTest.java
│ │ │ │ │ ├── RoleReplyMessageFactoryTest.java
│ │ │ │ │ ├── RoleRequestInputMessageFactoryTest.java
│ │ │ │ │ ├── SetAsyncInputMessageFactoryTest.java
│ │ │ │ │ ├── SetConfigInputMessageFactoryTest.java
│ │ │ │ │ ├── TableModInputMessageFactoryTest.java
│ │ │ │ │ ├── VendorMessageFactoryTest.java
│ │ │ │ │ └── multipart
│ │ │ │ │ │ ├── MultipartReplyExperimenterTest.java
│ │ │ │ │ │ ├── MultipartReplyFlowTest.java
│ │ │ │ │ │ ├── MultipartReplyGroupFeaturesTest.java
│ │ │ │ │ │ ├── MultipartReplyMeterFeaturesTest.java
│ │ │ │ │ │ ├── MultipartReplyPortDescTest.java
│ │ │ │ │ │ ├── MultipartReplyTableFeaturesTest.java
│ │ │ │ │ │ └── OF10StatsReplyExperimenterTest.java
│ │ │ │ ├── instruction
│ │ │ │ │ └── AbstractInstructionDeserializerTest.java
│ │ │ │ └── match
│ │ │ │ │ ├── OxmIpv6ExtHdrDeserializerTest.java
│ │ │ │ │ ├── OxmIpv6FlabelDeserializerTest.java
│ │ │ │ │ ├── OxmMetadataDeserializerTest.java
│ │ │ │ │ ├── OxmMplsBosDeserializerTest.java
│ │ │ │ │ ├── OxmPacketTypeDeserializerTest.java
│ │ │ │ │ ├── OxmPbbIsidDeserializerTest.java
│ │ │ │ │ └── OxmVlanVidDeserializerTest.java
│ │ │ │ ├── serialization
│ │ │ │ ├── SerializationFactoryTest.java
│ │ │ │ ├── SerializerRegistryImplTest.java
│ │ │ │ ├── action
│ │ │ │ │ └── OF13SetFieldActionSerializerTest.java
│ │ │ │ ├── factories
│ │ │ │ │ ├── BarrierInputMessageFactoryTest.java
│ │ │ │ │ ├── BarrierReplyMessageFactoryTest.java
│ │ │ │ │ ├── EchoInputMessageFactoryTest.java
│ │ │ │ │ ├── EchoOutputMessageFactoryTest.java
│ │ │ │ │ ├── EchoReplyInputMessageFactoryTest.java
│ │ │ │ │ ├── EchoRequestMessageFactoryTest.java
│ │ │ │ │ ├── ErrorMessageFactoryTest.java
│ │ │ │ │ ├── ExperimenterInputMessageFactoryTest.java
│ │ │ │ │ ├── FlowModInputMessageFactoryTest.java
│ │ │ │ │ ├── FlowRemovedMessageFactoryTest.java
│ │ │ │ │ ├── GetAsyncReplyMessageFactoryTest.java
│ │ │ │ │ ├── GetConfigInputMessageFactoryTest.java
│ │ │ │ │ ├── GetConfigReplyMessageFactoryTest.java
│ │ │ │ │ ├── GetFeaturesInputMessageFactoryTest.java
│ │ │ │ │ ├── GetFeaturesOutputFactoryTest.java
│ │ │ │ │ ├── GetQueueConfigInputMessageFactoryTest.java
│ │ │ │ │ ├── GetaAsyncRequestMessageFactoryTest.java
│ │ │ │ │ ├── GroupModInputMessageFactoryTest.java
│ │ │ │ │ ├── HelloInputMessageFactoryTest.java
│ │ │ │ │ ├── HelloMessageFactoryTest.java
│ │ │ │ │ ├── MeterModInputMessageFactoryTest.java
│ │ │ │ │ ├── MultipartReplyMessageFactoryTest.java
│ │ │ │ │ ├── MultipartRequestInputFactoryTest.java
│ │ │ │ │ ├── OF10BarrierInputMessageFactoryTest.java
│ │ │ │ │ ├── OF10BarrierReplyMessageFactoryTest.java
│ │ │ │ │ ├── OF10FeaturesReplyMessageFactoryTest.java
│ │ │ │ │ ├── OF10FlowModInputMessageFactoryTest.java
│ │ │ │ │ ├── OF10FlowRemovedMessageFactoryTest.java
│ │ │ │ │ ├── OF10HelloInputMessageFactoryTest.java
│ │ │ │ │ ├── OF10PacketInMessageFactoryTest.java
│ │ │ │ │ ├── OF10PacketOutInputMessageFactoryTest.java
│ │ │ │ │ ├── OF10PortModInputMessageFactoryTest.java
│ │ │ │ │ ├── OF10PortStatusMessageFactoryTest.java
│ │ │ │ │ ├── OF10QueueGetConfigInputMessageFactoryTest.java
│ │ │ │ │ ├── OF10QueueGetConfigReplyMessageFactoryTest.java
│ │ │ │ │ ├── OF10StatsReplyMessageFactoryTest.java
│ │ │ │ │ ├── OF10StatsRequestInputFactoryTest.java
│ │ │ │ │ ├── PacketInMessageFactoryTest.java
│ │ │ │ │ ├── PacketOutInputMessageFactoryTest.java
│ │ │ │ │ ├── PortModInputMessageFactoryTest.java
│ │ │ │ │ ├── PortStatusMessageFactoryTest.java
│ │ │ │ │ ├── QueueGetConfigReplyMessageFactoryTest.java
│ │ │ │ │ ├── RoleReplyMessageFactoryTest.java
│ │ │ │ │ ├── RoleRequestInputMessageFactoryTest.java
│ │ │ │ │ ├── SetAsyncInputMessageFactoryTest.java
│ │ │ │ │ ├── SetConfigMessageFactoryTest.java
│ │ │ │ │ ├── TableModInputMessageFactoryTest.java
│ │ │ │ │ ├── VendorInputMessageFactoryTest.java
│ │ │ │ │ └── multipart
│ │ │ │ │ │ ├── MultipartRequestExperimenterTest.java
│ │ │ │ │ │ ├── MultipartRequestGroupDescTest.java
│ │ │ │ │ │ ├── MultipartRequestGroupFeaturesTest.java
│ │ │ │ │ │ ├── MultipartRequestMeterFeaturesTest.java
│ │ │ │ │ │ ├── MultipartRequestPortDescTest.java
│ │ │ │ │ │ ├── MultipartRequestTableFeaturesTest.java
│ │ │ │ │ │ ├── MultipartRequestTableTest.java
│ │ │ │ │ │ ├── OF10StatsRequestAggregateTest.java
│ │ │ │ │ │ └── OF10StatsRequestExperimenterTest.java
│ │ │ │ └── match
│ │ │ │ │ ├── OxmArpOpSerializerTest.java
│ │ │ │ │ ├── OxmArpShaSerializerTest.java
│ │ │ │ │ ├── OxmArpSpaSerializerTest.java
│ │ │ │ │ ├── OxmArpThaSerializerTest.java
│ │ │ │ │ ├── OxmArpTpaSerializerTest.java
│ │ │ │ │ ├── OxmEthDstSerializerTest.java
│ │ │ │ │ ├── OxmEthSrcSerializerTest.java
│ │ │ │ │ ├── OxmEthTypeSerializerTest.java
│ │ │ │ │ ├── OxmIcmpv4CodeSerializerTest.java
│ │ │ │ │ ├── OxmIcmpv4TypeSerializerTest.java
│ │ │ │ │ ├── OxmIcmpv6CodeSerializerTest.java
│ │ │ │ │ ├── OxmIcmpv6TypeSerializerTest.java
│ │ │ │ │ ├── OxmIpDscpSerializerTest.java
│ │ │ │ │ ├── OxmIpProtoSerializerTest.java
│ │ │ │ │ ├── OxmIpv4DstSerializerTest.java
│ │ │ │ │ ├── OxmIpv4SrcSerializerTest.java
│ │ │ │ │ ├── OxmIpv6ExtHdrSerializerTest.java
│ │ │ │ │ ├── OxmIpv6NdSllSerializerTest.java
│ │ │ │ │ ├── OxmIpv6NdTllSerializerTest.java
│ │ │ │ │ ├── OxmIpv6SrcSerializerTest.java
│ │ │ │ │ ├── OxmMetadataSerializerTest.java
│ │ │ │ │ ├── OxmMplsBosSerializerTest.java
│ │ │ │ │ ├── OxmMplsLabelSerializerTest.java
│ │ │ │ │ ├── OxmMplsTcSerializerTest.java
│ │ │ │ │ ├── OxmPacketTypeSerializerTest.java
│ │ │ │ │ ├── OxmPbbIsidSerializerTest.java
│ │ │ │ │ ├── OxmSctpDstSerializerTest.java
│ │ │ │ │ ├── OxmSctpSrcSerializerTest.java
│ │ │ │ │ ├── OxmTcpDstSerializerTest.java
│ │ │ │ │ ├── OxmTcpSrcSerializerTest.java
│ │ │ │ │ ├── OxmTunnelIdSerializerTest.java
│ │ │ │ │ ├── OxmUdpDstSerializerTest.java
│ │ │ │ │ ├── OxmUdpSrcSerializerTest.java
│ │ │ │ │ ├── OxmVlanPcpSerializerTest.java
│ │ │ │ │ └── OxmVlanVidSerializerTest.java
│ │ │ │ └── util
│ │ │ │ ├── ActionsDeserializerTest.java
│ │ │ │ ├── BufferHelper.java
│ │ │ │ ├── CodeKeyMakerFactoryTest.java
│ │ │ │ ├── DefaultDeserializerFactoryTest.java
│ │ │ │ ├── InstructionsDeserializerTest.java
│ │ │ │ ├── ListDeserializerTest.java
│ │ │ │ ├── ListSerializerTest.java
│ │ │ │ ├── MatchDeserializerTest.java
│ │ │ │ ├── OF10ActionsDeserializerTest.java
│ │ │ │ ├── OF10ActionsSerializerTest.java
│ │ │ │ ├── OF10MatchDeserializerTest.java
│ │ │ │ ├── OF10MatchSerializerTest.java
│ │ │ │ ├── OF13ActionsSerializerTest.java
│ │ │ │ ├── OF13InstructionsSerializerTest.java
│ │ │ │ ├── OF13MatchSerializer02Test.java
│ │ │ │ ├── OF13MatchSerializerTest.java
│ │ │ │ ├── OpenflowUtilsTest.java
│ │ │ │ └── TypeKeyMakerFactoryTest.java
│ │ │ └── statistics
│ │ │ └── StatisticsCountersTest.java
│ │ └── resources
│ │ ├── key.bin
│ │ ├── log4j.xml
│ │ ├── selfSignedController
│ │ └── selfSignedSwitch
├── openflow-protocol-it
│ ├── pom.xml
│ └── src
│ │ └── test
│ │ ├── java
│ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowjava
│ │ │ └── protocol
│ │ │ └── it
│ │ │ └── integration
│ │ │ ├── IntegrationTest.java
│ │ │ └── MockPlugin.java
│ │ └── resources
│ │ └── log4j.xml
├── openflow-protocol-spi
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowjava
│ │ │ └── protocol
│ │ │ └── spi
│ │ │ ├── connection
│ │ │ ├── SwitchConnectionProvider.java
│ │ │ └── SwitchConnectionProviderFactory.java
│ │ │ └── statistics
│ │ │ └── StatisticsHandler.java
│ │ └── yang
│ │ └── openflow-switch-connection-config.yang
├── openflowjava-blueprint-config
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowjava
│ │ │ └── mdsal
│ │ │ ├── OSGiFactorySwitchConnectionConfiguration.java
│ │ │ └── OSGiSwitchConnectionProviders.java
│ │ └── resources
│ │ └── initial
│ │ ├── default-openflow-connection-config.xml
│ │ └── legacy-openflow-connection-config.xml
├── openflowjava-util
│ ├── pom.xml
│ └── src
│ │ ├── main
│ │ └── java
│ │ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowjava
│ │ │ └── util
│ │ │ ├── ByteBufUtils.java
│ │ │ ├── ExperimenterDeserializerKeyFactory.java
│ │ │ └── ExperimenterSerializerKeyFactory.java
│ │ └── test
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowjava
│ │ └── util
│ │ ├── ByteBufUtilsTest.java
│ │ ├── ExperimenterDeserializerKeyFactoryTest.java
│ │ └── ExperimenterSerializerKeyFactoryTest.java
└── pom.xml
├── openflowplugin-api
├── pom.xml
└── src
│ └── main
│ ├── java
│ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── api
│ │ ├── ConnectionException.java
│ │ ├── OFConstants.java
│ │ └── openflow
│ │ ├── FlowGroupCacheManager.java
│ │ ├── FlowGroupInfo.java
│ │ ├── FlowGroupInfoHistories.java
│ │ ├── FlowGroupInfoHistory.java
│ │ ├── FlowGroupStatus.java
│ │ ├── OFPContext.java
│ │ ├── OFPManager.java
│ │ ├── ReconciliationState.java
│ │ ├── configuration
│ │ ├── ConfigurationListener.java
│ │ ├── ConfigurationProperty.java
│ │ ├── ConfigurationService.java
│ │ └── ConfigurationServiceFactory.java
│ │ ├── connection
│ │ ├── ConnectionContext.java
│ │ ├── ConnectionManager.java
│ │ ├── ConnectionStatus.java
│ │ ├── DeviceConnectionStatusProvider.java
│ │ ├── HandshakeContext.java
│ │ └── OutboundQueueProvider.java
│ │ ├── device
│ │ ├── DeviceContext.java
│ │ ├── DeviceInfo.java
│ │ ├── DeviceManager.java
│ │ ├── DeviceRegistry.java
│ │ ├── DeviceState.java
│ │ ├── MessageTranslator.java
│ │ ├── RequestContext.java
│ │ ├── RequestContextStack.java
│ │ ├── RequestFutureContext.java
│ │ ├── TranslatorLibrary.java
│ │ ├── TxFacade.java
│ │ ├── Xid.java
│ │ ├── XidSequencer.java
│ │ ├── exception
│ │ │ └── RequestQuotaExceededException.java
│ │ ├── handlers
│ │ │ ├── DeviceConnectedHandler.java
│ │ │ ├── DeviceDisconnectedHandler.java
│ │ │ ├── DeviceRemovedHandler.java
│ │ │ ├── DeviceReplyProcessor.java
│ │ │ └── MultiMsgCollector.java
│ │ └── listener
│ │ │ └── OpenflowMessageListenerFacade.java
│ │ ├── lifecycle
│ │ ├── ContextChain.java
│ │ ├── ContextChainHolder.java
│ │ ├── ContextChainMastershipState.java
│ │ ├── ContextChainMastershipWatcher.java
│ │ ├── ContextChainState.java
│ │ ├── ContextChainStateListener.java
│ │ ├── DeviceInitializationContext.java
│ │ ├── GuardedContext.java
│ │ ├── MasterChecker.java
│ │ ├── OwnershipChangeListener.java
│ │ ├── ReconciliationFrameworkRegistrar.java
│ │ └── ReconciliationFrameworkStep.java
│ │ ├── mastership
│ │ ├── MastershipChangeException.java
│ │ ├── MastershipChangeRegistration.java
│ │ ├── MastershipChangeService.java
│ │ ├── MastershipChangeServiceManager.java
│ │ ├── ReconciliationFrameworkEvent.java
│ │ └── ReconciliationFrameworkRegistration.java
│ │ ├── md
│ │ ├── core
│ │ │ ├── ErrorHandler.java
│ │ │ ├── HandshakeListener.java
│ │ │ ├── HandshakeManager.java
│ │ │ ├── TranslatorKey.java
│ │ │ └── sal
│ │ │ │ └── BuildSwitchFeatures.java
│ │ └── util
│ │ │ └── OpenflowVersion.java
│ │ ├── protocol
│ │ ├── deserialization
│ │ │ ├── MatchEntryDeserializer.java
│ │ │ ├── MatchEntryDeserializerRegistry.java
│ │ │ └── MessageCodeExperimenterKey.java
│ │ └── serialization
│ │ │ ├── MatchEntrySerializer.java
│ │ │ ├── MatchEntrySerializerKey.java
│ │ │ └── MatchEntrySerializerRegistry.java
│ │ ├── registry
│ │ ├── CommonDeviceRegistry.java
│ │ ├── flow
│ │ │ ├── DeviceFlowRegistry.java
│ │ │ ├── FlowDescriptor.java
│ │ │ ├── FlowRegistryException.java
│ │ │ └── FlowRegistryKey.java
│ │ ├── group
│ │ │ └── DeviceGroupRegistry.java
│ │ └── meter
│ │ │ └── DeviceMeterRegistry.java
│ │ ├── role
│ │ ├── RoleContext.java
│ │ └── RoleManager.java
│ │ ├── rpc
│ │ ├── RpcContext.java
│ │ └── RpcManager.java
│ │ ├── statistics
│ │ ├── MessageCountDumper.java
│ │ ├── MessageObservatory.java
│ │ ├── MessageSpy.java
│ │ ├── StatisticsContext.java
│ │ ├── StatisticsManager.java
│ │ ├── compatibility
│ │ │ ├── BackwardCompatibleAtomicService.java
│ │ │ └── Delegator.java
│ │ └── ofpspecific
│ │ │ ├── EventIdentifier.java
│ │ │ ├── MessageIntelligenceAgency.java
│ │ │ ├── MessageSpy.java
│ │ │ └── StatisticsGatherer.java
│ │ └── translator
│ │ └── TranslatorLibrarian.java
│ └── yang
│ ├── openflow-provider-config.yang
│ ├── recinciliation-result-state.yang
│ └── statistics-manager-control.yang
├── openflowplugin-blueprint-config
├── pom.xml
└── src
│ └── main
│ └── resources
│ └── initial
│ └── openflowplugin.cfg
├── openflowplugin-common
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── common
│ │ ├── txchain
│ │ └── TransactionChainManager.java
│ │ └── wait
│ │ └── SimpleTaskRetryLooper.java
│ └── test
│ ├── java
│ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── common
│ │ ├── txchain
│ │ └── TransactionChainManagerTest.java
│ │ └── wait
│ │ └── SimpleTaskRetryLooperTest.java
│ └── resources
│ └── log4j.xml
├── openflowplugin-impl
├── pom.xml
└── src
│ ├── main
│ ├── java
│ │ └── org
│ │ │ └── opendaylight
│ │ │ └── openflowplugin
│ │ │ └── impl
│ │ │ ├── DefaultDiagStatusProvider.java
│ │ │ ├── DiagStatusProvider.java
│ │ │ ├── OpenFlowPluginProviderImpl.java
│ │ │ ├── PingPongDataBroker.java
│ │ │ ├── common
│ │ │ ├── DeviceConnectionRateLimiter.java
│ │ │ ├── MultipartReplyTranslatorUtil.java
│ │ │ └── MultipartRequestInputFactory.java
│ │ │ ├── configuration
│ │ │ ├── ConfigurationServiceFactoryImpl.java
│ │ │ ├── OSGiConfigurationServiceFactory.java
│ │ │ └── OpenFlowProviderConfigImpl.java
│ │ │ ├── connection
│ │ │ ├── ConnectionContextImpl.java
│ │ │ ├── ConnectionManagerImpl.java
│ │ │ ├── ErrorHandlerSimpleImpl.java
│ │ │ ├── HandshakeContextImpl.java
│ │ │ ├── HandshakeManagerImpl.java
│ │ │ ├── HandshakeStepWrapper.java
│ │ │ ├── OutboundQueueProviderImpl.java
│ │ │ └── listener
│ │ │ │ ├── ConnectionReadyListenerImpl.java
│ │ │ │ ├── HandshakeListenerImpl.java
│ │ │ │ ├── OpenflowProtocolListenerInitialImpl.java
│ │ │ │ └── SystemNotificationsListenerImpl.java
│ │ │ ├── datastore
│ │ │ ├── MultipartWriterProvider.java
│ │ │ ├── MultipartWriterProviderFactory.java
│ │ │ └── multipart
│ │ │ │ ├── AbstractMultipartWriter.java
│ │ │ │ ├── DescMultipartWriter.java
│ │ │ │ ├── FlowStatsMultipartWriter.java
│ │ │ │ ├── GroupDescMultipartWriter.java
│ │ │ │ ├── GroupFeaturesMultipartWriter.java
│ │ │ │ ├── GroupStatsMultipartWriter.java
│ │ │ │ ├── MeterConfigMultipartWriter.java
│ │ │ │ ├── MeterFeaturesMultipartWriter.java
│ │ │ │ ├── MeterStatsMultipartWriter.java
│ │ │ │ ├── PortDescMultipartWriter.java
│ │ │ │ ├── PortStatsMultipartWriter.java
│ │ │ │ ├── QueueStatsMultipartWriter.java
│ │ │ │ ├── TableFeaturesMultipartWriter.java
│ │ │ │ └── TableStatsMultipartWriter.java
│ │ │ ├── device
│ │ │ ├── BuildSwitchCapabilitiesOF10.java
│ │ │ ├── BuildSwitchCapabilitiesOF13.java
│ │ │ ├── DeviceContextImpl.java
│ │ │ ├── DeviceManagerImpl.java
│ │ │ ├── DeviceStateImpl.java
│ │ │ ├── PacketInRateLimiter.java
│ │ │ ├── SimpleRatelimiter.java
│ │ │ ├── SwitchFeaturesUtil.java
│ │ │ ├── history
│ │ │ │ ├── FlowGroupInfoHistoryAppender.java
│ │ │ │ └── FlowGroupInfoHistoryImpl.java
│ │ │ ├── initialization
│ │ │ │ ├── AbstractDeviceInitializer.java
│ │ │ │ ├── DeviceInitializerProvider.java
│ │ │ │ ├── DeviceInitializerProviderFactory.java
│ │ │ │ ├── OF10DeviceInitializer.java
│ │ │ │ └── OF13DeviceInitializer.java
│ │ │ └── listener
│ │ │ │ ├── MultiMsgCollectorImpl.java
│ │ │ │ └── OpenflowProtocolListenerFullImpl.java
│ │ │ ├── karaf
│ │ │ ├── ClearStatsCommand.java
│ │ │ ├── ResetEventTimesCommand.java
│ │ │ ├── ResetSessionStatsCommand.java
│ │ │ ├── ShowEventTimesCommand.java
│ │ │ ├── ShowSessionStatsCommand.java
│ │ │ └── ShowStatsCommand.java
│ │ │ ├── lifecycle
│ │ │ ├── ContextChainHolderImpl.java
│ │ │ ├── ContextChainImpl.java
│ │ │ └── GuardedContextImpl.java
│ │ │ ├── mastership
│ │ │ ├── MastershipChangeServiceManagerImpl.java
│ │ │ └── MastershipServiceDelegate.java
│ │ │ ├── protocol
│ │ │ ├── deserialization
│ │ │ │ ├── ActionDeserializerInjector.java
│ │ │ │ ├── DeserializerInjector.java
│ │ │ │ ├── InstructionDeserializerInjector.java
│ │ │ │ ├── MatchDeserializerInjector.java
│ │ │ │ ├── MessageDeserializerInjector.java
│ │ │ │ ├── MultipartDeserializerInjector.java
│ │ │ │ ├── action
│ │ │ │ │ ├── AbstractActionDeserializer.java
│ │ │ │ │ ├── CopyTtlInActionDeserializer.java
│ │ │ │ │ ├── CopyTtlOutActionDeserializer.java
│ │ │ │ │ ├── DecMplsTtlActionDeserializer.java
│ │ │ │ │ ├── DecNwTtlActionDeserializer.java
│ │ │ │ │ ├── GroupActionDeserializer.java
│ │ │ │ │ ├── OutputActionDeserializer.java
│ │ │ │ │ ├── PopMplsActionDeserializer.java
│ │ │ │ │ ├── PopPbbActionDeserializer.java
│ │ │ │ │ ├── PopVlanActionDeserializer.java
│ │ │ │ │ ├── PushMplsActionDeserializer.java
│ │ │ │ │ ├── PushPbbActionDeserializer.java
│ │ │ │ │ ├── PushVlanActionDeserializer.java
│ │ │ │ │ ├── SetFieldActionDeserializer.java
│ │ │ │ │ ├── SetMplsTtlActionDeserializer.java
│ │ │ │ │ ├── SetNwTtlActionDeserializer.java
│ │ │ │ │ └── SetQueueActionDeserializer.java
│ │ │ │ ├── instruction
│ │ │ │ │ ├── AbstractActionInstructionDeserializer.java
│ │ │ │ │ ├── AbstractInstructionDeserializer.java
│ │ │ │ │ ├── ApplyActionsInstructionDeserializer.java
│ │ │ │ │ ├── ClearActionsInstructionDeserializer.java
│ │ │ │ │ ├── GoToTableInstructionDeserializer.java
│ │ │ │ │ ├── MeterInstructionDeserializer.java
│ │ │ │ │ ├── WriteActionsInstructionDeserializer.java
│ │ │ │ │ └── WriteMetadataInstructionDeserializer.java
│ │ │ │ ├── key
│ │ │ │ │ ├── MessageCodeActionExperimenterKey.java
│ │ │ │ │ └── MessageCodeMatchKey.java
│ │ │ │ ├── match
│ │ │ │ │ ├── AbstractMatchEntryDeserializer.java
│ │ │ │ │ ├── ArpOpEntryDeserializer.java
│ │ │ │ │ ├── ArpSourceHardwareAddressEntryDeserializer.java
│ │ │ │ │ ├── ArpSourceTransportAddressEntryDeserializer.java
│ │ │ │ │ ├── ArpTargetHardwareAddressEntryDeserializer.java
│ │ │ │ │ ├── ArpTargetTransportAddressEntryDeserializer.java
│ │ │ │ │ ├── EthernetDestinationEntryDeserializer.java
│ │ │ │ │ ├── EthernetSourceEntryDeserializer.java
│ │ │ │ │ ├── EthernetTypeEntryDeserializer.java
│ │ │ │ │ ├── Icmpv4CodeEntryDeserializer.java
│ │ │ │ │ ├── Icmpv4TypeEntryDeserializer.java
│ │ │ │ │ ├── Icmpv6CodeEntryDeserializer.java
│ │ │ │ │ ├── Icmpv6TypeEntryDeserializer.java
│ │ │ │ │ ├── InPhyPortEntryDeserializer.java
│ │ │ │ │ ├── InPortEntryDeserializer.java
│ │ │ │ │ ├── IpDscpEntryDeserializer.java
│ │ │ │ │ ├── IpEcnEntryDeserializer.java
│ │ │ │ │ ├── IpProtoEntryDeserializer.java
│ │ │ │ │ ├── Ipv4DestinationEntryDeserializer.java
│ │ │ │ │ ├── Ipv4SourceEntryDeserializer.java
│ │ │ │ │ ├── Ipv6DestinationEntryDeserializer.java
│ │ │ │ │ ├── Ipv6ExtHeaderEntryDeserializer.java
│ │ │ │ │ ├── Ipv6FlabelEntryDeserializer.java
│ │ │ │ │ ├── Ipv6NdSllEntryDeserializer.java
│ │ │ │ │ ├── Ipv6NdTargetEntryDeserializer.java
│ │ │ │ │ ├── Ipv6NdTllEntryDeserializer.java
│ │ │ │ │ ├── Ipv6SourceEntryDeserializer.java
│ │ │ │ │ ├── MatchDeserializer.java
│ │ │ │ │ ├── MetadataEntryDeserializer.java
│ │ │ │ │ ├── MplsBosEntryDeserializer.java
│ │ │ │ │ ├── MplsLabelEntryDeserializer.java
│ │ │ │ │ ├── MplsTcEntryDeserializer.java
│ │ │ │ │ ├── PacketTypeEntryDeserializer.java
│ │ │ │ │ ├── PbbEntryDeserializer.java
│ │ │ │ │ ├── SctpDestinationPortEntryDeserializer.java
│ │ │ │ │ ├── SctpSourcePortEntryDeserializer.java
│ │ │ │ │ ├── TcpDestinationPortEntryDeserializer.java
│ │ │ │ │ ├── TcpFlagsEntryDeserializer.java
│ │ │ │ │ ├── TcpSourcePortEntryDeserializer.java
│ │ │ │ │ ├── TunnelIdEntryDeserializer.java
│ │ │ │ │ ├── UdpDestinationPortEntryDeserializer.java
│ │ │ │ │ ├── UdpSourcePortEntryDeserializer.java
│ │ │ │ │ ├── VlanPcpEntryDeserializer.java
│ │ │ │ │ └── VlanVidEntryDeserializer.java
│ │ │ │ ├── messages
│ │ │ │ │ ├── AsyncConfigMessageDeserializer.java
│ │ │ │ │ ├── FlowMessageDeserializer.java
│ │ │ │ │ ├── GroupMessageDeserializer.java
│ │ │ │ │ ├── MeterMessageDeserializer.java
│ │ │ │ │ ├── PacketInMessageDeserializer.java
│ │ │ │ │ └── PortMessageDeserializer.java
│ │ │ │ ├── multipart
│ │ │ │ │ ├── MultipartReplyDescDeserializer.java
│ │ │ │ │ ├── MultipartReplyExperimenterDeserializer.java
│ │ │ │ │ ├── MultipartReplyFlowAggregateStatsDeserializer.java
│ │ │ │ │ ├── MultipartReplyFlowStatsDeserializer.java
│ │ │ │ │ ├── MultipartReplyFlowTableStatsDeserializer.java
│ │ │ │ │ ├── MultipartReplyGroupDescDeserializer.java
│ │ │ │ │ ├── MultipartReplyGroupFeaturesDeserializer.java
│ │ │ │ │ ├── MultipartReplyGroupStatsDeserializer.java
│ │ │ │ │ ├── MultipartReplyMessageDeserializer.java
│ │ │ │ │ ├── MultipartReplyMeterConfigDeserializer.java
│ │ │ │ │ ├── MultipartReplyMeterFeaturesDeserializer.java
│ │ │ │ │ ├── MultipartReplyMeterStatsDeserializer.java
│ │ │ │ │ ├── MultipartReplyPortDescDeserializer.java
│ │ │ │ │ ├── MultipartReplyPortStatsDeserializer.java
│ │ │ │ │ ├── MultipartReplyQueueStatsDeserializer.java
│ │ │ │ │ ├── MultipartReplyTableFeaturesDeserializer.java
│ │ │ │ │ └── TableFeaturesMatchFieldDeserializer.java
│ │ │ │ └── util
│ │ │ │ │ ├── ActionUtil.java
│ │ │ │ │ └── InstructionUtil.java
│ │ │ └── serialization
│ │ │ │ ├── ActionSerializerInjector.java
│ │ │ │ ├── InstructionSerializerInjector.java
│ │ │ │ ├── MatchSerializerInjector.java
│ │ │ │ ├── MessageSerializerInjector.java
│ │ │ │ ├── MultipartMatchFieldSerializerInjector.java
│ │ │ │ ├── MultipartSerializerInjector.java
│ │ │ │ ├── MultipartTableFeaturesSerializerInjector.java
│ │ │ │ ├── SerializerInjector.java
│ │ │ │ ├── actions
│ │ │ │ ├── AbstractActionSerializer.java
│ │ │ │ ├── AbstractSetFieldActionSerializer.java
│ │ │ │ ├── CopyTtlInActionSerializer.java
│ │ │ │ ├── CopyTtlOutActionSerializer.java
│ │ │ │ ├── DecMplsTtlActionSerializer.java
│ │ │ │ ├── DecNwTtlActionSerializer.java
│ │ │ │ ├── DropActionSerializer.java
│ │ │ │ ├── GroupActionSerializer.java
│ │ │ │ ├── OutputActionSerializer.java
│ │ │ │ ├── PopMplsActionSerializer.java
│ │ │ │ ├── PopPbbActionSerializer.java
│ │ │ │ ├── PopVlanActionSerializer.java
│ │ │ │ ├── PushMplsActionSerializer.java
│ │ │ │ ├── PushPbbActionSerializer.java
│ │ │ │ ├── PushVlanActionSerializer.java
│ │ │ │ ├── SetDlDstActionSerializer.java
│ │ │ │ ├── SetDlSrcActionSerializer.java
│ │ │ │ ├── SetFieldActionSerializer.java
│ │ │ │ ├── SetMplsTtlActionSerializer.java
│ │ │ │ ├── SetNwDstActionSerializer.java
│ │ │ │ ├── SetNwSrcActionSerializer.java
│ │ │ │ ├── SetNwTosActionSerializer.java
│ │ │ │ ├── SetNwTtlActionSerializer.java
│ │ │ │ ├── SetQueueActionSerializer.java
│ │ │ │ ├── SetTpDstActionSerializer.java
│ │ │ │ ├── SetTpSrcActionSerializer.java
│ │ │ │ ├── SetVlanIdActionSerializer.java
│ │ │ │ ├── SetVlanPcpActionSerializer.java
│ │ │ │ └── StripVlanActionSerializer.java
│ │ │ │ ├── instructions
│ │ │ │ ├── AbstractActionInstructionSerializer.java
│ │ │ │ ├── AbstractInstructionSerializer.java
│ │ │ │ ├── ApplyActionsInstructionSerializer.java
│ │ │ │ ├── ClearActionsInstructionSerializer.java
│ │ │ │ ├── GoToTableInstructionSerializer.java
│ │ │ │ ├── MeterInstructionSerializer.java
│ │ │ │ ├── WriteActionsInstructionSerializer.java
│ │ │ │ └── WriteMetadataInstructionSerializer.java
│ │ │ │ ├── match
│ │ │ │ ├── AbstractExperimenterMatchEntrySerializer.java
│ │ │ │ ├── AbstractIpv4PolymorphicEntrySerializer.java
│ │ │ │ ├── AbstractIpv4PrefixEntrySerializer.java
│ │ │ │ ├── AbstractIpv6PolymorphicEntrySerializer.java
│ │ │ │ ├── AbstractMacAddressEntrySerializer.java
│ │ │ │ ├── AbstractMacAddressFilterEntrySerializer.java
│ │ │ │ ├── AbstractMatchEntrySerializer.java
│ │ │ │ ├── AbstractPolymorphicEntrySerializer.java
│ │ │ │ ├── AbstractPortNumberEntrySerializer.java
│ │ │ │ ├── AbstractPortNumberWithMaskEntrySerilizer.java
│ │ │ │ ├── AbstractPrimitiveEntrySerializer.java
│ │ │ │ ├── AbstractUint16EntrySerializer.java
│ │ │ │ ├── AbstractUint32EntrySerializer.java
│ │ │ │ ├── AbstractUint8EntrySerializer.java
│ │ │ │ ├── ArpOpEntrySerializer.java
│ │ │ │ ├── ArpSourceHardwareAddressEntrySerializer.java
│ │ │ │ ├── ArpSourceTransportAddressEntrySerializer.java
│ │ │ │ ├── ArpTargetHardwareAddressEntrySerializer.java
│ │ │ │ ├── ArpTargetTransportAddressEntrySerializer.java
│ │ │ │ ├── EthernetDestinationEntrySerializer.java
│ │ │ │ ├── EthernetSourceEntrySerializer.java
│ │ │ │ ├── EthernetTypeEntrySerializer.java
│ │ │ │ ├── Icmpv4CodeEntrySerializer.java
│ │ │ │ ├── Icmpv4TypeEntrySerializer.java
│ │ │ │ ├── Icmpv6CodeEntrySerializer.java
│ │ │ │ ├── Icmpv6TypeEntrySerializer.java
│ │ │ │ ├── InPhyPortEntrySerializer.java
│ │ │ │ ├── InPortEntrySerializer.java
│ │ │ │ ├── IpDscpEntrySerializer.java
│ │ │ │ ├── IpEcnEntrySerializer.java
│ │ │ │ ├── IpProtoEntrySerializer.java
│ │ │ │ ├── Ipv4DestinationEntrySerializer.java
│ │ │ │ ├── Ipv4SourceEntrySerializer.java
│ │ │ │ ├── Ipv6DestinationEntrySerializer.java
│ │ │ │ ├── Ipv6ExtHeaderEntrySerializer.java
│ │ │ │ ├── Ipv6LabelEntrySerializer.java
│ │ │ │ ├── Ipv6NdSllEntrySerializer.java
│ │ │ │ ├── Ipv6NdTargetEntrySerializer.java
│ │ │ │ ├── Ipv6NdTllEntrySerializer.java
│ │ │ │ ├── Ipv6SourceEntrySerializer.java
│ │ │ │ ├── MatchEntrySerializerKeyImpl.java
│ │ │ │ ├── MatchSerializer.java
│ │ │ │ ├── MetadataEntrySerializer.java
│ │ │ │ ├── MplsBosEntrySerializer.java
│ │ │ │ ├── MplsLabelEntrySerializer.java
│ │ │ │ ├── MplsTcEntrySerializer.java
│ │ │ │ ├── PacketTypeEntrySerializer.java
│ │ │ │ ├── PbbEntrySerializer.java
│ │ │ │ ├── SctpDestinationPortEntrySerializer.java
│ │ │ │ ├── SctpSourcePortEntrySerializer.java
│ │ │ │ ├── TcpDestinationPortEntrySerializer.java
│ │ │ │ ├── TcpFlagsEntrySerializer.java
│ │ │ │ ├── TcpSourcePortEntrySerializer.java
│ │ │ │ ├── TunnelIdEntrySerializer.java
│ │ │ │ ├── TunnelIpv4DestinationEntrySerializer.java
│ │ │ │ ├── TunnelIpv4SourceEntrySerializer.java
│ │ │ │ ├── UdpDestinationPortEntrySerializer.java
│ │ │ │ ├── UdpSourcePortEntrySerializer.java
│ │ │ │ ├── VlanPcpEntrySerializer.java
│ │ │ │ └── VlanVidEntrySerializer.java
│ │ │ │ ├── messages
│ │ │ │ ├── AbstractMessageSerializer.java
│ │ │ │ ├── AsyncConfigMessageSerializer.java
│ │ │ │ ├── FlowMessageSerializer.java
│ │ │ │ ├── GroupMessageSerializer.java
│ │ │ │ ├── MeterMessageSerializer.java
│ │ │ │ └── PortMessageSerializer.java
│ │ │ │ ├── multipart
│ │ │ │ ├── MultipartRequestDescSerializer.java
│ │ │ │ ├── MultipartRequestExperimenterSerializer.java
│ │ │ │ ├── MultipartRequestFlowAggregateStatsSerializer.java
│ │ │ │ ├── MultipartRequestFlowStatsSerializer.java
│ │ │ │ ├── MultipartRequestFlowTableStatsSerializer.java
│ │ │ │ ├── MultipartRequestGroupDescSerializer.java
│ │ │ │ ├── MultipartRequestGroupFeaturesSerializer.java
│ │ │ │ ├── MultipartRequestGroupStatsSerializer.java
│ │ │ │ ├── MultipartRequestMessageSerializer.java
│ │ │ │ ├── MultipartRequestMeterConfigSerializer.java
│ │ │ │ ├── MultipartRequestMeterFeaturesSerializer.java
│ │ │ │ ├── MultipartRequestMeterStatsSerializer.java
│ │ │ │ ├── MultipartRequestPortDescSerializer.java
│ │ │ │ ├── MultipartRequestPortStatsSerializer.java
│ │ │ │ ├── MultipartRequestQueueStatsSerializer.java
│ │ │ │ ├── MultipartRequestTableFeaturesSerializer.java
│ │ │ │ └── tablefeatures
│ │ │ │ │ ├── AbstractTablePropertySerializer.java
│ │ │ │ │ ├── ApplyActionsMissTablePropertySerializer.java
│ │ │ │ │ ├── ApplyActionsTablePropertySerializer.java
│ │ │ │ │ ├── ApplySetfieldMissTablePropertySerializer.java
│ │ │ │ │ ├── ApplySetfieldTablePropertySerializer.java
│ │ │ │ │ ├── InstructionsMissTablePropertySerializer.java
│ │ │ │ │ ├── InstructionsTablePropertySerializer.java
│ │ │ │ │ ├── MatchTablePropertySerializer.java
│ │ │ │ │ ├── NextTableMissTablePropertySerializer.java
│ │ │ │ │ ├── NextTableTablePropertySerializer.java
│ │ │ │ │ ├── WildcardsTablePropertySerializer.java
│ │ │ │ │ ├── WriteActionsMissTablePropertySerializer.java
│ │ │ │ │ ├── WriteActionsTablePropertySerializer.java
│ │ │ │ │ ├── WriteSetfieldMissTablePropertySerializer.java
│ │ │ │ │ ├── WriteSetfieldTablePropertySerializer.java
│ │ │ │ │ └── matchfield
│ │ │ │ │ ├── AbstractMatchFieldSerializer.java
│ │ │ │ │ ├── ArpOpMatchFieldSerializer.java
│ │ │ │ │ ├── ArpShaMatchFieldSerializer.java
│ │ │ │ │ ├── ArpSpaMatchFieldSerializer.java
│ │ │ │ │ ├── ArpThaMatchFieldSerializer.java
│ │ │ │ │ ├── ArpTpaMatchFieldSerializer.java
│ │ │ │ │ ├── EthDstMatchFieldSerializer.java
│ │ │ │ │ ├── EthSrcMatchFieldSerializer.java
│ │ │ │ │ ├── EthTypeMatchFieldSerializer.java
│ │ │ │ │ ├── Icmpv4CodeMatchFieldSerializer.java
│ │ │ │ │ ├── Icmpv4TypeMatchFieldSerializer.java
│ │ │ │ │ ├── Icmpv6CodeMatchFieldSerializer.java
│ │ │ │ │ ├── Icmpv6TypeMatchFieldSerializer.java
│ │ │ │ │ ├── InPhyPortMatchFieldSerializer.java
│ │ │ │ │ ├── InPortMatchFieldSerializer.java
│ │ │ │ │ ├── IpDscpMatchFieldSerializer.java
│ │ │ │ │ ├── IpEcnMatchFieldSerializer.java
│ │ │ │ │ ├── IpProtoMatchFieldSerializer.java
│ │ │ │ │ ├── Ipv4DstMatchFieldSerializer.java
│ │ │ │ │ ├── Ipv4SrcMatchFieldSerializer.java
│ │ │ │ │ ├── Ipv6DstMatchFieldSerializer.java
│ │ │ │ │ ├── Ipv6ExtHdrMatchFieldSerializer.java
│ │ │ │ │ ├── Ipv6FlabelMatchFieldSerializer.java
│ │ │ │ │ ├── Ipv6NdSllMatchFieldSerializer.java
│ │ │ │ │ ├── Ipv6NdTargetMatchFieldSerializer.java
│ │ │ │ │ ├── Ipv6NdTllMatchFieldSerializer.java
│ │ │ │ │ ├── Ipv6SrcMatchFieldSerializer.java
│ │ │ │ │ ├── MetadataMatchFieldSerializer.java
│ │ │ │ │ ├── MplsBosMatchFieldSerializer.java
│ │ │ │ │ ├── MplsLabelMatchFieldSerializer.java
│ │ │ │ │ ├── MplsTcMatchFieldSerializer.java
│ │ │ │ │ ├── PbbIsidMatchFieldSerializer.java
│ │ │ │ │ ├── SctpDstMatchFieldSerializer.java
│ │ │ │ │ ├── SctpSrcMatchFieldSerializer.java
│ │ │ │ │ ├── TcpDstMatchFieldSerializer.java
│ │ │ │ │ ├── TcpFlagsMatchFieldSerializer.java
│ │ │ │ │ ├── TcpSrcMatchFieldSerializer.java
│ │ │ │ │ ├── TunnelIdMatchFieldSerializer.java
│ │ │ │ │ ├── UdpDstMatchFieldSerializer.java
│ │ │ │ │ ├── UdpSrcMatchFieldSerializer.java
│ │ │ │ │ ├── VlanPcpMatchFieldSerializer.java
│ │ │ │ │ └── VlanVidMatchFieldSerializer.java
│ │ │ │ └── util
│ │ │ │ ├── ActionUtil.java
│ │ │ │ └── InstructionUtil.java
│ │ │ ├── registry
│ │ │ ├── flow
│ │ │ │ ├── DeviceFlowRegistryImpl.java
│ │ │ │ ├── FlowDescriptorFactory.java
│ │ │ │ ├── FlowRegistryKeyFactory.java
│ │ │ │ └── FlowRegistryKeyImpl.java
│ │ │ ├── group
│ │ │ │ └── DeviceGroupRegistryImpl.java
│ │ │ └── meter
│ │ │ │ └── DeviceMeterRegistryImpl.java
│ │ │ ├── role
│ │ │ ├── RoleChangeException.java
│ │ │ ├── RoleContextImpl.java
│ │ │ └── RoleManagerImpl.java
│ │ │ ├── rpc
│ │ │ ├── AbstractRequestContext.java
│ │ │ ├── RpcContextImpl.java
│ │ │ └── RpcManagerImpl.java
│ │ │ ├── services
│ │ │ ├── AbstractAggregateFlowMultipartService.java
│ │ │ ├── AbstractExperimenterMultipartService.java
│ │ │ ├── AbstractMultipartCollectorService.java
│ │ │ ├── AbstractMultipartOnTheFlyService.java
│ │ │ ├── AbstractMultipartRequestCallback.java
│ │ │ ├── AbstractMultipartRequestOnTheFlyCallback.java
│ │ │ ├── AbstractMultipartService.java
│ │ │ ├── AbstractRequestCallback.java
│ │ │ ├── AbstractService.java
│ │ │ ├── AbstractSilentErrorService.java
│ │ │ ├── AbstractSimpleService.java
│ │ │ ├── AbstractTableMultipartService.java
│ │ │ ├── RoleService.java
│ │ │ ├── SendEchoImpl.java
│ │ │ ├── SimpleRequestCallback.java
│ │ │ ├── VoidRequestCallback.java
│ │ │ ├── batch
│ │ │ │ ├── BatchPlanStep.java
│ │ │ │ ├── BatchStepJob.java
│ │ │ │ ├── BatchStepType.java
│ │ │ │ ├── FlatBatchFlowAdapters.java
│ │ │ │ ├── FlatBatchGroupAdapters.java
│ │ │ │ └── FlatBatchMeterAdapters.java
│ │ │ ├── cache
│ │ │ │ └── FlowGroupCacheManagerImpl.java
│ │ │ ├── multilayer
│ │ │ │ ├── MultiAddFlow.java
│ │ │ │ ├── MultiLayerAggregateFlowMultipartService.java
│ │ │ │ ├── MultiLayerExperimenterMultipartService.java
│ │ │ │ ├── MultiLayerFlowMultipartRequestOnTheFlyCallback.java
│ │ │ │ ├── MultiLayerFlowService.java
│ │ │ │ ├── MultiLayerGroupService.java
│ │ │ │ ├── MultiLayerMeterService.java
│ │ │ │ ├── MultiLayerMultipartCollectorService.java
│ │ │ │ ├── MultiLayerMultipartRequestCallback.java
│ │ │ │ ├── MultiLayerTableMultipartService.java
│ │ │ │ ├── MultiRemoveFlow.java
│ │ │ │ └── MultiUpdateFlow.java
│ │ │ ├── sal
│ │ │ │ ├── AbstractAddFlow.java
│ │ │ │ ├── AbstractDeviceRpc.java
│ │ │ │ ├── AbstractFlowRpc.java
│ │ │ │ ├── AbstractGroupRpc.java
│ │ │ │ ├── AbstractMeterRpc.java
│ │ │ │ ├── AbstractRemoveFlow.java
│ │ │ │ ├── AbstractUpdateFlow.java
│ │ │ │ ├── AddBundleMessagesImpl.java
│ │ │ │ ├── AddFlowCallback.java
│ │ │ │ ├── AddFlowsBatchImpl.java
│ │ │ │ ├── AddGroupImpl.java
│ │ │ │ ├── AddGroupsBatchImpl.java
│ │ │ │ ├── AddMeterImpl.java
│ │ │ │ ├── AddMetersBatchImpl.java
│ │ │ │ ├── ControlBundleImpl.java
│ │ │ │ ├── ProcessFlatBatchImpl.java
│ │ │ │ ├── RemoveFlowCallback.java
│ │ │ │ ├── RemoveFlowsBatchImpl.java
│ │ │ │ ├── RemoveGroupImpl.java
│ │ │ │ ├── RemoveGroupsBatchImpl.java
│ │ │ │ ├── RemoveMeterImpl.java
│ │ │ │ ├── RemoveMetersBatchImpl.java
│ │ │ │ ├── SalRoleRpc.java
│ │ │ │ ├── SendBarrierImpl.java
│ │ │ │ ├── SendExperimenterImpl.java
│ │ │ │ ├── SendExperimenterMpRequestImpl.java
│ │ │ │ ├── SetConfigImpl.java
│ │ │ │ ├── TransmitPacketImpl.java
│ │ │ │ ├── UpdateFlowCallback.java
│ │ │ │ ├── UpdateFlowsBatchImpl.java
│ │ │ │ ├── UpdateGroupImpl.java
│ │ │ │ ├── UpdateGroupsBatchImpl.java
│ │ │ │ ├── UpdateMeterImpl.java
│ │ │ │ ├── UpdateMetersBatchImpl.java
│ │ │ │ ├── UpdatePortImpl.java
│ │ │ │ └── UpdateTableImpl.java
│ │ │ ├── singlelayer
│ │ │ │ ├── GetAsyncImpl.java
│ │ │ │ ├── SetAsyncImpl.java
│ │ │ │ ├── SingleAddFlow.java
│ │ │ │ ├── SingleLayerAggregateFlowMultipartService.java
│ │ │ │ ├── SingleLayerExperimenterMultipartService.java
│ │ │ │ ├── SingleLayerFlowMultipartRequestOnTheFlyCallback.java
│ │ │ │ ├── SingleLayerFlowService.java
│ │ │ │ ├── SingleLayerGroupService.java
│ │ │ │ ├── SingleLayerMeterService.java
│ │ │ │ ├── SingleLayerMultipartCollectorService.java
│ │ │ │ ├── SingleLayerMultipartRequestCallback.java
│ │ │ │ ├── SingleLayerPortService.java
│ │ │ │ ├── SingleLayerTableMultipartService.java
│ │ │ │ ├── SingleRemoveFlow.java
│ │ │ │ └── SingleUpdateFlow.java
│ │ │ └── util
│ │ │ │ ├── RequestContextUtil.java
│ │ │ │ ├── RequestInputUtils.java
│ │ │ │ └── ServiceException.java
│ │ │ ├── statistics
│ │ │ ├── StatisticsContextImpl.java
│ │ │ ├── StatisticsGatheringUtils.java
│ │ │ ├── StatisticsManagerImpl.java
│ │ │ ├── StatisticsPollingService.java
│ │ │ ├── TimeCounter.java
│ │ │ ├── ofpspecific
│ │ │ │ ├── EventsTimeCounter.java
│ │ │ │ ├── MessageIntelligenceAgencyImpl.java
│ │ │ │ ├── MessageIntelligenceAgencyMXBean.java
│ │ │ │ └── SessionStatistics.java
│ │ │ └── services
│ │ │ │ ├── AggregateFlowsInTableService.java
│ │ │ │ ├── AllFlowsInAllTablesService.java
│ │ │ │ ├── AllFlowsInTableService.java
│ │ │ │ ├── AllGroupsStatsService.java
│ │ │ │ ├── AllMeterConfigStatsService.java
│ │ │ │ ├── AllMeterStatsService.java
│ │ │ │ ├── AllPortStatsService.java
│ │ │ │ ├── AllQueuesAllPortsService.java
│ │ │ │ ├── AllQueuesOnePortService.java
│ │ │ │ ├── FlowsInTableService.java
│ │ │ │ ├── GetAggregateFlowStatisticsFromFlowTableForGivenMatchImpl.java
│ │ │ │ ├── GetAllGroupStatisticsImpl.java
│ │ │ │ ├── GetAllMeterConfigStatisticsImpl.java
│ │ │ │ ├── GetAllMeterStatisticsImpl.java
│ │ │ │ ├── GetAllNodeConnectorsStatisticsImpl.java
│ │ │ │ ├── GetAllQueuesStatisticsFromAllPortsImpl.java
│ │ │ │ ├── GetAllQueuesStatisticsFromGivenPortImpl.java
│ │ │ │ ├── GetFlowTablesStatisticsImpl.java
│ │ │ │ ├── GetGroupDescriptionImpl.java
│ │ │ │ ├── GetGroupFeaturesImpl.java
│ │ │ │ ├── GetGroupStatisticsImpl.java
│ │ │ │ ├── GetMeterFeaturesImpl.java
│ │ │ │ ├── GetMeterStatisticsImpl.java
│ │ │ │ ├── GetNodeConnectorStatisticsImpl.java
│ │ │ │ ├── GetQueueStatisticsFromGivenPortImpl.java
│ │ │ │ ├── GroupDescriptionService.java
│ │ │ │ ├── GroupFeaturesService.java
│ │ │ │ ├── GroupStatsService.java
│ │ │ │ ├── MeterFeaturesService.java
│ │ │ │ ├── MeterStatsService.java
│ │ │ │ ├── OneQueueOnePortService.java
│ │ │ │ ├── PortStatsService.java
│ │ │ │ ├── compatibility
│ │ │ │ ├── AbstractCompatibleStatService.java
│ │ │ │ ├── FlowStatisticsToNotificationTransformer.java
│ │ │ │ ├── GetAggregateFlowStatisticsFromFlowTableForAllFlowsImpl.java
│ │ │ │ ├── GetAllFlowStatisticsFromFlowTableImpl.java
│ │ │ │ ├── GetAllFlowsStatisticsFromAllFlowTablesImpl.java
│ │ │ │ ├── GetFlowStatisticsFromFlowTableImpl.java
│ │ │ │ ├── GroupStatisticsToNotificationTransformer.java
│ │ │ │ ├── MeterStatisticsToNotificationTransformer.java
│ │ │ │ ├── NodeConnectorStatisticsToNotificationTransformer.java
│ │ │ │ └── QueueStatisticsToNotificationTransformer.java
│ │ │ │ ├── dedicated
│ │ │ │ ├── StatisticsGatheringOnTheFlyService.java
│ │ │ │ └── StatisticsGatheringService.java
│ │ │ │ └── direct
│ │ │ │ ├── AbstractDirectStatisticsService.java
│ │ │ │ ├── AbstractGetFlowStatistics.java
│ │ │ │ ├── AbstractGetGroupStatistics.java
│ │ │ │ ├── AbstractGetMeterStatistics.java
│ │ │ │ ├── AbstractGetNodeConnectorStatistics.java
│ │ │ │ ├── AbstractGetQueueStatistics.java
│ │ │ │ ├── OpendaylightDirectStatisticsServiceProvider.java
│ │ │ │ ├── multilayer
│ │ │ │ ├── MultiGetFlowStatistics.java
│ │ │ │ ├── MultiGetGroupStatistics.java
│ │ │ │ ├── MultiGetMeterStatistics.java
│ │ │ │ ├── MultiGetNodeConnectorStatistics.java
│ │ │ │ └── MultiGetQueueStatistics.java
│ │ │ │ └── singlelayer
│ │ │ │ ├── SingleGetFlowStatistics.java
│ │ │ │ ├── SingleGetGroupStatistics.java
│ │ │ │ ├── SingleGetMeterStatistics.java
│ │ │ │ ├── SingleGetNodeConnectorStatistics.java
│ │ │ │ └── SingleGetQueueStatistics.java
│ │ │ ├── translator
│ │ │ ├── AggregatedFlowStatisticsTranslator.java
│ │ │ ├── FlowRemovedTranslator.java
│ │ │ ├── FlowRemovedV10Translator.java
│ │ │ ├── PacketReceivedTranslator.java
│ │ │ ├── PortUpdateTranslator.java
│ │ │ ├── TranslatorKeyFactory.java
│ │ │ └── TranslatorLibraryBuilder.java
│ │ │ └── util
│ │ │ ├── AddressNormalizationUtil.java
│ │ │ ├── BarrierUtil.java
│ │ │ ├── DeviceInitializationUtil.java
│ │ │ ├── DeviceStateUtil.java
│ │ │ ├── ErrorUtil.java
│ │ │ ├── FlatBatchUtil.java
│ │ │ ├── FlowCreatorUtil.java
│ │ │ ├── FlowUtil.java
│ │ │ ├── GroupUtil.java
│ │ │ ├── MatchNormalizationUtil.java
│ │ │ ├── MatchUtil.java
│ │ │ ├── MessageFactory.java
│ │ │ ├── MeterUtil.java
│ │ │ ├── NodeConnectorRefToPortTranslator.java
│ │ │ ├── PacketInUtil.java
│ │ │ ├── PathUtil.java
│ │ │ ├── PortTranslatorUtil.java
│ │ │ ├── ThreadPoolLoggingExecutor.java
│ │ │ └── TranslatorLibraryUtil.java
│ └── resources
│ │ └── OSGI-INF
│ │ └── blueprint
│ │ └── openflowplugin-impl.xml
│ └── test
│ ├── java
│ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── impl
│ │ ├── OpenFlowPluginProviderImplTest.java
│ │ ├── common
│ │ ├── MultipartReplyTranslatorUtilTest.java
│ │ └── MultipartRequestInputFactoryTest.java
│ │ ├── configuration
│ │ ├── ConfigurationServiceFactoryImplTest.java
│ │ └── OpenFlowProviderConfigImplTest.java
│ │ ├── connection
│ │ ├── ConnectionContextImplTest.java
│ │ ├── ConnectionManagerImplTest.java
│ │ ├── ErrorHandlerSimpleImplTest.java
│ │ ├── HandshakeManagerImplTest.java
│ │ ├── OutboundQueueProviderImplTest.java
│ │ ├── listener
│ │ │ ├── HandshakeListenerImplTest.java
│ │ │ ├── OpenflowProtocolListenerInitialImplTest.java
│ │ │ └── SystemNotificationsListenerImplTest.java
│ │ └── testutil
│ │ │ └── MsgGeneratorTestUtils.java
│ │ ├── device
│ │ ├── DeviceContextImplTest.java
│ │ ├── DeviceManagerImplTest.java
│ │ ├── DeviceStateImplTest.java
│ │ ├── PacketInRateLimiterTest.java
│ │ ├── SwitchFeaturesUtilTest.java
│ │ ├── initialization
│ │ │ ├── DeviceInitializerProviderTest.java
│ │ │ ├── OF10DeviceInitializerTest.java
│ │ │ └── OF13DeviceInitializerTest.java
│ │ └── listener
│ │ │ ├── MultiMsgCollectorImplTest.java
│ │ │ └── OpenflowProtocolListenerFullImplTest.java
│ │ ├── karaf
│ │ ├── AbstractCommandTest.java
│ │ ├── ClearStatsCommandTest.java
│ │ ├── ResetEventTimesCommandTest.java
│ │ ├── ResetSessionStatsCommandTest.java
│ │ ├── ShowEventTimesCommandTest.java
│ │ ├── ShowSessionStatsCommandTest.java
│ │ └── ShowStatsCommandrTest.java
│ │ ├── lifecycle
│ │ ├── ContextChainHolderImplTest.java
│ │ └── ContextChainImplTest.java
│ │ ├── mastership
│ │ ├── MastershipChangeServiceManagerImplTest.java
│ │ └── MastershipServiceDelegateTest.java
│ │ ├── protocol
│ │ ├── deserialization
│ │ │ ├── AbstractDeserializerTest.java
│ │ │ ├── MessageDeserializerInjectorTest.java
│ │ │ ├── action
│ │ │ │ ├── AbstractActionDeserializerTest.java
│ │ │ │ ├── CopyTtlInActionDeserializerTest.java
│ │ │ │ ├── CopyTtlOutActionDeserializerTest.java
│ │ │ │ ├── DecMplsTtlActionDeserializerTest.java
│ │ │ │ ├── DecNwTtlActionDeserializerTest.java
│ │ │ │ ├── GroupActionDeserializerTest.java
│ │ │ │ ├── OutputActionDeserializerTest.java
│ │ │ │ ├── PopMplsActionDeserializerTest.java
│ │ │ │ ├── PopPbbActionDeserializerTest.java
│ │ │ │ ├── PopVlanActionDeserializerTest.java
│ │ │ │ ├── PushMplsActionDeserializerTest.java
│ │ │ │ ├── PushPbbActionDeserializerTest.java
│ │ │ │ ├── PushVlanActionDeserializerTest.java
│ │ │ │ ├── SetFieldActionDeserializerTest.java
│ │ │ │ ├── SetMplsTtlActionDeserializerTest.java
│ │ │ │ ├── SetNwTtlActionDeserializerTest.java
│ │ │ │ └── SetQueueActionDeserializerTest.java
│ │ │ ├── instruction
│ │ │ │ ├── AbstractInstructionDeserializerTest.java
│ │ │ │ ├── ApplyActionsInstructionDeserializerTest.java
│ │ │ │ ├── ClearActionsInstructionDeserializerTest.java
│ │ │ │ ├── GoToTableInstructionDeserializerTest.java
│ │ │ │ ├── MeterInstructionDeserializerTest.java
│ │ │ │ ├── WriteActionsInstructionDeserializerTest.java
│ │ │ │ └── WriteMetadataInstructionDeserializerTest.java
│ │ │ ├── match
│ │ │ │ ├── AbstractMatchEntryDeserializerTest.java
│ │ │ │ ├── ArpOpEntryDeserializerTest.java
│ │ │ │ ├── ArpSourceHardwareAddressEntryDeserializerTest.java
│ │ │ │ ├── ArpSourceTransportAddressEntryDeserializerTest.java
│ │ │ │ ├── ArpTargetHardwareAddressEntryDeserializerTest.java
│ │ │ │ ├── ArpTargetTransportAddressEntryDeserializerTest.java
│ │ │ │ ├── EthernetDestinationEntryDeserializerTest.java
│ │ │ │ ├── EthernetSourceEntryDeserializerTest.java
│ │ │ │ ├── EthernetTypeEntryDeserializerTest.java
│ │ │ │ ├── Icmpv4CodeEntryDeserializerTest.java
│ │ │ │ ├── Icmpv4TypeEntryDeserializerTest.java
│ │ │ │ ├── Icmpv6CodeEntryDeserializerTest.java
│ │ │ │ ├── Icmpv6TypeEntryDeserializerTest.java
│ │ │ │ ├── InPhyPortEntryDeserializerTest.java
│ │ │ │ ├── InPortEntryDeserializerTest.java
│ │ │ │ ├── IpDscpEntryDeserializerTest.java
│ │ │ │ ├── IpEcnEntryDeserializerTest.java
│ │ │ │ ├── IpProtoEntryDeserializerTest.java
│ │ │ │ ├── Ipv4DestinationEntryDeserializerTest.java
│ │ │ │ ├── Ipv4SourceEntryDeserializerTest.java
│ │ │ │ ├── Ipv6DestinationEntryDeserializerTest.java
│ │ │ │ ├── Ipv6ExtHeaderEntryDeserializerTest.java
│ │ │ │ ├── Ipv6FlabelEntryDeserializerTest.java
│ │ │ │ ├── Ipv6NdSllEntryDeserializerTest.java
│ │ │ │ ├── Ipv6NdTargetEntryDeserializerTest.java
│ │ │ │ ├── Ipv6NdTllEntryDeserializerTest.java
│ │ │ │ ├── Ipv6SourceEntryDeserializerTest.java
│ │ │ │ ├── MetadataEntryDeserializerTest.java
│ │ │ │ ├── MplsBosEntryDeserializerTest.java
│ │ │ │ ├── MplsLabelEntryDeserializerTest.java
│ │ │ │ ├── MplsTcEntryDeserializerTest.java
│ │ │ │ ├── PacketTypeEntryDeserializerTest.java
│ │ │ │ ├── PbbEntryDeserializerTest.java
│ │ │ │ ├── SctpDestinationPortEntryDeserializerTest.java
│ │ │ │ ├── SctpSourcePortEntryDeserializerTest.java
│ │ │ │ ├── TcpDestinationPortEntryDeserializerTest.java
│ │ │ │ ├── TcpFlagsEntryDeserializerTest.java
│ │ │ │ ├── TcpSourcePortEntryDeserializerTest.java
│ │ │ │ ├── TunnelIdEntryDeserializerTest.java
│ │ │ │ ├── UdpDestinationPortEntryDeserializerTest.java
│ │ │ │ ├── UdpSourcePortEntryDeserializerTest.java
│ │ │ │ ├── VlanPcpEntryDeserializerTest.java
│ │ │ │ └── VlanVidEntryDeserializerTest.java
│ │ │ ├── messages
│ │ │ │ ├── FlowMessageDeserializerTest.java
│ │ │ │ ├── GroupMessageDeserializerTest.java
│ │ │ │ ├── MeterMessageDeserializerTest.java
│ │ │ │ ├── PacketInMessageDeserializerTest.java
│ │ │ │ └── PortMessageDeserializerTest.java
│ │ │ └── multipart
│ │ │ │ ├── AbstractMultipartDeserializerTest.java
│ │ │ │ ├── MultipartReplyDescDeserializerTest.java
│ │ │ │ ├── MultipartReplyFlowAggregateStatsDeserializerTest.java
│ │ │ │ ├── MultipartReplyFlowStatsDeserializerTest.java
│ │ │ │ ├── MultipartReplyFlowTableStatsDeserializerTest.java
│ │ │ │ ├── MultipartReplyGroupDescDeserializerTest.java
│ │ │ │ ├── MultipartReplyGroupFeaturesDeserializerTest.java
│ │ │ │ ├── MultipartReplyGroupStatsDeserializerTest.java
│ │ │ │ ├── MultipartReplyMessageDeserializerTest.java
│ │ │ │ ├── MultipartReplyMeterConfigDeserializerTest.java
│ │ │ │ ├── MultipartReplyMeterFeaturesDeserializerTest.java
│ │ │ │ ├── MultipartReplyMeterStatsDeserializerTest.java
│ │ │ │ ├── MultipartReplyPortDescDeserializerTest.java
│ │ │ │ ├── MultipartReplyPortStatsDeserializerTest.java
│ │ │ │ ├── MultipartReplyQueueStatsDeserializerTest.java
│ │ │ │ ├── MultipartReplyTableFeaturesDeserializerTest.java
│ │ │ │ └── TableFeaturesMatchFieldDeserializerTest.java
│ │ └── serialization
│ │ │ ├── AbstractSerializerTest.java
│ │ │ ├── ActionSerializerInjectorTest.java
│ │ │ ├── InstructionSerializerInjectorTest.java
│ │ │ ├── MessageSerializerInjectorTest.java
│ │ │ ├── actions
│ │ │ ├── AbstractActionSerializerTest.java
│ │ │ ├── AbstractSetFieldActionSerializerTest.java
│ │ │ ├── CopyTtlInActionSerializerTest.java
│ │ │ ├── CopyTtlOutActionSerializerTest.java
│ │ │ ├── DecMplsTtlActionSerializerTest.java
│ │ │ ├── DecNwTtlActionSerializerTest.java
│ │ │ ├── GroupActionSerializerTest.java
│ │ │ ├── OutputActionSerializerTest.java
│ │ │ ├── PopMplsActionSerializerTest.java
│ │ │ ├── PopPbbActionSerializerTest.java
│ │ │ ├── PopVlanActionSerializerTest.java
│ │ │ ├── PushMplsActionSerializerTest.java
│ │ │ ├── PushPbbActionSerializerTest.java
│ │ │ ├── PushVlanActionSerializerTest.java
│ │ │ ├── SetDlDstActionSerializerTest.java
│ │ │ ├── SetDlSrcActionSerializerTest.java
│ │ │ ├── SetMplsTtlActionSerializerTest.java
│ │ │ ├── SetNwDstActionSerializerTest.java
│ │ │ ├── SetNwSrcActionSerializerTest.java
│ │ │ ├── SetNwTosActionSerializerTest.java
│ │ │ ├── SetNwTtlActionSerializerTest.java
│ │ │ ├── SetQueueActionSerializerTest.java
│ │ │ ├── SetTpDstActionSerializerTest.java
│ │ │ ├── SetTpSrcActionSerializerTest.java
│ │ │ ├── SetVlanIdActionSerializerTest.java
│ │ │ ├── SetVlanPcpActionSerializerTest.java
│ │ │ └── StripVlanActionSerializerTest.java
│ │ │ ├── instructions
│ │ │ ├── AbstractInstructionSerializerTest.java
│ │ │ ├── ApplyActionsInstructionSerializerTest.java
│ │ │ ├── ClearActionsInstructionSerializerTest.java
│ │ │ ├── GoToTableInstructionSerializerTest.java
│ │ │ ├── MeterInstructionSerializerTest.java
│ │ │ ├── WriteActionsInstructionSerializerTest.java
│ │ │ └── WriteMetadataInstructionSerializerTest.java
│ │ │ ├── match
│ │ │ ├── AbstractExperimenterMatchEntrySerializerTest.java
│ │ │ ├── AbstractMatchEntrySerializerTest.java
│ │ │ ├── ArpOpEntrySerializerTest.java
│ │ │ ├── ArpSourceHardwareAddressEntrySerializerTest.java
│ │ │ ├── ArpSourceTransportAddressEntrySerializerTest.java
│ │ │ ├── ArpTargetHardwareAddressEntrySerializerTest.java
│ │ │ ├── ArpTargetTransportAddressEntrySerializerTest.java
│ │ │ ├── EthernetDestinationEntrySerializerTest.java
│ │ │ ├── EthernetSourceEntrySerializerTest.java
│ │ │ ├── EthernetTypeEntrySerializerTest.java
│ │ │ ├── Icmpv4CodeEntrySerializerTest.java
│ │ │ ├── Icmpv4TypeEntrySerializerTest.java
│ │ │ ├── Icmpv6CodeEntrySerializerTest.java
│ │ │ ├── Icmpv6TypeEntrySerializerTest.java
│ │ │ ├── InPhyPortEntrySerializerTest.java
│ │ │ ├── InPortEntrySerializerTest.java
│ │ │ ├── IpDscpEntrySerializerTest.java
│ │ │ ├── IpEcnEntrySerializerTest.java
│ │ │ ├── IpProtoEntrySerializerTest.java
│ │ │ ├── Ipv4ArbitraryBitMaskDestinationEntrySerializerTest.java
│ │ │ ├── Ipv4ArbitraryBitMaskSourceEntrySerializerTest.java
│ │ │ ├── Ipv4DestinationEntrySerializerTest.java
│ │ │ ├── Ipv4SourceEntrySerializerTest.java
│ │ │ ├── Ipv6ArbitraryBitMaskDestinationEntrySerializerTest.java
│ │ │ ├── Ipv6ArbitraryBitMaskSourceEntrySerializerTest.java
│ │ │ ├── Ipv6DestinationEntrySerializerTest.java
│ │ │ ├── Ipv6ExtHeaderEntrySerializerTest.java
│ │ │ ├── Ipv6LabelEntrySerializerTest.java
│ │ │ ├── Ipv6NdSllEntrySerializerTest.java
│ │ │ ├── Ipv6NdTargetEntrySerializerTest.java
│ │ │ ├── Ipv6NdTllEntrySerializerTest.java
│ │ │ ├── Ipv6SourceEntrySerializerTest.java
│ │ │ ├── MetadataEntrySerializerTest.java
│ │ │ ├── MplsBosEntrySerializerTest.java
│ │ │ ├── MplsLabelEntrySerializerTest.java
│ │ │ ├── MplsTcEntrySerializerTest.java
│ │ │ ├── PacketTypeEntrySerializerTest.java
│ │ │ ├── PbbEntrySerializerTest.java
│ │ │ ├── SctpDestinationPortEntrySerializerTest.java
│ │ │ ├── SctpSourcePortEntrySerializerTest.java
│ │ │ ├── TcpDestinationPortEntrySerializerTest.java
│ │ │ ├── TcpFlagsEntrySerializerTest.java
│ │ │ ├── TcpSourcePortEntrySerializerTest.java
│ │ │ ├── TunnelIdEntrySerializerTest.java
│ │ │ ├── TunnelIpv4DestinationEntrySerializerTest.java
│ │ │ ├── TunnelIpv4SourceEntrySerializerTest.java
│ │ │ ├── UdpDestinationPortEntrySerializerTest.java
│ │ │ ├── UdpSourcePortEntrySerializerTest.java
│ │ │ ├── VlanPcpEntrySerializerTest.java
│ │ │ └── VlanVidEntrySerializerTest.java
│ │ │ ├── messages
│ │ │ ├── AsyncConfigMessageSerializerTest.java
│ │ │ ├── FlowMessageSerializerTest.java
│ │ │ ├── GroupMessageSerializerTest.java
│ │ │ ├── MeterMessageSerializerTest.java
│ │ │ └── PortMessageSerializerTest.java
│ │ │ └── multipart
│ │ │ ├── MultipartRequestDescSerializerTest.java
│ │ │ ├── MultipartRequestFlowAggregateStatsSerializerTest.java
│ │ │ ├── MultipartRequestFlowStatsSerializerTest.java
│ │ │ ├── MultipartRequestFlowTableStatsSerializerTest.java
│ │ │ ├── MultipartRequestGroupDescSerializerTest.java
│ │ │ ├── MultipartRequestGroupFeaturesSerializerTest.java
│ │ │ ├── MultipartRequestGroupStatsSerializerTest.java
│ │ │ ├── MultipartRequestMessageSerializerTest.java
│ │ │ ├── MultipartRequestMeterConfigSerializerTest.java
│ │ │ ├── MultipartRequestMeterFeaturesSerializerTest.java
│ │ │ ├── MultipartRequestMeterStatsSerializerTest.java
│ │ │ ├── MultipartRequestPortDescSerializerTest.java
│ │ │ ├── MultipartRequestPortStatsSerializerTest.java
│ │ │ ├── MultipartRequestQueueStatsSerializerTest.java
│ │ │ ├── MultipartRequestTableFeaturesSerializerTest.java
│ │ │ └── tablefeatures
│ │ │ ├── AbstractTablePropertySerializerTest.java
│ │ │ ├── ApplyActionsMissTablePropertySerializerTest.java
│ │ │ ├── ApplyActionsTablePropertySerializerTest.java
│ │ │ ├── ApplySetfieldMissTablePropertySerializerTest.java
│ │ │ ├── ApplySetfieldTablePropertySerializerTest.java
│ │ │ ├── InstructionsMissTablePropertySerializerTest.java
│ │ │ ├── InstructionsTablePropertySerializerTest.java
│ │ │ ├── MatchTablePropertySerializerTest.java
│ │ │ ├── NextTableMissTablePropertySerializerTest.java
│ │ │ ├── NextTableTablePropertySerializerTest.java
│ │ │ ├── WildcardsTablePropertySerializerTest.java
│ │ │ ├── WriteActionsMissTablePropertySerializerTest.java
│ │ │ ├── WriteActionsTablePropertySerializerTest.java
│ │ │ ├── WriteSetfieldMissTablePropertySerializerTest.java
│ │ │ ├── WriteSetfieldTablePropertySerializerTest.java
│ │ │ └── matchfield
│ │ │ └── MatchFieldSerializerTest.java
│ │ ├── registry
│ │ ├── flow
│ │ │ ├── DeviceFlowRegistryImplTest.java
│ │ │ ├── FlowDescriptorDtoTest.java
│ │ │ ├── FlowRegistryKeyFactoryTest.java
│ │ │ └── TestFlowHelper.java
│ │ ├── group
│ │ │ └── DeviceGroupRegistryImplTest.java
│ │ └── meter
│ │ │ └── DeviceMeterRegistryImplTest.java
│ │ ├── role
│ │ └── RoleContextImplTest.java
│ │ ├── rpc
│ │ ├── AbstractRequestContextTest.java
│ │ ├── RpcContextImplTest.java
│ │ └── RpcManagerImplTest.java
│ │ ├── services
│ │ ├── AbstractRequestCallbackTest.java
│ │ ├── MultipartRequestCallbackTest.java
│ │ ├── MultipartRequestOnTheFlyCallbackTest.java
│ │ ├── SendEchoImplTest.java
│ │ ├── ServiceMocking.java
│ │ ├── batch
│ │ │ ├── FlatBatchFlowAdaptersTest.java
│ │ │ ├── FlatBatchGroupAdaptersTest.java
│ │ │ └── FlatBatchMeterAdaptersTest.java
│ │ ├── sal
│ │ │ ├── ProcessFlatBatchImplTest.java
│ │ │ ├── SalAsyncConfigServiceImplTest.java
│ │ │ ├── SalBundleServiceImplTest.java
│ │ │ ├── SalEchoServiceImplTest.java
│ │ │ ├── SalFlowServiceImplTest.java
│ │ │ ├── SalFlowsBatchServiceImplTest.java
│ │ │ ├── SalGroupServiceImplTest.java
│ │ │ ├── SalGroupsBatchServiceImplTest.java
│ │ │ ├── SalMeterServiceImplTest.java
│ │ │ ├── SalMetersBatchServiceImplTest.java
│ │ │ ├── SalRoleRpcTest.java
│ │ │ ├── SendBarrierImplTest.java
│ │ │ ├── SendExperimenterImplTest.java
│ │ │ ├── SendExperimenterMpRequestImplTest.java
│ │ │ ├── SetConfigImplTest.java
│ │ │ ├── TransmitPacketImplTest.java
│ │ │ ├── UpdatePortImplTest.java
│ │ │ └── UpdateTableImplTest.java
│ │ ├── singlelayer
│ │ │ ├── SingleLayerAggregateFlowMultipartServiceTest.java
│ │ │ ├── SingleLayerExperimenterMultipartServiceTest.java
│ │ │ ├── SingleLayerFlowServiceTest.java
│ │ │ ├── SingleLayerGroupServiceTest.java
│ │ │ ├── SingleLayerMeterServiceTest.java
│ │ │ ├── SingleLayerPortServiceTest.java
│ │ │ └── SingleLayerTableMultipartServiceTest.java
│ │ └── util
│ │ │ ├── RequestContextUtilTest.java
│ │ │ └── RequestInputUtilsTest.java
│ │ ├── statistics
│ │ ├── MultipartReplyTranslatorTest.java
│ │ ├── StatisticsContextImpMockInitiation.java
│ │ ├── StatisticsContextImplParamTest.java
│ │ ├── StatisticsContextImplTest.java
│ │ ├── StatisticsGatheringUtilsTest.java
│ │ ├── StatisticsManagerImplTest.java
│ │ ├── StatisticsPollingServiceTest.java
│ │ ├── TimeCounterTest.java
│ │ ├── ofpspecific
│ │ │ └── MessageIntelligenceAgencyImplTest.java
│ │ └── services
│ │ │ ├── AbstractSingleStatsServiceTest.java
│ │ │ ├── AbstractStatsServiceTest.java
│ │ │ ├── GetFlowTablesStatisticsImplTest.java
│ │ │ ├── OpendaylightFlowStatisticsServiceImpl2Test.java
│ │ │ ├── OpendaylightGroupStatisticsServiceImplTest.java
│ │ │ ├── OpendaylightMeterStatisticsServiceImplTest.java
│ │ │ ├── OpendaylightPortStatisticsServiceImplTest.java
│ │ │ ├── OpendaylightQueueStatisticsServiceImplTest.java
│ │ │ ├── PortStatsServiceTest.java
│ │ │ ├── compatibility
│ │ │ ├── AbstractCompatibleStatServiceTest.java
│ │ │ └── OpendaylightFlowStatisticsServiceDelegateImplTest.java
│ │ │ ├── dedicated
│ │ │ ├── StatisticsGatheringOnTheFlyServiceTest.java
│ │ │ └── StatisticsGatheringServiceTest.java
│ │ │ └── direct
│ │ │ ├── AbstractDirectStatisticsServiceTest.java
│ │ │ ├── multilayer
│ │ │ ├── FlowDirectStatisticsServiceTest.java
│ │ │ ├── GroupDirectStatisticsServiceTest.java
│ │ │ ├── MeterDirectStatisticsServiceTest.java
│ │ │ ├── NodeConnectorDirectStatisticsServiceTest.java
│ │ │ └── QueueDirectStatisticsServiceTest.java
│ │ │ └── singlelayer
│ │ │ ├── FlowDirectStatisticsServiceTest.java
│ │ │ ├── GroupDirectStatisticsServiceTest.java
│ │ │ ├── MeterDirectStatisticsServiceTest.java
│ │ │ ├── NodeConnectorDirectStatisticsServiceTest.java
│ │ │ └── QueueDirectStatisticsServiceTest.java
│ │ ├── translator
│ │ ├── AggregatedFlowStatisticsTranslatorTest.java
│ │ ├── FlowRemovedTranslatorTest.java
│ │ ├── PacketReceivedTranslatorTest.java
│ │ └── PortUpdateTranslatorTest.java
│ │ └── util
│ │ ├── AddressNormalizationUtilTest.java
│ │ ├── BarrierUtilTest.java
│ │ ├── DeviceInitializationUtilTest.java
│ │ ├── DeviceStateUtilTest.java
│ │ ├── FlatBatchUtilTest.java
│ │ ├── FlowCreatorUtilTest.java
│ │ ├── FlowUtilTest.java
│ │ ├── GroupUtilTest.java
│ │ ├── MatchNormalizationUtilTest.java
│ │ ├── MatchUtilTest.java
│ │ ├── MessageFactoryTest.java
│ │ ├── MeterUtilTest.java
│ │ ├── NodeConnectorRefToPortTranslatorTest.java
│ │ ├── PacketInUtilTest.java
│ │ ├── PathUtilTest.java
│ │ ├── PortTranslatorUtilTest.java
│ │ └── TranslatorLibratyUtilTest.java
│ └── resources
│ └── log4j.xml
├── openflowplugin-it
├── pom.xml
└── src
│ └── test
│ ├── java
│ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── openflow
│ │ └── md
│ │ └── it
│ │ ├── OFPaxOptionsAssistant.java
│ │ ├── OFPluginFlowTest.java
│ │ ├── OFPluginToLibraryTest.java
│ │ ├── SalIntegrationTest.java
│ │ ├── ScenarioFactory.java
│ │ └── SimulatorAssistant.java
│ └── resources
│ └── controller.xml
├── openflowplugin
├── pom.xml
└── src
│ ├── main
│ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── openflow
│ │ └── md
│ │ ├── core
│ │ ├── extension
│ │ │ ├── ActionExtensionHelper.java
│ │ │ ├── ExtensionConverterManagerImpl.java
│ │ │ ├── ExtensionResolvers.java
│ │ │ ├── MatchExtensionHelper.java
│ │ │ └── RegistrationCloser.java
│ │ ├── sal
│ │ │ └── convertor
│ │ │ │ ├── ConvertorExecutor.java
│ │ │ │ ├── ConvertorManager.java
│ │ │ │ ├── ConvertorManagerFactory.java
│ │ │ │ ├── ConvertorRegistrator.java
│ │ │ │ ├── GroupConvertor.java
│ │ │ │ ├── GroupDescStatsResponseConvertor.java
│ │ │ │ ├── GroupStatsResponseConvertor.java
│ │ │ │ ├── MeterConfigStatsResponseConvertor.java
│ │ │ │ ├── MeterConvertor.java
│ │ │ │ ├── MeterStatsResponseConvertor.java
│ │ │ │ ├── OFApprovedExperimenterIds.java
│ │ │ │ ├── PacketOutConvertor.java
│ │ │ │ ├── PortConvertor.java
│ │ │ │ ├── TableFeaturesConvertor.java
│ │ │ │ ├── TableFeaturesResponseConvertor.java
│ │ │ │ ├── action
│ │ │ │ ├── ActionConvertor.java
│ │ │ │ ├── ActionResponseConvertor.java
│ │ │ │ ├── cases
│ │ │ │ │ ├── OfToSalCopyTtlInCase.java
│ │ │ │ │ ├── OfToSalCopyTtlOutCase.java
│ │ │ │ │ ├── OfToSalDecMplsTtlCase.java
│ │ │ │ │ ├── OfToSalDecNwTtlCase.java
│ │ │ │ │ ├── OfToSalGroupCase.java
│ │ │ │ │ ├── OfToSalOutputActionCase.java
│ │ │ │ │ ├── OfToSalPopMplsCase.java
│ │ │ │ │ ├── OfToSalPopPbbCase.java
│ │ │ │ │ ├── OfToSalPopVlanCase.java
│ │ │ │ │ ├── OfToSalPushMplsCase.java
│ │ │ │ │ ├── OfToSalPushPbbCase.java
│ │ │ │ │ ├── OfToSalPushVlanCase.java
│ │ │ │ │ ├── OfToSalSetDlDstCase.java
│ │ │ │ │ ├── OfToSalSetDlSrcCase.java
│ │ │ │ │ ├── OfToSalSetFieldCase.java
│ │ │ │ │ ├── OfToSalSetMplsTtlCase.java
│ │ │ │ │ ├── OfToSalSetNwDstCase.java
│ │ │ │ │ ├── OfToSalSetNwSrcCase.java
│ │ │ │ │ ├── OfToSalSetNwTosCase.java
│ │ │ │ │ ├── OfToSalSetNwTtlCase.java
│ │ │ │ │ ├── OfToSalSetQueueCase.java
│ │ │ │ │ ├── OfToSalSetTpDstCase.java
│ │ │ │ │ ├── OfToSalSetTpSrcCase.java
│ │ │ │ │ ├── OfToSalSetVlanIdCase.java
│ │ │ │ │ ├── OfToSalSetVlanPcpCase.java
│ │ │ │ │ ├── OfToSalStripVlanCase.java
│ │ │ │ │ ├── SalToOfCopyTtlInCase.java
│ │ │ │ │ ├── SalToOfCopyTtlOutCase.java
│ │ │ │ │ ├── SalToOfDecMplsTtlCase.java
│ │ │ │ │ ├── SalToOfDecNwTtlCase.java
│ │ │ │ │ ├── SalToOfDropActionCase.java
│ │ │ │ │ ├── SalToOfGeneralExtensionGroupingCase.java
│ │ │ │ │ ├── SalToOfGroupActionCase.java
│ │ │ │ │ ├── SalToOfOutputActionCase.java
│ │ │ │ │ ├── SalToOfPopMplsActionCase.java
│ │ │ │ │ ├── SalToOfPopPbbActionCase.java
│ │ │ │ │ ├── SalToOfPopVlanActionCase.java
│ │ │ │ │ ├── SalToOfPopVlanActionV10Case.java
│ │ │ │ │ ├── SalToOfPushMplsActionCase.java
│ │ │ │ │ ├── SalToOfPushPbbActionCase.java
│ │ │ │ │ ├── SalToOfPushVlanActionCase.java
│ │ │ │ │ ├── SalToOfSetDlDstActionCase.java
│ │ │ │ │ ├── SalToOfSetDlDstActionV10Case.java
│ │ │ │ │ ├── SalToOfSetDlSrcActionCase.java
│ │ │ │ │ ├── SalToOfSetDlSrcActionV10Case.java
│ │ │ │ │ ├── SalToOfSetFieldCase.java
│ │ │ │ │ ├── SalToOfSetFieldV10Case.java
│ │ │ │ │ ├── SalToOfSetMplsTtlActionCase.java
│ │ │ │ │ ├── SalToOfSetNwDstActionCase.java
│ │ │ │ │ ├── SalToOfSetNwDstActionV10Case.java
│ │ │ │ │ ├── SalToOfSetNwSrcActionCase.java
│ │ │ │ │ ├── SalToOfSetNwSrcActionV10Case.java
│ │ │ │ │ ├── SalToOfSetNwTosActionCase.java
│ │ │ │ │ ├── SalToOfSetNwTosActionV10Case.java
│ │ │ │ │ ├── SalToOfSetNwTtlActionCase.java
│ │ │ │ │ ├── SalToOfSetQueueActionCase.java
│ │ │ │ │ ├── SalToOfSetTpDstActionCase.java
│ │ │ │ │ ├── SalToOfSetTpDstActionV10Case.java
│ │ │ │ │ ├── SalToOfSetTpSrcActionCase.java
│ │ │ │ │ ├── SalToOfSetTpSrcActionV10Case.java
│ │ │ │ │ ├── SalToOfSetVlanIdActionCase.java
│ │ │ │ │ ├── SalToOfSetVlanIdActionV10Case.java
│ │ │ │ │ ├── SalToOfSetVlanPcpActionCase.java
│ │ │ │ │ ├── SalToOfSetVlanPcpActionV10Case.java
│ │ │ │ │ ├── SalToOfStripVlanActionCase.java
│ │ │ │ │ ├── SalToOfStripVlanActionV10Case.java
│ │ │ │ │ └── SalToOfVendorCodecCase.java
│ │ │ │ └── data
│ │ │ │ │ ├── ActionConvertorData.java
│ │ │ │ │ └── ActionResponseConvertorData.java
│ │ │ │ ├── common
│ │ │ │ ├── ConvertReactor.java
│ │ │ │ ├── ConvertReactorConvertor.java
│ │ │ │ ├── Convertor.java
│ │ │ │ ├── ConvertorCase.java
│ │ │ │ ├── ConvertorData.java
│ │ │ │ ├── ConvertorKey.java
│ │ │ │ ├── ConvertorProcessor.java
│ │ │ │ ├── IPProtocols.java
│ │ │ │ ├── IpConversionUtil.java
│ │ │ │ ├── OrderComparator.java
│ │ │ │ └── ResultInjector.java
│ │ │ │ ├── data
│ │ │ │ ├── FlowStatsResponseConvertorData.java
│ │ │ │ ├── VersionConvertorData.java
│ │ │ │ ├── VersionDatapathIdConvertorData.java
│ │ │ │ └── XidConvertorData.java
│ │ │ │ ├── flow
│ │ │ │ ├── FlowConvertor.java
│ │ │ │ ├── FlowConvertorUtil.java
│ │ │ │ ├── FlowFlagsConvertor.java
│ │ │ │ ├── FlowFlagsInjector.java
│ │ │ │ ├── FlowFlagsV10Convertor.java
│ │ │ │ ├── FlowInstructionResponseConvertor.java
│ │ │ │ ├── FlowStatsResponseConvertor.java
│ │ │ │ └── cases
│ │ │ │ │ ├── ApplyActionsCase.java
│ │ │ │ │ ├── ClearActionsCase.java
│ │ │ │ │ ├── GoToTableCase.java
│ │ │ │ │ ├── MeterCase.java
│ │ │ │ │ ├── WriteActionsCase.java
│ │ │ │ │ └── WriteMetadataCase.java
│ │ │ │ └── match
│ │ │ │ ├── MatchConvertor.java
│ │ │ │ ├── MatchConvertorUtil.java
│ │ │ │ ├── MatchInjector.java
│ │ │ │ ├── MatchResponseConvertor.java
│ │ │ │ ├── MatchV10Convertor.java
│ │ │ │ ├── MatchV10ResponseConvertor.java
│ │ │ │ ├── cases
│ │ │ │ ├── OfToSalArpOpCase.java
│ │ │ │ ├── OfToSalArpShaCase.java
│ │ │ │ ├── OfToSalArpSpaCase.java
│ │ │ │ ├── OfToSalArpThaCase.java
│ │ │ │ ├── OfToSalArpTpaCase.java
│ │ │ │ ├── OfToSalEthDstCase.java
│ │ │ │ ├── OfToSalEthSrcCase.java
│ │ │ │ ├── OfToSalEthTypeCase.java
│ │ │ │ ├── OfToSalExperimenterIdCase.java
│ │ │ │ ├── OfToSalIcmpv4CodeCase.java
│ │ │ │ ├── OfToSalIcmpv4TypeCase.java
│ │ │ │ ├── OfToSalIcmpv6CodeCase.java
│ │ │ │ ├── OfToSalIcmpv6TypeCase.java
│ │ │ │ ├── OfToSalInPhyPortCase.java
│ │ │ │ ├── OfToSalInPortCase.java
│ │ │ │ ├── OfToSalIpDscpCase.java
│ │ │ │ ├── OfToSalIpEcnCase.java
│ │ │ │ ├── OfToSalIpProtoCase.java
│ │ │ │ ├── OfToSalIpv4DstCase.java
│ │ │ │ ├── OfToSalIpv4SrcCase.java
│ │ │ │ ├── OfToSalIpv6DstCase.java
│ │ │ │ ├── OfToSalIpv6ExthdrCase.java
│ │ │ │ ├── OfToSalIpv6FlabelCase.java
│ │ │ │ ├── OfToSalIpv6NdSllCase.java
│ │ │ │ ├── OfToSalIpv6NdTargetCase.java
│ │ │ │ ├── OfToSalIpv6NdTllCase.java
│ │ │ │ ├── OfToSalIpv6SrcCase.java
│ │ │ │ ├── OfToSalMetadataCase.java
│ │ │ │ ├── OfToSalMplsBosCase.java
│ │ │ │ ├── OfToSalMplsLabelCase.java
│ │ │ │ ├── OfToSalMplsTcCase.java
│ │ │ │ ├── OfToSalPacketTypeCase.java
│ │ │ │ ├── OfToSalPbbIsidCase.java
│ │ │ │ ├── OfToSalSctpDstCase.java
│ │ │ │ ├── OfToSalSctpSrcCase.java
│ │ │ │ ├── OfToSalTcpDstCase.java
│ │ │ │ ├── OfToSalTcpSrcCase.java
│ │ │ │ ├── OfToSalTunnelIdCase.java
│ │ │ │ ├── OfToSalTunnelIpv4DstCase.java
│ │ │ │ ├── OfToSalTunnelIpv4SrcCase.java
│ │ │ │ ├── OfToSalUdpDstCase.java
│ │ │ │ ├── OfToSalUdpSrcCase.java
│ │ │ │ ├── OfToSalVlanPcpCase.java
│ │ │ │ ├── OfToSalVlanVidCase.java
│ │ │ │ ├── SalToOfArpMatchCase.java
│ │ │ │ ├── SalToOfIpv4MatchArbitraryBitMaskCase.java
│ │ │ │ ├── SalToOfIpv4MatchCase.java
│ │ │ │ ├── SalToOfIpv6MatchArbitraryBitMaskCase.java
│ │ │ │ ├── SalToOfIpv6MatchCase.java
│ │ │ │ ├── SalToOfSctpMatchCase.java
│ │ │ │ ├── SalToOfTcpMatchCase.java
│ │ │ │ ├── SalToOfTunnelIpv4MatchCase.java
│ │ │ │ └── SalToOfUdpMatchCase.java
│ │ │ │ └── data
│ │ │ │ └── MatchResponseConvertorData.java
│ │ └── session
│ │ │ ├── ExtensionSessionManagerImpl.java
│ │ │ └── OFSessionUtil.java
│ │ └── util
│ │ ├── ActionUtil.java
│ │ ├── ByteUtil.java
│ │ ├── InventoryDataServiceUtil.java
│ │ └── OpenflowPortsUtil.java
│ └── test
│ ├── java
│ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── openflow
│ │ └── md
│ │ ├── core
│ │ ├── extension
│ │ │ ├── ActionExtensionHelperTest.java
│ │ │ ├── ExtensionConverterManagerImplTest.java
│ │ │ └── MatchExtensionHelperTest.java
│ │ ├── sal
│ │ │ └── convertor
│ │ │ │ ├── ConvertorManagerTest.java
│ │ │ │ ├── GroupConvertorTest.java
│ │ │ │ ├── GroupDescStatsResponseConvertorTest.java
│ │ │ │ ├── GroupStatsResponseConvertorTest.java
│ │ │ │ ├── MeterConfigStatsResponseConvertorTest.java
│ │ │ │ ├── MeterConvertorTest.java
│ │ │ │ ├── MeterStatsResponseConvertorTest.java
│ │ │ │ ├── PacketOutConvertorTest.java
│ │ │ │ ├── PortConvertorTest.java
│ │ │ │ ├── TableFeaturesConvertorTest.java
│ │ │ │ ├── TableFeaturesResponseConvertorTest.java
│ │ │ │ ├── action
│ │ │ │ ├── ActionConvertorTest.java
│ │ │ │ ├── ActionConvertorV10Test.java
│ │ │ │ └── ActionConvertorV13Test.java
│ │ │ │ ├── common
│ │ │ │ ├── IpConversionUtilTest.java
│ │ │ │ └── OrderComparatorTest.java
│ │ │ │ ├── flow
│ │ │ │ ├── FlowConvertorTest.java
│ │ │ │ └── FlowStatsResponseConvertorTest.java
│ │ │ │ └── match
│ │ │ │ ├── FlowWildcardsV10Builder.java
│ │ │ │ ├── MatchConvertorTest.java
│ │ │ │ ├── MatchConvertorUtilTest.java
│ │ │ │ ├── MatchConvertorV10Test.java
│ │ │ │ ├── MatchResponseConvertor2Test.java
│ │ │ │ ├── MatchResponseConvertorTest.java
│ │ │ │ └── MatchV10ResponseConvertorTest.java
│ │ └── session
│ │ │ └── ExtensionSessionManagerImplTest.java
│ │ └── util
│ │ ├── ActionUtilTest.java
│ │ ├── ByteUtilTest.java
│ │ ├── InventoryDataServiceUtilTest.java
│ │ └── OpenflowPortsUtilTest.java
│ └── resources
│ └── log4j.xml
├── parent
└── pom.xml
├── pom.xml
├── samples
├── learning-switch
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── learningswitch
│ │ ├── DataTreeChangeListenerRegistrationHolder.java
│ │ ├── FlowCommitWrapper.java
│ │ ├── FlowCommitWrapperImpl.java
│ │ ├── FlowUtils.java
│ │ ├── InstanceIdentifierUtils.java
│ │ ├── LearningSwitchHandler.java
│ │ ├── LearningSwitchHandlerSimpleImpl.java
│ │ ├── LearningSwitchManagerSimpleImpl.java
│ │ ├── PacketUtils.java
│ │ ├── WakeupOnNode.java
│ │ └── multi
│ │ ├── LearningSwitchManagerMultiImpl.java
│ │ ├── MultipleLearningSwitchHandlerFacadeImpl.java
│ │ └── PacketInDispatcherImpl.java
├── pom.xml
├── sample-bundles
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── samples
│ │ └── sample
│ │ └── bundles
│ │ └── SampleFlowCapableNodeListener.java
├── sample-consumer
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── openflowplugin
│ │ └── openflow
│ │ └── samples
│ │ └── consumer
│ │ ├── SimpleDropFirewall.java
│ │ └── SimpleDropFirewallCli.java
└── simple-client
│ ├── pom.xml
│ └── src
│ └── main
│ ├── java
│ └── org
│ │ └── opendaylight
│ │ └── openflowjava
│ │ └── protocol
│ │ └── impl
│ │ └── clients
│ │ ├── CallableClient.java
│ │ ├── ClientEvent.java
│ │ ├── ClientSslContextFactory.java
│ │ ├── ClientSslKeyStore.java
│ │ ├── ClientSslTrustStore.java
│ │ ├── EventType.java
│ │ ├── ListeningSimpleClient.java
│ │ ├── OFClient.java
│ │ ├── Scenario.java
│ │ ├── ScenarioFactory.java
│ │ ├── ScenarioHandler.java
│ │ ├── Scenarios.java
│ │ ├── SendEvent.java
│ │ ├── SimpleClient.java
│ │ ├── SimpleClientFramer.java
│ │ ├── SimpleClientHandler.java
│ │ ├── SimpleClientInitializer.java
│ │ ├── SleepEvent.java
│ │ ├── Step.java
│ │ ├── UdpSimpleClient.java
│ │ ├── UdpSimpleClientFramer.java
│ │ ├── UdpSimpleClientInitializer.java
│ │ └── WaitForMessageEvent.java
│ └── resources
│ ├── selfSignedController
│ └── selfSignedSwitch
├── srm
├── api
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ ├── java
│ │ └── org
│ │ │ └── opendaylight
│ │ │ └── serviceutils
│ │ │ └── srm
│ │ │ ├── RecoverableListener.java
│ │ │ ├── ServiceRecoveryInterface.java
│ │ │ ├── ServiceRecoveryRegistry.java
│ │ │ └── spi
│ │ │ └── RegistryControl.java
│ │ └── yang
│ │ ├── srm-ops.yang
│ │ ├── srm-rpcs.yang
│ │ └── srm-types.yang
├── impl
│ ├── pom.xml
│ └── src
│ │ └── main
│ │ └── java
│ │ └── org
│ │ └── opendaylight
│ │ └── serviceutils
│ │ └── srm
│ │ └── impl
│ │ ├── FutureRpcResults.java
│ │ ├── RegistryControlImpl.java
│ │ ├── ServiceRecoveryListener.java
│ │ └── ServiceRecoveryRegistryImpl.java
├── pom.xml
└── shell
│ ├── pom.xml
│ └── src
│ └── main
│ └── java
│ └── org
│ └── opendaylight
│ └── serviceutils
│ └── srm
│ └── shell
│ ├── RecoverCommand.java
│ ├── ReinstallCommand.java
│ ├── SrmCliUtils.java
│ └── SrmDebugCommand.java
├── test-common
├── pom.xml
└── src
│ └── main
│ └── java
│ └── org
│ └── opendaylight
│ └── openflowplugin
│ └── testcommon
│ ├── AbstractDropTest.java
│ ├── DropTest.java
│ ├── DropTestCommiter.java
│ ├── DropTestCommiterImpl.java
│ ├── DropTestRpcSender.java
│ ├── DropTestRpcSenderImpl.java
│ └── DropTestStats.java
├── test-provider
├── pom.xml
└── src
│ └── main
│ └── java
│ └── org
│ └── opendaylight
│ └── openflowplugin
│ └── test
│ ├── FlowEventListenerLoggingImpl.java
│ ├── OpenflowPluginBulkGroupTransactionProvider.java
│ ├── OpenflowPluginBulkTransactionProvider.java
│ ├── OpenflowpluginGroupTestCommandProvider.java
│ ├── OpenflowpluginGroupTestRpcsProvider.java
│ ├── OpenflowpluginMeterTestCommandProvider.java
│ ├── OpenflowpluginMeterTestRpcsProvider.java
│ ├── OpenflowpluginStatsTestCommandProvider.java
│ ├── OpenflowpluginTableFeaturesTestCommandProvider.java
│ ├── OpenflowpluginTableFeaturesTestRpcProvider.java
│ ├── OpenflowpluginTestActivator.java
│ ├── OpenflowpluginTestCommandProvider.java
│ ├── OpenflowpluginTestNodeConnectorNotification.java
│ ├── OpenflowpluginTestRpcProvider.java
│ ├── OpenflowpluginTestTopologyNotification.java
│ └── TestProviderTransactionUtil.java
├── test-scripts
├── README
├── __init__.py
├── action-keywords.csv
├── crud
│ ├── __init__.py
│ ├── odl_flow_test.py
│ ├── odl_group_tests.py
│ └── odl_meter_test.py
├── exceptions
│ ├── __init__.py
│ └── odl_exceptions.py
├── ignore-keywords.csv
├── keywords.csv
├── match-keywords.csv
├── odl_crud_tests.py
├── openvswitch
│ ├── __init__.py
│ ├── compare_tools.py
│ ├── convertor_tools.py
│ ├── flow_tools.py
│ ├── mininet_tools.py
│ ├── parser_tools.py
│ ├── testclass_components.py
│ ├── testclass_templates.py
│ └── xml_validator.py
├── oper_data_test.py
├── stress_test.py
├── sw_restart_test.py
├── tools
│ ├── __init__.py
│ ├── crud_test_with_param_superclass.py
│ ├── file_loader_tool.py
│ ├── test_with_param_superclass.py
│ └── xml_parser_tools.py
├── tox.ini
└── xmls
│ ├── ef26.xml
│ ├── ef27.xml
│ ├── ef28.xml
│ ├── ef31.xml
│ ├── ef45.xml
│ ├── ef48.xml
│ ├── ef49.xml
│ ├── eg1.xml
│ ├── f1.xml
│ ├── f10.xml
│ ├── f101.xml
│ ├── f102.xml
│ ├── f103.xml
│ ├── f104.xml
│ ├── f105.xml
│ ├── f106.xml
│ ├── f107.xml
│ ├── f108.xml
│ ├── f109.xml
│ ├── f11.xml
│ ├── f110.xml
│ ├── f111.xml
│ ├── f112.xml
│ ├── f113.xml
│ ├── f114.xml
│ ├── f12.xml
│ ├── f13.xml
│ ├── f14.xml
│ ├── f15.xml
│ ├── f16.xml
│ ├── f17.xml
│ ├── f18.xml
│ ├── f19.xml
│ ├── f2.xml
│ ├── f20.xml
│ ├── f201.xml
│ ├── f202.xml
│ ├── f203.xml
│ ├── f204.xml
│ ├── f205.xml
│ ├── f206.xml
│ ├── f207.xml
│ ├── f208.xml
│ ├── f209.xml
│ ├── f21.xml
│ ├── f210.xml
│ ├── f211.xml
│ ├── f212.xml
│ ├── f213.xml
│ ├── f214.xml
│ ├── f215.xml
│ ├── f216.xml
│ ├── f217.xml
│ ├── f218.xml
│ ├── f219.xml
│ ├── f22.xml
│ ├── f220.xml
│ ├── f221.xml
│ ├── f23.xml
│ ├── f24.xml
│ ├── f25.xml
│ ├── f26.xml
│ ├── f27.xml
│ ├── f28.xml
│ ├── f29.xml
│ ├── f3.xml
│ ├── f30.xml
│ ├── f31.xml
│ ├── f32.xml
│ ├── f33.xml
│ ├── f34.xml
│ ├── f35.xml
│ ├── f36.xml
│ ├── f37.xml
│ ├── f38.xml
│ ├── f39.xml
│ ├── f4.xml
│ ├── f40.xml
│ ├── f41.xml
│ ├── f42.xml
│ ├── f43.xml
│ ├── f44.xml
│ ├── f45.xml
│ ├── f46.xml
│ ├── f47.xml
│ ├── f48.xml
│ ├── f49.xml
│ ├── f5.xml
│ ├── f6.xml
│ ├── f7.xml
│ ├── f8.xml
│ ├── f9.xml
│ ├── g1.xml
│ ├── g2.xml
│ ├── g3.xml
│ ├── m1.xml
│ ├── m2.xml
│ └── m3.xml
├── tox.ini
└── vagrant
└── mininet-2.1.0-of-1.3
├── .vagrant
└── machines
│ └── default
│ └── virtualbox
│ ├── action_provision
│ ├── action_set_name
│ └── id
├── README
├── Vagrantfile
├── bootstrap.sh
└── node.py.patch
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | ---
2 | # SPDX-FileCopyrightText: 2025 The Linux Foundation
3 | # SPDX-License-Identifier: Apache-2.0
4 |
5 | # To get started with Dependabot version updates, you'll need to specify which
6 | # package ecosystems to update and where the package manifests are located.
7 | # Please see the documentation for all configuration options:
8 | # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
9 |
10 | version: 2
11 | updates:
12 | - package-ecosystem: "github-actions"
13 | directory: "/"
14 | schedule:
15 | interval: "weekly"
16 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .idea/
2 | target/
3 | target-ide/
4 | *.class
5 | *.iml
6 | **/target
7 | **/bin
8 | dist
9 | **/logs
10 | products
11 | repository
12 | workspace
13 | *~
14 | .classpath
15 | .project
16 | .settings
17 | MANIFEST.MF
18 | xtend-gen
19 | yang-gen-sal
20 | yang-gen-config
21 | .externalToolBuilders
22 | maven-eclipse.xml
23 | .metadata/
24 | .checkstyle
25 | maven-metadata-local.xml
26 | *.pyc
27 | /.pydevproject
28 | *.log
29 | .tox/
30 | nbactions.xml
31 | nb-configuration.xml
32 | .fbExcludeFilterFile
33 | .factorypath
34 |
--------------------------------------------------------------------------------
/.gitreview:
--------------------------------------------------------------------------------
1 | [gerrit]
2 | host=git.opendaylight.org
3 | port=29418
4 | project=openflowplugin.git
5 | defaultbranch=master
6 |
--------------------------------------------------------------------------------
/.readthedocs.yml:
--------------------------------------------------------------------------------
1 | # .readthedocs.yml
2 | # Read the Docs configuration file
3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
4 |
5 | # Required
6 | version: 2
7 |
8 | build:
9 | os: ubuntu-22.04
10 | tools:
11 | python: "3.11"
12 | jobs:
13 | post_checkout:
14 | - git fetch --unshallow || true
15 |
16 | sphinx:
17 | configuration: docs/conf.py
18 |
19 | python:
20 | install:
21 | - requirements: docs/requirements.txt
22 |
--------------------------------------------------------------------------------
/applications/arbitratorreconciliation/api/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 4.0.0
4 |
5 | org.opendaylight.openflowplugin
6 | openflowplugin-parent
7 | 0.20.2-SNAPSHOT
8 | ../../../parent
9 |
10 |
11 | org.opendaylight.openflowplugin.applications
12 | arbitratorreconciliation-api
13 | bundle
14 |
15 |
16 |
17 | org.opendaylight.openflowplugin
18 | openflowplugin-extension-api
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/applications/arbitratorreconciliation/impl/src/main/java/org/opendaylight/openflowplugin/applications/arbitratorreconciliation/impl/UpgradeState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2018 Red Hat, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.applications.arbitratorreconciliation.impl;
9 |
10 | /**
11 | * This service is only intended to be used by code that
12 | * needs to accommodate the full replay based upgrade.
13 | */
14 | public interface UpgradeState {
15 |
16 | boolean isUpgradeInProgress();
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/applications/arbitratorreconciliation/impl/src/main/yang/upgrade-config.yang:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright (c) 2018 Red Hat Inc. and others. All rights reserved.
3 |
4 | This program and the accompanying materials are made available under the
5 | terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | module odl-serviceutils-upgrade {
10 | yang-version 1.1;
11 | namespace "urn:opendaylight:serviceutils:upgrade";
12 | prefix 'srv-upgrade';
13 |
14 | revision "2018-07-02" {
15 | description "Serviceutils upgrade config models";
16 | }
17 |
18 | container upgrade-config {
19 | leaf upgradeInProgress {
20 | type boolean;
21 | default false;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/applications/arbitratorreconciliation/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 4.0.0
4 |
5 |
6 | org.opendaylight.odlparent
7 | odlparent-lite
8 | 14.1.3
9 |
10 |
11 |
12 | org.opendaylight.openflowplugin.applications
13 | arbitratorreconciliation-aggregator
14 | 0.20.2-SNAPSHOT
15 | pom
16 | ODL :: openflowplugin :: ${project.artifactId}
17 |
18 |
19 | true
20 | true
21 |
22 |
23 |
24 | api
25 | impl
26 |
27 |
28 |
--------------------------------------------------------------------------------
/applications/device-ownership-service/src/main/java/org/opendaylight/openflowplugin/applications/deviceownershipservice/DeviceOwnershipService.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2018 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.applications.deviceownershipservice;
9 |
10 | public interface DeviceOwnershipService {
11 | /**
12 | * Method is used to check if the node is the entity owner of the switch.
13 | * @return true if the node is the owner of the switch ,
14 | * false if either the switch is owned by some other node or if the cluster is in Jeopardy
15 | */
16 | boolean isEntityOwned(String nodeId);
17 | }
--------------------------------------------------------------------------------
/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/FlowNodeConnectorInventoryTranslator.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.applications.frm;
9 |
10 | import java.math.BigInteger;
11 |
12 | public interface FlowNodeConnectorInventoryTranslator {
13 |
14 | boolean isNodeConnectorUpdated(BigInteger dpId, String portName);
15 | }
16 |
--------------------------------------------------------------------------------
/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/ReconciliationJMXServiceMBean.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.applications.frm;
10 |
11 | import java.util.Map;
12 |
13 | public interface ReconciliationJMXServiceMBean {
14 | /* The MapKey is datapathId
15 | The MapValue is ReconciliationStates of the respective nodes.
16 | */
17 | Map acquireReconciliationStates();
18 | }
--------------------------------------------------------------------------------
/applications/forwardingrules-manager/src/main/java/org/opendaylight/openflowplugin/applications/frm/recovery/OpenflowServiceRecoveryHandler.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2018 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.applications.frm.recovery;
10 |
11 | /**
12 | * OpenflowServiceRecoveryHandler is the generic interface which provides
13 | * facility to generate key for service recovery for openflowplugin.
14 | */
15 |
16 | public interface OpenflowServiceRecoveryHandler {
17 | String buildServiceRegistryKey();
18 | }
19 |
--------------------------------------------------------------------------------
/applications/forwardingrules-manager/src/main/yang/forwardingrules-manager-config.yang:
--------------------------------------------------------------------------------
1 | module forwarding-rules-manager-config {
2 | yang-version 1;
3 | namespace "urn:opendaylight:params:xml:ns:yang:openflowplugin:app:forwardingrules-manager:config";
4 | prefix "frm";
5 |
6 | description
7 | "Configuration for Forwarding Rules Manager application..";
8 |
9 | revision "2016-05-11" {
10 | description
11 | "Initial revision.";
12 | }
13 |
14 | container forwarding-rules-manager-config {
15 | leaf disable-reconciliation {
16 | type boolean;
17 | default false;
18 | }
19 |
20 | leaf stale-marking-enabled {
21 | type boolean;
22 | default false;
23 | }
24 |
25 | leaf reconciliation-retry-count {
26 | type uint16;
27 | default 5;
28 | }
29 |
30 | leaf bundle-based-reconciliation-enabled {
31 | type boolean;
32 | default false;
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/applications/forwardingrules-manager/src/main/yang/frm-reconciliation.yang:
--------------------------------------------------------------------------------
1 | module frm-reconciliation {
2 |
3 | namespace "urn:opendaylight:params:xml:ns:yang:openflowplugin:app:frm-reconciliation:service";
4 | prefix frm-reconciliation;
5 |
6 | import opendaylight-inventory {prefix inv; revision-date "2013-08-19";}
7 |
8 | revision "2018-02-27" {
9 | description "Initial revision of trigger based frm reconciliation";
10 | }
11 |
12 | rpc reconcile-node {
13 | description "Executes reconciliation between the controller and node";
14 | input {
15 | uses "inv:node-context-ref";
16 | leaf nodeId {
17 | type uint64;
18 | }
19 | }
20 |
21 | output {
22 | leaf result {
23 | description "The result of reconciliation, for follow-up";
24 | type boolean;
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/ForwardingRulesCommitter.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.applications.frsync;
9 |
10 | import org.opendaylight.yangtools.binding.DataObject;
11 |
12 | /**
13 | * Represents configuration item contract for device.
14 | * Combining add/update/remove commiters into single one.
15 | */
16 | public interface ForwardingRulesCommitter extends ForwardingRulesAddCommitter,
18 | ForwardingRulesRemoveCommitter, ForwardingRulesUpdateCommitter {
19 | }
20 |
--------------------------------------------------------------------------------
/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/NodeListener.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.applications.frsync;
9 |
10 | import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
11 | import org.opendaylight.yangtools.binding.DataObject;
12 |
13 | /**
14 | * Unifying listener for data and event changes on node.
15 | */
16 | public interface NodeListener extends DataTreeChangeListener {
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/applications/forwardingrules-sync/src/main/java/org/opendaylight/openflowplugin/applications/frsync/dao/FlowCapableNodeDao.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.applications.frsync.dao;
9 |
10 | import java.util.Optional;
11 | import org.eclipse.jdt.annotation.NonNull;
12 | import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowCapableNode;
13 | import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
14 |
15 | /**
16 | * Data access object for {@link FlowCapableNode}.
17 | */
18 | public interface FlowCapableNodeDao {
19 | Optional loadByNodeId(@NonNull NodeId nodeId);
20 | }
21 |
--------------------------------------------------------------------------------
/applications/forwardingrules-sync/src/test/resources/log4j.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/applications/lldp-speaker/src/main/yang/lldp-speaker-config.yang:
--------------------------------------------------------------------------------
1 | module lldp-speaker-config {
2 | yang-version 1;
3 | namespace "urn:opendaylight:params:xml:ns:yang:openflow:applications:lldp-speaker:config";
4 | prefix "lldp-speaker-config";
5 |
6 | import ietf-yang-types {prefix yang; revision-date "2013-07-15";}
7 |
8 | description
9 | "Configuration for LLDP speaker application.";
10 |
11 | revision "2016-05-12" {
12 | description
13 | "Initial revision.";
14 | }
15 |
16 | container lldp-speaker-config {
17 | leaf address-destination {
18 | type yang:mac-address;
19 | mandatory true;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/applications/reconciliation-framework/src/main/java/org/opendaylight/openflowplugin/applications/reconciliation/NotificationRegistration.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.applications.reconciliation;
10 |
11 | /*
12 | * Interface to be returned after services registers itself with reconciliation framework
13 | * Services call close() on NotificationRegistration for unregister
14 | */
15 | public interface NotificationRegistration extends AutoCloseable {
16 | }
17 |
--------------------------------------------------------------------------------
/applications/reconciliation-framework/src/main/java/org/opendaylight/openflowplugin/applications/reconciliation/impl/ReconciliationServiceDelegate.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.applications.reconciliation.impl;
10 |
11 | import org.opendaylight.openflowplugin.applications.reconciliation.NotificationRegistration;
12 |
13 | public class ReconciliationServiceDelegate implements NotificationRegistration {
14 |
15 | private final AutoCloseable unregisterService;
16 |
17 | public ReconciliationServiceDelegate(AutoCloseable unregisterService) {
18 | this.unregisterService = unregisterService;
19 | }
20 |
21 | @Override
22 | public void close() throws Exception {
23 | this.unregisterService.close();
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/applications/southbound-cli/src/main/java/org/opendaylight/openflowplugin/applications/southboundcli/DpnTracker.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.applications.southboundcli;
9 |
10 | import java.util.List;
11 | import org.opendaylight.openflowplugin.applications.southboundcli.util.OFNode;
12 |
13 | public interface DpnTracker {
14 |
15 | List currentNodes();
16 | }
17 |
--------------------------------------------------------------------------------
/applications/topology-manager/src/main/java/org/opendaylight/openflowplugin/applications/topology/manager/TopologyOperation.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.applications.topology.manager;
9 |
10 | import org.opendaylight.openflowplugin.common.txchain.TransactionChainManager;
11 |
12 | /**
13 | * Internal interface for submitted operations. Implementations of this
14 | * interface are enqueued and batched into data store transactions.
15 | */
16 | interface TopologyOperation {
17 | /**
18 | * Execute the operation on top of the transaction.
19 | *
20 | * @param manager Datastore transaction manager
21 | */
22 | void applyOperation(TransactionChainManager manager);
23 | }
--------------------------------------------------------------------------------
/docs/_static/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/docs/_static/logo.png
--------------------------------------------------------------------------------
/docs/conf.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 | # SPDX-License-Identifier: EPL-1.0
4 | ##############################################################################
5 | # Copyright (c) 2018 The Linux Foundation and others.
6 | #
7 | # All rights reserved. This program and the accompanying materials
8 | # are made available under the terms of the Eclipse Public License v1.0
9 | # which accompanies this distribution, and is available at
10 | # http://www.eclipse.org/legal/epl-v10.html
11 | ##############################################################################
12 |
13 | from docs_conf.conf import *
14 |
15 | # Append to intersphinx_mapping
16 | #intersphinx_mapping['odl-releng-builder'] = ('http://docs.opendaylight.org/projects/releng-builder/en/latest/', None)
17 |
18 | linkcheck_ignore = [
19 | # Ignore jenkins because it's often slow to respond.
20 | 'https://jenkins.opendaylight.org/releng',
21 | 'https://jenkins.opendaylight.org/sandbox',
22 | ]
23 |
24 | nitpicky = True
25 |
--------------------------------------------------------------------------------
/docs/conf.yaml:
--------------------------------------------------------------------------------
1 | project_cfg: opendaylight
2 | project: ODL OpenFlowPlugin
3 | version: Scandium
4 |
--------------------------------------------------------------------------------
/docs/devs/index.rst:
--------------------------------------------------------------------------------
1 | Openflowplugin Developer Guides
2 | ===============================
3 |
4 | Contents:
5 |
6 | .. toctree::
7 | :maxdepth: 1
8 |
9 | Plugin Guide
10 | Library Guide
11 |
--------------------------------------------------------------------------------
/docs/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/docs/favicon.ico
--------------------------------------------------------------------------------
/docs/images/500px-UdpChannelPipeline.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/docs/images/500px-UdpChannelPipeline.png
--------------------------------------------------------------------------------
/docs/images/800px-Extensibility.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/docs/images/800px-Extensibility.png
--------------------------------------------------------------------------------
/docs/images/800px-Extensibility2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/docs/images/800px-Extensibility2.png
--------------------------------------------------------------------------------
/docs/images/Library_lifecycle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/docs/images/Library_lifecycle.png
--------------------------------------------------------------------------------
/docs/images/odl-ofp-add-flow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/docs/images/odl-ofp-add-flow.png
--------------------------------------------------------------------------------
/docs/images/odl-ofp-feature-tree.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/docs/images/odl-ofp-feature-tree.png
--------------------------------------------------------------------------------
/docs/images/odl-ofp-handshake.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/docs/images/odl-ofp-handshake.png
--------------------------------------------------------------------------------
/docs/images/odl-ofp-ofplugin-debug-stats.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/docs/images/odl-ofp-ofplugin-debug-stats.png
--------------------------------------------------------------------------------
/docs/images/odl-ofp-session-establishment.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/docs/images/odl-ofp-session-establishment.jpg
--------------------------------------------------------------------------------
/docs/images/plugin_arch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/docs/images/plugin_arch.png
--------------------------------------------------------------------------------
/docs/index.rst:
--------------------------------------------------------------------------------
1 | .. Openflowplugin documentation master file, created by
2 | sphinx-quickstart on Wed Nov 15 21:47:32 2017.
3 | You can adapt this file completely to your liking, but it should at least
4 | contain the root `toctree` directive.
5 |
6 | Openflowplugin Documentation
7 | ============================
8 |
9 | Contents:
10 |
11 | .. toctree::
12 | :maxdepth: 2
13 |
14 | users/index
15 | devs/index
16 | specs/index
17 | testplans/index
18 |
--------------------------------------------------------------------------------
/docs/requirements.txt:
--------------------------------------------------------------------------------
1 | lfdocs-conf
2 |
--------------------------------------------------------------------------------
/docs/specs/index.rst:
--------------------------------------------------------------------------------
1 | Openflowplugin Design Specifications
2 | ====================================
3 |
4 | Contents:
5 |
6 | .. toctree::
7 | :maxdepth: 1
8 |
9 | reconciliation-framework
10 | group-add-mod
11 | bundle-reconciliation
12 | southbound-cli
13 | reconciliation-cli
14 | arbitrator-reconciliation
15 | device-connection-rate-limiter
16 | openflowplugin-event-logger
17 |
--------------------------------------------------------------------------------
/docs/testplans/index.rst:
--------------------------------------------------------------------------------
1 | Openflowplugin Test Plans
2 | =========================
3 |
4 | Contents:
5 |
6 | .. toctree::
7 | :maxdepth: 1
8 |
9 | Bundles Resync
10 | Testplan Template
11 |
--------------------------------------------------------------------------------
/docs/testplans/topologies/default-topology.txt:
--------------------------------------------------------------------------------
1 | +--------+ +--------+
2 | | BR1 | data | BR2 |
3 | | <-------> |
4 | +---^----+ +----^---+
5 | | mgmt |
6 | +---v-----------------v---+
7 | | |
8 | | ODL |
9 | | |
10 | | Bundle Resync enabled |
11 | | |
12 | +-------------------------+
13 |
--------------------------------------------------------------------------------
/docs/testplans/topologies/dummy-topology.txt:
--------------------------------------------------------------------------------
1 | +------------+
2 | | Dummy |
3 | | Topology |
4 | +------------+
5 |
--------------------------------------------------------------------------------
/docs/users/index.rst:
--------------------------------------------------------------------------------
1 | Openflowplugin User Guides
2 | ==========================
3 |
4 | Contents:
5 |
6 | .. toctree::
7 | :maxdepth: 1
8 |
9 | Architecture
10 | Installation
11 | Operation
12 | Flow examples
13 |
--------------------------------------------------------------------------------
/docs/users/installation.rst:
--------------------------------------------------------------------------------
1 | .. _ofp-installation:
2 |
3 | OpenFlow Plugin Installation
4 | ============================
5 |
6 | OpenFlow Plugin installation follows standard OpenDaylight installation procedure
7 | described in install-odl_.
8 |
9 | Next sections describe typical OpenFlow user and test features. For a complete list
10 | of available features check the OpenFlow Plugin Release Notes.
11 |
12 | Typical User features
13 | ---------------------
14 |
15 | - **odl-openflowplugin-flow-services-rest**: OF plugin with REST API.
16 | - **odl-openflowplugin-app-table-miss-enforcer**: Adds default flow to controller.
17 | - **odl-openflowplugin-nxm-extensions**: Nicira extensions for OVS.
18 |
19 | Typical Test features
20 | ---------------------
21 |
22 | - **odl-openflowplugin-app-table-miss-enforcer**: Adds default flow to controller.
23 | - **odl-openflowplugin-drop-test**: Test application for pushing flows on packet-in.
24 | - **odl-openflowplugin-app-bulk-o-matic**: Test application for pushing bulk flows.
25 |
26 | .. _install-odl: https://docs.opendaylight.org/en/latest/getting-started-guide/installing_opendaylight.html
27 |
28 |
--------------------------------------------------------------------------------
/extension/openflowjava-extension-eric/src/main/java/org/opendaylight/openflowjava/eric/api/EricConstants.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2019 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowjava.eric.api;
9 |
10 | public final class EricConstants {
11 | /** Experimenter ID of ONF approved extensions. */
12 | public static final int ERICOXM_OF_EXPERIMENTER_ID = 0x1000;
13 |
14 | /** ERICOXM_OF_ICMPV6_ND_RESERVED message type. */
15 | public static final int ERICOXM_OF_ICMPV6_ND_RESERVED = 1;
16 |
17 | /** ERICOXM_OF_ICMPV6_ND_OPTION_TYPE message type. */
18 | public static final int ERICOXM_OF_ICMPV6_ND_OPTIONS_TYPE = 2;
19 |
20 | private EricConstants() {
21 |
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/extension/openflowjava-extension-nicira-api/src/main/java/org/opendaylight/openflowjava/nx/api/NiciraConstants.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014, 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowjava.nx.api;
9 |
10 | import org.opendaylight.yangtools.yang.common.Uint32;
11 |
12 | public final class NiciraConstants {
13 |
14 | public static final Uint32 NX_VENDOR_ID = Uint32.valueOf(0x00002320L).intern();
15 |
16 | public static final Uint32 NX_NSH_VENDOR_ID = Uint32.valueOf(0x005AD650L).intern();
17 |
18 | private NiciraConstants() {
19 |
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/extension/openflowjava-extension-nicira-api/src/main/java/org/opendaylight/openflowjava/nx/api/NiciraUtil.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowjava.nx.api;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.keys.ActionSerializerKey;
11 |
12 | /**
13 | * Nicira utilities.
14 | *
15 | * @author msunal
16 | */
17 | public final class NiciraUtil {
18 | private NiciraUtil() {
19 |
20 | }
21 |
22 | public static ActionSerializerKey> createOfJavaKeyFrom(NiciraActionSerializerKey key) {
23 | return new ActionSerializerKey<>(key.getVersion(), key.getSubtype(), NiciraConstants.NX_VENDOR_ID);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/extension/openflowjava-extension-nicira/src/test/java/org/opendaylight/openflowjava/nx/codec/action/TestsCodecStub.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Hewlett-Packard Enterprise and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowjava.nx.codec.action;
9 |
10 | import io.netty.buffer.ByteBuf;
11 | import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action;
12 |
13 | public class TestsCodecStub extends AbstractActionCodec {
14 | @Override
15 | public void serialize(Action input, ByteBuf outBuffer) {
16 | // TODO Auto-generated method stub
17 |
18 | }
19 |
20 | @Override
21 | public Action deserialize(ByteBuf message) {
22 | // TODO Auto-generated method stub
23 | return null;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/extension/openflowplugin-extension-api/src/main/java/org/opendaylight/openflowplugin/extension/api/OpenFlowPluginExtensionRegistratorProvider.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.extension.api;
10 |
11 | /**
12 | * Created by mirehak on 4/25/15.
13 | */
14 | public interface OpenFlowPluginExtensionRegistratorProvider {
15 |
16 | /**
17 | * Returns the extensionConverterRegistry - here extension converters can be registered in order to support
18 | * vendor messages.
19 | * @return extensionConverterRegistrator
20 | */
21 | ExtensionConverterRegistrator getExtensionConverterRegistrator();
22 | }
23 |
--------------------------------------------------------------------------------
/extension/openflowplugin-extension-api/src/main/java/org/opendaylight/openflowplugin/extension/api/core/extension/ExtensionConverterManager.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.extension.api.core.extension;
9 |
10 | import org.opendaylight.openflowplugin.extension.api.ExtensionConverterRegistrator;
11 |
12 | /**
13 | * Unifying interface.
14 | */
15 | public interface ExtensionConverterManager extends ExtensionConverterProvider, ExtensionConverterRegistrator {
16 | // see parents
17 | }
18 |
--------------------------------------------------------------------------------
/extension/openflowplugin-extension-api/src/main/java/org/opendaylight/openflowplugin/extension/api/exception/ConversionException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.extension.api.exception;
10 |
11 | /**
12 | * General exception for conversion related operations.
13 | */
14 | public class ConversionException extends Exception {
15 | public ConversionException(String message) {
16 | super(message);
17 | }
18 |
19 | public ConversionException(String message, Throwable cause) {
20 | super(message, cause);
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/extension/openflowplugin-extension-api/src/main/java/org/opendaylight/openflowplugin/extension/api/exception/ConverterNotFoundException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.extension.api.exception;
10 |
11 | /**
12 | * For case when converter is not available.
13 | */
14 | public class ConverterNotFoundException extends ConversionException {
15 |
16 | public ConverterNotFoundException(String message) {
17 | super(message);
18 | }
19 |
20 | public ConverterNotFoundException(String message, Throwable cause) {
21 | super(message, cause);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/extension/openflowplugin-extension-api/src/main/java/org/opendaylight/openflowplugin/extension/api/exception/ExperimenterConversionException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.extension.api.exception;
10 |
11 | /**
12 | * For case when conversion fails.
13 | */
14 | public class ExperimenterConversionException extends ConversionException {
15 |
16 | public ExperimenterConversionException(String message) {
17 | super(message);
18 | }
19 |
20 | public ExperimenterConversionException(String message, Throwable cause) {
21 | super(message, cause);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/extension/openflowplugin-extension-api/src/main/java/org/opendaylight/openflowplugin/extension/api/path/AugmentationPath.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.extension.api.path;
9 |
10 | import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.general.extension.grouping.Extension;
11 | import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
12 |
13 | /**
14 | * Interface for an extension augmentation path.
15 | *
16 | * @author msunal
17 | */
18 | public interface AugmentationPath {
19 |
20 | InstanceIdentifier getInstanceIdentifier();
21 | }
22 |
--------------------------------------------------------------------------------
/extension/openflowplugin-extension-api/src/main/yang/openflowplugin-experimenter-types.yang:
--------------------------------------------------------------------------------
1 | module openflowplugin-experimenter-types {
2 | namespace "urn:opendaylight:openflowplugin:experimenter:types";
3 | prefix exp-type;
4 |
5 | import opendaylight-multipart-types { prefix multipart; revision-date "2017-01-12"; }
6 |
7 | revision "2015-10-20" {
8 | description "Initial revision of experimenter basic types";
9 | }
10 |
11 | grouping experimenter-core-message {
12 | choice experimenter-message-of-choice {
13 | // to be augmented by vendors
14 | }
15 | }
16 |
17 | augment "/multipart:multipart-reply/multipart:multipart-reply-body" {
18 | case multipart-reply-experimenter {
19 | uses experimenter-core-message;
20 | }
21 | }
22 |
23 | augment "/multipart:multipart-request/multipart:multipart-request-body" {
24 | case multipart-request-experimenter {
25 | uses experimenter-core-message;
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/extension/openflowplugin-extension-api/src/main/yang/sal-experimenter-mp-message.yang:
--------------------------------------------------------------------------------
1 | module sal-experimenter-mp-message {
2 | namespace "urn:opendaylight:experimenter-mp-message:service";
3 | prefix exp-mp-msg;
4 |
5 | import opendaylight-inventory {prefix inv;revision-date "2013-08-19";}
6 | import openflowplugin-experimenter-types {prefix exp-type;revision-date "2015-10-20";}
7 |
8 | description "Openflow multipart experimenter message service.";
9 |
10 | revision "2015-10-20" {
11 | description "Initial revision of experimenter multipart message service";
12 | }
13 |
14 | rpc send-experimenter-mp-request {
15 | description "Send experimenter multipart request to device, expecting reply.";
16 | input {
17 | uses "inv:node-context-ref";
18 | uses exp-type:experimenter-core-message;
19 | }
20 | output {
21 | list experimenter-core-message-item {
22 | uses exp-type:experimenter-core-message;
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/extension/openflowplugin-extension-eric/src/main/resources/org/opendaylight/blueprint/openflowplugin-extension-eric.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/extension/test-extension/src/main/yang/test.yang:
--------------------------------------------------------------------------------
1 | module test {
2 | namespace "urn:opendaylight:test";
3 | prefix test;
4 |
5 | revision "2013-08-19" {
6 | description "Initial revision of flow service";
7 | }
8 |
9 | rpc test-flow {
10 | input {
11 | leaf dummy {
12 | type string;
13 | }
14 | }
15 | /*
16 | input {
17 | uses tr:transaction-metadata;
18 | leaf flow-ref {
19 | type types:flow-ref;
20 | }
21 | uses node-flow;
22 | }
23 | output {
24 | uses tr:transaction-aware;
25 | }
26 | */
27 | }
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/features/odl-openflowjava-protocol/src/main/feature/feature.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | odl-yangtools-netty
6 | odl-mdsal-model-rfc6991
7 | odl-infrautils-diagstatus
8 |
9 |
10 |
--------------------------------------------------------------------------------
/features/odl-openflowplugin-eric-extensions/src/main/features/features.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/features/odl-openflowplugin-flow-services-rest/src/main/feature/feature.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | odl-restconf
5 |
6 |
7 |
--------------------------------------------------------------------------------
/features/odl-openflowplugin-libraries/src/main/feature/feature.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | odl-apache-commons-lang3
5 | odl-guava
6 |
7 |
8 |
--------------------------------------------------------------------------------
/features/odl-openflowplugin-nsf-model/src/main/feature/feature.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal
5 | odl-mdsal-model-odl-l2-types
6 |
7 |
8 |
--------------------------------------------------------------------------------
/features/odl-openflowplugin-nxm-extensions/src/main/features/features.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/libraries/liblldp/src/main/java/org/opendaylight/openflowplugin/libraries/liblldp/BufferException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.libraries.liblldp;
9 |
10 | /**
11 | * Describes an exception that is raised during BitBufferHelper operations.
12 | */
13 | public class BufferException extends Exception {
14 | private static final long serialVersionUID = 1L;
15 |
16 | public BufferException(final String message) {
17 | super(message);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/libraries/liblldp/src/main/java/org/opendaylight/openflowplugin/libraries/liblldp/PacketException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.libraries.liblldp;
9 |
10 | /**
11 | * Describes an exception that is raised when the process of serializing or
12 | * deserializing a network packet/stream fails. This generally happens when the
13 | * packet/stream is malformed.
14 | *
15 | */
16 | public class PacketException extends Exception {
17 | private static final long serialVersionUID = 1L;
18 |
19 | public PacketException(final String message) {
20 | super(message);
21 | }
22 |
23 | public PacketException(String message, Throwable cause) {
24 | super(message, cause);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/libraries/liblldp/src/test/resources/log4j.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/libraries/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 4.0.0
4 |
5 |
6 | org.opendaylight.odlparent
7 | odlparent-lite
8 | 14.1.3
9 |
10 |
11 |
12 | org.opendaylight.openflowplugin
13 | libraries-aggregator
14 | 0.20.2-SNAPSHOT
15 | pom
16 |
17 |
18 | true
19 | true
20 |
21 |
22 |
23 | liblldp
24 |
25 |
26 |
--------------------------------------------------------------------------------
/model/model-flow-base/src/main/java/org/opendaylight/yang/gen/v1/urn/opendaylight/flow/types/port/rev130925/PortNumberUniBuilder.java:
--------------------------------------------------------------------------------
1 | package org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.port.rev130925;
2 |
3 | import org.opendaylight.yangtools.yang.common.Uint32;
4 |
5 | /**
6 | * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation.
7 | * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32).
8 | *
9 | * The reason behind putting it under src/main/java is:
10 | * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent
11 | * loss of user code.
12 | *
13 | */
14 | public class PortNumberUniBuilder {
15 |
16 | public static PortNumberUni getDefaultInstance(String defaultValue) {
17 | try {
18 | return new PortNumberUni(Uint32.valueOf(defaultValue));
19 | } catch (IllegalArgumentException e) {
20 | return new PortNumberUni(defaultValue);
21 | }
22 | }
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/model/model-flow-base/src/main/yang/opendaylight-multipart-types.yang:
--------------------------------------------------------------------------------
1 | module opendaylight-multipart-types {
2 | namespace "urn:opendaylight:multipart:types";
3 | prefix multipart;
4 |
5 | import openflow-protocol { prefix ofproto; revision-date "2013-07-31"; }
6 |
7 | revision "2017-01-12" {
8 | description "Initial revision";
9 | }
10 |
11 | grouping multipart-header {
12 | uses ofproto:ofHeader;
13 |
14 | leaf request-more {
15 | type boolean;
16 | default false;
17 | }
18 | }
19 |
20 | container multipart-reply {
21 | uses multipart-header;
22 |
23 | choice multipart-reply-body {
24 | }
25 | }
26 |
27 | container multipart-request {
28 | uses multipart-header;
29 |
30 | choice multipart-request-body {
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/model/model-flow-service/src/main/yang/barrier-common.yang:
--------------------------------------------------------------------------------
1 | module barrier-common {
2 | namespace "urn:opendaylight:service:barrier:common";
3 | prefix barrier-common;
4 |
5 | description "Openflow barrier for services - common groupings.";
6 |
7 | revision "2016-03-15" {
8 | description "Initial revision of batch common groupings.";
9 | }
10 |
11 | grouping barrier-suffix {
12 | description "Flag indicating that barrier will be attached after some service-specific action.";
13 |
14 | leaf barrier-after {
15 | type boolean;
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/model/model-flow-service/src/main/yang/batch-common.yang:
--------------------------------------------------------------------------------
1 | module batch-common {
2 | namespace "urn:opendaylight:service:batch:common";
3 | prefix batch-common;
4 |
5 | description "Openflow batch services - common groupings.";
6 |
7 | revision "2016-03-22" {
8 | description "Initial revision of batch common groupings.";
9 | }
10 |
11 | grouping batch-order-grouping {
12 | description "provide unified batch order value";
13 | leaf batch-order {
14 | type uint16;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/model/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 4.0.0
5 |
6 |
7 | org.opendaylight.odlparent
8 | odlparent-lite
9 | 14.1.3
10 |
11 |
12 |
13 | org.opendaylight.openflowplugin.model
14 | model-aggregator
15 | 0.20.2-SNAPSHOT
16 | pom
17 |
18 |
19 | true
20 | true
21 |
22 |
23 |
24 | model-flow-base
25 | model-flow-service
26 | model-flow-statistics
27 | model-inventory
28 | model-topology
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/connection/ConnectionReadyListener.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowjava.protocol.api.connection;
10 |
11 | /**
12 | * Listener that is notified when a switch connection is ready.
13 | *
14 | * @author mirehak
15 | */
16 | public interface ConnectionReadyListener {
17 |
18 | /**
19 | * Fired when connection becomes ready-to-use.
20 | */
21 | void onConnectionReady();
22 | }
23 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/connection/ListeningStatusProvider.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowjava.protocol.api.connection;
10 |
11 | import java.util.concurrent.Future;
12 |
13 | /**
14 | * For testing purposes.
15 | *
16 | * @author mirehak
17 | */
18 | public interface ListeningStatusProvider {
19 |
20 | /**
21 | * Determines if the plugin has successfully started.
22 | *
23 | * @return future holding startup result of all library instances under plugin's control
24 | */
25 | Future isOnline();
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/connection/OutboundQueueHandlerRegistration.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowjava.protocol.api.connection;
9 |
10 | import com.google.common.annotations.Beta;
11 | import org.opendaylight.yangtools.concepts.ObjectRegistration;
12 |
13 | /**
14 | * An {@link ObjectRegistration} of a {@link OutboundQueueHandler}. Registration can be cancelled
15 | * by invoking {@link #close()}.
16 | *
17 | * @param Handler type
18 | */
19 | @Beta
20 | public interface OutboundQueueHandlerRegistration extends ObjectRegistration {
21 | @Override
22 | void close();
23 | }
24 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/connection/StatisticsConfiguration.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowjava.protocol.api.connection;
10 |
11 | /**
12 | * Used for StatisticsCounter configuration.
13 | *
14 | * @author madamjak
15 | */
16 | public interface StatisticsConfiguration {
17 |
18 | /**
19 | * Determines if statistics are enabled.
20 | *
21 | * @return true if statistics are / will be collected, false otherwise
22 | */
23 | boolean getStatisticsCollect();
24 |
25 | /**
26 | * Returns the delay between two statistics logs.
27 | *
28 | * @return delay between two statistics logs (in milliseconds)
29 | */
30 | int getLogReportDelay();
31 | }
32 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/connection/ThreadConfiguration.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowjava.protocol.api.connection;
10 |
11 | /**
12 | * Threading configuration.
13 | *
14 | * @author michal.polkorab
15 | */
16 | public interface ThreadConfiguration {
17 |
18 | /**
19 | * Returns the desired number of Openflow I/O worker threads.
20 | *
21 | * @return desired number of worker threads processing the Openflow I/O
22 | */
23 | int getWorkerThreadCount();
24 |
25 | /**
26 | * Returns the desired number of incoming Openflow connection threads.
27 | *
28 | * @return desired number of bossThreads registering incoming Openflow connections
29 | */
30 | int getBossThreadCount();
31 | }
32 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/AlienMessageListener.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowjava.protocol.api.extensibility;
9 |
10 | import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
11 |
12 | public interface AlienMessageListener {
13 |
14 | /**
15 | * Handler for alien but successfully deserialized messages for device.
16 | *
17 | * @param message alien message
18 | * @return true if alien message was successfully processed
19 | */
20 | boolean onAlienMessage(OfHeader message);
21 | }
22 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/DeserializerRegistryInjector.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowjava.protocol.api.extensibility;
9 |
10 | /**
11 | * Injects registries.
12 | *
13 | * @author michal.polkorab
14 | */
15 | public interface DeserializerRegistryInjector {
16 |
17 | /**
18 | * Injects deserializer registry into deserializer.
19 | *
20 | * @param deserializerRegistry registry of deserializers
21 | */
22 | void injectDeserializerRegistry(DeserializerRegistry deserializerRegistry);
23 | }
24 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/HeaderDeserializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowjava.protocol.api.extensibility;
9 |
10 | import io.netty.buffer.ByteBuf;
11 | import org.opendaylight.yangtools.binding.DataContainer;
12 |
13 | /**
14 | * Deserializes headers.
15 | *
16 | * @author michal.polkorab
17 | * @param output message type
18 | */
19 | public interface HeaderDeserializer extends OFGeneralDeserializer {
20 |
21 | /**
22 | * Deserializes a byte message headers.
23 | *
24 | * @param rawMessage message as bytes in ByteBuf
25 | * @return POJO/DTO
26 | */
27 | E deserializeHeader(ByteBuf rawMessage);
28 | }
29 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/OFDeserializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowjava.protocol.api.extensibility;
9 |
10 | import io.netty.buffer.ByteBuf;
11 | import org.opendaylight.yangtools.binding.DataContainer;
12 |
13 | /**
14 | * Uniform interface for deserializing factories.
15 | *
16 | * @author michal.polkorab
17 | * @author timotej.kubas
18 | * @param message code type
19 | */
20 | public interface OFDeserializer extends OFGeneralDeserializer {
21 |
22 | /**
23 | * Transforms byte message into POJO/DTO (of type E).
24 | *
25 | * @param message message as bytes in ByteBuf
26 | * @return POJO/DTO
27 | */
28 | E deserialize(ByteBuf message);
29 | }
30 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/OFGeneralDeserializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowjava.protocol.api.extensibility;
9 |
10 | /**
11 | * Unifying super interface for a general deserializer.
12 | *
13 | * @author michal.polkorab
14 | */
15 | public interface OFGeneralDeserializer {
16 |
17 | // empty unifying interface
18 | }
19 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/OFGeneralSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowjava.protocol.api.extensibility;
9 |
10 | /**
11 | * Unifying super interface for a general derializer.
12 | *
13 | * @author michal.polkorab
14 | * */
15 | public interface OFGeneralSerializer {
16 |
17 | // empty unifying superinterface
18 | }
19 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/extensibility/SerializerRegistryInjector.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowjava.protocol.api.extensibility;
9 |
10 | /**
11 | * Serializer registry injector.
12 | *
13 | * @author michal.polkorab
14 | */
15 | public interface SerializerRegistryInjector {
16 |
17 | /**
18 | * Injects serializer registry.
19 | *
20 | * @param serializerRegistry registry instance
21 | */
22 | void injectSerializerRegistry(SerializerRegistry serializerRegistry);
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/keys/ExperimenterDeserializerKey.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowjava.protocol.api.keys;
10 |
11 | /**
12 | * Marker interface - marks keys appropriate for experimenter deserializer registration.
13 | *
14 | * @author michal.polkorab
15 | */
16 | public interface ExperimenterDeserializerKey {
17 | // only empty marker interface - to ease extensions registration
18 | }
19 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/java/org/opendaylight/openflowjava/protocol/api/keys/ExperimenterSerializerKey.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowjava.protocol.api.keys;
10 |
11 | /**
12 | * Marker interface - marks keys appropriate for experimenter serializer registration.
13 | *
14 | * @author michal.polkorab
15 | */
16 | public interface ExperimenterSerializerKey {
17 | // only empty marker interface - to ease extensions registration
18 | }
19 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-api/src/main/yang/openflow-approved-extensions.yang:
--------------------------------------------------------------------------------
1 | module openflow-approved-extensions {
2 | namespace "urn:opendaylight:openflow:approved:extensions";
3 | prefix "ofext";
4 |
5 | import odl-codegen-extensions { prefix oce; }
6 | import openflow-extensible-match { prefix oxm; }
7 | import openflow-augments { prefix aug; }
8 |
9 | revision "2016-08-02" {
10 | description "Openflow approved extensions definition";
11 | }
12 |
13 | //ONF Approved OpenFlow Extensions
14 | // Extension 109 - TCP FLAGS
15 | identity tcp_flags {
16 | base oxm:match-field;
17 | description "TCP flags from the TCP header";
18 | }
19 |
20 | augment "/oxm:oxm-container/oxm:match-entry-value/aug:experimenter-id-case" {
21 | oce:augment-identifier "tcp-flags-container";
22 | container tcp-flags {
23 | leaf flags {
24 | type uint16;
25 | }
26 | leaf mask {
27 | type binary;
28 | }
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/ConnectionInitializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowjava.protocol.impl.core;
10 |
11 | /**
12 | * Interface for a connection initializer.
13 | *
14 | * @author martin.uhlir
15 | */
16 | public interface ConnectionInitializer {
17 |
18 | /**
19 | * Initiates connection towards device.
20 | *
21 | * @param host - host IP
22 | * @param port - port number
23 | */
24 | void initiateConnection(String host, int port);
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/connection/ConnectionFacade.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 |
10 | package org.opendaylight.openflowjava.protocol.impl.core.connection;
11 |
12 | import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter;
13 |
14 | /**
15 | * Unifying super interface for a connection.
16 | *
17 | * @author michal.polkorab
18 | */
19 | public interface ConnectionFacade extends MessageConsumer, ConnectionAdapter {
20 |
21 | // empty unifying superinterface
22 | }
23 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/connection/MessageConsumer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 |
10 | package org.opendaylight.openflowjava.protocol.impl.core.connection;
11 |
12 | import org.opendaylight.yangtools.binding.DataObject;
13 |
14 | /**
15 | * Interface for a message consumer.
16 | *
17 | * @author mirehak
18 | */
19 | public interface MessageConsumer {
20 |
21 | /**
22 | * Invoked to consume a message.
23 | *
24 | * @param message to process
25 | */
26 | void consume(DataObject message);
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/connection/OutboundQueueHandlerRegistrationImpl.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowjava.protocol.impl.core.connection;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueueHandler;
11 | import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueueHandlerRegistration;
12 | import org.opendaylight.yangtools.concepts.AbstractObjectRegistration;
13 |
14 | abstract class OutboundQueueHandlerRegistrationImpl
15 | extends AbstractObjectRegistration implements OutboundQueueHandlerRegistration {
16 | protected OutboundQueueHandlerRegistrationImpl(final T instance) {
17 | super(instance);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/core/connection/SimpleRpcListener.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowjava.protocol.impl.core.connection;
9 |
10 | import org.opendaylight.yangtools.binding.DataObject;
11 |
12 | final class SimpleRpcListener extends AbstractRpcListener {
13 | SimpleRpcListener(final Object message, final String failureInfo) {
14 | super(message, failureInfo);
15 | }
16 |
17 | @Override
18 | protected void operationSuccessful() {
19 | successfulRpc(null);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/CodeKeyMaker.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowjava.protocol.impl.util;
10 |
11 | import io.netty.buffer.ByteBuf;
12 | import org.opendaylight.openflowjava.protocol.api.keys.MessageCodeKey;
13 |
14 | /**
15 | * Interface for making code keys.
16 | *
17 | * @author michal.polkorab
18 | */
19 | public interface CodeKeyMaker {
20 |
21 | /**
22 | * Makes a code key.
23 | *
24 | * @param input buffer that will be the needed data gathered from
25 | * @return key for deserializer lookup
26 | */
27 | MessageCodeKey make(ByteBuf input);
28 | }
29 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/TypeKeyMaker.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowjava.protocol.impl.util;
10 |
11 | import org.opendaylight.openflowjava.protocol.api.keys.MessageTypeKey;
12 |
13 | /**
14 | * Interface for a type key maker.
15 | *
16 | * @author michal.polkorab
17 | * @param type the key maker is based on
18 | */
19 | public interface TypeKeyMaker {
20 |
21 | /**
22 | * Makes a MessageTypeKey.
23 | *
24 | * @param entry the entry for which to create the key
25 | * @return key that will be used for serializer lookup in the serializer registry
26 | */
27 | MessageTypeKey> make(T entry);
28 | }
29 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-impl/src/main/resources/exemplary-ctlKeystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/openflowjava/openflow-protocol-impl/src/main/resources/exemplary-ctlKeystore
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-impl/src/main/resources/exemplary-ctlTrustStore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/openflowjava/openflow-protocol-impl/src/main/resources/exemplary-ctlTrustStore
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-impl/src/test/resources/key.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/openflowjava/openflow-protocol-impl/src/test/resources/key.bin
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-impl/src/test/resources/selfSignedController:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/openflowjava/openflow-protocol-impl/src/test/resources/selfSignedController
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-impl/src/test/resources/selfSignedSwitch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/openflowjava/openflow-protocol-impl/src/test/resources/selfSignedSwitch
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-it/src/test/resources/log4j.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/openflowjava/openflow-protocol-spi/src/main/java/org/opendaylight/openflowjava/protocol/spi/statistics/StatisticsHandler.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowjava.protocol.spi.statistics;
10 |
11 | /**
12 | * Used for JConsole service.
13 | *
14 | * @author michal.polkorab
15 | */
16 | public interface StatisticsHandler {
17 |
18 | /**
19 | * Resets all counters.
20 | */
21 | void resetCounters();
22 |
23 | /**
24 | * Returns statistics.
25 | */
26 | String printStatistics();
27 | }
28 |
--------------------------------------------------------------------------------
/openflowjava/openflowjava-blueprint-config/src/main/resources/initial/default-openflow-connection-config.xml:
--------------------------------------------------------------------------------
1 |
2 | openflow-switch-connection-provider-default-impl
3 | 6653
4 | TCP
5 | false
6 | 1024
7 |
8 | configuration/ssl/ctl.jks
9 | JKS
10 | PATH
11 | opendaylight
12 | configuration/ssl/truststore.jks
13 | JKS
14 | PATH
15 | opendaylight
16 | opendaylight
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/openflowjava/openflowjava-blueprint-config/src/main/resources/initial/legacy-openflow-connection-config.xml:
--------------------------------------------------------------------------------
1 |
2 | openflow-switch-connection-provider-legacy-impl
3 | 6633
4 | TCP
5 | false
6 | 1024
7 |
8 | configuration/ssl/ctl.jks
9 | JKS
10 | PATH
11 | opendaylight
12 | configuration/ssl/truststore.jks
13 | JKS
14 | PATH
15 | opendaylight
16 | opendaylight
17 |
18 |
19 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/ConnectionException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api;
9 |
10 | /**
11 | * Created by Martin Bobak mbobak@cisco.com on 7/8/14.
12 | */
13 | public class ConnectionException extends Exception {
14 | private static final long serialVersionUID = 1L;
15 |
16 | public ConnectionException(final String message) {
17 | super(message);
18 | }
19 |
20 | public ConnectionException(final String message, final Throwable cause) {
21 | super(message, cause);
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/FlowGroupCacheManager.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2018 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow;
9 |
10 | import java.util.Map;
11 |
12 | public interface FlowGroupCacheManager {
13 |
14 | Map getReconciliationStates();
15 | }
16 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/FlowGroupInfoHistories.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow;
9 |
10 | import com.google.common.annotations.Beta;
11 | import java.util.Map;
12 | import org.eclipse.jdt.annotation.NonNull;
13 | import org.eclipse.jdt.annotation.Nullable;
14 | import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
15 |
16 | @Beta
17 | public interface FlowGroupInfoHistories {
18 |
19 | @NonNull Map getAllFlowGroupHistories();
20 |
21 | @Nullable FlowGroupInfoHistory getFlowGroupHistory(@NonNull NodeId nodeId);
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/FlowGroupInfoHistory.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow;
9 |
10 | import com.google.common.annotations.Beta;
11 | import java.util.Collection;
12 | import org.eclipse.jdt.annotation.NonNullByDefault;
13 |
14 | @Beta
15 | @NonNullByDefault
16 | public interface FlowGroupInfoHistory {
17 |
18 | Collection readEntries();
19 | }
20 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/FlowGroupStatus.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow;
9 |
10 | public enum FlowGroupStatus {
11 | ADDED,
12 | MODIFIED,
13 | REMOVED
14 | }
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/configuration/ConfigurationListener.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.configuration;
10 |
11 | import org.eclipse.jdt.annotation.NonNull;
12 |
13 | /**
14 | * Listens for changes in OpenFlowPlugin configuration.
15 | */
16 | public interface ConfigurationListener {
17 |
18 | /**
19 | * Method invoked on configuration property change.
20 | *
21 | * @param propertyName the property name
22 | * @param propertyValue the property value
23 | */
24 | void onPropertyChanged(@NonNull String propertyName, @NonNull String propertyValue);
25 |
26 | }
27 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/configuration/ConfigurationServiceFactory.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.configuration;
9 |
10 | import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.provider.config.rev160510.OpenflowProviderConfig;
11 |
12 | /**
13 | * Factory for creating ConfigurationService instances.
14 | */
15 | public interface ConfigurationServiceFactory {
16 | ConfigurationService newInstance(OpenflowProviderConfig providerConfig);
17 | }
18 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/connection/ConnectionStatus.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.connection;
9 |
10 | /**
11 | * Define all possible states of connection after handshake.
12 | */
13 | public enum ConnectionStatus {
14 |
15 | // this flag should be return if no connection on this node exists
16 | MAY_CONTINUE,
17 |
18 | // this flag should be return if node still connected but not in termination state
19 | ALREADY_CONNECTED,
20 |
21 | // this flag should be return if node still connected but already in termination state
22 | CLOSING,
23 |
24 | //Flag used when auxiliary connection incomming but there is no primary connection
25 | REFUSING_AUXILIARY_CONNECTION
26 | }
27 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/connection/HandshakeContext.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.connection;
9 |
10 | import java.util.concurrent.ExecutorService;
11 | import org.opendaylight.openflowplugin.api.openflow.md.core.HandshakeManager;
12 |
13 | /**
14 | * OF handshake context holder.
15 | */
16 | public interface HandshakeContext extends AutoCloseable {
17 |
18 | /**
19 | * Getter.
20 | * @return handshakeManager
21 | */
22 | HandshakeManager getHandshakeManager();
23 |
24 | /**
25 | * Getter.
26 | * @return handshake pool
27 | */
28 | ExecutorService getHandshakePool();
29 |
30 | @Override
31 | void close();
32 | }
33 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/connection/OutboundQueueProvider.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.connection;
10 |
11 | import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueue;
12 | import org.opendaylight.openflowjava.protocol.api.connection.OutboundQueueHandler;
13 |
14 | /**
15 | * Outbound queue provider.
16 | */
17 | public interface OutboundQueueProvider extends OutboundQueue, OutboundQueueHandler {
18 |
19 | }
20 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/MessageTranslator.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.device;
9 |
10 | /**
11 | * Message translator.
12 | *
13 | * @param input message
14 | * @param output message
15 | */
16 | public interface MessageTranslator {
17 |
18 | /**
19 | * Translates from input to output.
20 | * @param input input
21 | * @param deviceInfo node information
22 | * @param connectionDistinguisher connection distinguisher
23 | * @return message of output type
24 | */
25 | O translate(I input, DeviceInfo deviceInfo, Object connectionDistinguisher);
26 | }
27 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/RequestContextStack.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.device;
9 |
10 | import org.eclipse.jdt.annotation.Nullable;
11 |
12 | /**
13 | * Request context stack.
14 | */
15 | public interface RequestContextStack {
16 | /**
17 | * Method returns new request context for current request.
18 | * @return A request context, or null if one cannot be created.
19 | */
20 | @Nullable RequestContext createRequestContext();
21 | }
22 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/RequestFutureContext.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.device;
10 |
11 | import com.google.common.util.concurrent.ListenableFuture;
12 | import org.opendaylight.yangtools.yang.common.RpcResult;
13 |
14 | /**
15 | * Request context.
16 | * @param rpc result type
17 | */
18 | public interface RequestFutureContext {
19 | /**
20 | * Method returns future to be used for handling device requests.
21 | * @return rpc result
22 | */
23 | ListenableFuture> getFuture();
24 |
25 | void setResult(RpcResult result);
26 | }
27 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/TranslatorLibrary.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.device;
10 |
11 | import org.opendaylight.openflowplugin.api.openflow.md.core.TranslatorKey;
12 |
13 | public interface TranslatorLibrary {
14 |
15 | /**
16 | * Lookup translator.
17 | * @param key a key
18 | * @return translator
19 | */
20 | MessageTranslator lookupTranslator(TranslatorKey key);
21 | }
22 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/XidSequencer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.device;
9 |
10 | import org.opendaylight.yangtools.yang.common.Uint32;
11 |
12 | /**
13 | * Reserves unique XID for Device Messages.
14 | */
15 | public interface XidSequencer {
16 | /**
17 | * Method reserve unique XID for Device Message.
18 | * Attention: OFJava expect the message, otherwise OutboundQueue could stop working.
19 | *
20 | * @return Reserved XID
21 | */
22 | Uint32 reserveXidForDeviceMessage();
23 | }
24 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/exception/RequestQuotaExceededException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.device.exception;
10 |
11 | /**
12 | * Request quota exception.
13 | */
14 | public class RequestQuotaExceededException extends Exception {
15 | private static final long serialVersionUID = 1L;
16 | }
17 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/handlers/DeviceDisconnectedHandler.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.device.handlers;
10 |
11 | import org.opendaylight.openflowplugin.api.openflow.connection.ConnectionContext;
12 |
13 | /**
14 | * Represents handler for just disconnected device that will propagate device's
15 | * connection context. It is important for correct order in device disconnection chain.
16 | */
17 | public interface DeviceDisconnectedHandler {
18 |
19 | /**
20 | * Method is used to propagate information about closed connection with device.
21 | * It propagates connected device's connection context.
22 | */
23 | void onDeviceDisconnected(ConnectionContext connectionContext);
24 | }
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/handlers/DeviceRemovedHandler.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.device.handlers;
10 |
11 | import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo;
12 |
13 | /**
14 | * Represents handler for device that was disconnected but needs to be removed from it's manager.
15 | */
16 | public interface DeviceRemovedHandler {
17 |
18 | /**
19 | * Method is used to propagate information about device being removed from manager.
20 | */
21 | void onDeviceRemoved(DeviceInfo deviceInfo);
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/device/listener/OpenflowMessageListenerFacade.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.device.listener;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.connection.ConnectionAdapter.MessageListener;
11 |
12 | /**
13 | * Facade for openflow protocol listener.
14 | */
15 | public interface OpenflowMessageListenerFacade extends MessageListener {
16 | }
17 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ContextChainMastershipState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.lifecycle;
9 |
10 | public enum ContextChainMastershipState {
11 | /**
12 | * Device has role MASTER set.
13 | */
14 | MASTER_ON_DEVICE,
15 | /**
16 | * Initial submit ok.
17 | */
18 | INITIAL_SUBMIT,
19 | /**
20 | * Registration of RPC services is done.
21 | */
22 | RPC_REGISTRATION,
23 | /**
24 | * Check mastership.
25 | */
26 | CHECK
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ContextChainState.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.lifecycle;
9 |
10 | public enum ContextChainState {
11 | /**
12 | * Context chain is undefined.
13 | */
14 | UNDEFINED,
15 | /**
16 | * Context chain is working as MASTER.
17 | */
18 | WORKING_MASTER,
19 | /**
20 | * Context chain is working as SLAVE, initial gathering already done.
21 | */
22 | WORKING_SLAVE,
23 | /**
24 | * Context chain is closed.
25 | */
26 | CLOSED
27 | }
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ContextChainStateListener.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.lifecycle;
10 |
11 | /**
12 | * Listens to changes about context chain state.
13 | */
14 | public interface ContextChainStateListener {
15 |
16 | /**
17 | * Event triggered on context chain state change.
18 | * @param state context chain state
19 | */
20 | void onStateAcquired(ContextChainState state);
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/DeviceInitializationContext.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2019 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.lifecycle;
10 |
11 | public interface DeviceInitializationContext {
12 |
13 | /**
14 | * Initializes device information after master role acquistion.
15 | */
16 | void initializeDevice();
17 | }
18 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/MasterChecker.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.lifecycle;
9 |
10 | import java.util.List;
11 | import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo;
12 |
13 | /**
14 | * Internal OFP interface.
15 | */
16 | public interface MasterChecker {
17 |
18 | /**
19 | * Mastered devices.
20 | * @return list of mastered devices
21 | */
22 | List listOfMasteredDevices();
23 |
24 | /**
25 | * Check if any device is mastered by controller.
26 | * @return true if there is at least one device mastered by controller
27 | */
28 | boolean isAnyDeviceMastered();
29 |
30 | }
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ReconciliationFrameworkRegistrar.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.lifecycle;
9 |
10 | import org.opendaylight.openflowplugin.api.openflow.device.DeviceInfo;
11 |
12 | public interface ReconciliationFrameworkRegistrar {
13 | /**
14 | * Check if reconciliation framework is registered.
15 | * If not the event {@link OwnershipChangeListener#becomeMasterBeforeSubmittedDS(DeviceInfo)}
16 | * will not be triggered.
17 | * @return true if there exists any reconciliation framework registration
18 | */
19 | boolean isReconciliationFrameworkRegistered();
20 | }
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/lifecycle/ReconciliationFrameworkStep.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.lifecycle;
9 |
10 | public interface ReconciliationFrameworkStep {
11 | /**
12 | * Allow to continue after reconciliation framework callback success.
13 | * @since 0.5.0 Nitrogen
14 | * @see org.opendaylight.openflowplugin.api.openflow.mastership.MastershipChangeService
15 | * @see OwnershipChangeListener#isReconciliationFrameworkRegistered()
16 | */
17 | void continueInitializationAfterReconciliation();
18 | }
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/mastership/MastershipChangeException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.mastership;
9 |
10 | public class MastershipChangeException extends Exception {
11 |
12 | private static final long serialVersionUID = 998L;
13 |
14 | public MastershipChangeException(String message) {
15 | super(message);
16 | }
17 |
18 | public MastershipChangeException(String message, Throwable cause) {
19 | super(message, cause);
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/mastership/MastershipChangeRegistration.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.mastership;
9 |
10 | /**
11 | * API provided for all OFP application to use.
12 | * This is registration of service for mastership changes.
13 | * Service provides three events.
14 | *
15 | * - onBecomeOwner
16 | *
- onLoseOwnership
17 | *
18 | * @see MastershipChangeService
19 | * @since 0.5.0 Nitrogen
20 | */
21 | @Deprecated(forRemoval = true)
22 | public interface MastershipChangeRegistration extends AutoCloseable {
23 | }
24 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/mastership/ReconciliationFrameworkRegistration.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.mastership;
9 |
10 | /**
11 | * API provided for reconciliation framework registration.
12 | * Service provides three events.
13 | *
14 | * - onDevicePrepared
15 | *
- onDeviceDisconnected
16 | *
17 | * @see ReconciliationFrameworkEvent
18 | * @since 0.5.0 Nitrogen
19 | */
20 | @Deprecated(forRemoval = true)
21 | public interface ReconciliationFrameworkRegistration extends AutoCloseable {
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/md/core/ErrorHandler.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.md.core;
9 |
10 | public interface ErrorHandler {
11 |
12 | /**
13 | * Exception handler.
14 | *
15 | * @param throwable cause
16 | */
17 | void handleException(Throwable throwable);
18 | }
19 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/md/core/HandshakeManager.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.md.core;
9 |
10 | import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.HelloMessage;
11 | import org.opendaylight.yangtools.yang.common.Uint8;
12 |
13 | public interface HandshakeManager {
14 | /**
15 | * Return negotiated version.
16 | *
17 | * @return negotiated version.
18 | */
19 | Uint8 getVersion();
20 |
21 | /**
22 | * Process current handshake step.
23 | *
24 | * @param receivedHello message from device we need to act upon
25 | */
26 | void shake(HelloMessage receivedHello);
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/protocol/deserialization/MatchEntryDeserializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.protocol.deserialization;
10 |
11 | import io.netty.buffer.ByteBuf;
12 | import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
13 |
14 | public interface MatchEntryDeserializer {
15 |
16 | /**
17 | * Transforms byte match entry message into POJO/DTO (of type E).
18 | *
19 | * @param message message as bytes in ByteBuf
20 | * @param builder match builder
21 | */
22 | void deserializeEntry(ByteBuf message, MatchBuilder builder);
23 |
24 | }
25 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/protocol/serialization/MatchEntrySerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.protocol.serialization;
9 |
10 | import io.netty.buffer.ByteBuf;
11 | import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.Match;
12 |
13 | public interface MatchEntrySerializer {
14 |
15 | /**
16 | * Serialize this match entry if it is present in the match.
17 | *
18 | * @param match Openflow match
19 | * @param outBuffer output buffer
20 | */
21 | void serializeIfPresent(Match match, ByteBuf outBuffer);
22 | }
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/protocol/serialization/MatchEntrySerializerKey.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.protocol.serialization;
10 |
11 | /**
12 | * Marker interface - marks keys appropriate for match entry serializer registration.
13 | */
14 | public interface MatchEntrySerializerKey {
15 | }
16 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/registry/flow/FlowDescriptor.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.registry.flow;
10 |
11 | import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.FlowId;
12 | import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.TableKey;
13 |
14 | public interface FlowDescriptor {
15 |
16 | FlowId getFlowId();
17 |
18 | TableKey getTableKey();
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/registry/flow/FlowRegistryException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.registry.flow;
10 |
11 | /**
12 | * Created by Martin Bobak <mbobak@cisco.com> on 8.4.2015.
13 | */
14 | @Deprecated
15 | public class FlowRegistryException extends Exception {
16 | private static final long serialVersionUID = 7514092745206029217L;
17 |
18 | public FlowRegistryException(final String message) {
19 | super(message);
20 | }
21 |
22 | public FlowRegistryException(final String message, final Throwable cause) {
23 | super(message, cause);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/registry/flow/FlowRegistryKey.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.registry.flow;
9 |
10 | import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match;
11 | import org.opendaylight.yangtools.yang.common.Uint64;
12 |
13 | /**
14 | * Marker interface identifying flow stored in OFP local flow registry.
15 | * Created by Martin Bobak <mbobak@cisco.com> on 8.4.2015.
16 | */
17 | public interface FlowRegistryKey {
18 |
19 | short getTableId();
20 |
21 | int getPriority();
22 |
23 | Uint64 getCookie();
24 |
25 | Match getMatch();
26 | }
27 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/registry/meter/DeviceMeterRegistry.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.registry.meter;
10 |
11 | import org.opendaylight.openflowplugin.api.openflow.registry.CommonDeviceRegistry;
12 | import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.types.rev130918.MeterId;
13 |
14 | public interface DeviceMeterRegistry extends CommonDeviceRegistry {
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/role/RoleContext.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.role;
10 |
11 | import org.opendaylight.openflowplugin.api.openflow.OFPContext;
12 | import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
13 | import org.opendaylight.yang.gen.v1.urn.opendaylight.role.service.rev150727.SetRole;
14 |
15 | /**
16 | * Handles propagation of SLAVE and MASTER roles on connected devices.
17 | */
18 | public interface RoleContext extends OFPContext, RequestContextStack {
19 | /**
20 | * Sets role service rpc implementation.
21 | *
22 | * @param setRole the set role rpc
23 | */
24 | void setRoleRpc(SetRole setRole);
25 | }
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/role/RoleManager.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.role;
10 |
11 | import org.eclipse.jdt.annotation.NonNull;
12 | import org.opendaylight.openflowplugin.api.openflow.OFPManager;
13 | import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
14 |
15 | /**
16 | * Manages creation and termination of role contexts.
17 | * @see org.opendaylight.openflowplugin.api.openflow.role.RoleContext
18 | */
19 | public interface RoleManager extends OFPManager {
20 | /**
21 | * Create role context.
22 | *
23 | * @param deviceContext the device context
24 | * @return the role context
25 | */
26 | RoleContext createContext(@NonNull DeviceContext deviceContext);
27 | }
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/rpc/RpcContext.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.rpc;
9 |
10 | import org.opendaylight.openflowplugin.api.openflow.OFPContext;
11 | import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
12 |
13 | /**
14 | * This context is registered with MD-SAL as a routed RPC provider for the inventory node backed by this switch and
15 | * tracks the state of any user requests and how they map onto protocol requests. It uses
16 | * {@link org.opendaylight.openflowplugin.api.openflow.device.RequestContext} to perform requests.
17 | */
18 | public interface RpcContext extends RequestContextStack, OFPContext {
19 | // Just a composition interface
20 | }
21 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/rpc/RpcManager.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015, 2017 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.rpc;
10 |
11 | import org.eclipse.jdt.annotation.NonNull;
12 | import org.opendaylight.openflowplugin.api.openflow.OFPManager;
13 | import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
14 |
15 | /**
16 | * The RPC Manager will maintain an RPC Context for each online switch.
17 | */
18 | public interface RpcManager extends OFPManager {
19 |
20 | RpcContext createContext(@NonNull DeviceContext deviceContext);
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/statistics/MessageCountDumper.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.statistics;
9 |
10 | import java.util.List;
11 |
12 | /**
13 | * simple message counters dumper.
14 | */
15 | public interface MessageCountDumper {
16 |
17 | /**
18 | * List of counter items.
19 | * @return list of counter items
20 | */
21 | List dumpMessageCounts();
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/statistics/MessageObservatory.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.api.openflow.statistics;
9 |
10 | @Deprecated
11 | public interface MessageObservatory extends MessageSpy, MessageCountDumper {
12 |
13 | // just unifying iface
14 |
15 | }
16 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/statistics/StatisticsManager.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.statistics;
10 |
11 | import org.eclipse.jdt.annotation.NonNull;
12 | import org.opendaylight.openflowplugin.api.openflow.OFPManager;
13 | import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
14 |
15 | /**
16 | * Manages statistics contexts.
17 | */
18 | public interface StatisticsManager extends OFPManager {
19 | StatisticsContext createContext(@NonNull DeviceContext deviceContext,
20 | boolean useReconciliationFramework);
21 | }
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/statistics/compatibility/Delegator.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.statistics.compatibility;
10 |
11 | /**
12 | * Simple delegator pattern support.
13 | */
14 | public interface Delegator {
15 |
16 | /**
17 | * Setter.
18 | * @param delegate backend task executor
19 | */
20 | void setDelegate(D delegate);
21 | }
22 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/statistics/ofpspecific/EventIdentifier.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific;
10 |
11 | /**
12 | * Created by Martin Bobak <mbobak@cisco.com> on 29.5.2015.
13 | */
14 | public final class EventIdentifier {
15 |
16 | private final String eventName;
17 | private final String deviceId;
18 |
19 | public EventIdentifier(final String eventName, final String deviceId) {
20 | this.eventName = eventName;
21 | this.deviceId = deviceId;
22 | }
23 |
24 | public String getEventName() {
25 | return eventName;
26 | }
27 |
28 | public String getDeviceId() {
29 | return deviceId;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/statistics/ofpspecific/MessageIntelligenceAgency.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific;
10 |
11 | import java.util.List;
12 |
13 | public interface MessageIntelligenceAgency extends MessageSpy {
14 |
15 | List provideIntelligence();
16 |
17 | void resetStatistics();
18 | }
19 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/statistics/ofpspecific/StatisticsGatherer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.statistics.ofpspecific;
10 |
11 | import com.google.common.util.concurrent.ListenableFuture;
12 | import java.util.List;
13 | import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;
14 | import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.OfHeader;
15 | import org.opendaylight.yangtools.yang.common.RpcResult;
16 |
17 | public interface StatisticsGatherer {
18 | ListenableFuture>> getStatisticsOfType(EventIdentifier eventIdentifier, MultipartType type);
19 | }
20 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/java/org/opendaylight/openflowplugin/api/openflow/translator/TranslatorLibrarian.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.api.openflow.translator;
10 |
11 | import org.opendaylight.openflowplugin.api.openflow.device.TranslatorLibrary;
12 |
13 | public interface TranslatorLibrarian {
14 |
15 | /**
16 | * Method provides translator library held by Librarian.
17 | * @return translator library
18 | */
19 | TranslatorLibrary oook();
20 |
21 | /**
22 | * Method registers translator library for translating message objects.
23 | * @param translatorLibrary translator library
24 | */
25 | void setTranslatorLibrary(TranslatorLibrary translatorLibrary);
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-api/src/main/yang/recinciliation-result-state.yang:
--------------------------------------------------------------------------------
1 | module reconciliation-result-state {
2 | yang-version 1;
3 | namespace "urn:opendaylight:params:xml:ns:yang:openflowplugin:rf:state";
4 | prefix "rf-state";
5 |
6 | description
7 | "Reconciliation framework result state enumeration";
8 |
9 | revision "2017-07-13" {
10 | description
11 | "Initial proposal.";
12 | }
13 |
14 |
15 | typedef result-state {
16 | description "Reconciliation result state.";
17 | type enumeration {
18 | enum DO_NOTHING {
19 | description "Reconciliation wasn't successful but not important.";
20 | }
21 | enum DISCONNECT {
22 | description "Reconciliation wasn't successful but is mandatory, disconnect device.";
23 | }
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/DiagStatusProvider.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl;
9 |
10 | import org.opendaylight.infrautils.diagstatus.ServiceState;
11 |
12 | public interface DiagStatusProvider {
13 |
14 | void reportStatus(ServiceState serviceState);
15 |
16 | void reportStatus(ServiceState serviceState, Throwable throwable);
17 |
18 | void reportStatus(ServiceState serviceState, String description);
19 | }
20 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/device/history/FlowGroupInfoHistoryAppender.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2020 PANTHEON.tech, s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.device.history;
9 |
10 | import com.google.common.annotations.Beta;
11 | import org.eclipse.jdt.annotation.NonNullByDefault;
12 | import org.opendaylight.openflowplugin.api.openflow.FlowGroupInfo;
13 |
14 | @Beta
15 | @NonNullByDefault
16 | public interface FlowGroupInfoHistoryAppender {
17 |
18 | void appendFlowGroupInfo(FlowGroupInfo info);
19 | }
20 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/match/AbstractUint16EntrySerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2019 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.match;
9 |
10 | import io.netty.buffer.ByteBuf;
11 | import org.opendaylight.yangtools.yang.common.Uint16;
12 |
13 | public abstract class AbstractUint16EntrySerializer extends AbstractPrimitiveEntrySerializer {
14 | protected AbstractUint16EntrySerializer(final int oxmClassCode, final int oxmFieldCode) {
15 | super(oxmClassCode, oxmFieldCode, Short.BYTES);
16 | }
17 |
18 | @Override
19 | protected final void serializeEntry(final Uint16 entry, final ByteBuf outBuffer) {
20 | outBuffer.writeShort(entry.shortValue());
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/match/AbstractUint32EntrySerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2019 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.match;
9 |
10 | import io.netty.buffer.ByteBuf;
11 | import org.opendaylight.yangtools.yang.common.Uint32;
12 |
13 | public abstract class AbstractUint32EntrySerializer extends AbstractPrimitiveEntrySerializer {
14 | protected AbstractUint32EntrySerializer(final int oxmClassCode, final int oxmFieldCode) {
15 | super(oxmClassCode, oxmFieldCode, Integer.BYTES);
16 | }
17 |
18 | @Override
19 | protected final void serializeEntry(final Uint32 entry, final ByteBuf outBuffer) {
20 | outBuffer.writeInt(entry.intValue());
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/match/AbstractUint8EntrySerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2019 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.match;
9 |
10 | import io.netty.buffer.ByteBuf;
11 | import org.opendaylight.yangtools.yang.common.Uint8;
12 |
13 | public abstract class AbstractUint8EntrySerializer extends AbstractPrimitiveEntrySerializer {
14 | protected AbstractUint8EntrySerializer(final int oxmClassCode, final int oxmFieldCode) {
15 | super(oxmClassCode, oxmFieldCode, Byte.BYTES);
16 | }
17 |
18 | @Override
19 | protected final void serializeEntry(final Uint8 entry, final ByteBuf outBuffer) {
20 | outBuffer.writeByte(entry.byteValue());
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/MultipartRequestDescSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart;
10 |
11 | import io.netty.buffer.ByteBuf;
12 | import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
13 | import org.opendaylight.yang.gen.v1.urn.opendaylight.multipart.types.rev170112.multipart.request.MultipartRequestBody;
14 |
15 | public class MultipartRequestDescSerializer implements OFSerializer {
16 |
17 | @Override
18 | public void serialize(final MultipartRequestBody multipartRequestBody, final ByteBuf byteBuf) {
19 | // NOOP
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/MultipartRequestFlowTableStatsSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart;
10 |
11 | import io.netty.buffer.ByteBuf;
12 | import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
13 | import org.opendaylight.yang.gen.v1.urn.opendaylight.multipart.types.rev170112.multipart.request.MultipartRequestBody;
14 |
15 | public class MultipartRequestFlowTableStatsSerializer implements OFSerializer {
16 |
17 | @Override
18 | public void serialize(final MultipartRequestBody multipartRequestBody, final ByteBuf byteBuf) {
19 | // NOOP
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/MultipartRequestGroupDescSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart;
10 |
11 | import io.netty.buffer.ByteBuf;
12 | import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
13 | import org.opendaylight.yang.gen.v1.urn.opendaylight.multipart.types.rev170112.multipart.request.MultipartRequestBody;
14 |
15 | public class MultipartRequestGroupDescSerializer implements OFSerializer {
16 |
17 | @Override
18 | public void serialize(final MultipartRequestBody multipartRequestBody, final ByteBuf byteBuf) {
19 | // NOOP
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/MultipartRequestGroupFeaturesSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart;
10 |
11 | import io.netty.buffer.ByteBuf;
12 | import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
13 | import org.opendaylight.yang.gen.v1.urn.opendaylight.multipart.types.rev170112.multipart.request.MultipartRequestBody;
14 |
15 | public class MultipartRequestGroupFeaturesSerializer implements OFSerializer {
16 |
17 | @Override
18 | public void serialize(final MultipartRequestBody multipartRequestBody, final ByteBuf byteBuf) {
19 | // NOOP
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/MultipartRequestMeterFeaturesSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart;
10 |
11 | import io.netty.buffer.ByteBuf;
12 | import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
13 | import org.opendaylight.yang.gen.v1.urn.opendaylight.multipart.types.rev170112.multipart.request.MultipartRequestBody;
14 |
15 | public class MultipartRequestMeterFeaturesSerializer implements OFSerializer {
16 |
17 | @Override
18 | public void serialize(final MultipartRequestBody multipartRequestBody, final ByteBuf byteBuf) {
19 | // NOOP
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/MultipartRequestPortDescSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart;
10 |
11 | import io.netty.buffer.ByteBuf;
12 | import org.opendaylight.openflowjava.protocol.api.extensibility.OFSerializer;
13 | import org.opendaylight.yang.gen.v1.urn.opendaylight.multipart.types.rev170112.multipart.request.MultipartRequestBody;
14 |
15 | public class MultipartRequestPortDescSerializer implements OFSerializer {
16 |
17 | @Override
18 | public void serialize(final MultipartRequestBody multipartRequestBody, final ByteBuf byteBuf) {
19 | // NOOP
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/ArpOpMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class ArpOpMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.ARP_OP;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Short.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/ArpSpaMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class ArpSpaMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.ARP_SPA;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Integer.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/ArpTpaMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class ArpTpaMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.ARP_TPA;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Integer.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/EthTypeMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class EthTypeMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.ETH_TYPE;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Short.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/Icmpv4CodeMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class Icmpv4CodeMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.ICMPV4_CODE;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Byte.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/Icmpv4TypeMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class Icmpv4TypeMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.ICMPV4_TYPE;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Byte.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/Icmpv6CodeMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class Icmpv6CodeMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.ICMPV6_CODE;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Byte.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/Icmpv6TypeMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class Icmpv6TypeMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.ICMPV6_TYPE;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Byte.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/InPhyPortMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class InPhyPortMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.IN_PHY_PORT;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Integer.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/InPortMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class InPortMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.IN_PORT;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Integer.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/IpDscpMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class IpDscpMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.IP_DSCP;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Byte.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/IpEcnMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class IpEcnMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.IP_ECN;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Byte.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/IpProtoMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class IpProtoMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.IP_PROTO;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Byte.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/Ipv4DstMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class Ipv4DstMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.IPV4_DST;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Integer.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/Ipv4SrcMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class Ipv4SrcMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.IPV4_SRC;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Integer.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/Ipv6ExtHdrMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class Ipv6ExtHdrMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.IPV6_EXTHDR;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Short.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/MetadataMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class MetadataMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.METADATA;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Long.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/MplsBosMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class MplsBosMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.MPLS_BOS;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Byte.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/MplsTcMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class MplsTcMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.MPLS_TC;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Byte.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/SctpDstMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class SctpDstMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.SCTP_DST;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Short.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/SctpSrcMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class SctpSrcMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.SCTP_SRC;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Short.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/TcpDstMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class TcpDstMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.TCP_DST;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Short.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/TcpSrcMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class TcpSrcMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.TCP_SRC;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Short.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/TunnelIdMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class TunnelIdMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.TUNNEL_ID;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Long.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/UdpDstMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class UdpDstMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.UDP_DST;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Short.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/UdpSrcMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class UdpSrcMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.UDP_SRC;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Short.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/VlanPcpMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class VlanPcpMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.VLAN_PCP;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Byte.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/protocol/serialization/multipart/tablefeatures/matchfield/VlanVidMatchFieldSerializer.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2017 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.protocol.serialization.multipart.tablefeatures.matchfield;
9 |
10 | import org.opendaylight.openflowjava.protocol.api.util.OxmMatchConstants;
11 |
12 | public class VlanVidMatchFieldSerializer extends AbstractMatchFieldSerializer {
13 | @Override
14 | protected int getOxmClassCode() {
15 | return OxmMatchConstants.OPENFLOW_BASIC_CLASS;
16 | }
17 |
18 | @Override
19 | protected int getOxmFieldCode() {
20 | return OxmMatchConstants.VLAN_VID;
21 | }
22 |
23 | @Override
24 | protected int getValueLength() {
25 | return Short.BYTES;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/role/RoleChangeException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.role;
9 |
10 | public class RoleChangeException extends Exception {
11 | private static final long serialVersionUID = -615991366447313972L;
12 |
13 | /**
14 | * Default constructor.
15 | *
16 | * @param message - message
17 | */
18 | public RoleChangeException(String message) {
19 | super(message);
20 | }
21 |
22 | /**
23 | * Constructor.
24 | *
25 | * @param message - message
26 | * @param cause - cause
27 | */
28 | public RoleChangeException(String message, Throwable cause) {
29 | super(message, cause);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/batch/BatchStepType.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.impl.services.batch;
10 |
11 | /**
12 | * Batch step types - holding combinations of target object type and action type.
13 | */
14 | public enum BatchStepType {
15 |
16 | /** Flow add operation. */FLOW_ADD,
17 | /** Flow remove operation. */FLOW_REMOVE,
18 | /** Flow update operation. */FLOW_UPDATE,
19 |
20 | /** Group add operation. */GROUP_ADD,
21 | /** Group remove operation. */GROUP_REMOVE,
22 | /** Group update operation. */GROUP_UPDATE,
23 |
24 | /** Meter add operation. */METER_ADD,
25 | /** Meter remove operation. */METER_REMOVE,
26 | /** Meter update operation. */METER_UPDATE
27 | }
28 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/sal/AbstractDeviceRpc.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.services.sal;
9 |
10 | import static java.util.Objects.requireNonNull;
11 |
12 | import org.eclipse.jdt.annotation.NonNull;
13 | import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
14 |
15 | abstract class AbstractDeviceRpc {
16 | final @NonNull DeviceContext deviceContext;
17 |
18 | AbstractDeviceRpc(final DeviceContext deviceContext) {
19 | this.deviceContext = requireNonNull(deviceContext);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/services/util/ServiceException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.services.util;
9 |
10 | /**
11 | * Exception thrown by {@link org.opendaylight.openflowplugin.impl.services.AbstractService#buildRequest(
12 | * org.opendaylight.openflowplugin.api.openflow.device.Xid, Object)}.
13 | */
14 | public class ServiceException extends Exception {
15 | private static final long serialVersionUID = -1808885680674101608L;
16 |
17 | public ServiceException(final Throwable cause) {
18 | super(cause);
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/ofpspecific/MessageIntelligenceAgencyMXBean.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.impl.statistics.ofpspecific;
9 |
10 | import java.util.List;
11 | import javax.management.MXBean;
12 |
13 | /**
14 | * Created by Martin Bobak <mbobak@cisco.com> on 11.5.2015.
15 | */
16 | @MXBean
17 | public interface MessageIntelligenceAgencyMXBean {
18 |
19 | List provideIntelligence();
20 | }
21 |
--------------------------------------------------------------------------------
/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/ConvertorRegistrator.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
9 |
10 | import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common.Convertor;
11 | import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common.ConvertorData;
12 | import org.opendaylight.yangtools.yang.common.Uint8;
13 |
14 | public interface ConvertorRegistrator {
15 | /**
16 | * Register convertor.
17 | *
18 | * @param convertor the convertor
19 | */
20 | ConvertorManager registerConvertor(Uint8 version, Convertor, ?, ? extends ConvertorData> convertor);
21 | }
22 |
--------------------------------------------------------------------------------
/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/OFApprovedExperimenterIds.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;
9 |
10 | import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.ExperimenterId;
11 | import org.opendaylight.yangtools.yang.common.Uint32;
12 |
13 | /**
14 | * Created by Anil Vishnoi (avishnoi@Brocade.com) on 8/2/16.
15 | */
16 | public final class OFApprovedExperimenterIds {
17 | public static final ExperimenterId MATCH_TCP_FLAGS_EXP_ID = new ExperimenterId(Uint32.valueOf(1330529792));
18 |
19 | private OFApprovedExperimenterIds() {
20 | // Hidden on purpose
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/common/ConvertReactorConvertor.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common;
10 |
11 | import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor;
12 |
13 | /**
14 | * Converts OpenflowJava to MDSal model and vice versa.
15 | *
16 | * @param type of source
17 | * @param type of result
18 | */
19 | public interface ConvertReactorConvertor {
20 |
21 | /**
22 | * Converts source to result.
23 | *
24 | * @param source source
25 | * @param convertorExecutor the convertor executor
26 | * @return converted source
27 | */
28 | TO convert(FROM source, ConvertorExecutor convertorExecutor);
29 | }
30 |
--------------------------------------------------------------------------------
/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/common/ResultInjector.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common;
9 |
10 | /**
11 | * Injecting match object into chosen target.
12 | *
13 | * @param result to inject (e.g.: OF-API match)
14 | * @param target of injection
15 | */
16 | public interface ResultInjector {
17 |
18 | /**
19 | * Inject result into target.
20 | *
21 | * @param result result
22 | * @param target target
23 | */
24 | void inject(R result, T target);
25 | }
26 |
--------------------------------------------------------------------------------
/openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/data/VersionConvertorData.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data;
9 |
10 | import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common.ConvertorData;
11 | import org.opendaylight.yangtools.yang.common.Uint8;
12 |
13 | /**
14 | * Convertor data implementation containing only Openflow version.
15 | */
16 | public class VersionConvertorData extends ConvertorData {
17 | /**
18 | * Instantiates a new Version convertor data.
19 | *
20 | * @param version the version
21 | */
22 | public VersionConvertorData(final Uint8 version) {
23 | super(version);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/openflowplugin/src/test/resources/log4j.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/DataTreeChangeListenerRegistrationHolder.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.learningswitch;
9 |
10 | import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
11 | import org.opendaylight.yangtools.concepts.Registration;
12 |
13 | /**
14 | * Holder for {@link DataTreeChangeListener} registration.
15 | */
16 | public interface DataTreeChangeListenerRegistrationHolder {
17 | /**
18 | * Returns the DataTreeChangeListenerRegistration.
19 | */
20 | Registration getDataTreeChangeListenerRegistration();
21 | }
22 |
--------------------------------------------------------------------------------
/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/FlowCommitWrapper.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.learningswitch;
9 |
10 | import com.google.common.util.concurrent.ListenableFuture;
11 | import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.table.Flow;
12 | import org.opendaylight.yangtools.binding.DataObjectIdentifier;
13 |
14 | public interface FlowCommitWrapper {
15 | /**
16 | * Starts and commits data change transaction which modifies provided flow path with supplied body.
17 | *
18 | * @param flowPath the flow path
19 | * @param flowBody the flow body
20 | * @return transaction commit
21 | */
22 | ListenableFuture> writeFlowToConfig(DataObjectIdentifier flowPath, Flow flowBody);
23 | }
24 |
--------------------------------------------------------------------------------
/samples/learning-switch/src/main/java/org/opendaylight/openflowplugin/learningswitch/LearningSwitchHandler.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.learningswitch;
9 |
10 | import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.Table;
11 | import org.opendaylight.yangtools.binding.DataObjectIdentifier;
12 |
13 | public interface LearningSwitchHandler {
14 | /**
15 | * Invoked when a switch appears.
16 | *
17 | * @param tablePath the table path
18 | */
19 | void onSwitchAppeared(DataObjectIdentifier tablePath);
20 | }
21 |
--------------------------------------------------------------------------------
/samples/pom.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 4.0.0
5 |
6 | org.opendaylight.odlparent
7 | odlparent-lite
8 | 14.1.3
9 |
10 |
11 |
12 | org.opendaylight.openflowplugin
13 | openflowplugin-samples-aggregator
14 | 0.20.2-SNAPSHOT
15 | pom
16 |
17 |
18 | true
19 | true
20 |
21 |
22 |
23 | learning-switch
24 | sample-consumer
25 | sample-bundles
26 | simple-client
27 |
28 |
29 |
--------------------------------------------------------------------------------
/samples/simple-client/src/main/java/org/opendaylight/openflowjava/protocol/impl/clients/ClientEvent.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Pantheon Technologies s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 |
9 | package org.opendaylight.openflowjava.protocol.impl.clients;
10 |
11 | /**
12 | * Uniting interface used for scenario support.
13 | *
14 | * @author michal.polkorab
15 | */
16 | public interface ClientEvent {
17 |
18 | /**
19 | * Common method for triggering events.
20 | *
21 | * @return true if event executed successfully
22 | */
23 | boolean eventExecuted();
24 | }
25 |
--------------------------------------------------------------------------------
/samples/simple-client/src/main/resources/selfSignedController:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/samples/simple-client/src/main/resources/selfSignedController
--------------------------------------------------------------------------------
/samples/simple-client/src/main/resources/selfSignedSwitch:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/samples/simple-client/src/main/resources/selfSignedSwitch
--------------------------------------------------------------------------------
/srm/api/src/main/java/org/opendaylight/serviceutils/srm/RecoverableListener.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2018 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.serviceutils.srm;
9 |
10 | public interface RecoverableListener {
11 | /**
12 | * register a recoverable listener.
13 | */
14 | void registerListener();
15 |
16 | /**
17 | * Deregister a recoverable listener.
18 | */
19 | void deregisterListener();
20 | }
--------------------------------------------------------------------------------
/srm/api/src/main/java/org/opendaylight/serviceutils/srm/ServiceRecoveryInterface.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2018 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.serviceutils.srm;
9 |
10 | public interface ServiceRecoveryInterface {
11 | /**
12 | * Initiates recovery mechanism for a particular interface-manager entity.
13 | *
14 | * @param entityId
15 | * The unique identifier for the service instance.
16 | */
17 | void recoverService(String entityId);
18 | }
--------------------------------------------------------------------------------
/srm/api/src/main/java/org/opendaylight/serviceutils/srm/ServiceRecoveryRegistry.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2018 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.serviceutils.srm;
9 |
10 | import java.util.Queue;
11 |
12 | public interface ServiceRecoveryRegistry {
13 |
14 | void registerServiceRecoveryRegistry(String entityName,
15 | ServiceRecoveryInterface serviceRecoveryHandler);
16 |
17 | void addRecoverableListener(String serviceName, RecoverableListener recoverableListener);
18 |
19 | void removeRecoverableListener(String serviceName, RecoverableListener recoverableListener);
20 |
21 | Queue getRecoverableListeners(String serviceName);
22 |
23 | ServiceRecoveryInterface getRegisteredServiceRecoveryHandler(String entityName);
24 | }
--------------------------------------------------------------------------------
/test-common/src/main/java/org/opendaylight/openflowplugin/testcommon/DropTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.testcommon;
9 |
10 | public interface DropTest {
11 |
12 | DropTestStats getStats();
13 |
14 | void clearStats();
15 |
16 | boolean start();
17 |
18 | boolean stop();
19 | }
20 |
--------------------------------------------------------------------------------
/test-common/src/main/java/org/opendaylight/openflowplugin/testcommon/DropTestCommiter.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.testcommon;
9 |
10 | public interface DropTestCommiter extends DropTest {
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/test-common/src/main/java/org/opendaylight/openflowplugin/testcommon/DropTestRpcSender.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2024 PANTHEON.tech, s.r.o. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.testcommon;
9 |
10 | public interface DropTestRpcSender extends DropTest {
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/test-provider/src/main/java/org/opendaylight/openflowplugin/test/OpenflowpluginTestActivator.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
3 | *
4 | * This program and the accompanying materials are made available under the
5 | * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 | * and is available at http://www.eclipse.org/legal/epl-v10.html
7 | */
8 | package org.opendaylight.openflowplugin.test;
9 |
10 | final class OpenflowpluginTestActivator {
11 | static final String NODE_ID = "foo:node:1";
12 |
13 | private OpenflowpluginTestActivator() {
14 | // Hidden on purpose
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/test-scripts/README:
--------------------------------------------------------------------------------
1 | Wiki documentation
2 | ==================
3 |
4 | https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin::Python_test_scripts
5 |
6 |
7 | How to Run
8 | ==========
9 |
10 | note:
11 | all script have help which describe all parameters
12 |
13 | 1. > python odl_crud_tests.py --odlhost 172.16.4.212 --fxmls 1,2
14 | This runs tests f1 and f2 against ODL running on the specified IP.
15 |
16 | To run with all XMLs, omit the '--xmls' option.
17 |
18 | For more options, type 'sudo python odl_crud_tests.py --help'
19 |
20 | 3. > src has to be in PYTHONPATH so you are able to run sudo PYTHONPATH=src stress_test python2.6 stress_test.py
21 |
--------------------------------------------------------------------------------
/test-scripts/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/test-scripts/__init__.py
--------------------------------------------------------------------------------
/test-scripts/action-keywords.csv:
--------------------------------------------------------------------------------
1 | dec-nw-ttl;dec_ttl
2 | dec-mpls-ttl;dec_mpls_ttl
3 | drop-action;drop
4 |
--------------------------------------------------------------------------------
/test-scripts/crud/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/test-scripts/crud/__init__.py
--------------------------------------------------------------------------------
/test-scripts/exceptions/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/test-scripts/exceptions/__init__.py
--------------------------------------------------------------------------------
/test-scripts/exceptions/odl_exceptions.py:
--------------------------------------------------------------------------------
1 | '''
2 | Created on Jan 24, 2014
3 |
4 | @author: vdemcak
5 | '''
6 |
7 | class OdlValidationException(Exception):
8 | def __init__(self, *in_args):
9 | # *in_args is used to get a list of the parameters passed in
10 | self.args = [a for a in in_args]
--------------------------------------------------------------------------------
/test-scripts/ignore-keywords.csv:
--------------------------------------------------------------------------------
1 | n_packets;n_packets
2 | n_bytes;n_bytes
3 | arp;arp
4 | duration;duration
5 | barrier;barrier
6 | strict;strict
7 | flow-name;flow-name
8 | flags;flags
9 | id;id
10 | cookie_mask;cookie_mask
11 | dl_type;dl_type
12 | ip;ip
13 | installHw;installHw
14 |
--------------------------------------------------------------------------------
/test-scripts/keywords.csv:
--------------------------------------------------------------------------------
1 | cookie;cookie
2 | duration;duration
3 | exit;exit
4 | idle-timeout;idle_timeout
5 | in_port;in_port
6 | instructions;instructions
7 | hard-timeout;hard_timeout
8 | out_port;out_port
9 | match;matches
10 | n_packets;n_packets
11 | n_bytes;n_bytes
12 | priority;priority
13 | reg;reg
14 | table;table
15 | table_id;table
16 | meter-id;meter
17 | group-id;group
18 |
--------------------------------------------------------------------------------
/test-scripts/match-keywords.csv:
--------------------------------------------------------------------------------
1 | arp-op;arp_op
2 | arp-source-transport-address;arp_spa
3 | arp-target-transport-address;arp_tpa
4 | arp-source-hardware-address;arp_sha
5 | arp-target-hardware-address;arp_tha
6 | ethernet-source;dl_src
7 | ethernet-destination;dl_dst
8 | ethernet-type;dl_type
9 | icmpv4-type;icmp_type
10 | icmpv4-code;icmp_code
11 | icmpv6-type;icmp_type
12 | icmpv6-code;icmp_code
13 | in-port;in_port
14 | in-phy-port;in_phy_port
15 | ip-dscp;nw_tos
16 | ip-ecn;nw_ecn
17 | ip-protocol;nw_proto
18 | ipv4-source;nw_src
19 | ipv4-destination;nw_dst
20 | ipv6-source;ipv6_src
21 | ipv6-destination;ipv6_dst
22 | ipv6-flabel;ipv6_label
23 | metadata;metadata
24 | mpls-label;mpls_label
25 | mpls-bos;mpls_bos
26 | mpls-tc;mpls_tc
27 | sctp-destination-port;tp_dst
28 | sctp-source-port;tp_src
29 | tcp-destination-port;tp_dst
30 | tcp-source-port;tp_src
31 | tunnel-id;tun_id
32 | udp-destination-port;tp_dst
33 | udp-source-port;tp_src
34 | vlan-id;dl_vlan
35 | vlan-pcp;dl_vlan_pcp
36 |
--------------------------------------------------------------------------------
/test-scripts/openvswitch/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/test-scripts/openvswitch/__init__.py
--------------------------------------------------------------------------------
/test-scripts/openvswitch/convertor_tools.py:
--------------------------------------------------------------------------------
1 | '''
2 | Created on Jan 24, 2014
3 |
4 | @author: vdemcak
5 | '''
6 |
7 |
8 | class ConvertorTools():
9 | """
10 | Tool class contains static conversion method
11 | for the value conversions
12 | """
13 | CONVERTORS = {
14 | 'cookie': hex,
15 | 'metadata': hex
16 | }
17 |
18 | @staticmethod
19 | def base_tag_values_conversion(key, value):
20 | """
21 | Check a need to conversion and convert if need
22 | """
23 | if value is None : return ''
24 | else:
25 | convertor = ConvertorTools.CONVERTORS.get(key, None)
26 | if convertor is None : return value
27 | else :
28 | return convertor(int(value))
--------------------------------------------------------------------------------
/test-scripts/openvswitch/testclass_templates.py:
--------------------------------------------------------------------------------
1 | class TestClassAdd():
2 | def inc_flow(self, flow_id, cookie_id):
3 | raise NotImplementedError("inc_flow is not implemented")
4 |
5 | def inc_error(self):
6 | raise NotImplementedError("inc_error is not implemented")
7 |
8 | class TestClassRemove():
9 | def delete_flow_from_map(self, flow_id, cookie_id):
10 | raise NotImplementedError("inc_flow is not implemented")
11 |
12 |
--------------------------------------------------------------------------------
/test-scripts/tools/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/opendaylight/openflowplugin/7bf6a209336bc6212552b8012571d471b0f5b9cb/test-scripts/tools/__init__.py
--------------------------------------------------------------------------------
/test-scripts/tox.ini:
--------------------------------------------------------------------------------
1 | [tox]
2 | envlist = pep8
3 | skipsdist = true
4 |
5 | [testenv:pep8]
6 | deps = flake8
7 | commands = flake8
8 |
9 | [flake8]
10 | max-line-length = 120
11 |
12 |
13 |
--------------------------------------------------------------------------------
/test-scripts/xmls/f19.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | false
4 | FooXf19
5 | 142
6 | 255
7 | 19
8 | 2
9 | 1
10 | 1200
11 | 3400
12 | false
13 |
14 |
15 | 0
16 |
17 |
18 | 0
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | 12345
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/test-scripts/xmls/f20.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | false
4 | FooXf20
5 | 143
6 | 255
7 | 20
8 | 2
9 | 2
10 | 1200
11 | 3400
12 | false
13 |
14 |
15 | 0
16 |
17 |
18 | 0
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | 12345
27 | 1234578
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/test-scripts/xmls/f24.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | false
4 | FooXf24
5 | 147
6 | 255
7 | 24
8 | 2
9 | 2
10 | 1200
11 | 3400
12 | false
13 |
14 |
15 | 0
16 |
17 |
18 | 0
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | 2591
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/test-scripts/xmls/f48.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | false
4 |
5 |
6 | 0
7 |
8 | 2
9 |
10 |
11 |
12 | 2
13 | 171
14 | 10
15 | 10
16 | false
17 | 2
18 |
19 |
20 | 0xf7d120c
21 | 10668
22 |
23 |
24 | 12
25 | FlowModFlags [_cHECKOVERLAP=false, _rESETCOUNTS=false, _nOPKTCOUNTS=false, _nOBYTCOUNTS=false, _sENDFLOWREM=false]
26 | 10
27 | 34
28 | FooXf48
29 | 2
30 | false
31 |
32 |
--------------------------------------------------------------------------------
/test-scripts/xmls/g3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | group-indirect
4 |
5 |
6 |
7 |
8 | 0
9 |
10 | 12
11 | 14
12 | 1234
13 |
14 |
15 | false
16 | Foo
17 | 130
18 |
19 |
--------------------------------------------------------------------------------
/test-scripts/xmls/m1.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | abcd
4 | meter-burst
5 |
6 |
7 | 444
8 | 0
9 | 234
10 | 5
11 | 12
12 | 1
13 |
14 | ofpmbt-dscp-remark
15 |
16 |
17 |
18 | 14
19 | Foo
20 |
21 |
--------------------------------------------------------------------------------
/test-scripts/xmls/m2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | abcd
4 | meter-burst
5 |
6 |
7 | 444
8 | 0
9 | 234
10 | 5
11 | 12
12 | 1
13 |
14 | ofpmbt-dscp-remark
15 |
16 |
17 |
18 | 14
19 | Foo
20 |
21 |
--------------------------------------------------------------------------------
/test-scripts/xmls/m3.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | abcd
4 | meter-burst
5 |
6 |
7 | 444
8 | 0
9 | 234
10 | 5
11 | 12
12 | 1
13 |
14 | ofpmbt-dscp-remark
15 |
16 |
17 |
18 | 14
19 | Foo
20 |
21 |
--------------------------------------------------------------------------------
/tox.ini:
--------------------------------------------------------------------------------
1 | [tox]
2 | minversion = 1.6.0
3 | envlist = docs
4 | skipsdist = true
5 |
6 | [testenv:docs]
7 | deps = -rdocs/requirements.txt
8 | commands = sphinx-build -W -n -b html -d {envtmpdir}/doctrees ./docs/ {envtmpdir}/html
9 |
--------------------------------------------------------------------------------
/vagrant/mininet-2.1.0-of-1.3/.vagrant/machines/default/virtualbox/action_provision:
--------------------------------------------------------------------------------
1 | 1386330537
--------------------------------------------------------------------------------
/vagrant/mininet-2.1.0-of-1.3/.vagrant/machines/default/virtualbox/action_set_name:
--------------------------------------------------------------------------------
1 | 1386330537
--------------------------------------------------------------------------------
/vagrant/mininet-2.1.0-of-1.3/.vagrant/machines/default/virtualbox/id:
--------------------------------------------------------------------------------
1 | 8e549062-d345-4312-9ddd-20c6cbea79d4
--------------------------------------------------------------------------------
/vagrant/mininet-2.1.0-of-1.3/bootstrap.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | #apt-get update
4 | apt-get install -y mininet
5 | cd /;patch -p0 < /vagrant/node.py.patch;cd -
6 |
7 |
--------------------------------------------------------------------------------