1 [[openflow-plugin-project-developer-guide]]
2 == OpenFlow Plugin Project Developer Guide
4 This section covers topics which are developer specific and which have not been
5 covered in the user guide. Please see the Lithium OpenFlow plugin user
8 It can be found on https://www.opendaylight.org/downloads[the OpenDaylight software download page].
10 include::odl-ofp-sequence-diagram.adoc[]
12 // include::odl-ofp-config-subsystem.adoc[]
14 // include::odl-ofp-message-spy.adoc[]
16 // * OpenDaylight_OpenFlow_Plugin:Backlog:Extensibility[Extensibility Framework]
18 // include::odl-ofp-yang-models.adoc[]
20 // include::odl-ofp-feature-tree.adoc[]
22 // include::odl-ofp-wiring-up-notifications.adoc[]
24 === Message Order Preservation
26 While the Helium release of OpenFlow Plugin relied on queues to ensure messages were delivered in order, subsequent releases instead ensure that all the messages from a given device are delivered using the same thread and thus message order is guaranteed without queues. The OpenFlow plugin allocates a number of threads equal to twice the number of processor cores on machine it is run, e.g., 8 threads if the machine has 4 cores.
29 While each device is assigned to one thread, multiple devices can be assigned to the same thread.
31 // == Tutorial / How-To
35 // * OpenDaylight_OpenFlow_Plugin::Build_Instructions[Build Instructions]
37 // * OpenDaylight_OpenFlow_Plugin::MininetFromScratch[Mininet from scratch]
39 // * OpenDaylight_OpenFlow_Plugin::Mininet with multiple controllers[Mininet with multiple controllers]
41 // * OpenDaylight_OpenFlow_Plugin:Coding_Hints[Coding hints]
43 // * OpenDaylight_OpenFlow_Plugin::Wiring up Notifications[Wiring up Notifications]
45 // * OpenDaylight_OpenFlow_Plugin::Python_test_scripts[Python test-scripts]
47 // * OpenDaylight_OpenFlow_Plugin:Robot_Framework_Tests[Setup robot testing environment]
49 // * OpenDaylight_OpenFlow_Plugin::LiProposal_dev_setup[Lithium proposal - dev setup]