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>
- [D] opendaylight/md-sal/samples/l2switch/implementation/src/main/java/org/opendaylight/controller/sample/l2switch/md/packet/PacketHandler.java