prplFoundation · prplWare

4.2.0 memory-optimization → latest-24.10 forward-port gap

data 2026-07-17 08:31 UTC · latest-24.10 pinned @ 5dd16ff32cf9 (2026-07-16) · branch-off 69c998a2fab3 · build 1049e27 · 2026-07-17

Executive summary

The prplWare 4.2.0 RAM-optimization programme lives on proj_prplware-v4.2.0_optimizations branches cut from mainline-24.10 @ 69c998a2fab3. It re-pins 103 components across three feeds to optimization tags, plus integration-level changes in prplos/prplos (feed pins, gmap MIB compile-time flags, CRAM expectations). Since then the release train moved on and latest-24.10 drifted by 1,221 commits. This dashboard measures, per component, the optimization diff, the mainline drift, and their file-level overlap — the raw material for a forward-port effort estimate.

Components touched
103
28 feed_amx · 73 feed-prplos · 2 feed-prplmesh
Already ported
3
opt work contained in current pin
Low risk
50
re-tag / trivial rebase
Medium risk
17
rebase with review
High risk
33
conflict-prone or unresolvable
Optimization churn
+54,227 −13,643
2,006 files · 1,365 commits across component repos
Mainline drift since branch-off
1,221
prplos/prplos commits · feeds: 13 amx / 228 prplos / 68 mesh
New packages since branch-off
17
2 entered prpl_core — never optimization-reviewed

T-shirt rollup (non-ported): 50 S · 27 M · 18 L · 5 XL heuristics ↓

Risk mix by feed

Ported 3Low 50Med 17High 33

What the optimizations actually do

The optimization branch is not a single technique but a programme: every resident daemon and library was re-pinned to an optimization tag carrying its own changes. Mining the 1,274 commit subjects across all component opt diffs, the recurring patterns are (a commit can match several themes):

At the integration level (prplos/prplos), the optimization branch disables the gmap MIB features INFORMATION, LOCATION, PRIORITY and WAN-ACCESS via CONFIG_SAH_SERVICES_GMAP-MIBS-COMMON_*=n in the touched profiles, re-pins all three feeds, and updates CRAM test expectations to the optimized behaviour — see the forward-port checklist.

Top 15 components by optimization churn

mod-amxb-ubus

feed_amx LOW M
v3.11.0 → sah-next_v3.8.20 · now v3.11.0
42 commits57 files+4,426 −53drift 0overlap 0
  • Memleak: free log filename when unloading ubus backend
  • register: check to avoid double removel ( HOP-9126 )

gmap-server

feed-prplos MED L
v3.3.0 → proj_prplware-v4.2.0_optimizations_v0.3.0 · now v3.6.0
106 commits228 files+3,305 −978drift 1overlap 4
  • alternative: Fix cleanup not removing master on _del (NET-7069)
  • device_name_table.c: Fix missing alloc failure tests (NET-7212)

libamxd

feed_amx HIGH L
v6.9.1 → sah-next_v6.15.3 · now v6.11.1
101 commits67 files+3,257 −526drift 2overlap 15
  • libamxd: Possible memory leak in amxd_build_key_expr_string (HOP-9732)
  • unit-test: Possible memory leak in amxd_build_key_expr_string (HOP-9732)

lua-amx

feed_amx MED L
v0.7.1 → sah-next_v0.7.2 · now v0.9.1
30 commits60 files+2,416 −1,367drift 3overlap 2
  • [CI] Update autogenerated files
  • If one object is not present the next subscriptions fail (HOP-7739)

libamxc

feed_amx HIGH L
v2.5.3 → sah-next_v2.10.3 · now v2.7.1
63 commits69 files+3,418 −143drift 3overlap 18
  • It is currently not possible to keep an escape character '\' in strings. All these are stripped from the string.
  • amxc_string_join.c: Optimize data joining to string (HOP-9104)

gmap-mibs-common

feed-prplos LOW M
v0.24.7 → proj_prplware-v4.2.0_optimizations_v0.3.0 · now v0.24.7
17 commits40 files+1,389 −1,840drift 0overlap 0
  • baf: introduce the baf.yml file
  • baf: align with latest development

