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

Update to pfSense packages with XMLRPC sync functionality

Scheduled Pinned Locked Moved Development
7 Posts 4 Posters 466 Views 5 Watching
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.
  • M Offline
    marcosm Netgate
    last edited by marcosm Jun 5, 2025, 3:00 PM Jun 5, 2025, 3:00 PM

    Some quick background:
    There are several packages that implement XMLRPC sync functionality which allows the primary node in a High Availability system to sync its configuration with the secondary node. Some packages even allow entering addresses manually to send the configuration to multiple nodes, or even chain the syncs from node to node. The current XMLRPC sync functionality for packages works separately from the normal config sync that happens between HA nodes; because of this there's a potential race between the system's config sync and the package config sync.

    New:
    A few new XMLRPC plugins have been introduced which address the race condition and improve maintainability - see here. Packages can use these plugins to hook into the configuration sync process that happens in High Availability setups.

    Changes:
    Packages that implement their own XMLRPC code are being updated with the following changes:

    • The "auto" sync code, if applicable, will instead use the new plugins.
    • XMLRPC sync code for the (very) old pfSense versions (older than 2.4) will be removed.
    • If applicable, additional functionality in the package (e.g. manual/chained config sync and file sync) will be kept as is to minimize changes and potential issues.

    These changes should take effect starting with pfSense software releases after CE 2.8.0 and Plus 25.03.

    R 1 Reply Last reply Jun 26, 2025, 9:15 PM Reply Quote 2
    • M marcosm pinned this topic on Jun 5, 2025, 3:38 PM
    • R Offline
      RobbieTT @marcosm
      last edited by Jun 26, 2025, 9:15 PM

      @marcosm

      The HA and non-HA setups could also be improved by a shorter boot time for recovery. I've never really understood why pfSense is so slow to boot, even with high-end hardware.

      Can we chop a minute or two off the reboot time as a project in its own right, to help reduce downtime and/or restore HA redundancy as fast as possible?

      β˜•οΈ

      1 Reply Last reply Reply Quote 0
      • S Offline
        stephenw10 Netgate Administrator
        last edited by Jun 28, 2025, 3:50 PM

        Yup it probably could be improved. There are a number of deliberate delays that were added in the past to allow for various hardware quirks. Some of them may no longer be required.

        However making changes like that will almost inevitably break something for somebody! So we'd likely need to make it optional. πŸ€”

        L 1 Reply Last reply Jul 7, 2025, 2:20 PM Reply Quote 0
        • L Offline
          LukasInCloud @stephenw10
          last edited by Jul 7, 2025, 2:20 PM

          I’d advise running parallel sync tests to ensure the plugins don’t choke under load.

          @RobbieTT, on boot times: have you tried tweaking the loader.conf to cut delays, or is it mostly hardware quirks causing the slowdown?

          R 1 Reply Last reply Jul 7, 2025, 6:13 PM Reply Quote 0
          • R Offline
            RobbieTT @LukasInCloud
            last edited by Jul 7, 2025, 6:13 PM

            @LukasInCloud said in Update to pfSense packages with XMLRPC sync functionality:

            @RobbieTT, on boot times: have you tried tweaking the loader.conf to cut delays, or is it mostly hardware quirks causing the slowdown?

            I'm running on a Supermicro Xeon D-1736NT network box that is well supported by pfSense and has similar interfaces to current Netgate products. It has a little more to load I guess with more hardware acceleration support available (eg QAT) but it is running on bare metal. It's fast, has 32GB of RAM and Optane storage to pull from at very low latency.

            I also have a Netgate 6100, on Optane, that boots in a similar time to the more powerful Xeon unit. I'm not aware of any hardware quirks with either device but I guess both are vulnerable to running code that caters for old hardware or to address problems long since vanished.

            My loader.conf is pretty close to original, if not actually original given the recent pppoe changes. I'm not aware of any loader / system tuneable tweaks that could make pfSense boot faster but always receptive to anything that can reduce downtime on reboots, especially when running betas or dev loads.

            β˜•οΈ

            L 1 Reply Last reply Jul 9, 2025, 7:09 AM Reply Quote 0
            • L Offline
              LukasInCloud @RobbieTT
              last edited by Jul 9, 2025, 7:09 AM

              @RobbieTT You're right that boot time isn't really about hardware anymore, especially on systems like yours. Many of those legacy delays in pfSense probably don't apply to modern setups and could be safely skipped. It might be worth trying a trimmed-down loader.conf just to see how much it helps, especially if you're running dev builds often.

              R 1 Reply Last reply Jul 9, 2025, 7:34 AM Reply Quote 0
              • R Offline
                RobbieTT @LukasInCloud
                last edited by Jul 9, 2025, 7:34 AM

                @LukasInCloud
                Thanks but I would not know where to start to help trim the boot time. Is there a guide somewhere or a resource I could lean on?

                β˜•οΈ

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post
                Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
                  This community forum collects and processes your personal information.
                  consent.not_received