SDN Controller Programming Guide

204
Network Node state tracking functionality
The API’s are described in the following listing. See Javadoc on page 9 for details.
NodeService:
public interface NodeService {
NetworkNode getNetworkNode(MacAddress mac, VId vid);
NetworkNode getNetworkNode(IpAddress ip, VId vid);
Set<NetworkNode> getNetworkNodes(VId vid);
MacAddress getMacAddress(IpAddress ip, VId vid);
void clearNodeTable(VId vid);
void clearNodeTable(Set<VId> vids);
void clearNodeTable();
ARPTable getArpTable(VId vid);
Set<VId> getVnetIDs();
void addNetworkNodeListener(NetworkNodeListener nnl);
void removeNetworkNodeListener(NetworkNodeListener nnl);
}
Link Discovery
This Network services layer is intended to build up the knowledge about 'links' between the
network elements residing in the controller's domain. This intelligence about the linkages between
the network elements would serve as base for other apps like Routing, Topology etc, and enable
the overall orchestration of virtual networks.
The information is built by way of listening to device connected/disconnected events from the
controller, as well as by way of inducing the network elements to send LLDP TLV's. Details about
this would be captured in subsequent sections.
The Link table sample data is shown in Table 8.