Bug 217374

Summary: fix tap(4) to be full-duplex and have non-zero speed
Product: Base System Reporter: Alexandre Snarskii <snar>
Component: kernAssignee: freebsd-net (Nobody) <net>
Status: Open ---    
Severity: Affects Only Me CC: emaste, grahamperrin, snar, swills
Priority: ---    
Version: 11.0-STABLE   
Hardware: Any   
OS: Any   
See Also: https://github.com/freebsd/freebsd-src/pull/745
Attachments:
Description Flags
patch for if_tap.c none

Description Alexandre Snarskii 2017-02-26 15:01:26 UTC
Created attachment 180317 [details]
patch for if_tap.c

For now tap(4) devices advertise itself as just 'ethernet autoselect',
without duplex or speed capabilities. This advertisement makes them
unable to be aggregated into lacp-based lagg(4):
- lacp code requires underlying interfaces to be full-duplex,
else interface will not participate in lacp at all[1]
- lacp code requires underlying interface to have non-zero speed,
else this interface can not be selected as active aggregator[2].

[1]: https://svnweb.freebsd.org/base/stable/11/sys/net/ieee8023ad_lacp.c?revision=313038&view=markup#l478
[2]: https://svnweb.freebsd.org/base/stable/11/sys/net/ieee8023ad_lacp.c?revision=313038&view=markup#l952
Comment 1 commit-hook freebsd_committer freebsd_triage 2023-05-31 15:54:40 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=0ec220df526d38c73650301c1300a6fe3124698a

commit 0ec220df526d38c73650301c1300a6fe3124698a
Author:     Alexandre Snarskii <snar@snar.spb.ru>
AuthorDate: 2023-05-31 15:50:00 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2023-05-31 15:53:48 +0000

    tap(4): allow full-duplex and non-zero speed

    tap(4) devices advertise themselves as just 'ethernet autoselect',
    without duplex or speed capabilities.
    This advertisement makes them unable to be aggregated into lacp-based
    lagg(4):
    - lacp code requires underlying interfaces to be full-duplex, else
      interface will not participate in lacp at all
    - lacp code requires underlying interface to have non-zero speed, else
      this interface can not be selected as active aggregator

    PR: 217374
    Reported-by: Alexandre Snarskii <snar@snar.spb.ru>
    Co-authored-by: Mina Galić <freebsd@igalic.co>
    Reviewed-by: imp,karles
    Pull-request: https://github.com/freebsd/freebsd-src/pull/745

 sys/net/if_tuntap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)