Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Vlan support in sk(4) driver

    Scheduled Pinned Locked Moved Hardware
    6 Posts 2 Posters 1.2k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      covex
      last edited by

      hi there,
      is there a vlan support in sk(4) Marvell 88E1011 Gigabit PHY driver?
      all i can find is that

      The following interfaces support long frames for vlan natively: bfe(4), cas(4), dc(4), fwe(4), fxp(4), gem(4), hme(4), le(4), nfe(4), nve(4), rl(4), sf(4), sis(4), sk(4), ste(4), tl(4), tx(4), vr(4), and xl(4)

      but when i try to connect unifi ap with some vlans to the interface vlans don't work

      1 Reply Last reply Reply Quote 0
      • C
        covex
        last edited by

        bump?

        1 Reply Last reply Reply Quote 0
        • F
          fibrewire
          last edited by

          To set VLAN tagging, go to Interfaces > (assign) > VLANS
          You'll see a note that says:

          Not all drivers/NICs support 802.1Q VLAN tagging properly. On cards that do not explicitly support it, VLAN tagging will still work, but the reduced MTU may cause problems. See the pfSense handbook for information on supported cards.

          pfsense is based on FreeBSD, so a quick search for "sk FreeBSD" pulls up the man page for sk interfaces which is useless unless you compare it to something else. On my watchguard x750e I have sk and msk interfaces, so lets see what we can find about msk interfaces. Here is an excerpt from the man page for msk(4):

               The msk device driver provides support for	various	NICs based on the Mar-
               vell/SysKonnect Yukon II Gigabit Ethernet controller chip.
          
               All NICs supported	by the msk driver have TCP/UDP/IP checksum offload for
               transmit, TCP segmentation	offload	(TSO), hardware	VLAN tag strip-
               ping/insertion features and an interrupt moderation mechanism as well as
               a 64-bit multicast	hash filter.  The Yukon	II supports TBI	(ten bit
               interface)	and GMII transceivers, which means it can be used with either
               copper or 1000baseX fiber applications.
          
               The Yukon II also supports	Jumbo Frames (up to 9022 bytes), which can be
               configured	via the	interface MTU setting.	Selecting an MTU larger	than
               1500 bytes	with the ifconfig(8) utility configures	the adapter to receive
               and transmit Jumbo	Frames.
          
          

          The sk driver has no such feature, and is instead handled by the FreeBSD vlan(4) driver. I'm assuming that's what you were looking for?

          Also, since FreeBSD is a posix compliant operating system, one can run *nix shell commands like "ifconfig sk0" to see what the adapter supports according to the driver loaded. I get to it by clicking on Diagnostics > Command Prompt and I see this on my firewall:

          $ ifconfig sk1
          sk1: flags=8843 <up,broadcast,running,simplex,multicast>metric 0 mtu 1500
          	options=8000b <rxcsum,txcsum,vlan_mtu,linkstate>ether 00:90:7f:3f:0a:8c
          	inet6 fe80::290:7fff:fe3f:a8c%sk1 prefixlen 64 scopeid 0x6 
          	inet 64.233.160.1 netmask 0xffffe000 broadcast 255.255.255.255 
          	nd6 options=21 <performnud,auto_linklocal>media: Ethernet autoselect (1000baseT <full-duplex>)
          	status: active</full-duplex></performnud,auto_linklocal></rxcsum,txcsum,vlan_mtu,linkstate></up,broadcast,running,simplex,multicast> 
          ```Compared to the msk interface:
          

          $ ifconfig msk0
          msk0: flags=8943 <up,broadcast,running,promisc,simplex,multicast>metric 0 mtu 1500
          options=c001b <rxcsum,txcsum,vlan_mtu,vlan_hwtagging,vlan_hwtso,linkstate>ether 00:90:7f:3f:0a:91
          inet6 fe80::290:7fff:fe3f:a91%msk0 prefixlen 64 scopeid 0x1
          inet 10.0.0.1 netmask 0xfffffc00 broadcast 10.0.3.255
          nd6 options=21 <performnud,auto_linklocal>media: Ethernet autoselect (1000baseT <full-duplex,flowcontrol,rxpause,txpause>)
          status: active</full-duplex,flowcontrol,rxpause,txpause></performnud,auto_linklocal></rxcsum,txcsum,vlan_mtu,vlan_hwtagging,vlan_hwtso,linkstate></up,broadcast,running,promisc,simplex,multicast>

          It looks like hardware vlan tagging is supported by the msk(4) driver and not the sk(4) driver.
          1 Reply Last reply Reply Quote 0
          • C
            covex
            last edited by

            thanks for your reply fibrewire
            i've been using this device (http://www.portwell.com/pdf/ca/NAD-2081.pdf) with pfsense for few years now and i know for sure i had vlans configured on it with the older pfsense version. back then i didn't even checked if sk driver supports vlans. i just configured it because my provider required it. and it worked.
            now i'm using this box in a different setting with newer pfsense and was going to use vlans on one of the interfaces to run corporate and free wifi via unifi ap. it didn't work.  :-\

            1 Reply Last reply Reply Quote 0
            • F
              fibrewire
              last edited by

              According to the pdf it has 4 switching ports and 4 expansion ports via pci32 interface. Have you tried using the switched ports in place of the expansion ports or vice-versa? I would look under Interfaces > (assign) and see if there are four or eight sk interfaces available. If only four then you have a different type of interface available that may support hardware vlans.

              1 Reply Last reply Reply Quote 0
              • C
                covex
                last edited by

                i have the one with 4 onboard ports.
                here is how pfsense sees them

                
                skc0: <marvell gigabit="" ethernet="">port 0xd000-0xd0ff mem 0xec02c000-0xec02ffff irq 12 at device 0.0 on pci1
                skc0: Marvell Yukon Lite Gigabit Ethernet rev. (0x9)
                sk0: <marvell semiconductor,="" inc.="" yukon="">on skc0
                sk0: Ethernet address: xx:xx:xx:xx:xx:xx
                miibus0: <mii bus="">on sk0
                e1000phy0: <marvell 88e1011="" gigabit="" phy="">PHY 0 on miibus0
                e1000phy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
                skc1: <marvell gigabit="" ethernet="">port 0xd400-0xd4ff mem 0xec020000-0xec023fff irq 10 at device 1.0 on pci1
                skc1: Marvell Yukon Lite Gigabit Ethernet rev. (0x9)
                sk1: <marvell semiconductor,="" inc.="" yukon="">on skc1
                sk1: Ethernet address: xx:xx:xx:xx:xx:xx
                miibus1: <mii bus="">on sk1
                e1000phy1: <marvell 88e1011="" gigabit="" phy="">PHY 0 on miibus1
                e1000phy1:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
                skc2: <marvell gigabit="" ethernet="">port 0xd800-0xd8ff mem 0xec024000-0xec027fff irq 11 at device 2.0 on pci1
                skc2: Marvell Yukon Lite Gigabit Ethernet rev. (0x9)
                sk2: <marvell semiconductor,="" inc.="" yukon="">on skc2
                sk2: Ethernet address: xx:xx:xx:xx:xx:xx
                miibus2: <mii bus="">on sk2
                e1000phy2: <marvell 88e1011="" gigabit="" phy="">PHY 0 on miibus2
                e1000phy2:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
                skc3: <marvell gigabit="" ethernet="">port 0xdc00-0xdcff mem 0xec028000-0xec02bfff irq 5 at device 3.0 on pci1
                skc3: Marvell Yukon Lite Gigabit Ethernet rev. (0x9)
                sk3: <marvell semiconductor,="" inc.="" yukon="">on skc3
                sk3: Ethernet address: xx:xx:xx:xx:xx:xx
                miibus3: <mii bus="">on sk3
                e1000phy3: <marvell 88e1011="" gigabit="" phy="">PHY 0 on miibus3
                e1000phy3:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto</marvell></mii></marvell></marvell></marvell></mii></marvell></marvell></marvell></mii></marvell></marvell></marvell></mii></marvell></marvell> 
                
                1 Reply Last reply Reply Quote 0
                • First post
                  Last post
                Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.