Commit Graph
1932 Commits
Author SHA1 Message Date
Rob Emery 71ceae44c5 Hookimng rjsmin in, at the revision tested, app.js shrank from
151206 to 148202
2026-10-30 11:17:32 +00:00
Rob Emery 445e4427f3 Adding rjsmin.py v1.3.0 for compressing the JS
Command used:
wget 'https://raw.githubusercontent.com/ndparker/rjsmin/refs/tags/1.3.0/rjsmin.py'
2026-10-30 11:17:32 +00:00
Rob Emery 29718a783d Merge pull request #755 from elissa2333/i18n/zh-cn
i18n: improve Simplified Chinese translations
2026-10-30 10:32:55 +00:00
René van Dorst 763f47fa76 Merge pull request #756 from rwalli/doc-sodola-sl-swtgw215as-d
doc: add Sodola SL-SWTGW215AS-D as brand of ZX-SWTGW215AS
2026-10-30 11:12:15 +01:00
rwalli@gmx.at 726d61b778 doc: add Sodola SL-SWTGW215AS-D as brand of ZX-SWTGW215AS 2026-10-30 10:55:13 +01:00
René van Dorst 6f3d4428d4 Merge pull request #749 from vankxr/device/zx_sg4t2
Add machine files for Horaco ZX-SG4T2
2026-10-30 10:54:25 +01:00
niconiconi db9a1ae35f i18n: improve Simplified Chinese translations 2026-10-30 17:29:09 +08:00
Rob Emery c494eeb7a7 Merge pull request #752 from Marco02Arduino/main
Add reset functionality to PCB_K0402WS-v3
2026-10-29 21:52:57 +00:00
feelfree69 3df406a057 Merge pull request #728 from DrDoof/ci/size-summary
ci: show the size of the build next to main in the job summary
2026-10-29 21:55:33 +01:00
d00f a557e285a2 tools: keep the bank table aligned in a terminal
printf pads the cells, so the table lines up on the console and is
still a markdown table in the job summary.
2026-10-29 20:47:31 +01:00
d00f 49f2a156ee ci: drop the write permissions
They were added for the step that commented on the pull request. The
sizes go to the job summary now, which only needs to read the
repository.
2026-10-29 20:01:02 +01:00
d00f 0cdf029afd tools: one script for the bank sizes
bank_occupancy.sh takes the main and branch build directories as
optional arguments and prints a markdown table, so CI calls it instead
of a second script. It gains the HOME, BANK4 and stack rows, and reads
the web assets from the build directory, where html_min is now.
2026-10-29 19:47:08 +01:00
Rob Emery 3b90e85593 Merge pull request #590 from DrDoof/feat/lldp-portdesc
lldp: send the port name as the port description
2026-10-29 18:19:55 +00:00
d00f 3dd60f6b13 lldp: send the port name as the port description
A port named in the CLI or the web UI (port <n> name ...) now carries
that name in a Port Description TLV, so a neighbour sees "Uplink" next
to "Port 9". The tail of the frame is built per port, since the TLV
length differs from port to port; ports without a name send no TLV.
2026-10-29 18:45:57 +01:00
DrDoof 2cd68167fc ci: show the size of the build next to main in the job summary
The bank growth step only exported the sizes to the environment since the
comment that used them was removed, so nothing showed them any more. It now
writes a table of the code banks, XSEG, the stack left after the internal
RAM is allocated and the web assets, main against the branch, to the job
summary, which needs no write permission on the pull request.
2026-10-29 18:45:54 +01:00
Rob Emery 9a61e471ea Merge pull request #675 from andrebrait/fix/session-timeout-default
httpd: raise the default web session timeout to one hour
2026-10-29 17:27:30 +00:00
Rob Emery acf5645687 Merge pull request #739 from DrDoof/fix/sdcc-parallel-device-lib
sdcc: fix the device library race in parallel builds
2026-10-29 17:23:26 +00:00
Rob Emery 9fea7b2882 Merge pull request #599 from DrDoof/feat/lldp-sysdesc-version
lldp: add the firmware version to the system description
2026-10-29 14:20:39 +00:00
Marco02Arduino 3dbdad703c manually rebased 2026-10-29 15:18:26 +01:00
Rob Emery 30ffbf0b47 Merge pull request #588 from DrDoof/feat/lldp-tx
lldp: complete the transmitted TLVs and announce shutdown
2026-10-29 12:28:16 +00:00
Rob Emery 84cb01f67d Merge pull request #587 from DrDoof/feat/lldp-tick
lldp: time the transmit interval from the system tick
2026-10-29 12:19:10 +00:00
João Silva f9c1dd2701 Add machine files for Horaco ZX-SG4T2
Signed-off-by: João Silva <jgc3silva@gmail.com>
2026-10-29 10:59:25 +00:00
Rob Emery 1400431337 Merge pull request #575 from logicog/zoerax
doc: Add HOWTO for using firmware tracing to figure out LED configuration
2026-10-29 08:54:01 +00:00
Rob Emery 119b5ddf13 Merge pull request #743 from gnacho/i18n/es-strings-20261028
l10n: complete the Spanish translation
2026-10-29 08:26:02 +00:00
René van Dorst 231b43b264 Merge pull request #742 from vankxr/device/add-mac
Add MAC offset for GT_ST024M and YS25_0402M
2026-10-28 20:01:19 +00:00
René van Dorst e53ebddc21 Merge pull request #727 from andrebrait/fix/json-array-close
httpd: close the port arrays after their loops
2026-10-28 19:46:25 +00:00
gnacho f23eb6bebb l10n: complete the Spanish translation 2026-10-28 20:45:41 +01:00
João Silva cd51cffb1d Add MAC offset for GT_ST024M and YS25_0402M
Signed-off-by: João Silva <jgc3silva@gmail.com>
2026-10-28 19:06:55 +00:00
DrDoof 8954637bbc sdcc: fix the device library race in parallel builds
The mcs51 library target writes into ../build/$(PORT) without depending on
it, so with -j the archiver can start before the directory exists and the
toolchain build fails with

  sdar: ../build/small/mcs51.lib: No such file or directory

