Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • NetconfController.java, implemented by NetconfControllerImpl.java: tracks all the NETCONF devices, serves as a one stop for connecting and obtaining a device and (un)register listeners on device events.

  • NetconfDevice.java implemented by NetconfDeviceImpl.java: represents a NETCONF capable device connected to the ONOS core with his own NetconfSession and his informations saved in an instance of NetconfDeviceInfo
  • NetconfSession.java: interface that every type of connection to a NETCONF device must implement, represents the single access point for any operation on the device. An example is NetconfSessionImpl: uses an SSH2 Connection and Session to exchange information and perform operations like get/set-config with the physical NETCONF device.
  • NetconfDeviceProvider.java: manages any NETCONF device role and all the interactions with the ONOS core.
  • NetconfDeviceListener.java implemented by InnerNetconfDeviceListener.java in NetconfDeviceProvider: informs the provider in the ONOS core that a NETCONF device is connected/disconnected.
  • NetconfDeviceInfo.java: contains ip,port,protocol,username,password and DeviceId of a NETCONF device; it's used to exchange information about a device without having to pass the device instance itself.
  • XMLConfigParser.java: parser for reading and producing XML files to and from the NETCONF device. For now has only configuration reader and edit controllers configuration producer.

 

Example: Get and Set Controllers.

...

To call the getControllers and setControllers methods you need to obtain the ControllerConfig Behaviour nad then call on this instance the methods. The set and get commands are implemented, as an example, in DeviceControllersNetconfCommand.java e DeviceSetControllersNetconfCommand.java that provide, in two CLI commands device-controllers-netconf class and device-setcontrollers-netconf.

Infrastructure

To test locally (not on real switches) the NETCONF implementation you need the Mininet machine with of-config installed. of-config is wrapper for an openvswitch instance, that uses NETCONF protocol and translates it to OVSDB protocol in order to use that database implementation.