Bug 242637

Summary: emulators/virtualbox-ose: Fix bridging when ng_ether node name does not match interface name
Product: Ports & Packages Reporter: Landon J. Fuller <landonf>
Component: Individual Port(s)Assignee: Virtualbox Team (Nobody) <vbox>
Status: Open ---    
Severity: Affects Some People Keywords: needs-qa
Priority: --- Flags: bugzilla: maintainer-feedback? (vbox)
koobs: merge-quarterly?
Version: Latest   
Hardware: Any   
OS: Any   
See Also: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=234878
Description Flags
Patch for current (5.2.34) emulators/virtualbox-ose
Patch for 6.1.0 emulators/virtualbox-ose none

Description Landon J. Fuller freebsd_committer 2019-12-14 19:25:57 UTC
Created attachment 209951 [details]
Patch for current (5.2.34) emulators/virtualbox-ose

This patch fixes bridging in cases where the interface's ng_ether netgraph node name does not match its interface name.

This is commonly seen with VLANs configured in rc.conf; for example:


This will create an 'igb0.12' VLAN interface, but because '.' is a reserved character in netgraph node names, the corresponding netgraph node will be named 'igb0_12':

    Name: igb0_12         Type: ether           ID: 00000007   Num hooks: 0

Currently, VBoxNetFlt assumes a 1:1 correspondence between interface name and ng_ether node name; when attempting to bridge to igb0.12, the node named "igb0.12" is not found, and VBoxNetFlt's netgraph initialization silently fails.

Rather than assume the node name, this patch enumerates all ng_ether nodes, using the NGM_ETHER_GET_IFNAME control message to identify the ng_ether node corresponding to the target interface.

I've attached patches for the current emulators/virtualbox-ose port, as well as a patch relative to the 6.1 patch posted on 2019-12-13 (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=234878).
Comment 1 Landon J. Fuller freebsd_committer 2019-12-14 19:26:37 UTC
Created attachment 209952 [details]
Patch for 6.1.0 emulators/virtualbox-ose
Comment 2 Kubilay Kocak freebsd_committer freebsd_triage 2019-12-15 06:06:52 UTC
Thank you for the report and patch Landon

Can you confirm this change passes QA? (poudriere in particular)
Comment 3 Landon J. Fuller freebsd_committer 2019-12-16 18:06:46 UTC
(In reply to Kubilay Kocak from comment #2)

I can confirm the 5.2.34 patch passes a `poudriere testport` run (the 6.1.0 patch does as well, after a few unrelated issues in the #234878 6.1.0 diff are resolved).