The OpenFlow Node Discovery application is the default OpenFlow node supplier application that is installed with the controller. This application implements the
com.hp.sdn.supplier.NodeSuppliersBroker interface and uses
NodeService APIs to create and maintain node information for OpenFlow datapaths that register with the controller.
The OpenFlow Node Discovery application pushes flow-mods to controlled devices that copy ARP packets or DHCP packets to the controller for processing and listens for PACKET_IN messages that contain the ARP or DHCP protocol.
Based upon the information supplied by these copied ARP, DHCP, and IP packets, the OpenFlow Node Discovery application registers as a node supplier and supplies updates to the node table. The controller administrator can configure the timeout value for nodes discovered by each protocol by setting the value of the
age key of the configurable component for that protocol.
The Node Manager does not update the node table for every PACKET_IN message it receives. Specifically, PACKET_IN messages are ignored if the connected port is identified by the Topology Manager as being part of the infrastructure.
NOTE: Because these PACKET_IN messages represent copies of packets that have already been forwarded by the controlled device, no corresponding PACKET_OUT is sent back to the device that sent the PACKET_IN.
OfIpDiscoveryComponent configuration has
learn.ip=true, the OpenFlow Node Discovery application also listens for PACKET_IN messages that contain the IP protocol, but does not explicitly push flow-mods to controlled devices that send IP packets because doing so would drastically reduce network performance by overwhelming the control plane.