bond: Add bonding driver and LACP protocol
[vpp.git] / src / plugins / lacp / lacp_doc.md
1 # VPP Link Aggregation Control Protocol (LACP) implementation    {#lacp_doc}
2
3 This document is to describe the usage of VPP LACP implementation.
4
5
6 ## LACP
7
8 The Link Aggregation Control Protocol (LACP) is an 802.3ad standard which
9 provides a protocol for exchanging information between Partner Systems on a
10 link to allow their protocol instances to reach agreement on the Link Aggregation
11 Group to which the link belongs and enable transmission and reception for the
12 higher layer. Multiple links may be bundled to the same Aggregation Group to form
13 a high bandwidth transmission medium and create a fault-tolerant link.
14
15
16 ### Configuration
17
18 1. Create the bond interface
19 create bond mode lacp [hw-addr <mac-address>] [load-balance { l2 | l23 | l34 }]
20
21 2. Enslave the physical interface to the bond
22 enslave interface <interface> to <bond-interface-name> [passive] [long-timeout]"
23
24 3. Delete the bond interface
25 delete bond {<interface> | sw_if_index <sw_idx>}
26
27 4. Detach the slave interface from the bond
28 detach interface <interface>
29
30 ### Configuration example
31
32 create bond mode lacp
33 set interface state BondEthernet0 up
34 enslave interface TenGigabitEthernet7/0/0 to BondEthernet1
35 enslave interface TenGigabitEthernet7/0/1 to BondEthernet1
36 enslave interface TenGigabitEthernet5/0/0 to BondEthernet1
37 enslave interface TenGigabitEthernet5/0/1 to BondEthernet1
38
39 detach interface TenGigabitEthernet5/0/1
40
41 delete bond BondEthernet0
42
43 ### Operational data
44
45 show lacp [<interface>] [details]
46
47 Example:
48
49 show lacp
50
51
52 DBGvpp# sh lacp
53 sh lacp
54                                                         actor state                      partner state
55 interface name            sw_if_index  bond interface   exp/def/dis/col/syn/agg/tim/act  exp/def/dis/col/syn/agg/tim/act
56 GigabitEthernet2/0/1      1            BondEthernet0      0   0   1   1   1   1   1   1    0   0   1   1   1   1   1   1
57   LAG ID: [(ffff,e4-c7-22-f3-26-71,0000,00ff,0001), (ffff,fc-99-47-4a-0c-8b,0009,00ff,0001)]
58   RX-state: CURRENT, TX-state: TRANSMIT, MUX-state: COLLECTING_DISTRIBUTING, PTX-state: PERIODIC_TX
59 TenGigabitEthernet4/0/0   2            BondEthernet1      0   0   1   1   1   1   1   1    0   0   1   1   1   1   0   1
60   LAG ID: [(ffff,90-e2-ba-76-cf-2d,0001,00ff,0001), (8000,00-2a-6a-e5-50-c1,0140,8000,011d)]
61   RX-state: CURRENT, TX-state: TRANSMIT, MUX-state: COLLECTING_DISTRIBUTING, PTX-state: PERIODIC_TX
62 TenGigabitEthernet4/0/1   3            BondEthernet1      0   0   1   1   1   1   1   1    0   0   1   1   1   1   0   1
63   LAG ID: [(ffff,90-e2-ba-76-cf-2d,0001,00ff,0002), (8000,00-2a-6a-e5-50-c1,0140,8000,011e)]
64   RX-state: CURRENT, TX-state: TRANSMIT, MUX-state: COLLECTING_DISTRIBUTING, PTX-state: PERIODIC_TX
65 TenGigabitEthernet8/0/1   7            BondEthernet1      0   0   1   1   1   1   1   1    0   0   1   1   1   1   0   1
66   LAG ID: [(ffff,90-e2-ba-76-cf-2d,0001,00ff,0003), (8000,00-2a-6a-e5-50-01,007a,8000,0114)]
67   RX-state: CURRENT, TX-state: TRANSMIT, MUX-state: COLLECTING_DISTRIBUTING, PTX-state: PERIODIC_TX
68 TenGigabitEthernet8/0/0   6            BondEthernet1      0   0   1   1   1   1   1   1    0   0   1   1   1   1   0   1
69   LAG ID: [(ffff,90-e2-ba-76-cf-2d,0001,00ff,0004), (8000,00-2a-6a-e5-50-01,007a,8000,0115)]
70   RX-state: CURRENT, TX-state: TRANSMIT, MUX-state: COLLECTING_DISTRIBUTING, PTX-state: PERIODIC_TX
71 TenGigabitEthernet6/0/1   5            BondEthernet2      0   0   1   1   1   1   1   1    0   0   1   1   1   1   1   1
72   LAG ID: [(ffff,90-e2-ba-36-31-21,0002,00ff,0001), (ffff,90-e2-ba-29-f5-31,000f,00ff,0002)]
73   RX-state: CURRENT, TX-state: TRANSMIT, MUX-state: COLLECTING_DISTRIBUTING, PTX-state: PERIODIC_TX
74 TenGigabitEthernet6/0/0   4            BondEthernet2      0   0   1   1   1   1   1   1    0   0   1   1   1   1   1   1
75   LAG ID: [(ffff,90-e2-ba-36-31-21,0002,00ff,0002), (ffff,90-e2-ba-29-f5-31,000f,00ff,0001)]
76   RX-state: CURRENT, TX-state: TRANSMIT, MUX-state: COLLECTING_DISTRIBUTING, PTX-state: PERIODIC_TX
77 DBGvpp#
78
79 show bond [details]
80
81
82 DBGvpp# sh bond
83 sh bond
84 interface name   sw_if_index   mode         load balance  active slaves  slaves
85 BondEthernet0    10            lacp         l2            1              1
86 BondEthernet1    11            lacp         l34           4              4
87 BondEthernet2    12            lacp         l23           2              2
88 DBGvpp#
89
90 ### Debugging
91
92 debug lacp [<interface>] <on | off>