mod-ba-cli

feed_amx LOW M
v0.17.0 → sah-next_v0.21.0 · now v0.17.0
51 commits55 files+2,693 −157drift 0overlap 0
  • Remove ubus references from usp-cli
  • [CI] Update autogenerated files

tr181-dynamicdns

feed-prplos HIGH L
v1.8.0 → proj_prplware-v4.2.0_optimizations_v0.2.0 · now v1.11.0
13 commits50 files+2,499 −270drift 1overlap 5
  • tr181-dynamicdns: replace deprecated amxd_object_get_param_value usage (HOP-11906)
  • tr181-dynamicdns: update unit tests for deprecated param API removal (HOP-11906)

libamxp

feed_amx LOW M
v2.10.0 → sah-next_v2.13.0 · now v2.10.0
68 commits51 files+2,497 −249drift 0overlap 0
  • amxp_subproc: [overlayfs removal] capabilities dropped on subprocess execution (HOP-10172)
  • amxp_signal: fix a potential memory leak

libamxb

feed_amx HIGH XL
v4.15.0 → sah-next_v4.22.1 · now v4.17.0
184 commits229 files+2,667 −34drift 10overlap 14
  • COVERITY: Resource leak (CID 508889)
  • fix: prevent memory leak in backend manager object resolution (HOP-10704)

libamxo

feed_amx HIGH L
v5.5.1 → sah-next_v5.10.1 · now v5.7.1
64 commits59 files+2,293 −134drift 3overlap 14
  • The odl print method is stripping all remaining escape chars "\" (HOP-8921)
  • amxo_parser: Coverity: Fix resource leak (CID 341090, 341090)

prplmesh

feed-prplmesh HIGH XL
7d5427c444d0 → 84138e0ff0ff · now 8ceef1b0f70a
57 commits86 files+1,950 −415drift 261overlap 86
  • agent: Filter out disabled BSSs in metric reporting
  • Merge branch 'bugfix/PPM-3756_dont-report_disabled_ap_metrics' into 'master'

tr181-firewall

feed-prplos HIGH XL
v8.16.0 → proj_prplware-v4.2.0_optimizations_v0.2.0 · now v8.18.1
13 commits71 files+919 −1,406drift 7overlap 18
  • fwiface: allocate/free fwiface struct only when required
  • firewall: reduce configuration size to lower RAM consumption

hosts-manager

feed-prplos MED M
v0.13.0 → proj_prplware-v4.2.0_optimizations_v0.2.0 · now v0.16.0
40 commits47 files+1,977 −294drift 4overlap 2
  • [tr181-hosts] Origin and PhysAddressMask not implemented (HOP-9334)
  • dm_hosts_*: Don't use amxc_string(_setf) for literals (NET-6736)

libamxa

feed_amx HIGH L
v0.11.8 → sah-next_v0.14.0 · now v0.12.1
35 commits68 files+1,708 −528drift 7overlap 7
  • [CI] Update autogenerated files
  • Issue HOP-7990: [USP][Del_Message] No response from the agent after sending Del message request with an invalid Object

Full gap table — 103 components

