...
SDWAN traffic rules and WAN interfaces are required to be configured at runtime through Restful API interface, this supposed can be supported by luci-app-mwan3, require more investigation for details.
OpenWRT luci invoking mechanism:
...
Mwan3 supported services:
interface_status: GET /cgi-bin/luci/admin/status/mwan/interface_status
Sample response:
"interfaces":{"wan":{"running":true,"score":0,"track_ip":[{"status":"down","latency":0,"packetloss":0,"ip":"208.67.220.220"},{"status":"down","latency":0,"packetloss":0,"ip":"208.67.222.222"},{"status":"down","latency":0,"packetloss":0,"ip":"8.8.4.4"},{"status":"down","latency":0,"packetloss":0,"ip":"8.8.8.8"}],"lost":536,"status":"offline","age":5,"turn":134},"wanb6":{"running":false,"score":0,"track_ip":[],"lost":0,"status":"","age":0,"turn":0},"wanb":{"running":false,"score":0,"track_ip":[],"lost":0,"status":"","age":0,"turn":0},"wan6":{"running":false,"score":0,"track_ip":[],"lost":0,"status":"","age":0,"turn":0}},"connected":{"ipv6":["Members:","fe80::\/64"],"ipv4":["Members:","224.0.0.0\/3","192.168.56.2","127.0.0.0\/8","127.255.255.255","192.168.56.0\/24","10.0.3.0\/24","10.0.3.15","127.0.0.0","192.168.56.255","127.0.0.1","192.168.56.0","10.0.3.0","10.0.3.255"]}
- detaild_status: GET /cgi-bin/luci/admin/status/mwan/detailed_status
- diagnostics_display: GET /cgi-bin/luci/admin/status/mwan/diagnostics_display
- troubleshooting_display: GET /cgi-bin/luci/admin/status/mwan/troubleshooting_display
Note: configuration for WAN's interface, member, policy and rule are supported in the web UI, but with no direct restful API available. It needs implement luci cgi plugin to provide restful API for WAN configuration.
QAT support
QAT support is required for hardware acceleration of https
Open
In ICN, one interface is implemented as POC to support running commands in CNF through Rest API call.
command:
POST /cgi-bin/luci/admin/config/command
Execute commands in OpenWRT CNF
Normal Response Code: 200
Error Response Code: 400
Request:
Name In Type Description command Body String commands to be executed in CNF, each command is separated by semicolon
QAT support
QAT support is required for hardware acceleration of https, and it will supported by QAT kernel mode device plugin.(1) Run OpenWRT as CNF: OpenWRT is worked as VM by flowing steps: https://openwrt.org/docs/guide-user/virtualization/virtualbox-vm, while can not work as expected as container by following steps from: https://openwrt.org/docs/guide-user/virtualization/docker_openwrt_image due to issue: "failed to connect to ubus", this issue is reported on community for solution: https://forum.openwrt.org/t/run-openwrt-as-container-failed-to-connect-to-ubus/44345
Implementations
TBD.