It is intermittent: the same tree builds fine on a retry.
2026-10-28 17:40:19 +01:00
Rob Emery 01fc5db9a3 Merge pull request #737 from DrDoof/fix/stp-port-id-panel
stp: use the front panel number as the port ID
2026-10-28 15:32:38 +00:00
DrDoof bdca888ecd stp: use the front panel number as the port ID
The port ID in the BPDUs was the chip port plus one, so on most boards
it did not match the port label, neither on the Spanning Tree page nor
on the neighbour. Send the front panel number instead, and 101 and up
for the LAGs, the same numbers the page already uses for the Port
column. A returned BPDU of our own is mapped back to the port by that
number.

Scenario 66 gives one port a front panel number that differs from its
chip port.
2026-10-28 16:05:12 +01:00
Andre Brait e8431999e5 httpd: close the port arrays after their loops
send_lldp(), send_eee(), send_bandwidth(), send_storm(), send_mtu() and
send_status() wrote the closing ']' inside the loop, on the last port.
Write it once after the loop, as send_isolation() already does, so the
array is closed however the loop ends.
2026-10-28 11:08:54 +01:00
René van Dorst 7ca4d2c8dc Merge pull request #723 from zoeimogen/main
SWTG024AS-V2.1.0 support (Xikestor SKS3200-4E2X, Sodola SL902-SWTG024AS)
2026-10-28 08:09:02 +01:00
Zoe O'Connell 32dd21bbd3 Add additional information on SWTG024AS-V2.1.0 2026-10-28 00:15:26 +00:00
feelfree69 92f9025109 Merge pull request #671 from gtytup/s25g1109fp
Add Sirivision SR-S25G2109F device (PCB S25G1109FP V1.3)
2026-10-27 22:38:33 +01:00
feelfree69 b65aa82d78 Merge pull request #616 from logicog/zoerax_hg0402xg
New Device: Add support for ZoeRax HG0402XG V1.1
2026-10-27 22:36:49 +01:00
logicog 851eb39344 Merge pull request #444 from DrDoof/feat/rstp
stp: full RSTP and a reworked Spanning Tree page
2026-10-27 22:34:54 +01:00
João Silva 970e98f4c5 test/stp: pack host structs like SDCC and cover the edge recovery
Build the harness with -fpack-struct=1 and assert the frame struct sizes,
so the host reads wire bytes the way the firmware lays them out. Add
scenarios for a port that regains edge after a hold, one that heard a BPDU
and stays non-edge, auto-edge switched off, and a captured RouterOS BPDU
fed in on every port, tagged and untagged.
2026-10-27 22:11:24 +01:00
João Silva 4d009bc8e8 stp: give auto-edge back to a port held by its own BPDU
stp_loop_hold_peer() takes operEdge away from the port that sent the
BPDU we got back, though that port heard nothing itself. When the hold
ran out the port stayed non-edge until its next link change, and every
later state change on it counted as a topology change. Restore edge when
the hold ends with the port still silent and auto-edge on, before the
transition is reported, so the recovery itself is not a change. Hellos
go out on edge ports too, so a loop that persists is caught again.

The console column that shows seconds since the last BPDU is now called
age[s]; it never was a receive count.
2026-10-27 22:11:24 +01:00
d00f eb51128ec7 stp: a port without carrier does not become the root port
stp_reselect() took every port with fresh information as a candidate, so a
BPDU credited to a port whose carrier the once-a-second link poll had not
seen yet made that port the root port before the port was set up for it.
A candidate now needs its link bit as well; the poll that sees the carrier
a moment later runs the selection again. Scenario 54.
2026-10-27 22:11:24 +01:00
d00f b86fd37eaa stp: pass a topology change on only from a forwarding port
stp_in() propagated the TC flag of any BPDU that did not arrive on an
alternate port, and acknowledged and propagated a TCN from any port, so a
port still in its listen period or held discarding in a dispute could flush
the addresses of every other port and move the topology change counter.
802.1D-2004 17.31 keeps the Topology Change machine in LEARNING until the
port forwards and drops rcvdTc and rcvdTcn there. Both paths now ask for
the forwarding state first; an alternate port is discarding, so the old
check is covered by the new one.

