HostTracker Bundle Separation 66/466/6
authorKalvin Hom <kahom@cisco.com>
Wed, 12 Jun 2013 16:56:03 +0000 (09:56 -0700)
committerKalvin Hom <kahom@cisco.com>
Wed, 12 Jun 2013 18:46:14 +0000 (11:46 -0700)
commitc12131df07f248f2e2192b200bf9b6149163d484
tree36ddb2907f0858a743f07085dfc67c60e5ff7934
parent8398f3adb544427642694be13abe9c3bc1a4e192
HostTracker Bundle Separation

Moved the new HostTracker into
hostracker_new bundles.

Added exclusion to bin.xml so it doesn't
get assembled into distribution.

Added original hosttracker back.

Goal is to allow collaboration and
incremental check-ins for this
module without breaking anything else.

Original information from Rob Adams:
    Author: Rob Adams <rob.adams@bigswitch.com>
    Date:   Wed Jun 5 14:58:02 2013 -0700

    Initial port of device manager to cisco controller.  Currently capable
    of tracking devices but still a long list of TODOs:
    - No VLAN support - Ethernet frame parser can't parse VLAN tags and
      would be a bit of work to add it since current code can't handle
      anything but fixed-format header field which doesn't cover 802.1Q
    - No shared framework for asynchronous tasks.  For now device manager
      just allocates its own scheduled thread pool but a shared thread
      pool would be much better.
    - No clustering support in this code.  There is code that uses an
      eventually-consistent data store to support this but it's commented
      out since this is not available in daylight.  It would be possible
      to port this to the consistent store but this would lose valuable
      semantics and a component in the core should handle eventual
      consistency.
    - No web API support.  Would need to write a new implementation of the
      API; shouldn't be too hard presumably
    - Debug counters not ported
    - No mechanism for documenting log messages.  This doesn't exist in
      ODL.
    - DHCP parsing not supported; disable pulling hostname from DHCP.
    - Node/Port IDs are derived from Object and have no useful semantics.
      Device manager needs them to be comparable in order to get
      attachment points correct and consistent in all cases.  At the
      moment it just blindly casts them
    - Topology module doesn't implement the needed semantics.  First need
      to port net-virt-platform topology code, but there are impedance
      mismatches in the APIs to resolve first
    - Need to merge host tracker and device manager APIs to a new unified
      API and port all existing code to the new API, or adopt the device
      manager API.
    - Need to replace ARP handler to just handle ARPs and not be
      responsible for trying to discover devices
    - Unit tests need to be ported as well; currently commented out

Change-Id: If65e6582599a9c6fafaabfeb4b93b1d931965ab1
Signed-off-by: Kalvin Hom <kahom@cisco.com>
54 files changed:
opendaylight/distribution/opendaylight/pom.xml
opendaylight/distribution/opendaylight/src/assemble/bin.xml
opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IfHostListener.java
opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IfIptoHost.java
opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/IfNewHostNotify.java
opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/hostAware/HostNodeConnector.java
opendaylight/hosttracker/api/src/main/java/org/opendaylight/controller/hosttracker/hostAware/IHostFinder.java
opendaylight/hosttracker/api/src/test/java/org/opendaylight/controller/hosttracker/hostAware/HostNodeConnectorTest.java
opendaylight/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/Activator.java
opendaylight/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/HostTracker.java
opendaylight/hosttracker/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/HostTrackerCallable.java
opendaylight/hosttracker/implementation/src/test/java/org/opendaylight/controller/hosttracker/internal/HostTrackerTest.java
opendaylight/hosttracker/integrationtest/src/test/java/org/opendaylight/controller/hosttracker/internal/HostTrackerIT.java
opendaylight/hosttracker_new/api/pom.xml [new file with mode: 0644]
opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/Entity.java [new file with mode: 0644]
opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IDevice.java [new file with mode: 0644]
opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IDeviceListener.java [new file with mode: 0644]
opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IDeviceService.java [new file with mode: 0755]
opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IEntityClass.java [new file with mode: 0644]
opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IEntityClassListener.java [new file with mode: 0644]
opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IEntityClassifierService.java [new file with mode: 0644]
opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IfHostListener.java [new file with mode: 0644]
opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IfIptoHost.java [new file with mode: 0644]
opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/IfNewHostNotify.java [new file with mode: 0644]
opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/SwitchPort.java [new file with mode: 0644]
opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/hostAware/HostNodeConnector.java [new file with mode: 0644]
opendaylight/hosttracker_new/api/src/main/java/org/opendaylight/controller/hosttracker/hostAware/IHostFinder.java [new file with mode: 0644]
opendaylight/hosttracker_new/api/src/test/java/org/opendaylight/controller/hosttracker/hostAware/HostNodeConnectorTest.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/pom.xml [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/Activator.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/AttachmentPoint.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DefaultEntityClassifier.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/Device.java [new file with mode: 0755]
opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceIndex.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceIndexInterator.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceIterator.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceManagerImpl.java [new file with mode: 0755]
opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceMultiIndex.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/DeviceUniqueIndex.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/main/java/org/opendaylight/controller/hosttracker/internal/IndexedEntity.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/internal/DeviceManagerImplTest.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/internal/DeviceUniqueIndexTest.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockDevice.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockDeviceManager.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockEntityClassifier.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockEntityClassifierMac.java [new file with mode: 0644]
opendaylight/hosttracker_new/implementation/src/test/java/org/opendaylight/controller/hosttracker/test/MockFlexEntityClassifier.java [new file with mode: 0644]
opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/ARP.java
opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/FilterIterator.java [new file with mode: 0644]
opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IListener.java [new file with mode: 0644]
opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IterableIterator.java [new file with mode: 0644]
opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/ListenerDispatcher.java [new file with mode: 0644]
opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/MultiIterator.java [new file with mode: 0644]
opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/SingletonTask.java [new file with mode: 0644]