I'll have a go at porting the main commit to add the model itself once the switch arrives. These 1920 are so widely available that I'm sure it will be welcome.
Do you have any history as to why the commits have not been submitted? At first pass they add a lot of exception handling along with the new model and update to the dts. Wondering if there's any issues these have created or was it a simple lack of time available.
The previous changes are mostly already upstreamed. I didn't want to submit support for HPE 1920-48G itself, because the code for the RTL8214FC PHY is unfinished.
Technically, there aren't even two separate partitions on these devices. The entire flash between the bootloader and the factory partition is used for a filesystem. This filesystem can store as much firmware images as there is space for, but only one can be set as boot image (and a second one as a backup image).
However, with OpenWrt, a somewhat hacky approach is used instead, where only the beginning of the filesystem is actually valid and contains the kernel as a file, while the rest is used directly for the rootfs and overlay. Actually using the filesystem properly wouldn't have been possible, because the beginning of each erase block is reserved for the filesystem.
Sorry if this is the wrong place to ask, but is port isolation supported?
I have a ZyXEL GS1900-24Ev2 and I've been trying to setup something like the following:
Port 1 is a trunk port to a router.
Ports 5-8 are access ports to the same VLAN, but they should be isolated such that they cannot communicate with each other (ideally, they can only communicate with port 1).
Ports 23-24 will be (filtered) trunk ports to a pair of APs, with client isolation enabled for certain networks. They should also only be able to communicate with the router.
Toggling the bridge port isolation flag (/sys/devices/platform/switch@1b000000/net/lan5/brport/isolated) doesn't appear to do anything: /sys/kernel/debug/rtl838x/lan5/port_ctrl still reads port_isolation = 0x10ffffff (and clients can still communicate).
The only way I've found to affect the hardware port isolation (based on my limited understanding of the rtl83xx drivers) is to add/remove ports from bridges. However, I can't find a way to attach the same port to multiple bridges (seems unsupported by Linux?), so this technique doesn't seem useful to me (because port 1 would need to be bridged separately to each access port).
Aside: using separate VLANs as a workaround is probably technically possible, but seems like a massive headache, especially without a way to fix the tags on the router port (ie. somehow map port-specific VLAN IDs to/from a single VLAN ID on the router port).
Does this account for the unusual space allocation on my Zyxel GS1900-48 - I have only a tiny amount of space in overlay as it seems like the kernel+overlay are both stuck in only 8MB of the possible 16MB flash space?
Wondering how I can use mtd9 - runtime2 for my overlay.
Found the results - no easy way forward (bootloader update, mtd-concat etc, all very intrusive). I'll probably move to the HPE 1920 with 32MB flash and sell the Zyxel GS1900s. Building custom images on 23.05.2 was hard enough, gonna be much harder with a 6.6 kernel in future.
Wired Ethernet is designed to allow communication within a L2 domain, that is the standard.
To achieve what you want you could install VXLAN modules and VRFs modules then run FRR with a BGP eVPN to each AP, as a L2 eVPN would allow you to control MAC visibility within the overlay and perform the isolation you require. FRR and VXLAN modules are available as packages in the repo, although RTL838x switches are a poor choice due to performance constraints. VRF module needs to be built yourself but isn't too hard.
Larger switches that run wireless APs will often use the underlay/overlay model to perform wired client isolation.
If you want to use OpenWRT you might consider something like the Mellanox SN2010 for more performance.
AFAIK, a bootloader update shouldn't be needed, the bootloader will just see the second partition as corrupted. Using mtd-concat might be an option for quite some of the Realtek devices once the kernel grows.
In my region, used HPE's are even much cheaper than the GS1900s, unless you need PoE.
With all due respect, your response seems to have little to do with my post.
L2 port isolation is a feature supported by the OEM firmware (see section 30.3 of the user manual).
I'm wondering what degree of support OpenWRT has for this functionality, in general and on this specific device.
Any solution or workaround that requires all packets to traverse the CPU port, including your suggestion, would not be suitable as the performance impact would be extreme.
No problem, I hadn't heard of this MAC-based isolation before. Looks like the switch groups ports into those which are limited and those which are enabled to forward L2. TP-LInk doc describes it in more detail
@robimarko I'm trying to talk to the LM63 on my DGS-1210-28MP and I've run into the same problem. Did you ever get this sorted? Unfortunately, I discovered your posts just now, after having tried the same things.
As a bonus, however, I can confirm that the SFP GPIOs are the same as for the DGS-1210-52, enabling full SFP support on this switch.
As far as I remember I did not and at work we decided that the whole Realtek mess and the trouble we would have to go through to fit everything on the NOR would not be worth it so we abandoned it.
I have no idea how stock FW manages to talk to LM63 since the clock line was never working for me in Linux.
Built the 1920-48g branch and loaded via TFTP but I'm getting repeated panics. Subsequent boot panicked just the once but boot does not complete. The shell is not started and the device is not reachable via 192.168.1.1:
Some unusual results, I swapped NICs for the TFTP connection to a 1Gb from an old USB 100Mb NIC and the switch is failing at different points now and actually rebooting instead of sitting at the console.
Tried booting with the original image and my merge of the three commits onto 23.05.3, both fail to finish booting. Wonder if I have an updated hardware version or defective hardware?
OK, thanks. I just hooked up my logic analyzer and - it started working. As soon as the logic analyzer is disconnected, i2c is dead again.
@svanheule Any ideas how to properly configure the RTL8231 for this?
Edit: I just tried a small DSO and this does not make it work. Same problem as already reported: SDA works, SCL is always low.
Edit 2: Finally, it's working. I traced my way through i2c-gpio.c, gpiolib.c and gpio-rtl8231.c to find the correct configuration to force-drive the SCL pin. The magic configuration is as simple as:
The line i2c-gpio,scl-open-drain; isn't very intuitive. When reading the code, it was finally clear that this sets the flag GPIOD_OUT_HIGH instead of GPIOD_OUT_HIGH_OPEN_DRAIN, resulting into the pin being force-driven.
The documentation mentions that this is deprecated, but doesn't offer any alternative. However, reading the kernel source, in the current kernel there is the flag i2c-gpio,scl-has-no-pullup (which is somehow undocumented!?) that could be used instead and which is clearer. I'll add a note that this can be replaced in 6.6 when I submit the PR.