Scenario 53 plays a TC flag and a TCN into a port that is still discarding,
and then into the same port once it forwards. Scenario 51 used a TCN on a
port one tick short of its edge transition as the trigger for the clock it
tests; it now waits for the transition.
2026-10-27 22:11:24 +01:00
d00f b92a773cad test/stp: tag the frames the simulator feeds in
The frame the simulator builds carries a vlan_tag between the RTL tag and the BPDU, but left its TPID zero. stp_in() now takes the body offset from TRAP_RX_BODY(), which reads those two bytes, so it took the untagged branch and parsed the body four bytes early. Writing 0x8100 makes the frame what its layout says it is.
2026-10-27 22:11:24 +01:00
d00f 068e7467af test/stp: stub the RMA action the trap now sets
Reception moved to the RMA trap in main, so rtl837x_stp.c calls trap_rma_set() from stp_setup() and stp_off(). The simulator defines neither, so it does not link. Linking rtl837x_trap.c instead would pull trap_init() and the register primitives it needs, which the simulator does not mock.
2026-10-27 22:11:24 +01:00
DrDoof da4f5058a7 test/stp: declarations first, one statement per line
stp_sim.c declared variables in the middle of the scenarios and put
whole loops and conditions on one line. Each block now starts with its
declarations; an initializer that depends on what happens before it
stays where it was as an assignment. Bodies of if and for are on lines
of their own, functions are separated by an empty line, and lines stay
within 120 columns. The output of stp_sim -v is unchanged.
2026-10-27 22:11:24 +01:00
DrDoof fee4f17bff test/stp: print each scenario heading once
Scenarios 4 and 7 start from the state scenario 3 leaves behind, and 38
from the one 37 leaves, and they called those scenarios for it, so the
headings of 3 and 37 showed up again in the middle of the run. The setup
of 3 and 37 now lives in functions of its own that the scenarios call.
2026-10-27 22:11:24 +01:00
DrDoof e19271fc44 test/stp: build the simulator against the firmware headers
test/stp/shim held hand-written copies of the headers the STP code
includes, and they had drifted: the uIP buffer was 600 bytes instead of
1556, struct machine had three fields, port_ingress_filter_get()
returned a plain uint8_t. The simulator now compiles rtl837x_stp.c and
rtl837x_stp_cli.c the way test/ compiles firmware sources, with the real
headers and sdcc_shim.h forced in, and with the same warnings, including
-Wno-pointer-sign for the string literals passed to cmd_compare(). It
stays on -std=c11: in gnu11 mode glibc defines LITTLE_ENDIAN, which
uip-conf.h names as the byte order, and HTONS() stops swapping. Its own
print_string() and cmd_compare() take the firmware's argument types.
2026-10-27 22:11:24 +01:00
DrDoof aff6ac0923 stp: full RSTP and a reworked Spanning Tree page
* stp: select the root port by cost and block redundant links
* stp: move the protocol to BANK4 and keep the command line in BANK2
* stp: implement the RSTP state machines of 802.1D-2004 clause 17
* stp: counters, more settings and a fuller Spanning Tree page
* stp: make a link aggregation group one port of the RSTP tree
* web: serve the Spanning Tree JSON from BANK4 as well

Kept in BANK1, the larger Spanning Tree page would leave under 1 kB
there for the rest of the web server and every page still to come, so
send_stp() and send_stp_counters() move to httpd/page_stp.c in BANK4
with the protocol, as banked calls, with their own copies of the few output
helpers and of the JSON header, so nothing in BANK4 calls into BANK1
directly or hands it a pointer into its code space. BANK4 takes the
free flash between BANK3 and the web files.

KP_9000_6XHML_X2: BANK1 44336, BANK2 36969, BANK3 11942, BANK4 20965
bytes of 49152.
2026-10-27 22:11:24 +01:00
logicog 7e11be0d97 Add ZoeRax HG0402XG V1.1 to supported devices 2026-10-27 22:05:22 +01:00
logicog 23862bc648 New Device: Add support for ZoeRax HG0402XG V1.1
The ZoeRax HG0402XG is an unmanaged 4 2.5GBit Ethernet, 2 SFP+
device.
2026-10-27 22:05:22 +01:00
feelfree69 6c62791d23 Merge pull request #722 from frogamic/fix-docker-oem-build
Document oem installer build in docker
2026-10-27 22:04:23 +01:00