Several weeks ago I configured ExpressVPN on AR300M. I failed to do it with .ovpn file they provided on their site, just uploading it to GL-inet web interface didn’t work. So I disabled all vpn services that gl-inet has (vpn-service and startvpn) and enabled pure openvpn service instead. After that uploaded to router .crt, key files, auth file with username and password. Via command ssh line added vpn interface:
uci set network.vpn0=interface
uci set network.vpn0.ifname=tun0
uci set network.vpn0.proto=none
uci set network.vpn0.auto=1
Then added firewall zone for vpn:
uci set firewall.vpn=zone
uci set firewall.vpn.name=vpn
uci set firewall.vpn.network=vpn0
uci set firewall.vpn.input=REJECT
uci set firewall.vpn.output=REJECT
uci set firewall.vpn.forward=ACCEPT
uci set firewall.vpn.masq=1
Then applied modifications:
uci commit network
/etc/init.d/network reload
uci commit firewall
/etc/init.d/firewall reload

Then modified /etc/config/openvpn file this way:

config openvpn ‘myvpn’
option enabled ‘1’
option dev ‘tun’
option proto ‘udp’
option verb ‘3’
option log ‘/var/log/openvpn.log’
option pull ‘1’
option port ‘1195’
option client ‘1’
option nobind ‘1’
option persist_tun ‘1’
option persist_key ‘1’
option comp_lzo ‘no’
option tun_mtu ‘1500’
option mssfix ‘1450’
option fragment ‘1300’
option keepalive ‘10 60’
option resolv_retry ‘infinite’
option reneg_sec ‘0’
option mute_replay_warnings ‘1’
option auth ‘SHA512’
option cipher ‘AES-256-CBC’
option auth_user_pass ‘/etc/openvpn/expressvpn/auth’
option fast_io ‘1’
option sndbuf ‘524288’
option rcvbuf ‘524288’
option ns_cert_type ‘server’
option keysize ‘256’
option ca ‘/etc/openvpn/expressvpn/ca2.crt’
option cert ‘/etc/openvpn/expressvpn/client.crt’
option key ‘/etc/openvpn/expressvpn/client.key’
option tls_client ‘1’
option tls_auth ‘/etc/openvpn/expressvpn/ta.key 1’
option key_direction ‘1’
option remote ‘belgium-ca-version-2.expressnetw.com 1195’
option remote ‘switzerland-2-ca-version-2.expressnetw.com 1195’
option remote_random ‘1’
(option remote_random feature for some reason not working and I connect always via last line remote server)
Then changed in luci web interface firewall settings - removed lan - wan forwardings, instead added lan - vpn forwardings. Rebooted router.

The only strange thing with GL-inet routers that I also need to execute restarting firewall command, without it - it do not work , so I also added command to rc.local:
/etc/init.d/firewall restart
It is not specific to vpn service, with my own vpn server, I also need to restart firewall for some reason. If I use another OpenWRT router without gl-inet web interface - it work without firewall restart.
The connection seems relatively reliable, about 7-8 Mbps, but once in several days it happen that internet connection breaks and I need to ssh to router and execute /etc/init.d/firewall restart (or just reboot it)
If someone knows why this happening (firewall feature) that would be great if you let me know. Maybe because there are some custom gl inet firewall rules, but I really like configuring vpn via direct config file modification instead of uploading ovpn, so has to disable all their vpn services.