Yes, I'm pretty sure it'll just work, it's compiled against musl, and links to libubox and libubus which should be present on OpenWRT. We might need to fudge linking paths a bit in the ELF, but it's not a problem.
Here's how it's used, you just pipe config into the binary and it sets up the LAN for you:
#!/bin/sh /etc/rc.common
START=20
DIAG_FIFO=/tmp/rtl9303_diag.fifo
. /usr/sbin/qos/qos_defs.sh
set_static_l2_table_entry()
{
lan_mac=`uci get hal.system.mac_address_eth`
if [ "$lan_mac" != "" ]; then
# untag
echo "l2-table add mac-ucast 1 $lan_mac port 27" > $DIAG_FIFO
echo "l2-table set mac-ucast 1 $lan_mac port 27 static" > $DIAG_FIFO
# vlan id 10
echo "l2-table add mac-ucast 10 $lan_mac port 27" > $DIAG_FIFO
echo "l2-table set mac-ucast 10 $lan_mac port 27 static" > $DIAG_FIFO
# vlan id 20
echo "l2-table add mac-ucast 20 $lan_mac port 27" > $DIAG_FIFO
echo "l2-table set mac-ucast 20 $lan_mac port 27 static" > $DIAG_FIFO
# vlan id 30
echo "l2-table add mac-ucast 30 $lan_mac port 27" > $DIAG_FIFO
echo "l2-table set mac-ucast 30 $lan_mac port 27 static" > $DIAG_FIFO
echo "l2-table set port-move sttc-port-move learn state enable" > $DIAG_FIFO
echo "l2-table set port-move sttc-port-move action drop" > $DIAG_FIFO
fi
}
enable_eee_mode()
{
echo "eee set port 8 state enable" > $DIAG_FIFO
echo "eee set port 20 state enable" > $DIAG_FIFO
echo "eee set port 24 state enable" > $DIAG_FIFO
echo "eee set port 25 state enable" > $DIAG_FIFO
echo "eee set port 27 state enable" > $DIAG_FIFO
}
set_ether_led(){
#10G Lan LED
echo "port set phy-mmd-reg port 8 mmd-addr 0x1E mmd-reg 0xc430 data 0xC0C0" > /tmp/rtl9303_diag.fifo
echo "port set phy-mmd-reg port 8 mmd-addr 0x1E mmd-reg 0xc431 data 0x20" > /tmp/rtl9303_diag.fifo
#2.5G Lan LED
echo "port set phy-mmd-reg port 20 mmd-addr 0x1F mmd-reg 0xd032 data 0x24" > /tmp/rtl9303_diag.fifo
echo "port set phy-mmd-reg port 20 mmd-addr 0x1F mmd-reg 0xd034 data 0x3" > /tmp/rtl9303_diag.fifo
echo "port set phy-mmd-reg port 24 mmd-addr 0x1F mmd-reg 0xd032 data 0x24" > /tmp/rtl9303_diag.fifo
echo "port set phy-mmd-reg port 24 mmd-addr 0x1F mmd-reg 0xd034 data 0x3" > /tmp/rtl9303_diag.fifo
}
boot() {
mkfifo $DIAG_FIFO
tail -f $DIAG_FIFO | /usr/bin/usrApp&
sleep 2
echo "port set port all state disable" > $DIAG_FIFO
# Clean up vlan table and l2 table for caching
# echo "vlan destroy all restore-default-vlan" > $DIAG_FIFO
echo "l2-table del all" > $DIAG_FIFO
sleep 2
# Create vlan-table vid is 1 for untag
# vid 0 will untag in ingress, then need to use acl command to tag vid 0
util_ethernet_cli createvlan 0
util_ethernet_cli setvlan 0 member all
util_ethernet_cli setvlan 0 untag-port 27
util_ethernet_cli setvlan 1 member all
util_ethernet_cli setvlan 1 untag-port all
util_ethernet_cli setvlanpvidinnerport 1
util_ethernet_cli setpvidmode untag-only
# Guest wifi
util_ethernet_cli createvlan 10
util_ethernet_cli setvlan 10 member all
# Zenreach AP
util_ethernet_cli createvlan 20
util_ethernet_cli setvlan 20 member all
# IoT wifi
util_ethernet_cli createvlan 30
util_ethernet_cli setvlan 30 member all
#switch internal proirity to queue
util_ethernet_cli set_internal_pri_to_queue 0 1 1 0 2 2 3 3 4 4 5 5 6 6 7 7
#Strict
util_ethernet_cli set_scheduler sp
#acl filter vlan 10
#acl set pbit 1, dscp 8 and internal priority 1
util_ethernet_cli set_acl_rule entry $GUEST_ENTRY_BASE vid 10 pbit_action 1 dscp_action 8 queue 1
set_static_l2_table_entry
enable_eee_mode
echo "port set port all state enable" > $DIAG_FIFO
set_ether_led
}