cc8650e28249cfc6cc6cffef9d6c7b5d398527ea
[docs.git] / manuals / developer-guide / src / main / asciidoc / lacp / lacp-dev.adoc
1 == LACP Developer Guide
2 === LACP Overview
3 The LACP(Link Aggregation Control Protocol) feature can be used to
4 aggregate multiple links between OpenDaylight controlled network
5 switches and their directly connected LACP enabled legacy switches or
6 hosts operating in active mode.
7
8 LACP passively negotiates automatic bundling of multiple links to form
9 a single logical interface.
10 The logical interface is currently realised in the OpenDaylight controlled
11 switches using Openflow(1.3) group table functionality.
12 The realisation of the logical interface can be also be done by informing the
13 creation of the LAG(LACP Aggregator) interface to the OpenDaylight controlled
14 switches or in any other manner by adding the required pluggable extension to
15 the LACP.
16
17 === LACP Architecture
18 * *inventory*
19    ** Maintains the list of LACP supporting OpenDaylight controlled switches,
20       the list of logical interfaces created and physical links that are part
21       of the logical interfaces available in each switch
22 * *packethandler*
23    ** Receives and transmits LACP PDUs to the LACP enabled endpoint
24 * *core*
25    ** Performs LACP state machine processing
26
27 === Realizing logical interface in switches
28
29 ==== Group Table programming
30 The logical interface representing the aggregated multiple physical links
31 are realized in the OpenDaylight controlled switches by creating a
32 group table entry (Group table supported from Openflow 1.3 onwards).
33 The group table entry has a group type *Select* and action referring to
34 the aggregated physical links.
35 Any data traffic to be sent out through the logical interface can be sent
36 through the *Group entry* available for the logical interface.
37
38 ==== Alternate ways of realizing logical interface
39
40 An interface for the logical interface creation / modification / deletion
41 is provided by the LACP feature. The plugin to realize the logical interface
42 has to implement this interface and provide implementation for the following
43 interface functions
44
45 * LACreateLag(nodeId, aggId, portId)
46
47 * LADeleteLag(nodeId, aggId)
48
49 * LAUpdateLag(nodeId, aggId, portId, action)
50
51 ==== Realizing logical interface using other pluggable extension
52 Any new extension that wants to realize the logical interface in the
53 switch must implement the above mentioned interface functions.
54 These implemented functions must have a way of informing the
55 logical interface related operation to the switch.
56 It also has to provide a mapping so as to handle the data
57 traffic transmitted through the logical interface using the hardware
58 support available for that logical interface in the switch.
59