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 the age 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: ]

    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 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.