1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
.\" $OpenBSD: aggr.4,v 1.2 2019/07/05 05:22:57 jmc Exp $
.\"
.\" Copyright (c) 2019 David Gwynne <dlg@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: July 5 2019 $
.Dt AGGR 4
.Os
.Sh NAME
.Nm aggr
.Nd IEEE 802.1AX Link Aggregation network interface
.Sh SYNOPSIS
.Cd "pseudo-device aggr"
.Sh DESCRIPTION
The
.Nm
driver implements IEEE 802.1AX (formerly 802.3ad) Link Aggregation
for combining one or more Ethernet interfaces into a single logical
interface.
The Link Aggregation Control Protocol (LACP) is used to negotiate the
aggregation of member interfaces with a partner device.
.Pp
.Nm
interfaces must be configured to use one or more Ethernet interfaces
as ports, and communicate with a partner device over those
ports using LACP.
Member interfaces that negotiate with a partner device are
aggregated into a single logical link.
Packets transmitted through an
.Nm
interface select an aggregated interface for transmission.
Packets received by an aggregated device appear to be received
by the
.Nm
interface it is a member of.
.Pp
.Nm
interfaces can be created at runtime using the
.Ic ifconfig aggr Ns Ar N Ic create
command or by setting up a
.Xr hostname.if 5
configuration file for
.Xr netstart 8 .
The interface itself can be configured with
.Xr ifconfig 8 ;
see its manual page for more information.
.Pp
.Nm
interfaces may be configured with
.Xr ifconfig 8
and
.Xr netstart 8
using the following options:
.Bl -tag -width Ds
.It Cm lacpmode Cm active Ns | Ns Cm passive
Set the LACP mode to either
.Cm active
or
.Cm passive .
The default is active mode.
.It Cm lacptimeout Cm fast Ns | Ns Cm slow
Set the LACP timeout speed to either
.Cm fast
or
.Cm slow .
The default is slow timeouts.
.It Cm lladdr Ar etheraddr Ns | Ns Cm random
Change the link layer address (MAC address) of the interface.
This should be specified as six colon-separated hex values, or can
be chosen randomly.
By default a random MAC address is generated when an interface is created.
.It Cm trunkport Ar child-iface
Add
.Ar child-iface
as a port.
.It Cm -trunkport Ar child-iface
Remove the port
.Ar child-iface .
.El
.\" document the ioctls?
.Pp
Other forms of aggregation of Ethernet interfaces are available
using the
.Xr trunk 4
driver.
.Sh EXAMPLES
Create an
.Nm
virtual interface on top of two physical interfaces:
.Bd -literal -offset indent
# ifconfig aggr0 create
# ifconfig aggr0 trunkport em0
# ifconfig aggr0 trunkport em1
# ifconfig aggr0 10.1.1.100/24
# ifconfig aggr0 up
.Ed
.Sh SEE ALSO
.Xr inet 4 ,
.Xr ip 4 ,
.Xr netintro 4 ,
.Xr trunk 4 ,
.Xr hostname.if 5 ,
.Xr ifconfig 8 ,
.Xr netstart 8
.Sh STANDARDS
.Rs
.%T IEEE 802.1AX Link Aggregation
.Re
.Sh HISTORY
The
.Nm
driver first appeared in
.Ox 6.6 .
|