Bug 217374 - fix tap(4) to be full-duplex and have non-zero speed
Summary: fix tap(4) to be full-duplex and have non-zero speed
Status: Open
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 11.0-STABLE
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-net (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-02-26 15:01 UTC by Alexandre Snarskii
Modified: 2023-05-31 15:54 UTC (History)
4 users (show)

See Also:


Attachments
patch for if_tap.c (480 bytes, patch)
2017-02-26 15:01 UTC, Alexandre Snarskii
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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(-)