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

    IPSec's Padlock problem

    Scheduled Pinned Locked Moved 1.2.3-PRERELEASE-TESTING snapshots - RETIRED
    12 Posts 7 Posters 9.3k 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.
    • jimpJ
      jimp Rebel Alliance Developer Netgate
      last edited by

      What does your dmesg output look like? Do any other crypto devices show up?

      I know there is an issue on some systems like ALIX where you have to check the option to not load glxsb when you have a Hifn card installed, or it takes precedence even though it is a slower processor. Perhaps there is something similar going on.

      With OpenVPN you can explicitly set "engine cryptodev" or "engine padlock" but I'm not sure if IPsec has any similar counterpart.

      Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

      Need help fast? Netgate Global Support!

      Do not Chat/PM for help!

      1 Reply Last reply Reply Quote 0
      • B
        bao
        last edited by

        Hi Jim,

        It seems very strange. There is no crypto devices, except the software cryptdev. I'll show the complete dmesg at the end of this post.

        First, FreeBSD recognizes the Padlock in the CPU.
        …
        CPU: VIA Esther processor  500MHz (500.02-MHz 686-class CPU)
          Origin = "CentaurHauls"  Id = 0x6a9  Stepping = 9
          Features=0xa7c9bbff <fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,cmov,pat,clflush,acpi,mmx,fxsr,sse,sse2,tm,pbe>Features2=0x181 <sse3,est,tm2>VIA Padlock Features=0x3fcc <rng,aes,aes-ctr,sha1,sha256,rsa>...
        But, there is no padlock device loaded.
        ...
        pfSense:~#  dmesg | grep padlock
        pfSense:~#  dmesg | grep Padlock
          VIA Padlock Features=0x3fcc <rng,aes,aes-ctr,sha1,sha256,rsa>...
        Looking at the modules confirms that there is no padlock device.
        ...
        pfSense:~#  kldstat
        Id Refs Address    Size    Name
        1    5 0xc0400000 aa2de0  kernel
        2    1 0xc0ea3000 6a45c    acpi.ko
        3    1 0xc450b000 5000    glxsb.ko
        ...
        I could not load the padlock by hand, or set padlock_load="YES" in the /boot/locader.conf!
        ...
        pfSense:~#  kldload padlock
        kldload: can't load padlock: No such file or directory
        ...
        I tried to unload the glxsb either by kldunload or use the web GUI. The glxsb if off. But tt still does not help.
        ...
        pfSense:~#  kldstat
        Id Refs Address    Size    Name
        1    5 0xc0400000 aa2de0  kernel
        2    1 0xc0ea3000 6a45c    acpi.ko
        3    1 0xc450b000 5000    glxsb.ko
        pfSense:~#  kldunload glxsb
        pfSense:~#  kldstat
        Id Refs Address    Size    Name
        1    3 0xc0400000 aa2de0  kernel
        2    1 0xc0ea3000 6a45c    acpi.ko
        ...
        Following is the complete dmesg:
        ...
        Copyright (c) 1992-2009 The FreeBSD Project.
        Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
        FreeBSD is a registered trademark of The FreeBSD Foundation.
        FreeBSD 7.2-RELEASE-p4 #0: Wed Oct 14 05:09:25 UTC 2009
            sullrich@FreeBSD_7.2_pfSense_1.2.3_snaps.pfsense.org:/usr/obj.pfSense/usr/pfSensesrc/src/sys/pfSense_SMP.7
        Timecounter "i8254" frequency 1193182 Hz quality 0
        CPU: VIA Esther processor  500MHz (500.02-MHz 686-class CPU)
          Origin = "CentaurHauls"  Id = 0x6a9  Stepping = 9
          Features=0xa7c9bbff <fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,cmov,pat,clflush,acpi,mmx,fxsr,sse,sse2,tm,pbe>Features2=0x181 <sse3,est,tm2>VIA Padlock Features=0x3fcc <rng,aes,aes-ctr,sha1,sha256,rsa>real memory  = 1055784960 (1006 MB)
        avail memory = 1019269120 (972 MB)
        ACPI APIC Table: <cn700  awrdacpi="">ioapic0 <version 0.3="">irqs 0-23 on motherboard
        wlan: mac acl policy registered
        kbd1 at kbdmux0
        ath_hal: 0.9.20.3 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
        cryptosoft0: <software crypto="">on motherboard
        acpi0: <cn700 awrdacpi="">on motherboard
        acpi0: [ITHREAD]
        acpi0: Power Button (fixed)
        acpi0: reservation of 0, a0000 (3) failed
        acpi0: reservation of 100000, 3ede0000 (3) failed
        Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
        acpi_timer0: <24-bit timer at 3.579545MHz> port 0x408-0x40b on acpi0
        acpi_button0: <power button="">on acpi0
        acpi_button1: <sleep button="">on acpi0
        pcib0: <acpi host-pci="" bridge="">port 0xcf8-0xcff on acpi0
        pci0: <acpi pci="" bus="">on pcib0
        pcib1: <pci-pci bridge="">at device 1.0 on pci0
        pci1: <pci bus="">on pcib1
        vgapci0: <vga-compatible display="">mem 0xf4000000-0xf7ffffff,0xfb000000-0xfbffffff irq 16 at device 0.0 on pci1
        rl0: <realtek 10="" 8139="" 100basetx="">port 0xf400-0xf4ff mem 0xfdfff000-0xfdfff0ff irq 16 at device 5.0 on pci0
        miibus0: <mii bus="">on rl0
        rlphy0: <realtek internal="" media="" interface="">PHY 0 on miibus0
        rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
        rl0: Ethernet address: 00:40:48:b1:ab:10
        rl0: [ITHREAD]
        rl1: <realtek 10="" 8139="" 100basetx="">port 0xf200-0xf2ff mem 0xfdffe000-0xfdffe0ff irq 17 at device 6.0 on pci0
        miibus1: <mii bus="">on rl1
        rlphy1: <realtek internal="" media="" interface="">PHY 0 on miibus1
        rlphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
        rl1: Ethernet address: 00:40:48:b1:ab:0f
        rl1: [ITHREAD]
        rl2: <realtek 10="" 8139="" 100basetx="">port 0xee00-0xeeff mem 0xfdffd000-0xfdffd0ff irq 18 at device 7.0 on pci0
        miibus2: <mii bus="">on rl2
        rlphy2: <realtek internal="" media="" interface="">PHY 0 on miibus2
        rlphy2:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
        rl2: Ethernet address: 00:40:48:b1:ab:0e
        rl2: [ITHREAD]
        atapci0: <via 6420="" sata150="" controller="">port 0xff00-0xff07,0xfe00-0xfe03,0xfd00-0xfd07,0xfc00-0xfc03,0xfb00-0xfb0f,0xf000-0xf0ff irq 20 at device 15.0 on pci0
        atapci0: [ITHREAD]
        ata2: <ata 0="" channel="">on atapci0
        ata2: [ITHREAD]
        ata3: <ata 1="" channel="">on atapci0
        ata3: [ITHREAD]
        atapci1: <via 8237="" udma133="" controller="">port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfa00-0xfa0f at device 15.1 on pci0
        ata0: <ata 0="" channel="">on atapci1
        ata0: [ITHREAD]
        ata1: <ata 1="" channel="">on atapci1
        ata1: [ITHREAD]
        uhci0: <via 83c572="" usb="" controller="">port 0xf900-0xf91f irq 21 at device 16.0 on pci0
        uhci0: [GIANT-LOCKED]
        uhci0: [ITHREAD]
        usb0: <via 83c572="" usb="" controller="">on uhci0
        usb0: USB revision 1.0
        uhub0: <via 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usb0
        uhub0: 2 ports with 2 removable, self powered
        uhci1: <via 83c572="" usb="" controller="">port 0xf800-0xf81f irq 21 at device 16.1 on pci0
        uhci1: [GIANT-LOCKED]
        uhci1: [ITHREAD]
        usb1: <via 83c572="" usb="" controller="">on uhci1
        usb1: USB revision 1.0
        uhub1: <via 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usb1
        uhub1: 2 ports with 2 removable, self powered
        uhci2: <via 83c572="" usb="" controller="">port 0xf700-0xf71f irq 21 at device 16.2 on pci0
        uhci2: [GIANT-LOCKED]
        uhci2: [ITHREAD]
        usb2: <via 83c572="" usb="" controller="">on uhci2
        usb2: USB revision 1.0
        uhub2: <via 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usb2
        uhub2: 2 ports with 2 removable, self powered
        uhci3: <via 83c572="" usb="" controller="">port 0xf600-0xf61f irq 21 at device 16.3 on pci0
        uhci3: [GIANT-LOCKED]
        uhci3: [ITHREAD]
        usb3: <via 83c572="" usb="" controller="">on uhci3
        usb3: USB revision 1.0
        uhub3: <via 1="" 9="" uhci="" root="" hub,="" class="" 0,="" rev="" 1.00="" 1.00,="" addr="">on usb3
        uhub3: 2 ports with 2 removable, self powered
        ehci0: <via vt6202="" usb="" 2.0="" controller="">mem 0xfdffc000-0xfdffc0ff irq 21 at device 16.4 on pci0
        ehci0: [GIANT-LOCKED]
        ehci0: [ITHREAD]
        usb4: EHCI version 1.0
        usb4: companion controllers, 2 ports each: usb0 usb1 usb2 usb3
        usb4: <via vt6202="" usb="" 2.0="" controller="">on ehci0
        usb4: USB revision 2.0
        uhub4: <via 1="" 9="" ehci="" root="" hub,="" class="" 0,="" rev="" 2.00="" 1.00,="" addr="">on usb4
        uhub4: 8 ports with 8 removable, self powered
        isab0: <pci-isa bridge="">at device 17.0 on pci0
        isa0: <isa bus="">on isab0
        pci0: <multimedia, audio="">at device 17.5 (no driver attached)
        acpi_tz0: <thermal zone="">on acpi0
        speaker0: <pc speaker="">port 0x61 on acpi0
        sio0: configured irq 4 not in bitmap of probed irqs 0
        sio0: port may not be enabled
        sio0: configured irq 4 not in bitmap of probed irqs 0
        sio0: port may not be enabled
        sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
        sio0: type 16550A
        sio0: [FILTER]
        sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
        sio1: type 16550A
        sio1: [FILTER]
        atkbdc0: <keyboard controller="" (i8042)="">port 0x60,0x64 irq 1 on acpi0
        atkbd0: <at keyboard="">irq 1 on atkbdc0
        kbd0 at atkbd0
        atkbd0: [GIANT-LOCKED]
        atkbd0: [ITHREAD]
        psm0: <ps 2="" mouse="">irq 12 on atkbdc0
        psm0: [GIANT-LOCKED]
        psm0: [ITHREAD]
        psm0: model IntelliMouse Explorer, device ID 4
        cpu0: <acpi cpu="">on acpi0
        est0: <enhanced speedstep="" frequency="" control="">on cpu0
        est: CPU supports Enhanced Speedstep, but is not recognized.
        est: cpu_vendor CentaurHauls, msr 406050604000506
        device_attach: est0 attach returned 6
        p4tcc0: <cpu frequency="" thermal="" control="">on cpu0
        pmtimer0 on isa0
        orm0: <isa option="" rom="">at iomem 0xd0000-0xd3fff pnpid ORM0000 on isa0
        ppc0: <parallel port="">at port 0x378-0x37f irq 7 on isa0
        ppc0: Generic chipset (EPP/NIBBLE) in COMPATIBLE mode
        ppbus0: <parallel port="" bus="">on ppc0
        ppbus0: [ITHREAD]
        plip0: <plip network="" interface="">on ppbus0
        plip0: WARNING: using obsoleted IFF_NEEDSGIANT flag
        lpt0: <printer>on ppbus0
        lpt0: Interrupt-driven port
        ppi0: <parallel i="" o="">on ppbus0
        ppc0: [GIANT-LOCKED]
        ppc0: [ITHREAD]
        sc0: <system console="">at flags 0x100 on isa0
        sc0: VGA <16 virtual consoles, flags=0x300>
        vga0: <generic isa="" vga="">at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
        Timecounter "TSC" frequency 500023847 Hz quality 800
        Timecounters tick every 1.000 msec
        IPsec: Initialized Security Association Processing.
        ad2: 1911MB <transcend 20070831="">at ata1-master PIO4
        GEOM: ad2: partition 4 does not start on a track boundary.
        GEOM: ad2: partition 4 does not end on a track boundary.
        GEOM: ad2: partition 1 does not start on a track boundary.
        GEOM: ad2: partition 1 does not end on a track boundary.
        WARNING: Expected rawoffset 0, found 20480
        Trying to mount root from ufs:/dev/ad2s4a</transcend></generic></system></parallel></printer></plip></parallel></parallel></isa></cpu></enhanced></acpi></ps></at></keyboard></pc></thermal></multimedia,></isa></pci-isa></via></via></via></via></via></via></via></via></via></via></via></via></via></via></via></ata></ata></via></ata></ata></via></realtek></mii></realtek></realtek></mii></realtek></realtek></mii></realtek></vga-compatible></pci></pci-pci></acpi></acpi></sleep></power></cn700></software></version></cn700 ></rng,aes,aes-ctr,sha1,sha256,rsa></sse3,est,tm2></fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,cmov,pat,clflush,acpi,mmx,fxsr,sse,sse2,tm,pbe></rng,aes,aes-ctr,sha1,sha256,rsa></rng,aes,aes-ctr,sha1,sha256,rsa></sse3,est,tm2></fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,cmov,pat,clflush,acpi,mmx,fxsr,sse,sse2,tm,pbe>

        1 Reply Last reply Reply Quote 0
        • dotdashD
          dotdash
          last edited by

          Looks like padlock was removed from the kernel. You could try copying the module in from a stock FreeBSD 7.2 box and set padlock_load=YES.

          1 Reply Last reply Reply Quote 0
          • R
            ron
            last edited by

            The padlock engine driver is not included in the default build, but it does appear that openssl can somehow access the engine directly without the kernel module being loaded (my testing without the module loaded matches bao's).

            I have built a custom build of the latest 1.2.3 that includes the padlock module in the build.  When I manually load the module it does work, and the performance of the cryptodev engine in the openssl test also improves.  What I have found though is certain situations crash the entire box (deleting a SA on the other IPSec endpoint for one seems to bring this about fairly regularly).  The crash is severe enough that the box doesn't boot upon the reboot.  The file system is corrupt (/tmp is missing, etc) and it requires a fresh reinstall.

            Has anyone successfully used the Padlock driver on recent versions of pfSense or FreeBSD 7.2?

            Regards,
            Ron

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

              @dotdash:

              Looks like padlock was removed from the kernel. You could try copying the module in from a stock FreeBSD 7.2 box and set padlock_load=YES.

              Does this mean that the pfsense team removed it from our kernel?  If so, is there a reason?

              1 Reply Last reply Reply Quote 0
              • jimpJ
                jimp Rebel Alliance Developer Netgate
                last edited by

                It's been gone for a while, apparently at some point it did not compile. It was disabled in December of 08. It might compile now, if someone wanted to try a custom build.

                You could open a redmine ticket about it, but it might be too late for 1.2.3.

                Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                Need help fast? Netgate Global Support!

                Do not Chat/PM for help!

                1 Reply Last reply Reply Quote 0
                • jimpJ
                  jimp Rebel Alliance Developer Netgate
                  last edited by

                  I have not tested this, but I did a run on my builder with the padlock module back in the list. If someone is feeling brave they can try it:

                  http://pingle.org/files/pfSense-Full-Update-1.2.3-RC3-padlock.tgz

                  (I don't have a system with padlock in it to try, myself)

                  Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                  Need help fast? Netgate Global Support!

                  Do not Chat/PM for help!

                  1 Reply Last reply Reply Quote 0
                  • jimpJ
                    jimp Rebel Alliance Developer Netgate
                    last edited by

                    Padlock was added back into the 2.0 builds, for those interested.

                    Did anyone try the padlock image I built?

                    Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                    Need help fast? Netgate Global Support!

                    Do not Chat/PM for help!

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

                      It should be back in all builds actually, should be in 1.2.3 snapshots from 20091020 on.

                      1 Reply Last reply Reply Quote 0
                      • B
                        bao
                        last edited by

                        It works perfectly with the latest snapshot: 20091102-0130. I got 45Mps IPSec AES256 throughput measured by iperf on a 500Mhz VIA C7, compared to a miserable 12Mbps without Padlock.

                        Thank you both to Jim and Chris!

                        1 Reply Last reply Reply Quote 0
                        • ?
                          A Former User
                          last edited by

                          yes the latest snapshot works fine..

                          but the hardware crypto (padlock) isnt listed on the main webpage like the HiFN one is..

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post
                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.