ComponentFeedBase → OptOpt commitsFiles± linesCurrentDriftOverlapPortedRiskSizeCompare
libamxd feed_amx v6.9.1 → sah-next_v6.15.3 101 67 +3,257 −526 v6.11.1 2 15 no HIGH L
libamxc feed_amx v2.5.3 → sah-next_v2.10.3 63 69 +3,418 −143 v2.7.1 3 18 partial (63 missing) HIGH L
tr181-dynamicdns feed-prplos v1.8.0 → opt_v0.2.0 13 50 +2,499 −270 v1.11.0 1 5 no HIGH L
libamxb feed_amx v4.15.0 → sah-next_v4.22.1 184 229 +2,667 −34 v4.17.0 10 14 no HIGH XL
libamxo feed_amx v5.5.1 → sah-next_v5.10.1 64 59 +2,293 −134 v5.7.1 3 14 no HIGH L
prplmesh feed-prplmesh 7d5427c444d0 → 84138e0ff0ff 57 86 +1,950 −415 8ceef1b0f70a 261 86 partial (2 missing) HIGH XL
tr181-firewall feed-prplos v8.16.0 → opt_v0.2.0 13 71 +919 −1,406 v8.18.1 7 18 no HIGH XL
libamxa feed_amx v0.11.8 → sah-next_v0.14.0 35 68 +1,708 −528 v0.12.1 7 7 no HIGH L
tr181-qos feed-prplos v4.12.0 → opt_v0.2.0 24 45 +1,363 −358 v4.15.1 6 27 no HIGH L
tr181-dns feed-prplos v3.8.1 → opt_v0.1.0 23 50 +1,506 −162 v3.12.0 6 36 no HIGH L
amxo-cg feed_amx v1.8.0 → sah-next_v1.8.3 45 31 +1,189 −73 v1.11.1 6 6 partial (45 missing) HIGH L
libfwrules feed-prplos v2.11.1 → opt_v0.1.0 6 12 +1,022 −19 v2.13.1 1 11 no HIGH L
mod-dns-unbound feed-prplos v1.9.2 → opt_v0.1.0 2 16 +678 −126 v1.12.0 2 16 no HIGH L
amxrt feed_amx v2.4.0 → sah-next_v2.3.2 22 8 +339 −9 v2.6.1 4 3 no HIGH M
mod-netmodel feed-prplos v0.5.5 → opt_v0.1.0 6 12 +179 −85 v0.8.0 4 6 partial (4 missing) HIGH M
libqosmodule feed-prplos v1.0.1 → opt_v0.1.0 6 10 +76 −109 v1.2.1 6 10 partial (6 missing) HIGH L
mod-dmext feed-prplos v0.13.1 → opt_v0.1.0 3 10 +66 −79 v0.15.2 4 4 no HIGH M
libamxt feed_amx v1.0.2 → sah-next_v1.0.10 20 7 +107 −7 v1.2.0 2 3 no HIGH M
ethernet-manager feed-prplos v1.31.1 → opt_v0.1.0 1 7 +52 −56 v1.37.0 26 6 no HIGH L
ip-manager feed-prplos v1.52.0 → opt_v0.1.0 1 11 +40 −41 v1.57.1 10 8 no HIGH L
tr181-bulkdata feed-prplos v0.5.0 → opt_v0.1.0 1 9 +39 −36 v0.9.0 7 4 no HIGH M
tr069-manager feed-prplos v1.40.1 → opt_v0.1.1 3 6 +33 −20 v1.45.1 13 4 no HIGH M
deviceinfo-manager feed-prplos v2.38.9 → opt_v0.1.0 1 10 +26 −18 v2.43.2 24 3 no HIGH M
tr181-sfp feed-prplos v0.5.1 → opt_v0.1.0 1 5 +9 −25 v0.9.0 48 5 no HIGH L
tr181-dhcpv6client feed-prplos v1.14.0 → opt_v0.1.0 1 3 +13 −15 v1.18.0 3 1 no HIGH S
amx-processmonitor feed-prplos v0.5.1 → opt_v0.1.0 1 1 +9 −9 v0.8.2 4 1 no HIGH S
reboot-service feed-prplos v1.3.0 → opt_v0.1.0 1 2 +7 −11 v1.5.3 11 2 no HIGH M
mod-pcm-svc feed-prplos v0.15.4 → opt_v0.1.0 2 3 +5 −7 v0.18.1 15 3 no HIGH M
netmodel-cellular feed-prplos v0.2.0 → opt_v0.1.0 2 3 +4 −4 v0.5.0 5 3 no HIGH S
pcm-manager feed-prplos v0.22.0 → opt_v0.1.0 1 2 +3 −4 v0.25.0 3 1 no HIGH S
pwhm feed-prplmesh v7.19.0 → opt_v0.1.0 1 1 +1 −2 v7.29.3 184 1 no HIGH L
libsahtrace feed_amx v1.15.0 → sah-next-4.2_v0.1.1 v1.15.0 0 0 ? HIGH XL
mod-amxb-pcb feed_amx — → sah-next_v3.17.3 0 ? HIGH XL
gmap-server feed-prplos v3.3.0 → opt_v0.3.0 106 228 +3,305 −978 v3.6.0 1 4 no MED L
lua-amx feed_amx v0.7.1 → sah-next_v0.7.2 30 60 +2,416 −1,367 v0.9.1 3 2 no MED L
hosts-manager feed-prplos v0.13.0 → opt_v0.2.0 40 47 +1,977 −294 v0.16.0 4 2 no MED M
gmap-mod-ethernet-dev feed-prplos v1.22.0 → opt_v0.1.0 14 38 +673 −829 v1.22.1 2 3 no MED M
netmodel feed-prplos v2.23.1 → opt_v0.1.0 8 19 +763 −55 v2.26.0 1 0 no MED S
libamxj feed_amx v1.0.4 → sah-next_v1.1.4 23 13 +381 −21 v1.2.1 7 3 no MED M
amx-cli feed_amx v0.5.4 → sah-next_v0.5.8 14 16 +172 −73 v0.6.0 7 3 no MED M
tr181-ppp feed-prplos v0.19.0 → opt_v0.1.1 2 9 +98 −73 v0.23.0 2 1 no MED M
tr181-usermanagement feed-prplos v0.28.0 → opt_v0.1.0 1 8 +64 −64 v0.31.1 2 0 no MED S
tr181-syslog feed-prplos v1.13.0 → opt_v0.1.0 1 8 +39 −41 v1.16.0 3 0 no MED S
multisettings feed-prplos v0.14.1 → opt_v0.1.0 1 8 +37 −37 v0.17.0 1 0 no MED S
dhcpv4-manager feed-prplos v2.18.1 → opt_v0.1.0 1 6 +39 −30 v2.32.2 8 0 no MED M
tr181-routeradvertisement feed-prplos v0.23.0 → opt_v0.1.0 1 4 +23 −25 v0.27.1 3 1 no MED S
tr181-cpu feed-prplos v0.1.0 → opt_v0.1.0 1 4 +25 −21 v0.3.1 3 1 no MED S
wan-manager feed-prplos v1.10.11 → opt_v0.1.0 2 7 +19 −16 v1.13.0 41 2 no MED L
time-manager feed-prplos v2.9.0 → opt_v0.1.0 1 6 +17 −13 v2.11.1 3 0 no MED S
dhcpv6s-manager feed-prplos v0.26.0 → opt_v0.1.0 1 4 +8 −9 v0.30.2 6 1 no MED M
mod-amxb-ubus feed_amx v3.11.0 → sah-next_v3.8.20 42 57 +4,426 −53 v3.11.0 0 0 no LOW M
gmap-mibs-common feed-prplos v0.24.7 → opt_v0.3.0 17 40 +1,389 −1,840 v0.24.7 0 0 no LOW M
mod-ba-cli feed_amx v0.17.0 → sah-next_v0.21.0 51 55 +2,693 −157 v0.17.0 0 0 no LOW M
libamxp feed_amx v2.10.0 → sah-next_v2.13.0 68 51 +2,497 −249 v2.10.0 0 0 no LOW M
libamxs feed_amx v0.9.0 → sah-next_v1.0.2 32 30 +1,877 −156 v0.9.0 0 0 no LOW M
libgmap-client feed-prplos v2.3.0 → opt_v0.1.0 9 45 +654 −857 v2.3.0 0 0 no LOW M
acl-manager feed_amx v0.10.0 → sah-next-4.1_v0.4.0 17 33 +1,166 −129 v0.10.0 0 0 no LOW M
amx-fcgi feed_amx v1.6.0 → sah-next_v1.5.0 26 24 +923 −91 v1.6.0 0 0 no LOW M
libnetmodel feed-prplos v1.5.19 → opt_v0.1.1 16 17 +614 −83 v1.5.19 0 0 no LOW S
gmap-mod-self feed-prplos v1.9.0 → opt_v0.1.0 11 26 +403 −222 v1.9.0 0 0 no LOW M
netmodel-netdev feed-prplos v1.0.4 → opt_v0.1.1 11 10 +375 −128 v1.0.4 0 0 no LOW S
libamxrt feed_amx v0.8.0 → sah-next_v0.9.1 34 25 +453 −33 v0.8.0 0 0 no LOW M
gmap-client feed-prplos v1.4.0 → opt_v0.1.0 3 13 +29 −363 v1.4.0 0 0 no LOW S
libfiletransfer feed-prplos v1.7.0 → opt_v0.1.0 7 11 +359 −17 v1.7.0 0 0 no LOW S
amx-faultmonitor feed-prplos v1.4.0 → opt_v0.1.1 3 4 +111 −102 v1.4.0 0 0 no LOW S
libqoscommon feed-prplos v0.4.1 → opt_v0.1.0 7 12 +102 −102 v0.4.1 0 0 no LOW S
libqosnode feed-prplos v1.4.2 → opt_v0.1.0 7 11 +88 −84 v1.4.2 0 0 no LOW S
tr181-dhcpv4client feed-prplos v1.30.1 → opt_v0.1.1 2 5 +102 −51 v1.33.1 2 0 no LOW S
tr181-bridging feed-prplos v2.13.0 → opt_v0.1.0 1 5 +54 −44 v2.16.0 6 0 no LOW S
mod-busstats feed_amx v0.3.0 → sah-next_v0.2.5 5 9 +69 −25 v0.3.0 0 0 no LOW S
netmodel-bridge feed-prplos v1.0.5 → opt_v0.1.0 2 6 +73 −9 v1.0.5 0 0 no LOW S
netmodel-clients feed-prplos v0.3.0 → opt_v0.1.0 3 6 +42 −7 v0.3.0 0 0 no LOW S
oopsmonitor feed-prplos v1.3.0 → opt_v0.1.1 2 3 +28 −16 v1.3.0 0 0 no LOW S
tr181-security feed-prplos v0.10.0 → opt_v0.1.0 1 2 +9 −21 v0.14.0 8 0 no LOW S
libamxm feed_amx v0.1.1 → sah-next_v0.1.2 5 5 +25 −3 v0.1.1 0 0 no LOW S
moca-manager feed-prplos v0.8.2 → opt_v0.1.0 1 4 +13 −10 v0.11.0 1 0 no LOW S
mod-lua-amx feed_amx v0.1.11 → sah-next_v0.1.12 3 5 +19 −4 v0.1.11 0 0 no LOW S
tr181-periodicfileupload feed-prplos v0.4.0 → opt_v0.1.0 1 2 +10 −10 v0.7.0 2 0 no LOW S
mod-fw-host feed-prplos v0.1.4 → opt_v0.1.0 2 3 +9 −9 v0.1.4 0 0 no LOW S
mod-logical-api feed-prplos v0.9.0 → opt_v0.1.0 1 4 +9 −9 v0.11.1 2 0 no LOW S
packet-interception feed-prplos v0.6.0 → opt_v0.1.0 1 3 +5 −12 v0.6.0 0 0 no LOW S
libamxtui feed_amx v0.1.7 → sah-next_v0.1.8 3 3 +10 −5 v0.1.7 0 0 no LOW S
routing-manager feed-prplos v1.28.0 → opt_v0.1.0 2 5 +7 −7 v1.33.0 4 0 no LOW S
tr181-dslite feed-prplos v0.14.1 → opt_v0.1.0 1 1 +7 −6 v0.17.0 1 0 no LOW S
tr181-powerstatus feed-prplos v0.5.0 → opt_v0.1.0 1 2 +6 −6 v0.5.0 0 0 no LOW S
tr181-usb feed-prplos v0.3.1 → opt_v0.1.0 1 2 +5 −5 v0.8.1 8 0 no LOW S
libgmap-ext feed-prplos v1.4.0 → opt_v0.1.0 2 3 +3 −5 v1.4.0 0 0 no LOW S
tr181-button feed-prplos v0.3.7 → opt_v0.1.0 1 1 +4 −4 v0.3.7 0 0 no LOW S
tr181-logical feed-prplos v1.3.3 → opt_v0.1.0 1 3 +4 −4 v1.7.0 2 0 no LOW S
tr181-conntrack-query feed-prplos v0.2.1 → opt_v0.1.0 1 1 +1 −6 v0.4.2 2 0 no LOW S
tr181-led feed-prplos v0.13.0 → opt_v0.1.0 1 1 +3 −4 v0.17.0 2 0 no LOW S
mcastd-noforward feed-prplos v0.1.4 → opt_v0.1.0 1 1 +3 −3 v0.1.4 0 0 no LOW S
tr181-upnp feed-prplos v0.16.0 → opt_v0.1.0 1 1 +3 −3 v0.20.2 6 0 no LOW S
tr181-xpon feed-prplos v1.8.5 → opt_v0.1.0 1 1 +3 −3 v1.12.1 36 0 no LOW M
tr181-conmon feed-prplos v0.4.0 → opt_v0.1.0 2 2 +3 −2 v0.4.0 0 0 no LOW S
tr181-device feed-prplos v0.33.0 → opt_v0.1.0 1 1 +3 −2 v0.36.1 2 0 no LOW S
tr181-dnssd feed-prplos v0.11.0 → opt_v0.1.0 1 1 +1 −3 v0.13.1 1 0 no LOW S
tr181-mcastd feed-prplos v0.4.0 → opt_v0.1.0 1 1 +1 −1 v0.4.0 0 0 no LOW S
tr181-pcp feed-prplos v0.13.0 → opt_v0.1.0 1 1 +1 −1 v0.16.3 4 0 no LOW S
uriparser feed_amx 0.9.3 → 1.0.0 1 0.9.3 0 n/a LOW S
amxb-inspect feed_amx v1.2.1 → v1.2.1 0 0 +0 −0 v1.2.1 0 0 yes PORTED -
dmtui feed_amx v0.3.3 → v0.3.3 0 0 +0 −0 v0.3.3 0 0 yes PORTED -
mod-dm-cli feed_amx v0.2.6 → v0.2.6 0 0 +0 −0 v0.2.6 0 0 yes PORTED -

