Re: FreeBSD port of the Omada SDN Controller
- Reply: Mark Felder : "Re: FreeBSD port of the Omada SDN Controller"
- In reply to: Mark Felder : "FreeBSD port of the Omada SDN Controller"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 26 Aug 2025 00:00:26 UTC
On 8/25/25 11:54, Mark Felder wrote: > Hello all, > > The TP-Link Omada controller software has been on the WantedPorts list for a while and I've picked up a modern TP-Link EAP to play with, so I did some investigation and found a viable solution to this problem. > > I have a port patch you can fetch here for testing: https://people.freebsd.org/~feld/net-mgmt_omada5.patch If you are ${RM} ing extracted content because you extracted it but don't want it or it interferes, consider EXTRACT_AFTER_ARGS+= --exclude bin/topdf and similar to just not extract them. This reduces disk space and I/O during build but I found some archive formats seemed to extract slower once given such instructions but I haven't looked into optimizing it. I don't think the pkg-descr would need to have "Omada" in front of each of their device types. I wonder if there would be value in making the COMMENT dynamically generate the version # so it doesn't get missed porting a future update or if that would be considered not worth a performance impact. Putting the version in the comment seems quite redundant to me which I see net-mgmt/unifi9 also did but other programs like postgresql and llvm avoid even though they have a better number of ports in the tree. You may want to make sure USES+=cpe is ready to go if it is the software as found previously vulnerable at https://nvd.nist.gov/products/cpe/search/results?namingFormat=2.3&keyword=omada+controller . Their website says it needs Java 8+; do we really need to hardcode 17 only? > A blog post explaining the porting journey is here: https://blog.feld.me/posts/2025/08/omada-on-freebsd/ Thank you for sharing the experience of doing this as such resources are useful for others to learn from. More portable code would be setting isLinuxOS for both FreeBSD and Linux instead of replacing; if it won't be upstreamed then your patch replacing the current test is more optimized. I'd consider changing 127.0.0.1 to localhost unless its know that the software requires IPv4 support or requires it be an IP address. Been a while since I did anything with Java code but I though .jar is a zip. Should be possible to unzip it, patch it, and zip it back up so the user doesn't need to. If Recaf is the only decompiler option and doesn't support command line then it may be worth having the port patch the binary format directly. That will be smaller if an unzip+zip happens. Not > There may be some broken functionality (generating a PDF, something to do with WebP images, possibly the cloud integration?). If you have the gear and a desire to try running the controller on FreeBSD, give this a shot and send feedback. So far it seems to have no problem adopting and managing my EAPs which is the core functionality I cared about. I'd be interested in how to 'properly' resolve the library issues without switching to the Linux ABI to see if it helps other porting efforts I've had though I agree I'd be likely to leave it broken as I don't need/want cloud control over my home network. If fixed in the future, don't forget to consider architecture compatibility/tagging may need to be changed. > Simple instructions: > > - Install the package > - Enable and start MongoDB > - Enable and start Omada > > > It should work. Takes some time for the controller to fully come online (~20 seconds here). > > > > Mark I don't own Omada equipment but do wonder how the latency compare between Unifi and Omada access points as I seem unable to get Wifi ping throughput from either side below an average of about 20ms but fluctuates so much and much higher to where its really hard to say anything meaningful. Seeing that on 2 different generation access points at 2 different sites and tried different Wifi devices connected to it with with occupied and unoccupied bands on 2.4 and 5. Thanks for porting!