OpenFlow Node Discovery
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 NodeSupplierService
and NodeService
APIs
to create and maintain node information for OpenFlow datapaths that
register with the controller.
If the ControllerManager
configuration has hybrid.mode=false
, all packets
are implicitly stolen to the controller and processed by the OpenFlow
Node Discovery application. If learn.ip=true
, the
node discovery application in this case uses ARP, DHP and IP packets
to discover the hosts.
If the ControllerManager
configuration has hybrid.mode=true
:
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.
By default in hybrid mode, IP packets are not sent to controller. Based upon the information supplied by these copied ARP, DHCP, and IP packets, and if
learn.ip=true
, 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 theage
key of the configurable component for that protocol.Only when
learn.ip=true
and some other application has pushed a flow that sends IP packets to controller. will the controller receive IP packets. By default, in hybrid mode, IP packets are not sent to controller.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.
If the
OfIpDiscoveryComponent
configuration haslearn.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.