† hover for per-component notes · opt_* abbreviates the proj_prplware-v4.2.0_optimizations_* tag prefix · “Opt commits/files/± lines” = base→opt compare in the component repo · “Drift” = commits base→current · “Overlap” = files touched by both diffs · sizes per heuristics.

New in feed-prplos since branch-off — 17 packages, never optimization-reviewed

The forward-port does not land on the base the optimizations were written for: 17 packages were added to feed-prplos after branch-off (feed_amx / feed-prplmesh: none). Two of them — tr181-schedules and mod-scheduler-amxp — ship in the prpl_core profile (81 → 83 packages), i.e. new resident memory consumers that may need their own optimization pass; the swupdate stack rides along in secure_boot_emmc builds.

PackageCurrent versionShips in profilesFeed commits
mod-scheduler-amxp v0.1.0 prpl_core 1
tr181-schedules v0.1.2 prpl_core 3
imagegenerator v0.2.0 secure_boot_emmc 5
initramfs-generator v0.0.0 secure_boot_emmc 2
libkcapi 1.5.0 no profile ships it 3
libmfg v1.3.0 no profile ships it 1
libpass v0.1.0 no profile ships it 1
libubootenv secure_boot_emmc 1
mod-fwi-swupdate v0.6.1 secure_boot_emmc 1
mod-wanmgr-system-ospv2 v0.2.0 mxl_x86_osp_tb341_v2 2
prpl-securestore no profile ships it 1
readmfg v0.0.6 secure_boot_emmc 1
swugenerator 0.6 no profile ships it 2
swupdate gen_2025.05_v1.0.0 secure_boot_emmc 2
sysregister v0.0.0 no profile ships it 3
sysupgrade-prpl secure_boot_emmc 1
uboot-tools v2026.01 secure_boot_emmc 6

