diff options
author | Steven <sluong@cisco.com> | 2017-12-20 12:43:01 -0800 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2018-03-21 21:02:15 +0000 |
commit | 9cd2d7a5a4fafadb65d772c48109d55d1e19d425 (patch) | |
tree | 4a9e0665be0096ee6bfc2235388f90b276b23814 /src/plugins/lacp/lacp.api | |
parent | 43ebe29b6ea1107c30311cfb3dbd8190282903d0 (diff) |
bond: Add bonding driver and LACP protocol
Add bonding driver to support creation of bond interface which composes of
multiple slave interfaces. The slave interfaces could be physical interfaces,
or just any virtual interfaces. For example, memif interfaces.
The syntax to create a bond interface is
create bond mode <lacp | xor | acitve-backup | broadcast | round-robin>
To enslave an interface to the bond interface,
enslave interface TenGigabitEthernet6/0/0 to BondEthernet0
Please see src/plugins/lacp/lacp_doc.md for more examples and additional
options.
LACP is a control plane protocol which manages and monitors the status of
the slave interfaces. The protocol is part of 802.3ad standard. This patch
implements LACPv1. LACPv2 is not supported.
To enable LACP on the bond interface, specify "mode lacp" when the bond
interface is created. The syntax to enslave a slave interface is the same as
other bonding modes.
Change-Id: I06581d3b87635972f9f0e1ec50b67560fc13e26c
Signed-off-by: Steven <sluong@cisco.com>
Diffstat (limited to 'src/plugins/lacp/lacp.api')
-rw-r--r-- | src/plugins/lacp/lacp.api | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/plugins/lacp/lacp.api b/src/plugins/lacp/lacp.api new file mode 100644 index 00000000000..9eb5c7eed07 --- /dev/null +++ b/src/plugins/lacp/lacp.api @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2017 Cisco and/or its affiliates. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** \file + + This file defines vpe control-plane API messages for + the bonding device driver +*/ + +option version = "1.0.0"; + +/** \brief Dump lacp interfaces request */ +define sw_interface_lacp_dump +{ + u32 client_index; + u32 context; +}; + +/** \brief Reply for lacp dump request + @param sw_if_index - software index of slave interface + @param interface_name - name of slave interface + @param rx_state - rx machine state + @param tx_state - tx machine state + @param mux_state - mux machine state + @param ptx_state - ptx machine state + @param bond_interface_name - name of bond interface + @param actor_system_priority - actor system priority + @param actor_system - actor system + @param actor_key - actor key + @param actor_port_priority - actor port priority + @param actor_port_number - actor port number + @param actor_state - actor state + @param partner_system_priority - partner system priority + @param partner_system - partner system + @param partner_key - partner key + @param partner_port_priority - partner port priority + @param partner_port_number - partner port number + @param partner_state - partner state +*/ +define sw_interface_lacp_details +{ + u32 context; + u32 sw_if_index; + u8 interface_name[64]; + u32 rx_state; + u32 tx_state; + u32 mux_state; + u32 ptx_state; + u8 bond_interface_name[64]; + u16 actor_system_priority; + u8 actor_system[6]; + u16 actor_key; + u16 actor_port_priority; + u16 actor_port_number; + u8 actor_state; + u16 partner_system_priority; + u8 partner_system[6]; + u16 partner_key; + u16 partner_port_priority; + u16 partner_port_number; + u8 partner_state; +}; + +/* + * Local Variables: + * eval: (c-set-style "gnu") + * End: + */ |