Bug 639, Bug 641, Bug 642: This is MD-SAL based sample implementation of a learning... 18/5918/2
authorAmit Mandke <ammandke@cisco.com>
Sat, 5 Apr 2014 00:59:52 +0000 (17:59 -0700)
committerAmit Mandke <ammandke@cisco.com>
Sat, 5 Apr 2014 03:00:30 +0000 (03:00 +0000)
commit273b2a25453e9fe24f973fd6f7bc8c65bcf372d3
treef41fc770880a4619472688cd8bf8cb8ee673021f
parent043856746f66822e2fec6e006a4bea87f897ac6d
Bug 639, Bug 641, Bug 642: This is MD-SAL based sample implementation of a learning switch with optimizations in how packet is forwarded.
Link to detail documetation: https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL:L2_Switch

It has following components:
PacketHandler examines Ethernet packets to find information about Mac-Port pairings.
 -informs AddressTracker about new Mac-Port pairings.
 -informs FlowWriterService about new flows, when the source & destination of a packet are known.
 -uses InventoryService to determine external ports and only send packets to those ports when flooding packets in the network.

AddressTracker stores the Mac-Port pairings in the MD-SAL data tree.

InventoryService provides information about the nodes and node connectors in the network.

FlowWriterService adds packet forwarding (mac-to-mac) flows to the MD-SAL data tree.
 -uses NetworkGraphDijkstra to determine all the intermediate nodes along a path.

TopologyLinkDataChangeHandler listens to topology updates and informs NetworkGraphDijkstra of these updates.

NetworkGraphDijkstra maintains the network graph and computes the shortest path between each node.

Change-Id: I33497a9e2136316de1db16e1c7f916cbc13f437f
Signed-off-by: Amit Mandke <ammandke@cisco.com>
18 files changed:
opendaylight/md-sal/samples/l2switch/implementation/pom.xml [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/implementation/src/main/java/org/opendaylight/controller/sample/l2switch/md/L2SwitchProvider.java [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/implementation/src/main/java/org/opendaylight/controller/sample/l2switch/md/addresstracker/AddressTracker.java [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/implementation/src/main/java/org/opendaylight/controller/sample/l2switch/md/flow/FlowWriterService.java [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/implementation/src/main/java/org/opendaylight/controller/sample/l2switch/md/flow/FlowWriterServiceImpl.java [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/implementation/src/main/java/org/opendaylight/controller/sample/l2switch/md/inventory/InventoryService.java [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/implementation/src/main/java/org/opendaylight/controller/sample/l2switch/md/packet/PacketHandler.java [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/implementation/src/main/java/org/opendaylight/controller/sample/l2switch/md/topology/NetworkGraphDijkstra.java [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/implementation/src/main/java/org/opendaylight/controller/sample/l2switch/md/topology/NetworkGraphService.java [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/implementation/src/main/java/org/opendaylight/controller/sample/l2switch/md/topology/TopologyLinkDataChangeHandler.java [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/implementation/src/main/java/org/opendaylight/controller/sample/l2switch/md/util/InstanceIdentifierUtils.java [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/implementation/src/test/java/org/opendaylight/controller/sample/l2switch/md/flow/FlowWriterServiceImplTest.java [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/implementation/src/test/java/org/opendaylight/controller/sample/l2switch/md/topology/NetworkGraphDijkstraTest.java [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/implementation/src/test/java/org/opendaylight/controller/sample/l2switch/md/topology/TopologyLinkDataChangeHandlerTest.java [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/model/pom.xml [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/model/src/main/yang/l2-address-tracker.yang [new file with mode: 0644]
opendaylight/md-sal/samples/l2switch/pom.xml [new file with mode: 0644]
opendaylight/md-sal/samples/pom.xml