Forward-port checklist — integration layer

Beyond the 103 component repos, the optimization lives in prplos/prplos integration changes (91 commits, 20 files on the opt branch) that must be re-applied on a branch that has meanwhile moved 1,221 commits:

  1. Re-pin the three feeds in the touched profiles to forward-ported optimization tags. Current latest-24.10 pins: feed_amx 762470833040, feed-prplos 0c5d4e4a977d, feed-prplmesh 9ce07a36becd — the feeds moved 13/228/68 commits since branch-off. Touched profiles:
    • profiles/lcm.yml
    • profiles/mtk_filogic.yml
    • profiles/prpl_core.yml
    • profiles/qca_ipq95xx.yml
  2. Re-apply the gmap MIB compile-time flags saving resident memory: CONFIG_SAH_SERVICES_GMAP-MIBS-COMMON_INFORMATION/LOCATION/PRIORITY/WAN-ACCESS=n.
  3. Update CRAM test expectations to optimized behaviour (11 files, including board build-configs for six targets):
    • .gitlab/tests/cram/arcadyan-mozart/005-build-config.t
    • .gitlab/tests/cram/generic/acceleration-plan-components/014-firewall-levels.t
    • .gitlab/tests/cram/generic/acceleration-plan-components/016-firewall-ipset.t
    • .gitlab/tests/cram/generic/acceleration-plan-components/046-qos-classification.t
    • .gitlab/tests/cram/generic/obuspa.t
    • .gitlab/tests/cram/generic/ubus-datamodel-list.t
    • .gitlab/tests/cram/mxl25641-hdk-6/005-build-config.t
    • .gitlab/tests/cram/prpl-haze/005-build-config.t
    • .gitlab/tests/cram/turris-omnia/005-build-config.t
    • .gitlab/tests/cram/urx851-b0-dk/005-build-config.t
    • .gitlab/tests/cram/wnc-freedom/005-build-config.t
  4. Re-align CI plumbing (docker images, release pipeline):
    • .gitlab-ci.yml
    • .gitlab/docker/ib/gitlab.yml
    • .gitlab/docker/ib/lcm/gitlab.yml
    • .gitlab/docker/sdk/gitlab.yml
    • .gitlab/release.yml
  5. Stabilize the run stage on the boards the opt branch tuned expectations for (MXL25641-HDK-6, WNC Freedom) before trusting CRAM comparisons.
  6. Pick up the in-flight gmap forward-port. dev_ram_optimizations_gmap_latest-24.10 exists (1 commit ahead of latest-24.10, last activity 2026-04-07); its MR was closed unmerged:
  7. Optimization-review the new resident consumers. tr181-schedules and mod-scheduler-amxp entered the prpl_core profile after branch-off and have never been optimization-reviewed — see new components.

