bce vlan stripping limitations

Daniel Tihanyi tetragir at fastmail.fm
Sun Dec 11 17:34:51 UTC 2016


Hi,

Hardware VLAN stripping is not really what you need right now, you are
looking for VLAN tagging.
If a network interface can send and receive tagged packets, it looks
something like this:

%ifconfig em0 inet
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu
1500
	options=4219b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM
,TSO4,WOL_MAGIC,VLAN_HWTSO>

Despite the network interface not supporting hardware VLAN tagging you
can still use VLANs, but it will be done in software.

1. Add the following line to /boot/loader.conf:
if_vlan_load="YES"

2. Reboot, or load the kernel module manually:
# kldload if_vlan

3. To create the VLAN interface, add the following line to
/etc/rc.conf:
vlans_bce0="304"
ifconfig_bce0_304="up"
This interface will be named named bce0.304

4. Add this interface to bridge1, again in /etc/rc.conf:
cloned_interfaces="bridge1 tap1"
ifconfig_bridge1="addm bce0.304 addm tap1"

5. Reboot, or issue this command:
# service netif restart

This way every packet coming from the bhyve guest will be tagged with
VLAN 304 by the host and also every packet which comes tagged with VLAN
304 will be passed to tap1.

Daniel

On Sun, 2016-12-11 at 15:27 +0000, Tom Beard via freebsd-net wrote:
> Keen observers will have noticed that I pasted the output from the
> wrong vlan1.  The correct output is below.
> 
> vlan1: flags=8942<BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric
> 0 mtu 1500
>         ether 84:2b:2b:0b:b3:72
>         nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
>         media: Ethernet autoselect (1000baseT <full-duplex>)
>         status: active
>         vlan: 304 vlanpcp: 0 parent interface: bce0
>         groups: vlan 
> 
> > On 11 Dec 2016, at 14:44, Tom Beard via freebsd-net <freebsd-net at fr
> > eebsd.org> wrote:
> > 
> > Hi all
> > 
> > I’m having issues with vlan handling on a bce interface on 11.0-
> > RELEASE.  From what I’ve read, the bce driver supports hardware
> > vlan stripping and is indeed doing this.  My intent was to create a
> > vlan interface bound to the bce interface and bridge this to a tap
> > interface to use with a bhyve VM (as below).  
> > 
> > Outbound traffic from the VM is correctly bridged from tap1 to
> > vlan1 then tagged with vlan 304 and passed out on bce0
> > 
> > Inbound traffic tagged with vlan 304 on bce0 never makes it to
> > vlan0.
> > 
> > From what I can tell this is caused by vlan stripping on the bce0
> > interface and it looks like I can’t disable it leaving me with
> > little option but to buy a new network card.
> > 
> > Can anyone validate that I’m correct here and this is a known
> > limitation or am I barking up completely the wrong tree?
> > 
> > Thanks
> > Tom
> > 
> > bce0: <QLogic NetXtreme II BCM5716 1000Base-T (C0)> mem 0xda000000-
> > 0xdbffffff irq 36 at device 0.0 on pci1
> > 
> > bce0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST>
> > metric 0 mtu 1500
> >        options=80028<VLAN_MTU,JUMBO_MTU,LINKSTATE>
> >        ether 84:2b:2b:0b:b3:72
> >        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> >        media: Ethernet autoselect (1000baseT <full-duplex>)
> >        status: active
> > 
> > bridge1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric
> > 0 mtu 1500
> >        ether 02:eb:af:cf:7c:01
> >        nd6 options=1<PERFORMNUD>
> >        groups: bridge 
> >        id 00:00:00:00:00:00 priority 32768 hellotime 2 fwddelay 15
> >        maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
> >        root id 00:00:00:00:00:00 priority 32768 ifcost 0 port 0
> >        member: tap1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
> >                ifmaxaddr 0 port 11 priority 128 path cost 2000000
> >        member: vlan1 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
> >                ifmaxaddr 0 port 9 priority 128 path cost 55
> > 
> > vlan1: flags=8102<BROADCAST,PROMISC,MULTICAST> metric 0 mtu 1500
> >        ether 00:00:00:00:00:00
> >        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> >        vlan: 0 vlanpcp: 0 parent interface: <none>
> >        groups: vlan 
> > 
> > tap1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST>
> > metric 0 mtu 1500
> >        options=80000<LINKSTATE>
> >        ether 00:bd:3a:17:4c:02
> >        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> >        media: Ethernet autoselect
> >        status: active
> >        groups: tap 
> >        Opened by PID 12880
> > 
> > _______________________________________________
> > freebsd-net at freebsd.org mailing list
> > https://lists.freebsd.org/mailman/listinfo/freebsd-net
> > To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.o
> > rg"
> 
> _______________________________________________
> freebsd-net at freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe at freebsd.org
> "


More information about the freebsd-net mailing list