Footnotes

Unresolved components (1)

Unresolvable metrics are pinned to risk HIGH rather than silently dropped; the release tarball (PKG_HASH in the feed) still exists for a manual diff.

Scoring heuristics

RiskPORTED: the opt ref is fully contained in (or identical to) the current pin. LOW: zero mainline drift (re-tag), or an opt diff ≤ 5 files with no file overlap. HIGH: ≥ 5 overlapping files, overlap ≥ 30% of the opt diff, or truncated/unresolvable data. MED: everything else. Overlap = files changed by both the optimization diff and the mainline drift — a proxy for merge conflicts.

T-shirt size — points for churn (>5 files or >200 lines: 1, >20/1000: 2, >50/3000: 3), drift (>5 commits: 1, >30: 2, >100: 3) and overlap (≥1 file: 1, ≥5: 2, ≥10: 3); S ≤ 1, M ≤ 3, L ≤ 6, XL ≥ 7. Heuristic ranking, not person-days.

Method & data

All numbers are re-derived from GitLab (never from prose docs): the component set is the Makefile-blob diff of each feed between the branch-off and optimization SHAs; refs are parsed from each package Makefile at three feed states; per-component metrics use the GitLab compare API (three-way: base→opt, base→current, current→opt for ported-detection). Truncated compares fall back to exact commit counting. Regenerate with make fetch build — sources in the repo.

uriparser is third-party (GitHub-hosted); its gap is the feed-level packaging diff only.

Removed packages

No packages were removed from the feeds between branch-off and the current pins.